Microsoft Commerce Server 2000

  • Commerce Server-Onlinehilfe

  • Commerce Server-Lösungssites

  • Microsoft Product Support Services

  • Commerce Server-Support

  • Commerce Server 2000-ISV-Partner

  • Website für Microsoft-Eingabehilfen

  • Whitepapers

  • Business Desk-Lernprogramm

  • Feedback
Copyright © 1996–2000 Microsoft Corporation.
Alle Rechte vorbehalten.


Erste Schritte

Microsoft Commerce Server 2000 bietet eine Reihe von Tools für Siteentwickler, Systemadministratoren und Businessmanager zur Entwicklung, Bereitstellung und Verwaltung von Commerce-Anwendungen für das Web. Die hier aufgeführten Hilfethemen enthalten Informationen zu den Features und Tools von Commerce Server, mit denen Sie erfolgreiche E-Commerce-Lösungen bereitstellen können, die sowohl den Anforderungen des Unternehmens gerecht werden als auch mit vorhandenen Systemen und Daten kompatibel sind.

Dieser Abschnitt beinhaltet folgende Themen:

  • Einführung in Commerce Server 2000. Beschreibt Commerce Server sowie alle neuen Features dieser Version. Enthält darüber hinaus Informationen über die Eingabehilfen, die Personen mit Behinderungen in Commerce Server zur Verfügung stehen.

  • Verwenden der Commerce Server-Hilfe. Beschreibt die Dokumentation zu Commerce Server und deren Verwendung und erläutert, wo zusätzliche Ressourcen zu finden sind.

  • Installieren von Commerce Server. Erläutert die Hardware- und Softwareanforderungen für die Installation von Commerce Server und enthält Anweisungen zur Installation und Deinstallation von Commerce Server Business Desk.

  • Commerce Server-Architektur. Beschreibt die Verwendung von Commerce Server in Verbindung mit anderen .NET-Technologien. Beschreibt die Architektur von Commerce Server-Manager und Commerce Server Business Desk.

  • Commerce Server-Konzepte. Beschreibt die wichtigsten Features von Commerce Server und deren Funktionsweise.

  • Commerce Server-Sicherheit. Beschreibt die wichtigsten Sicherheitsfeatures von Commerce Server.

  • Planen der Installation von Commerce Server. Beschreibt die Aspekte, die bei der Planung berücksichtigt werden müssen, um die erfolgreiche Implementierung von Commerce Server zu gewährleisten. Enthält darüber hinaus Informationen über die Tools, die für die Umstellung einer Site Server 3.0 Commerce Edition-Site auf Commerce Server zur Verfügung stehen.


Einführung in Commerce Server 2000

Microsoft Commerce Server 2000 ist eine umfassende, integrierte Commerce-Lösung, die Ihnen sofort einsatzbereite Features und Tools bietet, mit denen Sie Commerce-Anwendungen für das Web schnell entwickeln, bereitstellen und verwalten können. Mit Commerce Server können Sie skalierbare Anwendungen für Business-To-Consumer (B2C)- und Business-To-Business (B2B)-Sites erstellen.

Commerce Server ermöglicht es Businessmanagern auf einfache Weise, Unternehmensvorgänge zu analysieren und zu managen. Dank der ausgeklügelten Analysefunktionen und einer Echtzeit-Feedbackschleife können Businessmanager auf die sich ständig wandelnden Bedürfnisse von Kunden und Partnern reagieren. Durch das Erstellen hochdynamischer, personalisierter Commerce-Sites können Sie die Kundenzufriedenheit optimieren, zu regelmäßigen Käufen anregen und sich erfolgreich im E-Commerce-Markt behaupten.

Dieser Abschnitt beinhaltet folgende Themen:

  • Commerce Server-Features im Überblick. Beschreibt die Commerce Server-Features und wie Sie diese zur Aktualisierung und Verwaltung Ihrer Site einsetzen können.

  • Entwicklungstools. Beschreibt die Tools, die Siteentwicklern zur Verfügung stehen, z. B. die Lösungssites und das Commerce Server Software Development Kit (SDK).

  • Verwaltungstools. Beschreibt die Tools für Systemadministratoren, einschließlich Commerce Server-Manager und Commerce Server Site Packager.

  • Siteverwaltungsfunktionen. Beschreibt den Einsatz von Commerce Server Business Desk zusammen mit den Commerce Server-Features zur Verwaltung Ihrer Site.

  • Pipelinefeatures. Beschreibt die Pipelinefeatures von Commerce Server.

  • Eingabehilfen für Personen mit Behinderungen. Beschreibt die Eingabehilfen von Commerce Server.

  • Microsoft Technischer Support. Beschreibt die Dienste des Technischen Supports von Microsoft. Gibt Weblinks und Telefonnummern für die Kontaktaufnahme mit dem Technischen Support an.


Commerce Server-Features im Überblick

Die Commerce Server-Features arbeiten harmonisch zusammen, sodass Sie Merchandising, Kataloganzeige, Kundendienst sowie Auftragserfassung und -bestätigung anbieten können.

Die folgende Tabelle gibt Ihnen einen Überblick über die Commerce Server-Features:

Commerce Server-Feature Beschreibung
Produktkatalogsystem
  • Erstellen und aktualisieren Sie Kataloge von zu verkaufenden Produkten.

  • Importieren Sie Produktkataloge von anderen Datenquellen. Importieren Sie Commerce Server-Kataloge im XML- oder CSV-Format.

  • Exportieren Sie Kataloge im XML-Format.

  • Fügen Sie integrierte Suchfunktionen hinzu, über die Benutzer leicht das Gesuchte finden können:
    • Kategoriesuche. Ermöglicht die Suche nach Produktkategorie.

    • Freitextsuche. Findet Produkte über den vollständigen oder teilweisen Namen oder eine Eigenschaft.

    • Eigenschaftsbasierte Suche. Findet Produkte basierend auf einem Eigenschaftswert, z. B. "Preis < 10 DM".

    • Drilldownsuche. Verfeinert die Suchanforderung, bis das gewünschte Produkt gefunden wird.
  • Erstellen Sie benutzerdefinierte Kataloge mit Sonderpreisen für bestimmte Benutzergruppen.

  • Geben Sie Preisnachlässe für bestimmte Produkte.

  • Finden Sie heraus, welche Produkte sich gut verkaufen, indem Sie die Commerce Server-Berichte ausführen.

  • Tauschen Sie mithilfe von Microsoft BizTalk Server 2000 Katalogdaten mit Ihren Lieferanten aus.
Profilsystem
  • Verwalten Sie Millionen von Benutzern und Organisationen.

  • Ermöglichen Sie es den Benutzern, ihre eigenen Profilinformationen zu verwalten und den Auftragsstatus zu verfolgen.

  • Erstellen Sie Profile für beliebige geschäftsbezogene Größen, wie z. B. Benutzer und Organisationen.

  • Legen Sie fest, welche Informationen Sie über Benutzer sammeln möchten, die Ihre Site besuchen.

  • Definieren Sie, welche Informationen, z. B. benutzerdefinierte Kataloge, bestimmten Benutzern angezeigt werden.

  • Analysieren Sie Profilinformationen, um herauszufinden, wer Ihre Site besucht.

  • Erstellen Sie Zielausdrücke, um Inhalte an bestimmte Benutzer anzupassen.

  • Erstellen Sie gezielt Werbe-, Preisnachlass- und Direktsendungskampagnen für ausgewählte Benutzergruppen.
Business Analytics-System
  • Importieren Sie große Datenmengen zur Siteverwendung von verschiedenen Datenquellen in das Commerce Server-Datawarehouse, und verwalten Sie diese Daten.

  • Analysieren Sie die Effektivität der Site, indem Sie Commerce Server-Berichte ausführen oder eigene, benutzerdefinierte Berichte erstellen.

  • Identifizieren Sie bestimmte Benutzergruppen, indem Sie einen Bericht ausführen und die Ergebnisse in eine Liste exportieren. Verwenden Sie diese Liste in einer Direktsendungskampagne oder um Eigenschaften von Benutzern zu aktualisieren. Dadurch können Sie Waren oder Inhalte zielgruppengerecht anbieten.

  • Untersuchen Sie die gesammelten Daten auf versteckte Trends und neue Kundensegmente, und zeigen Sie die Eigenschaften der Segmente an.

  • Machen Sie sich intelligente Cross-Selling-Funktionen zu Nutze, und geben Sie den Benutzern dynamische Produktempfehlungen, während sie sich in Ihrer Site bewegen.
Zielgruppenadressierungssystem
  • Personalisieren Sie das Einkaufserlebnis mit gezielten Produktangeboten.

  • Liefern Sie die optimalen Inhalte für bestimmte Benutzer unter bestimmten Bedingungen.

  • Erstellen, analysieren und verwalten Sie personalisierte und gezielte Preisnachlass-, Direktmarketing- und Werbekampagnen.

  • Statten Sie Ihre Website mit Vorhersagefähigkeiten aus.

  • Zielen Sie mit Anzeigen oder Preisnachlässen auf Benutzer mit einem bestimmten Profil ab. Sie können z. B. mit Anzeigen gezielt Benutzerinnen ansprechen, die Ihre Site dreimal pro Woche besuchen und drei oder mehr Produkte gekauft haben.

  • Erstellen und planen Sie Kampagnen für Kunden ein, die in derselben Branche miteinander konkurrieren. Die konkurrierenden Anzeigen werden niemals auf derselben Seite gezeigt.

  • Berechnen Sie die Anzeigenpreise nach der Anzahl der Anzeigenanforderungen oder -klicks, die Ihre Kunden erhalten möchten.

  • Bestimmen Sie die Anzeigenpreise abhängig von der Seite, auf der ein Kunde eine Anzeige schalten möchte.
Geschäftsprozess-Pipelines
  • Passen Sie den Auftrags-, Zielgruppenadressierungs- und Merchandising-Prozess an Ihre Bedürfnisse an.

  • Definieren Sie die Phasen eines Geschäftsprozesses, und verknüpfen Sie diese miteinander.


Entwicklungstools

Mit den Entwicklungstools von Commerce Server sind Siteentwickler in der Lage, Sites schnell zu entwickeln und anzupassen sowie an Kunden zu übertragen. Commerce Server enthält neue Entwicklungstools und Verbesserungen gegenüber Site Server 3.0 und Site Server 3.0, Commerce Edition (SSCE).

Lösungssites

Commerce Server SDK

Dokumentation für Programmierer

Commerce Server 2000 Resource Kit

Lösungssites

Commerce Server ersetzt die Starter Sites von Site Server 3.0 durch drei Lösungssites. Diese Lösungssites sind Entwicklungsreferenzsites, die eine integrierte Gruppe von Commerce Server-Features bereitstellen. Die Lösungssites ermöglichen Merchandising, Kataloganzeige, Kundendienst sowie Auftragserfassung und -bestätigung.

Dank der umfassenden E-Commerce-Funktionalität der Lösungssites können diese als Ausgangspunkt für die Entwicklung eigener Websites eingesetzt werden. Wenn Sie bereit dafür sind, lassen sich auch Funktionen hinzufügen, die für Ihr Unternehmen spezifisch sind.

Commerce Server enthält folgende Lösungssites:

  • Leere Lösungssite. Verwenden Sie diese Lösungssite als Ausgangspunkt bei der Erstellung Ihrer eigenen, benutzerdefinierten Site. Diese Lösungssite enthält alle Commerce Server-Ressourcen. Die leere Lösungssite wird mit Commerce Server geliefert.

  • Retail-Lösungssite. Verwenden Sie diese Lösungssite als Ausgangspunkt für den Aufbau einer Business-To-Consumer-Site. Enthalten sind Business-To-Consumer-Funktionen für Personalisierung, Merchandising, Katalogsuche, Kundendienst und Geschäftsanalysen. Dazu zählt auch der Kundenservice, der es Benutzern ermöglicht, ihre eigenen Profilinformationen zu verwalten und den Auftragsstatus anzuzeigen. Die Site Retail steht unter folgender Adresse zur Verfügung: http://www.microsoft.com/germany/servers/commerceserver/2000/solutionsites.htm.

  • Supplier-Lösungssite. Verwenden Sie diese Lösungssite als Ausgangspunkt für den Aufbau einer Business-To-Business-Site. Diese Site verwendet Active Directory von Microsoft Windows 2000, um sichere Benutzerauthentifizierung und Zugriffsberechtigungen für Gruppen zu realisieren. Zu den Funktionen dieser Site zählen auch die Behandlung von Einkaufsbestellungen und Anforderungen, XML-basierte Aktualisierung und Austausch von Katalogen sowie Selbstbedienung durch Handelspartner. Enthalten ist Partnerservice, das einem delegierten Administrator (ein Kontakt bei einer Lieferantenfirma) ermöglicht, Organisationsinformationen, Einkaufsbestellungen und Auftragsstatus für die jeweilige Lieferantenfirma zu verwalten. Die Site Supplier steht unter folgender Adresse zur Verfügung: http://www.microsoft.com/germany/servers/commerceserver/2000/solutionsites.htm.

Commerce Server SDK

Das Commerce Server Software Development Kit (SDK) enthält Headerdateien, Beispielcode, Sitelets und Tools für die Entwicklung von E-Commerce-Lösungen mit Commerce Server.

Headerdateien

Beispielcode

Sitelets

Tools

Headerdateien

Der Ordner Include des SDK enthält die Header- und Interface Description Language (IDL)-Dateien, die zur Verwendung und Erweiterung der Dienste von Commerce Server in Microsoft Visual C++ benötigt werden.

Beispielcode

Im Folgenden wird der Beispielcode im SDK auszugsweise aufgeführt:

  • Administration Samples. Eine Referenz für das Erstellen von Commerce Server-Ressourcen, für die Integration und Erweiterung von Commerce Server-Manager, und für das Erstellen von benutzerdefinierten Commerce Server Site Packager-Komponenten sowie von benutzerdefinierten Commerce Server Business Desk-Modulen.

  • Business Desk Module Framework. Eine lauffähige Codebasis, über die sich neue Business Desk-Module entwickeln lassen. Diese Codebasis demonstriert die Verwendung von XML-Dateninseln und enthält die Business Desk-Widgets (Schaltelemente). Damit lässt sich eine anspruchsvolle, webbasierte Benutzeroberfläche erstellen, über die die Verwaltung Ihrer Commerce Server-Site auch ohne umfangreiche technische Vorkenntnisse möglich ist. In diesem Beispielcode finden Sie die Seite Bearbeiten zur Implementierung des Widgets Bearbeiten, die Seite Liste zur Implementierung des Widgets Liste sowie die Seite Antwort zur Behandlung von Anforderungen der Business Desk-Benutzeroberfläche. Zusätzlich finden Sie das Skript AddModuleToConfig.vbs, das die Installation von neuen Business Desk-Modulen in ein vorhandenes Business Desk demonstriert.

  • Business Desk Installer. Eine einfache COM-Komponente, die zeigt, wie das die Verwaltungs-API zusammen mit der Internet-Informationsdienste (IIS) 5.0-Metabasis verwendet wird und wie der Microsoft Extensible Markup Language (MSXML)-Parser zur Installation neuer Business Desk-Module in ein vorhandenes Business Desk eingesetzt werden kann.

  • Custom Site Packager-Komponente. Eine Komponente, die das Packen und Entpacken von Siteressourcendaten demonstriert, die beim Packen/Entpacken eines Commerce Site-Pakets erstellt werden. Die Custom Site Packager-Komponente ist eine Microsoft Visual Basic ActiveX-DLL (Dynamic Link Library), die die IPuP-Schnittstelle (für Custom Site Packager-Komponenten erforderlich) implementiert, in einer Microsoft SQL Server™-Datenbank gespeicherte Daten packt und diese Daten in einer bestimmten Site entpackt.

  • Data Warehouse Schema Browser. Ein Schemabrowser, der Commerce Server Datawarehouse-Klassen, -Klasseneigenschaften, -Datenelemente und -Klassenbeziehungen so anzeigt, wie diese im logischen Schema definiert sind. Dieses Beispiel zeigt, wie der Commerce Server OLE DB Provider zum Zugriff auf das logische Schema des Datawarehouse eingesetzt wird.

  • CSF Score Headlines. Ein Beispiel, das veranschaulicht, wie das Zielgruppenadressierungssystem unter Verwendung der benutzerdefinierten Content Selection Framework (CSF)-Komponenten Cache laden und Bewerten erweitert werden kann. Das Beispiel "CSF Score Headlines" setzt voraus, dass Sie den Benutzern Ihrer Site gezielt Headlines (Schlagzeilen) anzeigen möchten, basierend auf dem Alter der Headline und darauf, welche Headlines am häufigsten angezeigt wurden. Es zeigt außerdem die Integration mit dem Zielgruppenadressierungssystem unter Verwendung von Visual C++ und Visual Basic.

  • CSF Debug Utils. Eine Reihe von Active Server Pages (ASP), die Sie in Ihre Skripte einbinden, um den Inhalt eines CSF-Zwischenspeichers zu sichern und um eine Ablaufverfolgung der Bewertungslogik beliebiger Inhaltsanforderungen zu erstellen. Das Beispiel "CSF Score Headlines" demonstriert die Verwendung dieser Debugging-Werkzeuge.

  • CSF DB Utils. Eine Reihe von SQL-Skripts, die sämtliche Inhalte aus den CSF-, Ausdrucksbewertungs- und Listen-Manager-Datenbanken entfernen.

Sitelets

Zusätzlich zu den herkömmlichen Codebeispielen im Commerce Server 2000 SDK werden auch kleine Commerce Server 2000-Sites ("Sitelets" genannt) bereitgestellt. Die Sitelets zeigen, wie die API-Sätze von Active Server Pages eingesetzt werden können, ohne diese mit den übrigen Laufzeitdiensten von Commerce Server 2000 zu integrieren. Führen Sie die Sitelets aus, um die APIs für ein bestimmtes Feature zu isolieren und zu erkennen. Damit können Sie sich das manuelle Filtern von Code ersparen, der keinen Bezug zur durchzuführenden Aufgabe hat.

Die folgenden Sitelets sind Teil des Commerce Server 2000 SDK:

  • Advertising Sitelet. Dieses Sitelet zeigt, wie das Profilsystem zusammen mit dem Zielgruppenadressierungssystem zur Anzeige zielgerichteter Anzeigen verwendet werden kann.

  • Auction Sitelet. Zeigt, wie die Auktionskomponente zur Implementierung von Höchstgebot-Auktionen eingesetzt werden kann. Zu diesem Sitelet gehört ein benutzerdefiniertes Business Desk-Modul für die Verwaltung von Auktionen.

  • Catalog Sitelet. Dieses Sitelet zeigt Ihnen, wie Sie mit dem Produktkatalogsystem Funktionen zur Katalogsuche in Ihrer E-Commerce-Site umsetzen können.

  • Discount Sitelet. Dieses Sitelet zeigt Ihnen, wie Sie sich gezielte Preisnachlässe während der Auftragserfassung durch Ihre Website zu Nutze machen können.

  • Order Sitelet. Zeigt Ihnen, wie Commerce Server zur Implementierung eines Auftragserfassungsprozesses in Ihrer Website eingesetzt werden kann.

  • Passport Sitelet. Dieses Sitelet demonstriert, wie die Einzelanmeldungsfunktion von Passport mit dem Profilsystem integriert werden kann. Mit dieser Funktion können Sie und Ihre Kunden von einem Authentifizierungsdienst mit einmaliger Anmeldung profitieren. Auf den Einsatz des Profilsystems zur Zielgruppenadressierung von Benutzern, zur Verwaltung von Benutzerdaten usw. müssen Sie dabei nicht verzichten.

  • Profile Sitelet. Dieses Sitelet zeigt Ihnen, wie Sie das Profilsystem zur Registrierung und Authentifizierung der Benutzer Ihrer E-Commerce-Site einsetzen können.

Tools

Commerce Server 2000 SDK enthält eine Reihe von Tools, mit deren Hilfe Sie den Entwicklungsprozess für die Erstellung von auf Commerce Server laufenden Sites vereinfachen und beschleunigen können. Mit diesen Tools können Sie außerdem Add-On-Komponenten für Commerce Server entwickeln und Integrationsprodukte für Commerce Server erstellen.

  • Pipelinekomponenten-Assistent für Visual Basic. Dieses Tool bietet Visual Basic-Entwicklern eine RAD-Umgebung (Release and Deployment) für das Erstellen von Business Processing-Pipelinekomponenten. Registrieren Sie die Datei PipelineCompWizard.dll im Ordner VB Pipe Wizard der SDK-Tools, um den Pipelinekomponenten-Assistenten für Visual Basic zu installieren. Beispiel: C:\Programme\Microsoft Commerce Server\SDK\Tools\VB Pipe Wizard.

  • Pipelinekomponenten-Assistent für Visual C++. Dieses Tool besteht aus einer Gruppe von Dateien, die Sie zu Ihrer Visual C++ 6.0-Installation hinzufügen. Mit diesen Dateien können Sie die Erstellung von Commerce Server-Pipelinekomponenten automatisieren. Der Pipelinekomponenten-Assistent erstellt die Objektdefinitions- und Implementierungsdateien, in denen die Funktionsprototypen für alle Schnittstellen enthalten sind, die für die Erstellung einer vollständig funktionsfähigen Pipelinekomponente implementiert werden müssen. Außerdem erstellt der Pipelinekomponenten-Assistent eine Eigenschaftenseite für Ihr Projekt, zu der Sie die Steuerelemente hinzufügen, über die Benutzer die Eigenschaften der Komponenten festlegen.

  • Pipeline Component Registration Tool. Mit diesem Tool können Sie die Stufenaffinität von Pipelinekomponenten registrieren. Die Pipelinekomponente wird auf dem Computer registriert, auf dem das Tool ausgeführt wird. Die Daten lassen sich dann zur Bereitstellung auf anderen Servern in eine Registrierungsdatei (.reg) exportieren. Das Pipeline Component Registration Tool befindet sich im Ordner Registration Tool des SDK. Beispiel: C:\Programme\Microsoft Commerce Server\SDK\Tools\Registration Tool.

Dokumentation für Programmierer

Mit der Commerce Server 2000-Hilfe erhalten Sie eine ausführliche Dokumentation der Möglichkeiten zur Anpassung von Commerce Server. Die Dokumentation enthält beispielsweise Anweisungen zu folgenden Themen:

  • Building Business Desk Modules (englisches Thema)

  • Building Pipeline Components (englisches Thema)

  • Working with the Data Warehouse (englisches Thema)

  • Extending the Content Selection Framework (englisches Thema)

  • Integrating with BizTalk Server (englisches Thema)

  • Modifying Your Site for an International Audience (englisches Thema)

Zusätzlich dazu enthält die Commerce Server 2000-Hilfe Beispielcode für die einzelnen Commerce Server-Objekte.

Commerce Server 2000 Resource Kit

Das Commerce Server 2000 Resource Kit gibt Ihnen ausführliche Informationen über die Entwicklung von E-Commerce-Lösungen mit Commerce Server. Dieses Resource Kit ist über Microsoft Press erhältlich.

Im Commerce Server 2000 Resource Kit finden Sie Informationen zu den folgenden Themen:

  • Entwickeln von Sites mit Unterstützung für mehrere Sprachen und Währungen

  • Implementieren von Identifikation und Authentifizierung

  • Erweitern des Business Analytics-Systems

  • Implementieren von komplexen Preisberechnungsschemas

  • Entwickeln mit dem Profilsystem

  • Ändern der Auftragsverarbeitung

  • Integration mit SAP

  • Integration mit J.D. Edwards OneWorld

  • Testen Ihrer Site

  • Leistungsoptimierung

Siehe auch

Verwenden von Site Packager

Programmierreferenz


Verwaltungstools

Commerce Server enthält die folgenden Verwaltungstools, die Systemadministratoren zur Verwaltung von Ressourcen, Sites, Anwendungen und Webservern benötigen:

  • Commerce Server-Manager. Ein Tool, das zum Verwalten und Konfigurieren von Commerce Server-Ressourcen, -Sites, -Anwendungen und -Webservern eingesetzt wird. Die Microsoft Management Console (MMC), eine Windows-basierte Schnittstelle in Microsoft Windows 2000, dient als Host für den Commerce Server-Manager.

    Commerce Server-Manager bietet ein gemeinsames Framework zur Verwaltung von Websites mithilfe einer einzigen, integrierten Oberfläche. Die Funktionen von Commerce Server-Manager stehen weder über web- noch über befehlszeilenbasierte Verwaltung zur Verfügung. Der Zugriff und die Manipulation des Großteils dieser Funktionen erfolgt statt dessen über COM-Objekte. Daher können Sie zur Erweiterung der Verwaltungsumgebung ein Windows Scripting Host (WSH)-Skript oder eine Active Server Page (ASP) schreiben. Weitere Informationen über Commerce Server-Manager finden Sie unter Verwalten von Commerce Server.

    Anmerkung

    • Commerce Server-Manager kann nicht zur Verwaltung von Site Server 3.0 oder Site Server 3.0, Commerce Edition (SSCE) eingesetzt werden. Informationen über die Migration einer Site von Site Server finden Sie unter Migrieren von Site Server 3.0.
  • Commerce Server Site Packager. Ein Bereitstellungstool, mit dem Sie Ihre Site und deren Anwendungen und Ressourcen in eine einzige Datei packen können. Diese Datei können Sie dann in eine andere Umgebung verschieben. Mit diesem Tool packen Sie Ihre Commerce Server-Site (einschließlich der Einstellungen der IIS-Metabasis), das Dateisystem, Ressourcen der Verwaltungsdatenbank sowie die SQL Server-Datenbanken in eine einzige Datei. Außerdem können Sie damit die Commerce Server-Site (bzw. Teile davon) auf anderen Computern entpacken.

    Beispiel: Nach dem Entwickeln oder Aktualisieren Ihrer Site können Sie diese mit Site Packager packen und von der Entwicklungsumgebung zur Testumgebung und anschließend zur Produktionsumgebung verschieben.

    In den meisten Fällen wird Site Packager zur ersten Bereitstellung Ihrer Site eingesetzt. Für anschließende Bereitstellungen, inkrementelle Aktualisierungen und Rollbacks sollten Sie jedoch ein Tool wie Microsoft Application Center 2000 bzw. ein anderes Content Management-Produkt verwenden. Weitere Informationen über Commerce Server Site Packager finden Sie unter Verwenden von Site Packager.

Siehe auch

Verwalten von Commerce Server

Verwenden von Site Packager

Migrieren von Site Server 3.0


Siteverwaltungsfunktionen

Commerce Server Business Desk ist ein erweiterbares Tool, das Businessmanager zur Verwaltung und Analyse ihrer Websites einsetzen können. Mit den Business Desk-Features lassen sich beispielsweise Preisinformationen in Ihren Katalogen aktualisieren und neue Anzeigen gezielt auf bestimmte Benutzer schalten. Anschließend können Sie Berichte ausführen, die den Einfluss dieser Änderungen auf die Produktivität der Site messen.

Business Desk besteht aus zwei Teilen: der Business Desk-Anwendung und dem Business Desk Client.

  • Business Desk-Anwendung. Diese Anwendung ist das Managementtool, das Sie zum Konfigurieren, Verwalten und Analysieren Ihrer Site einsetzen. Nach der Installation von Commerce Server können Sie eine Lösungssite entpacken, mit deren Hilfe sich eine Business Desk-Anwendung installieren lässt. Auf Business Desk kann von einem beliebigen Computer mit Microsoft Internet Explorer 5.5 zugegriffen werden. So erhalten Sie sicheren Remotezugriff.

  • Business Desk Client. Dies ist die Clientsoftware, die Sie auf einem lokalen Computer installieren. Der Client stellt die Oberfläche für den Zugriff auf die Business Desk-Anwendung bereit. Beim ersten Zugriff auf eine Business Desk-Anwendung (über einen URL) wird der Business Desk Client gedownloadet und auf Ihrem Computer installiert. Für den Computer, auf dem der Business Desk Client ausgeführt werden soll, empfiehlt sich eine schnelle Verbindung zur Business Desk-Anwendung.

Bei Business Desk handelt es sich um eine Verbesserung der webbasierten Administration (WebAdmin) von Site Server 3.0 und Site Server 3.0, Commerce Edition. WebAdmin ist eine browserbasierte Oberfläche zur Remoteverwaltung von Site Server. WebAdmin wurde für Systemadministratoren entwickelt. Business Desk jedoch wendet sich an Businessmanager: Menschen, die etwas von den Businesszielen, -strategien und -prozessen verstehen, die für die Erstellung und den Betrieb einer erfolgreichen E-Commerce-Website nötig sind, die jedoch unter Umständen nicht über die technischen Kenntnisse verfügen, die das Verwalten einer Serveranwendung erfordert.

Die folgenden neuen Business Desk-Features wurden entwickelt, um Businessmanagern die einfache Verwaltung von Websites zu ermöglichen:

Profilsystem

Produktkatalogsystem

Zielgruppenadressierungssystem

Business Analytics-System

Profilsystem

Bei Site Server 3.0 und SSCE sammelt das Profilsystem lediglich Benutzerinformationen. Mit dem Profilsystem von Commerce Server lassen sich jedoch beliebig definierbare Informationen für jedes geschäftsbezogene Element sammeln. So können Sie z. B. Profilinformationen für anonyme Benutzer, für einen Kontext (etwa Datum und Uhrzeit eines Besuchs) oder für eine Organisation sammeln.

Das Profilsystem besteht aus der Profilressource, die mithilfe von Commerce Server-Manager verwaltet wird, und aus dem Benutzermodul, das unter Verwendung von Commerce Server Business Desk verwaltet wird. Profilinformationen werden im Profildatenspeicher gespeichert, bei dem es sich um Active Directory und/oder SQL Server handeln kann. Daten aus dem Profildatenspeicher lassen sich in das Datawarehouse exportieren. Mithilfe von Business Desk können die so zusammengestellten Profildaten analysiert werden.

Anmerkung

  • Das Membership-Verzeichnis von Site Server 3.0 ist nicht Teil von Commerce Server. Informationen über die Migration von Profildaten eines Membership-Verzeichnisses von Site Server 3.0 auf Commerce Server finden Sie unter Migrieren von Site Server 3.0.

Produktkatalogsystem

Das Produktkatalogsystem von Commerce Server ist ein neues Feature für das Importieren, Exportieren, Erstellen und Verwalten von Onlinekatalogen. Businessmanager können mithilfe der Katalogmodule in Business Desk Produktkataloge erstellen sowie Produktdaten hinzufügen und aktualisieren. Sie benötigen keine Spezialkenntnisse über die Datenbanken, in denen Ihre Produktdaten gespeichert sind, selbst wenn Sie einen Produktkatalog aus verschiedenen Quellen (z. B. unterschiedliche Lieferanten) zusammenstellen. Sie haben folgende Möglichkeiten:

  • Importieren von Katalogen im CSV- (trennzeichengetrennt) oder XML-(Extensible Markup Language)-Format.

  • Exportieren von Katalogen im XML- oder CSV-Format.

  • Austausch von Katalogen mit Handelspartnern über BizTalk Server.

  • Festlegen von Preisen für Produkte und Kategorien.

  • Hinzufügen, Aktualisieren und Löschen von Kategorien und Produkten sowie der darin enthaltenen Daten.

  • Gewähren von Preisnachlässen für bestimmte Produkte oder Produktgruppen.

  • Ausführen von Berichten, um die Katalogaktivitäten zu analysieren.

  • Anwenden mehrerer Suchmechanismen, mit deren Hilfe die Besucher Ihrer Site die gewünschten Informationen in Ihrem Katalog finden können.

Katalogdaten werden in einer Commerce Server-Datenbank gespeichert. Dabei handelt es sich um eine SQL Server-Datenbank (7.0 oder 2000). Katalogdaten aus der Commerce Server-Datenbank lassen sich in das Datawarehouse exportieren. Mithilfe von Business Desk können die so zusammengestellten Katalogdaten analysiert werden.

Siteentwickler können das Produktkatalogsystem mithilfe von dessen COM-Objekten anpassen.

Zielgruppenadressierungssystem

Das Zielgruppenadressierungssystem ist eine leistungsfähige, flexible Plattform, die von Businessmanagern eingesetzt wird, um Inhalte zielgerecht für beliebige geschäftsbezogene Elemente oder Bedingungen anzubieten. Durch ein konsistentes Zielgruppenadressierungsmodul sind Businessmanager in der Lage, mit nur einer Technologie verschiedene Geschäftsbedingungen zielgerichtet zu adressieren.

Das Zielgruppenadressierungssystem bietet folgende Features:

  • Kampagnen. Die Kampagnenmodule von Business Desk stellen eine erweiterte Version des Ad Managers von SSCE dar. Die Kampagnenmodule sind über Ausdrücke sowohl in das Profilsystem als auch in das Produktkatalogsystem eng integriert. Mithilfe von Ausdrücken können Sie gezielt Anzeigen auf Benutzer hinlenken und Preisnachlässe auf Produkte anwenden. Die Kampagnenmodule sind außerdem in das Business Analytics-System integriert. Dies ermöglicht es Ihnen, die Erfolge Ihrer Kampagnen zu analysieren.

  • Content Selection Framework. Das Content Selection Framework (CSF) ist ein pipelinebasiertes System, das die zu liefernden Inhalte für Werbe- und Preisnachlasskampagnen bestimmt. Mit CSF ist es möglich, mit nur einem Aufruf mehrere Inhalte als ein Recordset abzurufen; dies führt zu einer beeindruckenden Geschwindigkeit.

    Die CSF-Architektur unterstützt ein offenes Wertungssystem. Damit ist es Siteentwicklern möglich, den Algorithmus zu ändern, der zur Bestimmung der zu liefernden Inhalte eingesetzt wird. Außerdem können mithilfe von Debuggingcode Ereignisse überwacht werden, die während des Wertungsprozesses auftreten.

  • Ausdrucksgenerator. Der Ausdrucksgenerator von Commerce Server bietet Businessmanagern eine intuitive Benutzeroberfläche zur Erstellung von Ausdrücken. Mit diesen Ausdrücken können Inhalte auf beliebige Geschäftselemente mit einem Profil zugeschnitten werden.

    Business Desk-Benutzer greifen auf den Ausdrucksgenerator über das Kampagnen-Manager-Modul und das Kampagnenausdrucksmodul zu. Der Ausdrucksgenerator ist jedoch so ausgelegt, dass Siteentwickler seine Funktionalität und Benutzeroberfläche mühelos in andere Business Desk-Module oder andere Webanwendungen einbetten können.

  • Listen-Manager. Listen-Manager ist ein Dienst mit einer Business Desk-Benutzeroberfläche zum Import und Export von Listen mit Benutzerprofilen. Dieser Dienst ist in das Business Analytics-System integriert. Dadurch ist es z. B. möglich, über die Ausführung von Berichten eine Profilliste zu erstellen, die dann in Listen-Manager importiert werden kann. Sie können außerdem Segmentdaten in Listen-Manager importieren. Nachdem Sie eine Liste mit Benutzerprofilen in Listen-Manager importiert haben, können Sie diese in das Benutzermodul exportieren. Anschließend lassen sich diese Profilinformationen bei Bedarf aktualisieren, z. B., um zu Zwecken der Zielgruppenadressierung Eigenschaften zu Benutzerprofilen hinzuzufügen. Mithilfe der Liste können Sie auch eine Direktsendungskampgne starten.

  • Commerce Server Direct Mailer. Direct Mailer ist ein schneller, skalierbarer Windows 2000-Dienst, über den personalisierte E-Mail-Nachrichten von einer Webseite bzw. nichtpersonalisierte Mailings aus einer nichtformatierten Textdatei an große Empfängergruppen gesendet werden können. Direct Mailer kann als eigenständiger Prozess oder integriert in die Kampagnenmodule von Business Desk verwendet werden. Direct Mailer verfolgt E-Mails und zeichnet auf, welche davon gesendet und welche geöffnet werden. Dadurch können Sie den Erfolg einer Direktsendungskampgne analysieren.

    Die Direct Mailer-Pipeline wird zur Verarbeitung von Empfängerlisten eingesetzt. Sie haben die Möglichkeit, neue Komponenten zur Pipeline hinzuzufügen, die Komponenten in branchenspezifische Systeme zu integrieren oder diese durch Komponenten von Drittanbietern zu ersetzen.

Business Analytics-System

Das Business Analytics-System enthält Erweiterungen der Analyse- und Vorhersagefunktionen von Site Server 3.0. Mit diesen Erweiterungen wird die Funktionalität, Effizienz und Verarbeitungsgeschwindigkeit beträchtlich erhöht.

Das Business Analytics-System enthält folgende neue Features und Verbesserungen:

  • Analyse. Die Analysemodule von Business Desk enthalten die Funktionalität des Report Writer-Features von Site Server 3.0 sowie eine Vielzahl weiterer Verbesserungen. Mit den Analysemodulen haben Sie folgende Möglichkeiten:
    • Ausführen von Berichten über die Siteaktivität.

    • Anzeigen und Bearbeiten der Berichte in Internet Explorer mithilfe von Microsoft PivotTables und Microsoft PivotCharts.

    • Exportieren der Berichte an das Profilsystem oder das Zielgruppenadressierungssystem und Verwenden der Daten zur Aktualisierung von Profilen oder zur Zielgruppenadressierung von Inhalten.

    • Anpassen von Berichten.

    Berichte können in Commerce Server viel schneller ausgeführt werden, als es in Site Server möglich war. Der Grund dafür ist, dass die für die meisten Berichte benötigten Daten in einer OLAP-Datenbank (Online Analytical Processing) gespeichert sind.

  • Datawarehouse. Das Commerce Server-Datawarehouse ersetzt die Analysis-Datenbank von Site Server 3.0. Das Datawarehouse stellt eine Kombination aus SQL Server-Datenbank, OLAP-Datenbank und einer Reihe von Prozessen dar, die Systemadministratoren zum Importieren und Verwalten von Daten einsetzen. Das Datawarehouse importiert große Datenmengen, die aus einer Reihe verschiedener Datenquellen gesammelt werden. Es stellt täglich anfallende Betriebsdaten über die Besucher Ihrer Site zusammen: Benutzerprofil-, Transaktions- and Klickverlaufsdaten. Außerdem stellt es Produkt- und Werbeanzeigendaten zusammen. Diese Daten stammen aus Ihren Webserverprotokollen, den Commerce Server-Datenbanken sowie anderen von Ihnen angegebenen Datenquellen. Das Datawarehouse verwaltet die Daten in der Datenbank dann zum Zweck der Businessanalyse.

    Über Data Warehouse-Eigenschaften können Sie bestimmen, wie Daten importiert werden sollen.

  • Vorhersagedienst. Die Vorhersageressource ist ein Windows 2000-Dienst, der optional bei einer vollständigen oder einer benutzerdefinierten Commerce Server 2000-Installation installiert wird. Mit dem Vorhersagedienst können Sie Ihre Website mit Vorhersagefähigkeiten ausstatten, z. B., um Produktempfehlungen anzuzeigen.

    Der Vorhersagedienst von Commerce Server enthält eine Vielzahl von Verbesserungen, durch die er effizienter als Site Server 3.0 Predictor arbeitet. Außerdem enthält der Vorhersagedienst zusätzliche Funktionen, die Ihnen das Analysieren Ihrer Modelle ermöglichen.

    Der Vorhersagedienst bietet folgende Verbesserungen und Funktionen:

    • Segmentmodelle. Zusätzlich zu den Vorhersagemodellen lassen sich jetzt Segmentmodelle erstellen. In einem Segmentmodell (auch "Gruppenmodell") werden Benutzer in Segmente oder in Benutzergruppen eingeteilt, denen bestimmte Eigenschaften oder Verhaltensweisen gemeinsam sind. Diese Segmente lassen sich zum anschließenden Marketing verwenden.

    • Vorhersagemodell-Viewer. Vorhersagemodelle lassen sich mithilfe des Vorhersagemodell-Viewers analysieren, auf den Sie über Commerce Server-Manager zugreifen. Segmentmodelle können unter Verwendung des Segment-Viewer-Moduls in Business Desk analysiert werden.

    • Modellbasierter Algorithmus. Bei Site Server 3.0 verwendete Predictor einen datenbasierten Algorithmus zur Erstellung von Vohersagen. Der neue modellbasierte Algorithmus verwendet Entscheidungsbäume (Abhängigkeitsnetze) für seine Vorhersagen. Dieses Verfahren ist genauer und wesentlich schneller.

    • Automatisierte Datenanalyse. Der Vorhersagedienst bietet Features für die effiziente Stichprobenentnahme von Daten, verbesserte Methoden zur Auswahl der zu modellierenden Attribute sowie einen Algorithmus, der automatisch die optimale Verteilung für die Modellierung dieser Attribute "abschätzt".

    • Offline-Erstellung von Modellen. Modelle werden nicht auf dem Webserver erstellt, um negative Auswirkungen auf die Performance Ihrer Site zu vermeiden.

    • Alle Webserver verwenden dasselbe Modell. Unter Site Server 3.0 musste für jeden Webserver ein eigenes Modell erstellt werden. Unter Commerce Server verwenden alle Webserver dasselbe Modell. Dadurch werden bei der Modellerstellung weniger Ressourcen beansprucht.

Siehe auch

Commerce Server-Konzepte

Business Desk-Benutzer

Business Desk-Kataloge

Business Desk-Kampagnen

Business Desk-Analyse


Pipelinefeatures

Commerce Server 2000 enthält eine Reihe neuer Pipelinefeatures, die mehr Flexibilität bei der Bestellbearbeitung, vereinfachte Verwaltung von Versandarten, flexiblere Preisnachlassverarbeitung sowie eine erhöhte Effizienz beim Laden und Ausführen von Pipelines bieten. Zu diesen Features zählen:

  • Währungsverarbeitung mit hoher Genauigkeit

  • Verarbeitung von Mehrfachlieferungen

  • Preisnachlassverarbeitung

  • Pipelinepooling

Siehe auch

Working with Pipelines (englisches Thema)

Currency Enhancements (englisches Thema)

Multiple-shipment Shipping Architecture (englisches Thema)

Discount Objects (englisches Thema)

Pooled Pipelines (englisches Thema)


Eingabehilfen für körperlich Behinderte

Microsoft ist bemüht, eine möglichst einfache Verwendung seiner Produkte und Dienste für alle Personen zu gewährleisten. In diesem Abschnitt finden Sie Informationen über Features, die Personen mit körperlichen Behinderungen die Verwendung von Commerce Server 2000 erleichtern.

Informationen über die Verwendung der Tastatur zum Navigieren im Hilfe-Viewer finden Sie unter Tastenkombinationen des Hilfe-Viewers.

Eine Liste der häufigsten Tastenkombinationen für Commerce Server Business Desk finden Sie unter Verwenden von Tastenkombinationen.

Eingabehilfen in Microsoft Windows 2000

Weitere Informationen zu Eingabehilfen

Eingabehilfen in Microsoft Windows 2000

Commerce Server 2000 unterstützt die im Folgenden aufgeführten Eingabehilfen von Windows 2000. Diese Features stehen in Commerce Server Business Desk, Commerce Server-Manager und im Pipeline-Editor zur Verfügung.

  • Bildschirmlupe. Vergrößert einen Teil des Bildschirms zur leichteren Lesbarkeit (in einem separaten Fenster).

  • Narrator. Liest die Informationen auf dem Bildschirm vor (auch Dialogfeldnamen, Menüs oder eingegebenen Text). Narrator bietet auch Blinden oder Personen mit anderen Sehbehinderungen ein Mindestmaß an Bedienungsmöglichkeiten zur Konfiguration oder in Notfällen.

    Anmerkung

    • Narrator ist nur in der englischen Sprachversion von Windows 2000 verfügbar verfügbar.
  • Bildschirmtastatur. Zeigt eine Tastatur auf dem Bildschirm an, sodass Sie Daten über ein Zeigegerät (Maus oder Eingabegerät mit einem Schalter) eingeben können. Die Bildschirmtastatur ist mit den meisten Tastaturen und Tastatureinstellungen kompatibel.

Weitere Informationen über die Verwendung dieser und anderer Eingabehilfen finden Sie unter "Eingabehilfen für körperlich Behinderte" in der Windows 2000 Server-Hilfe.

Weitere Informationen zu Eingabehilfen

Informationen zu den Eingabehilfen finden Sie in der Windows 2000-Hilfe im Handbuch Erste Schritte mit Windows 2000 unter "Eingabehilfen für körperlich Behinderte".

Hinweise zu den Eingabehilfen in Microsoft SQL Server finden Sie in den Onlinebüchern zu SQL Server unter "Eingabehilfen für Personen mit Behinderungen".

Weitere Informationen zu den Microsoft-Produkten für körperlich Behinderte finden Sie in der Microsoft-Website für Eingabehilfen unter www.microsoft.com/enable/. In dieser Site finden Sie:

  • Umfassende Informationen über die für Microsoft-Produkte verfügbaren Dienste für körperlich Behinderte.

  • Informationen zu einer Vielzahl von Hardware- und Softwareprodukten von anderen Herstellern, die die Verwendung von Personalcomputern erleichtern.

  • Eine Übersicht über andere Produkte, Dienste und Ressourcen für körperlich Behinderte von Microsoft und anderen Organisationen.


Microsoft Product Support Services

Wenn Sie eine Frage haben

Wenn Sie Fragen zu Ihrem Microsoft-Produkt haben, empfiehlt es sich, im Handbuch und in der Online-Hilfe nachzusehen. Weitere technische Hilfestellungen sowie Informationen erhalten Sie auch im Internet auf unseren Online Supportseiten. Wenn Sie telefonische Unterstützung benötigen, wenden Sie sich bitte an den Technischen Support von Microsoft (Microsoft Product Support Services).

Wenn Sie anrufen, sollten Sie sich an Ihrem Computer befinden und die Produktdokumentation griffbereit vor sich haben. Bitte geben Sie bei telefonischen Anfragen Folgendes an:

  • Die Produktbezeichnung und die Versionsnummer des von Ihnen verwendeten Microsoft-Produkts.

  • Die von Ihnen benutzte Hardware (ggf. einschließlich der Netzwerkhardware).

  • Das von Ihnen eingesetzte Betriebssystem.

  • Den genauen Wortlaut von eventuell am Bildschirm angezeigten Meldungen.

  • Eine Beschreibung des Problems und der aktuellen Arbeitsschritte, bevor das Problem auftrat.

  • Eine Beschreibung Ihres Vorgehens beim Versuch, das Problem selbst zu lösen.

Microsoft Product Support Services

Microsoft unterstützt Sie mit einer breiten Palette von Dienstleistungen: Im Internet finden Sie nicht nur den kostenfreien Online Support, sondern auch Informationen zu unserem umfangreichen deutschsprachigen Supportangebot:

www.microsoft.com/support/germany

Kostenloser Online Support

Im Zentrum der Microsoft Product Support Services steht der kostenlose Online Support. Hier erhalten alle Anwender schnell und einfach Informationen und Hilfe zur Selbsthilfe für den optimalen Einsatz der Microsoft-Software. Der Online Support ist rund um die Uhr kostenlos im Internet verfügbar und bietet Ihnen folgende Services:

  • Knowledge Base – Kein Problem ist zu schwer, kein Begriff zu schwierig – in der deutschsprachigen Knowledge Base finden Sie Tausende von Artikeln unserer Supportteams. Der schnellste Weg zur Problemlösung rund um die Uhr: Einfach ein Stichwort eingeben und das Produkt auswählen.

  • Frequently Asked Questions – Sie haben Fragen – wir die Antworten. In den "Frequently Asked Questions" (FAQs) finden Sie eine Sammlung der Probleme, die am häufigsten an unser Supportteam herangetragen werden. Gerade, wenn Sie die exakte Ursache Ihres Problems nicht kennen, eignen sich die FAQs als erste Anlaufstelle.

  • Troubleshooter – Der Troubleshooter ist Ihr Supportassistent, der Ihr Problem durch Fragen mit verschiedenen Antwortmöglichkeiten eingrenzt und so die Lösung vereinfacht.

  • Downloads – Damit Sie immer auf dem neuesten Stand der Entwicklung sind, bietet unser Downloadbereich aktuelle Updates, Produktergänzungen und Service Packs. Auch kostenlose Software und Betaversionen halten wir dort für Sie bereit.

  • Newsgroups – Zu vielen Microsoft-Produkten gibt es eigene Newsgroups, in denen sich unsere deutschsprachigen Kundinnen und Kunden gegenseitig helfen. Mit einem speziellen Programm fördern wir ein hohes fachliches Niveau und eine freundliche Atmosphäre in unseren Newsgroups. Probieren Sie es aus: Schildern Sie dort Ihr Problem, wenn Sie einmal nicht weiterkommen.

  • Kostenlose Supportanfragen via Internet - Im Fall der Fälle können Sie den Microsoft Supportspezialisten für die meisten Produkte zwei kostenlose technische Anfragen stellen. Das geht ganz bequem per Mausklick. Sie können Ihre Anfrage im Internet abschicken, dort den Status Ihrer Anfrage verfolgen und Ihre Antwort abrufen. Sie benötigen lediglich Ihre Produkt-Seriennummer (PID) und ein kostenloses Microsoft Passport-Konto.

Sämtliche deutschsprachigen, webbasierten Dienstleistungen sind unter der folgenden Adresse verfügbar:

www.microsoft.com/support/germany

Hier finden Sie auch die professionellen Service-Desks für Entwickler, Microsoft-Handelspartner und IT-Spezialisten.

Kostenfreie technische Anfragen

Kundinnen und Kunden, die Desktop-Betriebssysteme wie Windows 98, Desktop-Anwendungen wie Office 2000 oder Consumer Produkte wie Encarta, Money oder Spiele im Fachhandel erwerben, haben auch die Möglichkeit, zwei kostenlose Anfragen an unser Supportteam zu stellen – telefonisch oder via Internet. Egal, ob Sie Fragen zur Installation oder zur Bedienung haben – hier wird Ihnen freundlich und schnell geholfen. Sie tragen nur die Telefonkosten (z.B. in Deutschland DM 0,24 pro Minute).

Kostenlose technische Anfragen an Microsoft werden nicht für Software angeboten, die bereits auf einem neuen PC vorinstalliert war (sogenannte OEM-Lizenzen), und für Lizenzen, die im Rahmen von Lizenzierungsprogrammen für Unternehmen erworben wurden (z. B. OPEN, SELECT). In diesem Fall wenden Sie sich für kostenlose Unterstützung bitte an Ihren Händler oder den Hersteller des PCs.
Die Adressen finden Sie in der Dokumentation zu Ihrem PC und für die gängigsten Hersteller auch online unter:

www.microsoft.com/support/germany

Sie erreichen uns von Montag bis Freitag zwischen 8:00 Uhr und 18:00 Uhr

und Samstags zwischen 9:00 Uhr und 17:00 Uhr unter folgenden Rufnummern:

Wenn Sie von Deutschland aus anrufen: 01805/67 22 55*

Wenn Sie von Österreich aus anrufen: 01-502-22 22 55

Wenn Sie von der Schweiz aus anrufen: 0848/80-22 55

Zeiten und Verfügbarkeit des Supports unterliegen den aktuellen Bedingungen der Microsoft-Niederlassung in Ihrer Nähe und können – mit einer angemessenen Übergangszeit – von Zeit zu Zeit geändert werden.

Kostenpflichtige technische Anfragen

Unabhängig davon, ob Sie Ihre beiden kostenlosen Anfragen bereits genutzt haben oder Lizenzen ohne Anspruch auf kostenlose Unterstützung (etwa OEM-Lizenzen, OPEN, SELECT) einsetzen – wir lassen Sie nicht allein. Unser Supportteam beantwortet Ihre Fragen in diesen Fällen gerne gegen Gebühr.

Wenden Sie sich für weitere Informationen bitte an die Vertragsberatung:

Wenn Sie von Deutschland aus anrufen: 01805/67 23 30*

Wenn Sie von Österreich aus anrufen: 01-502-22 23 30

Wenn Sie von der Schweiz aus anrufen: 0848/80-23 30

Aktuelle Informationen zu den Microsoft Product Support Services finden Sie auch im Internet:

www.microsoft.com/support/germany

*DM 0,24/Min. € 0,12/Min.


Weitere nützliche Microsoft Services

Das Microsoft TechNet -Abonnement: Fachwissen auf Abruf:

Wenn technische Schwierigkeiten auftreten, bleibt oft keine Zeit lange nach Lösungen zu suchen. Hilfe bietet hierbei das Microsoft TechNet-Abonnement: Sie erhalten jeden Monat eine CD-ROM mit dem aktuellen Fachwissen unserer IT-Spezialisten. So bekommen Sie einen Großteil technischer Probleme selbst in den Griff.

www.microsoft.com/germany/technet/cd

Wissen aus erster Hand – Microsoft Press

Der Microsoft Press Verlag bietet umfangreiche Buchreihen zu den wichtigsten Produkten von Microsoft an. Diese helfen Ihnen, Ihr Microsoft-Produkt schnell kennenzulernen und erfolgreich einzusetzen.

www.microsoft.com/germany/mspress

Allgemeine Informationen –Infoservice

Bei Fragen zur allgemeinen Produktverfügbarkeit, zu Preisen, Updatemöglichkeiten und dem Lieferumfang eines Produkts wenden Sie sich bitte an:

Für Deutschland:

Microsoft Direkt
Postfach 11 99
33410 Verl
Telefon: 01805/25 11 99
Fax: 01805/25 11 91

Für Österreich:

Microsoft InfoService
Postfach 262
1101 Wien
Telefon: 0 8000 123-345
Fax: (02236) 64595
Email: infoservice@microsoft.at
Montag – Freitag 9:00 – 17:00 Uhr

Für die Schweiz:

Microsoft Info-Service
Postfach
8021 Zürich

Telefon: 0848 – 830835

Fax: 0848 – 830836


Microsoft Niederlassungen

Deutschland:

Edisonstr.1
85713 Unterschleißheim
Telefon: 089 / 3176-0
Fax: 089 / 3176-1000

Österreich:

Microsoft Ges.m.b.H
Favoritenstraße 321
A-1100 Wien
Telefon: 01 - 610 64 - 0
Fax: 01 - 610 64 - 200

Schweiz:

Microsoft AG
Alte Winterthurerstr. 14a
CH-8304 Wallisellen / Zürich
Telefon: 01 / 839 61 11
Fax: 01 / 831 08 69


Verwenden der Commerce Server-Hilfe

Mit dem Commerce Server 2000-Hilfesystem erhalten Sie eine Dokumentation für Siteentwickler, Systemadministratoren und Businessmanager.

Dieser Abschnitt beinhaltet folgende Themen:

  • Informationen zur Commerce Server-Hilfe. Beschreibt die Struktur und die Inhalte der Commerce Server 2000-Hilfe.

  • Verwenden des Hilfe-Viewers. Erklärt, wie Sie mit dem Hilfe-Viewer benötigte Informationen finden.

  • Nach einem Hilfethema suchen. Erklärt, wie Sie mithilfe der Operatoren OR, AND, NEAR und NOT nach verwandten Ausdrücken und Themen suchen.

  • Erstellen von Lesezeichen für ein Hilfethema. Erklärt, wie Sie Lesezeichen erstellen, um Hilfethemen schnell wieder finden zu können.

  • Drucken eines Hilfethemas. Erklärt, wie Sie ein oder mehrere Themen gleichzeitig drucken.

  • Kopieren eines Hilfethemas. Erklärt, wie Sie Hilfethemen kopieren und in andere Dokumente einfügen.

  • Verwenden von Sprachfilterung. Erklärt, wie Sie die Sprachfilterung verwenden, um Beispielcode in C++ oder Microsoft Visual Basic anzuzeigen.

  • Tastenkombinationen des Hilfe-Viewers. Listet die Tastenkombinationen für die Verwendung des Hilfe-Viewers auf.

  • Weitere Ressourcen. Listet Informationsressourcen auf, die neben der Commerce Server 2000-Hilfe zur Verfügung stehen.


Informationen zur Commerce Server-Hilfe

Mit der Commerce Server 2000-Hilfe haben Benutzer einen schnellen Zugriff auf bestimmte Informationen – z. B. auf Workflow, Konzepte, Abläufe oder auf Verweise, die sie zum effektiven Verwalten und zur Entwicklung ihrer Commerce-Sites benötigen.

Struktur des Hilfesystems

Hilfe für Entwickler

Business Desk-Hilfe

Struktur des Hilfesystems

Das Inhaltsverzeichnis ist in mehrere Bücher unterteilt. Jedes Buch behandelt einen Hauptfunktionsbereich des Produkts. Die Knoten bzw. Kapitel dieses Buches entsprechen den Haupttasks, die Sie in diesem Bereich durchführen. In den Kapiteln werden Schlüsselkonzepte bzw. Technologien erklärt, die Sie verstehen müssen, um solche Tasks erfolgreich zu beenden.

Die folgende Tabelle listet die Commerce Server-Bücher auf und beschreibt jedes einzelne Buch.

Buch | Beschreibung | Benutzer
Erste Schritte | Beschreibt Commerce Server-Features, Tools und Konzepte. Erklärt, wie Sie Ihre Commerce Server-Site planen und stellt eine Verknüpfung zu den Installationsanweisungen bereit. | Alle Benutzer von Commerce Server
Entwickeln der Site | Erklärt, wie Sie Ihre Entwicklungsumgebung einrichten, mit Commerce Server Objects programmieren, Pipelines anpassen sowie Commerce Server mit anderen Anwendungen integrieren. | Siteentwickler
Bereitstellen der Site | Erklärt, wie Sie eine Site, die SQL Server oder Active Directory verwendet, mit dem Site Packager bereitstellen, und wie Sie inkrementelle Aktualisierungen Ihrer Site erstellen. Erklärt, wie Sie Ihre Site sichern. Gibt zwei detaillierte Beispiele zum Installieren von Commerce Server auf einer Clusterkonfiguration mit vier Computern sowie auf einer Konfiguration mit drei Computern ohne Cluster. | Systemadministratoren
Verwalten von Commerce Server | Beschreibt die Ressourcen, Sites, Anwendungen, den Webserver sowie die Verwaltungsdatenbank von Commerce Server und erklärt deren Verwaltung. Erklärt, wie Sie Profile, CS-Authentifizierung, Direct Mailer, Datawarehouse und den Vorhersagedienst verwalten. Erläutert, wie Sie Commerce Server einrichten, um BizTalk Server zu verwenden. | Systemadministratoren
Arbeiten mit Business Desk | Erklärt, wie Sie Ihre Site mit Business Desk verwalten. Enthält ein Lernprogramm mit Lektionen, mit deren Hilfe Sie das Verwalten von Business-To-Consumer-Sites und Business-To-Business-Sites lernen können. | Businessmanager
Erweitern von Commerce Server | Erklärt, wie Sie benutzerdefinierte Ressourcen in Commerce Server integrieren sowie neue Business Desk-Module und neue Pipelinekomponenten erstellen. Erklärt, wie Sie benutzerdefinierte Berichte erstellen, Datawarehouse erweitern, mit Produktkatalogen von Drittanbietern sowie mit Microsoft Passport integrieren. | Siteentwickler
Programmierreferenz | Stellt umfangreiches Referenzmaterial über COM-Komponenten und ihre Funktionen in Commerce Server zur Verfügung. | Siteentwickler
Problembehandlung bei Commerce Server | Beschreibt Merkmale und Lösungen von Problemen, die beim Verwenden von Commerce Server auftreten können. | Systemadministratoren und Siteentwickler
Glossar | Definiert Begriffe, die in Commerce Server häufig verwendet werden. | Alle Benutzer von Commerce Server

In jedem Buch befinden sich Knoten, die auf folgende Informationstypen verweisen:

  • Workflowdiagramme. In jeder Dokumentation einer Business Desk-Kategorie befinden sich eine Abbildung der Haupttasks dieses Funktionsbereiches sowie Verknüpfungen zu den Task-Themen, die schrittweise Anleitungen zum Durchführen dieser Tasks bereitstellen.

  • Erste Schritte. Enthält Erste Schritte-Hilfethemen sowohl für Commerce Server als auch für Business Desk.

  • Standardthemen. Diese Themen beschreiben gängige Aufgaben und bieten Navigationsinformationen zur Verwendung von Business Desk, Commerce Server-Manager und Pipelines.

  • Konzepte. Wenn ein Titel in den Abschnitten zu Business Desk oder anderswo mit "Informationen zu" beginnt, signalisiert dies, dass hier Schlüsselkonzepte erklärt werden, die zur erfolgreichen Verwendung von Commerce Server und Commerce Server-Komponenten anleiten.

  • Tasks. Die Task-Themen stellen schrittweise Anleitungen zum erfolgreichen Beenden der im Workflow angezeigten Tasks bereit.

Hilfe für Entwickler

Die Commerce Server 2000-Hilfe implementiert ein Sprachfilterungstool, damit Sie nur die Ihre Programmierumgebung betreffenden Informationen durchsuchen müssen. In der Titelleiste der in der Programmierreferenz enthaltenen Themen befindet sich eine Filterschaltfläche mit einem Sprachmenü. In diesem Menü können Sie wählen, ob Sie Dokumentationen so anzeigen, dass sie entweder auf Visual C++ oder auf Visual Basic zugeschnitten sind. Die Wahl der Sprache bleibt auch beim Anzeigen von Folgeseiten aktiviert.

Zusätzlich zur Hilfe stehen Entwicklern folgende Informationen zur Verfügung:

  • Commerce Server Software Development Kit (SDK). Enthält Codebeispiele und eine Dokumentation zur Entwicklung von E-Commerce-Lösungen mit Commerce Server. Es wird z. B. erklärt, wie Sie Codes für verwandte Verkaufstypen (wie Up-Selling, Cross-Selling und Inventarverkäufe) entwickeln. SDK wurde mit Commerce Server 2000 installiert.

    Um auf SDK zuzugreifen, klicken Sie auf Start, zeigen Sie erst auf Programme, dann auf Microsoft Commerce Server 2000 und klicken Sie anschließend auf Software Development Kit.

  • Commerce Server 2000 Resource Kit. Enthält detaillierte Informationen über das Planen, Entwickeln, Bereitstellen, Skalieren und Optimieren Ihrer Commerce Server-Installation. Commerce Server 2000 Resource Kit wird von Microsoft Press herausgegeben.

Business Desk-Hilfe

Das Business Desk-Hilfesystem ist ein Teil des Commerce Server 2000-Hilfesystems. Benutzer von Business Desk haben Zugriff auf die in dem Buch Arbeiten mit Business Desk enthaltene Hilfe. Allerdings haben sie über ihren Clientcomputer keinen Zugriff auf weitere Commerce Server-Bücher.

Um von Business Desk aus Zugriff auf die Hilfe zu erhalten, klicken Sie auf der Symbolleiste auf das Symbol Business Desk-Hilfe.


Verwenden des Hilfe-Viewers

Das Commerce Server 2000-Hilfesystem verwendet zum Formatieren und Anzeigen von Informationen das HTML-Format. Im Hilfe-Viewer befinden sich ein Inhaltsverzeichnis, ein Index und eine Volltextsuche, die das Finden von Informationen sehr vereinfachen. Buchsymbole zeigen untergeordnete Bücher und Themen an.

Klicken Sie auf das Erweiterungssymbol (+) neben dem Buchtitel, um das Inhaltsverzeichnis zu erweitern und Themen des Buches anzuzeigen. Wenn Sie auf das Reduktionssymbol klicken (-), werden die Themen ausgeblendet. Mit dem Hilfe-Viewer können Sie neben dem Hilfethema auch gleichzeitig Inhaltsverzeichnis, Index sowie Suchergebnisse anzeigen.

Ebenso beinhaltet der Hilfe-Viewer auch die Registerkarte Favoriten, welche Sie zum Erstellen von Lesezeichen für Themen verwenden können. So können Sie schnell die Themen anzeigen, auf die Sie häufig zurückgreifen.

Um mehr über Commerce Server zu erfahren, können Sie mithilfe des Inhaltsverzeichnisses die Dokumentation durchsuchen. Wenn Sie im Inhaltsverzeichnis auf ein Thema klicken, werden die Informationen im Inhaltsbereich des Hilfefensters angezeigt.

Im Hilfe-Viewer stehen folgende Suchfunktionen zur Verfügung:

  • Registerkarte "Inhalt"
    1. Klicken Sie auf die Registerkarte Inhalt, um das Inhaltsverzeichnis zu durchsuchen. Doppelklicken Sie auf die Buchsymbole, um Themeneinträge und untergeordnete Bücher anzuzeigen.

    2. Klicken Sie auf einen Eintrag im Inhaltsverzeichnis, um das entsprechende Thema anzuzeigen.
  • Registerkarte "Index"
    1. Um eine Liste von Indexeinträgen anzuzeigen, klicken Sie auf die Registerkarte Index,und geben Sie dann ein Wort ein bzw. scrollen Sie durch die Liste. Ein Thema ist oftmals in mehr als einem Indexeintrag zu finden.

    2. Doppelklicken Sie auf einen Indexeintrag, um das entsprechende Thema anzuzeigen.
  • Registerkarte "Suchen"
    1. Klicken Sie auf die Registerkarte Suchen, geben Sie das gesuchte Wort bzw. den Ausdruck ein, und klicken Sie dann auf Themen auflisten, um alle vorhandenen Einträge zu finden. Um die Suche einzugrenzen, können Sie mehrere Wörter bzw. Ausdrücke mit AND, OR, NEAR oder NOT kombinieren.

    2. Doppelklicken Sie auf ein Suchergebnis, um das entsprechende Thema ausführlich anzuzeigen.

    Weitere Informationen über das Suchen nach Themen finden Sie unter Nach einem Hilfethema suchen.

  • Registerkarte "Favoriten"
    1. Sie können ein Lesezeichen für ein Thema mithilfe der Registerkarten Inhalt, Index oder Suchen erstellen. Mit dem Lesezeichen können Sie dann das Thema finden und anzeigen.

    2. Klicken Sie auf die Registerkarte Favoriten und dann auf Hinzufügen, um eine Themenüberschrift in der Liste Themen zu speichern.

    3. Doppelklicken Sie auf ein Lesezeichen in der Liste Themen, um ein Thema schnell anzuzeigen.

Siehe auch

Nach einem Hilfethema suchen

Erstellen von Lesezeichen für eine Hilfethema

Drucken eines Hilfethemas

Kopieren eines Hilfethemas

Verwenden von Sprachfilterung

Tastenkombinationen des Hilfe-Viewers


Nach einem Hilfethema suchen

  1. Klicken Sie auf die Registerkarte Suchen, geben Sie das gesuchte Wort ein und klicken Sie dann auf Themen auflisten, um alle vorhandenen Einträge zu finden.

  2. Wenn Sie nach einem bestimmten Ausdruck suchen, geben Sie den Ausdruck in Anführungszeichen ein. Beispiel: Mit der Eingabe "der Computer und Monitor" finden Sie die Themen, die den Ausdruck der Computer und Monitor enthalten.

  3. Um die Suche einzugrenzen, können Sie mehrere Wörter bzw. Ausdrücke mit AND, OR, NEAR oder NOT kombinieren.

    Zum Beispiel:

    • Mit der Suche nach Computer AND Monitor finden Sie Themen, die sowohl Computer als auch Monitor enthalten.

    • Mit der Suche nach Computer OR Monitor finden Sie Themen, die Computer oder Monitor enthalten.

    • Mit der Suche nach Computer NEAR Monitor finden Sie Themen, in denen Computer und Monitor nahe beieinander stehen.

    • Mit der Suche nach Computer NOT Monitor finden Sie Themen, die das Stichwort Computer, jedoch nicht das Stichwort Monitor enthalten.
  4. Doppelklicken Sie auf ein Suchergebnis, um das entsprechende Thema ausführlich anzuzeigen.

Siehe auch

Erstellen von Lesezeichen für ein Hilfethema

Drucken eines Hilfethemas

Kopieren eines Hilfethemas

Verwenden von Sprachfilterung

Tastenkombinationen des Hilfe-Viewers


Erstellen von Lesezeichen für ein Hilfethema

  1. Verwenden Sie die Registerkarten Inhalt, Index oder Suchen, um das Thema zu finden und anzuzeigen, für welches Sie ein Lesezeichen erstellen möchten.

  2. Klicken Sie auf die Registerkarte Favoriten und dann auf Hinzufügen.

Der Hilfe-Viewer fügt die Themenüberschrift der Liste Themen hinzu. Sie können später in der Liste auf das Lesezeichen doppelklicken, um das Thema anzuzeigen.

Anmerkungen

  • Sie können eine Liste mit häufig benötigten Hilfethemen erstellen.

  • Um ein Lesezeichen aus der Liste Themen zu entfernen, klicken Sie auf das Lesezeichen und dann auf Entfernen.

Siehe auch

Nach einem Hilfethema suchen

Drucken eines Hilfethemas

Kopieren eines Hilfethemas

Verwenden von Sprachfilterung

Tastenkombinationen des Hilfe-Viewers


Drucken eines Hilfethemas

  • Klicken Sie mit der rechten Maustaste auf das Thema, das Sie drucken möchten. Klicken Sie dann auf Drucken.

  • Wenn Sie ein Popupthema drucken möchten, klicken Sie mit der rechten Maustaste in das Popupfenster, und klicken Sie dann auf Drucken.

  • Um alle Themen eines Buches zu drucken, wählen Sie das entsprechende Buch auf der Registerkarte Inhalt. Klicken Sie auf der Hilfesymbolleiste erst auf Optionen, klicken Sie dann auf Drucken und schließlich auf Ausgewähltes Thema und alle Unterthemen drucken.

Anmerkungen

  • Beim Ausdrucken eines Abschnitts, der mehrere Themen mit mehreren Illustrationen beinhaltet, werden die Illustrationen nicht gedruckt.

  • Codebeispiele und große Illustrationen werden möglicherweise unvollständig gedruckt. Wenn eine Codezeile sehr lang bzw. eine Illustration sehr groß ist, ragt das rechte Ende des Codes bzw. der rechte Rand der Illustration über den Seitenrand hinaus und wird nicht gedruckt.

Siehe auch

Erstellen von Lesezeichen für ein Hilfethema

Nach einem Hilfethema suchen

Kopieren eines Hilfethemas

Verwenden von Sprachfilterung

Tastenkombinationen des Hilfe-Viewers


Kopieren eines Hilfethemas

  1. Klicken Sie im Themenbereich des Hilfe-Viewers mit der rechten Maustaste auf das zu kopierende Thema. Klicken Sie dann auf Alles auswählen.

  2. Klicken Sie im Thema nochmals mit der rechten Maustaste, und klicken Sie dann auf Kopieren.

  3. Öffnen Sie das Dokument, in welches das Thema kopiert werden soll.

  4. Klicken Sie auf den Bereich Ihres Dokuments, in welchem die Informationen angezeigt werden sollen.

  5. Klicken Sie im Menü Bearbeiten auf Einfügen.

Anmerkungen

  • Wenn Sie nur einen Teil eines Themas kopieren möchten, markieren Sie den zu kopierenden Abschnitt, klicken Sie mit der rechten Maustaste auf den markierten Bereich, und klicken Sie dann auf Kopieren.

  • Die Nummerierung der einzelnen Schritte wird nicht in die Zwischenablage kopiert.

Siehe auch

Drucken eines Hilfethemas

Erstellen von Lesezeichen für ein Hilfethema

Nach einem Hilfethema suchen

Verwenden von Sprachfilterung

Tastenkombinationen des Hilfe-Viewers


Verwenden von Sprachfilterung

Die Commerce Server 2000-Hilfe implementiert ein Sprachfilterungstool, damit Sie nur die Ihre Programmierumgebung betreffenden Informationen finden. In der Titelleiste der in der Programmierreferenz enthaltenen Themen befindet sich eine Filterschaltfläche mit einem Sprachmenü. In diesem Menü können Sie wählen, ob Sie Dokumentationen so anzeigen, dass sie entweder auf Visual C++ oder auf Visual Basic zugeschnitten sind. Die Wahl der Sprache bleibt auch beim Anzeigen von Folgeseiten aktiviert.

Um die Optionen der Sprachfilterung anzuzeigen, klicken Sie in der Titelleiste erst auf die Filterschaltfläche und dann auf eine der folgenden Optionen:

  • C++

  • Visual Basic

Siehe auch

Drucken eines Hilfethemas

Erstellen von Lesezeichen für ein Hilfethema

Nach einem Hilfethema suchen

Tastenkombinationen des Hilfe-Viewers

Kopieren eines Hilfethemas

Weitere Ressourcen


Tastenkombinationen des Hilfe-Viewers

Wenn Ihre Maus nicht verfügbar ist oder Sie es vorziehen, die Tastatur zu verwenden, können Sie mit folgenden Tastenkombinationen durch den Hilfe-Viewer navigieren.

Tastenkombinationen des Hilfe-Viewers

Eingabe | Zweck
ALT+LEERTASTE | Anzeigen des Systemmenüs.
UMSCHALT+F10 Anzeigen des Kontextmenüs für den Hilfe-Viewer.

Anmerkung

  • Verwenden Sie diese Tastenkombination, wenn der Fokus sich im Themenbereich befindet.
ALT+TAB | Wechseln zwischen dem Hilfe-Viewer und anderen Fenstern.
ALT+O | Anzeigen des Menüs Optionen.
ALT+O und dann T | Ausblenden bzw. Einblenden des Navigationsbereichs.
STRG+TAB | Wechseln zur nächsten Registerkarte im Navigationsbereich.
STRG+UMSCHALT+TAB | Wechseln zur vorherigen Registerkarte im Navigationsbereich.
NACH-OBEN-TASTE | In Inhaltsverzeichnis, Index oder Suchergebnisliste ein Thema nach oben wechseln.
NACH-UNTEN-TASTE | In Inhaltsverzeichnis, Index oder Suchergebnisliste ein Thema nach unten wechseln.
BILD-AUF | In Inhaltsverzeichnis, Index oder Suchergebnisliste eine Seite nach oben wechseln.
BILD-AB | In Inhaltsverzeichnis, Index oder Suchergebnisliste eine Seite nach unten wechseln.
F6 | Wechseln des Fokus im Navigations- bzw. Themenbereich.
ALT+O und dann R | Aktualisieren des Themas, das im Themenbereich angezeigt wird.
NACH-OBEN-TASTE oder NACH-UNTEN-TASTE | Bildlauf durch ein Thema.
STRG+POS1 | An den Anfang eines Themas wechseln.
STRG+ENDE | An das Ende eines Themas wechseln.
STRG+A | Markieren des gesamten Textes im Themenbereich.
ALT+O und dann P | Drucken eines Themas.
ALT+O und dann B | Wechseln zum zuvor angezeigten Thema.
ALT+O und dann F | Wechseln zum nächsten (zuvor angezeigten) Thema.
ALT+F4 | Schließen des Hilfe-Viewers.

Tastenkombinationen der Registerkarte "Inhalt"

Eingabe | Zweck
ALT+C | Anzeigen der Registerkarte Inhalt.
NACH-RECHTS-TASTE | Öffnen eines Buches.
NACH-LINKS-TASTE | Schließen eines Buches.
RÜCKTASTE | Zurückwechseln zu dem zuvor geöffneten Buch.
NACH-OBEN-TASTE oder NACH-UNTEN-TASTE | Auswählen eines Themas.
EINGABETASTE | Anzeigen des ausgewählten Themas.

Tastenkombinationen der Registerkarte "Index"

Eingabe | Zweck
ALT+N | Anzeigen der Registerkarte Index.
NACH-OBEN-TASTE oder NACH-UNTEN-TASTE | Auswählen eines Stichworts in der Liste.
ALT+D oder EINGABETASTE | Anzeigen des zugeordneten Themas.

Tastenkombinationen der Registerkarte "Suchen"

Eingabe | Zweck
ALT+S | Anzeigen der Registerkarte Suchen.
ALT+L | Starten einer Suche.
ALT+D oder EINGABETASTE | Anzeigen des ausgewählten Themas.

Tastenkombinationen der Registerkarte "Favoriten"

Eingabe | Zweck
ALT+I | Anzeigen der Registerkarte Favoriten.
ALT+C | Hinzufügen eines Themas zur Liste Themen.
ALT+P Auswählen eines Themas in der Liste Themen.

Anmerkung

  • Verwenden Sie diese Tastenkombination, wenn der Fokus sich im Themenbereich befindet und Sie in die Liste Themen wechseln möchten.
ALT+R | Löschen eines Themas in der Liste Themen.
ALT+D | Anzeigen eines Themas in der Liste Themen.

Siehe auch

Drucken eines Hilfethemas

Erstellen von Lesezeichen für ein Hilfethema

Nach einem Hilfethema suchen

Verwenden von Sprachfilterung

Kopieren eines Hilfethemas


Weitere Ressourcen

Zusätzlich zum Commerce Server 2000-Hilfesystem stehen die folgenden Informationsquellen zur Verfügung:

  • Das Software Development Kit (SDK), das sich im Ordner Programme\Microsoft Commerce Server\SDK befindet.

  • Das Commerce Server Resource Kit, in Buchform bei Microsoft Press erhältlich.

  • Commerce Server-Website


Installieren von Commerce Server

In diesem Abschnitt werden die Hardware- und Softwareanforderungen für Microsoft Commerce Server 2000 erläutert. Darüber hinaus wird erklärt, wie Sie Commerce Server deinstallieren können. Anweisungen zur Installation von Commerce Server finden Sie unter http://www.microsoft.com/germany/support/produkte/comserinstguide.htm.

Dieser Abschnitt beinhaltet folgende Themen:

  • Hardwareanforderungen. Gibt die Hardwareanforderungen für Commerce Server 2000 an.

  • Softwareanforderungen. Gibt die Softwareanforderungen für Commerce Server 2000 an.

  • Installieren des Business Desk Clients. Erläutert die Installation von Commerce Server Business Desk auf einem Clientcomputer.

  • Deinstallieren von Commerce Server. Erläutert das Deinstallieren von Commerce Server 2000, Commerce Server-Datenbanken, virtuellen Siteverzeichnissen sowie Siteverzeichnissen und –dateien.

  • Deinstallieren des Business Desk Clients. Erläutert, wie der Business Desk Client deinstalliert wird.

Siehe auch

Installieren der Verwaltungstools


Hardwareanforderungen

In diesem Abschnitt finden Sie Hardwareanforderungen für Folgendes:

Commerce Server

Verwaltungstools

Business Desk Client

Commerce Server

Für eine Commerce Server 2000-Installation gelten folgende Hardwareanforderungen:

  • 400 MHz oder schnellere Pentium-kompatible CPU

  • 256 MB RAM (128 MB RAM sind für eine Entwicklungsumgebung ausreichend)

  • 100 MB freier Festplattenspeicherplatz

  • CD-ROM-Laufwerk

  • Netzwerkkarte

  • VGA- oder SVGA-Monitor

  • Microsoft-Maus oder kompatibles Zeigegerät

In Ihrer Produktionsumgebung könnte das Volumen des Datenverkehrs Ihrer Website unter Umständen strengere Hardwareanforderungen für Webserver nötig machen.

Verwaltungstools

Für eine Commerce Server 2000-Installation mit Verwaltungstools gelten folgende Hardwareanforderungen:

  • 266 MHz oder schnellere Pentium-kompatible CPU

  • 128 MB RAM

  • 20 MB freier Festplattenspeicherplatz

  • CD-ROM-Laufwerk

  • Netzwerkkarte

  • VGA- oder SVGA-Monitor mit einer Auflösung von mindestens 800 x 600 Pixel

  • Microsoft-Maus oder kompatibles Zeigegerät

Business Desk Client

Für einen Business Desk Client gibt es folgende Hardwareanforderungen:

  • 266 MHz oder schnellere Pentium-kompatible CPU

  • 5 MB freier Festplattenspeicherplatz

  • CD-ROM- oder DVD-ROM-Laufwerk

  • VGA- oder besserer Monitor mit einer Auflösung von mindestens 800 x 600 Pixel

  • Microsoft-Maus oder kompatibles Zeigegerät


Softwareanforderungen

In diesem Abschnitt finden Sie die Softwareanforderungen für:

Commerce Server

SQL Server

Business Desk Client

Commerce Server

Vor der Installation von Commerce Server 2000 müssen Sie die folgende Software auf Ihrem Server in der angegebenen Reihenfolge installieren:

Anmerkung

  • Dies ist die einzige von Microsoft Professional Support Services unterstützte Plattform. Vorabversionen von Windows 2000 werden nicht unterstützt.
  1. Microsoft Windows 2000 Server oder Advanced Server.

    Wenn Sie nur die Verwaltungstools oder die Commerce Server 2000-Hilfe installieren möchten, ist dies auch auf Microsoft Windows 2000 Professional möglich.

  2. Windows 2000 Server Service Pack 1.

  3. Microsoft Windows 2000-Hotfixes.

    Diese Hotfixes gelten für Microsoft Windows 2000 Server, Microsoft Windows Advanced Server und Microsoft Windows 2000 Professional.

Zusätzlich muss eine Installation von SQL Server 2000 oder SQL Server 7.0 vorhanden sein, auf die Commerce Server im selben Netzwerk zugreifen kann. SQL Server-Softwareanforderungen finden Sie unter SQL Server.

Anmerkung

  • Commerce Server Direct Mailer muss auf demselben Computer wie SQL Server installiert sein.

Ausführliche Informationen über das Konfigurieren einer Produktionsumgebung mit mehren Computern finden Sie unter Bereitstellen der Site.

SQL Server

Commerce Server benötigt Zugriff auf SQL Server 2000 oder SQL Server 7.0 in demselben Netzwerk.

SQL Server 2000-Anforderungen

  • SQL Server 2000-Clienttools

  • SQL Server 2000-Analysis Services

  • Clienttools für SQL Server 2000-Analysis Services

SQL Server 2000 enthält Microsoft Data Access-Komponenten (MDAC) 2.6.

SQL Server 7.0-Anforderungen

  • Microsoft SQL Server 7.0-Clienttools

  • Microsoft SQL Server 7.0, Service Pack 2

  • Microsoft SQL Server 7.0 OLAP Services

  • Microsoft SQL Server 7.0 OLAP Services, Service Pack 2

  • OLAP Add-In-Manager

  • OLAP Server-Clienttools

  • Microsoft Data Access-Komponenten (MDAC) 2.6

Business Desk Client

Vor der Installation von Commerce Server Business Desk Client müssen Sie die folgende Software installieren:

  • Microsoft Windows 98, Microsoft Windows Millennium Edition, Microsoft Windows NT 4.0, Windows 2000 Professional, Windows 2000 Server oder Windows 2000 Advanced Server

  • Internet Explorer 5.5

  • Microsoft Office-Webkomponenten oder SQL Server 2000-Clienttools


Installieren des Business Desk Clients

Der Business Desk Client von Commerce Server muss auf allen Computern installiert werden, von denen aus auf Business Desk zugegriffen werden soll, einschließlich des Computers, auf dem Commerce Server ausgeführt wird. Nach dem Entpacken einer Site können Sie den Business Desk Client installieren. Rufen Sie hierfür den URL der Business Desk-Anwendung auf.

Businessmanager haben außerdem die Möglichkeit, den Business Desk Client zu downloaden. Vor dem Installieren des Business Desk Clients muss die folgende Software auf dem Clientcomputer installiert werden:

  • Microsoft Internet Explorer 5.5, zu finden auf der Commerce Server 2000-CD.

  • Microsoft Office-Webkomponenten oder SQL Server 2000-Clienttools.

Wenn Sie als Betriebssystem Windows 2000 einsetzen, benötigen Sie Administratorrechte zur Installation des Business Desk Clients.

Anmerkungen

  • Zum Installieren des Business Desk Clients benötigen Sie eine Internetverbindung.

  • Es wird stark empfohlen, dass Ihr Clientcomputer über eine schnelle Verbindung zu der Business Desk-Anwendung verfügt.

So installieren Sie den Business Desk Client

  1. Klicken Sie auf Start, zeigen Sie auf Programme, und klicken Sie dann auf Internet Explorer.

  2. Geben Sie im Feld Adresse den URL Ihrer Business Desk-Installation ein (z. B. http://Computername/BusinessDesk). Drücken Sie dann die Eingabetaste.

  3. Wählen Sie im Dialogfeld Nach Ordner suchen einen Ordner, in dem der Business Desk Client installiert werden soll. Klicken Sie anschließend auf OK.

    Der Business Desk Client-Setup wird gestartet. Im oberen Bereich des Bildschirms Business Desk Client-Setup werden Tipps zur Problembehandlung für das Downloaden der Microsoft ActiveX-Steuerelemente angezeigt. Diese Steuerelemente werden zum Installieren des Business Desk Clients benötigt.

    Im unteren Bereich des Bildschirms werden Häkchen angezeigt, sobald die einzelnen Installationselemente abgeschlossen sind. Nach Abschluss aller vier Installationsaufgaben ist die Business Desk-Installation fertig. Eine Verknüpfung zu Business Desk wird im unteren Bereich des Bildschirms angezeigt.

    Anmerkung

    • Wenn Sie die ActiveX-Steuerelemente nicht downloaden können, folgen Sie den Anweisungen auf dem Bildschirm Business Desk Client-Setup.
  4. Schließen Sie Internet Explorer, nachdem die Business Desk-Installation abgeschlossen ist.

Das Business Desk-Symbol erscheint als Verknüpfung auf Ihrem Desktop, und eine Verknüpfung zu Business Desk wird im Menü Start angezeigt.

So starten Sie Business Desk

  • Doppelklicken Sie auf dem Desktop auf das Symbol Business Desk. Sie können auch auf Start und dann auf die Verknüpfung Business Desk klicken.

Anmerkungen

  • Sie können gleichzeitig zwei Business Desk Clients für verschiedene Sites auf Ihrem Computer ausführen.

  • Zwei Instanzen desselben Business Desk Clients für dieselbe Site können hingegen nicht geöffnet werden.

Siehe auch

Hardwareanforderungen

Softwareanforderungen

Deinstallieren des Business Desk Clients


Deinstallieren von Commerce Server

Zum Deinstallieren von Commerce Server 2000 müssen Sie die folgenden Schritte in der angegebenen Reihenfolge ausführen (ausführliche Anweisungen für die einzelnen Schritte finden Sie weiter unten):

  1. Entfernen Sie die Commerce Server 2000-Lösungssites. Führen Sie diesen Schritt aus, um die leere Lösungssite oder andere Lösungssites zu entfernen, die Sie von http://www.microsoft.com/germany/servers/commerceserver/2000/solutionsites.htm gedownloadet haben. Bei diesem Schritt werden die Lösungssites aus dem Ordner Microsoft Commerce Server\PuP Packages entfernt. Danach lassen sich diese Sites nicht mehr entpacken. Die bereits entpackten Lösungssites werden dabei nicht entfernt.

  2. Entfernen Sie die Commerce Server 2000-Plattform. Führen Sie diesen Schritt aus, um die Laufzeitobjekte, Verwaltungstools, die globale Ressource für den Vorhersagedienst sowie die globale Ressource für Direct Mailer von Commerce Server zu entfernen.

  3. Löschen Sie die Commerce Server 2000-Installationsordner.

  4. Löschen Sie die Commerce Server 2000-Datenbank. Beispielsweise die Verwaltungsdatenbank, Datawarehouse-Datenbank, Profildatenbank und die Katalogdatenbank.

  5. Löschen Sie die Analysis-Server-Datenbanken von Commerce Server 2000 (diese werden bei SQL Server 7.0 als OLAP-Server bezeichnet).

  6. Löschen Sie die virtuellen Siteverzeichnisse von Commerce Server 2000. Diesen Schritt brauchen Sie nur durchzuführen, wenn Sie eine Site entpackt haben.

  7. Löschen Sie den ISAPI-Filter (CSAuthFilter) aus Internet-Informationsdienste. Führen Sie diesen Schritt nur durch, wenn Sie den Autocookiemodus aktiviert haben oder eine andere Einstellung für den Authentifizierungsfilter bei einer Commerce-Anwendung verwenden, als von den Lösungssites vorgegeben.

  8. Löschen Sie die Siteordner und -dateien von Commerce Server 2000. Diesen Schritt brauchen Sie nur durchzuführen, wenn Sie eine Site entpackt haben.

  9. Löschen Sie die Direct Mailer-Aufträge in SQL Server. Führen Sie diesen Schritt nur durch, wenn Sie Direct Mailer installiert und Direct Mailer-Aufträge erstellt haben. Wenn Sie diesen Schritt nicht ausführen und Direct Mailer zu einem späteren Zeitpunkt erneut installieren, werden die Direct Mailer-Aufträge der vorherigen Installation erneut aktiviert.

Es empfiehlt sich, den Computer nach diesen Schritten neu zu starten.

Die folgenden Prozeduren geben ausführliche Anweisungen zur Durchführung der einzelnen Schritte.

Schritt 1: Entfernen der Commerce Server 2000-Lösungssites

  1. Klicken Sie auf Start, zeigen Sie auf Einstellungen, und klicken Sie dann auf Systemsteuerung.

  2. Doppelklicken Sie auf Software.

  3. Wählen Sie im Dialogfeld Eigenschaften von Software den Eintrag für die Commerce Server-Lösunsgssites. Klicken Sie anschließend auf Entfernen.

Schritt 2: Entfernen der Commerce Server 2000-Plattform

  1. Klicken Sie auf Start, zeigen Sie auf Einstellungen, und klicken Sie dann auf Systemsteuerung.

  2. Doppelklicken Sie auf Software.

  3. Wählen Sie im Dialogfeld Eigenschaften von Software den Eintrag für Commerce Server 2000. Klicken Sie anschließend auf Entfernen.

  4. Bestätigen Sie das Entfernen von Commerce Server 2000 mit Ja.

  5. Klicken Sie ggf. auf Ja, um Ihren Computer neu zu starten.

Schritt 3: Löschen des Commerce Server 2000-Installationsordners

  1. Rufen Sie im Windows-Explorer den Ordner auf, in dem Commerce Server installiert ist (z. B. C:\Programme\Microsoft Commerce Server).

  2. Klicken Sie mit der rechten Maustaste auf den zu löschenden Ordner. Klicken Sie dann auf Löschen.

  3. Klicken Sie auf Ja, um den Löschvorgang zu bestätigen.

Schritt 4: Löschen der Commerce Server 2000-Datenbanken

  1. Klicken Sie auf Start, zeigen Sie auf Programme, und zeigen Sie auf Microsoft SQL Server oder Microsoft SQL Server 7.0 (abhängig von der installierten Datenbank). Klicken Sie anschließend auf Enterprise Manager.

    Anmerkung

    • Stellen Sie in SQL Server Enterprise Manager sicher, dass SQL Server ausgeführt wird (das Symbol im Enterprise Manager-Fenster ist grün). Falls SQL Server nicht ausgeführt wird, klicken Sie mit der rechten Maustaste auf den SQL Server-Computer und dann auf Starten.
  2. Erweitern Sie die Knoten auf den folgenden Pfad: \Microsoft SQL Servers\SQL Server Group\SQL Server Name\Databases.

  3. Klicken Sie mit der rechten Maustaste auf die zu löschende Datenbank. Klicken Sie dann auf Löschen.

    Wiederholen Sie diesen Schritt für jede Datenbank, die Sie löschen möchten.

Schritt 5: Löschen der Analysis-Server-Datenbanken von Commerce Server 2000 (diese werden bei SQL Server 7.0 als "OLAP-Server" bezeichnet)

  1. Klicken Sie auf Start, zeigen Sie auf Programme, Microsoft SQL Server, Analysis Services, und klicken Sie dann auf Analysis-Manager.

  2. Erweitern Sie die Knoten auf den folgenden Pfad: \Analysis Servers\SQL Server Name.

  3. Klicken Sie mit der rechten Maustaste auf die zu löschende Datenbank. Klicken Sie dann auf Löschen.

  4. Klicken Sie auf Ja, um das Löschen der Ordner für die einzelnen Datenbanken zu bestätigen.

  5. Wiederholen Sie die Schritte 3 und 4 für jede Datenbank, die Sie löschen möchten.

Schritt 6: Löschen der virtuellen Siteverzeichnisse von Commerce Server 2000

  1. Klicken Sie auf Start, zeigen Sie auf Verwaltungstools, und klicken Sie dann auf Internetdienste-Manager.

  2. Erweitern Sie die Knoten auf den folgenden Pfad: \Computername\IIS-Websitename.

  3. Klicken Sie mit der rechten Maustaste auf die zu löschenden virtuellen Verzeichnisse (z. B. Retail oder Supplier). Klicken Sie dann auf Löschen.

  4. Klicken Sie bei jedem zu löschenden virtuellen Verzeichnis auf Ja.

  5. Wiederholen Sie die Schritte 3 und 4 für jedes virtuelle Verzeichnis, das Sie löschen möchten.

Schritt 7: Löschen des ISAPI-Filters aus Internet-Informationsdienste

  1. Klicken Sie auf Start, zeigen Sie auf Verwaltungstools, und klicken Sie dann auf Internetdienste-Manager.

  2. Erweitern Sie die Knoten auf den folgenden Pfad: \Computername\IIS-Websitename. Beispiel CSServer1\Standard-Website.

  3. Klicken Sie mit der rechten Maustaste auf die IIS-Website, und klicken Sie dann auf Eigenschaften.

  4. Wählen Sie auf der Registerkarte ISAPI-Filter den Eintrag CSAuthFilter, und klicken Sie dann auf Entfernen.

Schritt 8: Löschen der Siteordner und -dateien von Commerce Server 2000

  1. Wechseln Sie im Windows-Explorer in das Verzeichnis, in dem die Sitedateien installiert wurden (z. B. C:\Inetpub\wwwroot).

  2. Klicken Sie mit der rechten Maustaste auf den zu löschenden Ordner. Klicken Sie dann auf Löschen.

  3. Klicken Sie bei jedem zu löschenden Ordner auf Ja.

  4. Wiederholen Sie die Schritte 2 und 3 für jeden Ordner, den Sie löschen möchten.

Schritt 9: Löschen der Direct Mailer-Aufträge in SQL Server

  1. Klicken Sie auf Start, zeigen Sie auf Programme und dann auf Microsoft SQL Server oder Microsoft SQL Server 7.0 (abhängig von der installierten Datenbank). Klicken Sie anschließend auf Enterprise Manager.

  2. Erweitern Sie die Knoten auf den folgenden Pfad: \Microsoft SQL Servers\SQL Server Group\SQL Server Name\Management\SQL Server Agent\Jobs.

  3. Die Direct Mailer-Aufträge werden im rechten Fensterausschnitt des SQL Server Enterprise Manager angezeigt.

  4. Wählen Sie die zu löschenden Direct Mailer-Aufträge, und klicken Sie dann auf der Symbolleiste auf die Schaltfläche Löschen.

Es empfiehlt sich, den Computer nach Durchführung dieser Schritte neu zu starten.

Siehe auch

Deinstallieren des Business Desk Clients


Deinstallieren des Business Desk Clients

So deinstallieren Sie den Business Desk Client

  1. Klicken Sie auf Start, zeigen Sie auf Einstellungen, und klicken Sie dann auf Systemsteuerung.

  2. Doppelklicken Sie auf Software.

  3. Wählen Sie den Eintrag Commerce Server 2000 Business Desk (Anwendungsname), und klicken Sie auf Ändern/Entfernen.

    Der Business Desk Client wird anschließend von Ihrem Computer entfernt.

Siehe auch

Installieren des Business Desk Clients

Deinstallieren von Commerce Server


Commerce Server-Architektur

Microsoft Commerce Server 2000 stellt eine erweiterbare Basis zur Verfügung, mit welcher ausgeklügelte E-Commerce-Anwendungen erstellt werden können, die sich in Ihre vorhandenen Back-End-Systeme integrieren lassen. Da die Architektur auf Component Object Model (COM) beruht, kann die Plattform einfach erweitert werden. Sie wählen entweder eine der vielen verfügbaren integrierten Lösungen von Drittanbietern, oder Ihre Siteentwickler passen die Commerce Server-Tools an, sodass diese Ihre Geschäftsanforderungen erfüllen. Egal für welche Variante Sie sich entscheiden: Commerce Server wurde entwickelt, um maßgeschneiderte, skalierbare E-Commerce-Lösungen zu erstellen, die das Benutzererlebnis optimieren und Businessmanagern eine Echtzeitanalyse und Kontrolle ihrer Onlinegeschäfte zur Verfügung stellen. Commerce Server nutzt darüber hinaus die Vorteile von Microsoft Windows 2000, einschließlich des Microsoft Active Directory-Service und ist zur Verwendung mit anderen .NET Enterprise Servern optimiert worden.

In diesem Abschnitt befindet sich eine Zusammenfassung aller wichtigen Komponenten der Commerce Server-Architektur.

Dieser Abschnitt beinhaltet folgende Themen:

  • Commerce Server-Architektur – Übersicht. Beschreibt die Commerce Server-Architektur und zeigt eine Abbildung ihrer Komponenten.

  • Commerce Server und .NET Enterprise Server. Beschreibt die .NET-Technologien, welche meistens mit Commerce Server verwendet werden.

  • Commerce Server-Manager-Architektur. Beschreibt Ressourcen, Sites, Anwendungen und Webserver und deren Funktionen in Commerce Server.

  • Business Desk-Architektur. Beschreibt die Komponenten von Commerce Server Business Desk sowie von Business Desk Framework.


Commerce Server-Architektur - Übersicht

Commerce Server-Architektur – Übersicht

Auf hoher Ebene besteht Commerce Server aus fünf Hauptsystemen: dem Business Analytics-System, dem Produktkatalogsystem, dem Zielgruppenadressierungssystem, dem Profilsystem und dem Geschäftsabwicklungs-Pipelinesystem. Jedes dieser Systeme ist so ausgelegt, dass es von Siteentwicklern leicht an Ihre Unternehmenslösungen angepasst werden kann.

Businessmanager nutzen Commerce Server Business Desk zusammen mit den Commerce Server-Systemen, um beispielsweise Kataloge zu aktualisieren, um Inhalte zielgerichtet an Benutzer zu liefern, um Benutzer- und Organisationsprofile zu erstellen oder um die Siteverwendung und -produktivität zu analysieren. Systemadministratoren nutzen Commerce Server-Manager zur Konfiguration ihrer Systemressourcen und zur Verwaltung der Anwendungen, Datenbanken und Webserver.

Commerce Server-Systeme, Business Desk, Commerce Server-Manager und die Commerce Server-Datenbanken sind in Lösungssites vorkonfiguriert und gepackt. Siteentwickler können die Lösungssites als Ausgangspunkt bei der Erstellung von benutzerdefinierten Sites und bei der Integration von Drittanbieteranwendungen einsetzen.

Die folgende Abbildung gibt Ihnen einen Überblick über die Commerce Server-Architektur.

Übersicht über Commerce Server
Lösungssites
Commerce Server-Manager
Business Desk
Geschäftsanalysesystem
Zielgruppen-
adressierungs-
system
Produktkatalog-
system
Profiler-
stellungssystem
Geschäftsverarbeitungs-Pipelinesystem
SQL Server
SQL Server
SQL Server
ODBC
LDAP
Commerce Server-Datawarehouse
Kataloge, Kampagnen, Bestellungen
Profile
Andere Anwendungen


Commerce Server und .NET Enterprise Server

Commerce Server 2000 ist zwar ein eigenständiges Produkt, kann aber nahtlos mit anderen Produkten verwendet werden, die zusammen die .NET Enterprise Server bilden. .NET Enterprise Server ist eine Microsoft-Produktfamilie von Serveranwendungen zum Entwickeln, Bereitstellen und Verwalten von Weblösungen mit schneller Marktreife. Die .NET Enterprise Server können zum Erstellen von Systemen verwendet werden, über die Commerce Server-Sites mit Ihrem übrigen Managementinformationssystem integriert werden. Wenn Sie eine solche Integrationsstufe benötigen, können Sie eine oder mehrere der .NET-Technologien zusammen mit Commerce Server implementieren.

In der Regel werden folgende .NET-Technologien mit Commerce Server verwendet:

  • Microsoft BizTalk Server 2000

  • Microsoft SQL Server 2000

  • Microsoft Application Center 2000

  • COM+-Dienste (eine Erweiterung von Component Object Model)

  • Microsoft Host Integration Server 2000

BizTalk Server

Microsoft BizTalk Server 2000 bietet eine umfassende Lösung für den elektronischen Dokumentenaustausch im Business-To-Business-Bereich und für Geschäftsprozessintegration. BizTalk Server hat die Funktion eines Geschäftsdokumentengateways zwischen Handelspartnern und verwaltet die Datenkonvertierung, die Verschlüsselung, die digitalen Signaturen und Dokumentnachverfolgungsdienste einer Vielzahl von Transportmechanismen.

Sie können Commerce Server und BizTalk Server integrieren, um z. B. Kataloge von Produkten auszutauschen, die Sie in Ihrer Website bereitstellen oder um in Ihrer Website erfasste Bestellungen an die Lieferanten zur Ausführung weiterzusenden. Weitere Informationen über die Integration von Commerce Server mit BizTalk Server finden Sie unter Integrating with BizTalk Server (englisches Thema) und Verwenden von BizTalk Server und Commerce Server.

SQL Server

Microsoft SQL Server 2000 stellt eine skalierbare Datenbank, die umfangreiche Analyse- und Datawarehousingtools mit einfacher Bedienbarkeit vereint. SQL Server bietet neben einer Entwicklungsumgebung zur Erstellung datengesteuerter Anwendungen eine reichhaltige grafische Benutzeroberfläche.

Commerce Server nutzt in einigen Schlüsselbereichen Datawarehousing und die Analysefunktionen von SQL Server. Das Commerce Server-Datawarehouse nutzt z. B. SQL Server-Data Transformation Services (DTS), um in den SQL Server-Datenbanken gespeicherte Daten in ein Format zu transformieren, das von den Commerce Server-Ressourcen verwendet wird.

Application Center

Microsoft Application Center 2000 ist ein Bereitstellungs- und Verwaltungstool auf der Basis von Windows 2000 mit hoher Verfügbarkeit für Webanwendungen. Es erweitert die zentralen Webanwendungsdienste, die Microsoft Windows 2000 bereitstellt (Internet-Informationsdienste (IIS) 5.0, Active Server Pages (ASP), COM+, Message Queuing), durch eine Suite von Überwachungs-, Diagnose- und Testtools, die im Kern des Betriebssystems nicht verfügbar sind. Application Center wurde für Kunden entwickelt, die höchste Anforderungen an Skalierbarkeit und Verfügbarkeit stellen.

Sie können Application Center zusammen mit Commerce Server verwenden, um Ihre Website bereitzustellen sowie um inkrementelle Aktualisierungen und Rollbacks vorzunehmen. Weitere Informationen über die Verwendung von Application Center mit Commerce Server finden Sie unter Bereitstellen der Site.

COM+-Dienste

Microsoft COM+-Dienste (Komponentendienste, einschließlich MTS) stellen ein vereinheitlichtes Programmiermodell dar, das zum Erstellen komponentenbasierter, dreistufig verteilter Anwendungen verwendet wird. COM+ basiert auf Microsoft Component Object Model (COM) und kombiniert COM mit Transaktionsfunktionen von Microsoft Transaction Server (MTS). Es erweitert die Programmierumgebung durch eine Reihe zusätzlicher Features, die Siteentwicklern die Entwicklung, Bereitstellung und Verwaltung von skalierbaren, verteilten, komponentenbasierten Lösungen erleichtert.

Host Integration Server

Microsoft Host Integration Server 2000 ist eine umfassende Integrationsplattform, die Unterstützung für Internet-, Intranet- und Client/Server-Technologien bietet, die Ihre Investition in vorhandene Systemen schützt. Da der Zugriff auf Daten lediglich der erste Schritt bei der Nutzung von Computerressourcen eines Unternehmens ist, ermöglicht der Host Integration Server Unternehmensentwicklern das Erstellen verteilter Anwendungen, welche die Client/Server- bzw. Web-Datenverarbeitung und Hostinformationen optimal nutzen.

Siehe auch

Integrating with BizTalk Server (englisches Thema)

Verwenden von BizTalk Server und Commerce Server

Bereitstellen der Site

Programming with Commerce Server Objects (englisches Thema)


Commerce Server-Manager-Architektur

Commerce Server-Manager ist ein Tool, das zum Verwalten und Konfigurieren von Commerce Server 2000-Ressourcen, -Sites, -Anwendungen und –Webservern eingesetzt wird. Die Microsoft Management Console (MMC), eine Windows-basierte Schnittstelle in Microsoft Windows 2000, dient als Host für den Commerce Server-Manager. In diesem Abschnitt werden alle Commerce Server Manager-Objekte und ihre Interaktion beschrieben.

Die folgende Abbildung zeigt die Commerce Server Manager-Konsole und ihre Teile.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Dieser Abschnitt beinhaltet folgende Themen:

  • Ressourcen

  • Sites

  • Anwendungen

  • Webserver

  • Verwenden von Commerce Server und IIS


Ressourcen

Eine Ressource ist eine Einheit, die den Anwendungen einer Commerce Server-Site bestimmte Funktionen zur Verfügung stellt.

Eine Ressource besteht aus einem oder mehreren COM-Objekten. Diese werden auf den Webseiten einer Anwendung für den Zugriff auf Ressourcenfunktionen verwendet. Ressourcen schließen Eigenschaften ein, die in der Verwaltungsdatenbank gespeichert werden. Mit dem Commerce Server-Manager ist sowohl der Zugriff auf diese Eigenschaften als auch deren Änderung möglich (sie können auch programmatisch durch die Config-Objekte geändert werden).

Es gibt zwei Ressourcentypen: globale Ressourcen und Siteressourcen. Drittanbieter können benutzerdefinierte globale Ressourcen und Siteressourcen für die Arbeit mit Commerce Server entwickeln. Weitere Informationen finden Sie unter Integrating Custom Resources (englisches Thema).

Globale Ressourcen

Globale Ressourcen stehen allen Sites zur Verfügung.

Commerce Server-Setup erstellt einige globale Ressourcen; andere werden beim Auspacken einer Site mithilfe von Commerce Server Site Packager erstellt. Im Commerce Server-Manager werden unter dem Globale Ressourcen-Knoten nur Ressourcen mit Eigenschaften der globalen Ebene angezeigt. Jede Site, die globale Ressourcen verwendet, übernimmt damit auch die Eigenschaften, die den globalen Ressourcen zugewiesen sind.

In der folgenden Tabelle werden die in Commerce Server enthaltenen globalen Ressourcen aufgelistet und beschrieben.

Globale Ressourcen | Beschreibung | Installation durch
Commerce Server Direct Mailer (auch ein Windows 2000-Dienst) | Sendet personalisierte bzw. nichtpersonalisierte Mailings an große Empfängergruppen. | Commerce Server-Setup
Vorhersagedienst (auch ein Windows 2000-Dienst) | Stattet Ihre Website mit Vorhersagefähigkeiten aus und erstellt komplexe Analysemodelle zum Identifizieren von Benutzersegmenten und -trends. | Commerce Server-Setup
Datawarehouse | Importiert und verwaltet Websitedaten aus Webprotokolldateien, Commerce Server-Datenbanken und anderen Datenquellen. | Commerce Server Site Packager
CS-Authentifizierung | Konfiguriert die Authentifizierungs- und Identifizierungsmethode für Ihre Commerce Server-Site. | Commerce Server Site Packager
Profile | Erstellt Datenquellen zum Speichern von Profildaten. Erstellt und speichert Profildefinitionen und Eigenschaften. | Commerce Server Site Packager

Siteressourcen

Siteressourcen statten eine Site mit Funktionen aus.

Im Commerce Server-Manager werden globale Ressourcenzeiger und Siteressourcen unter einer Site angezeigt. Sie konfigurieren die Eigenschaften einer Siteressource auf der Siteebene. Dabei werden globale Ressourcenzeiger so konfiguriert, dass sie auf die globale Ressource auf der globalen Ebene zeigen.

Eine Ressource besitzt ihre Eigenschaften entweder auf Siteebene oder auf globaler Ebene, nicht aber auf beiden Ebenen zugleich.

In der folgenden Tabelle werden die in Commerce Server enthaltenen Siteressourcen aufgeführt und beschrieben.

Siteressource | Beschreibung
Anwendungsstandardkonfiguration | Speichert Eigenschaften, die Sie zur Konfiguration Ihrer Site verwenden wie z. B. Gebietsschemas für Währung und Symbole, Rechnungs- und Zahlungsoptionen, Datenschutzoptionen, Maßeinheiten für Gewichtsangaben und Optionen zur Integration mit BizTalk Server.
Kampagnen | Stellt eine Verbindung zur Datenbank her, in der Kampagnendaten (Anzeigen, Preisnachlässe und Direktsendungen) gespeichert sind.
Produktkatalog | Stellt eine Verbindung zur Datenbank her, in welcher Katalogschema und Produktdaten gespeichert sind.
Transaktionen | Stellt eine Verbindung zur Datenbank her, in welcher Warenkorb- und Auftragsdaten gespeichert sind.
Transaktionskonfiguration | Stellt eine Verbindung zur Datenbank her, in der Daten für Lieferoptionen und Kostensätze, Steuersätze, Bundesländer- und Regionalcodes sowie Bestellstatuscodes gespeichert sind.

Siehe auch

Verwalten von Commerce-Ressourcen

Integrating Custom Resources (englisches Thema)

Integrating a Custom Snap-in Extension (englisches Thema)

Bereitstellen der Site


Sites

Eine Site besteht aus mehreren ASP-basierten Anwendungen, die Commerce Server Component Object Model (COM)-Objekte einsetzen. Diese wiederum verwenden und modifizieren Ressourcen. Eine Site stellt ein Werkzeug bereit, mit welchem Anwendungen auf der Site zusammen verwaltet werden können.

Eine Site enthält in der Regel mindestens zwei Anwendungen: eine Anwendung, die Benutzer durchsuchen, um Ihren Onlinespeicher anzuzeigen, und eine andere Anwendung, die Businessmanager verwenden, um auf Commerce Server Business Desk zuzugreifen. Eine Site kann aber auch zusätzliche Anwendungen enthalten. Eine Site kann z. B. www.alpineskihouse.com, www.alpineskihouse.com/equipment, www.alpineskihouse.com/clothing und www.alpineskihouse.com/BusinessDesk enthalten. Diese Anwendungen können über viele Server verteilt werden.

Sites verwenden sowohl von mehreren Sites genutzte globale Ressourcen als auch Siteressourcen, die speziell für eine Site definiert werden.

Über einen Siteknoten im Commerce Server-Manager können Sie eine Site packen sowie Ressourcen hinzufügen bzw. löschen.

Siehe auch

Verwalten von Commerce-Sites

Bereitstellen der Site

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern

Beispiel B: Installation auf einer Konfiguration mit drei Computern ohne Cluster


Anwendungen

Eine Commerce Server 2000-Anwendung ist eine Website. Sie ist eine logische Darstellung einer Anwendung in Internet-Informationsdienste (IIS) 5.0; sie wird sowohl im Commerce Server-Manager als auch in der ISS-Konsolenstruktur angezeigt. Auf der IIS-Konsole befindet sich eine Anwendung entweder auf der Ebene des Basisverzeichnisses oder des Unterverzeichnisses der Website.

Eine Anwendung repräsentiert die Webadresse, auf die ein Webclient zugreift. Wenn Sie eine Anwendung zu Commerce Server hinzufügen, wird die Verwaltungsdatenbank mit den Konfigurationsdaten für die Anwendung aktualisiert. Wenn Sie einen Webserver zur Anwendung hinzufügen, werden Active Server Pages (ASP)-Dateien auf dem Webservercomputer installiert.

Beim Auspacken einer Commerce Server werden in der Regel zwei Anwendungen installiert: Eine Anwendung für die Website, auf welche Benutzer zur Suche und zum Kaufen von Produkten zugreifen und eine andere Anwendung für Commerce Server Business Desk zur Verwaltung dieser Site. Eine Anwendung kann nur die Ressourcen der Site nutzen, der sie zugeordnet ist.

Eine Anwendung hat ihre eigenen Webserver. Diese liefern der ASP-Seite Inhalte für die Website. Eine Anwendung kann mehrere Webserver haben; sie hat immer mindestens einen Webserver. Sie können eine Site entweder im Stammverzeichnis einer IIS-Website oder in einem virtuellen Verzeichnis beliebige Ebenen unterhalb des Stammverzeichnisses einrichten.

Auf den IIS- und Commerce Server Manager-Konsolen können Sie folgende Funktionen ausführen:

  • Über den Anwendungsknoten im IIS-Snap-In können Sie alle Eigenschaften einstellen, die auf der Ebene des virtuellen Verzeichnisses verfügbar sind, einschließlich der Eigenschaften des virtuellen Verzeichnisses, der Standarddokumente, Verzeichnissicherheit, Hypertext Transfer Protocol (HTTP)-Kopfzeilen und benutzerdefinierten Fehlern. Sie können auch Microsoft FrontPage-Servererweiterungen konfigurieren und die Anwendung umbenennen oder löschen.

  • Über den Anwendungsknoten im Commerce Server-Manager können Sie in der Anwendung den nicht sicheren und den sicheren Hostnamen und den ISS-Anwendungspfad einrichten, HTTPS, Autocookie und einen Authentifizierungsfilter aktivieren sowie für alle Webserver geltende Einstellungen konfigurieren.

Ausführliche Informationen über Eigenschaften, die Commerce Server von ISS übernimmt, finden Sie unter Verwenden von Commerce Server und IIS.

Siehe auch

Verwalten von Commerce-Anwendungen und Webservern

Bereitstellen der Site

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern

Beispiel B: Installation auf Konfiguration mit drei Computern ohne Cluster


Webserver

In Commerce Server ist ein Webserver ein Computer, auf dem Internet-Informationsdienste (IIS) 5.0 installiert ist. Um einen Webserver mit Commerce Server 2000 einzusetzen, müssen Commerce Server und IIS auf demselben Computer installiert sein.

In Commerce Server ist ein Webserver einer oder mehreren Anwendungen zugeordnet; verschiedene Anwendungen können denselben Webserver nutzen. Der Webserver enthält die ASP-Seiten und die Unterordner der Anwendung. Eine Anwendung kann mehrere Webserver haben. Die Gesamtheit dieser Webserver bildet eine Webfarm.

Wenn Sie ASP-Dateien zu einem Webserver hinzufügen möchten, verwenden Sie Commerce Server Site Packager, um den Webserver zu entpacken. Das Commerce-Webserverobjekt wird zur Anwendung hinzugefügt, wenn der Entpackungsvorgang abgeschlossen ist. Im Commerce Server-Manager wird ein Webserverobjekt unter der zugeordneten Anwendung angezeigt.

Das Webserverobjekt enthält Eigenschaften, die von Datawarehouse zum Importieren von Protokolldateien benötigt werden. Über den Webserverknoten im Commerce Server-Manager können die folgenden Eigenschaften angezeigt und geändert werden.

Eigenschaft | Beschreibung
Servername | Der Name des Computers, auf welchem IIS installiert ist.
IP-Adresse | Die IP-Adresse (IP oder Internet Protocol) für die IIS-Website der Anwendung.
Protokolldateipfad | Der Pfad, auf dem die IIS-Website der Anwendung Ereignisse schreiben soll, z. B. C:\Winnt\System32\Log1.
Protokolldateiperiode | Die Zeitdauer, die eine Protokolldatei bestehen bleibt, bis sie von der IIS-Website einer Anwendung überschrieben wird.

Die Commerce Server-Verwaltungsdatenbank wird automatisch aus IIS 5.0 mit den Eigenschaften aufgefüllt, wenn der Webserver hinzugefügt wird.

Commerce Server unterstützt Webserver, auf denen IIS nicht ausgeführt wird und die keine Commerce Server-Komponenten enthalten. Dies ermöglicht Ihnen, Datawarehouse die Webserver-Protokolldateien zum Import zur Verfügung zu stellen. Weitere Informationen finden Sie unter Hinzufügen anderer Anwendungen und Webserver.

Ein Webserver kann von verschiedenen Anwendungen genutzt werden. Jede Anwendung hat einen eigenen URL. Eindeutige URLs können von einer einzigen IIS-Website bedient werden. So könnten z. B. www.microsoft.com und www.microsoft.com/commerceserver von derselben IIS-Website bedient werden.

Wenn Sie eine Webfarm betreiben, müssen Sie Ihre Webserver replizieren. Es empfiehlt sich, Application Center Server 2000 oder ein anderes Produkt für die Content Replication zu verwenden.

Siehe auch

Verwenden von Commerce Server und IIS

Bereitstellen der Site

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern

Beispiel B: Installation auf einer Konfiguration mit drei Computern ohne Cluster


Verwenden von Commerce Server und IIS

Systemadministratoren, die für die tägliche Verwaltung von Commerce Server 2000 verantwortlich sind, müssen sich in der Regel auch um die Verwaltung der Internet-Informationsdienste (IIS) 5.0 kümmern.

Obwohl IIS im Hintergrund von Commerce Server ausgeführt wird, besteht an sich kein strenges hierarchisches Verhältnis zwischen IIS und Commerce Server-Objekten. Die Gesamtheit der Eigenschaften, die sich auf die Commerce Server-Site auswirken, besteht aus Eigenschaften, für die Folgendes gilt:

  • Sie werden nur auf IIS-Ebene festgelegt

  • Sie werden nur innerhalb Commerce Server – unabhängig von IIS – festgelegt

  • Sie werden von IIS übernommen

Mithilfe des IIS-Snap-Ins lassen sich Zugriffsberechtigungen für die Website, Sicherheit, Performance, Verzeichnisse und Pfade, Websiteidentifizierung, IP-Adressen und Ports verwalten.

Commerce Server-Manager verwenden Sie für folgende Aufgaben:

  • Verwalten globaler Ressourcen und Commerce Server-Siteressourcen, Konfigurieren von Commerce Server-spezifischen Eigenschaften, Konfigurieren von Datenbank-Verbindungszeichenfolgen für Ressourcen sowie Hinzufügen und Entfernen von Webservern zu bzw. aus einer Anwendung.

  • Auf der Anwendungsebene von Commerce Server können Sie den IIS-Anwendungspfad, die IIS-Website, nicht sichere und sichere Hostnamen, IP-Anschluss und den sicheren IP-Anschluss bestimmen. Außerdem können Sie Eigenschaften konfigurieren, um HTTPS und Autocookie zu aktivieren sowie um einen Authentifizierungsfilter auszuwählen. Diese Eigenschaften lassen sich auf alle Webserver anwenden, die von der Anwendung eingesetzt werden.

    Wenn Sie Porteigenschaften in Commerce Server ändern, werden diese nicht auch automatisch in IIS geändert. Die folgenden Porteigenschaften werden tatsächlich von ISS verwendet:

    Auf der Anwendungsebene

    • TCP (Transmission Control Protocol)-Anschluss

    • SSL (Secure Sockets Layer)-Anschluss

    Auf jedem Webserver

    • IP-Adresse

    • Protokolldateipfad

    • Protokolldateiperiode

    Wenn Sie die Porteigenschaften in IIS ändern, müssen Sie diese auch in Commerce Server ändern.

    Webservereigenschaften werden aus IIS übernommen und in der Verwaltungsdatenbank gespeichert, wodurch der Zugriff erleichtert wird. Wenn die IIS-Eigenschaften geändert werden, müssen Sie die Verwaltungsdatenbank synchronisieren: Entweder aktualisieren Sie die Werte manuell, oder Sie klicken im Dialogfeld Anwendungseigenschaften auf der Registerkarte Webserver auf die Schaltfläche Werte synchronisieren. Weitere Informationen finden Sie unter Konfigurieren einer Anwendung.

    Wenn Sie auf die Schaltfläche Werte synchronisieren klicken, synchronisiert Commerce Server die Eigenschaften auf der Anwendungsebene und die Eigenschaften aller Webserverobjekte unterhalb der Anwendungsebene. Bei der Synchronisierung der Eigenschaften auf der Anwendungsebene (TCP- und SSL-Anschluss) bezieht Commerce Server sich auf die Werte des ersten Webservers. Commerce Server geht davon aus, dass die Webserver alle identisch konfiguriert sind, was für die korrekte Funktion einer Webfarm auch der Fall sein muss.

  • Auf der Ebene des Commerce Server-Webservers können Eigenschaften für die IP-Adresse, den Protokolldateipfad und die Protokolldateiperiode angezeigt und geändert werden.

In der folgenden Abbildung sind die Objekte auf den IIS- und Commerce Server-Manager-Konsolenstrukturen sowie die Beziehungen zwischen diesen Objekten zu sehen.

Illustration der Beziehungen zwischen Objekten in IIS und Commerce Server-Manager

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Siehe auch

Verwalten von Commerce Server

Hinzufügen anderer Anwendungen und Webserver

Bereitstellen der Site

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern

Beispiel B: Installation auf einer Konfiguration mit drei Computern ohne Cluster


Business Desk-Architektur

Commerce Server Business Desk ist ein webbasiertes Siteverwaltungstool von Microsoft Commerce Server 2000. Business Desk dient als Host für Businessmanagementmodule, die Sie zum Konfigurieren, Verwalten und Analysieren Ihrer Sites einsetzen. Mit den Business Desk-Modulen lassen sich beispielsweise Preisinformationen in Ihren Katalogen aktualisieren und neue Anzeigen zielgerichtet bestimmten Benutzer anzeigen. Anschließend können Sie Berichte ausführen, die den Einfluss dieser Änderungen auf die Produktivität der Site messen.

Business Desk besteht aus zwei Teilen: der Business Desk-Anwendung und dem Business Desk Client.

  • Business Desk-Anwendung. Diese Anwendung ist das Managementtool, das Sie zum Konfigurieren, Verwalten und Analysieren Ihrer Site einsetzen. Nach der Installation von Commerce Server können Sie eine Lösungssite entpacken, mit deren Hilfe sich eine Business Desk-Anwendung installieren lässt. Auf Business Desk kann von einem beliebigen Computer mit Microsoft Internet Explorer 5.5 zugegriffen werden. So erhalten Sie sicheren Remotezugriff.

  • Business Desk Client. Dies ist die Clientsoftware, die Sie auf einem lokalen Computer installieren. Der Client stellt die Oberfläche für den Zugriff auf die Business Desk-Anwendung bereit. Beim ersten Zugriff auf eine Business Desk-Anwendung (über einen URL) wird der Business Desk Client gedownloadet und auf Ihrem Computer installiert. Für den Computer, auf dem der Business Desk Client ausgeführt werden soll, empfiehlt sich eine schnelle Verbindung zur Business Desk-Anwendung.

Die folgende Abbildung zeigt, wie Sie Business Desk Clients für Remotezugriffe auf die Business Desk-Anwendung verwenden können, um Ihre Website zu aktualisieren.

Business Desk-
Client
Business Desk-
Client
Business Desk-
Client
Commerce Server-Datacenter
Business Desk-
Anwendung
Eigene
Website
New York
Tokio
Chicago
New York
Das Internet
Abbildung des Zugriffs eines Business Desk-Clients auf die Business Desk-Anwendung

Dieser Abschnitt beinhaltet folgende Themen:

  • Business Desk-Komponenten

  • Aktualisieren Ihrer Website mit Business Desk

  • Sichern der Business Desk-Module

  • Anpassen von Business Desk

  • Business Desk Framework


Business Desk-Komponenten

Sie setzen Module – die Hauptkomponenten von Commerce Server Business Desk – ein, um die verschiedenen Aspekte ihrer Site zu verwalten. In der folgenden Tabelle sind die Business Desk-Module und die Kategorien, in denen die Module enthalten sind, aufgeführt. Außerdem werden die Aufgaben beschrieben, die mit den Modulen durchgeführt werden können.

Kategorie | Beschreibung
Analyse: Berichte Abgeschlossene Berichte Segment-Viewer | Ausführen und Überprüfen von Berichten über die Siteaktivität. Durchführen von Vorhersageanalysen. Die Analysemodule enthalten einer Vielzahl von Berichten, die verschiedene Aspekte Ihrer Site abdecken können.
Kampagnen Kampagnen-Manager Listen-Manager Kampagnenausdrücke Zielgruppen Referenztabellen Kampagnenveröffentlichung | Erstellen und Planen von Marketingkampagnen. Sie fügen Kundeninformationen hinzu und verwalten Kampagnen und Kampagnenartikel wie z. B. beim Erstellen von Anzeigenbannern, bei Direct Mailer-Aufträgen oder Preisnachlassaktionen. Jeder Kampagnenartikel kann sich zielgerichtet an bestimmte Benutzer wenden. Dies ermöglicht ein hochpersonalisiertes Erlebnis für den Benutzer.
Kataloge Katalog-Designer Katalog-Editor Katalogsatz | Importieren von Katalogen, Erstellen von Katalogen, Hinzufügen und Festlegen von Preisen für Produkte. Erstellen von benutzerdefinierten Katalogen mit Sonderpreisen, die nur bestimmten Benutzern angeboten werden, z. B. Mitgliedern eines Clubs.
Aufträge Warenkorb-Manager Datencodes Auftragsstatus Lieferoptionen Steuersätze Transaktionsveröffentlichung | Durchsuchen der Commerce Server-Datenbank nach vorhandenen Bestellinformationen. Hinzufügen, Löschen und Ändern von Bestellinformationen. Hinzufügen, Löschen und Ändern von Versandgebühren.
Benutzer Benutzer Organisationen Profil-Designer Sitebegriffs-Editor Profilveröffentlichung | Erstellen und Ändern von Benutzern, Organisationen und Profilen. Erstellen und Ändern von Sitebegriffen.

Siehe auch

Arbeiten mit Business Desk


Aktualisieren Ihrer Website mit Business Desk

Die folgende Abbildung zeigt, wie Sie Commerce Server Business Desk-Module verwenden können, um Ihre Website zu aktualisieren. So werden Sitedaten z. B. erst aus Ihrer Website zusammengestellt und in Datawarehouse importiert, bevor Sie Analyseberichte ausführen können. Sie verwenden die Kampagnenmodule, um Werbe-, Preisnachlass- und Promotionaktionen zu erstellen und zu veröffentlichen. Mithilfe der Katalogmodule lassen sich Kataloginformationen aktualisieren. Die Auftragsmodule verwenden Sie, um Benutzeraufträge zu verfolgen. Schließlich verwenden Sie die Benutzermodule, um Benutzerkennwörter zurückzusetzen, andere Benutzerprofilinformationen zu ändern sowie zur Definition der zu sammelnden Profildaten.

Aktualisierung der Website mithilfe von Business Desk-Modulen
Benutzer
Bestellungen
Kampagnen
Bestellungen
Profile
Commerce Server-
Datawarehouse
Benutzer
registrieren
Business Desk
Commerce Server-Datenbanken
Eigene Website
Kataloge anzeigen
Kataloge
Kataloge
Kampagnen
Analyse
Aktivität
aufzeichnen
Bestellungen
annehmen
Anzeigen
anzeigen


Sichern der Business Desk-Module

Commerce Server Business Desk bietet rollenbasierte Sicherheit: Mit Business Desk können Benutzer nur solche Module anzeigen und verwalten, für die sie autorisiert sind. Wenn eine Benutzergruppe z. B. nicht das Katalog-Designer-Modul verwendet, können Sie unterbinden, dass dieses Modul im Navigationsbereich angezeigt wird, wenn diese Benutzer auf Business Desk zugreifen. Wenn ein Siteentwickler also den Zugriff auf ein Modul beschränkt hat, wird einem Benutzer, der über keine Zugriffsberechtigung verfügt, dieses Modul auch nicht angezeigt.

Beachten Sie, dass Zugriffsbeschränkungen auf bestimmte Business Desk-Module nicht das Ziel haben, böswilligen Sicherheitsverletzungen vorzubeugen. Es soll vielmehr verhindert werden, dass Benutzern Business Desk-Module angezeigt werden, die überhaupt nicht in ihren Verantwortungsbereich gehören.

Systemadministratoren sind für die Implementierung der Sitesicherheit zuständig. Zur Sicherung eines Business Desk-Moduls muss die Windows-Zugriffssteuerungsliste (ACLs) in den ASP-Dateien (ASP oder Active Server Page) eingerichtet werden. Weitere Informationen finden Sie unter Security (englisches Thema).

Anmerkungen

  • Es werden standardmäßig alle Module gesichert, wenn Sie eines der folgenden Module sichern: Profilveröffentlichung, Kampagnenveröffentlichung und Transaktionsveröffentlichung

  • Durch diese Funktion wird der Zugriff auf bestimmte Daten in Business Desk nicht eingeschränkt. Wenn Sie den Zugriff auf Daten beschränken möchten, die dem Benutzer in Business Desk angezeigt werden, wenden Sie sich an Ihren Systemadministrator oder Siteentwickler, um Sicherheit auf Datenbankebene zu implementieren. Falls Sie ein Business Desk-Benutzer z. B. lediglich einen bestimmten Katalog bearbeitet soll, kann Ihr Siteentwickler diese Sicherheitsmaßnahme implementieren.

  • Wenn ein Benutzer mittels einer nicht authentifizierten Sitzung eine Verbindung mit Business Desk über das Internet herstellt, wird er vom Internet Explorer zur Eingabe seines Benutzernamens, Kennworts und Domänennamens aufgefordert. Dies dient seiner Authentifizierung für die Business Desk-Anwendung.

Siehe auch

Beschränken des Zugriffs auf Business Desk-Module

Building Business Desk Modules (englisches Thema)


Anpassen von Business Desk

Siteentwickler und Systemadministratoren können Commerce Server Business Desk an Ihre Geschäftsbedürfnisse anpassen. Ein Siteentwickler kann z. B. Funktionen hinzufügen oder entfernen, Business Desk in eine vorhandene Anwendung integrieren oder bestimmte Funktionen von Business Desk verändern.

In der folgenden Tabelle werden verschiedene Bereiche beschrieben, in welchen Sie die Anpassung mit Ihrem Systemadministrator oder Siteentwickler koordinieren können.

Business Desk-Komponente Anpassung und Koordination
Analyse: Berichtmodul
  • Ihr Siteentwickler kann neue oder benutzerdefinierte Berichte erstellen, die Ihren Geschäftsbedürfnissen entgegenkommen. Es können auch benutzerdefinierte Berichte erstellt werden, die auf vorhandenen dynamischen Berichten im Berichtmodul von Business Desk basieren.

  • Der Systemadministrator ist verantwortlich dafür, in regelmäßigen Abständen Daten in Datawarehouse zu importieren. Nachdem die Daten in Datawarehouse importiert wurden, können Sie Berichte ausführen und diese mit den Daten vergleichen und analysieren.

  • Der Systemadministrator kann die Daten aus den Webprotokolldateien anpassen, die in Datawarehouse importiert werden. Außerdem kann er Benutzer und Besuche definieren. Diese wirken sich auf die Ergebnisse Ihrer Berichte aus.
Analyse: Segment-Viewer-Modul
  • Sie verwenden das Segment-Viewer-Modul von Business Desk, um Segmentmodelle anzuzeigen. Ihr Systemadministrator muss die Segmentmodelle erstellen.

  • Um Vorhersagemodelle anzuzeigen, verwenden Sie den Vorhersagemodell-Browser von Commerce Server-Manager. Wenden Sie sich an Ihren Systemadministrator, wenn Sie weitere Informationen über das Anzeigen von Vorhersagemodellen benötigen.
Benutzer
  • Der Systemadministrator verwendet beim Erstellen von Profildefinitionen Commerce Server-Manager und fügt Datenquellen, Datenelemente und Datenobjekte hinzu. Wenn Sie Business Desk verwenden, um der Profildefinition Profileigenschaften hinzuzufügen, wählen Sie Datenquelle, Datenelement und Datenobjekt wie benötigt.
Allgemeine Systemeinstellungen
  • Der Systemadministrator konfiguriert Systemeinstellungen wie z. B. Maßeinheiten, Währung, Zahlungsoptionen, Websiteregistrierung und Sicherheitsoptionen. Alle Änderungen dieser Optionen bzw. Einstellungen müssen mit dem Systemadministrator koordiniert werden.

Siehe auch

Business Desk Framework

Building Business Desk Modules (englisches Thema)


Business Desk Framework

Commerce Server Business Desk ist ein Benutzeroberflächen-Framework, das hauptsächlich in Form von Active Server Pages (ASP) implementiert ist und Dynamic Hypertext Markup Language (DHTML) enthält. Das Framework bietet eine strukturierte Umgebung, in welcher Drittentwickler die Managementfunktionalität von Commerce Server 2000 einfach erweitern können. Diese Umgebung enthält eine strukturierte Seitennavigation, Standardmechanismen zur Datenbearbeitung, gemeinsame Hilfsroutinen und eine Vielzahl von Konventionen. Diese sollen zu einem gleichbleibend guten Benutzererlebnis beitragen.

Jede Commerce Server-Website verfügt über eine spezifische Instanz von Business Desk, mit der sie verknüpft ist. Obwohl Business Desk und die Website gemeinsam dieselben Commerce-Ressourcen (z. B. verschiedene Datenbanken) verwenden, ist Business Desk dennoch eine separate ASP-Anwendung mit eigener Verzeichnisstruktur und virtuellem Stammverzeichnis.

Das Commerce Server Business Desk Framework stellt die Umgebung bereit, in der Business Desk-Module ausgeführt werden. Die folgende Abbildung zeigt, wie eine Reihe von Konfigurationsdateien zwei wichtige Informationstypen bereitstellen, die für Business Desk zur Navigationsunterstützung benötigt werden. Der erste Typ bestimmt die Reihe der kategorisierten Module, auf die in Business Desk zugegriffen werden kann. Der zweite Typ wird zum Erstellen und Verwalten der Taskleiste verwendet, die für jede Aktionsseite verschieden ist.

Hauptkonfigura-
tionsdatei
Modul-
konfigurations-
datei
Modul-
konfigurations-
datei
Modul-
konfigurations-
datei
Symbolleistenschaltflächen
und Menüs
Navigations-
bereich
Analyse
Kampagnen
Kataloge
Aufträge
Benutzer
Nav
ListSheet HTC
DynamicTable HTC
Einzelne EditField HTCs
Modul 1
Modul 1
Modul 1
?
?
?
?
Übersicht über Commerce Server

In der Abbildung ist auch zu sehen, dass die erste Aktionsseite von Modulen in der Regel eine Listenseite ist. Über die Listenseite kann mithilfe von Schaltflächen auf Bearbeitungsseiten zugegriffen werden. Außerdem ist zu sehen, auf welche Art der Benutzer zur Listenseite zurückkehren muss, damit er in ein anderes Modul wechseln kann.

Das Business Desk Framework hat folgende Eigenschaften:

  • Die Hauptkonfigurationsdatei liefert zusammen mit einer Reihe von Modulkonfigurationsdateien die Informationen, die Business Desk Framework zum Verwalten des Navigationsbereichs und der Taskleiste benötigt, die auf jeder Aktionsseite angezeigt wird.

  • Aktionsseiten, die schreibgeschützte Listen, sogenannte Listenseiten anzeigen, werden immer zusammen mit dem Navigationsbereich angezeigt. Daher kann ein Benutzer nur aus einer Listenseite, nicht jedoch aus einer Bearbeitungsseite in ein anderes Modul wechseln. Listenseiten sind schreibgeschützt (mit der Ausnahme von Löschtasks). Es ist daher im allgemeinen nicht nötig, Benutzern Meldungen anzuzeigen, die vor dem Verlassen von Modulen ohne vorheriges Speichern von Datenänderungen warnen.

  • Beim Navigieren durch die Aktionsseiten sollen in der Regel die Schaltflächen der Taskleiste verwendet werden. Dieser Mechanismus ermöglicht es Business Desk Framework, während des Übergangs von einer Aktionsseite zu einer anderen Dienste anzubieten. Direkte Verknüpfungen von Aktionsseiten sollte auf Schaltflächen auf den Seiten beschränkt sein.

Siehe auch

Building Business Desk Modules (englisches Thema)


Commerce Server-Konzepte

Für den optimalen Einsatz von Microsoft Commerce Server 2000 ist ein ausgezeichnetes Verständnis der zugrunde liegenden Konzepte unabdingbar.

Dieser Abschnitt beinhaltet folgende Themen:

  • Siteverwaltungszyklus. Beschreibt den Einsatz von Commerce Server zur kontinuierlichen Sammlung und Zusammenstellung von Daten über Benutzeraktivitäten in Ihrer Website, die Analyse der Daten sowie die anschließende Verwendung der Analyseergebnisse zur Aktualisierung der Site.

  • Aufgabenverteilung. Beschreibt, wie das Design von Commerce Server auf die Fähigkeiten von drei Schlüsselgruppen zugeschnitten ist: Websiteentwickler, Systemadministratoren und Businessmanager. Die Benutzeroberflächen und Tools für die einzelnen Gruppen werden hier vorgestellt.

  • Profile. Gibt Informationen über Commerce Server-Profile, ihre Erstellung und die Verwendung bei der Websiteverwaltung.

  • Benutzer- und Adressenlisten. Beschreibt die Benutzer- und Adressenlisten von Commerce Server und wie diese bei der Websiteverwaltung eingesetzt werden.

  • Cookies und Authentifizierung. Beschreibt Commerce Server-Cookies und wie diese von Commerce Server verwendet werden.

  • Produktkataloge. Beschreibt die Commerce Server-Kataloge, ihre Verwendung bei der Websiteverwaltung, ihren Aufbau und das Auffüllen mit Produktdaten.

  • Datawarehouse. Beschreibt das Commerce Server-Datawarehouse, dessen Einsatz bei der Websiteverwaltung und wie es mit Daten aufgefüllt wird.

  • Vorhersage und Datamining. Beschreibt Commerce Server-Analysemodelle sowie deren Erstellung und Einsatz bei der Websiteverwaltung.

  • Pipelines. Beschreibt Commerce Server-Pipelines und ihre Verwendung.

  • Zielgruppenadressierung und Personalisierung. Beschreibt die Zielgruppenadressierung und Personalisierung von Commerce Server und ihren Einsatz in Commerce Server.

  • Kampagnen: Anzeigen, Preisnachlässe und Direktsendungen. Beschreibt die Commerce Server-Kampagnen sowie deren Aufbau, Verarbeitung und Einsatz bei der Websiteverwaltung.


Siteverwaltungszyklus

E-Commerce-Websites sind Investitionsgüter, die von Businessmanagern kontinuierlich analysiert und verbessert werden müssen, um wettbewerbsfähig zu bleiben. Businessmanager müssen in der Lage sein, die Benutzeraktivitäten schnell zu analysieren. So können sie die Effektivität ihrer Sites bewerten und mithilfe dieser Ergebnisse eine Feinabstimmung vornehmen. Dieser Prozess der kontinuierlichen Analyse und Verbesserung einer Site bestimmt den Siteverwaltungszyklus einer E-Commerce-Site.

Phasen des Siteverwaltungszyklus
Benutzer und Kunden
Businessmanager(in)
Siteentwickler
Analysieren
Erweitern
Bereitstellen
Website

Commerce Server 2000 liefert Ihnen eine Reihe von Features zur Verwaltung und Effizienzsteigerung der Site. Mithilfe von Commerce Server haben Sie folgende Möglichkeiten:

  • Zusammenstellen und Speichern von Benutzerdaten

  • Analysieren von Benutzerdaten

  • Aktualisieren Ihrer Site

  • Umsetzen des Siteverwaltungszyklus im Team

Durch die Analyse von Daten über Benutzeraktivitäten in Ihrer Site können Sie Entscheidungen darüber treffen, wie Sie Ihre Site verbessern und Geschäftsziele einhalten können.

Zusammenstellen und Speichern von Benutzerdaten

Sie können drei Arten von Daten über die Besucher Ihrer Site sammeln:

  • Explizite Profildaten. Diese Daten erhalten Sie, wenn Benutzer beim Ausfüllen von Onlineformularen, -umfragen und -abstimmungen Informationen über sich selbst zur Verfügung stellen.

  • Klickverlauf. Diese Daten erhalten Sie, wenn Benutzer Ihre Site besuchen und auf Links zu Seiten Ihrer Site klicken. Der Klickverlauf enthält die Dauer des Aufenthalts in Ihrer Site, verweisende URLs, Anzeigenklicks, Anzeigenreichweite und -häufigkeit sowie den "Weg", den Benutzer durch die Site nehmen, einschließlich Eingangs- und Ausgangsseiten. Beispiel: Sie stellen Suchaktivitäten für eine bestimmte Benutzersitzung zusammen, bei der ein Benutzer 17 Minuten in der Site war, Katalogbeschreibungen von drei Katalogprodukten anzeigte, zwei davon zum Warenkorb hinzufügte, auf eine Promotionanzeige klickte und dann das entsprechende Produkt zum Warenkorb hinzufügte.

  • Transaktionsverlauf. Diese Daten erhalten Sie, wenn Benutzer Produkte kaufen. Im Transaktionsverlauf werden Warenkörbe und Aufträge erfasst. Im Transaktionsverlauf kann beispielsweise der Benutzername, die Versandadresse, Datum und Uhrzeit, das gekaufte Produkt sowie der Gesamtbestellwert enthalten sein.

Diese Daten werden in den Webserver-Protokolldateien und in den Commerce Server-Datenbanken gesammelt. Der Systemadministrator importiert die Daten aus den Webserver-Protokolldateien und Commerce Server-Datenbanken in regelmäßigen Abständen in das Commerce Server-Datawarehouse. Zum Datawarehouse gehört eine zentrale Datenbank, die große Datenmengen enthält. Diese werden aus einer Reihe verschiedener Datenquellen zusammengestellt. Dies können Webserver-Protokolldateien, Commerce Server-Datenbanken sowie beliebige andere Datenquellen sein.

Die folgende Abbildung zeigt, wie Benutzerdaten in Webserverprotokollen und Commerce Server-Datenbanken zusammengestellt und dann im Datawarehouse gespeichert werden.

Sammeln und Speichern von Benutzerdaten
Commerce Server-Datawarehouse
Benutzerprofildaten
Ereignisdaten
Transaktionsdaten Kampagnendaten
Katalogdaten
Commerce Server-Datenbank
Business Desk
sammeln
importieren
anzeigen
importieren
Webserver-protokolle
Website
Benutzer

Analysieren von Benutzerdaten

Durch die Analyse der Daten im Datawarehouse ermitteln Sie wichtige Informationen über Ihr Geschäft. So können Sie die Benutzertypen identifizieren, die Ihre Site besuchen, welche Produkte sich gut verkaufen und welche Anzeigenkampagnen erfolgreich sind.

Zur Datenanalyse der Benutzeraktivitäten in Ihrer Site setzen Sie die Analysemodule von Commerce Server Business Desk ein. Benutzeraktivitäten analysieren Sie, indem Sie Berichte über das Datawarehouse ausführen oder indem Sie Analysemodelle anzeigen, die von der Commerce Server-Vorhersageressource erstellt werden.

Die folgende Abbildung zeigt, wie Sie mit Business Desk auf Daten im Datawarehouse zugreifen und dann verschiedene Analysen durchführen können.

Abbildung der Datenanalysemöglichkeiten
Business Desk
Benutzerdaten analysieren
Berichte ausführen
Segmentmodelle anzeigen
Vorhersage-ressource
Siteverwendungsdaten
Siteverwendungsdaten
Commerce Server-Datawarehouse

Commerce Server bietet zwei Berichtstypen für die Analyse der Siteaktivitäten:

  • Dynamische Berichte. Diese Berichte transformieren bestimmte Daten in ein Microsoft® PivotTable®-Format, in dem Sie Spalten neu anordnen und Diagramme erstellen können.

  • Statische Berichte. Diese Berichte werden in einem Browserfenster im HTML-Format angezeigt. Sie können diese Berichte per E-Mail versenden, in Ihrer Website bereitstellen oder in anderen Anwendung bearbeiten. Mithilfe von Microsoft Internet Explorer können Sie einen statischen Bericht z. B. als Word-Dokument exportieren und anschließend bearbeiten.

Commerce Server enthält eine Reihe von Berichten, die Sie von Business Desk ausführen können. Dazu gehören Anzeigenberichte, Produktverkaufsberichte und Webverwendungsberichte. Sie können einen oder mehrere dieser Berichte einsetzen. Ihr Siteentwickler kann einen Bericht auch anpassen, um damit andere Daten abzurufen. Eine vollständige Liste der in Commerce Server enthaltenen Berichte finden Sie unter Commerce Server-Berichte.

Zusätzlich zur Analyse von Berichten lassen sich auch Segmentmodelle unter Verwendung des Segment-Viewer-Moduls von Business Desk analysieren. Segmentmodelle nehmen eine Klassifizierung der Benutzer Ihrer Site in Benutzersegmente vor. Als Segment wird eine Gruppe von Benutzern bezeichnet, denen bestimmte Eigenschaften gemeinsam sind. Ein Benutzersegment könnten z. B. weibliche Benutzer sein, die Sciencefiction-Bücher kaufen. Ein anderes Segment wären beispielsweise männliche Benutzer, die Bücher über Golf kaufen. Nachdem Sie die Eigenschaften eines Benutzersegments identifiziert haben, können Sie Ihre Site mit diesen Informationen aktualisieren und Inhalte zielgerichtet auf dieses Benutzersegment abstimmen.

Aktualisieren Ihrer Site

Ausgehend von der Analyse der Benutzerdaten können Sie Änderungen an Ihrer Site vornehmen, über die sich die Zielgruppenadressierung der Benutzer verbessern, beliebte Seiten promoten sowie das Finden häufig gekaufter Produkte vereinfachen lassen. Wenn Sie z. B. feststellen, dass alle Benutzer eine Seite anzeigen, die vier Klicks von der Homepage entfernt ist, können Sie die Site so umgestalten, dass diese Seite nur noch einen Klick entfernt liegt.

Außerdem können Sie die Analyseergebnisse einsetzen, um bestimmte Benutzergruppen zielgerichtet anzusprechen, bestimmte Produkte in Ihrem Katalog zu verkaufen oder Anzeigen bzw. Preisnachlässe zu erstellen. Beispiel: Sie verkaufen in Ihrer Site Sportwarenartikel. Sie analysieren die Benutzeraktivitäten und erstellen dann mithilfe von Business Desk-Kampagnen eine Liste mit registrierten Benutzern, die gerne Fahrrad fahren. Sie erstellen dann speziell für diese Benutzergruppe eine Anzeige für ein neues Fahrradzubehörteil, sodass die Anzeige unübersehbar angezeigt wird, sobald diese Benutzer die Site besuchen. Weitere Informationen über die Zielgruppenadressierung von Benutzern finden Sie unter Zielgruppenadressierung und Personalisierung.

Umsetzen des Siteverwaltungszyklus im Team

Zur effektiven Implementierung des Siteverwaltungszyklus müssen Businessmanager, Siteentwickler und Systemadministrator miteinander kommunizieren und zusammenarbeiten; nur so können Aktualisierungen der Site implementiert werden. Sie sollten einen Prozess einführen, der diese Kommunikation erleichtert. Um z. B. eine Massenaktualisierung einer Vielzahl von Benutzerprofilen durchzuführen, wendet sich der Businessmanager an den Systemadministrator. Dieser führt dann diese Aufgabe durch. Um neue Funktionen zu Business Desk hinzuzufügen, z. B. ein Modul für den Verkauf von Geschenkgutscheinen, sollte sich der Businessmanager an den Siteentwickler wenden und diesem die Anforderungen mitteilen.

In vielen Organisationen arbeiten Businessmanager, Systemadministrator und Siteentwickler in verschiedenen Abteilungen, Städten oder Ländern. Daher ist der Aufbau eines effektiven Kommunikationsprozesses sowie seine regelmäßige Überprüfung von großer Bedeutung.

Eine Übersicht über die Aufgaben, die Businessmanager, Siteentwickler und Systemadministratoren typischerweise durchführen, finden Sie unter Aufgabenverteilung.

Siehe auch

Zielgruppenadressierung und Personalisierung

Aufgabenverteilung

Profile

Vorhersage und Datamining

Datawarehouse


Aufgabenverteilung

Commerce Server 2000 bietet eine Reihe von Features und Tools für das Entwickeln, Bereitstellen und Verwalten von Websites. Die Arbeit mit Commerce Server erfordert bestimmte Fähigkeiten, die von drei Fachgebieten in einer Organisation abgedeckt werden. In der folgenden Tabelle sind die Commerce Server-Features nach den drei allgemeinen Rollen innerhalb einer Organisationen gruppiert. Für jede Rolle sind im rechten Feld die erforderlichen Fähigkeiten aufgeführt.

Rolle | Benötigte Kenntnisse
Siteentwickler | Dynamic Hypertext Markup Language (DHTML), Extensible Markup Language (XML), Microsoft ActiveX Data Objects (ADO), HTML-Komponenten (HTC) und Active Server Pages (ASP)
Systemadministratoren | Microsoft Windows 2000 Server, Microsoft SQL Server 2000 und Internet-Informationsdienste (IIS) 5.0
Businessmanager | Geschäftsziele, -strategien und -prozesse für das Erstellen und Betreiben einer erfolgreichen E-Commerce-Website

In Ihrer Organisation überschneiden sich diese Rollen vielleicht oder werden anders bezeichnet. Sie stehen jedoch für die drei verschiedenen Fähigkeitsbereiche, die für den Einsatz der Commerce Server-Features benötigt werden.

In der folgenden Tabelle werden die drei Rollen und Beispiele für ihre Aufgaben angegeben:

Rolle Aufgaben Tools und Benutzeroberflächen
Siteentwickler
  • Erstellt die Website

  • Integriert die Website mit vorhandenen Systemen

  • Migriert vorhandene E-Commerce-Sites und -Datenbanken

  • Passt Commerce Server Business Desk an

  • Erstellt neue Business Desk-Module

  • Fügt neue Snap-In-Erweiterungen zu Microsoft Management Console (MMC) hinzu

  • Erstellt benutzerdefinierte Berichte

  • Erweitert das Datawarehouse
  • Programmierreferenz

  • Pipeline Editor (englisches Thema)

  • Pipeline Component Reference (englisches Thema)

  • Verwenden von Site Packager
Systemadministrator
  • Packt und verschiebt Sites zum Produktionscomputer

  • Konfiguriert und optimiert die Commerce Server-Ressourcen

  • Plant Datawarehouse-Importaufgaben

  • Plant Direct Mailer-Aufträge

  • Erstellt neue Analysemodelle

  • Verwaltet die Commerce Server-Datenbanken

  • Problembehandlung der Websiteumgebung
  • Verwenden von Site Packager

  • Verwalten von Commerce Server
Businessmanager
  • Erstellt Spezifikationen für die Entwicklung der Website

  • Legt fest, wie die Website aktualisiert werden soll, um Geschäftsziele zu erfüllen

  • Fordert neue benutzerdefinierte Module für Business Desk an

  • Erstellt Anzeigenkampagnen

  • Verwaltet Produktkataloge

  • Analysiert Benutzeraktivitäten und die Effizienz der Site

  • Verwaltet registrierte Benutzer und Handelspartner
  • Arbeiten mit Business Desk


Profile

Ein Profil ist eine Gruppe von Eigenschaften, die ein geschäftsbezogenes Element definiert, z. B. einen Benutzer, eine Firma oder einen Kontext (Datum und Uhrzeit). So können in einem Benutzerprofil beispielsweise Eigenschaften wie Vorname, Nachname, Stadt, Geschlecht, Alter und E-Mail-Adresse enthalten sein. Ein Firmenprofil kann verschiedene Eigenschaften wie Firmennamen, Kontakt, Stadt und E-Mail-Adresse enthalten. Ein Kontextprofil umfasst Eigenschaften wie das Datum und die Uhrzeit, zu der eine Seite angezeigt wurde, und den Pfad, über den ein Benutzer zu dieser Seite gelangt ist.

Die folgende Abbildung zeigt die verschiedenen Profiltypen.

Abbildung verschiedener Profiltypen
Klickverlauf
Sitzungsdauer
Firmenname
Kontakt
Ort
E-Mail-Adresse
Klickverlauf
Sitzungsdauer
Vorname
Nachname
Ort
Geschlecht
Alter
E-Mail-Adresse
Klickverlauf
Sitzungsdauer

Firmenprofil

Profil für
anonyme Benutzer

Profil für registrierte Benutzer

In Commerce Server verwenden Sie Profile zum Speichern von Informationen über geschäftsbezogene Elemente. So können Sie beispielsweise Profile einsetzen, um Daten über Benutzer Ihrer Website zusammenzustellen. Unter Verwendung von Business Desk können Sie Daten auch direkt in die Benutzer- und Organisationsprofile eingeben.

Das Profilsystem von Commerce Server besteht aus der Profilressource, die mithilfe von Commerce Server-Manager verwaltet wird, und aus den Benutzermodulen, die mithilfe von Commerce Server Business Desk verwaltet werden. Profildaten werden im Profildatenspeicher in Microsoft Active Directory™ und/oder SQL Server bzw. in einem beliebigen OLE DB-kompatiblen Datenspeicher gespeichert. Daten aus dem Profildatenspeicher lassen sich in das Datawarehouse exportieren. Mithilfe von Business Desk können die so zusammengestellten Profildaten analysiert werden.

Anmerkung

  • Das Membership-Verzeichnis von Microsoft Site Server 3.0 ist nicht Teil von Commerce Server. Informationen über die Migration von Profildaten eines Membership-Verzeichnisses auf Commerce Server finden Sie unter Migrieren von Site Server 3.0.

Verwenden von Profilen bei der Websiteverwaltung

Profilstruktur

Zusammenstellen und Speichern von Profilen

Analysieren von Benutzerdaten

Beispielprofildefinitionen

Verwenden von Profilen bei der Websiteverwaltung

Profile sind ein wesentlicher Bestandteil der Websiteverwaltung, da sie Informationen zu den Besuchern Ihrer Site und ihren Verhaltensweisen liefern. Mithilfe von Profilen analysieren Sie Benutzerdaten und stimmen Sie Inhalte zielgerichtet auf Benutzer ab.

Mithilfe von Commerce Server Business Desk haben Sie folgende Möglichkeiten:

  • Legen Sie fest, welche Informationen Sie über Benutzer sammeln möchten, die Ihre Site besuchen.

  • Analysieren Sie Profilinformationen.

  • Erstellen Sie Zielausdrücke, um Inhalte an bestimmte Benutzer anzupassen.

  • Erstellen Sie gezielt Werbe-, Preisnachlass- und Direktsendungskampagnen für ausgewählte Benutzergruppen.

  • Übertragen Sie personalisierte Direktsendungsnachrichten an Benutzer.

Beispiel: Ihre Site verkauft Sportwarenartikel. Der folgende Workflow zeigt beispielhaft, wie Sie mit Business Desk eine Analyse der Benutzeraktivitäten vornehmen und Inhalte zielgerichtet auf Benutzer abstimmen können.

  1. Ihr Systemadministrator erstellt Profildefinitionen für registrierte Benutzer und für Gastbenutzer.

  2. Nachdem Sie Ihre Site eine bestimmte Zeit lang betrieben haben, können Sie durch Analyse der Profildaten ermitteln, wer Ihre Site besucht:
    • Analysieren Sie mithilfe von Berichten, wer die Besucher Ihrer Site sind.

    • Führen Sie Berichte aus, um zu analysieren, welche Produkte im Katalog sich gut verkaufen und welche weniger gut ankommen.
  3. Erstellen Sie mithilfe der Analyseergebnisse eine Kampagne, die Inhalte zielgerichtet auf Benutzer abstimmt:
    • Verwenden Sie die Profile, um Zielausdrücke und -gruppen zu erstellen.

    • Erstellen Sie eine Preisnachlasskampagne, über die Sie diesen ausgewählten Benutzern Preisnachlässe anbieten.
  4. Analysieren Sie die Ergebnisse der Kampagne, nachdem der Preisnachlass eine Zeit lang wirksam war.
    • Führen Sie Berichte aus, um den Erfolg der Kampagne zu analysieren.

    • Finden Sie über Berichte heraus, ob die spezielle Benutzergruppe mehr preisreduzierte Elemente gekauft hat.
  5. Falls die Benutzer nicht in erhöhtem Maße preisreduzierte Produkte gekauft haben, können Sie eine Direktsendungskampagne erstellen. Diese ermöglicht die Versendung personalisierter Nachrichten, in denen den Benutzern Preisnachlässe für bestimmte Produkte angeboten werden.

Weitere Informationen über das Erstellen von Ausdrücken und die zielgerichtete Abstimmung von Inhalten auf Benutzer finden Sie unter Zielgruppenadressierung und Personalisierung.

Profilstruktur

Ein Commerce Server-Profil besteht aus folgenden Teilen:

  • Profildefinition. Enthält eine Beschreibung der Daten, die für den jeweiligen Profiltyp zusammengestellt werden sollen. Aus einer einzigen Profildefinition lassen sich mehrere Profile erstellen. Beispiele solcher Profildefinitionen sind "Benutzer" und "Adresse". Systemadministratoren erstellen Profildefinitionen unter Verwendung der Profilressource in Commerce Server-Manager.

  • Profileigenschaft. Bestimmt die Profildaten, die zusammengestellt werden, wenn ein Besucher Ihre Website besucht. So bestimmt die Eigenschaft "Vorname" z. B., dass der Vorname von Benutzern abgefragt werden soll. Mit dem Profil-Designer-Modul von Business Desk lassen sich Profileigenschaften erstellen und zu Profildefinitionen hinzufügen.

  • Attribut. Legt Informationen über die Eigenschaft wie den Datentyp der Eigenschaft fest (z. B. Zahl, Zeichenfolge, Dezimal und Sitebegriff).

  • Profil. Eine einzelne Instanz einer Profildefinition, in der Daten enthalten sind. Jedes Profil basiert auf einer einzelnen Profildefinition.

Die folgende Tabelle zeigt ein Beispiel einer Benutzerprofildefinition sowie eine einzelne Instanz dieser Benutzerprofildefinition mit Daten von Sean Chai.

Profildefinition: Benutzer | Profil: Sean Chai
Vorname | Sean
Nachname | Chai
Stadt | Seattle
Geschlecht | M
Alter | 52
E-Mail-Adresse | seanchai@microsoft.com

Profildefinitionen

Bevor Systemadministratoren neue Profildefinitionen erstellen, muss zuerst der Speicherort der Profildaten in der Datenbank festgelegt werden. Anschließend muss die entsprechende Tabelle samt Spalten für die Daten hinzugefügt werden. Beispiel: Der Businessmanager braucht eine neue Profildefinition namens "Musik", in der folgende Profileigenschaften gespeichert werden sollen: "Erstes Konzert", "Letztes Konzert", "Lieblings-CD" sowie zwei weitere, noch nicht festgelegte Eigenschaften. Sie entscheiden, dass diese Daten am besten in einer neuen Tabelle namens "Musik" in der neuen SQL Server-Datenbank "Unterhaltung" gespeichert werden sollten. So erstellen Sie die Profildefinition "Musik":

  • Führen Sie mit SQL Server Enterprise Manager folgende Schritte durch:
    1. Erstellen Sie eine SQL Server-Datenbank namens "Unterhaltung".

    2. Erstellen Sie die Tabelle "Musik" in der Datenbank "Unterhaltung", und fügen Sie Spalten für die fünf dort zu speichernden Datenelemente hinzu.
  • Führen Sie mithilfe der Profilressource folgende Schritte durch:
    1. Erstellen Sie eine Verknüpfung zur neuen Datenquelle "Unterhaltung". Diesen Schritt müssen Sie nur einmal durchführen. Nachdem Sie eine neue Datenquelle mit der Profilressource verknüpft haben, müssen Sie dies nicht wiederholen.

    2. Erstellen Sie ein Datenobjekt namens "Musik", und verknüpfen Sie es mit der Tabelle "Musik" in der Datenbank "Unterhaltung".

    3. Erstellen Sie die Datenelemente "Erstes Konzert", "Letztes Konzert", "Lieblings-CD", "Platzhalter1" und "Platzhalter2", und verknüpfen Sie diese mit den entsprechenden Spalten der Tabelle "Musik".

    Die folgende Abbildung zeigt, wie Elemente in einer SQL Server-Datenbank, der Profilressource und einer Profildefinition miteinander verknüpft werden.

Beziehung zwischen SQL Server, Profilen, Ressourcen und einer Profildefinition
Enterprise Manager
Profilressource
SQL Server-Datenbank
Datenquelle
Profildefinition
Tabelle
Spalte
Datenobjekt
Eigenschaft
Attribute
Datenelement

Kunst-
Datenbank

Kunst-
Datenquelle

Musik-Profildefinition

Musik-Tabelle
Musik-Objekt
Eigenschaft "Erstes Konzert"
Spalte "Erstes Konzert"
Spalte "Erstes Konzert"
Einzelner
Wert erforderlich

Ausführliche Anweisungen zur Verwendung der Profilressource für die Erweiterung Ihres Profilschemas finden Sie unter Ausführen der Profilressource.

Nachdem Sie die Profildefinition und die Eigenschaften erstellt haben, kann der Businessmanager mithilfe des Profil-Designer-Moduls von Business Desk die Profileigenschaften "Erstes Konzert", "Letztes Konzert" und "Lieblings-CD" zur Definition hinzufügen. In diesem Schritt ordnet der Businessmanager diese Eigenschaften den erstellten Datenelementen zu. Die Namen der Datenelemente müssen dem Businessmanager also bekannt sein. Die Eigenschaften können mithilfe von Commerce Server-Manager mit den Datenelementen verknüpft werden.

Wenn der Businessmanager später die über die Profildefinition "Musik" zusammenzustellenden Informationen bestimmt, lassen sich mit dem Profil-Designer-Modul zwei neue Eigenschaften erstellen und mit den Platzhalterdatenelementen verknüpfen, die in der Musiktabelle erstellt wurden.

In den Commerce Server-Lösungssites sind folgende Beispielprofildefinitionen enthalten: Adressen, Pauschalbestellungen, Organisation, Benutzerobjekt und Zielgruppenadressierungskontext. Das Benutzerobjekt enthält fünf unbenannte Eigenschaften. Dadurch können Sie Eigenschaften zur Benutzerprofildefinition hinzufügen, ohne Ihre Datenbank erweitern zu müssen. Eine Liste von Eigenschaften der einzelnen Profildefinitionen finden Sie unter Beispielprofildefinitionen.

Profileigenschaften

Nachdem der Systemadministrator die Profildefinition erstellt hat, können Sie mit dem Profil-Designer-Modul von Business Desk Profileigenschaften hinzufügen. Diese Profileigenschaften bestimmen, welche Informationen in einem Profil zusammengestellt werden. In der Benutzerprofildefinition könnten beispielsweise folgende Eigenschaften enthalten sein: Vorname, Nachname, Stadt, Geschlecht, Alter und E-Mail-Adresse.

Die folgende Abbildung zeigt die Bestandteile einer Beispiel-Benutzerprofildefinition.

Bestandteile einer Profildefinition
Profileigenschaft
Profilattribute
Benutzerprofildefinition
Vorname
Einwertig erforderlich, indiziert
Nachname
Einwertig erforderlich, indiziert
Ort
(Sitebegriff: Ort
(Zeichenfolge)
(Zeichenfolge)
(Sitebegriff: Ort)
Mexico-Stadt Montreal
New York
Geschlecht
(Sitebegriff: Geschlecht)
Geschlecht
Männlich
Weiblich
Unbekannt
Alter
(Zahl)
E-Mail-Adresse
(Zeichenfolge)
E-Mail-Adresse
E-Mail-Adresse
Datentyp

Attribute

Jede Profileigenschaft verfügt über Attribute. Attribute geben Informationen über die Eigenschaft, etwa über den Datentyp der Eigenschaft (z. B. Nummer, Zeichenfolge, Dezimal und Sitebegriff), ob die Eigenschaft einwertig (z. B. wenn nur ein Vorname zulässig ist) oder mehrwertig ist und ob die Profileigenschaft indiziert ist – also ob ein Besucher der Website anhand der Eigenschaft suchen kann.

Ein Sitebegriff ist ein von Ihnen erstellter Datentyp. Dies ist eine Liste bestimmter Werte, die für Ihre Site relevant sind. Mit Sitebegriffen weisen Sie einer Eigenschaft eine Liste von Werten als Attribut zu. So könnten Sie z. B. einen Sitebegriff namens "Geschlecht" erstellen und folgende gültigen Werte definieren: "Männlich", "Weiblich" und "Unbekannt". Wenn Sie eine Profileigenschaft namens "Geschlecht" erstellen und ihr den Datentyp "Sitebegriff" zuweisen, kann nur einer der gültigen Werte dem Profil zugewiesen werden. Sitebegriffe werden mithilfe des Sitebegriffs-Editor-Moduls in Business Desk erstellt. Über das Profil-Designer-Modul werden Sitebegriffen dann die Profildefinitionen zugewiesen.

Sitebegriffe werden Profileigenschaften zugewiesen und richten so gemeinsame Wörter ein, die Sie überall in Commerce Server verwenden können – z. B., um den Inhalt auf die Benutzerpräferenzen abzustimmen. Weitere Informationen über den Einsatz von Profilen zur Bereitstellung von Inhalten finden Sie unter Zielgruppenadressierung und Personalisierung.

Zusammenstellen und Speichern von Profilen

Profildaten werden bei einer Commerce-Site auf zwei Arten zusammengestellt. Besucher Ihrer Site stellen Ihnen Profildaten über sich selbst zur Verfügung – dies wird explizite Profilerstellung genannt. Wenn Benutzer z. B. Produkte von Ihrer Site kaufen, geben Sie normalerweise ihren Namen, ihre Anschrift, Telefonnummer und E-Mail-Adresse an. Mit diesen Informationen wird dann ihr Benutzerprofil aufgefüllt.

Sie können Daten aber auch über die implizite Profilerstellung zusammenstellen. Bei der impliziten Profilerstellung werden die Aktionen aller Benutzer (anonymer und registrierter) in Webprotokolldateien aufgezeichnet, wann immer Benutzer mit Ihrer Website interagieren. Beispiel: Webprotokolldateien zeichnen die Links auf, auf die anonyme Benutzer klicken, nach welchen Produkte sie suchen, die Länge ihrer Sitzungen und wie lange sie auf einer bestimmten Webseite verweilen. Auch wenn die Benutzer anonym bleiben, also weder ihre Namen noch die E-Mail-Adressen oder andere Daten bekannt sind, liefert ihr Verhalten in Ihrer Site wichtige Informationen. Ein Klickverlauf beispielsweise stellt den Weg durch die besuchten Webseiten dar – mit diesen Informationen können Sie ein bestimmtes Interessenfeld aufdecken. Informationen über die Verwendung von Cookies in Commerce Server finden Sie unter Cookies und Authentifizierung.

Eine andere Form der impliziten Profilerstellung wird von der Commerce Server-Vorhersageressource durchgeführt. Falls bestimmte Informationen Falls bestimmte Informationen über einen Benutzer fehlen, z. B. die Musikpräferenz des Benutzers, kann diese Information von der Vorhersageressource ermittelt werden.Diese Vorhersage basiert auf den gesammelten Eigenschaften der Benutzer, die Ihre Site besuchen und den von ihnen gekauften CDs. Informationen über die Vorhersagefunktion finden Sie unter Vorhersage und Datamining.

Alle während einer bestimmten Benutzersitzung zusammengestellten Informationen werden in einem einzelnen Profil, d. h. in einer Instanz einer Profildefinition, gesammelt.

Nach Sammlung der Profildaten werden diese in den Commerce Server-Datenbanken und den Webserverprotokollen gespeichert. Der Systemadministrator importiert diese Profildaten dann in regelmäßigen Abständen in das Datawarehouse. Nach dem Importieren der Daten im Datawarehouse können die Benutzerdaten mithilfe von Business Desk analysiert werden. Anhand der Analyseergebnisse können Sie dann Ihre Website aktualisieren oder Benutzerprofileigenschaften Werte zuweisen.

Analysieren von Benutzerdaten

Benutzerdaten können Sie in Berichten oder Segmentmodellen analysieren. Informationen über das Analysieren von Segmentmodellen finden Sie unter Analysieren von Benutzersegmenten.

In der folgenden Tabelle sind die in Commerce Server enthaltenen Berichte aufgeführt, die Sie zur Analyse von Benutzerdaten verwenden können.

Bericht | Beschreibung
Verschiedene Benutzer und Besuche pro Woche | Stellt fest, ob weniger Benutzer Ihre Site oft besuchen oder ob viele Benutzer Ihre Site gleichzeitig besuchen.
Verschiedene Benutzer pro Tag | Stellt fest, wieviele verschiedene Benutzer Ihre Site an einem bestimmten Tag besuchen.
Neu registrierte Benutzer | Identifiziert neu registrierte Benutzer. Diese Daten können zur Erstellung spezieller Promotionkampagnen eingesetzt werden. Diesen Bericht können Sie z. B. in Listen-Manager exportieren und den neu registrierten Benutzer dann eine Direktsendungspromotion schicken.
Eigenschaften von registriertem Benutzer | Überprüfen Sie die von den registrierten Benutzern angegebenen Informationen. Diese Daten können zur Erstellung spezieller Promotionkampagnen eingesetzt werden. Als Beispiel können Sie Anzeigen oder Preisnachlässe zielgerichtet für Benutzer mit bestimmten Eigenschaften erstellen.
Registrierte Benutzer nach Registrierungsdatum | Überprüfen Sie mit diesem Bericht das Registrierungverhalten Ihrer Benutzer.
Tage bis zur Registrierung | Ermitteln Sie mit diesem Bericht, wieviele Tage Gastbenutzer im Durchschnitt warten, bis sie sich bei Ihrer Site registrieren.
Benutzerregistrierungsrate | Stellen Sie fest, wieviel Erfolg Sie dabei hatten, Gastbenutzer zur Registrierung bei Ihrer Site zu bewegen.
Benutzertrends | Stellen Sie fest, wie erfolgreich Sie bei der Bindung von Besuchern an Ihre Site sind.

Eine Liste aller Commerce Server-Berichte finden Sie unter Commerce Server-Berichte. Informationen über die Ausführung von Berichten finden Sie unter Ausführen von Berichten.

Beispielprofildefinitionen

Die Commerce Server-Lösungssites enthalten Beispielprofildefinitionen. Falls Ihre Site auf einer Lösungssite basiert, sollten Sie über die fünf in der folgenden Tabelle aufgeführten Profildefinitionen verfügen.

Profildefinition | Eigenschaften (Datentyp) | Beschreibung
Adresse | Adressen-ID (Zeichenfolge) | Adressenbezeichner
 | ID (Zeichenfolge) | Organisations-/Benutzerbezeichner
 | Nachname (Zeichenfolge) | Nachname des Benutzers
 | Vorname (Zeichenfolge) | Vorname des Benutzers
 | Adressenname (Zeichenfolge) | Name für diese Adresse
 | Adresstyp (Nummer) | Adresse/Lieferadresse/Rechnungsadresse
 | Beschreibung (Zeichenfolge) | Beschreibung für diese Adresse
 | Adressenzeile 1 (Zeichenfolge) | Erste Zeile der Adresse
 | Adressenzeile 2 (Zeichenfolge) | Zweite Zeile der Adresse
 | Ort (Zeichenfolge) | Ortsname
 | Kennzahl für Bundesland/Kanton (Zeichenfolge) | Kennzahl für Bundesland/Kanton
 | Name des Bundeslandes/Kantons (Zeichenfolge) | Name des Bundeslandes/Kantons
 | PLZ (Zeichenfolge) | Postleitzahl
 | Landes-/Regionalkennzahl (Zeichenfolge) | ISO-Kennzahl für Land/Region
 | Land/Region (Zeichenfolge) | Landes-/Regionsname
 | Rufnummer (Zeichenfolge) | Rufnummer für diese Adresse
 | Durchwahl (Zeichenfolge) | Durchwahl für diese Adresse
 | Gebietsschema-ID (Nummer) | Gebietsschema, in das das Adressformular zu rendern ist
 | Geändert von (Zeichenfolge) | Name der Person, die dieses Profil zuletzt geändert hat
 | Zuletzt geändert am (Datum/Uhrzeit) | Datum, an dem dieses Profil zuletzt geändert wurde
 | Erstellt am (Datum/Uhrzeit) | Datum, an dem dieses Profil erstellt wurde
Pauschalbestellungen | Auftrags-ID (Zeichenfolge) | Global eindeutiger Bezeichner (GUID), der auf die Pauschalbestellung verweist
 | Organisations-ID (Zeichenfolge) | Organisations-ID
 | Auftragsnummer (Zeichenfolge) | Pauschalbestellungsnummer
 | Beschreibung (Zeichenfolge) | Beschreibung des Auftrags
 | Geändert von (Zeichenfolge) | Name der Person, die dieses Profil zuletzt geändert hat
 | Zuletzt geändert am (Datum/Uhrzeit) | Datum, an dem dieses Profil zuletzt geändert wurde
 | Erstellt am (Datum/Uhrzeit) | Datum, an dem dieses Profil erstellt wurde
Organisation | Organisations-ID (Zeichenfolge) | Organisations-ID
 | Name (Zeichenfolge) | Name der Organisation
 | Nummer des Handelspartners (Zeichenfolge) | Nummer des Handelspartners
 | Administrativer Kontakt (Zeichenfolge) | GUID für den administrativen Kontakt
 | Empfänger (Zeichenfolge) | Benutzer-ID der Person, die vom Lieferanten versandte Produkte empfängt
 | Organisationskatalogsatz (Zeichenfolge) | Organisationskatalogsatz
 | Geändert von (Zeichenfolge) | Name der Person, die dieses Profil zuletzt geändert hat
 | Einkaufs-Manager (Zeichenfolge) | Benutzer-ID des Einkaufs-Managers der Käuferorganisation
 | Zuletzt geändert am (Datum/Uhrzeit) | Datum, an dem dieses Profil zuletzt geändert wurde
 | Erstellt am (Datum/Uhrzeit) | Datum, an dem dieses Profil erstellt wurde
Benutzerobjekt | Benutzer-ID (Zeichenfolge) | Benutzer-ID
 | Anmeldename (Zeichenfolge) | Anmeldename
 | Benutzerkennwort (Kennwort) | Benutzerkennwort
 | E-Mail (Zeichenfolge) | E-Mail-Adresse des Benutzers
 | Benutzertyp (Nummer) | Benutzertyp
 | Benutzertitel (Zeichenfolge) | Benutzertitel
 | Nachname (Zeichenfolge) | Nachname des Benutzers
 | Vorname (Zeichenfolge) | Vorname des Benutzers
 | Rufnummer (Zeichenfolge) | Rufnummer des Benutzers
 | Durchwahl (Zeichenfolge) | Durchwahl des Benutzers
 | Faxnummer (Zeichenfolge) | Faxnummer des Benutzers
 | Faxdurchwahl (Zeichenfolge) | Faxdurchwahl des Benutzers
 | Geändert von (Zeichenfolge) | Name der Person, die dieses Profil zuletzt geändert hat
 | Organisations-ID (Zeichenfolge) | Organisations-ID
 | Kontostatus (Nummer) | Kontostatus
 | Benutzerkatalogsatz (Zeichenfolge) | Benutzerkatalogsatz
 | Registriert am (Datum/Uhrzeit) | Datum, an dem sich der Benutzer registriert hat
 | Kampagnenverlauf (Zeichenfolge) | Kampagnenverlauf
 | Flags für die Partnerservicerolle (Nummer) | Partnerservicerolle
 | Zuletzt geändert am (Datum/Uhrzeit) | Datum, an dem dieses Profil zuletzt geändert wurde
 | Erstellt am (Datum/Uhrzeit) | Datum, an dem dieses Profil erstellt wurde
Zielgruppenadressierungskontext | Seitengruppe (Zeichenfolge) | Name der Seitengruppe (z. B. Sportseiten)

Siehe auch

Ausführen der Profilressource

Migrieren von Site Server 3.0

Migrating the Membership Directory (englisches Thema)

Business Desk-Benutzer

Commerce Server-Berichte


Benutzer- und Adressenlisten

Benutzer- und Adressenlisten sind Textdateien, die Benutzerprofileigenschaften enthalten. Benutzerlisten werden zum Suchen und Aktualisieren von Benutzerprofileigenschaften eingesetzt – Adressenlisten zum Senden von Direktsendungskamapagnen.

Verwenden von Listen bei der Websiteverwaltung

Adressenlisten

Benutzerlisten

Allgemeine Listen

Dynamische und statische Listen

Verwenden von Listen bei der Websiteverwaltung

Mithilfe des Listen-Manager-Moduls von Commerce Server Business Desk importieren und exportieren Sie Benutzer- und Adressenlisten in Business Desk.

  • Hinzufügen von Listen zu Listen-Manager. Sie haben die Möglichkeit, Commerce Server-Analyseberichte als Listen in Listen-Manager zu exportieren. Sie können mit anderen Anwendungen erstellte Listen in Listen-Manager importieren. Beispiele solcher Anwendungen sind SQL Server (SQL-Tabellen), Editor (ASCII-Textdateien), Microsoft Excel (Kalkulationstabellen) oder Microsoft Outlook (PST-Dateien mit Adressenlisten).

    Wenn Sie z. B. über eine Adressenliste in Form einer Microsoft Excel-Kalkulationstabelle verfügen, können Sie diese mit Listen-Manager in Business Desk importieren und die Liste dann in einer Direktsendungskampagne verwenden. Wenn Sie eine Liste von Benutzern in einem Analysebericht identifizieren, können Sie die Berichtsergebnisse als Liste in Listen-Manager importieren. Diese Liste können Sie ebenfalls in einer Direktsendungskampagne verwenden.

    Informationen über das Importieren von Listen in Listen-Manager finden Sie unter Importieren und Exportieren von Listen. Informationen über das Exportieren von Commerce Server-Analyseberichten in Listen-Manager finden Sie unter Exportieren eines statischen Berichts.

  • Verwenden von Listen aus Listen-Manager. Sie können Benutzerlisten aus dem Listen-Manager-Modul in das Benutzermodul importieren und dann die Benutzerprofile in der Liste aktualisieren. Führen Sie z. B. den Bericht "Kundenverkäufe" von Commerce Server aus, um die Benutzer zu identifizieren, die die meisten Produkte kaufen. Exportieren Sie diesen Bericht anschließend als Liste in Listen-Manager. Die Benutzerliste importieren Sie aus dem Listen-Manager-Modul in das Benutzermodul und aktualisieren dann die Benutzerprofile in der Liste. Dazu weisen Sie einer Profileigenschaft einen speziellen Wert in den Benutzerprofilen zu. Diesen Wert verwenden Sie zur Zielgruppenadressierung bestimmter Anzeigen oder Preisnachlasskampagnen auf Benutzer, deren Profile Sie geändert haben. Informationen über das Importieren von Listen in das Benutzermodul finden Sie unter Importieren einer Liste von Benutzerprofilen. Informationen über das Ändern mehrerer Benutzerprofile finden Sie unter Bearbeiten mehrerer Benutzer.

    Sie haben auch die Möglichkeit, die Liste in eine andere Anwendung zu exportieren. So können Sie z. B. eine aus einem Analysebericht erstellte Liste in eine Microsoft Excel-Kalkulationstabelle exportieren. Informationen über das Exportieren von Listen in eine Datei finden Sie unter Importieren und Exportieren von Listen.

Adressenlisten

Adressenlisten enthalten E-Mail-Adressen in einem Zeilenformat für die Verwendung in einer Direktsendungskampagne. Jede Zeile in der Liste enthält einen einzigen Empfänger und besteht aus den folgenden Elementen in einem kommabegrenzten Format.

Element | Beschreibung
E-Mail-Adresse | Erforderlich. Name oder Name@Domäne.
GUID | Optional. Die eindeutige Benutzer-ID, mit der die Inhalte in einer personalisierten E-Mail-Nachricht zusammengestellt werden.
Nachrichtenformat | Optional. Steuert den Nachrichtenformattyp, in den die Ergebnisse vom Collaboration Data Object (CDO) übersetzt werden. Beispiel sind Text, MHTML (MIME Encapsulation of Aggregate HTML Documents) oder MIME (Multipurpose Internet Mail Extensions).
Sprache | Optional. Der Codepagewert für die E-Mail-Nachricht.
URL | Optional. Ermöglicht es, einzelne URLs pro Benutzer an CDO zu übergeben.

Listen lassen sich mit einem beliebigen Text-Editor (z. B. Editor) erstellen. Adressenlisten können zu Business Desk hinzugefügt werden, indem Sie mit dem Listen-Manager-Modul ASCII-Textdateien, Dateien von Microsoft Excel oder Microsoft Outlook bzw. Tabellen aus SQL Server-Datenbank importieren. Informationen über das Erstellen einer Adressenliste mit Informationen aus einer PST-Datei von Microsoft Outlook finden Sie im Thema "Exportieren von Elementen in eine Datei oder in eine Persönliche Ordner-Datei" in der Onlinehilfe von Microsoft Outlook.

Informationen über das Importieren von Adressenlisten für eine Direktsendungskampagne finden Sie unter Importieren einer Adressenliste.

Benutzerlisten

Benutzerlisten enthalten Zeilen mit Benutzer-IDs und – optional – andere Profileigenschaften. Benutzerlisten lassen sich vom Listen-Manager-Modul in das Profil-Designer-Modul exportieren. Anschließend können Sie Massenaktualisierungen der Eigenschaften bestimmter Benutzer durchführen.

So können Sie z. B. eine Liste aus dem Segment-Viewer-Modul importieren und im Benutzerprofil für jeden Benutzer eine Eigenschaft festlegen, die die Zugehörigkeit zu einem bestimmten Segment anzeigt. Mit diesen Informationen können Sie dann Anzeigen und Preisnachlässe zielgerichtet für das jeweilige Benutzersegment erstellen.

Allgemeine Listen

Allgemeine Listen können beliebige Elemente und auch Kopfzeilen enthalten, wie das folgende Beispiel zeigt:

ProduktID | Produktname | Einheit
1 | Socken | 100
2 | Hemden | 20

Im Gegensatz zu Benutzer- und Adressenlisten unterliegen allgemeine Listen keinen inhaltlichen Einschränkungen. Damit Sie allgemeine Listen einsetzen können, muss Ihre Anwendung von einem Siteentwickler angepasst werden.

Mit allgemeinen Listen können Sie z. B. Produkteigenschaften festlegen. Führen Sie den Commerce Server-Bericht "Produktverkäufe" aus, um die beliebtesten Produkte (in Bezug auf die Verkäufe) in Ihrer Website festzustellen. Importieren Sie dann die Ergebnisse dieses Berichts mit dem Listen-Manager-Modul als Produktliste. Geben Sie anschließend über das Katalog-Editor-Modul diesen Produkten eine Eigenschaft, die sie als Verkaufsschlager ausweist. Mithilfe dieser Eigenschaft können Sie dann Zielausdrücke erstellen oder den Preis dieser Produkte um 5 % erhöhen.

Eine andere Verwendung allgemeiner Listen stellt der Versand von Coupons an treue Onlinekunden zur Einlösung in Ihrem wirklichem Geschäft dar. Führen Sie hierzu einen Bericht zur Analyse der Benutzerkäufe aus, exportieren die Ergebnisse des Berichts als Liste mit den Postanschriften der Benutzer und exportieren diese Liste dann mit Listen-Manager in eine Adressetikettenanwendung.

Dynamische und statische Listen

Benutzerlisten, Adressenlisten und allgemeine Listen sind entweder dynamisch oder statisch.

  • Dynamische Listen werden zur Laufzeit erstellt – beispielsweise beim Exportieren einer Liste aus Listen-Manager zur Verwendung in einer Direktsendungskampagne. Listen-Manager sammelt bei jeder Anforderung der Liste die neuesten Daten im Datawarehouse. Nur die zur Erstellung der Liste benötigten Informationen werden in der Datenbank gespeichert, die von Listen-Manager verwendet wird. Verwenden Sie dynamische Listen für häufig durchgeführte Direktsendungskampagnen oder für Adressenlisten, die oft aktualisiert werden müssen.

  • Statische Listen werden sofort auf Anforderung erstellt und dann in der von Listen-Manager verwendeten Datenbank gespeichert. Verwenden Sie statische Listen für unregelmäßig durchgeführte Direktsendungskampagnen oder für Adressenlisten, die sich nicht so häufig ändern.

Siehe auch

Importieren und Exportieren von Listen

Importieren einer Liste von Benutzerprofilen

Verwalten von Listen mit Benutzereinträgen

Erstellen einer Adressenliste


Cookies und Authentifizierung

Commerce Server-Cookies enthalten Informationen über Besucher Ihrer Site. Dazu gehören Benutzername, das Datum des letzten Besuchs sowie ein Zeitfenster, das die Gültigkeitsdauer des Cookies anzeigt. Commerce Server setzt Cookies zur Identifizierung und Authentifizierung von Benutzern ein und um über die Benutzer gesammelten Informationen mit Benutzer-IDs zu verknüpfen.

Commerce Server enthält die CS-Authentifizierungsressource, über die Systemadministratoren bestimmen, wie Cookies in Ihrer Site implementiert werden. Zur Konfiguration der CS-Authentifizierungsressource verwendet der Systemadministrator Commerce Server-Manager.

Verwenden von Cookies

Cookietypen

CS-Authentifizierungsressource

Authentifizieren von Benutzern in einer Webfarm

Commerce Server und Einsatz von Cookies

Verwenden von Cookies

Commerce Server verfügt über verschiedene Funktionen, die Sie auf Cookies in Ihrer Site anwenden können:

  • Verschlüsseln von Cookies. Commerce Server kann so konfiguriert werden, dass die von Ihren Anwendungen erstellten Cookies verschlüsselt werden. Durch das Verschlüsseln der Cookies stellen Sie sicher, dass nur Ihre Commerce Server-Anwendungen die Cookies lesen können.

  • Gemeinsames Nutzen von Cookies durch Domänen. Der Systemadministrator kann Commerce Server so konfigurieren, dass Cookies von verschiedenen Domänen gemeinsam genutzt werden. Jeder Cookie besitzt eine Domäneneigenschaft zur Bestimmung der Domäne, in der der Cookie gültig ist. Die Domäne wird von der Zeichenfolge bestimmt, die vor ".com" (oder einer anderen Erweiterung) steht. Gehen Sie als Beispiel von zwei Domänen aus: premier.microsoft.com und msn.microsoft.com. In diesem Beispiel ist .microsoft.com die Domäne.

  • Gemeinsames Nutzen von Cookies durch mehrere Anwendungen. Systemadministratoren können die CS-Authentifizierungsressource so konfigurieren, dass Cookies von mehreren Anwendungen in derselben Site gemeinsam verwendet werden können.

    In bestimmten Fällen sollten Sie Cookies nicht von Anwendungen in derselben Site gemeinsam nutzen lassen, da das Vorhandensein von Cookies Auswirkungen auf die Analyseergebnisse der Benutzeraktivitäten in Ihrer Site hat. Wenn Sie z. B. über Ihre Site Büroartikel verkaufen und Cookies von einer Lieferanten- und einer Handelsanwendung gemeinsam nutzen lassen, können Sie bezüglich der Benutzeraktivitäten keine Analysen für diesen beiden Anwendungen getrennt vornehmen. Die in der Lieferantensite getätigten Käufe könnten daher einen Benutzer anführen, der Büroartikel in großen Mengen kauft, während die Handelssite Benutzer anführt, die Büroartikel in kleinen Mengen kaufen.

Der Systemadministrator legt durch Konfiguration der Authentifizierungseigenschaften der jeweiligen Anwendung fest, wie Cookies in Commerce Server-Manager verwendet werden. Informationen über die Konfiguration einer Anwendung finden Sie unter Konfigurieren einer Anwendung.

Cookietypen

Commerce Server erstellt zwei Arten von Cookies: persistent und nicht persistent gespeicherte Cookies.

  • Persistent gespeicherte Cookies. Diese werden von Commerce Server zur Verfolgung anonymer Benutzer verwendet, die Ihre Site besuchen. Bei anonymen Benutzern, die Cookies annehmen, werden diese auf den Computern der Benutzer gespeichert. Beim Konfigurieren der CS-Authentifizierungsressource bestimmen Sie die Gültigkeitsdauer von persistent gespeicherten Cookies. Diese liegt meistens bei einigen Jahren. In persistent gespeicherten Cookies werden MSCSProfile-Tickets gespeichert.

  • Nicht persistent gespeicherte Cookies (oder Sitzungscookies). Diese werden von Commerce Server zur Verfolgung authentifizierter Benutzer verwendet, die Ihre Site besuchen. Beim Ende der Sitzung werden die Cookies gelöscht. In nicht persistent gespeicherten Cookies werden MSCSAuth-Tickets gespeichert.

Bei einem Ticket handelt es sich um ein Eigenschaft/Wertpaar, z. B. "userID" und dem Wert von "userID". Beispiel: userID/benutzerxyz ist ein Ticket. Commerce Server verwendet Tickets zum Speichern von Informationen über die Besucher einer Site. Ein Ticket kann in einem Cookie oder einer URL-Abfragezeichenfolge gespeichert werden.

Sowohl persistent als auch nicht persistent gespeicherte Cookies können verschlüsselt werden. Diese Cookies enthalten folgende Daten:

  • Benutzer-ID. Findet Einsatz bei persistent und nicht persistent gespeicherten Cookies. Ein Siteentwickler kann den Wert festlegen, der als Benutzer-ID verwendet wird. Dies kann beispielsweise entweder der Anmeldename oder die E-Mail-Adresse des Benutzers sein. Bei anonymen Benutzern kann die Benutzer-ID z. B. ein global eindeutiger Bezeichner (GUID) sein, der von einer Ihrer Active Server Pages erstellt wird. (Commerce Server enthält das Objekt GenID, mit dem Sie GUIDs erstellen können.)

  • Zeitpunkt der letzten Anmeldung. Findet Einsatz bei nicht persistent gespeicherten Cookies. Falls ein Benutzer authentifiziert ist, den Computer ohne Abmeldung verlässt (oder eine bestimmte Zeitdauer ohne Aktivität verbringt) und dann vor Ende des Zeitfensters zurückkehrt, ist eine erneute Authentifizierung nicht nötig. Nach dem Ende des Zeitfensters ist jedoch eine erneute Anmeldung erforderlich.

  • Zeitfenster. Wird für nicht persistent gespeicherte Cookies eingesetzt und bestimmt, wie lange (in Minuten) ein Cookie gültig ist.

Nachdem sich ein Benutzer bei einer Site abmeldet, verfällt die Authentifizierung.

Siteentwickler können benutzerdefinierte Eigenschaften zu beiden Arten von Cookies hinzufügen.

CS-Authentifizierungsressource

Die CS-Authentifizierungsressource besteht aus zwei Teilen:

  • AuthManager. Ein COM-Objekt (Component Object Model), das auf jeder gesicherten ASP-Seite eingesetzt wird, um zu überprüfen, ob der Benutzer zur Anzeige der Seite authentifiziert ist. Die Lösungssites verwenden AuthManager. AuthManager ist nicht von den Konfigurationseinstellungen abhängig, die während dem Vorgang des Entpackens vorgenommen werden.

    AuthManager unterstützt den cookielosen Einkauf. Ticketdaten (z. B. eine GUID) werden an die Abfragezeichenfolge angehängt.

  • AuthFilter. Dies ist ein ISAPI-Filter (ISAPI oder Internet Server API), der auf der Anwendungsebene der Internet-Informationsdienste (IIS) 5.0 von Commerce Server eingesetzt wird. Dieser Filter lässt sich auf alle Benutzer anwenden, die eine Site besuchen. AuthFilter wird nach dem Vorgang des Entpackens konfiguriert.

    AuthFilter besitzt drei Modi:

    • Windows-Authentifizierung. Dabei wird der Benutzername und das Kennwort mit Active Directory (oder einem lokalen Security Access Manager-Konto) verglichen.

    • Benutzerdefinierte Authentifizierung. Vergleicht den Benutzernamen und das Kennwort mit einer SQL Server-Datenbank oder einer anderen Datenbank.

    • Autocookie-Erzeugung. Sie können automatisch Cookies für anonyme Benutzer erstellen. Dadurch lassen sich Profildaten darüber zusammenstellen, wie anonyme Benutzer in Ihrer Site navigieren und wie sie diese verwenden. Wenn sich anonyme Benutzer registrieren, können ihre persistent gespeicherten Cookies aktualisiert werden. So gehen die Profildaten nicht verloren, die Sie erhalten haben, als die Benutzer noch anonym waren.

    • AuthFilter bietet keine Unterstützung für den cookielosen Einkauf.

Authentifizieren von Benutzern in einer Webfarm

Wenn sich Benutzer in Ihrer Site anmeldet, werden sie von Commerce Server authentifiziert. Hierfür wirden Benutzername und Kennwort mit den Anmeldeinformationen verglichen, die im Profildatenspeicher abgelegt sind. Nach Bestätigung der Benutzerinformationen durch Commerce Server wird ein nicht persistent gespeicherter Cookie erstellt und im ISAPI-Filter zwischenspeichert der Anwendung gespeichert. Der Cookie gibt an, dass der entsprechende Benutzer authentifiziert ist und gesicherte Seiten in Ihrer Site anzeigen darf.

Commerce Server unterstützt die einmalige Authentifizierung von Benutzern in einer Webserverfarm. Beispiel: Ein Benutzer ist bei einem Webserver authentifiziert und wird dann zu einem anderen Webserver umgeleitet, oder es wird ein Lastenausgleich durchgeführt. Der zweite Webserver fordert den Benutzer dann nicht auf, sich erneut anzumelden. Zur Unterstützung dieser Funktionalität können Sie ISAPI-Filter (AuthFilter) verwenden, der von Commerce Server auf der IIS-Websiteebene installiert wird. Wenn der Benutzer zum zweiten Webserver umgeleitet wird, liest ISAPI-Filter den Benutzercookie und überprüft, ob der Cookie eine gültige Benutzer-ID enthält. Wenn Sie den benutzerdefinierten Authentifizierungsmodus verwenden, werden keine weiteren Schritte durchgeführt. Wenn Sie den Windows-Authentifizierungsmodus verwenden, werden folgende Schritte von Commerce Server durchgeführt:

  • Die Anforderung für die gesicherte Seite wird an Login.asp umgeleitet. Diese Seite ist für den Benutzer nicht sichtbar.

  • Auf Login.asp wird unter Verwendung der Benutzer-ID der Profildatenspeicher nach dem entsprechenden Benutzerprofil abgefragt. Dieser gibt Benutzername und Kennwort des Benutzers als Klartext zurück.

  • Benutzername und Kennwort werden an den URL angefügt. Die Anforderung für die gesicherte Seite wird anschließend umgeleitet.

  • Der Filter fängt die Anforderung für die gesicherte Seite ab, entfernt Benutzer-ID und Kennwort aus dem URL und speichert Benutzername und Kennwort im ISAPI-Filterzwischenspeicher.

  • Abschließend zeigt der Filter dem Benutzer die gesicherte Seite. Benutzer-ID und Kennwort werden nicht an den Benutzer übertragen.

Commerce Server und Einsatz von Cookies

Wenn ein Benutzer Ihre Site durchsucht, wird ein Cookie in den Webprotokolldateien gespeichert. Der Systemadministrator verwendet die DTS-Tasks von Commerce Server, um die Siteverwendungsdaten in die Webprotokolldateien und um die Profildaten der Commerce Server-Datenbank in das Datawarehouse zu importieren. Der DTS-Task zum Webprotokollimport von Commerce Server liest die Cookiedaten und entschlüsselt die Benutzer-ID. Dadurch können die Cookie- mit den Profildaten verknüpft werden. Dies wiederum ermöglicht es Ihnen, die Benutzerdaten zu analysieren.

Beim Import der Daten, werden diese nach der Benutzer-ID analysiert. Jede Instanz der Benutzer-ID wird zu einer Zeile im Datawarehouse. Die Benutzer-ID stellt den Primärschlüssel der Zeile dar. Wenn die Benutzerdaten also analysiert werden, wird auf sie über die Benutzer-ID zugegriffen.

Falls ein Benutzer keine Cookies annimmt, und Sie AuthManager implementiert haben, werden die Ticketdaten (einschließlich der GUID) in einer codierten URL-Zeichenfolge abgelegt. Diese URL-Zeichenfolge kann dazu eingesetzt werden, Benutzerinformationen zwischen einzelnen Seiten auszutauschen. Durch Verknüpfung der GUID mit den Benutzeraktivitäten in der Site ermöglicht Commerce Server die Analyse der Aktivitäten anonymer Benutzer.

Siehe auch

Commerce Server-Sicherheit

Sicherheitsplanung

Working with Site Security and Filters (englisches Thema)

Site Security Objects (englisches Thema)

Verwalten der CS-Authentifizierungsressource


Produktkataloge

Ein Katalog stellt eine Möglichkeit zur Organisation von Produkten dar, die Sie verkaufen möchten. Business Desk unterstützt Sie beim Erstellen und Organisieren von Katalogen, indem eine Liste geführt wird, die eine Beschreibung der Eigenschaften beinhaltet, über die verschiedene Katalogelemente verfügen müssen. Diese Beschreibung wird als Katalogschema bezeichnet. Dieses Schema führt alle Arten von Kategorien, Produkten und Eigenschaften auf, die in Ihrem Katalog zulässig sind.

In Commerce Server 2000 werden Kataloge zur Organisation und Verwaltung der in Ihrer Datenbank enthaltenen Produktdaten, die in Ihrer Site angezeigt werden sollen, sowie zur Zielgruppenadressierung von Produkten für Benutzer eingesetzt.

Verwenden von Katalogen bei der Websiteverwaltung

Auffüllen Ihres Katalogs mit Produktdaten

Austauschen von Katalogen mit BizTalk Server

Katalogstruktur

Katalogorganisation: Hierarchien und Beziehungen

Eindeutige Bezeichner in Katalogen

Basiskataloge, benutzerdefinierte Kataloge und Katalogsätze

Methoden zur Produktpreisberechnung

Analysieren von Katalogverkäufen

Verwenden von Katalogen bei der Websiteverwaltung

Mithilfe der Katalogmodule in Commerce Server Business Desk können Sie Ihre Kataloge verwalten, analysieren und erweitern. Wenn sich Ihre Site z. B. in der Produktion befindet, können Sie Berichte von Business Desk ausführen, um die Produkte zu erfassen, die sich nicht gut verkaufen. Anschließend können Sie eine Preisnachlasskampagne erstellen, um den Absatz dieser Produkte zu erhöhen.

Business Desk ermöglicht die folgenden Aktionen:

  • Importieren von Katalogen aus anderen Datenquellen. Sie können Kataloge im XML-(Extensible Markup Language)- oder CSV-Format (trennzeichengetrennt) aus externen Quellen importieren. Wenn Sie beispielsweise über Kataloge in anderen Datenbanken verfügen, können Sie diese in die Katalogdatenbank von Commerce Server importieren und dann mit Business Desk verwalten.

    Zur Konvertierung von Katalogen ins XML- oder CSV-Format können Sie die Kataloge mit Ihrem vorhandenen Datenbankverwaltungssystem im XML- bzw. CSV-Format speichern. Mit einem Skript, das ein Siteentwickler mit Microsoft Visual Basic für Sie schreiben kann, lassen sich Kataloge auch konvertieren.

    Bevor Sie einen Katalog importieren können, muss der Systemadministrator einen freigegebenen Ordner auf Commerce Server erstellen. Mit dem Windows-Explorer können Sie den Katalog in den freigegebenen Ordner kopieren und dann mit Business Desk in die Commerce Server-Datenbank importieren.

  • Exportieren von Katalogen. Sie können Ihre Kataloge im XML-Format exportieren. Wenn Sie beispielsweise als Großhändler Produkte verkaufen, bietet es sich an, Ihre Kataloge für Einzelhändler zu exportieren. Sie haben auch die Möglichkeit, einen Katalog in eine andere Anwendung zu exportieren – z. B. in ein Inventar- oder ein Preisberechnungssystem.

    Bevor Sie einen Katalog exportieren können, muss der Systemadministrator einen freigegebenen Ordner auf Commerce Server erstellen, bzw. Sie müssen den Namen eines Verzeichnisses auf dem Server kennen, auf das Sie Zugriff haben. Mit Business Desk können Sie den Katalog dann in den freigegebenen Ordner bzw. in das Verzeichnis exportieren.

    Wenn Sie mit Commerce Server den Import und Export von Katalogen planen möchten, kann ein Siteentwickler diese Funktionalität bereitstellen.

  • Anwenden von Preisnachlässen auf Produkte. Sie können Preisnachlässe auf alle Produkte in einer Kategorie oder nur auf Produkte anwenden, die bestimmte Kriterien erfüllen. Beispiel: Bei Produkt.Preis = 20,00 wird ein Preisnachlass von 10 % auf den Preis angewendet, sobald Benutzer das entsprechende Produkt zu ihrem Warenkorb hinzufügen. Informationen über das Anwenden von Preisnachlässen auf Produkte finden Sie unter Kampagnen: Anzeigen, Preisnachlässe und Direktsendungen. Eine Anleitung zum Hinzufügen einer Preisnachlasskampagne finden Sie unter Hinzufügen eines Preisnachlasskampagnenartikels.

  • Bearbeiten von Produkten im Katalog. Sie haben die Möglichkeit, Produktnamen, -preis, -beschreibung usw. zu ändern.

  • Aktualisieren von Produktinformationen in Echtzeit. Sie können Produktinformationen, wie z. B. den Produktpreis, aktualisieren und die Änderungen in Ihrer Website veröffentlichen. Wenn Ihre Kunden beispielsweise ein Produkt zu ihren Warenkörben hinzugefügt haben und Ihre Site aktualisiert wird, bevor sich die Benutzer abmelden, wendet Commerce Server den neuen Preis auf die Warenkörbe an. Wenn die Kunden ihre Warenkörbe gespeichert haben und dann nach der Preisaktualisierung zu ihnen zurückkehren, wird bereits der neue Preis angezeigt.

  • Identifizieren erfolgreicher Produkte. Führen Sie Commerce Server-Berichte aus, um die bestverkauften Produkte bzw. Kategorien nach verkauften Einheiten und Gesamtverkäufen zu identifizieren. Die Analyseergebnisse können Sie z. B. zur Anwendung von Preisnachlässen auf Produkte verwenden, die sich nicht gut verkaufen oder um Zubehör für Produkte zu promoten, die sich gut verkaufen. Außerdem kann Ihr Siteentwickler Ihre Site anpassen, um verwandte Verkaufstypen wie Up-Selling und Cross-Selling zu unterstützen.

  • Suche nach Produkten. Produkte lassen sich einfach über eine Eigenschafts- oder Freitextsuche finden.

Auffüllen Ihres Katalogs mit Produktdaten

Mithilfe des Katalog-Editor-Moduls in Business Desk können Sie manuelle Produktdaten eingeben bzw. Daten aus einer XML- oder CSV-Datei importieren. Wenn Sie z. B. bereits über einen Katalog in einer anderen Datenbank verfügen, kann dieser von Ihrem Systemadministrator als XML-Datei exportiert werden. Mit dem Katalog-Editor-Modul können Sie den Katalog dann in die Katalogdatenbank von Commerce Server importieren.

Austauschen von Katalogen mit BizTalk Server

BizTalk Server 2000 hat die Funktion eines Gateways für den Versand von Geschäftsdokumenten zwischen Ihrer Firma und Ihren Handelspartnern (auch "Vertreiber" genannt). Wenn BizTalk Server von Ihrer Firma und Ihren Handelspartnern verwendet wird, können Sie Kataloge, Bestellungen, Dokumente und andere elektronische Formulare miteinander austauschen. So können Ihnen Vertreiber z. B. ihre Kataloge senden, und Sie können diese in Ihrer Website zusammen mit Ihrem eigenen Katalog veröffentlichen. Wenn Benutzer in Ihrer Website Bestellungen aufgeben, werden diese zur Ausführung direkt an den Vertreiber übermittelt.

Jeder Ihrer Handelspartner kann Ihnen einen oder mehrere Kataloge mit seinen Produkten schicken. Abhängig von der Konfiguration Ihrer Site können Sie diese Kataloge in Ihrer Website als einen einzigen oder als verschiedene Kataloge anbieten. Weitere Informationen über die Verwendung von BizTalk Server finden Sie unter Verwenden von BizTalk Server und Integrating with BizTalk Server (englisches Thema).

Katalogstruktur

Ein Commerce Server-Katalog besitzt zwei Hauptbestandteile:

  • Katalogschema. Eine Beschreibung der Kategorien und Produkte einer Site. Das Katalogschema ist für alle Kataloge in einer Site verfügbar.

  • Katalog. Eine einzelne Instanz des Katalogschemas, das Daten enthält.

Die folgende Tabelle zeigt ein Beispiel eines Katalogschemas ("Kleidung") sowie eine einzelne Instanz des Kleidungskatalogschemas mit Daten des Sportkleidungskatalogs.

Katalogschema | Katalog: Sportkleidung
Kategoriedefinition: Abteilung Kategorieeigenschaften Name Description Image_filename Image_width Image_height | Kategorie: Sporttrikotbteilung Sporttrikotabteilung Katalog für Sporttrikots 2000 Sporttrikots.gif 100 200
Produktdefinition: Hemden Produkteigenschaften: Name Manufacturer Price Produktvarianteneigenschaften: Size Color SKU | Produkt: Ass-Fußballtrikot Ass-Fußballtrikot Ass Trikots DM 40,00 M Grün 23354

Katalogschema

Das Katalogschema beschreibt die Eigenschaften der Kategorien und Produkte in einem bestimmten Katalogtyp. Im Katalogschema eines Sportbekleidungskatalogs könnten beispielsweise folgende Produktdefinitionen enthalten sein: Trikots, Hosen und Schuhe. Zur Erstellung eines Katalogschemas können Sie das Katalog-Designer-Modul von Business Desk verwenden.

Ein solches Katalogschema besteht aus Kategoriedefinitionen, Produktdefinitionen und Eigenschaftsdefinitionen. Kategorie- und Produktdefinitionen werden mithilfe von Eigenschaftsdefinitionen erstellt. Die folgende Abbildung zeigt, wie Eigenschaftsdefinitionen von Produkt- und Kategoriedefinitionen gemeinsam genutzt werden.

Verwendung von Eigenschaften in Produkt- und Kategoriedefinitionen
Name (Text)
Hersteller (Text)
Preis (Währung)
Kategoriedefinition
Farbe (Multiplechoice) Beschreibung (Text) Bild_Dateiname (Dateiname) Bild_Breite (Zahl) Bild_Höhe (Zahl) Herstellung (Text)
Name (Text)
Preis (Währung)
Größe (Multiplechoice)
SKU (Zahl)
Eigenschaften
Produktdefinition
Farbe (Multiplechoice) Beschreibung (Text) Bild_Dateiname (Dateiname) Bild_Breite (Zahl) Bild_Höhe (Zahl) Herstellung (Text)
Name (Text)
Preis (Währung)
Größe (Multiplechoice)
SKU (Zahl)
Name (Text) Beschreibung (Text) Bild_Dateiname (Dateiname) Bild_Breite (Zahl) Bild_Höhe (Zahl)
Varianteneigenschaften
Größe (Multiplechoice)
Farbe (Multiplechoice)
SKU (Zahl)
Katalogschema

Kategoriedefinitionen beschreiben die jeweiligen Merkmale Ihrer Katalogkategorien. Diese Merkmale werden Kategorieeigenschaften genannt. Kategoriedefinitionen werden durch Zuweisung von Kategorieeigenschaften erstellt. Die Abteilungskategoriedefinition könnte beispielsweise über folgende Kategorieeigenschaften verfügen: Name, Beschreibung, Bilddateiname, Bildhöhe und Bildbreite. Zur Erstellung einer Kategorie basierend auf der Abteilungskategoriedefinition geben Sie Werte für die Kategorieeigenschaften ein. So könnte z. B. "Sporttrikotabteilung" die Namenskategorieeigenschaft sein.

Produktdefinitionen beschreiben die Merkmale eines bestimmten Produkts. Diese Merkmale werden Produkteigenschaften genannt. Produktdefinitionen werden durch Zuweisung von Produkteigenschaften erstellt. Beispielsweise könnten Sie eine Produktdefinition namens "Trikot" erstellen, die drei Produkteigenschaften enthalten würde: Name, Hersteller und Preis. Zur Erstellung eines Produkts basierend auf der Trikot-Produktdefinition geben Sie Werte für die Produkteigenschaften ein. So könnte z. B. "Ass-Fußballtrikot" die Namensprodukteigenschaft sein.

Sowohl Produkt- als auch Kategorieeigenschaften basieren auf Eigenschaftsdefinitionen. Eine Eigenschaftsdefinition enthält Informationen über die Eigenschaft, wie etwa den Datentyp der Eigenschaft (z. B. Nummer, Text oder Dezimal), den Namen der Eigenschaften und den Mindestwert der Eigenschaften. Sie können beispielsweise eine Eigenschaft namens "Trikotgröße" mit den Werten "S", "M" und "L" oder eine Eigenschaft namens "Länge" mit einem Mindestwert von 10 und einem Höchstwert von 120 erstellen.

Katalogschemas lassen sich ändern, selbst dann, wenn ein Katalog bereits Daten enthält. Sie haben unter anderem die Möglichkeit, Eigenschaftsdefinitionen hinzuzufügen, zu entfernen oder umzubenennen. Sie können außerdem den Datentyp einer Eigenschaft ändern – etwa von Nummer zu Zeichenfolge.

Eine Anleitung zum Erstellen von Katalogschemas finden Sie unter Erstellen eines Katalogschemas.

Kataloge

Ein Katalog stellt eine Instanz eines Katalogschemas dar und enthält Daten über einzelne Produkte sowie über die Kategorien, in die diese Produkte eingeteilt sind. Zur Erstellung eines Katalogs können Sie das Katalog-Designer-Modul von Business Desk verwenden.

Ein Katalog besteht aus Kategorien, Produkten, Produktvarianten und Eigenschaften. Die folgende Abbildung zeigt Teile eines Beispielkatalogschemas und wie diese Teile eines Katalogs zugeordnet sind. Eigenschaften werden in Kategorie- und Produktdefinitionen eingesetzt. Die Kategoriedefinition "Abteilung" wird für die Kategorie "Fußballtrikots" verwendet. Die Produktdefinition "Fußballtrikot" wird für das Produkt "Ass-Fußballtrikot" verwendet.

Bestandteile eines Beispielkatalogschemas und eines Beispielkatalogs
Katalogschema
Katalogdaten
Kategoriedefinition
Kategorietyp 'DEPT'
Eigenschaft "Name"
Eigenschaft "Größe"
Eigenschaft "Farbe"
Eigenschaft "SKU"
Preis: 20
Eigenschaften
Produktdefinition
Fußballtrikot
Fußballtrikot-
kategorie
Ass-Fußballtrikotpreis: 20
Sportbekleidungs-
katalog
Größe: S
Größe: S
Größe: M
Größe: M
Größe: L
Farbe: Grün
SKU:115
Kategorie
Katalog
Eindeutige Produktfamilienkennung = Name
Eindeutige Produktvariantenkennung = SKU

Kategorien sind einzelne Instanzen einer Kategoriedefinition. Mit der Kategoriedefinition "Abteilung" lässt sich so z. B. die Kategorie "Fußballtrikots" erstellen.

Produkte sind einzelne Artikel in Ihrem Katalog. Ein Produkt wird über eine Kombination aus Eigenschaftsdefinitionen definiert. Beispiel: Es gibt die Produktdefinition "Fußballtrikots" mit den Eigenschaften "Name", "Farbe" und "Größe". Für jede Kombination dieser Eigenschaften, die in Ihrem Katalog enthalten sein soll, erstellen Sie nun ein Produkt.

Produkte können in Gruppen eng verwandter Artikel – Produktfamilien genannt – angeordnet werden. Eine Produktfamilie ist eine Gruppe von Produkten, die Produktvarianten enthält. Beispiel: Ein grünes Trikot in L mit der SKU (Stock Keeping Unit, Inventarkennung) 114 ist eine Produktvariante des Fußballtrikotprodukts, d. h., Größe, Farbe und SKU bilden zusammen eine Variante. Eine Produktvariante enthält immer einen eindeutigen Bezeichner (z. B. eine SKU) und einen Preis. Die einzelnen Produktvarianten basieren auf derselben Produktdefinition.

Anweisungen für die Erstellung eines Katalogs finden Sie unter Erstellen eines Katalogs.

Katalogorganisation: Hierarchien und Beziehungen

Sie können Kategoriehierarchien und -beziehungen zwischen Kategorien und Produkten erstellen, um die Produkte in Ihrem Katalog zu organisieren und um die Suche nach den gewünschten Produkten für Ihre Benutzer zu erleichtern. Zum Beispiel können Sie eine übergeordnete Kategorie erstellen, die zwei verschiedene untergeordnete Kategorien enthält. Wenn Benutzer zur übergeordneten Kategorie navigieren, werden die untergeordneten Kategorien angezeigt. So können Ihre Benutzer schneller die gewünschten Produkte finden.

Die folgende Abbildung zeigt, wie eine übergeordnete Kategorie eine Reihe von untergeordneten Kategorien besitzen kann und wie auch die einzelnen untergeordneten Kategorien wiederum übergeordnete Kategorien sein können.

Abbildung eines Beispielkatalogs
Katalogsammlung
Katalog B
Katalog C
Sportbekleidungs-
katalog
Hosen
Trikots
Fußballtrikots
Zweiteilige
Laufanzüge
Ass-Fußballtrikot
Ass-Fußballhosen
Zubehör

Größe:
Farbe:
SKU:

Größe:
Farbe:
SKU:

Größe:
Farbe:
SKU:

S
Schwarz
113

M
Blau
114

L
Grün
115

In der obenstehenden Abbildung besitzt der Sportbekleidungskatalog zwei Kategorien: Trikots und Hosen. Die Trikotskategorie verfügt über zwei untergeordnete Kategorien: Fußballtrikots und zweiteilige Laufanzüge. Über diesen Aufbau können Benutzer zwei Wege zur Kategorie "Zweiteilige Laufanzüge" nehmen. Sie können zu den Laufanzügen über die Trikots- oder über die Hosenkategorie navigieren. Diese Abbildung zeigt auch eine Zubehörbeziehung zwischen Ass-Fußballtrikots und Ass-Fußballshorts. Falls sich Benutzer für die Trikots interessieren, haben sie vielleicht ebenfalls Interesse an den Shorts.

Eine Anleitung zum Erstellen von Hierarchien finden Sie unter Erstellen von Kategoriehierarchien. Eine Anleitung zum Erstellen von Beziehungen finden Sie unter Erstellen von Kategorie- und Produktbeziehungen.

Eindeutige Bezeichner in Katalogen

Sowohl Produkte als auch Produktvarianten besitzen eindeutige Bezeichner. Diese eindeutigen Bezeichner bestehen entweder aus einer Text- oder Nummerneigenschaft. Bei einem Bücherkatalog beispielsweise wäre der Buchtitel der eindeutige Bezeichner des Buchs und die ISBN-Nummer könnte der eindeutige Bezeichner für die Produktvariante sein. Für das Buch The Quest Ahead wären die gebundene Ausgabe, die Taschenbuchausgabe und die Audiobuchausgabe jeweils eine Variante. Diese drei Produktvarianten sind Teil der Produktfamilie "The Quest Ahead".

Das folgende Beispiel zeigt die Komponenten der Produktfamilie "The Quest Ahead".

Produktfamilie = The Quest Ahead
Eindeutige ID = Titel: The Quest Ahead

Produktvariante = The Quest Ahead (gebunden)
Eindeutige ID = ISBN: 1102334
Preis = 20,00

Produktvariante = The Quest Ahead (Taschenbuch)
Eindeutige ID = ISBN: 1102335
Preis = 10,00

Produktvariante = The Quest Ahead (Audiobuch)
Eindeutige ID = ISBN: 1102336
Preis = 15,00

Bei der Erstellung eines Katalogs bestimmen Sie, welche Eigenschaften als eindeutige Bezeichner für Produkte und Produktvarianten dienen sollen.

Basiskataloge, benutzerdefinierte Kataloge und Katalogsätze

Sie haben die Möglichkeit, zwei Arten von Katalogen zu erstellen. Außerdem können Sie zwei oder mehr Kataloge zu Katalogsätzen verbinden.

  • Basiskataloge enthalten Kategorien und Produkte, jedoch keine spezifischen Preisberechnungsregeln. Informationen über die Erstellung eines Katalogs finden Sie unter Erstellen eines neuen Katalogs.

  • Benutzerdefinierte Kataloge werden von Basiskatalogen abgeleitet und enthalten spezifische Preisberechnungsregeln für die Produkte im Katalog. Die Preise in einem benutzerdefinierten Katalog setzen die Preise in einem Basiskatalog außer Kraft. Benutzerdefinierte Kataloge werden z. B. in einer Lieferantensite eingesetzt, um einer oder mehreren Firmen benutzerdefinierte Preise für bestimmte Produkte anzubieten. Für eine Handelssite können Sie benutzerdefinierte Kataloge z. B. dann einsetzen, wenn es für Kunden verschiedene Mitgliedsstufen gibt und Sie Produktpreise entsprechend der Mitgliedsstufe berechnen möchten. Sie können auch Benutzern, die oft in Ihrer Site einkaufen, andere Preise anzeigen. Informationen über die Erstellung eines benutzerdefinierten Katalogs finden Sie unter Erstellen eines benutzerdefinierten Katalogs.

Welche Kataloge Benutzern in Ihrer Site angezeigt werden, bestimmen Sie durch Erstellung von Katalogsätzen. Ein Katalogsatz ist eine Gruppe von einem oder mehreren Katalogen, die Sie verschiedenen Benutzern oder Organisationen zur Verfügung stellen. Beispiel: Sie erstellen einen benutzerdefinierten Katalog, kombinieren diesen mit einem allgemeinen Katalog und zeigen diesen Katalogsatz dann Mitgliedern einer bestimmten Organisation an. Die folgende Abbildung veranschaulicht, wie Mitglieder eines Fußballclubs einen Teambekleidungskatalog mit Sonderpreisen anzeigen können.

Möglichkeiten, wie verschiedene Benutzer unterschiedliche Katalogsätze betrachten können
Sportbekleidungs-
katalog
Winterbekleidungs-
katalog
Sportbekleidungs-
katalog
Winterbekleidungs-
katalog
Mannschafts-
bekleidungskatalog (benutzerdefinierte Preisbildung auf Kategorieebene)
Fußballmitglieder-Katalogsätze
Mitglieder eines Fußballvereins
Alle Benutzer
Allgemeiner Katalogsatz

Informationen über die Erstellung von Katalogsätzen finden Sie unter Erstellen eines Katalogsatzes.

Im Benutzermodul von Business Desk bestimmen Sie, welchen Katalogsatz ein Benutzer anzeigen kann. Den Katalogsatznamen legen Sie beim Erstellen von neuen Benutzern fest. Informationen über das Erstellen neuer Benutzer und das Festlegen des Katalogsatzes finden Sie unter Hinzufügen eines Benutzers.

Methoden zur Produktpreisberechnung

Zur Preisberechnung von Katalogprodukten haben Sie drei Möglichkeiten:

  • Direkte Preisberechnung. Dabei definieren Sie den Preis eines Produkts in der Produktdefinition. Dazu haben Sie entweder beim Erstellen oder beim Bearbeiten des Produkts Gelegenheit. Anweisungen über die Anwendung direkter Preisberechnung finden Sie unter Preisberechnung eines Produkts und Preisberechnung auf Produktvariantenebene.

  • Indirekte Preisberechnung. Hierbei wird der Preis über seine Zuordnung zu einer bestimmten Preiskategorie berechnet. Wenn ein Produkt einer Preiskategorie zugeordnet wird, wird der Produktpreis vom Preis außer Kraft gesetzt, der in der Preiskategorie definiert ist. Die indirekte Preisberechnung wird für gewöhnlich verwendet, wenn Sie für eine Gruppe von Produkten denselben Preis anbieten möchten – z. B. für eine Sonderkategorie, in der alle Produkte nur DM 1,99 kosten. Anweisungen über die Anwendung der indirekten Preisberechnung finden Sie unter Preisberechnung von Produkten in einer Kategorie.

  • Benutzerdefinierte Preisberechnung. Hierbei weisen Sie einer Kategorie einen Preis zu und erstellen dadurch einen benutzerdefinierten Katalog. Es gibt drei Arten benutzerdefinierter Preisberechnung, die Sie auf einen benutzerdefinierten Katalog anwenden können:
    • Prozentuale Anpassung. Gibt den Prozentsatz des Listenpreises an, der für ein Produkt berechnet werden soll. Beispiel: Um einen Preisnachlass von 10 % anzuwenden, geben Sie 90 ein. Dadurch geben Sie an, dass das Produkt für 90 % des Listenpreises verkauft wird.

    • Feste Anpassung. Legt den genauen Betrag fest, um den der Listenpreis reduziert bzw. erhöht wird. Beispiel: Für einen Preisnachlass von DM 2,00 geben Sie –2 ein, und für eine Preiserhöhung um DM 2,00 DM geben Sie 2 ein.

    • Preis festlegen. Gibt den genauen Preis eines Produkts an. Beispiel: Ein Produkt wird für genau DM 10,00 verkauft.

    Eine Anleitung zur benutzerdefinierten Preisberechnung finden Sie unter Preisberechnung eines benutzerdefinierten Katalogs.

Analysieren von Katalogverkäufen

In der folgenden Tabelle sind die in Commerce Server enthaltenen Berichte aufgeführt, die Sie zur Analyse von Katalogverkaufsdaten verwenden können.

Bericht | Beschreibung
Kundenverkäufe | Überprüfen Sie Kundendetails, Gesamtverkäufe und Gesamtbestellungen mit diesem Bericht. Mit diesen Informationen lassen sich zielgerichtete Onlinekampagnen (z. B. Direktsendungspromotions) für diese Kunden erstellen.
Warenkorbereignisse | Stellen Sie fest, wann Artikel zu Warenkörben hinzugefügt bzw. daraus entfernt wurden.
Käuferverhalten bis zum Kauf | Mit diesem Bericht können Sie Benutzerbesuchsmuster analysieren. Dieser Bericht liefert Ihnen Daten über die durchschnittliche Anzahl von Besuchen, Besuche pro Kauf, Gesamtverkäufe sowie über die Anzahl der Verkäufe und Besucher.
Produktverkäufe | Mit diesem Bericht können Sie Verkaufsvolumen und Einnahmen nach Datum analysieren. Dieser Bericht liefert Mengen- und Einnahmedaten.
Bestellereignisse | Analysieren Sie, wann Bestellungen in Ihrer Site aufgegeben werden. Dieser Bericht liefert Ihnen Daten zu Datum, Uhrzeit, Ereignis und Benutzertyp.
Zusammenfassung der Kundenausgaben | Mit diesem Bericht können Sie Verkaufsvolumen und Einnahmen nach Kunde analysieren.

Eine Liste aller Commerce Server-Berichte finden Sie unter Commerce Server-Berichte. Informationen über die Ausführung von Berichten finden Sie unter Ausführen von Berichten.

Siehe auch

Business Desk-Kataloge

Hinzufügen eines Preisnachlasskampagnenartikels

Integrating a Third-Party Product Catalog (englisches Thema)


Datawarehouse

Das Datawarehouse von Commerce Server 2000 stellt eine Reihe von Prozessen dar, mit deren Hilfe Systemadministratoren Daten in SQL Server- und OLAP-Datenbanken (OLAP oder Analytische Onlineverarbeitung) importieren und verwalten können. Das Datawarehouse importiert große Datenmengen zur Siteverwendung, die aus einer Reihe verschiedener Datenquellen gesammelt werden. Diese Daten stammen aus Ihren Webserverprotokollen, den Commerce Server-Datenbanken (Profile, Kataloge, Kampagnen und Transaktionen) sowie anderen von Ihnen angegebenen Datenquellen. Diese Daten werden im Datawarehouse in den SQL Server- und OLAP-Datenbanken verwaltet, und können anschließend zur Berichterstellung und zur Analyse und Anzeige von Benutzersegmenten eingesetzt werden.

Das Datawarehouse ist für die Unterstützung zuverlässiger Abfragen und Analysen ausgelegt. Verwenden Sie die Analysemodule von Commerce Server Business Desk zur Analyse der Daten im Datawarehouse, z. B. um Benutzertrends festzustellen oder die Wirksamkeit einer Kampagne zu analysieren. Anschließend können Sie Ihre Site aktualisieren, um Inhalte zielgerichtet auf bestimmte Benutzergruppen zuzuschneiden oder bestimmte Produkte zu verkaufen.

Verwenden des Datawarehouse bei der Websiteverwaltung

Datawarehouse-Struktur

Importieren von Daten in das Datawarehouse

Datenvorbereitung zur Analyse mit einem OLAP-Server

Analysieren Ihrer Daten

Verwenden des Datawarehouse bei der Websiteverwaltung

Das Datawarehouse fasst Daten aus mehreren Quellen in einer gemeinsamen Struktur zusammen. Somit wird eine Konsistenz der Daten beim Erstellen von Berichten und bei der Analyse von Benutzersegmenten erreicht. Dies wird als Business Analytics-System von Commerce Server bezeichnet. Business Analytics gibt Ihnen die Möglichkeit, Ihre Websitedaten zu analysieren, um bestimmte Fragen über die Performance Ihrer Website zu beantworten. Die derart erhaltenen Informationen können Sie zur Optimierung Ihres Kundenservice oder zur Zielgruppenadressierung von Inhalten für Benutzer verwenden.

Mit Business Analytics können Sie die Performance Ihrer Website exakt messen und Antworten auf folgende Fragen finden:

  • Welche URL hat der Benutzer besucht, bevor er auf Ihre Site kam (verweisende URL)?

  • Welche Art von Werbung funktioniert?

  • Welche Seiten in Ihrer Website sind am beliebtesten?

  • Welche Produkte verkaufen sich am besten?

  • Welche Benutzer kaufen am meisten?

Anhand dieser Anhaltspunkte können Sie Änderungen an Ihrer Website vornehmen, durch die sich Verkäufe erhöhen und Benutzer binden lassen. Beispiel: Sie 'schalten' eine Anzeige, um ein neues Produkt zu promoten. Nachdem die Anzeige eine Woche lang angezeigt wurde, können Sie über einen Bericht feststellen, ob die Werbung den Verkauf des Produkts positiv beeinflusst hat. Wenn dies nicht der Fall ist, können Sie Ihre Site aktualisieren. Sie haben z. B. die Möglichkeit, für das neue Produkt einen 10-prozentigen Preisnachlass anzuzeigen. Nach etwa einer Woche könnten Sie dann feststellen, ob sich die Verkäufe durch den Preisnachlass verbessert haben.

Datawarehousetruktur

Das Datawarehouse verfügt über zwei Hauptbestandteile:

  • Physischer Speicher. Eine Microsoft SQL Server-Datenbank, die Sie mithilfe von SQL abfragen können, sowie eine OLAP-Datenbank zur Ausführung von Berichten.

  • Logisches Schema. Ein Begriffsmodell, mit dem Daten im physischen Speicher zugeordnet werden.

Die folgende Abbildung zeigt die Beziehungen zwischen dem physischen Speicher und dem logischen Schema.

Beziehung zwischen dem physikalischen Speicher und dem logischen Schema
Commerce Server-Datawarehouse
Logisches Schema

Klasse 1
Datenelement
Datenelement

Klasse 2
Datenelement
Datenelement

Klasse 3
Datenelement
Datenelement

ordnet zu

Physischer Speicher
Berichtvorbereitungs-DTS-Task

OLAP-Server

SQL Server

Physischer Speicher

Der physische Speicher des Datawarehouse beinhaltet eine Datenbank, die Sie mithilfe von SQL abfragen können. Der physische Speicher enthält sämtliche aus den verschiedenen Quellen importierten Daten.

Commerce Server erstellt automatisch den physischen Speicher für das Datawarehouse, sowohl in der SQL Server- als auch in der OLAP-Datenbank. Das Datawarehouse liefert die für alle Commerce Server-Berichte benötigten Daten in den Analysemodulen von Business Desk.

Es ist nicht nötig, den physischen Speicher für das Datawarehouse manuell zu ändern. Wenn Sie das Datawarehouse beispielsweise für Daten von Dritten erweitern möchten, kann ein Siteentwickler die benötigten Felder über das logische Schema programmatisch hinzufügen.

Logisches Schema

Das logische Schema gibt Ihnen eine greifbare Ansicht der Daten im Datawarehouse und unterstützt einen effizienten Importprozess. Siteentwickler verwenden das logische Schema beispielsweise, um den Speicherort der Daten in den zugrunde liegenden physischen Tabellen zu ändern. Wenn Siteentwickler Code zum Hinzufügen, Aktualisieren oder Löschen von Daten im Datawarehouse implementieren, interagieren sie mit dem logischen Schema. Wenn Commerce Server auf die Daten im Datawarehouse zugreift, geschieht dies über das logische Schema. Nur Siteentwickler benötigen Detailkenntnisse des logischen Schemas.

Ein logisches Schema besteht aus den folgenden Elementen:

  • Klasse. Eine logische Sammlung von Datenelementen. Die Klasse RegisteredUser enthält z. B. Datenelemente, die einen registrierten Benutzer beschreiben.

  • Datenelement. Eine Struktur, die bestimmte Daten speichert. Beispiel: Das Datenelement E-Mail der Klasse RegisteredUser speichert die E-Mail-Adresse eines registrierten Benutzers.

  • Beziehung. Eine Verbindung zwischen zwei Klassen in einer Parent-Child-Beziehung. Diese Beziehung definiert die Anzahl von Instanzen der einzelnen Klassen und fungiert als Mechanismus für den Austausch von Datenelementen zwischen Klassen. RegisteredUser ist z. B. Parent für die Child-Klasse Anfordern. Für einen registrierten Benutzer kann es viele Anforderungen geben.

Das logische Schema verwendet Klassen, Datenelemente, Beziehungen und andere Datenstrukturen, um Daten im physischen Speicher zuzuordnen.

Importieren von Daten in das Datawarehouse

Die Daten, mit denen das Datawarehouse aufgefüllt wird, stammen für gewöhnlich aus mehreren Datenquellen: Webserverprotokollen, Commerce Server-Datenbanken und anderen Datenquellen, die Sie angeben. Die folgende Abbildung zeigt die Quellen von operativen Daten und wie diese Daten zur Unterstützung von Business Desk-Tasks verwendet werden.

Import von Daten in das Datawarehouse
Business Desk
Berichte ausführen und Daten analysieren
Benutzerprofile verwalten
Direktsendungs-
kampagnen durchführen
Commerce Server-Datawarehouse
Direct Mailer-Datenbank
Commerce Server-Datenbanken
Benutzerprofildaten Ereignisdaten Transaktionsdaten Kampagnendaten Katalogdaten
Andere
Katalogdaten
Kampagnendaten
Transaktionsdaten
Webverwendungsdaten
Benutzerprofildaten
Webserverprotokolldateien
Website
Benutzer

Da das Datawarehouse nicht Teil der Laufzeitumgebung ist, muss ein Systemadministrator feststellen, wie häufig die operativen Daten in das Datawarehouse importiert werden müssen. Das Datawarehouse kann z. B. so konfiguriert werden, dass neue Daten täglich oder wöchentlich automatisch importiert werden. Die Häufigkeit, mit der Sie Daten importieren, hängt von der Datenmenge ab, die Sie täglich in Ihren operativen Datenquellen zusammenstellen. Commerce Server enthält benutzerdefinierte DTS-Tasks (Data Transformation Service), die den Datenimport in das Datawarehouse erleichtern. Mit diesen DTS-Tasks werden Daten importiert, die in den Berichten von Business Desk verwendet werden.

Obwohl die operativen Daten von verschiedenen Datenbanktypen importiert werden können (und auch von anderen Speichermedien als Datenbanken), werden alle Daten nach der Erfassung im Datawarehouse in einer einheitlichen Struktur gespeichert. Beispiel: Sie verfügen über eine Datenquelle, in der Vor- und Nachname eines Benutzers in einem einzigen Feld gespeichert werden. In einer anderen Datenquelle werden dafür zwei getrennte Felder verwendet. Beim Import dieser Daten in das Datawarehouse werden sie automatisch so strukturiert, dass sie einheitlich sind. Dies ermöglicht Ihnen, Analysen vorzunehmen.

Datenvorbereitung zur Analyse mit einem OLAP-Server

Nachdem Daten in die SQL Server-Datenbank des Datawarehouse importiert wurden, müssen diese Daten für Analysen vorbereitet werden, damit Businessmanager unter Verwendung dieser Datenbank Berichte ausführen können. Zu diesem Zweck führen Systemadministratoren einen DTS-Task aus, der eine ausgewählte Teilmenge der Daten aus der SQL Server- in die OLAP-Datenbank importiert. In der OLAP-Datenbank werden die Daten als multidimensionale Cubes gespeichert.

Durch die Datenspeicherung in OLAP-Cubes – statt in relationalen Tabellen in SQL Server – kann das Datawarehouse Daten zu Berichtszwecken schneller abrufen. Die Daten können schneller aus den Cubes abgefragt werden, da es Aggregatdaten sind. Mit anderen Worten, zusammengehörige Daten sind bereits zugewiesen. Daher ist es leichter, diese Daten abzurufen, als eine ganze relationale Datenbank nach kleinen Teilen zu durchsuchen. So können Sie z. B. mit einem OLAP-Server einen Bericht über die Besucher Ihrer Site ausführen, basierend auf dem Zeitpunkt ihres Besuchs sowie auf der ASP-Seite, auf die die Benutzer zuerst zugreifen. Es wäre unglaublich schwer, einen solchen Bericht unter Verwendung einer großen SQL Server-Datenbank auszuführen.

In multidimensionalen Cubes werden Daten in zwei Arten von Strukturen gruppiert:

  • Measures. Die numerischen Werte, die analysiert werden.

  • Dimensionen. Eine Geschäftseinheit, z. B. Farbe, Größe, Produkt oder Zeit. Beispiel: Mit der Farbdimension würden Sie die Verkaufsmenge von roten und blauen Produkten gegenüberstellen und mit der Größendimension könnten Sie die Verkaufszahlen von Produkten in 'Large' und 'Small' miteinander vergleichen.

Die Beziehung zwischen den Dimensions- (z. B. Farbe) und Measurestrukturen (z. B. Anzahl der verkauften Produkte) bildet die Basis für Ihre Berichte über Benutzeraktivitäten.

Die folgende Abbildung zeigt die Dimensionen und Measures in einem Bericht.

Bericht mit Legenden für Dimensionen und Measures

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Analysieren Ihrer Daten

Zur Datenanalyse der Benutzeraktivitäten auf Ihrer Site setzen Sie die Analysemodule von Business Desk ein. Mithilfe der Analysemodule können Sie Berichte unter Verwendung des Datawarehouse ausführen oder Segmentmodelle anzeigen und analysieren. Segmentmodelle identifizieren Benutzersegmente, die Ihre Site besuchen.

Berichte

Commerce Server bietet zwei Berichtstypen für die Analyse der Benutzerdaten:

  • Dynamische Berichte werden zur Laufzeit erstellt. Bei jeder Ausführung eines solchen Berichts werden die neuesten Daten im Datawarehouse abgefragt. Nur die Berichtsdefinition, die immer gleich bleibt, wird gespeichert. Commerce Server speichert keine abgeschlossenen dynamischen Berichte. Sie können die Ergebnisse dieser Berichte jedoch in Microsoft® Excel exportieren und speichern. Informationen über den Export von Ergebnissen eines dynamischen Berichts in Microsoft Excel finden Sie unter Exportieren eines dynamischen Berichts.

  • Statische Berichte werden sofort auf Anforderung ausgeführt und dann samt Daten in den abgeschlossenen Berichten gespeichert. Die Berichte werden in einem Browserfenster im HTML-Format angezeigt. Sie können statische Berichtsergebnisse in das Listen-Manager-Modul exportieren und diese Liste dann in einer Direktsendungskampagne verwenden. Sie können diese Berichte an andere per E-Mail senden, in Ihrer Website bereitstellen oder in anderen Anwendungen bearbeiten. Mithilfe von Microsoft Internet Explorer können Sie einen statischen Bericht z. B. als Word-Dokument exportieren und anschließend bearbeiten.

Commerce Server 2000 enthält eine Reihe von Berichten, die Sie über Business Desk ausführen können. Dazu gehören die Berichte "Executive-Zusammenfassung", "Produkte nach verkaufter Menge" und "Zugriffe nach Benutzer". Sie können einen oder mehrere dieser Berichte einsetzen. Alternativ können Sie einen dieser Berichte anpassen, um damit andere Daten abzurufen. Eine Liste der in Commerce Server enthaltenen Berichte finden Sie unter Commerce Server-Berichte.

Segmentmodelle

Segmentmodelle identifizieren Benutzergruppen, denen bestimmte Eigenschaften gemeinsam sind. Mithilfe der Vorhersageressource lassen sich die Daten im Datawarehouse durchsuchen, um Segmentmodelle zu erstellen. Zur Analyse von Segmentmodellen wird das Segment-Viewer-Modul von Business Desk eingesetzt. Begriffsinformationen über Segmentmodelle finden Sie unter Vorhersage und Datamining.

Siehe auch

Working with the Data Warehouse (englisches Thema)

Ausführen des Datawarehouse

Business Desk-Analyse


Vorhersage und Datamining

Die Vorhersageressource von Commerce Server ist ein leistungsfähiges Dataminingtool, das Ihre Website mit Vorhersagefähigkeiten ausstattet – beispielsweise, um Produktempfehlungen anzuzeigen. Mit der Vorhersageressource lassen sich außerdem die Eigenschaften der Besucher Ihrer Site analysieren und Beziehungen zwischen diesen Eigenschaften entdecken. Anschließend können Sie diese Attribute zur Zielgruppenadressierung von Inhalten an Benutzer mit ähnlichen Eigenschaften verwenden.

Die Vorhersageressource führt ein Datamining der im Datawarehouse zusammengestellten Daten durch. In der Datawarehouse-Datenbank können sämtliche Sitedaten, einschließlich Benutzerprofil-, Klickverlaufs- und Transaktionsdaten gespeichert werden. Obwohl die Datawarehouse-Datenbank ziemlich groß ist, kann doch mithilfe der Vorhersageressource ein effizientes Datamining der darin enthaltenen Daten durchgeführt werden.

Verwenden von Vorhersagen bei der Websiteverwaltung

Analysemodelle

Erstellen von Analysemodellen

Verwenden von Vorhersagen bei der Websiteverwaltung

Der Siteentwickler verwendet die Vorhersageressource von Commerce Server, um Ihre Site mit Vorhersagefunktionalitäten auszustatten. Mit der Vorhersageressource haben Sie bei der Profilerstellung und Zielgruppenadressierung folgende Möglichkeiten:

  • Unterstützen Sie intelligentes Cross-Selling. Schlagen Sie Artikel vor, die einen Benutzer interessieren könnten. Vergleichen Sie dazu die Eigenschaften eines Benutzers oder seine bestellten Artikel mit einer Datenbank von Artikeln, die andere Benutzer zuvor bestellt haben. Dabei haben Sie die Möglichkeit, die vorgeschlagenen Artikel auf einen bestimmten Teil des Katalogs zu begrenzen.

  • Teilen Sie Benutzer basierend auf ihrem Verhalten bzw. Profil in Segmente. Analysieren Sie die Segmentmodelle, um Eigenschaften zu entdecken, durch die sich Benutzer in Segmente einteilen lassen. Systemadministratoren erstellen Segmentmodelle, die Sie unter Verwendung des Segment-Viewer-Moduls von Commerce Server Business Desk analysieren können.

  • Ergänzen Sie fehlende Werte in Ihren Benutzerprofildaten. Sagen Sie fehlende Werte voraus. Dies kann z. B. eine Profileigenschaft sein, die ein Benutzer nicht angegeben hat.

Analysemodelle

Die Vorhersageressource erstellt Analysemodelle aus Daten. Ein Analysemodell stellt eine Reihe statistischer Beziehungen dar und basiert auf bekannten Eigenschaften vorheriger Sitebenutzer, ihrer vorherigen Käufe, ihrem Klickverlauf oder anderem Benutzerverhalten. Das Modell enthält Informationen über die Benutzertypen, die Ihre Site besuchen. Es gibt Ihnen jedoch keine Informationen über bestimmte Benutzer. Die ausführlichen Informationen, die bei der Erstellung eines Analysemodells Verwendung finden, werden im Datawarehouse von Commerce Server oder in einer anderen Datenquelle gespeichert.

Setzen Sie die Analysemodelle zur impliziten Profilerstellung und Zielgruppenadressierung von Inhalten an Benutzer ein:

  • Implizite Profilerstellung. Falls Profilinformationen über einen Benutzer fehlen – etwa das Geschlecht des Benutzers – kann diese Information von der Vorhersageressource 'erraten' werden. Diese Vorhersage basiert auf den gesammelten Eigenschaften aller Benutzer, die Ihre Site besuchen.

  • Zielgruppenadressierung von Inhalten. Mithilfe von Analysemodellen können Sie Ihre Website um Vorhersagefunktionalitäten erweitern. So können Sie den Benutzern beispielsweise eine Rangliste von Empfehlungen für Produkte in Ihrem Katalog oder für sie interessante Werbung anzeigen. Mithilfe von Analysemodellen lassen sich außerdem Eigenschaften der Besucher Ihrer Site analysieren. Durch Ermittlung von Bezügen zwischen diesen Eigenschaften können Inhalte anschließend zielgerichtet für Benutzer mit ähnlichen Eigenschaften angeboten werden.

In Commerce Server werden zwei Arten von Analysemodellen verwendet: Vorhersage- und Segmentmodelle.

Vorhersagemodelle

Vorhersagemodelle bestehen aus einer Sammlung von Entscheidungsbäumen, die auch Abhängigkeitsnetze genannt werden. Mit diesen Modellen übermitteln Sie den Besuchern Ihrer Site Kaufempfehlungen in Echtzeit und können unbekannte Profileigenschaften der Benutzer ergänzen. Vorhersagemodelle fassen Beziehungen innerhalb der Daten in Form von Regeln zusammen. Ein Vorhersagemodell könnte z. B. vorhersagen, dass ein männlicher Besucher Ihrer Site, der über 55 ist und Sportkleidung kauft, wahrscheinlich auch an Golfzubehör interessiert ist. Mithilfe dieses Modells können Sie Benutzern, die diesem Profil entsprechen, in Echtzeit Kaufempfehlungen für Golfzubehör anbieten.

Vorhersagemodelle liefern meistens Empfehlungen, die eher zutreffen als manuell erstellte Regeln. Der Grund dafür ist, dass diese Vorhersagen auf zurückliegenden Aktivitäten in der Site basieren. Als Folge dieser Genauigkeit können für gewöhnlich erhöhte Absätze erzielt werden.

Zur Analyse von Vorhersagemodellen können Sie den Vorhersagemodell-Viewer von Commerce Server-Manager einsetzen. Informationen über die Anzeige von Vorhersagemodellen finden Sie unter Anzeigen von Analysemodellen.

Segmentmodelle

In einem Segmentmodell (auch "Gruppenmodell") werden Benutzer in Segmente eingeteilt, denen bestimmte Eigenschaften oder Verhaltensweisen gemeinsam sind. Mithilfe dieser Segmente können Sie tiefere Einblicke über die Besucher Ihrer Site gewinnen. Außerdem lassen sich diese Segmente für anschließendes Marketing verwenden. Beispiel: Sie bemerken, dass sich ein beliebtes Fantasybuch für Kinder wie verrückt verkauft. Sie stellen fest, dass Benutzer in einem Segment mit folgenden Eigenschaften das Buch am häufigsten kaufen: weiblich, über 40, Jahreseinkommen über DM 100.000 und Universitätsabschluss. Mit diesen Informationen können Sie Benutzern in diesem Segment nun ähnliche Produkte anbieten.

Zur Analyse von Segmentmodellen wird das Segment-Viewer-Modul von Business Desk eingesetzt. Informationen über das Segment-Viewer-Modul finden Sie unter Analysieren von Benutzersegmenten.

Erstellen von Analysemodellen

Jedes Analysemodell basiert auf einer Modellkonfiguration. Dabei handelt es sich um eine Beschreibung der Daten, die bei der Erstellung des Modell verwendet werden. In einer Modellkonfiguration wird Folgendes definiert:

  • Eine Datenquelle für die Erstellung des Analysemodells. In den meisten Fällen wird das Datawarehouse als Datenquelle dienen, da es sehr große Mengen von Benutzerdaten enthält. Sie haben jedoch auch die Möglichkeit, zur Erstellung eines Analysemodells eine externe Datenbank zu verwenden.

  • Attribute für das Modell. Ein Attribut legt fest, welche Spalten mit Benutzerdaten (in einer Tabelle) ein Modell enthalten soll. Ein Attribut kann Benutzerprofildaten, Verkaufsdaten oder den Klickverlauf enthalten.

Commerce Server enthält die Transaktionsmodellkonfiguration, die im Datawarehouse-Schema definiert wird. Mithilfe der Transaktionsmodellkonfiguration können Modelle erstellt werden, die auf den Verkaufsdaten basieren. Falls Ihre Site eine benutzerdefinierte Modellkonfiguration benötigt, kann diese von einem Siteentwickler erstellt werden. Informationen über das Erstellen von benutzerdefinierten Modellkonfigurationen finden Sie unter Predictor Schema (englisches Thema).

Nach der Zusammenstellung von Daten können Sie unter Verwendung der Modellkonfigurationen Analysemodelle erstellen. Systemadministratoren verwenden zu diesem Zweck die Vorhersageressource von Commerce Server-Manager. Modelle werden nicht auf dem Webserver erstellt, um negative Auswirkungen auf die Performance Ihrer Site zu vermeiden.

Nach Erstellung des Modells kann der Systemadministrator eine Kopie des Modells auf jedem Ihrer Webserver (alle verwenden dasselbe Modell) verschieben und dann Ihre Site um Vorhersagefunktionalitäten erweitern. Zur Analyse der Muster, die durch die Besucher Ihrer Site entstehen, können Sie das Vorhersage- oder Segmentmodell anzeigen.

Nachdem Sie eine gewisse Menge neuer Daten zusammengestellt haben, sollte Ihr Systemadministrator Ihre Analysemodelle neu erstellen. Analysemodellkonfigurationen werden jedoch nur in unregelmäßigen Abständen erstellt, nämlich dann, wenn Sie die Art der Vorhersage oder Analyse verändern möchten.

Siehe auch

Predictor Schema (englisches Thema)

Ausführen der Vorhersageressource

Analysieren von Benutzersegmenten

Programmierreferenz

Zielgruppenadressierung und Personalisierung


Pipelines

Eine Pipeline ist ein erweiterbares Softwareframework, mit dem eine oder mehrere Phasen eines Geschäftsprozesses definiert und miteinander verknüpft und zum Abschluss eines bestimmten Tasks der Reihe nach ausgeführt werden können. Die Order Processing Pipeline stellt beispielsweise die Sequenz von Schritten zur Verfügung, die für die Verarbeitung von Bestellungen in Ihrer Site verwendet werden. In der ersten Phase der Order Processing Pipeline werden Produktinformationen aus der Datenbank abgerufen, in der die Katalogdaten gespeichert sind. Im nächsten Schritt wird die Adresse des Benutzers zur Bestellung hinzugefügt. Jede Phase der Pipeline stellt eine Arbeitskategorie dar. Die Abfolge der einzelnen Phasen bestimmt die Reihenfolge, in der die jeweiligen Arbeitsschritte durchgeführt werden.

Commerce Server 2000 enthält eine Reihe von Pipelines, die einen Großteil der normalen Verarbeitung übernehmen, die eine Commerce Server-Site erfordert. Siteentwickler können diese Pipelines auf die speziellen Bedürfnisse einer Site anpassen. So lassen sich neue Komponenten zur Pipeline hinzufügen, die Komponenten in vorhandene Systeme integrieren oder diese durch Komponenten von Drittanbietern ersetzen.

Pipelinetypen

Pipelinestruktur

Erstellen und Bearbeiten von Pipelines

Pipelinetypen

Commerce Server enthält folgende Pipelinetypen:

  • Inhaltsauswahl-Pipeline. Diese Pipeline wählt Inhalte aus, die den Benutzern angezeigt werden. Dazu zählen die Anzeigen, die einem Benutzer angezeigt werden sollen, die Preisnachlässe, die Benutzer erhalten sollen und, basierend auf den mithilfe von Commerce Server Business Desk erstellten Zielausdrücken, wie viele Anzeigen angezeigt werden sollen, sowie andere Faktoren.

  • Ereignisverarbeitungs-Pipeline. Zeichnet Ereignisse auf, die Bezug zu den angezeigten Inhalten haben (z. B. Anzeigenklicks von Benutzern) und speichert diese in den Commerce Server-Datenbanken. Diese Informationen werden dann in Berichten eingesetzt, z. B. über die Anzahl der Benutzer, die auf eine Anzeige geklickt haben.

  • DirectMailer-Pipeline. Erstellt und liefert Nachrichten für Direktsendungskampagnen. Diese Pipeline kann personalisierte E-Mail-Nachrichten oder Nachrichten mit statischen Inhalten erstellen.

  • Order Processing Pipeline. Verarbeitet entweder Business-To-Consumer-(Einzelhandels)- oder Business-To-Business-(Lieferanten)-Aufträge. Diese Pipeline stellt sicher, dass eine Bestellung alle notwendigen Stufen durchläuft, um richtig verarbeitet zu werden. So wird z. B. die Produktbeschreibung aus dem Katalog und dann die Versandadresse des Benutzers abgerufen, woraus anschließend die Steuern und der Gesamtpreis berechnet werden.

    Commerce Server enthält folgende Order Processing Pipeline-Typen:

    • Produkt-Pipeline. Diese Pipeline berechnet Preis- und Preisnachlassinformationen für Produkte.

    • Planungs-Pipeline. Diese Pipeline überprüft die Vollständigkeit einer Bestellung. Falls eine Bestellung z. B. keine Artikel enthält, führt dies zu einem Fehler.

    • Kauf-Pipeline. Diese Pipeline nimmt den endgültigen Kauf von einem Bestellformular an und schreibt eine Bestellung in den Datenbankspeicher. Optional kann eine Bestätigung abgeschlossen und der Inhalt der Bestellung in die Bestätigungsdatenbank geschrieben werden.

Pipelinestruktur

Pipelines werden in Pipelinekonfigurationsdateien definiert. Diese haben die Dateierweiterung PCF. In der PCF-Datei können Sie die einzelnen Pipelinestufen einsehen. Jede dieser Stufen enthält mindestens eine Pipelinekomponente. Siteentwickler können die einzelnen Stufen an die individuellen Anforderungen Ihrer Site anpassen.

Die folgende Abbildung zeigt die Stufen der Handelskauf-Pipeline (Datei Purchase.pcf).

Die Stufen der Handelskauf-Pipeline

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Informationen werden von einer ASP-Seite zur Pipeline unter Verwendung dieser zwei Wörterbücher übergeben:

  • Kontextwörterbuch. Ein schreibgeschütztes Wörterbuch, das die Pipeline mit Umgebungsinformationen versorgt. Dies könnte z. B. die Verbindungszeichenfolge für eine Datenbank sein.

  • Bestellungswörterbuch. Ein Wörterbuch mit Lese-/Schreibzugriff, das der Pipeline die zu verarbeitenden Daten liefert. Wenn ein Benutzer z. B. eine Bestellung absendet, werden alle Informationen im Bestellungswörterbuch zusammengestellt und dann an die Order Processing Pipeline übergeben.

Der Inhalt dieser Wörterbücher hängt vom Pipelinetyp ab. Siteentwickler definieren die Informationen, die im Wörterbuch enthalten sein müssen, auf der ASP-Seite.

Commerce Server-Pipelines können als Transaktionen ausgeführt werden. Dies ermöglicht ein Rollback des Prozesses, falls ein Fehler auftritt. Zusätzlich nutzen Commerce Server-Pipelines das Objektpooling von Microsoft Windows 2000 Server, was zu einer erheblichen Steigerung der Verabeitungsgeschwindigkeit führt. Informationen über Objektpooling finden Sie in der Onlinedokumentation von Windows 2000 Server.

Erstellen und Bearbeiten von Pipelines

Mithilfe des Pipeline-Editors können Siteentwickler neue Pipelines erstellen und vorhandene Pipelines bearbeiten. Commerce Server enthält sieben vorkonfigurierte Pipelinevorlagen, die als Ausgangspunkt bei der Erstellung von benutzerdefinierten Pipelines verwendet werden können. Diese Vorlagendateien zur Erstellung neuer Pipelines haben die Dateierweiterung PCT (Pipeline Configuration Template oder Pipelinekonfigurationsvorlage). In den Vorlagen können die Namen der Pipelinestufen geändert sowie Stufen hinzugefügt und gelöscht werden. Außerdem lassen sich auch Komponenten zu beliebigen Stufen hinzufügen bzw. daraus löschen. Weitere Informationen dazu finden Sie unter "Arbeiten mit Pipelines" in dieser Hilfe.

Siehe auch

Working with Pipelines (englisches Thema)

Building Pipeline Components (englisches Thema)

Pipeline Component Reference (englisches Thema)

Extending the Content Selection Framework (englisches Thema)


Zielgruppenadressierung und Personalisierung

Bei der Zielgruppenadressierung und Personalisierung werden personalisierte Inhalte an einen oder mehrere Benutzer bzw. eine andere Geschäftseinheit mit einem Profil übertragen. Wenn Sie beispielsweise eine Sportwebsite betreiben, sollten Sie Tennisnews nur an Tennisspieler bzw. an Benutzer mit einem Interesse an Tennis übertragen. An diese Benutzer könnten Sie dann Ankündigungen über anstehende Tennisturniere sowie Anzeigen und Promotions für Tennisprodukte liefern.

Mithilfe von Commerce Server 2000 lassen sich zwei Arten von Zielgruppenadressierung durchführen:

  • Ausdrucksbasierte Zielgruppenadressierung. Wird auch als explizite Zielgruppenadressierung bezeichnet. Diese Form der Zielgruppenadressierung wird eingesetzt, wenn Ihnen die Profileigenschaften der Benutzer bekannt sind, denen Sie Inhalte liefern bzw. wenn Sie den Kontext und die zu liefernden Inhalte kennen. Mit den Kampagnenmodulen von Commerce Server Business Desk definieren Sie diese Informationen und liefern die Inhalte an Benutzer.

  • Vorhersage. Wird auch als implizite Zielgruppenadressierung bezeichnet. Dieser Art der Zielgruppenadressierung wird eingesetzt, wenn Ihnen nicht alle zur Zielgruppenadressierung des Benutzers benötigten Profileigenschaften bekannt sind bzw. wenn es keine speziellen Inhalten für die Übertragung gibt. Mithilfe der Vorhersageressource von Commerce Server können diese Informationen auf der Basis bestehender Benutzerdaten 'erraten' werden. Somit können Sie Inhalte liefern, die für die einzelnen Benutzer von Interesse sind. Begriffsinformationen über die Vorhersage finden Sie unter "Vorhersage und Datamining" weiter oben in diesem Kapitel.

Sowohl die ausdrucksbasierte Zielgruppenadressierung als auch die Vorhersage erleichtern Ihnen die Übertragung von Inhalten, für die sich die Empfänger interessieren könnten. Benutzer kehren eher zu Ihrer Site zurück, wenn sie eine personalisierte Umgebung erwartet.

Verwenden von Zielgruppenadressierungsmethoden bei der Websiteverwaltung

Ausdrucksbasierte Zielgruppenadressierung

Ausdrucks-Generator

Verarbeiten von Ausdrücken

Verwenden von Zielgruppenadressierungsmethoden bei der Websiteverwaltung

Inhalte lassen sich zielgerichtet an jedes geschäftsbezogene Element mit einem Profil liefern. So können Sie z. B. die Zielgruppenadressierung von Inhalten an anonyme und registrierte Benutzer, Firmen oder Kontexte einsetzen. Begriffsinformationen über Profile finden Sie unter Profile.

Mit Business Desk liefern Sie Inhalte zielgerichtet an geschäftsbezogene Elemente. Sie können die folgenden Aktionen durchführen:

  • Erstellen Sie eine Direktsendungskampagne, die personalisierte Nachrichten an Benutzer liefert.

  • Liefern Sie Inhalte (z. B. Anzeigen) an Benutzer basierend auf bestimmten Benutzerprofileigenschaften. So können Sie z. B. Benutzern, die als Lieblingssport "Biking" angegeben haben, Anzeigen für Mountainbikes anzeigen.

  • Identifizieren Sie Gruppen von Webseiten, und erstellen Sie dann zielgerichtet Inhalte, die nur auf diesen Seiten angezeigt werden bzw. nur, wenn Benutzer mit bestimmten Eigenschaften auf diese Seiten zugreifen.

  • Zeigen Sie Inhalte auf einer Seite an, die auf den Eigenschaften von anderen Inhalten der Seite basieren. Beispiel: Wenn Ihre Website News anbietet, können Sie den Inhalten Profile zuweisen, die bestimmen, ob die Eigenschaft Wetter_Typ den Wert "Heiß" oder "Kalt" hat. Wenn die Zuweisung "Wetter_Typ = Heiß" gilt, können Sie Anzeigen für Klimaanlagen anzeigen.

  • Wenden Sie Preisnachlässe auf bestimmte Produkte in Ihrem Katalog an – basierend auf den Produkteigenschaften oder auf dem Benutzerprofil.

  • Bestimmen Sie, wann ein Preisnachlass angezeigt und wann er auf eine Bestellung angewendet werden soll. Sie können z. B. den Preisnachlass entweder anwenden, wenn Benutzer einen Artikel zu ihrem Warenkorb hinzufügen oder wenn sie auschecken.

Ausdrucksbasierte Zielgruppenadressierung

Bei der ausdrucksbasierten Zielgruppenadressierung werden Ausdrücke erstellt. Diese Ausdrücke definieren die Benutzer oder Kontexte, an die Sie zielgerichtet Inhalte liefern möchten. Ein Ausdruck ist eine Bedingung, die unter Verwendung von Profilen ausgewertet wird. Dadurch wird bestimmt, ob Inhalte geliefert oder eine andere Aktion ausgeführt werden soll. Ein Beispiel eines solchen Ausdrucks ist Benutzer.Gesamtbesuche > 100. Wenn dieser Ausdruck als "Wahr" ausgewertet wird, werden dem Benutzer bestimmte Inhalte angezeigt.

Zur Erstellung von Ausdrücken werden die Kampagnenmodule von Business Desk verwendet. Dann werden die Ausdrücke mit der Aktion kombiniert, die nach der Auswertung des Ausdrucks durchgeführt werden soll. Es stehen zwei Arten von Ausdrücken zur Verfügung.

  • Zielausdrücke. Diese Ausdrücke geben an, wo, wann und wem Inhalte angezeigt werden sollen. Sie können z. B. Inhalte zielgerichtet bei Benutzern mit bestimmten Profileigenschaften anzeigen. Außerdem lassen sich Inhalte zielgerichtet in bestimmten Bereichen einer Website (sogenannten Seitengruppen) anzeigen. So können Sie beispielsweise einen Zielausdruck erstellen, durch den bestimmte Anzeigen nur auf Sportseiten angezeigt werden.

  • Katalogausdrücke. Diese Ausdrücke definieren die Katalogprodukte, auf die ein Preisnachlass angewendet werden kann. Ein Beispiel eines Katalogausdrucks ist Produkt.Preis = 20,00. Wenn dieser Ausdruck für ein bestimmtes Produkt mit "Wahr" ausgewertet wird, wird beim Hinzufügen des Produkts in den Warenkorb ein Preisnachlass in Höhe von 10 % angewendet.

Nachdem Sie mehrere Zielausdrücke erstellt haben, können Sie diese in Form einer Zielgruppe kombinieren. Eine Zielgruppe ist eine Sammlung von Ausdrücken und Aktionen. So können Sie z. B. einen Ausdruck erstellen, mit dem bestimmte Inhalte bei Benutzern angezeigt werden, die die Site schon 10 Mal besucht haben. Mit einem anderen Ausdruck zeigen Sie Benutzern, die ein Fußballtrikot gekauft haben, bestimmte andere Inhalte an. Diese beiden Ausdrücke können mit den Anweisungen AND oder OR in einer Zielgruppe kombiniert werden. Zum Beispiel:

Wenn ein Benutzer die Site 10 Mal besucht UND ein Fußballtrikot gekauft hat,

Anzeige für ein Fußballprodukt anzeigen.

Ausdrücke werden in einer Zielgruppe durch Angabe der Aktion kombiniert, die ausgeführt werden soll, wenn der Ausdruck als "Wahr" ausgewertet wird. Jede Aktion verfügt über zwei Multiplikatoren: einer wird angewendet, wenn der Ausdruck wahr ist; der andere, wenn der Ausdruck falsch ist. Wenn der Multiplikator angewendet wird, erhält der Ausdruck ein Ergebnis. Dieses bestimmt, ob die Inhalte geliefert werden können. Sie können folgende Aktionen definieren:

  • Ziel. Wenn der Ausdruck mit "Wahr" ausgewertet wird, wird das Ergebnis erhöht. Dadurch erhöht sich auch die Wahrscheinlichkeit dafür, dass die Inhalte angezeigt werden. Falls der Ausdruck als "Falsch" ausgewertet wird, ändert sich das Ergebnis nicht. In beiden Fällen können die Inhalte geliefert werden.

  • Erforderlich. Bei Auswertung des Ausdrucks als "Wahr" können die Inhalte geliefert werden. Wird der Ausdruck als "Falsch" ausgewertet, können die Inhalte nicht geliefert werden.

  • Ausschließen. Bei Auswertung des Ausdrucks als "Wahr" können die Inhalte nicht geliefert werden. Wird der Ausdruck dagegen als "Falsch" ausgewertet, können die Inhalte geliefert werden.

  • Sponsor. Bei Auswertung des Ausdrucks als "Wahr" können die Inhalte geliefert werden. Weitere Inhalte können nur geliefert werden, wenn es für diese einen Ausdruck mit einer Aktion = Sponsor gibt. (Sponsor besitzt nur einen Multiplikator.) Beispiel: Wenn Microsoft als Sponsor einer Anzeige auf einer Homepage auftritt werden nur Microsoft-Anzeigen angezeigt. Wenn die Homepage jedoch weitere Sponsoren hat, können auch die Anzeigen dieser Firmen angezeigt werden.

Siteentwickler können die Werte der Multiplikatoren von Commerce Server verändern. Dies kann z. B. nützlich sein, wenn bestimmte Ausdrücke mit einem Aktionstyp eine höhere Priorität als Ausdrücke mit einem anderen Aktionstyp erhalten sollen.

Ausdrucks-Generator

Der Ausdrucks-Generator ist ein Feature von Commerce Server, mit dem Businessmanager Ausdrücke erstellen, bearbeiten und anzeigen können. Der Ausdrucks-Generator liefert die Benutzeroberfläche zur Erstellung von Ausdrücken. Dabei wird auf die Eigenschaften zugegriffen, die zur Erstellung der Ausdrücke benötigt werden. Dann werden die Ausdrücke benannt und in den Commerce Server-Datenbanken gespeichert.

Der Ausdrucks-Generator ist so ausgelegt, dass Siteentwickler seine Funktionalität und Benutzeroberfläche mühelos in andere Business Desk-Module einbetten können. Außerdem kann der Ausdrucks-Generator von Webanwendungen aufgerufen werden, die Ausdrücke verwenden und bearbeiten. Dies ermöglicht eine Einbindung in andere Prozesse. So lässt sich z. B. Funktionalität des Ausdrucks-Generators in einen bereits vorhandenen Content Management-Prozess integrieren. Dies wiederum ermöglicht die Zielgruppenadressierung von Inhalten an Benutzer.

So erstellen Sie Anwendungen, die den Ausdrucks-Generator verwenden:

  • Definieren der Profile. In diesem Schritt definieren Sie die Profile, die vom Ausdruck verwendet werden sollen. Der Ausdrucks-Generator lädt anschließend diese Profildefinitionen, um den Ausdruck zu erstellen. Sie haben auch die Möglichkeit, einen Profileigenschaftsfilter zu erstellen, um die Eigenschaften im Profil zu begrenzen, die einem Benutzer des Ausdrucks-Generators zur Verfügung stehen.

  • Speichern der Ausdrücke. Hierbei können Sie den zu verwendenden Ausdrucks-/Profilspeicher angeben. Der Ausdrucks-Generator lädt und speichert dann Ausdrücke in dieser Datenbank.

  • Anzeigen von Meldungen bei Benutzern. Die Meldungen, die in der Benutzeroberfläche des Ausdrucks-Generators angezeigt werden, lassen sich an Ihre Bedürfnisse anpassen. Wenn beispielsweise der Standardtitel "Ausdruck erstellen" lautet, könnten Sie diesen Titel für Ihre Zwecke in "Anzeigenzielausdruck erstellen" ändern.

Beim Ausdrucks-Generator wird für die Benutzeroberfläche DHTML (Dynamic Hypertext Markup Language) eingesetzt. Die Stylesheets der Anwendung werden also auf die Benutzeroberfläche des Ausdrucks-Generators angewendet. Dadurch erhält Ihre Anwendung eine einheitliche Gestaltung.

Verarbeiten von Ausdrücken

Commerce Server führt mehrere Schritte durch, um die Inhalte zu bestimmen, die einem Benutzer angezeigt werden. Bei diesem Vorgang werden folgende Komponenten eingesetzt:

  • ExpressionEval. Dieses COM-Objekt erhält einen Ausdruck und Benutzerdaten als Eingabe und verarbeitet dann den Ausdruck. Die Auswertung des Ausdrucks ergibt immer entweder "Wahr" oder "Falsch".

  • Content Selection Framework (CSF). Dieses Framework auf Plattformebene enthält eine Reihe von Komponenten und Pipelines (die Inhaltsauswahl-Pipeline und die Ereignisverarbeitungs-Pipeline), die die als Ergebnis des Ausdrucks auszuführende Aktion bestimmen.

Die folgende Abbildung zeigt, wie Ziel- und Katalogausdrücke sowie Benutzer- und Kontextdaten in den Ausdrucks-Generator eingegeben werden und zu welchen Auswertungsergebnissen dies führt (Wahr, Falsch oder undefiniert). Das Ergebnis wird in CSF eingegeben, wo die auszuführende Aktion bestimmt wird.

Verarbeitung von Ausdrücken durch Ausdrucksbewertung und CSF
Zielausdruck
Katalogausdruck
Benutzerdaten

Kontextdaten
Ausdrucksbewertung
True, False oder nicht definiert
Content Selection Framework
Bestimmt die Aktion bei diesem Ergebnis

Siehe auch

Extending the Content Selection Framework (englisches Thema)

Vorhersage und Datamining

Kampagnen: Anzeigen, Preisnachlässe und Direktsendungen

Business Desk-Kampagnen


Kampagnen: Anzeigen, Preisnachlässe und Direktsendungen

Eine Kampagne ist ein Marketinginstrument, das mehrere Kommunikationswege einsetzt, um ein bestimmtes Ergebnis zu erreichen – die Erhöhung von Marktanteilen, die Einführung neuer Produkte oder die Kundenbindung. Commerce Server bietet eine Reihe verschiedener Liefermechanismen für Ihre Onlinekampagnen. So können Sie z. B. Anzeigen-, Preisnachlass- und Direktsendungskampagnen erstellen. Mithilfe der Analysefunktionen lassen sich über diese Kampagnen zielgerichtet bestimmte Benutzergruppen ansprechen.

Verwenden von Kampagnen bei der Websiteverwaltung

Kampagnenstruktur

Kampagnenzielfestlegung

Referenztabellen

Anzeigen

Preisnachlässe

Direktsendungen

Analysieren der Kampagneneffektivität

Verwenden von Kampagnen bei der Websiteverwaltung

Die Kampagnenmodule sind für die Zusammenarbeit mit Ihren Kunden ausgelegt, um die Effizienz von Anzeigen, Preisnachlässen und Direktsendungen zu optimieren. Mit Kampagnen haben Sie folgende Möglichkeiten:

  • Zielen Sie mit Anzeigen oder Preisnachlässen auf Benutzer mit einem bestimmten Profil ab. Benutzerprofile werden mithilfe des Profil-Designer-Moduls eingerichtet und dann in eine Kampagne integriert. Bei jeder einzelnen Anzeigenseite können Sie entsprechend des Benutzerprofils festlegen, ob dem jeweiligen Benutzer auf dieser Seite zielgerichtete Inhalte angezeigt werden sollen oder nicht.

  • Führen Sie Kampagnen für Kunden durch, die in derselben Branche miteinander konkurrieren. Die konkurrierenden Anzeigen werden niemals auf derselben Seite gezeigt.

  • Berechnen Sie die Anzeigenpreise nach der Anzahl der Anzeigenanforderungen, die Ihre Kunden erhalten möchten. Das Content Selection Framework berücksichtigt diesen Faktor beim Ranking der Inhalte.

Kampagnenstruktur

Kampagnen und die dazugehörigen Kampagnenartikel sind nach Kunde gruppiert. Kundeninformationen, wie die Rechnungsadresse, werden für alle Kampagnen des Kunden und zu Berichtszwecken verwendet. Im Kampagnen-Manager können Sie alle Kunden in alphabetischer Reihenfolge anzeigen.

Kampagnen stellen eine Gruppierungsform für Kampagnenartikel dar. Es gibt drei Kampagnenarten: Anzeigen-, Preisnachlass- und Direktsendungskampagnen. Jede dieser Kampagnenarten kann mehrere Kampagnenartikel enthalten. Eine Promotionkampagne für ein neues Produkt etwa könnte drei Kampagnenartikel enthalten: Ein Anzeigenbanner auf der Homepage, eine personalisierte Direktsendungsnachricht mit einer Ankündigung des neuen Produkts sowie einen Preisnachlasskampagnenartikel, der solchen Benutzern einen Preisnachlass in Höhe von 10 % anbietet, die das Produkt im ersten Monat nach seiner Einführung kaufen.

Alle Kampagnenartikel innerhalb einer Kampagne teilen sich einen Kunden und bestimmte Datumsbereiche. Beispiel: Ein Werbungstreibender benötigt innerhalb von einer Woche im Reisebereich einer Onlinezeitung 10.000 Anforderungen von Benutzern aus dem Nordwesten der USA. Der Werbungstreibende wird dann vielleicht zunächst drei verschiedene Anzeigen schalten, um diese 10.000 Anforderungen zu erhalten. Anschließend kann die Anzeige mit der höchsten Klickrate ausgewählt werden. Jede der Anzeigen stellt dabei einen Kampagnenartikel dar.

Kampagnenzielfestlegung

Bei der Kampagnenzielfestlegung wird die Anzahl der in einem bestimmten Zeitraum zu liefernden Anzeigen (das Ziel) festgelegt. Sie haben die Möglichkeit, das Ziel nach Anzeigenklicks oder -anforderungen festzulegen. Kampagnenziele lassen sich auf Kampagnen- oder auf Anzeigenebene festlegen.

  • Bei der Zielfestlegung auf Kampagnenebene werden die Ziele auf alle Kampagnenartikel (Anzeigen) der Kampagne angewendet. Dies geschieht durch eine gewichtete Verteilung der Anzahl aller Anforderungen.

    Angenommen, Sie legen für einen Kunden die Ziele auf Kampagnenebene fest. Der Kunde gibt zwei Anzeigen bei Ihnen auf und möchte 25.000 Anzeigenanforderungen erhalten. Auf der Kampagnenebene sollen über die eine Anzeige 60 %, über die andere Anzeige die restlichen 40 % der Anzeigenanforderungen abgewickelt werden. Falls der Kunde nun die Anzahl der Anzeigenanforderungen ändert (z. B. auf 40.000), müssen Sie für die beiden Anzeigen keine manuellen Änderungen vornehmen – eine Anzeige soll weiterhin in 60 %, die andere in 40 % der Fälle angezeigt werden.

  • Bei der Zielfestlegung auf Anzeigenebene werden die Ziele auf der Kampagnenartikelebene angewendet. Die Gesamtzahl der Anforderungen für die Kampagne entspricht dabei der Gesamtzahl der bestellten Anforderungen für die einzelnen Kampagnenartikel. Ein Kunde fordert beispielsweise, dass in einem Monat 50.000 Anforderungen geliefert werden sollen. Ein Anzeigenartikel muss also 50.000 Mal geliefert werden.

Sie können zwischen der Zielfestlegung auf Kampagnen- und auf Anzeigenebene wechseln. Beispiel: Ein Kunde bestellt zwei Anzeigenkampagnenartikel, die zu gleichen Teilen für insgesamt 1000 Anzeigenanforderungen geschaltet werden sollen. Hierfür sind folgende Schritte durchzuführen:

  1. Sie fügen die Kampagnenartikel einer Kampagne hinzu und weisen jedem Artikel eine Gewichtung von 1 zu. Für jeden Artikel wurden 500 Anzeigenanforderungen bestellt.

  2. Später benötigt derselbe Kunde 500 weitere Anforderungen für die erste Anzeige. Sie öffnen die Kampagne, wechseln zur Zielfestlegung auf Anzeigenebene, wählen die erste Anzeige und erhöhen dann die Menge um 500.

    Für die erste Anzeige wurde somit eine Menge von 1000, für die zweite Anzeige eine Menge von 500 bestellt. Bei Kampagnen, die eine Zielfestlegung auf Anzeigenebene haben, wird die bestellte Gesamtmenge nicht angezeigt.

  3. Zum Schluss möchte der Kunde seinen Auftrag noch so umschichten, dass die erste Anzeige in einem Verhältnis von 3:1 zur zweiten Anzeige geschaltet wird. Sie wechseln also zur Zielfestlegung auf Kampagnenebene. In der bestellten Menge werden jetzt alle 1500 bestellten Anzeigenanforderungen angezeigt. Jetzt stimmen die Gewichtungen der einzelnen Anzeigen mit der bestellten Menge überein.

    Nun können Sie die Gewichtungen der einzelnen Anzeigen auf 3 bzw. 1 ändern. Commerce Server berechnet dann die neuen Mengen mit 1125 und 375.

In einer anderen Situation möchte der Kunde beispielsweise, dass die Kampagne mit einem Verhältnis von 2:1 geschaltet wird und dass die dritte Anzeige ebenfalls eine Gewichtung von 1 erhält. Wenn Sie eine Anzeige zu einer Kampagne hinzufügen, deren Zielfestlegung von der Anzeigen- auf die Kampagnenebene verlegt und die Gewichtung bei 1 belassen wurde, ohne die Gewichtungen der anderen Anzeigen anzupassen, kann die Anzeigenlieferung nicht mehr stimmen. In diesem Fall sollten Sie den Kampagnen-Manager neu öffnen, und allen Anzeigen neue Gewichtungen zuweisen. Überprüfen Sie anschließend die eigentlichen Berechnungen.

Referenztabellen

Mithilfe des Referenztabellenmoduls von Business Desk stellen Sie die Größe der in Ihrer Site angezeigten Inhalte ein, verwalten Seitengruppennamen und richten Branchencodes ein. Über diese Codes können Sie verhindern, dass zwei Anzeigen derselben Branche gleichzeitig auf derselben Seite angezeigt werden. Die Eigenschaften im Referenztabellenmodul stellen die Konsistenz der Anzeigeninhalte in Ihrer gesamte Site sicher.

  • Inhaltsgrößen geben die Größen Ihrer Inhalte (Anzeigen und Preisnachlässe) an. Commerce Server 2000 bietet eine Reihe standardmäßiger Inhaltsgrößen. Diese Inhaltsgrößen stammen aus einer Liste häufig verwendeter Größen, die vom Internet Advertising Bureau (IAB) genehmigt wurden. Inhaltsgrößen werden im Inhaltsgrößenbereich des Referenztabellenmoduls überprüft.

    Die in den Referenztabellen enthaltenen Inhaltsgrößen stehen zur Verfügung, wenn Sie die gewünschte Größe für die Inhalte Ihres Kampagnenartikels auswählen. Die vordefinierten Inhaltsgrößen lassen sich anzeigen, bearbeiten und löschen. Sie können aber auch eine neue Inhaltsgröße speziell für Ihre Bedürfnisse erstellen.

  • Branchencodes sind Codes für verschiedene Branchen, z. B. für die Automobil-, Luftfahrt- und Getränkeindustrie. Mithilfe von Branchencodes ermitteln Sie die Branche, aus der eine Anzeige stammt. So können Sie verhindern, dass zwei Anzeigen von Konkurrenzunternehmen einer Branche auf derselben Seite erscheinen. Branchencodes gelten nicht für Preisnachlässe.

    Sie können Ihre Branchencodes aktualisieren – beispielsweise, um mit mehr als einem Getränkecode (z. B. einem für Kaffee und einem für Bier) zu arbeiten. Dadurch können Anzeigen für verschiedene Getränketypen auf derselben Seite erscheinen. Beispiel: Eine Anzeige für Kaffee kann durchaus auf derselben Seite mit einer Anzeige für Bier konkurrieren. Sie haben über die Anzahl der Tabelleneinträge die Möglichkeit festzulegen, wann sich potenzielle Branchenkonflikte ergeben.

    Commerce Server liefert eine Reihe gebräuchlicher Branchencodes, die Sie sofort verwenden können. Die in den Anzeigen verwendeten Branchencodes werden im Branchencodebereich des Referenztabellenmoduls überprüft. Die in den Referenztabellen enthaltenen Branchencodes stehen zur Verfügung, wenn Sie den Branchencode eines Kampagnenartikels auswählen. Dort haben Sie die Möglichkeit, eine Liste aller aktuellen Branchencodes anzuzeigen, neue Branchencodes hinzuzufügen sowie vorhandene zu bearbeiten bzw. zu löschen.

  • Seitengruppen sind eine Gruppe verwandter Webseiten, die mit einem bestimmten Seitengruppennamen getaggt sind und zur Zielgruppenadressierung von Anzeigen verwendet werden. Wenn Sie z. B. eine Onlinezeitung betreiben, können Sie eine Seitengruppe für den Sport, eine für den Leitartikel und eine weitere für Lokalnachrichten erstellen. Somit haben Sie die Möglichkeit, Anzeigen zielgerichtet nur auf Seiten bestimmter Seitengruppen anzuzeigen.

    Die Anzeigentarife für Ihre Kunden lassen sich auf Grundlage der Seitengruppe festlegen. So könnten Sie z. B. für Anzeigen, die auf Ihrer Homepage angezeigt werden, mehr als für Anzeigen auf anderen Seiten berechnen.

    Anmerkung

    • Bevor eine Seitengruppe verwendet werden kann, müssen Sie die entsprechenden Seiten anzeigenfähig machen. Eine Anleitung dazu finden Sie im Commerce Server Software Development Kit.

Anzeigen

Commerce Server unterstützt zwei Arten von Anzeigen: bezahlte Anzeigen und Eigenwerbung.

  • Bezahlte Anzeigen sind Inhalte, die Commerce Server basierend auf einer bestimmten Lieferformel liefern muss. Diese wird als Bereitstellungsbedarf bezeichnet.

  • Eigenwerbung sind Inhalte, die dann geliefert werden, wenn bezahlte Anzeigen den festgelegten Bereitstellungsbedarfzeitplan übertroffen haben. Beispiel: Ein Kunde bestellt 1000 bezahlte Anzeigen, die über einen Zeitraum von vier Monaten geliefert werden sollen. Bereits in den ersten beiden Monaten wird die Anzeige jedoch schon 850 Mal geliefert. Um den Bereitstellungsbedarfzeitplan wieder auszugleichen, wird Eigenwerbung geliefert.

    Eigenwerbung spielt eine große Rolle bei der reibungslosen Lieferung Ihrer bezahlten Anzeigen. Eigenwerbung wird auch angezeigt, wenn keine bezahlten Anzeigen einer Anforderung entsprechen. Eigenwerbung wird beispielsweise dann geliefert, wenn keine der bezahlten Anzeigen einem erforderlichen Ziel entsprechen.

    Eigenwerbung kann auch dazu eingesetzt werden, um Restbestände zu reduzierten Preisen zu verkaufen. Außerdem ist Eigenwerbung nützlich, wenn die Anzeigen in Ihrer Site keine speziellen Lieferziele haben, Sie die Anzeigen aber mit bestimmten Gewichtungen schalten möchten.

Bestandteile einer Anzeige

In Commerce Server bestehen Anzeigen aus vier Teilen:

  • Anzeigeneigenschaften beinhalten den Namen der Anzeige, den Typ (bezahlte Anzeige oder Eigenwerbung), die Gewichtung oder die Anzahl von Anforderungen bzw. Klicks, die geliefert werden sollen (bezahlte Anzeigen gegenüber Eigenwerbung), das Anzeigenlimit sowie der Branchencode der Anzeige.

  • Der Anzeigenzeitplan bestimmt das Anfangs-/Beendigungsdatum sowie die Anfangs-/Beendigungszeit. Dabei können Sie die Wochentage sowie die Tageszeiten auswählen, an denen eine Anzeige angezeigt wird.

  • Das Anzeigenziel identifiziert die Seiten, auf denen eine Anzeige angezeigt wird sowie ihre Zielgruppen.

  • Die Anzeigendarstellung bestimmt die Größe der Anzeige, ihren Typ (z. B. Bild, Text oder HTML) und ggf. das Bild und/oder den URL, worauf Benutzer klicken können, um zu einer anderen Seite (oder Website) zu gelangen. Anzeigen lassen sich als Bilder, Text, HTML, nicht anzuklickende Bilder, "Jetzt kaufen"-Anzeigen, Windows Media Services oder Vignetten anzeigen. (Eine Vignettenanzeige besteht aus einem Bild und Text, der nebenstehend angezeigt wird.)

Zielgruppenadressierung von Anzeigen

Mit Commerce Server können Sie festlegen, wann, wo und wem eine Anzeige angezeigt wird. Bei der Erstellung einer Anzeige legen Sie Folgendes fest:

  • Anzeigelimit. Gibt an, wie oft eine Anzeige einem Benutzer innerhalb einer Sitzung gezeigt werden kann.

  • Gewichtung. Die Gewichtung bestimmt, wie oft eine Anzeige im Verhältnis zu allen Kampagnenartikel eines bestimmten Kunden angezeigt wird. In einer Kampagne gilt die Gewichtung nur für Anzeigen, deren Zielfestlegung auf Kampagnenebene liegt. Wenn die Zielfestlegung von Anzeigen auf der Werbeartikelebene stattfindet, wird für bezahlte Anzeigen keine Gewichtung verwendet.

    Bei Eigenwerbung steht die Gewichtung im Verhältnis zu der übrigen Eigenwerbung für alle Kunden und Kampagnen. Bei bezahlten Anzeigen ist die Gewichtung relativ zu anderen bezahlten Anzeigen derselben Kampagne. Die Gewichtung eines einzelnen Kampagnenartikels hängt von der Gewichtung der übrigen Kampagnenartikel ab.

    Nehmen Sie z. B. an, dass Sie mit vier Anzeigen Farbe verkaufen möchten. Sie weisen die Gewichtungen wie folgt zu:

Anzeige | Gewichtung | Lieferanteil in Prozent
Blaue Farbe | 1 | 10
Grüne Farbe | 2 | 20
Rote Farbe | 3 | 30
Gelbe Farbe | 4 | 40
Gesamtgewicht | 10 | 100

Das Gesamtgewicht aller Anzeigen beträgt 10 (1+2+3+4 = 10). Die Anzeige für blaue Farbe hat eine Gewichtung von 1, damit sie bei jeder zehnten Anforderung angezeigt wird.

Bei bezahlten Anzeigen ist die Gewichtung das Verhältnis einer einzigen Anzeige zur Summe aller Kampagnenartikel der betreffenden Kampagne. Bei Eigenwerbung ist die Gewichtung die Summe aller Gewichtungen der übrigen Eigenwerbung in der Kampagne.

Bei Anzeigen, deren Zielfestlegung auf der Kampagnenartikelebene liegt, hat die Gewichtung keinen Einfluss auf die Lieferung der Anzeige. Bei diesen Anzeigen legen Sie stattdessen direkt die Anzahl der Anforderungen bzw. Klicks fest, die geliefert werden sollen.

  • Seitengruppen. Eine Seitengruppe ist eine Gruppe verwandter Webseiten, die mit einem bestimmten Seitengruppennamen getaggt ist und zur Zielgruppenadressierung von Anzeigen verwendet wird. Wenn Sie z. B. eine Onlinezeitung betreiben, können Sie eine Seitengruppe für den Sport, eine für den Leitartikel und eine weitere für Lokalnachrichten erstellen. Dann haben Sie die Möglichkeit, Anzeigen zielgerichtet nur auf Seiten bestimmter Seitengruppen anzuzeigen.

    Seitengruppen werden mithilfe des Referenztabellenmoduls erstellt.

  • Zielgruppen. Eine Sammlung von Zielen, denen Inhalte angezeigt werden sollen. Sie können z. B. Anzeigen zielgerichtet bei Benutzern mit bestimmten Profileigenschaften anzeigen. Weitere Informationen über Ziele und Zielgruppen finden Sie unter Zielgruppenadressierung und Personalisierung.

Verarbeiten von Anzeigenkampagnenartikeln

Das Content Selection Framework (CSF) verarbeitet die Variablen, die Sie für Anzeigen festlegen: Kampagnenzielfestlegung, Anzeigelimit, Anzeigenzeitplan, Gewichtung, Seiten- und Zielgruppen. CSF bestimmt bei jedem Besucher Ihrer Site, ob eine Anzeige angezeigt werden soll oder nicht.

Das Content Selection Framework für Werbung setzt eine Formel namens Bereitstellungsbedarf ein, um Anzeigen einen Ausgangswert basierend auf ihrem Zeitplanstatus zu geben. Diese Form berücksichtigt die Gesamtmenge der zu liefernden Inhalte sowie den Zeitraum, in dem diese Menge geliefert werden muss. Der Bereitstellungsbedarf wird durch das Content Selection Framework für jede Anzeigenanforderung nach deren Verarbeitung berechnet. Der Bereitstellungsbedarf gilt nur für bezahlte Anzeigen, nicht für Eigenwerbung.

Wenden Sie sich an Ihren Siteentwickler, wenn Sie wissen möchten, auf welcher Basis Ihre Anzeigen angezeigt werden. Commerce Server enthält das Tool TraceScores, mit dem Siteentwickler den Auswahlprozess nachverfolgen können. Mithilfe von TraceScores lässt sich genau nachvollziehen, wie der interne Content Selection-Prozess funktioniert.

Wenn Sie mehrere Kampagnen mit derselben Zielgruppe und Priorität gleichzeitig mit Commerce Server durchführen möchten, wählt das Content Selection Framework basierend auf dem Anzeigentyp die Anzeige aus, die angezeigt wird. Bei zwei Eigenwerbungsanzeigen wird eine davon nach dem Zufallsprinzip ausgewählt, wobei die Gewichtungen als relative Wahrscheinlichkeiten verwendet werden. Falls es sich um bezahlte Anzeigen handelt wird eine davon zur Anzeige basierend auf der Berechnung des Bereitstellungsbedarfs ausgewählt. Diese Berechnung berücksichtigt Anfangs- und Beendigungsdaten, die Anzahl der geplanten Ereignisse sowie die Gesamtzahl der bisher gelieferten Ereignisse. Der Wert kann u. a. durch den Verlaufsabzug geändert werden, der bei Anzeigen, die erst kürzlich von einem Benutzer betrachtet wurden, einen Abzug vornimmt. Ist die Funktion Verlaufsabzug aktiviert, werden Anzeigen im Rotationsverfahren dargestellt.

Preisnachlässe

Preisnachlässe können auf jeden Artikel im Katalog angewendet werden. Preisnachlässe lassen sich auf eine gesamte Bestellung (Bestellebenen-Preisnachlass) oder auf bestimmte Artikel der Bestellung (Artikelebenen-Preisnachlass) anwenden.

  • Bestellebenen-Preisnachlässe gelten für alle Produkte in einem Warenkorb. So ist z. B. Ohne Frachtkosten eine Art von Bestellebenen-Preisnachlass: Benutzer brauchen bei diesem Preisnachlass für alle Produkte in ihrem Warenkorb keine Frachtkosten bezahlen. Ohne Frachtkosten ist der einzige in Commerce Server enthaltene Bestellebenen-Preisnachlass. Falls Sie andere Preisnachlässe auf Bestellebene anbieten möchten (z. B. einen Preisnachlass in Höhe von 10 % für bevorzugte Benutzer), muss ein Siteentwickler benutzerdefinierte Änderungen an Ihrer Site vornehmen.

  • Artikelebenen-Preisnachlässe gelten für bestimmte Produkte in einem Warenkorb.

Wenn Sie einen Preisnachlass für eine gesamte Bestellung geben, wird dieser Preisnachlass auf jeden Artikel einzeln angewendet. Auf die Menge 1 eines Bestelleinzelpostens kann nur ein Preisnachlass angewendet werden. Zwei Preisnachlässe können nicht auf dieselbe Menge 1 eines Artikels angewendet werden.

Mithilfe von Commerce Server lassen sich die folgenden Preisnachlasstypen erstellen und anwenden:

  • "Klick erforderlich"-Preisnachlässe werden nur angewendet, wenn ein Benutzer auf den Preisnachlass-URL klickt. Dies kann ein Bild des Produkts sein, auf dem z. B. "Sparen Sie 10 %!" steht. Siteentwickler können diesen Preisnachlasstyp für andere Zwecke erweitern, z. B. für Coupons, die Kunden haben müssen, um den Preisnachlass zu erhalten.

  • Preisnachlässe mit Hebelwirkung basieren auf dem Kauf anderer Produkte. Wenn Benutzer z. B. ein Telefon zu ihrem Warenkorb hinzufügen, können Sie ihnen beim Auschecken ein kostenloses Adressbuch anbieten. Durch Hinzufügen dieses Artikels nehmen Benutzer den Preisnachlass an. Sie haben auch die Möglichkeit, den Benutzern ein anderes Zubehör zu einem reduzierten Preis anzubieten.

  • Prozentuelle Preisnachlässe reduzieren den Preis eines Produkts um einen bestimmten Prozentsatz statt um einen festen Geldbetrag. So können Sie z. B. einen Preisnachlass von 10 % auf Produkte geben und dann den Preis der Produkte bei Bedarf ändern. Wenn Sie den Preis der Produkte ändern, wird der Preisnachlass automatisch angepasst.

  • Festbetragspreisnachlässe reduzieren den Preis von Produkten um einen festen Betrag. So können Sie z. B. einen Preisnachlass in Höhe von DM 10,00 auf bestimmte Produkte geben. Auch wenn Sie den Preis der Produkte ändern, bleibt der Preisnachlass (DM 10,00) immer gleich.

  • "Happy Hour"-Preisnachlässe reduzieren den Preis von Produkten zu bestimmten Zeiten. Mithilfe von Ausdrücken, die die Eigenschaft Aktuelle Uhrzeit auswerten, können Sie Preisnachlässe so planen, dass sie zu bestimmten Zeiten angewendet werden. Beispiel: Wenn Aktuelle Uhrzeit > 17:00 Uhr und Aktuelle Uhrzeit < 21:00 Uhr, Preisnachlass von 10 % auf Produkt geben.

Diese Preisnachlässe wenden Sie auf einzelne oder alle Produkte in einer Kategorie an. Sie können auch einen Ausdruck erstellen, mit dem nur Produkte einen Preisnachlass erhalten, die bestimmte Kriterien erfüllen (z. B. Preisnachlässe in Höhe von 10 % für alle Artikel eines bestimmten Herstellers).

Preisnachlässe lassen sich z. B. für folgenden Szenarien erstellen:

  • Produktpreis ist größer als DM 40,00. Dies ist ein Preisnachlass-Bedingungsausdruck. Preisnachlass-Bedingungsausdrücke basieren auf einer Produkteigenschaft.

  • Benutzer kauft 2. Dies ist Teil eines erforderlichen Kriteriums für eine Preisnachlassbedingung.

  • Benutzer klickt auf einer Sportseite auf eine Preisnachlassanzeige. Dies ist der Klick erforderlich-Teil eines Preisnachlasses.

  • Benutzer ist registriert. Dies ist ein Ausdruck für die Preisnachlassberechtigung. Preisnachlass-Berechtigungsausdrücke basieren auf Benutzer- und Kontextprofilen.

Es ist nicht möglich, mehrere Preisnachlässe gleichzeitig auf ein Produkt anzuwenden. Ein Kunde kann nur einen Preisnachlass pro Produkt erhalten, bzw. eine Bedingung kann nur auf einen Preisnachlass angewendet werden. Nachdem ein Produkt als Bedingung oder Auszeichnung für einen Preisnachlass verwendet wurde, kann es nicht als Bedingung oder Auszeichnung für einen weiteren Preisnachlass verwendet werden.

Bestandteile eines Preisnachlasses

Ein Preisnachlasskampagnenartikel hat folgende Bestandteile: Preisnachlasseigenschaften, Preisnachlassdefinition, Preisnachlassziel und Preisnachlassanzeige. Mithilfe des Kampagnen-Managers werden diese Komponenten bei der Erstellung des Preisnachlasses definiert.

  • Zu den Preisnachlasseigenschaften zählen Name, Priorität, Anfangs- und Beendigungsdatum des Preisnachlasses.

  • Die Preisnachlassdefinition gibt an, worauf der Nachlass gewährt wird, wie hoch er ist und für wen er gilt. Eine Preisnachlassdefinition besteht aus Folgendem:
    • Der Zielausdruck bestimmt, wofür der Preisnachlass gilt. Der Zielausdruck Buch_Preis > 20 z. B. wendet den Preisnachlass auf alle Bücher an, die diesem Kriterium entsprechen.

    • Eine Anforderung identifiziert den Benutzer und/oder Kontext, für den der Preisnachlass angezeigt wird. Beispiel: Sie können einer registrierten Benutzerin, die bei Ihrem letzten Besuch Waren im Wert von DM 100,00 gekauft hat, einen Preisnachlass anbieten. Eine andere Möglichkeit: Wenn ein Benutzer in Ihrer Site an einem bestimmten Tag einkauft oder eine bestimmte Seite anzeigt, kann er die Kontextanforderungen erfüllen und einen Preisnachlass in Höhe von 10 % erhalten.

    • Eine Auszeichnung bestimmt, was Benutzer erhalten, z. B. einen Preisnachlass in Höhe von 10 % oder Versand ohne Frachtkosten. Eine Auszeichnungsbedingung muss wahr sein, damit der Preisnachlass angewendet wird. Die Auszeichnungsbedingung wird dabei für jeden Artikel im Bestellformular ausgewertet. Dabei kann es sich um einen Ausdruck handeln, der angibt, dass der Preisnachlass für einen bestimmten oder für alle Artikel gilt.
  • Das Preisnachlassanzeigenziel legt die Seiten fest, auf denen ein Preisnachlass angezeigt wird, sowie die Zielgruppen für den Preisnachlass.

  • Die Preisnachlassanzeige bestimmt, wie oft der Preisnachlass einem Benutzer angezeigt wird, das Bild und/oder den URL, auf das/den Benutzer für den Erhalt des Preisnachlasses klicken müssen, sowie die Preisnachlassinformationen, die im Warenkorb beim Auschecken angezeigt werden.

Preisnachlasspriorität

Jedem Preisnachlass wird eine Priorität zugeteilt, die bestimmt, wann der Preisnachlass abhängig von anderen für ein Produkt geltenden Preisnachlässen angezeigt werden soll. (Anders als bei Anzeigen werden bei Preisnachlässen keine Gewichtungen verwendet, um die Lieferung zu bestimmen.) Beispiel: Sie erstellen drei Preisnachlässe und weisen jedem wie in der folgenden Tabelle gezeigt eine Priorität zu.

Preisnachlass | Priorität
10 % Preisnachlass für Telefone | 10
30 % Preisnachlass für bevorzugte Benutzer, die Telefone, Radios oder Computer kaufen | 20
Ohne Frachtkosten | 30

Wenn ein bevorzugter Benutzer in Ihrer Site u. a. ein Telefon kauft, gilt für das Telefon nur der Preisnachlass in Höhe von 10 %. Weder der Preisnachlass in Höhe von 30 % noch die Befreiung von den Frachtkosten werden auf den Kauf des Telefons angewendet, da diese Preisnachlässe eine geringere Priorität haben.

Falls zwei Preisnachlässe dieselbe Priorität aufweisen, hat unter Umständen der von Ihnen verwendete Datenbanktyp einen Einfluss darauf, welcher Preisnachlass gilt. Bei Preisnachlässen mit derselben Priorität gibt es keine festgelegten Ergebnisse.

Preisnachlässe auf Basis von Bestellmenge oder -wert

Sie haben die Möglichkeit, Preisnachlässe auf Basis der Bestellmenge oder auf Basis des Bestellwerts eines Benutzers anzuwenden. So können Sie z. B. einen Preisnachlass erstellen, der angewendet wird, wenn ein Benutzer drei Kisten Saft (Menge) kauft, bzw. einen Preisnachlass, der gilt, wenn ein Benutzer Saft für DM 40,00 kauft (Wert).

Ein Preisnachlass kann pro Menge oder Wert angewendet werden. Beispielsweise hat die Getränkeabteilung Ihres Onlinesupermarkts im Sommer folgendes Angebot: Beim Kauf einer Kiste Saft gibt es die zweite Kiste zum halben Preis. Ihr Onlinesupermarkt hat jedoch ein weiteres Angebot, dass auf alle Getränkeprodukte einen Preisnachlass von 10 % gibt. Nehmen Sie an, dass Sie den Preisnachlässen Prioritäten wie in folgender Tabelle zuweisen.

Preisnachlass | Priorität
Beim Kauf einer Kiste Saft gibt es die zweite Kiste zur Hälfte vom Preis | 10
10 % Preisnachlass auf alle Getränkeprodukte | 20

Wenn ein Benutzer jetzt vier Kisten Saft kauft, werden die Preisnachlässe wie folgt angewendet:

  • Kiste 1: Kein Preisnachlass

  • Kiste 2: 50 % Preisnachlass

  • Kiste 3: 10 % Preisnachlass

  • Kiste 4: 50 % Preisnachlass, jedoch nur, falls der Preisnachlass "Eine Kiste kaufen, die zweite zum halben Preis" keiner Einschränkung unterliegt. Der Preisnachlass in Höhe von 50 % wird statt des Preisnachlasses in Höhe von 10 % angewendet, da er eine höhere Priorität hat.

Preisnachlassgrenzen

Sie haben die Möglichkeit, die Anzahl der Preisnachlässe zu begrenzen, die auf einen Warenkorb angewendet werden können. Wenn die Preisnachlassgrenze den Wert Null (0) hat, unterliegen Preisnachlässe keiner Einschränkung: Ein Preisnachlas kann mehrmals angewendet werden – vorausgesetzt, dass die Bedingung für den Preisnachlass mehrmals im Warenkorb erfüllt wird. Die Preisnachlassgrenze ist auf den Warenkorb begrenzt und gilt nicht für mehrere Warenkörbe. Wenn ein Benutzer z. B. auscheckt, zurückkommt und dieselben Artikel kauft, erhält er erneut denselben Preisnachlass.

Verarbeiten von Preisnachlasskampagnenartikeln

Preisnachlasskampagnen werden durch die Inhaltsauswahl-Pipeline für Preisnachlässe und die Bestellpreisnachlass-Pipelinekomponente verarbeitet. Mithilfe der CSF-Pipeline für Preisnachlässe können Sie Benutzern den Preisnachlass anzeigen, der für sie am besten geeignet ist. Über die Bestellpreisnachlass-Komponente der Warenkorbpipeline werden Preisnachlässe auf den Warenkorb angewendet.

  • Die Inhaltsauswahl-Pipeline für Preisnachlässe überprüft Anfangs- und Beendigungsdaten der Preisnachlässe und passt dann die entsprechenden Ergebnisse in der Liste der möglichen Preisnachlässe an. So wird sichergestellt, dass die Preisnachlässe, die für den aktuellen Benutzer am relevantesten sind, die höchste Priorität erhalten.

  • Die Bestellpreisnachlass-Pipelinekomponente wendet zunächst die Anforderungen auf die verfügbaren Preisnachlässe an. Abhängig vom jeweiligen Preisnachlass werden zur Auswertung der Zielausdrücke Benutzer- bzw. Kontextprofilinformationen eingesetzt. Außerdem wird eine Liste der Kampagnenartikel-IDs für jeden angeklickten Artikel überprüft, falls ein Preisnachlass einen Klick erfordert. Anschließend verarbeitet die Bestellpipeline die einzelnen Artikel, wobei die Bedingungen und Auszeichnungen getestet werden. Preisnachlässe werden von der höchsten zur niedrigsten Priorität angewendet. Falls zwei Preisnachlässe dieselbe Priorität haben, ist der Preisnachlass nicht deterministisch, d. h., andere Eigenschaften als die Priorität bestimmen die Reihenfolge für die Anwendung der Preisnachlässe.

Direktsendungen

Direktsendungskampagnenartikel werden erstellt, um Anzeigen per E-Mail zielgerichtet an eine Benutzergruppe zu senden. Das Ziel ist, eine hohe Rückmeldungsquote auf die Direktsendungen zu erzielen. Sie können personalisierte E-Mail-Nachrichten von einer Webseite bzw. nicht personalisierte Nachrichten aus einer nichtformatierten Textdatei senden. In den Direktsendungsnachrichten, die Sie erstellen, können Anlagen wie z. B. Bilder, Preisnachlässe oder URLs enthalten sein. Der Direktsendungsdienst ist für den Massenversand von personalisierten E-Mail-Nachrichten an Millionen Benutzer ausgelegt.

Die Einrichtung einer Direktsendungskampagne erfolgt mithilfe des Kampagnen-Manager-Moduls von Business Desk. Direktsendungskampagnenartikel werden vom Direct Mailer-Dienst verarbeitet. Dies ist ein leistungsfähiges Modul, mit dem sehr schnell eine große Anzahl von E-Mails versendet werden kann.

So erstellen Sie einen Direktsendungskampagnenartikel:

  • Erstellen der Nachricht. Zur Erstellung personalisierter E-Mail-Nachrichten muss Ihr Siteentwickler zuerst Active Server Pages (ASP) mit dem personalisierten Text erstellen und diese zum Webserver hinzufügen. Vom Siteentwickler erhalten Sie dann den URL der ASP-Seiten. Zum Erstellen einer nicht personalisierten Nachricht können Sie einfach Text in eine nicht formatierte Datei eingeben, z. B. mithilfe von Editor.

  • Erstellen einer Empfängerliste. Mit den leistungsfähigen Analysetools von Commerce Server lässt sich eine Liste mit Empfängern für die Direktsendungskampagne erstellen. So können Sie z. B. mit dem Berichtsmodul von Business Desk einen Bericht unter Verwendung der Daten im Datawarehouse ausführen, um eine Liste bestimmter Benutzer zu erhalten. Die fertige Liste kann dann in Listen-Manager exportiert werden. Unter Verwendung der Vorhersageressource ist es auch möglich, eine Liste von Benutzern in einem bestimmten Benutzersegment zu erstellen und diese Liste in Listen-Manager zu exportieren. Nachdem eine Liste in Listen-Manager importiert wurde, steht sie für Direct Mailer zu Verfügung.

    Es ist nicht möglich, Zielgruppen zu verwenden, um Direktsendungen direkt an E-Mail-Adressen von Benutzern zu schicken.

  • Erstellen und Planen der Direktsendungskampagne. Im Kampagnen-Manager-Modul bestimmen Sie den Kampagnennamen, den Namen der Empfängerliste, Anfangszeit und -datum des Kampagnenartikels sowie den URL (für personalisierte Nachrichten) bzw. die statische Datei für den Nachrichtentext.

Weitere Informationen über das Hinzufügen von Direktsendungskampagnenartikeln finden Sie unter Hinzufügen eines Direktsendungskampagnenartikels.

Abonnementkündigungslisten

Direct Mailer unterstützt eine Funktion zur Abonnementkündigung. Bei Direktsendungsaufträgen, die als Teil eines Kampagnenartikels ausgeführt werden, können einzelne Empfänger ihr Abonnement des Direktsendungskampagnenartikels kündigen. Zum Lieferumfang der Lösungssites gehört eine ASP-Seite zur Abonnementkündigung, mit deren Hilfe Sie eine Adressenliste anhand einer Abonnementkündigungsliste filtern können.

Auf der ASP-Seite für die Direct Mailer-Aufträge kann ein Siteentwickler Links zu einer opt-out.asp-Seite anbieten. Auf dieser Seite können Empfänger über den entsprechenden Link entweder ihr Abonnement für die Site bzw. den Direktsendungskampagnenartikel kündigen. Wenn ein Direct Mailer-Auftrag als Teil eines Kampagnenartikels ausgeführt wird, prüft Direct Mailer, ob eine Abonnementkündigungsliste auf Siteebene oder auf Kampagnenebene vorhanden ist. Falls eine dieser Listen vorhanden ist, wird sie von der ursprünglichen Adressenliste abgezogen. Die so erhaltene Liste fungiert dann als neue Adressenliste.

Verarbeiten von Direktsendungskampagnenartikeln

Direct Mailer führt die folgenden Aufgaben durch:

  • Verwalten von Direktsendungsaufträgen.

  • Erstellen personalisierter und nicht personalisierter Nachrichtentexte.

  • Formatieren von Kopfzeilen von E-Mail-Nachrichten.

  • Einstellen des Codepagewerts (Sprache) und Konvertieren von Nachrichtentexten in den richtigen Nachrichtentyp: MHTML (MIME Encapsulation of Aggregate HTML Documents), MIME (Multipurpose Internet Mail Extensions) oder Text.

  • Senden von E-Mail-Nachrichten an Empfänger.

Die Direct Mailer-Pipeline wird zur Verarbeitung von Empfängerlisten eingesetzt. Sie haben die Möglichkeit, neue Komponenten zur Pipeline hinzuzufügen, die Komponenten in branchenspezifische Systeme zu integrieren oder diese durch Komponenten von Drittanbietern zu ersetzen.

Analysieren der Kampagneneffektivität

In der folgenden Tabelle sind die in Commerce Server enthaltenen Berichte aufgeführt, die Sie zur Analyse der Effektivität eines Kampagnenartikels verwenden können.

Bericht | Beschreibung
Zusammenfassung der Kampagnenartikel | Anzeigen einer Zusammenfassung der Kampagnenaktivität in Ihrer Site. Dieser Bericht zeigt Informationen über die Anzahl und den Prozentsatz von Klicks sowie über die verbleibenden Anzeigenanforderungen an.
Anzeigenreichweite und -häufigkeit pro Tag | Analysieren des Verhaltens der verschiedenen Benutzer pro Tag, die mit Ihrer Kampagne interagieren.
Anzeigenreichweite und -häufigkeit pro Kampagnenartikel | Analysieren der Interaktion verschiedener Benutzer mit Ihren Kampagnenartikeln. Dieser Bericht zeigt für den gesamten Zeitraum das Verhalten verschiedener Benutzer an, die mit Ihren Kampagnenartikeln interagieren.
Anzeigenreichweite und -häufigkeit pro Kampagne | Analysieren der Interaktion verschiedener Benutzer mit Ihren Kampagnen. Dieser Bericht zeigt für den gesamten Zeitraum das Verhalten verschiedener Benutzer an, die mit Ihren Kampagnen interagieren.
Zusammenfassung von Kampagnenereignissen | Analysieren der Effektivität von Kampagnen in Ihrer Site. Dieser Bericht zeigt eine Zusammenfassung der Kampagnenaktivität in Ihrer Site an.
Anzeigenplatzierung | Analysieren der Bereiche Ihrer Site, in denen Anzeigen am effektivsten sind. Dieser Bericht zeigt eine Zusammenfassung der Kampagnenaktivität nach Platzierung in Ihrer Site an.

Eine Liste aller Commerce Server-Berichte finden Sie unter Commerce Server-Berichte. Informationen über die Ausführung von Berichten finden Sie unter Ausführen von Berichten.

Siehe auch

Business Desk-Kampagnen

Ausführen von Direct Mailer

Working with Pipelines (englisches Thema)

Extending the Content Selection Framework (englisches Thema)

Zielgruppenadressierung und Personalisierung


Commerce Server-Sicherheit

Commerce Server liefert zwei Tools zur Verwaltung der Benutzerauthentifizierung und -identifizierung: das AuthManager-Objekt und AuthFilter.

  • AuthManager ist ein COM-Objekt (Component Object Model), das Methoden zur Benutzeridentifizierung und zur Zugriffssteuerung auf dynamisch erstellte Inhalte bereitstellt. Beispiel: Siteentwickler können die GetUserID-Methode des AuthManager-Objekts aufrufen, um einen Benutzer basierend auf einem Cookie oder einer Abfragezeichenfolge zu identifizieren.

  • AuthFilter ist ein ISAPI-Filter (Internet Server API), der auf der Anwendungsebene der Internet-Informationsdienste (IIS) von Commerce Server eingesetzt wird. Dieser Filter lässt sich auf alle Benutzer anwenden, die eine Anwendung besuchen. Von AuthFilter verwendete Eigenschaften lassen sich auf der globalen CS-Authentifizierungsebene konfigurieren. Der Authentifizierungsmodus wird auf der Anwendungsebene konfiguriert. Dabei haben Sie die Wahl zwischen den folgenden Authentifizierungsmodi: Windows-Authentifizierung, Benutzerdefinierte Authentifizierung und Autocookie.

Wenn Sie das AuthManager-Objekt und AuthFilter konfigurieren, werden die Authentifizierungseigenschaften in der Verwaltungsdatenbank gespeichert. Die CS-Authentifizierungsressource interagiert mit den Config-Objekten, um die Eigenschaften der Verwaltungsdatenbank zu speichern bzw. abzurufen.

AuthFilter wird bei den Lösungssites nicht eingesetzt, da diese den Einkauf ohne Cookies unterstützen.

Die folgende Tabelle fasst die Unterschiede zwischen den von AuthFilter, dem AuthManager-Objekt und den Lösungssites unterstützten Features zusammen.

Feature | AuthFilter | AuthManager | Lösungssites
Prüft, ob Sitzungscookies (nicht persistent gespeicherte Cookies) unterstützt werden | Ja | Nein | Ja
Unterstützt den Einkauf ohne Cookies | Nein | Ja | Ja
Bietet granuläre Zugriffsteuerung mithilfe von Zugriffsteuerungslisten (ACLs) | Ja | Nein | Nein
Unterstützt benutzerdefinierte Anmeldeseiten zum Abruf von Windows-Anmeldeinformationen | Ja | Ja | Nein
Korrektur der Groß-/Kleinschreibung in URLs | Ja | Nein | Ja

Dieser Abschnitt beinhaltet folgende Themen:

  • Allgemeine Sicherheitselemente. Beschreibt die Hauptsicherheitselemente, die bei einer Commerce Server-Installation eingesetzt werden.

  • Commerce Server-Authentifizierungsmethoden. Beschreibt das AuthManager-Objekt und AuthFilter.

  • Authentifizierungstickets. Beschreibt die Tickets MSCSProfile und MSCSAuth und erläutert, wie Commerce Server diese zur Identifizierung von Gästen und registrierten Benutzern verwendet.

  • IIS-Authentifizierungsmethoden. Beschreibt die Authentifizierungsmethoden der Internet-Informationsdienste 5.0 (IIS), die bei Commerce Server verwendet werden.

  • Zusätzliche Sicherheitsinformationen. Führt weitere Ressourcen mit Informationen über das Entwickeln mit dem AuthManager-Objekt und AuthFilter auf und bietet Links zu Themen über das Sichern von Sites.

Siehe auch

Sicherheitsplanung

Working with Site Security and Filters (englisches Thema)

Site Security Objects (englisches Thema)

Verwalten der CS-Authentifizierungsressource

Commerce Server-Sicherheit: Checkliste

Sichern der Site


Allgemeine Sicherheitselemente

Dieses Thema beschreibt die Hauptsicherheitselemente, die bei einer Commerce Server-Installation eingesetzt werden: Authentifizierung, Zugriffssteuerung, Verschlüsselung, Überwachung und Zertifikate.

Authentifizierung: Übersicht

Zugriffssteuerung: Übersicht

Zertifikate: Übersicht

Verschlüsselung: Übersicht

Überwachung: Übersicht

Authentifizierung: Übersicht

Commerce Server unterstützt sieben Authentifizierungsmethoden: drei Methoden von Commerce Server selbst (Windows-Authentifizierung, benutzerdefinierte Authentifizierung und Autocookie) sowie vier Methoden der Internet-Informationsdienste (IIS) (anonyme Authentifizierung, Standardauthentifizierung, integrierte Windows-Authentifizierung und Zertifikate).

Commerce Server ist nicht bekannt, welche der IIS-Authentifizierungsmethoden eingesetzt wird. Falls Sie eine dieser Authentifizierungsmethoden (mit Ausnahme der anonymen) verwenden, kann Commerce Server auf die ASP-Umgebung (Active Server Pages) zugreifen und mithilfe von Serveranforderungsvariablen programmatisch nach dem Namen des (momentan angemeldeten) Benutzers fragen.

IIS bietet Sicherheitsfunktionen, die vollständig in Windows integriert sind. Commerce Server unterstützt vier IIS-Authentifizierungsmethoden, damit Sie die Identität von allen Personen überprüfen können, die auf Ihre Websites zugreifen wollen. Dabei handelt es sich um folgende IIS-Authentifizierungsmethoden:

  • Bei der anonymen Authentifizierung erhalten alle ohne Abfrage eines Benutzernamens oder Kennworts Zugriff.

  • Die Standardauthentifizierung fordert Benutzer zur Eingabe eines Benutzernamens und Kennworts auf, die unverschlüsselt über das Netz übertragen werden.

  • Die integrierte Windows-Authentifizierung setzt zur Identifizierung der Benutzer Hashtechniken ein, ohne dabei das Kennwort tatsächlich über das Netz zu übertragen.

  • Bei Zertifikaten handelt es sich um digitale Anmeldeinformationen, die für den Aufbau einer SSL-Verbindung (Secure Sockets Layer) eingesetzt werden können. Zertifikate können auch zu Authentifizierungszwecken verwendet werden.

Über diese beiden Methoden können Sie Zugriff auf die öffentlichen Bereiche Ihrer Site gewähren und gleichzeitig nicht autorisierte Zugriffe auf private Dateien und Verzeichnisse unterbinden. Weitere Informationen über diese Methoden finden Sie unter IIS-Authentifizierungsmethoden.

Zugriffssteuerung: Übersicht

Mithilfe von NTFS-Zugriffsberechtigungen, Grundlage der Sicherheit des Webservers, können Sie die Ebene für Datei- und Verzeichniszugriffe definieren, die Windows-Benutzern und -Gruppen gewährt wird. Falls sich ein Unternehmen z. B. dazu entschließt, seinen Katalog auf Ihrem Webserver zu veröffentlichen, müssen Sie ein Windows-Benutzerkonto für dieses Unternehmen erstellen und dann Zugriffsberechtigungen für die Website, das Verzeichnis bzw. die Datei konfigurieren. Über diese Zugriffsberechtigungen ist es dann nur dem Serveradministrator und den Verantwortlichen des Unternehmens möglich, die Inhalte der Website zu aktualisieren. Öffentliche Benutzer könnten die Website anzeigen, deren Inhalte jedoch nicht verändern. Weitere Einzelheiten über die Konfiguration von NTFS-Zugriffsberechtigungen finden Sie unter "Festlegen von NTFS-Berechtigungen für ein Verzeichnis oder eine Datei" in der IIS 5.0-Dokumentation.

WebDAV ist eine Erweiterung des HTTP 1.1-Protokolls und erleichtert die Bearbeitung von Dateien und Verzeichnissen über eine HTTP-Verbindung. Eigenschaften lassen sich durch Einsatz der "Verben" (Befehle) von WebDAV zu Dateien und Verzeichnissen hinzufügen bzw. aus diesen herauslesen. Dateien und Verzeichnisse können auch auf einem Remotecomputer erstellt, gelöscht, verschoben bzw. kopiert werden. Eine zusätzliche Zugriffssteuerung kann sowohl über Webserver-Zugriffsberechtigungen als auch über NTFS konfiguriert werden. Weitere Informationen dazu finden Sie unter "Zugriffssteuerung" oder "WebDAV-Veröffentlichungen" in der IIS 5.0-Dokumentation.

Zertifikate: Übersicht

Zertifikate sind digitale Identifikationsdokumente, die Servern und Clients die gegenseitige Authentifizierung ermöglichen. Zertifikate werden sowohl vom Server als auch vom Clientbrowser zum Aufbau einer SSL-Verbindung benötigt, über die dann verschlüsselte Informationen gesendet werden können. Die zertifikatbasierten SSL-Funktionen von IIS bestehen aus einem Serverzertifikat, einem Clientzertifikat sowie verschiedenen digitalen Schlüsseln. Diese Zertifikate lassen sich mithilfe der Microsoft Zertifikatsdienste erstellen. Sie können auch von einer wechselseitig vertrauenswürdigen dritten Organisation (einer Zertifizierungstelle) erworben werden. Weitere Informationen über das Einrichten von Zertifikaten und Schlüsseln finden Sie unter "Einrichten von SSL auf dem Server" in der IIS 5.0-Dokumentation.

Serverzertifikate

Serverzertifikate bieten eine Möglichkeit für Benutzer, die Identität Ihrer Website zu bestätigen. In einem Serverzertifikat sind ausführliche Identifizierungsinformationen enthalten, z. B. der Name der Organisation, die mit den Serverinhalten verbunden ist, der Name der zertifikatausgebenden Organisation sowie ein öffentlicher Schlüssel zum Aufbau verschlüsselter Verbindungen. Anhand dieser Informationen können sich Benutzer über die Echtheit der Webserverinhalte und über die Integrität der sicheren HTTP-Verbindung vergewissern.

Clientzertifikate

Bei Verwendung von SSL kann der Webserver Benutzer auch durch Überprüfung ihrer Clientzertifikatinhalte authentifizieren. In einem typischen Clientzertifikat sind ausführliche Informationen über einen Benutzer und über die zertifikatausgebende Organisation sowie ein öffentlicher Schlüssel enthalten. Sie können die Clientzertifikatauthentifizierung zusammen mit der SSL-Verschlüsselung einsetzen, um eine sehr sichere Methode zur Überprüfung der Identität von Benutzer zu implementieren.

Verschlüsselung: Übersicht

Durch Verwendung von Verschlüsselung können Sie es Benutzern ermöglichen, private Informationen – z. B. Kreditkarten- oder Telefonnummern – mit dem Server auf sicherem Weg auszutauschen. Bei der Verschlüsselung werden Informationen vor dem Senden "codiert" und nach dem Empfang durch Entschlüsselung wieder "decodiert". Die Basis für diese Verschlüsselung unter IIS bildet das SSL 3.0-Protokoll, das eine sichere Möglichkeit für den Aufbau verschlüsselter Kommunikationsverbindungen mit Benutzern darstellt. SSL bestätigt die Echtheit Ihrer Website und optional die Identität der Benutzer, die auf geschützte Websites zugreifen möchten.

Zertifikate enthalten Schlüssel, die beim Aufbau einer sicheren SSL-Verbindung zum Einsatz kommen. Ein Schlüssel ist ein eindeutiger Wert, der zur Authentifizierung von Server und Client beim SSL-Verbindungsaufbau verwendet wird. Ein SSL-Schlüsselpaar besteht aus einem öffentlichen und einem privaten Schlüssel. Ihr Webserver verwendet das Schlüsselpaar bei der Aushandlung einer sicheren Verbindung mit dem Webbrowser. Dabei wird die für die sichere Kommunikation benötigte Verschlüsselungsstufe bestimmt.

Bei diesem Verbindungstyp müssen sowohl Ihr Webserver als auch der Webbrowser über kompatible Verschlüsselungs-/Entschlüsselungsfähigkeiten verfügen. Während des Austauschs wird zur Verschlüsselung ein Sitzungsschlüssel erstellt. Sowohl der Server als auch der Webbrowser verwenden den Sitzungschlüssel zum Verschlüsseln und Entschlüsseln der übertragenen Informationen. Die Verschlüsselungsstärke (der Grad der Verschlüsselung) eines Sitzungsschlüssels wird in Bit gemessen. Je größer die Bitzahl eines Sitzungsschlüssels ist, desto höher ist auch die Verschlüsselungsstärke und Sicherheit. Größere Verschlüsselungsstärken bieten zwar mehr Sicherheit, erfordern aber auch mehr Serverressourcen bei der Implementierung. Der Sitzungsschlüssel Ihres Webservers ist meistens 40 Bit lang, kann aber auch bis zu 128 Bit lang sein; dies hängt von der Sicherheitsstufe ab, die Sie benötigen.

Sie können Commerce Server zum Erstellen von neuen Schlüsseln einsetzen. Informationen dazu finden Sie unter Erstellen eines neuen Verschlüsselungsschlüssels.

Überwachung: Übersicht

Mithilfe von Überwachungstechniken lässt sich eine breite Palette sicherheitsrelevanter Benutzer- und Webserveraktivitäten überwachen. Sie sollten die Serverkonfiguration in regelmäßigen Abständen auf Bereiche überprüfen, die nicht autorisierten Zugriffen und Hackern eine Schwachstelle bieten könnten. Dazu können Sie die integrierten Werkzeuge von Windows oder die Features von IIS 5.0 einsetzen. Mithilfe von ASP-Anwendungen haben Sie außerdem die Möglichkeit, eigene Überwachungsprotokolle zu erstellen. Weitere Informationen dazu finden Sie unter "Überwachung" in der IIS 5.0-Dokumentation.


Commerce Server-Authentifizierungsmethoden

Commerce Server 2000 bereichert die von Internet-Informationsdienste 5.0 (IIS) unterstützten Authentifizierungsmethoden auf zwei Arten. Zum einen ist mit AuthFilter, einem ISAPI-Filter (Internet Server API), eine granuläre Zugriffssteuerung für dynamische Inhalte möglich. Zum anderen ist es mit Commerce Server 2000 möglich, Windows-Authentifizierung oder benutzerdefinierte Authentifizierung in einer Internetumgebung einzusetzen, wo eine Vielzahl von Browsern unterstützt werden muss. Commerce Server bietet diese Unterstützung der Windows-Authentifizierung und der benutzerdefinierten Authentifizierung.

Beim Einsatz von AuthFilter haben Sie die Wahl zwischen den folgenden Authentifizierungsmodi:

  • Kein Filter. AuthFilter ist deaktiviert.

  • Windows-Authentifizierung. AuthFilter setzt die Windows-Authentifizierung zur Steuerung des Zugriffs auf die Site ein. Dabei werden Benutzername und Kennwort mit Active Directory (oder einem lokalen Sicherheitszugriffs-Manager-Konto) verglichen. Wenn Sie die Windows-Authentifizierung verwenden, haben Sie die Möglichkeit, nur für bestimmte Active Server Pages und Verzeichnisse eine Benutzerauthentifizierung zu verlangen. Informationen über den Einsatz der Windows-Authentifizierung finden Sie unter Aktivieren der Windows-Authentifizierung.

  • Benutzerdefinierte Authentifizierung. AuthFilter überprüft Benutzernamen und Kennwort (MSCSAuth-Ticket) anhand einer SQL Server-Datenbank oder anhand eines anderen Datenbanktyps. Für jede Active Server Page und jedes Verzeichnis der Commerce Server-Site ist dann eine Anmeldung erforderlich. AuthFilter prüft diese Anmeldung anhand des virtuellen Verzeichnisses der Commerce Server-Site. Außerdem wird in der Commerce Server-Verwaltungsdatenbank abgefragt, ob für die entsprechende Site die benutzerdefinierte Authentifizierung aktiviert ist. Falls das MSCSAuth-Ticket ungültig ist, fordert AuthFilter den Benutzer zur Eingabe von Anmeldeinformationen auf.

    Beim Einsatz der benutzerdefinierten Authentifizierung ist für jede Active Server Page und jedes Verzeichnis der Commerce Server-Site eine Anmeldung erforderlich. Informationen über den Einsatz der benutzerdefinierten Authentifizierung finden Sie unter Aktivieren der benutzerdefinierten Authentifizierung.

  • Autocookie. Für Gastbenutzer lassen sich automatisch Cookies erstellen, in denen Tickets gespeichert werden. (Wenn ein anonymer Benutzer ein MSCSProfile-Ticket erhält, wird er zum Gastbenutzer.) Mit MSCSProfile-Tickets können Sie Profildaten darüber sammeln, wie Gastbenutzer durch die Site navigieren und wie sie die Site verwenden.

    Bei den Modi Autocookie und Kein Filter gibt es keine registrierten Benutzer.

    Wenn Sie den Autocookiemodus zusammen mit der Windows-Authentifizierung oder benutzerdefinierten Authentifizierung ("gemischter Modus") einsetzen, können die persistent gespeicherten Cookies der Gastbenutzer aktualisiert werden, wenn diese sich registrieren lassen. Dadurch gehen die Profildaten nicht verloren, die Sie gesammelt haben, während der Benutzer noch Gast war. Informationen über den Einsatz des Autocookiemodus finden Sie unter Aktivieren der Autocookie-Erzeugung.

Wenn Sie den gemischten Modus aktivieren, erstellt AuthFilter folgende Tickets:

  • Wenn ein Benutzer sich erstmalig bei der Site anmeldet, wird das MSCSProfile-Ticket erstellt.

  • Wenn der Benutzer authentifiziert werden konnte, wird das MSCSAuth-Ticket erstellt. Dieses enthält die Benutzer-ID. Sie können das MSCSAuth-Ticket zur Zugriffssteuerung einsetzen.

  • Falls der Benutzer nicht authentifiziert ist (also kein MSCSAuth-Ticket hat), zeigt das MSCSProfile-Ticket an, dass es sich um einen anonymen Benutzer handelt.

Weitere Informationen über Tickets finden Sie unter Authentifizierungstickets.

Siehe auch

Sicherheitsplanung

Working with Site Security and Filters (englisches Thema)

Site Security Objects (englisches Thema)

Verwalten der CS-Authentifizierungsressource

Commerce Server-Sicherheit: Checkliste

Sichern der Site


Authentifizierungstickets

Bei einem Ticket handelt es sich um ein Eigenschaft/Wertpaar, z. B. "userID" und der Wert von "userID". Beispiel: userID/benutzerxyz ist ein Ticket. Commerce Server verwendet Tickets zum Speichern von Informationen über die Besucher einer Site. Ein Ticket kann in einem Cookie oder in einer URL-Abfragezeichenfolge gespeichert werden.

Commerce Server unterstützt zwei Arten von Tickets:

  • MSCSProfile-Tickets werden zur Identifizierung und Überwachung von anonymen Benutzern und Gastbenutzern eingesetzt, die Ihre Site besuchen. MSCSProfile-Tickets werden bei Benutzern, die solche Cookies annehmen, in persistent gespeicherten Cookies abgelegt. Beim Konfigurieren der CS-Authentifizierungsressource bestimmen Sie die Gültigkeitsdauer von Cookies. Diese liegt meistens bei einigen Jahren.

    Obwohl anonyme Benutzer kein Ticket erhalten, müssen sie bei bestimmten Konfigurationen der Windows-Authentifizierung ein Ticket erhalten, und werden so zu Gastbenutzern. Wenn Sie beispielsweise den Autocookiemodus verwenden, werden anonyme Benutzer zu Gastbenutzern.

  • MSCSAuth-Tickets werden zur Identifizierung und Überwachung registrierter (also authentifizierter) Benutzer eingesetzt. Sie werden bei Benutzern, die solche Cookies annehmen, in nicht persistent gespeicherten Cookies abgelegt. Bei Benutzern, die keine Cookies annehmen, werden die Ticketdaten in einer URL-Abfragezeichenfolge gespeichert. Am Ende der Sitzung werden die Cookies gelöscht.

Die Art des ausgegebenen Tickets bestimmt, auf welche Ressourcen der Website ein Benutzer zugreifen kann.

Sowohl persistent als auch nicht persistent gespeicherte Cookies können verschlüsselt werden. Diese Cookies enthalten folgende Daten:

  • Benutzer-ID (Ticket). Findet Einsatz bei persistent und nicht persistent gespeicherten Cookies. Ein Siteentwickler kann den Wert festlegen, der als Benutzer-ID verwendet wird. Dies kann beispielsweise entweder der Anmeldename oder die E-Mail-Adresse des Benutzers sein. Bei anonymen Benutzern kann die Benutzer-ID z. B. ein global eindeutiger Bezeichner (GUID) sein, der von einer Ihrer Active Server Pages erstellt wird. (Commerce Server enthält das Objekt GenID, mit dem Sie GUIDs erstellen können.)

  • Zeitpunkt der letzten Anmeldung. Findet Einsatz bei nicht persistent gespeicherten Cookies. Der Zeitpunkt der letzten Anmeldung bestimmt, wann sich Benutzer erneut authentifizieren müssen. Beispiel: Wenn sich ein Benutzer bei der Website registriert, den Computer ohne Abmeldung verlässt (oder eine bestimmte Zeit lang inaktiv ist), jedoch vor dem Ende des Zeitfensters zum Computer zurückkehrt, ist keine erneute Authentifizierung erforderlich. Nach dem Ende des Zeitfensters ist jedoch eine erneute Anmeldung erforderlich.

  • Zeitfenster. Wird für nicht persistent gespeicherte Cookies eingesetzt und bestimmt, wie lange (in Minuten) ein Cookie gültig ist.

Nachdem sich ein Benutzer bei einer Site abmeldet, verfällt die Authentifizierung. Siteentwickler können benutzerdefinierte Eigenschaften zu beiden Arten von Cookies hinzufügen.

Siehe auch

Cookies und Authentifizierung

Sicherheitsplanung

Working with Site Security and Filters (englisches Thema)

Verwalten der CS-Authentifizierungsressource

Commerce Server-Sicherheit: Checkliste

Sichern der Site


IIS-Authentifizierungsmethoden

Commerce Server unterstützt die folgenden vier Authentifizierungsmethoden der Internet-Informationsdienste (IIS) 5.0:

Anonyme Authentifizierung

Standardauthentifizierung

Integrierte Windows-Authentifizierung

Zertifikatauthentifizierung

Anonyme Authentifizierung

Bei der anonymen Authentifizierung erhalten Benutzer Zugriff auf die öffentlichen Bereiche der Website, ohne Benutzernamen oder Kennwort angeben zu müssen. Wenn ein Benutzer versucht, eine Verbindung zu der Website aufzubauen, weist Ihr Webserver dem Benutzer ein Windows-Benutzerkonto namens "IUSR_Computername zu, wobei Computername für den Namen des Servers steht, auf dem IIS ausgeführt wird.

Standardmäßig ist das Konto "IUSR_Computername" in der Windows-Benutzergruppe Gäste enthalten. Diese Gruppe unterliegt Sicherheitsbeschränkungen, die von NTFS-Zugriffsberechtigungen festgelegt werden. Diese bestimmen die Zugriffsebene und die Art der Inhalte, die öffentlichen Benutzern zur Verfügung stehen.

Wenn sich mehrere Sites auf dem Server befinden oder falls bestimmte Bereiche der Site unterschiedliche Zugriffsberechtigungen erfordern, können Sie mehrere anonyme Konten erstellen: eines pro Web- oder FTP-Site, Verzeichnis bzw. Datei. Wenn Sie diesen Konten verschiedene Zugriffsberechtigungen zuweisen bzw. die Konten verschiedenen Windows-Benutzergruppen zuweisen, können Sie Benutzern anonymen Zugriff auf verschiedene Bereiche Ihrer öffentlichen Web- und FTP-Inhalte gewähren.

IIS verwendet das Konto "IUSR_<Computername>" auf folgende Weise:

  1. Das Konto "IUSR_Computername" wird zur Gästegruppe des Computers hinzugefügt.

  2. Wenn eine Anforderung empfangen wird, nimmt IIS die Identität des Kontos "IUSR_Computername" an, bevor überhaupt Code ausgeführt oder auf Dateien zugegriffen wird. IIS kann die Identität des Kontos "IUSR_Computername" annehmen, da IIS Benutzername und Kennwort dieses Kontos bekannt sind.

  3. Bevor eine Seite an den Client zurückgegeben wird, überprüft IIS die NTFS-Zugriffsberechtigungen für Dateien und Verzeichnisse. Dadurch wird festgestellt, ob der Zugriff auf die jeweilige Datei über das Konto "IUSR_Computername" erlaubt ist.

  4. Falls der Zugriff zugelassen ist, wird die Authentifizierung abgeschlossen, und die Ressourcen werden dem Benutzer zur Verfügung gestellt.

  5. Wird der Zugriff nicht zugelassen, versucht es IIS mit einer anderen Authentifizierungsmethode. Falls keine andere Authentifizierungsmethode ausgewählt wurde, gibt IIS die Fehlermeldung "HTTP 403 Zugriff verweigert" an den Browser zurück.

Anmerkungen

  • Bei Aktivierung der anonymen Authentifizierung setzt IIS diese Methode immer zuerst zur Authentifizierung ein, auch wenn noch andere Methoden aktiviert sind.

  • In einigen Fällen wird der Benutzer über den Browser zur Eingabe von Benutzername und Kennwort aufgefordert.

Das Konto, das für die anonyme Authentifizierung verwendet wird, lässt sich im IIS-Snap-In ändern. Dies kann entweder auf der Webserverebene oder für einzelne virtuelle Verzeichnisse und Dateien geschehen. Das anonyme Konto muss das Benutzerrecht für lokale Anmeldungen haben. Falls das Konto nicht über das Recht Lokale Anmeldung verfügt, kann IIS keine anonymen Anforderungen bedienen. Die IIS-Installation gewährt dieses Recht speziell dem Konto "IUSR_Computername". Standardmäßig werden die Konten "IUSR_Computername" auf Domänencontrollern nicht an Gastkonten vergeben. Das Recht zur lokalen Anmeldung muss erst erteilt werden, um anonyme Anmeldungen zu ermöglichen.

Anmerkung

  • Die Notwendigkeit der Zugriffsberechtigung Lokale Anmeldung lässt sich durch ADSI (Active Directory Service Interfaces) ändern. Informationen dazu finden Sie unter "LogonMethod" im Active Server Pages-Handbuch in der IIS 5.0-Dokumentation.

Die Zugriffsberechtigungen für das Konto "IUSR_Computername" lassen sich auch in Windows ändern. Verwenden Sie dazu das Gruppenrichtlinien-Manager-Snap-In in der Microsoft Management Console (MMC). Falls das anonyme Benutzerkonto jedoch keine Zugriffsberechtigung für bestimmte Dateien oder Ressourcen hat, verweigert Ihr Webserver den Aufbau einer anonymen Verbindung für die entsprechende Ressource. Weitere Informationen dazu finden Sie unter "Festlegen von WebServerberechtigungen" in der IIS 5.0-Dokumentation.

Wichtig

  • Falls Sie das Konto "IUSR_Computername" verändern, wirken sich die Änderungen auf jede anonyme HTTP-Anforderung aus, die von einem Webserver bedient wird. Nehmen Sie daher Änderungen an diesem Konto mit Bedacht vor.

Standardauthentifizierung

Die Standardauthentifizierung ist ein weit verbreiteter Branchenstandard zur Zusammenstellung von Anmeldeinformationen. Die Standardauthentifizierung verläuft wie folgt:

  1. Der Webbrowser des Clientcomputers zeigt ein Dialogfeld an, in das Benutzer die zuvor zugewiesenen Benutzernamen und Kennwörter des Windows 2000-Kontos eingeben.

  2. Der Webbrowser versucht dann, unter Verwendung dieser Informationen eine Verbindung aufzubauen. (Das Kennwort wird vor der Übermittlung über das Netzwerk mit Base64 codiert.)

  3. Falls der Server die Anmeldeinformationen ablehnt, zeigt der Webbrowser das Anmeldedialogfeld so lange an, bis der Benutzer entweder gültige Anmeldeinformationen eingibt oder das Dialogfeld schließt.

  4. Wenn der Webserver sichergestellt hat, dass Benutzername und Kennwort mit einem gültigen Windows-Benutzerkonto übereinstimmen, wird eine Verbindung aufgebaut.

Informationen über das Einrichten von Standardauthentifizierung finden Sie unter "Aktivieren und Konfigurieren der Authentifizierung" in der IIS 5.0-Onlinedokumentation.

Der Vorteil der Standardauthentifizierung ist, dass sie Teil der HTTP-Spezifikation ist und von den meisten Browsern unterstützt wird. Der Nachteil ist jedoch, dass Webbrowser bei der Standardauthentifizierung Kennwörter unverschlüsselt übertragen. Durch die Überwachung des Netzverkehrs ließen sich diese Kennwörter ohne Mühe abfangen und mithilfe von überall erhältlichen Tools auslesen. Die Standardauthentifizierung wird daher nicht empfohlen, es sei denn, Sie können mit Gewissheit sagen, dass die Verbindung zwischen einem Benutzer und Ihrem Webserver sicher ist. Dies wäre etwa bei einer PC-Direktverbindung oder einer Standleitung der Fall.

Anmerkung

  • Die integrierte Windows-Authentifizierung hat Vorrang vor der Standardauthentifizierung. Der Browser wählt die integrierte Windows-Authentifizierung und versucht, die aktuellen Windows-Anmeldeinformationen zu verwenden, bevor der Benutzer zur Eingabe von Benutzername und Kennwort aufgefordert wird. Zurzeit wird die integrierte Windows-Authentifizierung nur von Internet Explorer ab Version 2.0 unterstützt.

Integrierte Windows-Authentifizierung

Die integrierte Windows-Authentifizierung (früher "NTLM" oder "Windows NT-Challenge/Response-Authentifizierung" genannt) ist eine sichere Authentifizierungsmethode, da Benutzername und Kennwort nicht über das Netzwerk übertragen werden. Wenn Sie die integrierte Windows-Authentifizierung aktivieren, wird über einen verschlüsselten Austausch mit dem Webserver sichergestellt, dass dem Browser des Benutzers das Kennwort bekannt ist. Dabei werden Hashtechniken eingesetzt. (Die Anmeldeinformationen durchlaufen einen einseitigen Prozess, der häufig als Hashing bezeichnet wird. Das Ergebnis davon wird "Hash" oder "Message Digest" genannt. Ein Hash kann nicht entschlüsselt werden. Das bedeutet, dass der ursprüngliche Text nicht aus dem Hash ermittelt werden kann.)

Die integrierte Windows-Authentifizierung kann entweder das Kerberos v5- oder das eigene Challenge/Response-Authentifizierungsprotokoll verwenden. Falls Verzeichnisdienste auf dem Server installiert sind und der Browser mit dem Kerberos v5-Authentifizierungsprotokoll kompatibel ist, wird dieses zusammen mit dem Challenge/Response-Protokoll eingesetzt. Ansonsten wird nur das Challenge/Response-Protokoll verwendet.

Das Kerberos v5-Authentifizierungsprotokoll ist ein Feature der Distributed Services-Architektur von Windows 2000. Für den Erfolg einer Kerberos v5-Authentifizierung müssen sowohl Client als auch Server eine vertrauenswürdige Verbindung zu einem Schlüsselverteilungscenter (Key Distribution Center, KDC) haben und mit den Verzeichnisdiensten kompatibel sein. Weitere Informationen über dieses Protokoll finden Sie in der Windows 2000-Dokumentation.

Die integrierte Windows-Authentifizierung verläuft wie folgt:

  5. Im Gegensatz zur Standardauthentifizierung werden Benutzer am Anfang nicht zur Eingabe von Benutzername und Kennwort aufgefordert. Stattdessen werden bei der integrierten Windows-Authentifizierung die aktuellen Windows-Benutzerinformationen auf dem Clientcomputer verwendet.

    Anmerkung

    • Internet Explorer ab Version 4.0 kann bei Bedarf so konfiguriert werden, dass auch am Anfang eine Abfrage nach Benutzerinformationen stattfindet. Weitere Informationen dazu finden Sie in der Internet Explorer-Dokumentation.
  6. Falls bei diesem anfänglichen Authentifizierungsaustausch der Benutzer jedoch nicht identifiziert werden kann, wird er zur Eingabe von Benutzername und Kennwort eines Windows-Benutzerkontos aufgefordert. Der Browser verarbeitet diese Anmeldeinformationen dann mithilfe der integrierten Windows-Authentifizierung.

  7. Internet Explorer zeigt dieses Dialogfeld so lange an, bis der Benutzer gültige Anmeldeinformationen eingibt oder das Dialogfeld schließt.

Obwohl die integrierte Windows-Authentifizierung sicher ist, unterliegt sie dennoch drei Beschränkungen:

  1. Nur Microsoft Internet Explorer ab Version 2.0 unterstützt diese Authentifizierungsmethode.

  2. Integrierte Windows-Authentifizierung ist nicht über HTTP-Proxyverbindungen möglich.

  3. Zusätzliche TCP-Anschlüsse müssen in dem Firewall geöffnet werden.

Die integrierte Windows-Authentifizierung ist daher am besten für eine Intranetumgebung geeignet, in der Client- und Webservercomputer in derselben Domäne sind und Administratoren sicherstellen können, dass alle Benutzer über Microsoft Internet Explorer ab Version 2.0 verfügen.

Zertifikatauthentifizierung

Sie können auch die SSL-Sicherheitsfunktionen des Webservers für zwei Authentifizierungsmethoden einsetzen. Mit einem Serverzertifikat können Benutzer Ihre Website authentifizieren, bevor sie persönliche Informationen wie z. B. eine Kreditkartennummer übermitteln. Außerdem können Sie über Clientzertifikate Benutzer authentifizieren, die Informationen von der Website anfordern. Bei SSL werden zur Authentifizierung die Inhalte der verschlüsselten digitalen Informationen überprüft, die der Webbrowser des Benutzers während des Anmeldevorgangs überträgt. (Benutzer erhalten Clientzertifikate von einer wechselseitig vertrauenswürdigen dritten Organisation.) Serverzertifikate enthalten gewöhnlich Informationen über das Unternehmen sowie über die zertifikatausgebende Organisation. Clientzertifikate enthalten gewöhnlich Informationen über den Benutzer sowie über die zertifikatausgebende Organisation.

Zuordnung von Clientzertifikaten

Sie haben die Möglichkeit, Clientzertifikate bestimmten Benutzerkonten auf dem Webserver zuzuordnen. Nach dem Erstellen und Aktivieren einer solchen Zertifikatzuordnung ordnet der Webserver Benutzer, die sich mit einem Clientzertifikat anmelden, automatisch den entsprechenden Windows-Benutzerkonten zu. Auf diese Weise können Sie Benutzer, die sich mit Clientzertifikaten anmelden, automatisch authentifizieren, und zwar ohne Einsatz von Standardauthentifizierung, Message Digest- oder Windows-Authentifizierung. Dabei können Sie entweder ein oder mehrere Clientzertifikate einem Windows-Benutzerkonto zuordnen. Beispiel: Auf Ihrem Server sind mehrere verschiedene Abteilungen oder Geschäfte, die alle eigene Websites haben. In diesem Fall könnten Sie mit einer n:1-Zuordnung sämtliche Clientzertifikate einer Abteilung bzw. eines Geschäfts der jeweiligen Website zuordnen. Auf diese Weise hätten nur die Kunden der entsprechende Site Zugang. Weitere Informationen dazu finden Sie unter "Zuordnen von Clientzertifikaten zu Benutzerkonten" in der IIS 5.0-Dokumentation.


Zusätzliche Sicherheitsinformationen

In der Commerce Server 2000-Hilfe finden Sie folgende sicherheitsrelevante Themen:

  • Cookies und Authentifizierung. Beschreibt Commerce Server-Cookies und wie Commerce Server diese in einem Webfarmszenario einsetzt.

  • Sicherheitsplanung. Gibt Anhaltspunkte bei Fragen zur Sicherheitsimplementierung.

  • Working with Site Security and Filters (englisches Thema). Bietet ausführliche Informationen über das Entwickeln einer Site mit AuthFilter.

  • Site Security Objects (englisches Thema). Beschreibt die Verwendung der Objekte AuthManager und BizDeskSecurity. Hier finden Sie Beispielcode für die Sitesicherheits-Objekte.

  • Verwalten der CS-Authentifizierungsressource. Beschreibt den Einsatz der CS-Authentifizierungsressource zum Aufbau bzw. zur Änderung der Authentifizierungsmethode der Commerce Server-Site. Liefert außerdem Login.asp-Codebeispiele, mit denen AuthFilter für die Lösungssites "Retail" und "Supplier" aktiviert werden kann.

  • Commerce Server-Sicherheit: Checkliste. Enthält eine Liste der Commerce Server-spezifischen Sicherheitsfragen, z. B. die Sicherung von Commerce Server Business Desk-Sitzungen, und erläutert deren Implementierung.

  • Sichern der Site. Erklärt, wie Commerce Server-Sites gesichert werden können, einschließlich der Zugriffsbeschränkung auf die Site, auf das Business Desk-Modul und die Verwaltungsdatenbank.

Zusätzliche Informationen über Sicherheitsfragen finden Sie in den folgenden Ressourcen:

  • Commerce Server 2000 Resource Kit. Beschreibt die Sicherheitsimplementierung beim Entwickeln mit einer Commerce Server-Lösungssite. Das Commerce Server 2000 Resource Kit ist über Microsoft Press erhältlich.

  • Die Onlinedokumentation der Internet-Informationdienste (IIS)

  • Microsoft Windows 2000 Server Resource Kit

  • Die Microsoft-Sicherheitssite unter http://www.microsoft.com/security/ (englische Website)

  • Die Windows-Sicherheitssite von Microsoft unter http://www.microsoft.com/ntserver/security/default.asp (englische Website)


Planen der Commerce Server-Installation

Sie müssen einige Planungsentscheidungen treffen, bevor die Microsoft Commerce Server 2000-Installation entwickelt und eingesetzt werden kann. Sie sollten diese Planungsfragen sorgfältig durchdenken und die Zusammenhänge begreifen, um Commerce Server erfolgreich zu entwickeln und einzusetzen. Lesen Sie dazu auch andere Bereiche der Commerce Server 2000-Hilfe.

Die Planung der Commerce Server-Implementierung ist die erste und vielleicht wichtigste Phase in dem Zyklus von Planung, Entwicklung, Einsatz und Verwaltung. Denn eine sorgfältige Planung Ihrer Site, einschließlich der Berücksichtigung zukünftigen Zuwachses, kann späteren teuren und zeitraubenden Modifikationen vorbeugen.

Commerce Server umfasst fünf eng miteinander verbundene Subsysteme. Zusätzlich zur Planung dieser Subsysteme müssen Sie die Verwaltung Ihrer Implementierung planen. Die Themen dieses Abschnitts behandeln die Planung für jedes Subsystem.

Dieser Abschnitt beinhaltet folgende Themen:

  • Planen der Administrations- und Verwaltungstools. Gibt Empfehlungen zu Fragen der Administration und Verwaltung Ihrer Site.

  • Planen des Business Analytics-Systems. Gibt Empfehlungen zum Datenzugriff und zur Aktualisierung der Daten.

  • Planen der Geschäftsprozesspipelines. Gibt Empfehlungen zu Fragen der Pipelinefunktion.

  • Planen des Produktkatalogsystems. Gibt Empfehlungen zu Fragen des Produktkatalogsystems.

  • Planen des Profilsystems. Gibt Empfehlungen zu Fragen des Profilsystems.

  • Planen des Zielgruppenadressierungssystems. Gibt Empfehlungen zu Fragen des Zielgruppenadressierungssystems.

  • Planen der Sitearchitektur und -sicherheit. Gibt Empfehlungen zu Fragen Ihrer Sitearchitektur und -sicherheit.

  • Planen der Bereitstellung. Gibt Empfehlungen zur Planung der Bereitstellung Ihrer Site.


Planen der Administrations- und Verwaltungstools

Commerce Server 2000 beinhaltet drei Tools zur Verwaltung und Administration Ihrer Installation: Commerce Server Business Desk, Partnerservice und Commerce Server-Manager.

Business Desk dient zur Konfiguration vieler Siteoptionen und zur Verwaltung des täglichen Marketing sowie zur Analyse der Siteaktivität. Sie müssen einige Entscheidungen über Ihre Site treffen, um die Verwendung von Business Desk zu optimieren.

Die folgende Tabelle enthält einige Fragen, die Sie bei der Planung der Administrations- und Verwaltungstools beantworten sollten.

Planungsfrage | Empfehlung
Wird Ihre Site hauptsächlich Kunden oder Geschäftspartnern zur Verfügung stehen? Falls Sie eine Site für Kunden aufbauen, sollten Sie die Entwicklung mit der Retail-Lösungssite beginnen, da diese den Kundendienst enthält, der den Benutzern Zugriff auf ihre Profilinformationen gewährt.

Falls Sie eine Site für Geschäftspartner aufbauen, sollten Sie die Entwicklung mit der Supplier-Lösungssite beginnen, da diese den Partnerservice enthält, der den Geschäftspartnern Zugriff auf ihre Konten gewährt.

Die Lösungssites stehen unter folgender Adresse zur Verfügung: http://www.microsoft.com/germany/servers/commerceserver/2000/solutionsites.htm.
Wenn Sie mit Geschäftspartnern interagieren, müssen Sie dann auch Geschäftsdokumente mit ihnen austauschen? | Sie sollten Microsoft BizTalk Server 2000 in Ihre Implementierung einbinden, falls Sie Geschäftsdokumente mit Geschäftspartnern austauschen wollen.
Welche Zahlungsoptionen soll Ihre Site unterstützen? | Wenn Sie Kreditkartenunterstützung planen, müssen Sie Kontakt zu einer Bank aufnehmen.
Welche Währungen soll Ihre Site unterstützen? | Wenn Ihre Site Informationen in mehreren Währungen anzeigen soll, müssen Sie das Produktkatalogsystem erweitern.
Werden Businessmanager auf große Datenmengen zugreifen? | Einige Features der Siteverwaltung können bei großen Datenmengen nicht über Business Desk verwendet werden. Wenn Ihr Produktkatalog z. B. über 100.000 Einträge enthält, müssen Sie Aktualisierungen wahrscheinlich mithilfe eines Skripts veröffentlichen und nicht über die von Business Desk bereitgestellten Module. Sie sollten die Kapazitätsanforderungen von Business Desk planen.

Siehe auch

Localizing Currencies (englisches Thema)

Verwenden von BizTalk Server und Commerce Server

Planen von Kapazität und Leistung

Konfigurieren der Eigenschaften der Anwendungsstandardkonfigurations-Ressource


Planen des Business Analytics-Systems

Verwenden Sie das Commerce Server 2000-Datawarehouse, um tägliche operative Daten über Benutzer zu sammeln, die Ihre Site besuchen, einschließlich Benutzerprofil-, Transaktions- und Klickverlaufsdaten. Verwenden Sie die Analysemodule, um Daten zu analysieren, z. B. um Benutzertrends zu identifizieren oder um die Effektivität einer Kampagne zu analysieren. Davon ausgehend können Sie Ihre Site anpassen, um spezifische Benutzergruppen zielgerichtet anzusprechen, spezielle Produkte anzubieten usw.

Die folgende Tabelle enthält einige Fragen, die Sie bei der Planung des Business Analytics-Systems beantworten sollten.

Planungsfrage | Empfehlung
Wie beeinflussen Datenanalysen die Geschäftsentscheidungen, die Sie in Bezug auf Ihre Site treffen? Welche Berichte benötigen Sie, um diese Entscheidungen zu treffen? | Informationen zu den im Business Analytics-System verfügbaren Berichte finden Sie unter Commerce Server-Berichte. Falls die Berichte Ihren Anforderungen nicht genügen, lesen Sie unter Creating Custom Reports (englisches Thema) nach, um mehr über die Modifikation bestehender Berichte zu erfahren. Es gibt auch Berichtlösungen einiger Drittanbieter, die mit dem Business Analytics-System zusammenarbeiten
Wer benötigt in Ihrer Organisation Zugriff auf die Daten? Wie oft werden Berichte abgefragt, und wie viele Details sollten diese enthalten? | Sie sollten einen Zeitplan für die Ausführung der Berichte erstellen. Damit die Daten nicht veralten, müssen Sie statische Berichte regelmäßig ausführen. Sie sollten die Ausführung der Berichte zusammen mit den Tasks der Data Transformation Services (DTS) planen.
Wie oft werden Ihre Webserverprotokolle verarbeitet? | Ihre Antwort auf diese Frage hängt hauptsächlich von Umfang und Art der gespeicherten Protokolldaten ab. Je häufiger Sie die Protokolle erstellen, desto kleiner bleiben sie. Größere Protokolldateien bieten umfangreichere Datensätze, benötigen aber länger in der Verarbeitung. Sie sollten die passende Ausführungsfrequenz in einer Testumgebung ermitteln und anschließend auf die Produktionsumgebung anwenden.

Siehe auch

Commerce Server-Berichte

Benutzerdefinierte Berichte

Datawarehouse

Working with the Data Warehouse (englisches Thema)


Planen der Geschäftsprozesspipelines

Mit Pipelines können eine oder mehrere Phasen eines Geschäftsprozesses definiert und miteinander verbunden werden. Diese können dann nacheinander ausgeführt werden, um eine bestimmte Aufgabe zu erledigen. Jede Phase einer Pipeline beinhaltet eine oder mehrere Pipelinekomponenten, sogenannte COM (Component Object Model)-Objekte, die für alle spezifischen Anforderungen einer Site konfiguriert werden können.

Siteentwickler verwenden diese Infrastruktur, um zwei Pipelinemodelle zu implementieren: die Order Processing Pipeline (OPP) und die Pipeline "Inhaltsauswahl" (Content Selection Pipeline, CSP).

Die folgende Tabelle enthält einige Fragen, die Sie bei der Planung von Geschäftsprozesspipelines beantworten sollten.

Planungsfrage | Empfehlung
Erfüllen die Commerce Server-Pipelinekomponenten Ihre Anforderungen? Falls nicht, möchten Sie ihre eigenen Komponenten erstellen oder diese von einem Drittanbieter für Pipelines erwerben? | Testen Sie die Funktionen der Commerce Server 2000-Pipelines. Stellen Sie fest, ob die Verarbeitungsphasen Ihren Anforderungen genügen. Falls nicht, erweitern Sie entweder die Pipelines selbst, oder erwerben Sie Pipelinekomponenten von einem Drittanbieter. Sie können z. B. für komplexe Steuer- und Versandkostenberechnungen oder Kreditkartenbearbeitung Pipelinekomponenten von Drittanbietern verwenden.

Siehe auch

Working with Pipelines (englisches Thema)

Building Pipeline Components (englisches Thema)

Extending the Content Selection Framework (englisches Thema)


Planen des Produktkatalogsystems

Verwenden Sie das Produktkatalogsystem, um Produktkataloge zu erstellen, Produkte hinzuzufügen und Produktdaten zu aktualisieren. Dieses System bietet sowohl Import- als auch Exportfunktionen und erlaubt Ihnen, Katalogschemas zu definieren und zu modifizieren.

Die folgende Tabelle enthält einige Fragen, die Sie bei der Planung des Produktkatalogsystems beantworten sollten.

Planungsfrage | Empfehlung
Planen Sie, die Informationen des Produktkatalogsystems mit einem Offlinekatalog zu synchronisieren? | Falls Sie Informationen des Produktkatalogsystems mit Ihrem Offlinekatalog synchronisieren, müssen Sie benutzerdefinierte Software dafür entwickeln. Falls Sie dieses Feature benötigen, setzen Sie sich mit Ihrem Systemadministrator in Verbindung.
Welches Organisationsschema ist das beste für Ihren Katalog? | Das Produktkatalogsystem ist flexibel genug für verschiedene Schemas. Wenn Sie einen neuen Katalog entwerfen, stellen Sie sicher, dass das Schema genügend Erweiterungsmöglichkeiten beinhaltet.
Verwenden Sie komplexe Preismodelle, oder haben Sie andere Ansprüche, die über die Funktionen des Produktkatalogsystems hinausgehen? | Ist dies der Fall, so sollten Sie ein Katalogsystem eines Drittanbieters in Betracht ziehen. Einige Katalogsystemhersteller bieten Produkte an, die Commerce Server unterstützen und zusätzliche Funktionen bereitstellen. Sie können auch Ihr Produktkatalogsystem durch selbsterstellte Pipelinekomponenten ergänzen, um komplexe Preisberechnungen ausführen zu können.
Möchten Sie verschiedenen Benutzergruppen benutzerdefinierte Kataloge zuweisen? | Erstellen Sie einen Basiskatalog, der anschließend basierend auf Benutzereigenschaften modifiziert werden kann. Die Planung dieser benutzerdefinierten Kataloge sollte zusammen mit der Planung des Profilsystems erfolgen.
Welche Katalogdaten möchten Sie ins Datawarehouse exportieren? | Exportieren Sie die Informationen, die zur Erstellung jener Berichte erforderlich sind, die Sie bei der Planung des Business Analytics-Systems identifiziert haben.
Möchten Sie Kataloge mit Ihren Geschäftspartnern austauschen? | Wenn dies der Fall ist, integrieren Sie Microsoft BizTalk Server 2000 in Ihren Plan. Damit besteht die Möglichkeit, Kataloge auszutauschen.

Siehe auch

Informationen zu Katalogen

Business Desk-Kataloge

Verwenden von BizTalk Server und Commerce Server

Integrating a Third-Party Product Catalog (englisches Thema)


Planen des Profilsystems

In Commerce Server 2000 verwenden Sie Profile, um Informationen über die Besucher Ihrer Website zu sammeln. Die Daten eines solchen Profils kommen von verschiedenen Datenquellen, z. B. von Webprotokolldateien oder Commerce Server-Datenbanken. Die Profildaten werden zur Analyse in Datawarehouse importiert. Mithilfe der Ergebnisse können Sie bestimmte Inhalte bestimmten Benutzergruppen zuweisen.

Die folgende Tabelle enthält einige Fragen, die Sie bei der Planung des Profilsystems beantworten sollten.

Planungsfrage | Empfehlung
Welche Geschäftsentscheidungen wollen Sie von den gesammelten Profilsysteminformationen abhängig machen? | Beginnen Sie die Planung des Profilsystems mit der Beantwortung dieser Frage. Von der Antwort hängen die übrigen Entscheidungen bei der Planung dieses Systems ab.
Für welche Art von Geschäftseinheiten (z. B. Kunden, Firmen, Produkte, Aufträge oder Konten) speichern Sie derzeit Informationen? Für welche dieser Einheiten möchten Sie Informationen im Profilsystem speichern? | Das Profilsystem ist flexibel genug, um Informationen eines breiten Spektrums von Geschäftseinheiten zu speichern. Das System kann diese Informationen aus verschiedenen Datenquellen sammeln. Das System wird durch die Festlegung der Einheiten und Datenquellen eingerichtet. Sie sollten diese Planung mit dem Datenbankadministrator koordinieren, um sicherzustellen, dass die festgelegten Dateneinheiten mit den Einheiten im vorhandenen Datenbankverwaltungssystem übereinstimmen.
Welche Profilinformationen möchten Sie in Datawarehouse exportieren? | Sie müssen die Informationen exportieren, die sie zum Erstellen der Berichte verwenden, die Sie als Antwort auf die Frage unter Planen des Business Analytics-Systems identifiziert haben.
Welche Informationen möchten Sie über Benutzer einholen? | Sie können entweder Informationen von Benutzern direkt einholen, oder Sie können die Vorhersageressource verwenden, um die benötigten Informationen zu ergänzen (implizite Zielgruppenadressierung).
Welchen Datenspeicher möchten Sie für die Speicherung der Profile verwenden? | Wenn Sie eine Authentifizierung der Benutzer mit dem Sicherheitskontext von Microsoft Windows 2000 benötigen, müssen Sie einige Profilinformationen in Microsoft Active Directory speichern. Wenn dies nicht notwendig ist, verwenden Sie Microsoft SQL Server 2000, um Profildaten zu speichern.
Bestehen bereits Benutzerkonten, die Sie in das Profilsystem übertragen müssen? Müssen Sie alle Attribute des bestehenden Systems übertragen? | Falls Sie Benutzerkonten vom Microsoft Site Server 3.0 Membership-Verzeichnis übertragen, verwenden Sie dazu die Directory Migration Toolbox. Beachten Sie, dass das Membership-Verzeichnis nach der Migration nicht mehr zur Verfügung steht.

Siehe auch

Informationen zur Profilressource

Ausführen der Profilressource

Ausführen der Vorhersageressource

Migrating the Membership Directory (englisches Thema)


Planen des Zielgruppenadressierungssystems

Das Zielgruppenadressierungssystem wird zur Übermittlung von Inhalten an einen oder mehrere Benutzer verwendet. Beachten Sie bei der Planung des Zielgruppenadressierungssystems, dass dieses vier verschiedene Subsysteme beinhaltet.

Dieser Abschnitt beinhaltet folgende Themen:

  • Planen des Content Selection Framework

  • Planen von Direct Mailer

  • Planen der Ausdrucksbewertung

  • Planen der Vorhersageressource


Planen des Content Selection Framework

Content Selection Framework (CSF) ist ein Framework, dass auf der Commerce Server 2000-Pipeline-Architektur basiert. CSF wird hauptsächlich für Kampagnenmanagement verwendet (Bereitstellung von Anzeigen und Promotions). Dennoch ist es flexibel genug, beliebige Inhalte zu hierarchisieren, auszuwählen und zu planen.

Die folgende Tabelle enthält einige Fragen, die Sie bei der Planung Ihrer Onlinekampagnen beantworten sollten.

Planungsfrage | Empfehlung
Möchten Sie Kampagnen für bestimmte Benutzergruppen durchführen? Wenn ja, welche Benutzerattribute möchten Sie dazu heranziehen? | Verwenden Sie das Business Analytics-System, um bestimmte Kaufmuster in Ihrer Site zu analysieren und diese Informationen in das Zielgruppenadressierungssystem einzubinden. Die Planung in diesem Bereich ist ein fortlaufender Prozess.
Möchten Sie Werbung an andere Organisationen verkaufen? Wenn ja, wie sieht die Preisliste für die Werbung aus? | Stellen Sie eine Preisliste zusammen, falls Sie nicht bereits eine besitzen. Diese Informationen benötigen Sie, wenn Sie die Kampagnen in Commerce Server Business Desk einrichten.
Wer trifft Entscheidungen über Preisnachlasslisten? Welche Richtlinien sollen für diese Entscheidungen gelten? | Koordinieren Sie die Preisnachlässe mit den Werbekampagnen, um eine maximale Effektivität zu erzielen.
Welche Informationen benötigen Sie vom Business Analytics-System, um Preisentscheidungen zu treffen? | Legen Sie den Informationsbedarf für CSF fest, und verwenden Sie diese Festlegung, um die Berichte des Business Analytics-Systems zu beurteilen und ggf. zu modifizieren.
Sollen Ihre Kampagnen die Vorhersageressource verwenden? Wenn ja, welche Schlüsselbenutzersegmente wollen Sie zielgerichtet ansprechen? | Sammeln Sie in Commerce Server-Datawarehouse Informationen über das Benutzerverhalten, verwenden Sie die Vorhersageressource, um Benutzersegmente zu identifizieren, und binden Sie diese Informationen in Ihre Kampagnen ein.

Siehe auch

Extending the Content Selection Framework (englisches Thema)

Ausführen der Vorhersageressource


Planen von Direct Mailer

Commerce Server Direct Mailer wird zur Verwaltung von Benutzeradressenlisten und zur Koordinierung des E-Mail-Versands an Mitglieder verwendet. Die von Ihnen erstellte E-Mail kann mithilfe von Active Server Pages (ASP) personalisiert werden, oder es kann eine statische Datei sein. Sie können das Listen-Manager-Modul verwenden, um E-Mail-Adressen aus einer Textdatei oder einer Microsoft SQL Server-Datenbank in eine Adressdatenbank zu importieren.

Die folgende Tabelle enthält einige Fragen, die Sie bei der Planung Ihrer Direktsendungskampagnen beantworten sollten.

Planungsfrage | Empfehlung
Wer soll die von Ihnen erstellten Direktsendungen erhalten? Nach welchen Regeln soll die Direktsendungsliste definiert werden? | Verwenden Sie das Business Analytics-System, um die gewünschten Benutzersegmente zu identifizieren, und erstellen Sie entsprechende Listen.
Wie können Ihnen Benutzer mitteilen, dass sie von der Direktsendungsliste entfernt werden wollen? | Schließen Sie in Ihre Direktsendungen immer die Möglichkeit der Abonnementkündigung ein.
Wie oft wollen Sie Direktsendungen versenden? | Stellen Sie einen Plan auf, und entwickeln Sie ein Skript, um den Prozess zu automatisieren.
Soll die Direktsendung personalisiert werden? Wenn ja, welche Benutzerprofilinformationen möchten Sie in die Personalisierung einschließen? | Personalisierte Sendungen sind wirkungsvoller. Entwerfen Sie Benutzerprofile, um die für die Direktsendungen zu verwendenden Attribute einzubinden.

Siehe auch

Informationen zu Direct Mailer

Direct Mailer-Pipeline

Ausführen von Direct Mailer

Entwickeln von Direktsendungsinhalten


Planen der Ausdrucksbewertung

Die Ausdrucksbewertung wird verwendet, um Geschäftsregeln zum Versand von personalisierten Anzeigen, Preisnachlässen und Inhalten zu erstellen. Diese Regeln stellen Bedingungen dar.

Die folgende Tabelle enthält einige Fragen, die Sie bei der Planung der Ausdrucksbewertung beantworten sollten.

Planungsfrage | Empfehlung
Welches Erlebnis wollen Sie den Benutzern vermitteln? Welche Geschäftsregeln benötigen Sie, um dieses Erlebnis zu implementieren? | Sie müssen Ausdrücke erstellen, die in der Ausdrucksbewertung bewertet werden, um das gewünschte Benutzererlebnis zu erhalten. Legen Sie Ihren Ausdrücken die Personalisierungsanforderungen zugrunde, die Sie für das Zielgruppenadressierungssystem entwickelt haben. Falls Sie z. B. Inhalte abhängig von einem sich darauf beziehenden URL anzeigen wollen, können Sie den Ausdruck "Verweiser ist gleich URL" erstellen.
Welche Sitebegriffe werden zur Erstellung der erforderlichen Geschäftsregeln benötigt? | Erstellen Sie Sitebegriffe, um die von Ihnen identifizierten Ausdrücke zu unterstützen. Im vorangegangenen Beispiel müssten Sie z. B. den Sitebegriff "Verweiser" entwickeln.

Siehe auch

Ausdrucks-Generator

Ausdrucksbasierte Zielgruppenadressierung

Zielgruppenadressierung einer Anzeige oder eines Preisnachlasses

Hinzufügen eines Sitebegriffs


Planen der Vorhersageressource

Die Vorhersageressource wird hauptsächlich zur Unterstützung bestimmter Datenanalysen verwendet, z. B. bei Transaktions- oder Webprotokolldaten. Die Vorhersageressource wird außerdem verwendet, um Onlinebenutzern Produkte zu empfehlen und um fehlende Benutzerprofileigenschaften zu ergänzen.

Bevor Sie die Vorhersageressource verwenden, müssen Sie überprüfen, ob die Analyseberichte die gewünschten Informationen enthalten. Sie sollten über Daten von wenigstens einigen Tausend Benutzern verfügen, bevor Sie Modelle mithilfe der Vorhersageressource erstellen.

Die folgende Tabelle enthält einige Fragen, die Sie bei der Planung der Vorhersageressource beantworten sollten.

Planungsfrage | Empfehlung
Wollen Sie Produktempfehlungen und erweiterte Zielgruppenadressierung verwenden? | Binden Sie die Vorhersageressource durch die Erstellung von Modellen des Benutzerverhaltens in Ihre Site ein, nachdem Sie ausreichend Anfangsdaten in Commerce Server-Datawarehouse gesammelt haben.
Welches sind die entscheidenden Benutzersegmente, die Sie identifizieren müssen, um sinnvolle Empfehlungen machen zu können? | Verwenden Sie die Vorhersageressource, um sinnvolle Segmente zu identifizieren, die Sie anschließend im Segment Viewer anzeigen können.
Möchten Sie Rückschlüsse zur Erweiterung der Benutzerprofildaten verwenden, oder möchten Sie Empfehlungen einzig auf Basis der von Benutzern gelieferten Daten machen? | Sie können die Vorhersageressource verwenden, um unvollständige Benutzerdaten (z. B. die von Gastbenutzern) zu ergänzen. Wenn Sie Benutzereigenschaften erschließen wollen, verwenden Sie den Segment Viewer in Business Desk zusammen mit der Abhängigkeitsnetzwerksansicht in Commerce Server-Manager, um die entscheidenden Benutzerattribute herauszufiltern, die Sie für Vorhersagen verwenden wollen. Anschließend können Sie diese Attribute zur Zielgruppenadressierung von Inhalten an Benutzer mit ähnlichen Eigenschaften verwenden.

See Also

Informationen zur Vorhersageressource

Ausführen der Vorhersageressource

Predictor Schema (englisches Thema)

Prediction Objects (englisches Thema)


Planen der Sitearchitektur und -sicherheit

Die Planung der allgemeinen Architektur Ihrer E-Commerce-Präsenz umfasst auch eine Wachstumsplanung sowie das Setzen von Performancemaßstäben und Sicherheitsansprüchen. Dieser Abschnitt beschreibt einige Planungsüberlegungen für jeden dieser Bereiche.

Anmerkungen

  • Die Sitearchitektur für Commerce Server 2000 umfasst entweder Microsoft SQL Server 2000 oder SQL Server 7.0.

  • Die Volltextsuche von SQL Server 7.0, die vom Volltextindex des Produktkatalogsystems verwendet wird, kann nicht in einer Microsoft Windows NT-Clusterumgebung verwendet werden.

Dieser Abschnitt beinhaltet folgende Themen:

  • Planen von Kapazität und Leistung

  • Wachstumsplanung

  • Planen der Integration bestehender Systeme

  • Planen hoher Verfügbarkeit

  • Sicherheitsplanung

  • Planen der Integration von Active Directory


Planen von Kapazität und Leistung

Inwiefern Variablen des Sitedesigns, der Programmstruktur, des Benutzerverhaltens und der Sitearchitektur die Leistung der Site beeinflussen, ist schwer vorherzusagen. Daher ist es wichtig, Kapazität und Leistung der Site zu planen und zu testen, bevor diese "live" in eine Produktionsumgebung integriert wird.

Wenn Sie eine bestehende Site migrieren, können Sie anhand der bestehenden Daten eine Analyse für die Planung der neuen Site vornehmen. Wenn Sie eine Site neu erstellen, verwenden Sie die im Commerce Server 2000 Resource Kit enthaltenen Entwurfsrichtlinien, um eine Testsite einzurichten, die Sie vor dem eigentlichen "Live"-Start zunächst testen und optimieren können.

Leistungsplanung und Kapazitätsplanung sind eng miteinander verbunden, gehen jedoch von unterschiedlichen Perspektiven aus. Leistungsplanung bezieht sich auf den technischen Aspekt einer Site, z. B. auf den Seitendurchsatz von Active Server Pages (ASP) bzw. auf die ASP-Wartezeit. Kapazitätsplanung bezieht sich auf die Geschäftsperspektive, d. h. auf die Maximierung der Benutzerzahl, die die Site gleichzeitig verwalten kann.

Von beiden Möglichkeiten ist die Leistungsplanung die direktere. Es ist relativ einfach, eine bestimmte Anzahl von Testtransaktionen pro Sekunde zu ermitteln und Vergleiche mit anderen E-Commerce-Sites anzustellen. Nähere Information über Tools zur Leistungsmessung finden Sie unter Verwenden von Leistungsüberwachungstools. Weitere Tools sind im Commerce Server 2000 Resource Kit enthalten.

Die Analyse der Benutzerkapazität ist etwas komplexer. Bevor Sie die maximale Benutzerkapazität vorhersagen können, müssen Sie zunächst das Benutzerverhalten ermitteln. Anschließend verwenden Sie die Benutzerprofilinformationen zusammen mit den Leistungseigenschaften, um die Kapazität zu berechnen. Das Benutzerverhalten variiert von Site zu Site, je nachdem, wie aufwändig die Einkaufsszenerie gestaltet ist (Seitendesign, Sitedesign und Antwortzeit) und welche Produkte innerhalb welcher Produktpalette angeboten werden. Unterschiede im Benutzerverhalten können z. B. bewirken, dass eine Site 1000 Benutzer unterstützt, während eine andere Site, die auf einer identischen Plattform installiert ist, nur 200 Benutzer unterstützt.

Weitere Informationen zur Leistungsanalyse und Kapazitätsplanung finden Sie in dem Whitepaper Sizing Guidelines for Windows 2000 Domain Controller and Global Catalog Server (in englischer Sprache) unter http://www.microsoft.com/WINDOWS2000/library/planning/management/dcsize.asp.

Die folgende Tabelle enthält einige Fragen, die Sie bei der Leistungsplanung beantworten sollten.

Planungsfrage | Empfehlung
Welches sind die Schlüsselfaktoren für die Leistungsmessung? | Wählen Sie die Faktoren, die Ihre Erwartungen an das Benutzererlebnis am besten widerspiegeln. Wenn Sie z. B. wollen, dass Benutzer den Katalog möglichst schnell durchblättern können, messen Sie die Geschwindigkeit, mit der eine Anforderung für die Katalogsuche beantwortet wird.
Welches sind die wichtigsten Verwendungsprofile für die Leistungsmessung? | Schätzen Sie die typische Verbindungsart der Benutzer und die typische Sitebelastung ab. Beginnen Sie mit diesem Verwendungsprofil in der Testumgebung, und überprüfen Sie später, ob die Profile korrekt sind, wenn Sie Verwendungsinformationen in Commerce Server-Datawarehouse gesammelt haben.
Welche Tools und Ressourcen möchten Sie verwenden, um die Leistung Ihrer Site zu messen? | Sehen Sie sich die Leistungstools im Commerce Server 2000 Resource Kit an, um festzustellen, ob sie Ihren Anforderungen entsprechen.
Wie viele Server benötigen Sie für Ihre Site? Wie sollen sie konfiguriert werden? | Sehen Sie sich zuerst die Konfigurationsinformationen des Verwendungsszenarios im Commerce Server 2000 Resource Kit an. Vergleichen Sie diese Szenarien mit den Anforderungen Ihrer Site, und modifizieren Sie die Konfigurationen entsprechend Ihren Bedürfnissen.
Wie schätzen Sie die Steigerungsrate bezüglich der Siteverwendung ein? | Kalkulieren Sie in den ersten Phasen der Sitebereitstellung Überschusskapazitäten ein. Vergleichen Sie in regelmäßigen Abständen das tatsächliche Wachstum mit Hochrechnungen.
Wie soll die Belastung einzelner Server innerhalb Ihrer gesamten Site ausgeglichen werden? | Informationen zum Netzwerklastenausgleich (NLB) finden Sie im Windows 2000 Resource Kit und im Commerce Server 2000 Resource Kit.

Siehe auch

Optimieren von Commerce Server

Verwenden von Leistungsüberwachungstools

Überwachen von Commerce Server-Sites


Wachstumsplanung

Ihr anfängliches Sitedesign sollte für zukünftige Erweiterungen ausgelegt sein. Eine gut geplante Site lässt sich erweitern bzw. skalieren, um sie kosteneffektiv an erhöhten Siteverkehr anpassen und die Leistung erhalten zu können.

Um das zukünftige Wachstum Ihrer Site zu planen, sollten Sie Ihre Sitearchitektur auf zwei Hauptebenen ansiedeln: einerseits Front-End-Webserver, andererseits Back-End-Systeme, auf denen Daten gespeichert werden und Ihre Geschäftsverarbeitungssysteme laufen. Jede dieser Ebenen kann in weitere Unterebenen aufgeteilt werden, um den Wachstumshochrechnungen Ihrer Site zu entsprechen. Aufgrund der Flexibilität von Commerce Server 2000 können Sie eine Architektur wählen, die Ihren Bedürfnissen am besten entspricht.

Typischerweise wird zuerst die Back-End-Ebene vertikal angepasst, z. B. durch Aufrüsten des Servers und Erweitern des Massenspeichers. Anschließend kann auch die Datenebene funktional auf mehrere Server aufgeteilt werden. Beispielsweise kann das Commerce Server-Datawarehouse auf einem Server und die Profildatenbank auf einem anderen gespeichert werden. Mit Commerce Server können verschiedene Funktionen bereits beim Setup auf verschiedene Server aufgeteilt werden. Später ist dies mit dem Commerce Server-Manager möglich. Bei sehr großen Sites können auch einzelne Datenbanken auf mehrere Server aufgeteilt werden.

Die folgende Tabelle enthält einige Fragen, die Sie bei der Wachstumsplanung beantworten sollten.

Planungsfrage | Empfehlung
Mit welcher Sitearchitektur können Sie langfristig am besten steigenden Kapazitätsanforderungen genügen? | Sehen Sie sich die Konfigurationsinformationen des Verwendungsszenarios im Commerce Server 2000 Resource Kit an. Wählen Sie eine Konfiguration, die Ihren Anforderungen am besten entspricht.
Wie können Sie Ihre Sitekapazität bei steigenden Verwendungsanforderungen erhöhen? | Planen Sie einen Skalierungspfad für jeden Servertyp, jede Netzwerkverbindung und jede Commerce Server-Funktion. Dieser Pfad sollte einen Plan beinhalten, um die Site bei Erreichen bestimmter Grenzwerte (z. B. Anzahl gleichzeitig angemeldeter Benutzer, Speicherauslastung oder Festplattenauslastung) zu skalieren.

Siehe auch

Bereitstellen der Site


Planen der Integration bestehender Systeme

Während des Planungsprozesses müssen Sie bestehende Systeme und Daten daraufhin überprüfen, inwiefern diese effektiv in Commerce Server 2000-Komponenten integriert bzw. in Formate konvertiert werden können, die mit Commerce Server-Datenbanken kompatibel sind. Außerdem müssen Sie die Einbindung Ihrer E-Commerce-Geschäftssysteme planen.

Die folgende Tabelle enthält einige Fragen, die Sie bei der Integrationsplanung beantworten sollten.

Planungsfrage | Empfehlung
Möchten Sie bestehende Datenbanken und Datenbankserver integrieren, die z. B. Katalogdaten, Benutzerprofile oder Kunden enthalten? | Wenn Sie separate Datenquellen für Ihre Offline- und Onlinegeschäfte beibehalten möchten, müssen Sie ein System zur Synchronisation der Daten einrichten. Es empfiehlt sich, Microsoft Host Integration Server 2000 und Microsoft Application Center 2000 in das Gesamtsystemdesign zu integrieren.
Möchten Sie die bestehenden Auftragsverarbeitungs-, Zahlungs-, Inventarverwaltungs- und Auftragserfüllungssysteme in Commerce Server integrieren? | Falls Sie planen, diese Systeme zu integrieren, entwickeln Sie Component Object Model (COM)-Komponenten, um sie mit Commerce Server zu verbinden. Es empfiehlt sich, Microsoft BizTalk Server 2000 in das Gesamtsystemdesign zu integrieren
Müssen Sie Enterprise Resource Planning (ERP)-Systeme mit Lieferanten und Geschäftspartnern verbinden? | Wenn Sie ERP-Systeme integrieren wollen, sollten sie BizTalk Server in das Gesamtsystemdesign einbinden.
Welche Anforderungen haben Sie an die Datenkonvertierung? | Richten Sie ein System ein, mit dem Sie bestehende Datenformate in ein mit Commerce Server kompatibles Format umwandeln. Beispielsweise müssen Katalogdaten in einem durch Tabstopps getrennten Format zunächst in Extensible Markup Language (XML) konvertiert werden, bevor sie in das Produktkatalogsystem importiert werden können.
Welche Anforderungen haben Sie an benutzerdefinierte Entwicklungen? | Obwohl Commerce Server ein ausgereiftes Produkt ist, können dennoch viele Funktionen benutzerdefiniert an Ihre persönlichen Geschäftsanforderungen angepasst werden. Sehen Sie sich die Featureliste in Commerce Server-Features im Überblick genau an, und lesen Sie sowohl die Commerce Server 2000-Hilfe als auch das Commerce Server 2000 Resource Kit, bevor Sie benutzerdefinierte Entwicklungen planen.
Möchten Sie die benutzerdefinierte Entwicklung durch eigenes Personal oder über einen Softwareanbieter durchführen lassen? | Beachten Sie die Informationen zu Microsoft-Lösungsanbietern und -Partnern unter http://microsoft.com/commerce.

Siehe auch

Integrating with BizTalk Server (englisches Thema)

Integrating a Third-Party Product Catalog (englisches Thema)

Hinzufügen anderer Anwendungen und Webserver


Planen hoher Verfügbarkeit

Verfügbarkeit ist ein Maß für die Fehlertoleranz eines Computers, Clusters oder Systems und seiner Programme. Dieses Maß beinhaltet das durchschnittliche Fehlerintervall (MTBF) und die durchschnittliche Reparaturzeit (MTTR) sowie Downtime durch geplante wie auch ungeplante Ereignisse. Viele E-Commerce-Sites sind unternehmenswichtig und sollten daher auf hohe Verfügbarkeit ausgelegt sein, d. h. sie sollten mindestens 99,9 Prozent der Zeit bei einem akzeptablen Servicelevel verfügbar sein.

Die Planung hoher Verfügbarkeit schließt sowohl Hardware- und Softwarekonfigurationen als auch Definition und Test von Betriebsprozeduren ein.

Die folgende Tabelle enthält einige Fragen, die Sie bei der Planung hoher Verfügbarkeit beantworten sollten.

Planungsfrage | Empfehlung
Welchen Verfügbarkeitslevel benötigen Sie? | Wägen Sie die Kosten für eine hohe Verfügbarkeit gegen die Kosten ab, die durch Downtime entstehen, und legen Sie einen angemessenen Verfügbarkeitslevel fest.
Wie möchten Sie Daten innerhalb Ihrer Server replizieren? | Verwenden Sie Microsoft SQL Server, um Datenbanken zu replizieren.
Wie möchten Sie die Verfügbarkeit überwachen? | Erstellen Sie einen Prozess, um festzustellen, ob Ihre Verfügbarkeitsvorgaben erfüllt werden.
Wie werden Sie auf Havarien reagieren? | Entwickeln Sie einen Plan zur Datenwiederherstellung bei verheerenden Ausfällen des gesamten oder von Teilen des Systems. Testen Sie diesen Plan durch eine simulierte Havarie.

Siehe auch

Hohe Verfügbarkeit: Checkliste


Sicherheitsplanung

Bei der Planung der Sicherheit von Commerce Server 2000 geht es darum, Gefährdungen Ihrer Site und all ihrer Features über die Wahl der für den gewünschten Sicherheitslevel notwendigen Maßnahmen und Tools zu verhindern.

Um eine Site mit bester Sicherheit aufzubauen, müssen Sie Secure Sockets Layer (SSL) so konfigurieren, dass bestimmte Seiten (z. B. solche, die Kreditkarteninformationen abfragen) nur über SSL aufgerufen werden können. Um SSL verwenden zu können, müssen Sie ein Serverzertifikat erwerben und Microsoft Internet Information Services (IIS) 5.0 konfigurieren. Weitere Informationen finden Sie in der IIS-Produktdokumentation unter http://localhost/iisHelp.

Außerdem können Sie in der Microsoft Management Console (MMC) für jede Commerce Server-Anwendung einen gesicherten Hostnamen festlegen. Das Objekt AuthManager verwendet den gesicherten Hostnamen, um Links auf gesicherte Seiten zu erstellen. Diese Links können entweder auf eine andere Commerce Server-Anwendung oder auf einen gesicherten Bereich derselben Anwendung verweisen.

Um die Wahrscheinlichkeit einer Sicherheitsverletzung zu minimieren, müssen Sie in der Lage sein, folgende Vorgänge auszuführen:

  • Sperren der Site, d. h. Zugriffssteuerung auf Dateien, Seiten und Anwendungen mittels Zugriffssteuerungslisten (ACL) über Dateien, die das NTFS-Dateisystem verwenden.

  • Steuerung von Lesezugriff, Programmausführung und Schreibzugriff für die Verzeichnisse Ihrer Site, die mit IIS-Sicherheit versehen sind.

  • Authentifizierung der Sitebesucher.

Die folgende Tabelle enthält einige Fragen, die Sie beantworten sollten, um zu entscheiden, was zu sperren ist, wie der Zugriff gesteuert wird und wie Authentifizierungen ablaufen.

Planungsfrage | Empfehlung
Müssen Besucher der Site in ihrem Windows 2000-Sicherheitskontext authentifiziert werden? | Binden Sie Microsoft Active Directory in Ihre Sitekonfiguration ein, wenn Besucher der Site in ihrem Windows 2000-Sicherheitskontext authentifiziert werden sollen.
Welche Inhaltsarten müssen Sie sperren? | Zum Sichern statischer Inhalte benötigen Sie den Internet Server Application Programming Interface (ISAPI)-Filter von AuthFilter, da das Objekt AuthManager nur für dynamisch generierte Inhalte geeignet ist.
Müssen Ihre Benutzer Cookies akzeptieren? | AuthFilter kann automatisch Cookies für neue Besucher generieren.
Möchten Sie ein formularbasiertes Authentifizierungsschema verwenden? | Wenn Sie ein benutzerdefiniertes Authentifizierungsschema auf Besucher anwenden wollen, müssen Sie AuthFilter im Modus Benutzerdefiniert ausführen.
Welche Sitearchitektur erfüllt Ihre Sicherheitsanforderungen am besten? | Sehen Sie sich die Zusammenfassungen der Firewalllösungen unter Firewallkonfigurationen an, und wählen Sie die Lösung, die sich am besten für Ihre Installation eignet.

Siehe auch

Commerce Server-Sicherheit

Firewallkonfigurationen

Commerce Server-Sicherheit: Checkliste

Verwalten der CS-Authentifizierungsressource


Planen der Integration von Active Directory

Active Directory ist der in Microsoft Windows 2000 integrierte Verzeichnisdienst. Mit Active Directory können Sie Geschäftseinheiten Ihrer Organisation hinzufügen, modifizieren, löschen und organisieren. Über Active Directory können Sie z. B. auf Benutzerkonten, Computerkonten, Sicherheits- und Verteilergruppen von Windows 2000 sowie auf veröffentlichte Ressourcen zugreifen.

Sie können Active Directory als Datenquelle für Profildaten verwenden. Das Profilsystem vereinigt Daten aus Active Directory und anderen Datenquellen zu einer einzigen Geschäftseinheit, die Sie in Ihrer Commerce Server-Implementierung verwenden können. Sie können z. B. Kontonummer und Kennwort eines Benutzers in Active Directory speichern und den Rest der Kontoinformationen (Kontaktinformationen, Kreditlimit, Einstellungen usw.) in Microsoft SQL Server. Das Profilsystem kann aus diesen beiden Datenquellen ein einziges Profil zusammensetzen, das Sie für Zielgruppenadressierungen und Analysen verwenden können.

Active Directory ist eine sehr zuverlässige und gut skalierbare Technologie. Um sie richtig nutzen zu können, müssen Sie jedoch Ihre Sitearchitektur entsprechend gestalten.

Wenn Sie Benutzer innerhalb von Active Directory in Gruppen aufteilen möchten, achten Sie besonders darauf, dass die Leistung des Active Directory-Servers hierfür ausreicht. In Active Directory ist das Hinzufügen von Benutzern ein relativ aufwändiger Vorgang. Die Anzahl der Benutzer pro Gruppe ist auf 5000 begrenzt. Dieses Limit kann mit einem im Commerce Server Software Development Kit (SDK) enthaltenen Objekt, dem sog. Subgroup Manager, umgangen werden. Mit diesem können mehr als 5000 Benutzer in einer "virtuellen" Gruppe gespeichert werden, da er die tatsächlichen Gruppen verbirgt, in denen die Benutzer gespeichert sind. Weitere Informationen finden Sie unter Subgroup Manager (englisches Thema). Da die Verwendung dieser Funktion jedoch weiteren Rechenaufwand für einen ohnehin schon aufwändigen Vorgang erfordert, sollte dies unbedingt bei der Auswahl der Hardware für diese Komponente Ihrer Website berücksichtigt werden.

Die folgende Tabelle enthält einige Fragen, die Sie beantworten sollten, um festzulegen, wie Sie Active Directory am besten in Ihr Sitedesign einbinden können.

Planungsfrage | Empfehlung
Welche Daten möchten Sie in Active Directory speichern? | In Active Directory sollten Sie nur feste Daten speichern.
Welche Datenmengen möchten Sie in Active Directory speichern? Sie können bis zu einer Million Benutzerkonten in einer einzigen Active Directory-Domäne unterbringen. Diese Schätzung basiert auf folgenden Annahmen:
  • Zu jedem beliebigen Zeitpunkt nutzen 1 Prozent (10.000) der Benutzer aktiv die Site.

  • Das Verhältnis der Anzahl von Einträgen, die in Active Directory geschrieben werden, zur Anzahl der aus Active Directory gelesenen Einträge ist kleiner 14 Prozent.

Falls Sie mehr als eine Million Benutzer in Active Directory speichern möchten, können Sie mehrere Domänen mit je einer Million Benutzer zusammenlegen.

Falls Sie beabsichtigen, Active Directory in größeren Dimensionen einzusetzen, wenden Sie sich für weitere Unterstützung bei der Planung an Microsoft Consulting Services (MCS).

Siehe auch

Konfiguration einer kleinen Site mit Active Directory

Einrichten der Active Directory-Server

Migrating the Membership Directory (englisches Thema)

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen


Planen der Bereitstellung

Die Bereitstellung von Commerce Server 2000 und Ihrer Websiteanwendungen erfordert sorgfältige Planung. Nehmen Sie sich die Zeit, einen umfassenden Bereitstellungsplan zu entwickeln, damit Sie Ihre Geschäftsanforderungen pünktlich und organisiert erfüllen können. Bevor Sie Ihre Anwendungen tatsächlich auf eine Website verschieben, sehen Sie sich die hier und im Commerce Server 2000 Resource Kit vorliegenden Informationen an.

Außerdem sollten Sie unbedingt sicherstellen, dass Ihre Organisation einen eigenen Plan entwickelt und dass darin die Vorstellungen von Businessmanagern, Systemadministratoren und Siteentwicklern berücksichtigt werden.

Die Bereitstellung beinhaltet, dass Ihre Website drei verschiedene Hardwareumgebungen durchläuft: die Entwicklungs-, die Test- und schließlich die Produktionsumgebung. Die folgende Abbildung illustriert vereinfacht diese Umgebungen.

Entwicklungs-, Test- und Produktionsumgebungen
Unternehmens-LAN
Internet
Firewall
Firewall
Produktion
Test
Entwicklung
ISP/ASP-LAN

Die tatsächliche Beschaffenheit dieser Umgebungen hängt von der Größe Ihrer Site und von Ihren Geschäftszielen ab. Die Commerce Server 2000-Hilfe bietet grundlegende Informationen zur Bereitstellung einer kleinen Site, die aus vier bis sechs Computern besteht. Informationen zu größeren Bereitstellungen finden Sie im Commerce Server 2000 Resource Kit.

Dieser Abschnitt beinhaltet folgende Themen:

  • Konfiguration einer kleinen Site. Beschreibt Hardwarekonfigurationen für eine Website, die aus vier bis sechs Computern besteht.

  • Konfiguration einer großen Site. Beschreibt die Produktionsumgebung einer Site, die aus 10 bis 100 Computern besteht.

  • Konfiguration einer globalen Site. Beschreibt das Konzept einer Produktionsumgebung für eine globale Site.

  • Firewallkonfigurationen. Beschreibt Vor- und Nachteile verschiedener Firewallkonfigurationsoptionen.

Siehe auch

Bereitstellen der Site

Migrieren von Site Server 3.0

Migrating the Membership Directory (englisches Thema)


Konfiguration einer kleinen Site

Obwohl es möglich ist, alle Commerce Server 2000-Komponenten auf einem Server zu installieren, ist eine Konfiguration mit vier Computern notwendig, um Geschäfts- und Datenbankebenen zu trennen und um Ausfallsicherheit zu gewährleisten.

Diese Konfiguration besteht aus zwei Servern pro Ebene: zwei identische Webserver und zwei identische Datenbankserver. Die folgende Abbildung zeigt eine Produktionsumgebung mit vier Computern.

Bereitstellung von Commerce Server 2000 in kleinen Unternehmen
Client
Unternehmens-LAN
Datenbankebene:
Verwaltung
Katalog
Datawarehouse
Marketing
Profil
Transaktion
Geschäftsverarbeitungslogik:
Geschäftsanalyse
Katalog
Listen-Manager
Pipelinekomponenten
Predictor Client
Profildienst
Zielgruppenadressierungssystem
NLB-Cluster
Firewall
Web-
server
SQL Server
SQL Server
ISP/ASP-
LAN
Web-
server
Servercluster
Firewall
Datenbank
Client
Internetzugang

In dieser Konfiguration werden die Webserver über Netzwerklastenausgleich (NLB) repliziert. Alle Webserver haben dieselbe IP-Adresse, um eine hohe Verfügbarkeit zu gewährleisten. Beide Webserver beinhalten die Commerce Server-Verwaltungstools, Dienste, Commerce Server Business Desk und Anwendungen. Die Datenbankserver sind als Windows-Servercluster mit einer gemeinsamen Microsoft SQL Server-Datenbank konfiguriert. Sie enthalten die Verwaltungsdatenbank, das Commerce Server-Datawarehouse und die anderen Commerce Server-Datenbanken.

Zwei Firewalls werden in dieser Konfiguration verwendet: eine zur Sicherung eingehender Internetdaten, die andere zur Sicherung der Daten aus dem Firmennetzwerk.

Folgende Tabelle enthält die Hardwarespezifikationen für eine kleine Konfiguration.

Servertyp | Hardwarespezifikation
Webserver | 2 Zweiprozessorenserver mit je 400 MHz und 1 GB RAM
Datenbankserver | 2 Vierprozessorenserver mit je 500 MHz und 2 GB RAM

Diese Konfiguration verwendet SQL Server zur Authentifizierung der Benutzer. Sie können auch Microsoft Active Directory zur Authentifizierung der Benutzer verwenden. Dies gewährleistet zusätzliche Sicherheit, erfordert aber die Einbindung von Domänencontrollern in Ihre Produktionsumgebung.

Konfiguration einer kleinen Site mit Active Directory

Entwicklungsumgebung für eine kleine Site

Konfiguration einer kleinen Site mit Active Directory

Möglicherweise möchten Sie Active Directory verwenden, um einen Sicherheitskontext für Ihre Commerce Server-Site bereitzustellen. Active Directory ist nützlich, wenn Sie

  • den Zugriff auf Siteressourcen auf der Grundlage von Benutzeranmeldeinformationen steuern wollen,

  • Sicherheit für andere Anwendungen gewährleisten wollen.

Wenn Sie sich entscheiden, Active Directory in Ihre Site einzubinden, sollten Sie der Konfiguration zwei zusätzliche Server hinzufügen. Folgende Abbildung illustriert eine kleine Commerce Server-Konfiguration mit Active Directory-Servern.

Bereitstellung von Commerce Server 2000 mit Active Directory in kleinen Unternehmen
Client
Unternehmens-LAN
Datenbankebene:
Verwaltung
Katalog
Datawarehouse
Marketing
Profil
Transaktion
Geschäftsverarbeitungslogik:
Geschäftsanalyse
Katalog
Listen-Manager
Pipelinekomponenten
Predictor Client
Profildienst
Zielgruppenadressierungssystem
NLB-Cluster
Firewall
Web-
server
SQL Server
SQL Server
ISP/ASP-
LAN
Web-
server
Servercluster
Firewall
Datenbank
Replikation
Active Directory
Client
Internetzugang

Um eine hohe Verfügbarkeit zu gewährleisten, sollten Sie zwei replizierte Active Directory-Domänencontroller verwenden. Active Directory verwendet eine eigene Replikation, um sicherzustellen, dass die Daten zwischen den Domänencontrollern konsistent bleiben. Die Web- und Datenbankserver in dieser Konfiguration sind identisch mit denen in der Konfiguration mit vier Computern. Da die Belastung durch Active Directory relativ gering ist, können Sie den Active Directory-Server auf den gleichen Cluster wie die SQL Server-Computer legen.

Entwicklungsumgebung für eine kleine Site

Folgende Abbildung zeigt ein Beispiel für eine Entwicklungsumgebung einer kleinen Site.

Kleine Entwicklungsumgebung für Commerce Server 2000
Quell-Repository
Legacysystem
Administrator
Entwickler
Businessmanager
SQL Server
Webserver
Internet

Diese Entwicklungsumgebung ist physisch von der Test- und Produktionsumgebung getrennt. Sie befindet sich im Firmennetzwerk.


Konfiguration einer großen Site

Bei steigenden Kapazitätsanforderungen können Sie eine der folgenden Maßnahmen ergreifen, um die Leistung Ihrer Site zu erhöhen:

  • Hinzufügen von Servern zu Ihrer Produktionsumgebung

  • Aufrüsten bestehender Server

  • Verbessern der Sitearchitektur

Die folgende Abbildung zeigt ein Beispiel für eine Entwicklungsumgebung einer großen Site mit 10 bis 100 Servern.

Datawarehouse-Verwaltungstasks
Datawarehouse-Speicher
Datawarehouse
Profil-Servercluster
Katalogreplikations-
system

Client

NLB-Cluster

Katalogserver

Unternehmens-LAN

NLB-Cluster

Direct Mailer-
Server

Marketing-
Servercluster

Business Desk
Server

Domänencontroller 2

Domänencontroller 1

Geschäftsverarbeitungslogik:

Geschäftsanalyse
Katalog
Listen-Manager
Pipelinekomponenten
Predictor Client
Profildienst
Zielgruppenadressierungssystem

Transaktions-
Servercluster

Verwaltungs-Servercluster

Web-Servercluster

Active Directory

Internet-
zugang

In dieser Konfiguration befindet sich jede Datenbankkomponente auf einem eigenen Microsoft SQL Server-Cluster. Die Katalogdatenbank ist außerdem auf mehrere Cluster mit Lastenausgleich verteilt. Zusätzliche Webserver verteilen die Belastung der Commerce Server-Dienste und -Anwendungen.

Weitere Informationen zur Planung und Bereitstellung einer großen Site finden Sie im Commerce Server 2000 Resource Kit.


Konfiguration einer globalen Site

Eine globale Site besitzt üblicherweise mehrere große, weltweit verteilte Sites, die über ein WAN (Wide Area Network) miteinander verbunden sind (bzw. über ein oder mehrere durch ein WAN bereitgestellte ISPs/ASPs).

Folgende Abbildung zeigt ein Beispiel für die Konfiguration einer globalen Site.

Albuquerque
Sao Paulo
WAN-Internet
Produktion
Produktion
Produktion
Test
Test
Test
Entwicklung
Entwicklung
Entwicklung
Brisbane

Weitere Informationen zur Planung und Bereitstellung einer globalen Site finden Sie im Commerce Server 2000 Resource Kit.


Firewallkonfigurationen

Unabhängig von der Größe Ihrer Commerce Server 2000-Konfiguration müssen Sie entscheiden, wie Sie Firewalls einsetzen wollen. Zusätzliche Firewalls erhöhen zwar Ihre Kosten, helfen jedoch, Kunden-, Angestellten- und empfindliche Daten auseinander zu halten. Die Kosten sollten nicht der einzige Aspekt sein. Jede Firewalllösung hat Vor- und Nachteile.

Dieser Abschnitt beinhaltet folgende Themen:

  • Konfiguration mit einem Firewall

  • Konfiguration mit zwei Firewalls

  • Konfiguration mit drei Firewalls


Konfiguration mit einem Firewall

Die preiswerteste Variante bei der Konfiguration einer kleinen Site verwendet nur einen Firewall, der die Webbrowser, Ihre Site und Ihr internes Netzwerk voneinander trennt. Dies ist möglich, wenn der Firewall über drei Netzwerkkarten mit den jeweiligen Umgebungen verbunden ist.

Ein typischer Einsatzbereich für nur einen Firewall ist die Entwicklungsumgebung. Eine Abbildung der Konfiguration mit einem Firewall finden Sie unter Entwicklungsumgebung für eine kleine Site.

Die Lösung mit einem Firewall bietet folgende Vorteile:

  • Das ISP-Netzwerk (bestehend aus Webservern und Datenbankservern) ist physisch von den anderen Netzwerken getrennt. So ist ein Eindringen in Ihre Website begrenzt. Falls irgendjemand Zugriff auf einen der öffentlich zugänglichen Server erlangt, wird dennoch ein direkter Zugriff auf das interne Netzwerk verhindert.

  • Es muss nur ein Firewall erworben und verwaltet werden.

  • Das interne Netzwerk funktioniert unabhängig von der Websiteumgebung. Bei Netzwerkproblemen der Website verliert das interne Netzwerk nicht unbedingt seine Verbindung.

  • Dieses Design ist leicht in eine bestehende Architektur einzubinden, in der bereits ein Firewall das interne Netzwerk vom Internet trennt. Sie müssen nur eine dritte Netzwerkkarte zum bestehenden Firewall hinzufügen.

Die Lösung mit einem Firewall hat folgende Nachteile:

  • Die Datenbankserver sind nicht von den Webservern getrennt. HTTP (Hypertext Transfer Protocol) und HTTPS (Hypertext Transfer Protocol Secure) sind die einzigen Protokolle, die vom Internet zur Website erlaubt sind.

  • Ein Eindringling, der Zugriff auf einen Server im ISP-Netzwerk erlangt, kann möglicherweise Zugriff auf weitere Server der Site erlangen. Zusätzliche Sicherheitsmaßnahmen sind notwendig, um diese Server zu schützen.

  • Die Kommunikation zwischen Webservern und Datenbankservern läuft innerhalb des ISP-Netzwerks ungeschützt ab.

  • Da sich die Commerce Server Business Desk-Computer den Netzwerkverkehr mit Webservern teilen, muss auf den Business Desk-Computern HTTPS ausgeführt werden, um die Datensicherheit zu gewährleisten.

  • Einige Firewallanbieter unterstützen möglicherweise nicht drei Schnittstellen.


Konfiguration mit zwei Firewalls

In dieser Konfiguration trennt ein Firewall das Internet von den Webservern und ein zweiter die Webserver vom internen Netzwerk, welches die Datenbankserver und die Commerce Server Business Desk-Computer enthält. Eine Abbildung der Konfiguration mit zwei Firewalls finden Sie unter Konfiguration einer kleinen Site.

Die Lösung mit zwei Firewalls bietet folgende Vorteile:

  • Der Systemadministrator kann das interne Netzwerk von den Webservern und Webbrowsern trennen. Die Siteverwaltung läuft außerhalb des ISP-Netzwerks über das interne Netzwerk. Das interne Netzwerk ist für einen Eindringling wesentlich schwieriger zu erreichen.

  • Eine zusätzliche Schutzebene beseitigt Anfälligkeiten der Datenbankserver, die sonst unabhängig von der Beziehung von Webservern und Datenbankservern bestehen. Solche Anfälligkeiten können zu Denial-Of-Service-Angriffen führen.

  • Die Anzahl der für Webbrowser zugänglichen Computer wird minimiert. Durch den Einsatz zweier Firewalls ist es schwieriger, die Datenbankserver und die Business Desk-Server zu stören oder zu missbrauchen.

  • Business Desk muss nicht über HTTPS (Hypertext Transfer Protocol Secure) ausgeführt werden, da sich die Business Desk-Client- und -Servercomputer im gleichen Netzwerk befinden.

  • Die Kommunikation zwischen Business Desk und den Datenbankservern muss nicht verschlüsselt werden, da sie nicht über ein öffentliches Netzwerk erfolgt.

  • Es ist leichter zu verhindern, dass ein Webbrowser einen autorisierten Benutzer simuliert. Ein Webserver kann z. B. so konfiguriert werden, dass er nur Datenbankserveranfragen von einer bestimmten IP-Adresse akzeptiert. Da beide Verbindungen über einen Firewall gesteuert werden, können diese Adressen nicht missbraucht werden.

  • Die Webserver sind physisch von den anderen Netzwerken getrennt. So ist ein Eindringen in die Website begrenzt. Falls irgendjemand Zugriff auf einen der öffentlich zugänglichen Server erlangt, wird dennoch ein direkter Zugriff auf das interne Netzwerk verhindert.

Die Lösung mit zwei Firewalls hat folgende Nachteile:

  • Zwei Firewalls mit unterschiedlichen Konfigurationen sind schwieriger und kostenintensiver zu betreiben.

  • Die Kommunikation zwischen Webservern und Datenbankservern läuft innerhalb des ISP-Netzwerks ungeschützt ab. Zusätzliche Sicherheitsmaßnahmen sind notwendig, um diese Kommunikation zu schützen.

  • Das interne Firmennetzwerk funktioniert nur in Abhängigkeit von der Website. Bei Netzwerkproblemen der Website kann das interne Netzwerk seine Verbindung verlieren. Sie sollten eine unabhängige Netzwerkverbindung einrichten, die die internen Netzwerkcomputer unter Umgehung des ISP-Netzwerks mit dem Internet verbindet. Diese unabhängige Verbindung würde jedoch den Firewall umgehen, der das ISP-Netzwerk vom internen Netzwerk trennt.

  • Jeder erlaubte Verkehr zwischen internem Netzwerk und Internet ist auch zwischen ISP-Netzwerk und Internet sowie zwischen Datenbankserver-Netzwerk und Internet erlaubt. Die Sicherheitsverzweigungen hängen davon ab, welche Protokolle in der Standardsicherheitsrichtlinie des Benutzers erlaubt sind.


Konfiguration mit drei Firewalls

Diese Konfiguration entspricht der Konfiguration mit zwei Firewalls, mit der Ergänzung um einen Firewall, der das interne Netzwerk von den Datenbankservern und den Commerce Server Business Desk-Computern trennt. Eine Abbildung der Konfiguration mit drei Firewalls finden Sie unter Konfiguration einer großen Site.

Die Lösung mit drei Firewalls bietet folgende Vorteile:

  • Die Website (Webserver, Datenbankserver und Business Desk-Server) ist physisch von den anderen Netzwerken getrennt, was einen maximalen Schutz vor Eindringlingen bietet.

  • Es ist leichter zu verhindern, dass ein Webbrowser einen autorisierten Benutzer simuliert. Ein Webserver kann z. B. so konfiguriert werden, dass er nur Datenbankserveranfragen von einer bestimmten IP-Adresse akzeptiert. Da beide Verbindungen über einen Firewall gesteuert werden, können diese Adressen nicht missbraucht werden.

  • Eine zusätzliche Schutzebene beseitigt Anfälligkeiten der Datenbankserver, die sonst unabhängig von der Beziehung von Webservern und Datenbankservern bestehen. Solche Anfälligkeiten können zu Denial-Of-Service-Angriffen führen.

  • Mit drei Firewalls wird die Anzahl der Computer minimiert, die über das Internet zugänglich sind. Es ist schwieriger, die Datenbankserver und die Business Desk-Server zu stören oder zu missbrauchen.

  • Die Datenbank- und Business Desk-Server sind auch vor Eindringlingen aus dem internen Netzwerk geschützt.

Die Lösung mit drei Firewalls hat folgende Nachteile:

  • Drei Firewalls mit unterschiedlichen Konfigurationen sind schwieriger und kostenintensiver zu betreiben.

  • Die Kommunikation zwischen Webservern und Datenbankservern läuft innerhalb des ISP-Netzwerks ungeschützt ab. Zusätzliche Sicherheitsmaßnahmen sind notwendig, um diese Kommunikation zu schützen.

  • Jeder erlaubte Verkehr zwischen internem Netzwerk und Internet ist auch zwischen ISP-Netzwerk und Internet sowie zwischen Datenbankserver-Netzwerk und Internet erlaubt. Die Sicherheitsverzweigungen hängen davon ab, welche Protokolle in der Standardsicherheitsrichtlinie des Benutzers erlaubt sind.

  • Die Konfiguration ist schwieriger einzurichten und zu verwalten.

Siehe auch

Bereitstellen der Site

Migrieren von Site Server 3.0

Migrating the Membership Directory (englisches Thema)


Migrieren von Site Server 3.0

Commerce Server 2000 stellt Tools zur Verfügung, mit denen Sie Ihre Site Server 3.0- bzw. Site Server 3.0 Commerce Edition-Site auf Commerce Server umstellen können. Siteentwickler können diese Tools an die Migrationsanforderungen Ihrer Site anpassen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Migrierte Site Server 3.0-Features

  • Planen einer Migration von Site Server zu Commerce Server

  • Migrationstools: Übersicht

  • Migrationsdokumentation: Übersicht


Migrierte Site Server 3.0-Features

Commerce Server stellt einen Migrationspfad für die Features von Site Server 3.0 und Site Server 3.0 Commerce Edition (SSCE) zur Verfügung, die in Commerce Server integriert wurden.

Die meisten Site Server 3.0-Features wurden in Commerce Server übernommen. Einige Features wurden jedoch in andere Microsoft-Produkte integriert. Die folgenden Tabellen zeigen die migrierten Features von Site Server 3.0 und SSCE und identifizieren die Produkte und Features, zu denen sie migriert wurden.

Features von Site Server 3.0 und Site Server 3.0 Commerce Edition (SSCE), die in Commerce Server integriert wurden.

Site Server 3.0-Features | Commerce Server 2000-Features
Ad Server/Ad Manager | Content Selection Framework / Kampagnen-Manager
Analysis: Report Writer, Custom Import, Usage Import | Analyse: Berichte, Benutzerdefinierter Import, Datawarehouse, Geschäftsanalyse
Direct Mail | Direktsendung
Pipelines | Pipelines
Online Store | Katalogsystem
Personalization & Membership | Benutzerprofile
Site Vocabulary | Sitebegriffe
Rule Builder | Ausdrucks-Generator
Predictor | Vorhersageressource
Starter Sites | Lösungssites
Transactions | Transaktionen
Content Deployment- und Content Replication-Dienst | Commerce Server Site Packager (enthält Teile von Content Deployment und des Content Replication-Dienstes)

Features von Site Server 3.0 und Site Server 3.0 Commerce Edition (SSCE), die in andere Microsoft-Produkte integriert wurden.

Site Server 3.0-Features | Microsoft-Produkte
Content Deployment- und Content Replication-Dienst | Microsoft Application Center 2000 (enthält Teile von Content Deployment und des Content Replication-Dienstes)
Commerce Interchange Pipeline | Microsoft BizTalk Server 2000
Internet Locator Service (ILS)/Dynamic Directory | Microsoft Windows 2000 – Site Server-ILS-Dienst
Suche: Index, Crawl, Skripte | In Beta 2 eines Microsoft-Vorabversionsprodukt (Codename "Tahoe") integriert
Knowledge Manager | In Tahoe integriert
Posting Acceptor | Microsoft WebDAV

Folgende Site Server 3.0-Features wurden weder in Commerce Server noch in andere Microsoft-Produkte integriert, und werden daher nicht mehr unterstützt: Web Publishing-Assistent, Push (Active Channel Multicaster, Active Channel Server), Content Analyzer und Tag Tool.

Anmerkung

  • In Version 5.0 der Internet-Informationsdienste (IIS) haben sich die Standardeinstellungen für die Antwortpufferung geändert. In Version 4.0 war die Antwortpufferung standardmäßig deaktiviert, in Version 5.0 ist sie standardmäßig aktiviert. Diese Tatsache sollte bei ASP-Seiten, die von einer Site Server 3.0 Commerce Edition-Site zu einer Commerce Server 2000-Site migriert werden, beachtet werden.


Planen einer Migration von Site Server zu Commerce Server

Bei der Planung der Migration einer Site von Site Server 3.0 Commerce Edition zu Commerce Server 2000, sollte Folgendes beachtet werden:

  • Es ist nicht möglich, nacheinander einzelne Komponenten von Commerce Server zu migrieren.

  • Sie müssen eine neue Site erstellen, die erst nach der erfolgreichen Migration von Verhalten, Inhalt und Daten der neuen Site in die Produktionsumgebung verschoben wird.

  • Damit Ihre SSCE-Site erfolgreich zu Commerce Server verschoben werden kann, muss der Sitecode migriert werden.

Von den verschiedenen Strategien, die zur Planung einer erfolgreichen Migration zur Verfügung stehen, sollten Sie die folgenden beiden in Betracht ziehen: Parallele Webfarm und Dualboot.

Parallele Webfarm

Bei der parallelen Webfarm-Strategie müssen Commerce Server und Site Server während des gesamten Migrationsprozesses gleichzeitig nebeneinander von zwei verschiedenen Standorten ausgeführt werden. Beim Aufbau einer parallelen Webfarm wird die Funktionalität einer bestehenden SSCE-Site mithilfe von Commerce Server-Technologien repliziert. Obwohl die Migration über eine parallele Webfarm ressourcenintensiv ist, bietet diese Migrationsmethode das beste Risikomanagement für Sites, die aktiv Sitestabilitätsrisiken verwalten.

Vorteile einer parallelen Webfarm

  • Der Betrieb der SSCE-Site wird nicht gestört, bis die Commerce Server-Site voll einsatzfähig ist und den Kunden zur Verfügung steht.

  • Funktionalität und Leistung der neuen Commerce Server-Site können vollständig – unter den Bedingungen einer simulierten Benutzerbelastung – getestet werden. Dafür stehen Tools wie das Microsoft Web Application Stress-Tool zur Verfügung.

  • Die Migration von Sitecode und Sitedaten kann vollständig getestet werden, bevor die Site Benutzern zugänglich gemacht wird.

  • Alle Betriebsprozeduren können aufgebaut und dokumentiert werden, bevor die neue Commerce Server-Site ans Netz geht.

Nachteile einer parallelen Webfarm

  • Ressourcenintensiv in Bezug auf Hardware, Speicherplatz und Netzwerkinfrastruktur.

Dualboot

Bei der Dualboot-Strategie wird eine neue Kopie von Microsoft Windows 2000 auf einem separaten Laufwerksystem Ihres SSCE-Servers installiert. Sobald das neue Betriebssystem installiert ist, können Sie Commerce Server auf der neuen Partition installieren. Sie müssen die Commerce Server-Datenbanken auf einem separaten Server installieren, weil sich die SQL-Konfiguration für Commerce Server von der für SSCE unterscheidet.

Beispiel einer Dualboot-Strategie

Ein Server, auf dem SSCE läuft, besitzt z. B. folgende Laufwerkskonfiguration:

  • Laufwerk C: Betriebssystem

  • Laufwerk D: IIS, SSCE und Sitecode

  • Laufwerk E: IIS und Systemprotokollierung

Nach der Implementierung der Dualboot-Strategie und dem damit verbundenen Hinzufügen neuer Laufwerke hat Ihr Server z. B. folgenden Aufbau:

  • Laufwerk C: Betriebssystem

  • Laufwerk D: IIS, SSCE und Sitecode

  • Laufwerk E: IIS und Systemprotokollierung

  • Laufwerk F: Betriebssystem (Windows 2000, eingerichtet für Commerce Server)

  • Laufwerk G: IIS, Commerce Server und Sitecode (Windows 2000, eingerichtet für Commerce Server)

  • Laufwerk H: IIS und Systemprotokollierung (Windows 2000, eingerichtet für Commerce Server)

In diesem Beispiel ist Ihr Server so konfiguriert, dass er entweder über Laufwerk C oder Laufwerk F gestartet wird, je nachdem, welche Site in Betrieb gehen soll.

Vorteile der Dualboot-Strategie:

  • Reduzierte Hardwareanforderungen.

  • Verwendung bestehender Netzwerkinfrastruktur.

  • Verwendung geprüfter Hardware, die an Geschäftsanforderungen erfüllt.

Nachteile der Dualboot-Strategie:

  • Es kann jeweils nur eine Site in Betrieb sein, entweder eine SSCE- oder eine Commerce Server-Site, aber nicht beide.

  • Funktionalität und Leistung der neuen Commerce Server-Site können nicht vollständig als Gesamtplattform getestet werden, ohne dass die gesamte SSCE-Site offline geschaltet und der Server in der Commerce Server-Konfiguration neu gestartet wird.

  • Datenbanken müssen vor der Migration zu einem separaten Server migriert werden.


Migrationstools: Übersicht

Sie können die Commerce Server-Migrationstools an Ihre Bedürfnisse anpassen. Zum Lieferumfang von Commerce Server 2000 gehören Quellcode sowie ein Software Development Kit (SDK), mit dem die Tools angepasst und erweitert werden können. Dieser Abschnitt liefert eine Übersicht über die Migrationstools und deren Verwendung.

Directory Migration Toolbox

Ad Server-Migrationstool

Directory Migration Toolbox

Die Directory Migration Toolbox ist eine Sammlung von Tools und von in C++ geschriebenen Component Object Model (COM)-Objekten. Dazu gehören folgende Objekte: MigrationMainObj, MigrationReadObj, MigrationWriteObj, MigrationModifyObj und MigrationLogObj. Verwenden Sie diese Objekte, um Benutzerdaten von Ihrem Membership-Verzeichnis von Site Server zur Profildatenbank von Commerce Server zu migrieren. Die Directory Migration Toolbox umfasst außerdem Quellcode, mit der sie an die Bedingungen eines bestehenden Membership-Verzeichnisses angepasst werden kann.

Die folgende Abbildung gibt eine Übersicht über die Funktionsweise der Migrationsobjekte.

Überblick über die Funktionsweise des Directory Migration-Tools
Objekt schreiben
Objekt lesen
Membership Directory
AUO/LDAP
Migrationsobjekt
Site Server
Commerce Edition
Commerce Server
Migrations-
anforderung
SQL
Active Directory
Benutzerprofil-
objekt

Objekt
ändern

Eine Schlüsselkomponente der Directory Migration Toolbox ist das Directory Migration-Tool, welches die eigentliche Migration ausführt. Das Directory Migration-Tool vermittelt zwischen mehreren Instanzen des Echtzeitmodus und einer einzelnen Instanz bei Batchmodus-Implementationen. Diese Balance dient zur Verhinderung von Race-Bedingungen, falls verschiedene Instanzen des Directory Migration-Tool versuchen, das gleiche Konto zu migrieren. Das Directory Migration-Tool kann in zwei Modi verwendet werden:

  • Echtzeitmodus. Wird verwendet, um Benutzer zu migrieren, die versuchen, sich über die Datei Login.asp anzumelden. Der normale Login.asp-Code wird erweitert, sodass bei Authentifizierungsfehlern aufgrund eines nicht in der Datenbank enthaltenen Benutzerprofils, das Migrationstool eine "Echtzeit"-Migration des Benutzerprofils auf das Profilsystem von Commerce Server durchführen kann. Sobald die Migration erfolgreich abgeschlossen ist, schließt die Login.asp-Datei die Benutzerauthentifizierung ab, und die normale Verarbeitung wird fortgesetzt.

  • Batchmodus. Wird verwendet, um Benutzer im Membership-Verzeichnis in den von Commerce Server verwendeten Profilspeicher zu migrieren. Dieser Modus bearbeitet die komplette Benutzerliste auf einem Standalone-Server. Nach Verarbeitung der Liste ist der gesamte Migrationsprozess abgeschlossen, bis auf mögliche Migrationsfehler, die zur Lösung protokolliert werden. Nach Lösung des fehlerverursachenden Problems wird der Migrationsprozess für die noch fehlenden Konten fortgesetzt, bis diese erfolgreich migriert sind.

Ad Server-Migrationstool

Das Ad Server-Migrationstool dient der Migration von Anzeigendaten von SSCE zu Commerce Server. Dieses Tool heißt adservermigration.exe und befindet sich im Unterverzeichnis SDK\Tools\Migration\Ad Server des Commerce Server-Installationsverzeichnisses.

Das Ad Server-Migrationstool erstellt Ausdrücke zur Auswertung der Zielgruppenadressierung und verschiebt Anzeigen zwischen Websites. Dieses Tool verwendet auch aktuelle Ausdrücke, um den Prozess der Anzeigenauswahl zu steuern. Weitere Informationen zum Ad Server-Migrationstool finden Sie unter ''Migrating a Site Server 3.0 Commerce Edition Site to Commerce Server 2000" im Microsoft Commerce Server 2000 Resource Kit.

Siehe auch

Migrating the Membership Directory (englisches Thema)


Migrationsdokumentation: Übersicht

Informationen zur Migration des Membership-Verzeichnisses finden Sie unter Migrating the Membership Directory (englisches Thema).

Weitere Informationen zur Migration finden Sie unter "Migrating a Site Server 3.0 Commerce Edition Site to Commerce Server 2000" im Microsoft Commerce Server 2000 Resource Kit.

Pipelines

Die Commerce Server-Pipelines sind in Bezug auf ihre Schnittstelle für Anwendungsprogrammierung (API) mit den Site Server 3.0 Commerce Edition-(SSCE)-Pipelines kompatibel. Pipelinekomponenten von Drittanbietern, die mit SSCE verwendet werden, funktionieren auch mit Commerce Server 2000, jedoch mit folgenden Ausnahmen:

  • Währung wurde in einen 64-Bit-Wert geändert (in SSCE war Währung ein 32-Bit-Wert).

  • Die Adress-/Versandinformationen können jetzt mehrere Lieferadressen beinhalten.

Falls Ihre Drittanbieterkomponenten mit Pipelinedaten auf Wörterbuchobjektebene interagieren, werden diese Änderungen möglicherweise nicht in Ihre Site übernommen. Wenn Ihre Drittanbieterkomponenten jedoch mit beliebigen Pipelinedaten auf Datenbankebene (wo Daten tatsächlich gespeichert werden) interagieren, sind Ihre Komponenten betroffen, da die Datenbankebene in Commerce Server geändert wurde.

Kataloge

Commerce Server- und SSCE-Kataloge haben einen entscheidenden Unterschied. Der SSCE-Assistent hat nur einen Basiskatalog erzeugt, einen sogenannten Onlinespeicher. Im Unterschied dazu sind Kataloge in Commerce Server komplexer und bieten größere Flexibilität. Bei den meisten SSCE-Kundeneinsätzen werden benutzerdefinierte Kataloge verwendet, bei denen die Entwicklung eines generischen Tools für die Migration zum Commerce Server-Produktkatalogsystem ausgeschlossen ist.

Bevor Sie Ihren Onlinespeicher oder einen benutzerdefinierten Katalog zu einem Commerce Server-Katalog migrieren, müssen Sie einen Katalog für Commerce Server erstellen. Zu diesem Zwecke müssen Sie ein Katalogschema erstellen. Nach der Erstellung eines Katalogschemas erstellen Sie einen Katalog und füllen diesen mit Produkten auf.

Sie können folgende Strategien verwenden, um Ihren Onlinespeicher oder benutzerdefinierten Katalog zu migrieren:

  • Erstellen Sie eine XML-Datei mit Ihren Katalogdaten, und importieren Sie diese in das Commerce Server-Produktkatalogsystem. Die XML-Datei muss ein Format besitzen, das vom Produktkatalogsystem importiert werden kann. Eine XML-Katalogdatei muss sowohl die Schemadefinition als auch die Katalogdaten enthalten.

    Eine andere Methode für die Feststellung des genauen XML-Formats für die zu importierenden Katalogdaten, besteht darin, das gewünschte Katalogschema zu erstellen und es mit einigen Beispielprodukten zu füllen. Anschließend wird diese Katalog im XML-Format exportiert und die dabei erhaltene XML-Datei näher untersucht. Die Daten Ihres Onlinespeichers oder benutzerdefinierten Katalogs müssen mit diesem Format übereinstimmen.

    Weitere Informationen über das XML-Format, das für das Produktkatalogsystem benötigt wird, finden Sie unter Catalog XML Structures (englisches Thema).

    Weitere Informationen zum Import einer bereits erstellten XML-Datei finden Sie unter Importieren einer XML-Katalogdatei.

  • Erstellen Sie eine kommagetrennte CSV-Datei mit Ihren Katalogdaten, und importieren Sie diese in das Commerce Server-Produktkatalogsystem. Das Format der CSV-Datei muss vom Produktkatalogsystem importiert werden können und kompatibel mit dem Schema Ihres Commerce Server-Katalogs sein.

    Weitere Informationen über das CSV-Format, das für das Produktkatalogsystem benötigt wird, finden Sie unter Catalog XML Structures (englisches Thema).

    Weitere Informationen über das CSV-Format, das für das Produktkatalogsystem benötigt wird, sowie über den Import einer bereits erstellten CSV-Datei, finden Sie unter Importieren einer CSV-Katalogdatei.

  • Erstellen Sie ein Hilfsskript, das Katalogstruktur und -daten aus Ihrem Onlinespeicher bzw. Ihrem benutzerdefinierten Katalog ausliest. Verwenden Sie anschließend die Commerce Server-Katalogobjekte, um einen Commerce Server-Katalog mit dem gewünschten Schema zu erstellen, und füllen Sie den Katalog mit Produktdaten. Für dieses Szenario existiert ein Beispielskript auf der Microsoft Commerce Server 2000 Resource Kit-CD-ROM.

    Weitere Informationen zu Commerce Server-Katalogobjekten finden Sie unter Product Catalog Objects (englisches Thema).

Siehe auch

Erstellen eines Katalogschemas

Erstellen eines Katalogs

Hinzufügen eines Produkts zu einem Katalog


Entwickeln der Site

Microsoft Commerce Server 2000 bietet Tools und Dienste für die raschere und problemlose Entwicklung einer erstklassigen kommerziellen Website. Dieser Abschnitt enthält eine Einführung in die Entwicklung mit Commerce Server und grundlegende Informationen zu den unterschiedlichen Aspekten der Entwicklung von Websites unter Verwendung von Commerce Server.

Dieser Abschnitt beinhaltet folgende Themen:

  • Introduction to Programming with Commerce Server (englisches Thema). Beschreibt die Aspekte der Webentwicklung mit Commerce Server.

  • Programming with Commerce Server Objects (englisches Thema). Unterteilt die in Commerce Server enthaltenen Component Object Model (COM)-Objekte in Kategorien und enthält Begriffsbestimmungen und Codierungsbeispiele für diese Kategorien.

  • Working with Site Security and Filters (englisches Thema). Beschreibt die Commerce Server-Mechanismen zur Sicherung der Website.

  • Working with Pipelines (englisches Thema). Beschreibt Commerce Server-Pipelines und zeigt auf, wo diese in Commerce Server zum Einsatz kommen und wie sie möglichst effizient verwendet werden können.

  • Integrating with BizTalk Server (englisches Thema). Beschreibt die Integration von Commerce Server mit Microsoft BizTalk Server zur Bereitstellung einer umfassenden Supplychainlösung.

  • Customizing Style Sheets (englisches Thema). Beschreibt, wie das Erscheinungsbild von Commerce Server Business Desk mithilfe individuell anpassbarer Stylesheets problemlos geändert werden kann.

  • Modifying Your Site for an International Audience (englisches Thema). Beschreibt Aspekte der Erstellung internationaler Websites.

  • Migrating the Membership Directory (englisches Thema). Erläutert die Migration vorhandener Benutzer einer Microsoft Site Server 3.0 Commerce Edition-Website auf eine Commerce Server 2000-Website.


Introduction to Programming with Commerce Server

Microsoft Commerce Server 2000 requires the skills of a site developer to optimize its functionality. This section introduces developers to Commerce Server 2000 and describes the opportunities for programming that it presents.

This section contains:

  • Setting Up Your Development Workstation. Provides an overview of the hardware and software prerequisites for working with Commerce Server effectively.

  • Debugging. Provides an overview of techniques for effective debugging in the context of Commerce Server development.

  • Programming Opportunities. Describes the various aspects of Commerce Server that present opportunities for programming.

  • SDK Road Map. Provides a brief overview of the samples that are present in the Commerce Server 2000 Software Development Kit (SDK).

  • Programmer's Reference Road Map. Provides a guide to the reference material available in the Programmer's Reference section of the Commerce Server documentation.


Setting Up Your Development Workstation

The hardware requirements for setting up a Commerce Server 2000 development workstation are the same as for a production server with the exception that a development workstation with 128 MB of RAM is generally adequate. For more information, see Hardware Requirements.

Install Commerce Server on development workstations using the normal installation process. You can perform a custom installation if you want to limit how much of Commerce Server is installed.

In addition, an integrated development environment such as Microsoft Visual Studio 6.0, and specifically Microsoft Visual InterDev (VID), is recommended for the actual development and debugging work involved. Note that you must apply VID Service Pack 4 (SP4) if you choose to use VID. Other debugging tools could also prove useful. For more information, see Debugging.


Debugging

The types of bugs encountered in the course of developing Commerce Server Web sites and extending the Commerce Server platform include:

ASP errors | Generic logic problems | Memory leaks
Hangs | Disk-full situations | Network outages
Crashes | Database access issues | Security issues

It is beyond the scope of this documentation to teach you how to debug Web applications. However, the following topics direct you to sources of additional information about how to debug potential problems that may occur with your use of Commerce Server 2000.

This section contains:

  • More Information about Debugging. Describes where to find additional information about debugging Web applications.

  • Debugging Tools. Describes a number of the tools available for debugging Commerce Server applications.


More Information about Debugging

It is beyond the scope of this documentation to teach you how to debug Web applications. However, the Microsoft Developer Network (MSDN) at http://msdn.microsoft.com 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://msdn.microsoft.com/vinterdev.


Debugging Tools

One of the primary tools used to develop Microsoft Commerce Server 2000 was Microsoft Visual Studio, including Microsoft Visual InterDev, Microsoft Visual C++, and Microsoft Visual Basic. It is the recommend integrated development environment for working with Commerce Server.

The following tools may also prove useful when debugging Commerce Server:

  • Microsoft Script Debugger. Search MSDN for the title "Microsoft Script Debugger for Internet Explorer" (exact phrase search criteria).

  • IIS Exception Monitor. Search MSDN for the title "Troubleshooting with Exception Monitor" (exact phrase search criteria).

  • User Mode Process Dump. This tool is included in the Original Equipment Manufacturer (OEM) support tools. Search MSDN for "OEM Support Tools" (exact phrase search criteria).

  • 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, Event Viewer. These three Microsoft Management Console (MMC) snap-ins are included, by default, in the Commerce Server Manager MMC 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 2000 SDK includes the script file DumpOrder.vbs (in the source\pipeline sub-folder) that 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.

See Also

Using regtrace.exe with a debugger


Programming Opportunities

You have two programming opportunities available to you through Commerce Server. You can use the existing features and capabilities of Commerce Server to build Web sites, or you can extend the Commerce Server platform.

Extending the Commerce Server platform includes creating new components and resources that are general purpose in nature. You can market these components and resources to companies that are using Commerce Server to create their Web sites.

This section contains:

  • Building Web Sites. Describes issues related to building sophisticated e-commerce Web sites.

  • Customizing and Extending Commerce Server. Describes the various ways in which Commerce Server can be customized and extended by building new components.


Building Web Sites

As a developer, you will build the Web sites that your customers will use, and through which they will ultimately make purchases. Before developing your Web site, you will need to determine where to start, and how Commerce Server can help you achieve your goal of developing a site that meets the needs of your company.

The following articles, available on the Microsoft Developer Network (MSDN) at http://msdn.microsoft.com contain useful information about Web site development (search for them 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

In Web sites that run under Internet Information Services (IIS), there is a basic division between the processing that occurs when an application first begins and when a session first begins, and that which occurs as the user moves from page to page. The former type of processing is implemented in the file Global.asa, while the latter type is implemented in the various Active Server Pages (ASP) that compose the site.

This section provides guidance in choosing from where to begin your development, as well as describing some important aspects of the processing that must occur in the Global.asa file.

This section contains:

  • Choosing Where To Start. Describes various options for starting the development of a Web site based on Commerce Server.

  • The Role of the Global.asa File. Describes the role of the Global.asa file in an IIS application.


Choosing Where To Start

As the developer for your Web site, you have two choices regarding where to begin development. Your choices are:

  • You can begin with the Blank site, which, when unpacked, gives you a Web site which is essentially empty. It provides the files Default.asp and Global.asa, but they do not yet contain much in the way of content. The Blank site is included with Commerce Server 2000.

    It also provides you with Commerce Server Business Desk and the set of empty databases upon which the Web site will ultimately depend.

    If you have an existing Web site, you can convert it to take advantage of the features and functionality of Commerce Server 2000. You will still need to begin your development process by unpacking the Blank site, which makes Business Desk available for use in your converted Web site. You would then merge your existing Web site files into the Blank site, converting them as appropriate to take advantage of the features of Commerce Server 2000.

  • You can begin with one of the Solution Sites that can be downloaded from http://www.microsoft.com/commerceserver/solutionsites. Initially, there are two Solution Sites available — Retail, which can be used to create a Web site aimed at the business-to-consumer market, and Supplier, which can be used to create a Web site aimed at the business-to-business market.

    Both of these Web sites, which are based on the same code base, offer a quicker time to market than starting from scratch with the Blank site. However, since they are general purpose in nature, their design will not satisfy the requirements of all possible Web sites. In particular, Web sites that have strict and particularly demanding performance requirements, or unique architectural requirements, might be better developed from scratch.

    Further information about the Solution Sites, as well as the documentation for the Solution Sites themselves, is available on the Solution Sites Web site.


The Role of the Global.asa File

One aspect of optimizing performance is to avoid unnecessary object creation. Internet Information Service (IIS) applications help support this goal through the mechanism of the Global.asa file and the intrinsic Application object. When an IIS application starts, it runs the Global.asa file, allowing initialization code to be executed. Specifically, the Application_OnStart routine is invoked, within which all initialization code for the application can be called. It is common practice to create and initialize objects and services when the application first starts, and then store references to those objects and services within the Application object. Once this is done, any Active Server Page (ASP) in the application can access those objects and services through the Application object. Such access is often faster than creating and initializing, and then destroying, the requisite objects within each ASP page. On the other hand, there are certain classes of objects for which this is not true, and therefore not recommended.

The types of processing that typically occurs in the Global.asa file include:

  • The creation and initialization of special purpose Commerce Server objects that can then be accessed from every ASP page on the site. The MessageManager object, which provides a mechanism for accessing language-specific strings for use in language-neutral ASP pages, is a good example of this type of object. For more information about this object, see MessageManager Object.

  • The establishment of caching objects, including the CacheManager object and the LRUCache object. For conceptual information about the caching objects, see General Purpose Programming Concepts. For more information about the properties and methods of the caching objects, see CacheManager Object and LRUCache Object, respectively.

  • The establishment of global information that is specific to your Web site, or to a custom resource that you develop. A common way to do this is to place the required data into a Dictionary object that is then made accessible to ASP pages through the IIS Application object.

If you begin development using the Blank site, you will find that the Global.asa file contains very little application initialization code. It is up to you, as the Web site developer, to make appropriate decisions about which objects should be shared by all ASP pages, and thus created and initialized in the Global.asa file.

If you begin development using one of the Solution Sites that can be downloaded from http://www.microsoft.com/commerceserver/solutionsites, you will find that the Global.asa file is quite large and complex. This file contains code to create and initialize a large number of Commerce Server objects, references to which are stored in the IIS Application object. For more information, see the Solution Sites documentation, and the code and comments within the Global.asa files included with those sites.


Customizing and Extending Commerce Server

Microsoft Commerce Server 2000 was designed with extensibility in mind. There are numerous areas in which its native functionality can be enhanced and extended.

For example, you could create a Gift Certificate extension to Commerce Server that includes:

  • A new Commerce Server Business Desk module for managing outstanding gift certificates.

  • A custom resource to manage the database tables in which the gift certificate data will be stored.

  • One or more new pipeline components to allow gift certificates to be applied toward purchases.

  • New Active Server Pages (ASP) to be integrated into a Web site to offer the gift certificate functionality to users.

This section contains:

  • Writing New Pipeline Components. Describes the possibility of writing new pipeline components to modify and enhance the execution of various pipelines within Commerce Server.

  • Extending the Business Desk. Describes the possibility of adding a new module to Business Desk.

  • Adding Custom Resources. Describes the possibility of integrating a custom resource into Commerce Server, allowing it to be configured and managed within Commerce Server Manager.

  • Customizing the Data Warehouse. Describes the possibility of customizing the Data Warehouse to allow for the gathering, storage, and analysis of data beyond that for which it was originally designed.

  • Customizing the Content Selection Framework. Describes the possibility of customizing the Content Selection Framework to allow additional algorithms for choosing the content to be delivered to different users.

  • Creating Time-Saving Tools. Describes the possibility of using the COM objects supplied with Commerce Server to create tools designed to automate repetitive tasks.


Writing New Pipeline Components

A pipeline component is a Component Object Model (COM) object that supports a standard set of interfaces that can be invoked in a uniform fashion during the execution of a pipeline, and which performs a particular aspect of the processing performed by the pipeline as a whole. The pipeline architecture allows for new pipeline components to be created and "plugged into" existing pipelines, often replacing an existing pipeline component, and altering the original processing being performed by that pipeline.

A common example of this type of pipeline component replacement is the pipeline that is executed when a user decides to check out, and their shopping cart is being processed for the completion of the transaction. Commerce Server includes several pipeline components designed to calculate sales tax, though these components are only meant to demonstrate the tax stage of the purchase pipeline, and are not guaranteed to perform tax calculations in accordance with the relevant tax law. It is recommended that you use tax component software made by third parties who specialize in this type of software.

You may need to develop additional pipelines to meet your business needs. The architecture of Commerce Server pipelines makes it very easy to insert additional pipeline components into existing pipelines so that extra processing can occur.

Pipelines are used in various capacities throughout Commerce Server. They are used to process transactions, to select personalized content for display, and to process Direct Mail jobs.

Pipelines can be optimized by incorporating the use of the CacheManager object and the corresponding cache loader objects. The Content Selection Framework is a good example of this sort of optimization. For more information about using the CacheManager object, see:

  • Objects and Components of the Content Selection Framework

  • Code to Support the ContentSelection Object

  • Code to Implement Custom Cache Components

For more information about pipelines, existing pipeline components, and building new pipeline components, see:

  • Working with Pipelines

  • Pipeline Component Reference

  • Building Pipeline Components

  • Pipeline Component Interfaces


Extending the Business Desk

Commerce Server Business Desk provides a single application from which business managers can make changes to the Web site without having to go through their technical Web expert. If you add new functionality to Commerce Server that includes data that business managers could change themselves, you should consider adding a new Business Desk module as the user interface through which business managers can make those changes. Doing so will help keep those business managers more effective, allowing them to continuing working with a single, consistent tool.

Business Desk can easily be extended. You can include new modules and new categories to contain those modules. The HTML components (HTCs) that are used by the existing Business Desk modules have been written in a general purpose fashion, which allows you to create new modules that use these same mechanisms for displaying and manipulating data. Business Desk also contains an extensive collection of utility routines, shared global variables, and constants that can help you develop new Business Desk modules.

An example of the type of new module that could be developed is one for offering electronic gift certificates on the site. Business managers may want the ability to examine various data related to the gift certificate functionality. This data would include information such as how many dollars worth of gift certificates have been sold but not yet redeemed, to whom have those gift certificates been issued, how long have they been outstanding, and so on.

For more information about developing new Business Desk modules and the various ways in which the Business Desk framework supports this development, see:

  • Building Business Desk Modules

  • Business Desk Reference

  • Business Desk XML Structures


Adding Custom Resources

Within Microsoft Commerce Server 2000, a resource is defined as any service or facility available to the Web sites that has its own independent configuration data. Commerce Server Manager, which is a Microsoft Management Console (MMC) snap-in, is the user interface designed for use by system administrators to manage the configuration values for these resources. Commerce Server Manager is designed to accommodate an expanding number of resources to be managed in a single, consistent fashion.

Depending on the complexity of the configuration data involved, and the need for a custom user interface, Commerce Server Manager offers varying levels of integration with custom code. At its most simple level, adding new rows to a small number of administration database tables allows the new resource to be displayed in Commerce Server Manager and its configuration values to be edited using the Generic Resource dialog box. At its most complex, the new resource can have its own custom user interface, implemented as an MMC snap-in extension, and take full responsibility for moving its data into and out of site packages from whatever data source it happens to use.

For more information about integrating a custom resource into the existing Commerce Server Manager user interface and Commerce Server Site Packager infrastructure, see:

  • Integrating Custom Resources

  • Site Packager Interface


Customizing the Data Warehouse

Microsoft Commerce Server 2000 includes a Data Warehouse that is pre-configured with a schema designed to allow the capture, storage, and analysis of a wide range of data. Though this schema meets the needs of many Web sites, it is likely that some Web sites are going to have special data warehousing needs that are beyond the capabilities of this schema. The Commerce Server Data Warehouse has been designed so that its schema can be extended to accommodate new types of data.

For more information about extending the Data Warehouse and its schema, see:

  • Working with the Data Warehouse

  • OLE DB Provider for Commerce Server

  • Analysis/Reporting Schema

  • Data Warehouse Schema


Customizing the Content Selection Framework

The Content Selection Framework (CSF) is the sub-system that allows for the efficient selection of custom content for Web pages and Direct Mail based on a number of different, dynamic criteria. These criteria can include such facts as the identity of the user, the time of day, business needs of advertising campaigns, and so on.

Since the CSF is implemented as a Commerce Server pipeline, one of the main ways in which the CSF can be customized is through the development and use of custom pipeline components.

The Samples\Marketing\debug folder in the Commerce Server 2000 SDK contains two ASP pages that can be useful when debugging the scoring and cache loading aspects of a CSF pipeline. For more information, see Marketing Folder.

For more information about extending the Content Selection Framework, see:

  • Extending the Content Selection Framework

  • Content Selection Pipelines

  • Building Pipeline Components


Creating Time-Saving Tools

Microsoft Commerce Server 2000 includes a set of Component Object Model (COM) objects that allow easy programmatic access to much of the data associated with the Web sites being developed and deployed.

For example, there are several objects related to the Product Catalog System, which together allow sophisticated access to the product catalog data associated with the Web site. These are the objects that the corresponding Commerce Server Manager resource and Business Desk modules use to display and make changes to catalog data.

As a Commerce Server developer, it is important that you realize the potential that these objects offer in terms of the development of custom tools. Sometimes these tools will only be used for a limited time early in the development of the Web site. For example, the easiest way to initially get catalog data into Commerce Server might be to write a Microsoft Visual Basic program that reads the data from some existing database and uses Commerce Server catalog objects to write that data to a Commerce Server catalog database. If the alternative is to enter the catalog information by hand through Commerce Server Business Desk, writing a small Visual Basic program to accomplish the same task could represent a huge savings in time, effort, and accuracy.

Programmatic solutions using the COM objects supplied with Commerce Server provide you a way to build your own custom tools to make development and maintenance of your site more effective and efficient.

It is important to note the potential for the development and marketing of third party tools that are generic enough to be useful for a variety of Commerce Server Web sites.

For more information about the COM objects supplied with Commerce Server, see:

  • Programming with Commerce Server Objects

  • Object Reference


SDK Road Map

The Microsoft Commerce Server 2000 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 2000 SDK are in a folder called "SDK" under the "Microsoft Commerce Server" folder. This topic describes the structure and contents of the SDK folder.

Note

  • You must include the following components of the Platform SDK to build the samples in the Commerce Server 2000 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

    OEM Support Tools

    UserDump

    For more information, see Debugging Tools.

  • In addition to installing the Platform SDK, you must also update your system include path to contain the Commerce Server 2000 SDK include folder, and update your Microsoft Visual C++ directory options to contain the Commerce Server 2000 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

    1. Right-click My Computer and select Properties.

    2. In the System Properties dialog box, click the Advanced tab.

    3. On the Advanced tab, click Environment Variables.

    4. In the Environment Variables dialog box, select the variable INCLUDE from the User variables for <username> box, and then click Edit.

    5. In the Edit User Variable dialog box, append the path to the Commerce Server 2000 SDK include directory to the value in the Variable Value box. For example:

      C:\Program Files\Microsoft Commerce Server\SDK\Include\

    6. Click OK three times to exit all three dialog boxes.

    To update Microsoft Visual C++

    1. Open Microsoft Visual C++.

    2. On the Tools menu, click Options.

    3. In the Options dialog box, select the Directories tab.

    4. Verify that the Include files option in the Show directories for box is selected.

    5. Click New, and then enter the path to the Commerce Server 2000 SDK include directory. For example:

      C:\Program Files\Microsoft Commerce Server\SDK\Include

    6. Click OK.

There are three top-level folders in the SDK folder, as follows:

  • Include Folder

  • Samples Folder

  • Tools Folder

Include Folder

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 definition, respectively.

Many of the header files are referenced in the C++ version of the reference topic for the corresponding object.

Samples Folder

The Samples folder contains a number of different samples, divided into the following sub-folders:

  • Business Analytics Folder

  • Management Folder

  • Marketing Folder

  • Order Processing Folder

  • Privacy Folder

  • Sitelets Folder

  • SolutionSites Folder

Business Analytics Folder

The Business Analytics folder contains the following samples:

CreateSchemaObject.vbs

This sample demonstrates how to use the OLE DB Provider for Commerce Server to modify the Business Analytics System logical schema by adding a new class and class members, and associating it with an existing class.

This script is in the Scripts sub-folder.

To run the sample, modify the connection string on line 135 of the script to suit your environment, and uncomment the following lines:

    140 'TestBindToCls cn, "visit"  'visit is valid in DW
    142 'TestBindToMem cn , "visitNum"
    145 'TestCreateClsMem strSQLConn, strURL

DumpFacts.vbs

This sample demonstrates how to use the OLE DB Provider for Commerce Server to read the Fact Tables in the Business Analytics System.

This script is in the Scripts sub-folder.

Analysis - New dynamic OLAP report script.sql

Analysis - New dynamic SQL report script.sql

Analysis - New static OLAP report script.sql

Analysis - New static SQL report script.sql

These sample SQL scripts demonstrate how to create new reports of various types in the Business Analytics System.

These SQL scripts are in the Scripts sub-folder.

Schema Tool

The files in this sample constitute a Microsoft Visual Basic project that provides a schema browser you can use to view Commerce Server Data Warehouse classes, class properties, data members, and class relationships as they are defined in the logical schema. This sample demonstrates how to use the OLE DB Provider for Commerce Server to access the logical schema of the Data Warehouse.

Management Folder

The Management folder contains the following samples:

BizDesk

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 non-technical 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.

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.

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, respectively.

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

The files in this sample constitute the C++ source code of a Microsoft Management Console (MMC) extension snap-in 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

Widgets

The files in this sample constitute demonstration pages for the various HTML Components (HTCs) provided with the Business Desk Framework.

You can set an IIS virtual directory to the Widgets folder to see sample pages for all of the HTML Components (HTCs) used in Business Desk.

Marketing Folder

The Marketing folder contains the following samples:

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.

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 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.

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.

Refer to the file Readme.txt for further instructions.

Order Processing Folder

The Order Processing folder contains the following sample:

MinMaxShip

The files in this sample are divided into three sub-folders: ATL, BizDesk, and VB. The ATL and VB folders contain files that constitute parallel implementations of the same pipeline component, known as the MinMaxShip component. The ATL folder contains the source code for an C++ Active Template Library (ATL) implementation, and the VB folder contains the source code for a Microsoft Visual Basic implementation.

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 install one of the Solution Sites that can be downloaded from http://www.microsoft.com/commerceserver/solutionsites. After you have installed one of these sites, 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.

Privacy Folder

The Privacy folder contains the following samples:

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.

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.

Sitelets Folder

Sitelets are small-scale Web sites that demonstrate the use of a particular Commerce Server feature in isolation from other features of Commerce Server. This allows you to more easily focus on the code required to implement that feature.

The Sitelets folder contains the following sitelets:

Ad

Demonstrates how to use the Profiling System in combination with the Targeting System to display targeted advertisements.

Auction

Demonstrates how to use the Auction object to implement Winning Bid auctions. It includes a custom Business Desk module designed for managing auctions.

Catalog

Demonstrates how to use the Product Catalog System to offer catalog browse and search functionality on your e-commerce site.

Discount

Demonstrates how to offer targeted discounts during order processing on your Web site.

Order

Demonstrates how to use Commerce Server to implement an order capture process on your Web site.

Passport

Demonstrates how to integrate Passport Single Sign-In (SSI) capability with the Profiling System. With this capability, you and your customers can benefit from the Passport SSI authentication service, while still being able to use the Profiling System for targeting users, managing user data, and so on.

Profile

Demonstrates how to use the Profiling System to register and authenticate users on your e-commerce site.

Each of the sitelet folders contains a Commerce Server Site Packager file (.pup extension) that can be unpacked to install the sitelet you want. Each folder also contains a "source" sub-folder containing the Web site files that are in the corresponding Commerce Server Site Packager file.

SolutionSites Folder

The SolutionSites folder contains the following file:

AppConsts.idl

Provides constants used by the Solution Sites.

Tools Folder

The Tools folder contains a number of different tools, divided into the following sub-folders:

  • ATL Pipe Wizard Folder

  • MembershipMigration Folder

  • Migration Folder

  • Registration Tool Folder

  • VB Pipe Wizard Folder

ATL Pipe Wizard Folder

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).

MembershipMigration Folder

The files in this folder constitute the source files of a tool that allows you to migrate user profiles from a Site Server 3.0 Membership Directory into a Commerce Server 2000 user Profile store.

For more information about migrating user profiles from Microsoft Site Server 3.0 Commerce Edition Web sites to Commerce Server 2000 Web sites, see Migrating the Membership Directory.

Migration Folder

The executable file in the Ad Server sub-folder is a tool that allows you to migrate campaigns from Site Server 3.0 Ad Server to the Commerce Server 2000 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 2000 Campaign database"
3: /exprstore:"Connection string to the Commerce Server 2000 Expression store database"
4: [/silent]   (Note that this parameter is optional)

For example:

adservermigration.exe \
/cs30:"Provider=SQLOLEDB;Data Source=Commerce30servername;Initial Catalog=Commerce30DatabaseName;User ID=SA;Password=SQLpassword" \
/cs2000:"Provider=SQLOLEDB;Data Source=Commerce2000servername;Initial Catalog=MarketingSystemDatabaseName;User ID=SA;Password=SQLpassword" \
/exprstore:"Provider=SQLOLEDB;Data Source=Commerce2000servername;Initial Catalog=ExpressionStoreDatabaseName;User ID=SA;Password=SQLPassword"

Registration Tool Folder

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.

VB Pipe Wizard Folder

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. Once you have registered the DLL, open Visual Basic and select New | Project. The VB Pipeline Component Wizard will be available in the list of available projects.

For more information about the Visual Basic Pipeline Component Wizard, see Creating Pipeline Components Using Visual Basic.


Programmer's Reference Road Map

Commerce Server 2000 Help includes extensive reference material in the section entitled Programmer's Reference. This reference documentation includes the following sections:

  • Object Reference. Provides reference pages for the Component Object Model (COM) objects supplied with Commerce Server, and for each of their properties and methods.

  • Interface Reference. Provides reference pages for the COM interfaces that you can implement so that your objects can be invoked by components of Commerce Server. These include the pipeline interfaces that you implement to create your own pipeline components, and the Commerce Server Site Packager interface.

  • Pipeline Component Reference. Provides reference pages for the pipeline components supplied with Commerce Server.

  • OLE DB Provider for Commerce Server. Provides reference documentation for the OLE DB Provider for Commerce Server that provides access to the Profile System and the Data Warehouse within Commerce Server.

  • Business Desk Reference. Provides reference pages for Commerce Server Business Desk. Specifically, these reference pages present the 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 the Business Desk Framework.

  • XML Reference. Provides reference material regarding the structure of various Extensible Markup Language (XML) documents used throughout Commerce Server.

  • Schema Reference. Provides reference material about the database schema used in certain key areas of Commerce Server where detailed knowledge of the schema is important.

  • Database Table Reference. Provides information about a number of Commerce Server databases and the tables they contain. This information can be useful when establishing SQL replication.

  • Style Sheet Reference. Provides information about the Customizable Style Sheets (CSS) used by Business Desk.


Programming with Commerce Server Objects

The Component Object Model (COM) objects supplied with Microsoft Commerce Server 2000 can be divided into the following functional categories. Each functional category has corresponding conceptual information and code examples. Each COM object has corresponding reference pages for access from Microsoft Visual Basic and from C++.

The following table provides links to the relevant conceptual information for each category and to the reference pages for each COM object.

Functional Category | Description
Backward Compatibility Objects | Includes objects used for Site Server 3.0 Commerce Edition compatibility. Objects (and reference page links): AdminSite (VB/C++), StandardSManager (VB/C++), Page (VB/C++)
Business Process Objects | Includes objects used for standard business processing, such as orders, shipping, and auctions. Objects (and reference page links): Auction (VB/C++), OrderForm (VB/C++), OrderGroup (VB/C++), OrderGroupManager (VB/C++), Shipping (VB/C++), ShippingMethodManager (VB/C++), SimpleFindResultInfo (VB/C++), SimpleFindSearchInfo (VB/C++)
Configuration Objects | Includes objects used to manage the configuration of Commerce Server Web sites. Objects (and reference page links): AdminWebServer (VB/C++), AppConfig (VB/C++), GlobalConfig (VB/C++), SiteConfig (VB/C++), SiteConfigReadOnly (VB/C++)
Content Selection Objects | Includes objects used to select dynamic content for display. Objects (and reference page links): ContentList (VB/C++), ContentListFactory (VB/C++), ContentListSchema (VB/C++), ContentSelector (VB/C++), RowCollection (VB/C++)
Display Objects | Includes objects used to format data for display on Web pages. Objects (and reference page links): AppFrameWork (VB/C++), DataFunctions (VB/C++), EuroDisplay (VB/C++), MessageManager (VB/C++)
Expression Objects | Includes objects used to create, store, and evaluate expressions. Objects (and reference page links): ExpressionEval (VB/C++), ExpressionStore (VB/C++), ExprEvalContext (VB/C++), ExprFltrQueryBldr (VB/C++)
General Purpose Objects | Includes general-purpose objects used widely within Commerce Server Web sites. Objects (and reference page links): AdminEventLog (VB/C++), AdminFiles (VB/C++), CacheManager (VB/C++), DBStorage (VB/C++), Dictionary (VB/C++), DictionaryXMLTransforms (VB/C++), GenID (VB/C++), LRUCache (VB/C++), SimpleList (VB/C++)
List Management Objects | Includes the Commerce Server object related to list management. Object (and reference page links): ListManager (VB/C++)
Pipeline Objects | Includes objects used to run one or more pipeline components within the context of a Commerce Server pipeline. Objects (and reference page links): MicroPipe (VB/C++), MtsPipeline (VB/C++), MtsTxPipeline (VB/C++), OrderPipeline (VB/C++), PooledPipeline (VB/C++), PooledTxPipeline (VB/C++)
Prediction Objects | Includes objects used to make predictions. Objects (and reference page links): PredictorClient (VB/C++), PredictorServiceAdmin (VB/C++), PredictorServiceSiteAdmin (VB/C++), PredModelBuilder (VB/C++)
Product Catalog Objects | Includes objects used to manage product catalogs. Objects (and reference page links): CatalogManager (VB/C++), CatalogSets (VB/C++), CatalogToVendorAssociation (VB/C++), Category (VB/C++), Product (VB/C++), ProductCatalog (VB/C++)
Profile Objects | Includes objects used to manage profiles. Objects (and reference page links): ProfileObject (VB/C++), ProfileService (VB/C++)
Reporting Objects (Refer directly to the reference pages for more details.) | Includes the objects used to create reports. Objects (and reference page links): AsyncRpt (VB/C++), ReportRenderer (VB/C++)
Site Security Objects | Includes objects used to secure Commerce Server Web sites. Objects (and reference page links): BizDeskSecurity (VB/C++), AuthManager (VB/C++)


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.

This section contains:

  • Backward Compatibility Programming Concepts. Describes the major issues relating to the use of the backward compatibility objects.

See Also

AdminSite Object

StandardSManager Object

Page Object


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 2000 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.


Business Process 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.

This section contains:

  • Business Process Programming Concepts. Describes concepts related to programming with the various objects concerned with business processing.

  • Example Code for Business Process Objects. Provides example code for the business process objects.


Business Process Programming Concepts

The following topics describe the business process objects provided in Commerce Server 2000.

OrderGroup, OrderForm, and OrderGroupManager Objects

The OrderGroup object is used in Commerce Server 2000 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

OrderGroup and Component Objects
OrderForm
Object
LineItem
Dictionary
One to One
One to Many
Addresses
Dictionary
OrderGroup
Object

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 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 just one OrderForm object, but 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 to the user.

This 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 SimpleLists.The Items SimpleLists 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 may 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 via 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.


Example Code for Business Process 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); they do not show extensive error checking or certain other formalities required for functional code.

This section contains:

  • 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 Orders and Display Line Item Information. Describes how to search the database for an order 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.

  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;User ID=sa;Password=;
                              InitialCatalog=""Retail_commerce"";
                                            DataSource=TESTMACH2;
                                       Network Library=dbmssocn",
                                                          sUserID

oOGMgr.Initialize "Provider=SQLOLEDB.1;User ID=sa;Password=;
                         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 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 re-use 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;User ID=sa;Password=;
                             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


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 resources and global resources, and retrieving Web site properties.

This section contains:

  • Configuration Programming Concepts Describes the major issues relating to the use of configuration objects.

  • Example Code for Configuration Objects Provides detailed examples of how to use the configuration objects.

See Also

AppConfig Object

GlobalConfig Object

SiteConfig Object

SiteConfigReadOnly Object

AdminWebServer Object


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.

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.

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.

Admin 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_UPMDtsTask | Profiling System DTS Task Information

AdminWebServer Object

The AdminWebServer object is used to enumerate the Web sites on a server and display the properties of those sites.

Active Server Page (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. 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.


Example Code for Configuration Objects

This section provides detailed examples of how to use the configuration objects.

This section contains:

  • 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 dictConfig
    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 Visual Basic code.

  1. Create the GlobalConfig and initialize it.
    Dim oGlobConfig
Set oGlobConfig = CreateObject("Commerce.GlobalConfig")
oGlobConfig.Initialize

  1. 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

    2.


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, 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


Content Selection 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.

This section contains:

  • Content Selection Programming Concepts. Describes the concepts related to programming with the Content Selection objects.

  • Example Code for the ContentSelector Object. Provides example code for the ContentSelector object.


Content Selection 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

To capture and record the final click events before users navigate away from your site Commerce Server 2000 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 2000 will have 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 the Code to Support the ContentSelection Object topic.

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.

Note

  • The Solution Sites and the Advertising Sitelet include versions of the Redir.asp script that you can reuse.
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 2000 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 Adding a Site. The file to unpack, SDK-AD-SITELET.PUP, is located in the C:\Program Files\Microsoft Commerce Server\SDK\Samples\Sitelets\Ad directory on your local computer.


Example Code for the ContentSelector Object

This section provides detailed examples of how to use the ContentSelector object.

This section contains:

  • 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 Support the ContentSelection 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 diretory.
    const sConnStr = "provider=SQLOLEDB;Data Source=(local);Initial
    Catalog=Retail_commerce;User ID=sa;Password=;"

    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 ContentSelection 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 Default.asp file should include the following code:

<%
    ' 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.


Display Objects

The display objects perform a variety of functions, such as the display of Euro currency and other currency values, data type conversion, value range checking, the display of error messages to users, and the display of locale-specific values.

This section contains:

  • Display Objects Concepts. Describes the major issues relating to the use of display objects.

  • Example Code for Display Objects. Provides detailed examples of how to use the display objects.

See Also

AppFrameWork Object

DataFunctions Object

EuroDisplay Object

MessageManager Object


Display Object Concepts

The following display objects are used in Commerce Server 2000:

AppFrameWork Object

DataFunctions Object

EuroDisplay Object

MessageManager Object

AppFrameWork Object

The AppFrameWork object is new in Commerce Server 2000, and 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.

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.

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.

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.


Example Code for Display Objects

This section provides detailed examples of how to use the display objects.

This section contains:

  • 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 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 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>"


Expression Objects

An expression is a statement constructed with Boolean and relational operators that is evaluated against the data in a given set of profiles, also known as the evaluation context of the expression. The profiles may be ProfileObject objects, Dictionary objects, or other objects that support property access through the IDispatch interface. Expressions always evaluate to either True or False.

The Expression Architecture consists of three major components: the Expression Store, the Expression Builder, and the Expression Evaluator Engine (EEE). The Expression Store consists of a set of database tables that store the expressions along with related information such as the expression ID and name. For more information, see Expression Recordset.

The Expression Builder provides a Web-based user interface, which allows the business manager to create, modify, and view expressions. For more information, see Expression Builder.

The EEE is the component of most interest to the developer. The EEE is a Component Object Model (COM) object used for evaluating expressions. It uses the services of the ExpressionStore object to load the expressions before evaluating them. It also creates evaluation contexts that are used to evaluate a set of expressions against the same profiles in the most efficient manner. The EEE is used by the marketing and campaign components of Commerce Server 2000.

This topic contains:

  • Expression Programming Concepts. Describes the EEE and the objects it exposes.

  • Example Code for Expression Objects. Provides detailed examples of how to use the objects exposed by the EEE.

See Also

Expression Recordset

Expression XML Structures

ExpressionEval Object

ExpressionStore Object

Profile Objects


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
Evaluation Contexts
Expression
Result
Cache
Object
Property
Cache
Evaluation
Core
Expression
Cache
Expression
Evaluation Engine
ExpressionEval
Object
Expression Store
Database
ExpressionStore
Object
External Programs
Using the EEE

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.

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.


Example Code for Expression Objects

This section provides detailed examples of how to use the expression objects exposed by the Expression Evaluation Engine. The code samples are written in either Microsoft Visual Basic, Microsoft Visual Basic Scripting Edition (VBScript), or Active Server Pages (ASP). The samples do not show error checking or certain other formalities required for functional code.

This section contains:

  • 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 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) pages.
    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 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.

  3. 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.

  4. 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"


General Purpose Objects

The general purpose 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), and retrieving the contents of server-side files.

This topic contains:

  • General Purpose Programming Concepts. Describes the major issues relating to the use of the general purpose objects.

  • Example Code for General Purpose Objects. Provides detailed examples of how to use the general purpose objects.

See Also

AdminEventLog Object

AdminFiles Object

CacheManager Object

Dictionary Object

GenID Object

LRUCache Object

SimpleList Object


General Purpose Programming Concepts

The following objects are considered general purpose, and can be used in many contexts within Commerce Server:

  • AdminEventLog Object

  • AdminFiles Object

  • CacheManager Object

  • Dictionary Object

  • GenID Object

  • LRUCache 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.

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 should fail, 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 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.

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.

GenID Object

This object is used to generate globally unique identifiers (GUIDs).

For more information, see GenID Object.

LRUCache Object

This 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 LRUCache object is an approximate method that allows the cache size to grow to 110 percent of its maximum size setting. Once this limit is reached, the least-recently-used 10 percent of items are removed from the cache.

For more information, see LRUCache Object.

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.


Example Code for General Purpose Objects

This section provides detailed code examples of how to use the general purpose objects.

This section contains:

  • Code to Write an Error Event to the Commerce Server Event Log. Describes how to write an error event to the Commerce Server 2000 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 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 2000 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 2000 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 since 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 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


List Management Objects

The ListManager object provides methods to create and manage lists. These lists can be lists of users for the User Profile Management System, lists of e-mail addresses for Direct Mailer, lists of segment members from the Predictor resource, lists generated from Analysis reports, and lists created from files and Structured Query Language (SQL) queries.

This section contains:

  • List Management Programming Concepts. Describes the List Manager service and the object it exposes.

  • Example Code for the ListManager Object. Provides detailed examples of how to use the ListManager object.

See Also

Creating and Managing Direct Mail Lists

Exporting a Report to List Manager

Exporting Segment Data to List Manager

Managing Lists of User Records

ListManager Object


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.

  • An Analysis report run from Commerce Server Business Desk.

  • A Predictor resource segment.

  • 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.


Example Code for the ListManager Object

This section provides examples of how to use the ListManager object. The code examples are written in Microsoft Visual Basic Scripting Edition (VBScript). Some of the example code uses asynchronous operations and should not be run under Active Server Pages (ASP) without modification. The code examples do not show error checking or certain other formalities required for functional code.

This section contains:

  • 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 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;" & _
 "User ID=userid;Password=******"


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 | Substact
    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;User ID=userid;Password=******"

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


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.

This section contains:

  • Pipeline Programming Concepts. Describes what a pipeline is, the sequence of events in a pipeline, and how pipelines can be customized.

  • Example Code for Pipeline Objects. Explains how to use code to invoke pipelines and pipeline components.


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. For example, the Order Processing pipeline (OPP) provides the sequence of steps that are used to process purchases from your site. In the first stage in the OPP, you retrieve the product information from the catalog database. In the next stage, you add the address of the user to the order. Each stage in the pipeline represents a category of work. The sequence of the stages determines the sequence in which the work is to be done.

Commerce Server 2000 includes a set of pipelines that perform much of the standard processing required by a Commerce Server site. A site developer can tailor these pipelines to meet the specific needs for the site. For example, a site developer can add new stages to the pipeline, integrate the pipeline components with your existing system, or replace the components with other components supplied by third parties.


Example Code for Pipeline Objects

This section provides detailed examples of how to invoke a pipeline component and a pipeline.

This section contains:

  • 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 basically the same as for running 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 assigns the value of the original key to it:

' 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 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("QueryMap") = MSCSQueryMap
    Set dContext("ConnectionStringMap") = MSCSConnectionStringMap
    Set dContext("SiteName") = MSCSDisplayName
    Set dContext("DefaultConnectionString") = _
                                      MSCSDefaultConnectionString
    dContext("Language") = "usa"
    Set dContext = Server.CreateObject("Commerce.Dictionary")
    Set dContext("MessageManager") = Application("MSCSMessageManager")
    Set dContext("DataFunctions") = Application("MSCSDataFunctions")
    Set UtilGetPipeContext = 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)
    UtilRunPipe = iErrLevel
End Function
%>

The following code 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)

%>


Prediction Objects

The Predictor resource provides the ability to build analysis models used for predicting user behavior and unknown user attributes, as well as for classifying users into groups (segments) based upon similar attributes and behavior. Model configurations (contained in a set of database tables) supply information used to build the models. Objects are exposed to control the build process, access the models and model configurations, and perform the predictions.

This section contains:

  • Prediction Programming Concepts. Describes the components of the Predictor resource.

  • Example Code for Predictor Objects. Provides detailed examples of how to use the objects exposed by the Predictor resource.

See Also

Predictor Schema

PredictorClient Object

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object

Running the Predictor Resource


Prediction Programming Concepts

The following topics describe the components of the Predictor resource.

Analysis Models

Two types of models are available. Prediction models are used for predicting user behavior, such as cross-sell patterns, and unknown user attributes. Segment models are used for classifying users into groups (segments) based on attributes and behavior, and for predicting the segment to which a particular user will most likely belong. For more information, see Analysis Models.

Analysis Model Configurations

The model configurations are contained in a set of database tables. These configurations contain information used to build analysis models, such as data sources and properties of the data atttributes. For more information, see Predictor Schema.

Prediction Model Viewer

Available through Commerce Server Manager in the Microsoft Managment Console (MMC), this browser provides a graphical representation of a prediction model. For more information, see Viewing Analysis Models.

PredictorClient Object

This object provides methods to predict user behavior, unknown user attributes, and the segments of a population to which a user belongs. For more information, see PredictorClient Object.

PredictorServiceAdmin Object

This object provides lists of available models and model configurations. For more information, see PredictorServiceAdmin Object.

PredictorServiceSiteAdmin Object

This object provides methods to rename and delete models and model configurations, and to generate a list of members of a segment. For more information, see PredictorServiceSiteAdmin Object.

PredModelBuilder Object

This object provides methods to control the building of models. For more information, see PredModelBuilder Object.

Segment Viewer

Available through Commerce Server Business Desk, this viewer provides a graphical representation of a segment model. Data for the Segment Viewer is provided by List Manager, which calls the GenerateSegmentList method of the PredictorServiceSiteAdmin. For more information, see Analyzing Population Segments.


Example Code for Predictor Objects

This section provides detailed examples of how to use the objects exposed by the Predictor resource. The code samples do not show error checking or certain other formalities required for functional code.

There is no Predictor application programming interface (API) available to create a new model configuration. Tables in the database must be modified directly. For more information and an example, see Predictor Schema.

This section contains:

  • Code to Retrieve the Database Connection String. Describes how to retrieve the database connection string.

  • Code to Build a New Model. Describes how to build a new model.

  • Code to Control a Model Build Describes how to control a model build.

  • Code to Retrieve a List of Available Models and Model Configurations. Describes how to enumerate the available models and model configurations.

  • Code to Rename and Delete a Model and a Model Configuration. Describes how to rename and delete a model and a model configuration.

  • Code to Load a Model and Set Default Properties. Describes how to load a model and set default properties for the model predictions.

  • Code to Predict Products. Describes how to expose "cross-sell" opportunities in user behavior with regard to product purchases.

  • Code to Predict User Attributes. Describes how to determine missing profile attributes about a user.

  • Code to Classify a User. Describes how to classify a user into a behavior or profile-based group.


Code to Retrieve the Database Connection String

  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 Data Warehouse.
    Dim sDWConnect As String
sDWConnect = oSiteConfigReadOnly.Fields("Global Data Warehouse") _
 .Value.Fields("connstr_db_dw").Value

Set oSiteConfigReadOnly = Nothing


Code to Build a New Model

The following example shows how to build a new prediction model.

  1. Create a dictionary to contain the build parameters.
    Dim dBuildParams As Commerce.Dictionary
Set dBuildParams = Server.CreateObject("Commerce.Dictionary")
  2. Insert the build parameters into the dictionary. All of these parameters have default values and do not need to be specified. The default model type is "prediction". To specify a segment model, set the ModelType to 1.
    dBuildParams("ModelType") = 0
dBuildParams("ComplexityPenalty") = 75
dBuildParams("InputAttributeFraction") = 0.5
dBuildParams("MeasuredAccuracyMaxPredictions") = 10
dBuildParams("MeasuredAccuracySampleFraction") = 0.2
dBuildParams("MinimumCasesToSplit") = 10
dBuildParams("OutputAttributeFraction") = .5
dBuildParams("SampleSize") = 15,000
  3. Create an object to convert the dictionary into an Extensible Markup Language (XML) string containing the build parameters. The IPersistXML interface is not available through Microsoft Visual Basic Scripting Edition (VBScript).
    Dim oPersistXML As IPersistXML
Set oPersistXML = dBuildParams

Dim sXMLBuildParams As String
sXMLBuildParams = oPersistXML.SaveXML(0)

Set oPersistXML = Nothing
Set dBuildParams = Nothing
  4. Create the PredModelBuilder object.
    Dim oPredModelBuilder As Commerce.PredictorModelBuilder
Set oPredModelBuilder = _
 Server.CreateObject("Commerce.PredictorModelBuilder")
  5. Using the connection string, sDWConnect, retrieved in Code to Retrieve the Database Connection String, and the name of the model configuration, PurchaseCfg1, created in Predictor Schema Example, start the build for a new model named Purchase1. The value, lBuildID, returned by the Start method is used to access the build thread while it is running or paused.
    Dim lBuildID
lBuildID = oPredModelBuilder.Start(sDWConnect, "", _
 "PurchaseCfg1", "Purchase1", sXMLBuildParams, True)
  6. Release the objects.
    Set oPersistXML = Nothing
Set dBuildParams = Nothing
Set oPredModelBuilder = Nothing


Code to Control a Model Build

This section shows how to retrieve the status of a build, and how to pause, resume, and stop the build. Additionally, the priority of the build is retrieved and then increased.

  1. Using the PredModelBuilder object, oPredModelBuilder, check the status of the build thread, lBuildID, started in Code to Build a New Model. For information on the enumerated build states, see PredModelBuilder.Status.
    Response.Write "Build " & lBuildID & " is "
Select Case oPredModelBuilder.Status(lBuildID)
Case PredBldRunning
Response.Write "Running <P>"
Case PredBldPaused
Response.Write "Paused <P>"
Case PredBldShuttingDown
Response.Write "ShuttingDown <P>"
Case Else
Response.Write "No status <P>"
End Select
  2. Assume the build is running. Pause the build.
    If oPredModelBuilder.Status(lBuildID) = PredBldRunning Then
oPredModelBuilder.Pause(lBuildID)
End If
  3. Resume the paused build.
    If oPredModelBuilder.Status(lBuildID) = PredBldPaused Then
oPredModelBuilder.Resume(lBuildID)
End If
  4. Check the priority of the build. For information about the enumerated build priorities, see PredModelBuilder.Priority .
    Dim ePriority
ePriority = oPredModelBuilder.Priority(lBuildID)

Response.Write "Build " & lBuildID & " has a priority of "
Select Case ePriority
Case PriLowest
Response.Write "PriLowest <P>"
Case PriBelowNormal
Response.Write "PriBelowNormal <P>"
Case PriNormal
Response.Write "PriNormal <P>"
Case PriAboveNormal
Response.Write "PriAboveNormal <P>"
Case PriHighest
Response.Write "PriHighest <P>"
Case Else
Response.Write "Bad Priority <P>"
End Select
  5. Increase the priority of the build.
    If ePriority <> PriHighest Then
ePriority = ePriority + 1
End If
  6. Stop the build.
    If oPredModelBuilder.Status(lBuildID) = PredBldRunning Or _
      oPredModelBuilder.Status(lBuildID) = PredBldPaused Then
oPredModelBuilder.Stop(lBuildID)
End If
  7. Stop all the builds.
    oPredModelBuilder.StopAllBuilds


Code to Retrieve a List of Available Models and Model Configurations

  1. Create the PredictorServiceAdmin object.
    Dim oPredictorServiceAdmin
Set oPredictorServiceAdmin = _
 Server.CreateObject("Commerce.PredictorServiceAdmin")

Response.Write "The date the Predictor Service was last started = " _
 & oPredictorServiceAdmin.dateLastStarted & "<P>"
  2. Retrieve and enumerate the list of available model configurations.
    Response.Write "The number of model configurations = " & _
 oPredictorServiceAdmin.slModelConfigs.Count & "<BR>"

Dim oDict
For Each oDict In oPredictorServiceAdmin.slModelConfigs
Response.Write oDict("ModelCfgName") & "<BR>"
Next
  3. Retrieve and enumerate the list of available models.
    Response.Write "The number of models = " & _
 oPredictorServiceAdmin.slModels.Count & "<BR>"

For Each oDict In oPredictorServiceAdmin.slModels
Response.Write oDict("ModelName") & "<BR>"
Next
  4. Release the object.
    Set oPredictorServiceSiteAdmin = Nothing


Code to Rename and Delete a Model and a Model Configuration

  1. Create the PredictorServiceSiteAdmin object. Note that the name of the object and the ProgID are different.
    Dim oPredictorServiceSiteAdmin
Set oPredictorServiceSiteAdmin = _
 Server.CreateObject("Commerce.PredictorSiteAdmin")
  2. Using the connection string, sDWConnect, retrieved in Code to Retrieve the Database Connection String, initialize the object to the "Retail" site.
    oPredictorServiceSiteAdmin.Init "", sDWConnect
  3. Rename the model configuration, PurchaseCfg1, created in Predictor Schema Example, to PurchaseConfig1.
    oPredictorServiceSiteAdmin.RenameModelConfig "PurchaseCfg1", _
 "PurchaseConfig1"
  4. Rename the model, Purchase1, created in Code to Build a New Model, to OddPurchases.
    oPredictorServiceSiteAdmin.RenameModel "Purchase1", "OddPurchases"
  5. Delete the PurchaseConfig1 model configuration.
    oPredictorServiceSiteAdmin.DeleteModelConfig "PurchaseConfig1"
  6. Delete the OddPurchases model.
    oPredictorServiceSiteAdmin.DeleteModel "OddPurchases"


Code to Load a Model and Set Default Properties

This code is placed in the Global.asa file. The properties are set here to avoid explicitly setting the values for every Predict method call.

  1. Create a PredictorClient object.
    Dim oPredictorClient
Set oPredictorClient = Server.CreateObject("Commerce.PredictorClient")
  2. Using the connection string, sDWConnect, retrieved in Code to Retrieve the Database Connection String, load the Purchase1 model created in Code to Build a New Model.
    oPredictorClient.LoadModelFromDB "Purchase1", sDWConnect
  3. Set the properties. The bFailOnUnknownInputAttributes property is set to True while debugging the application. This forces the Predict method to fail when information passed to the method is not recognized by the currently loaded model.
    oPredictorClient.bFailOnUnknownInputAttributes = True
oPredictorClient.fpDefaultConfidence = 95
oPredictorClient.fpPopularityPenalty = 0.2
  4. Associate the PredictorClient object with the site to allow performance monitoring to be aggregated over the site.
    oPredictorClient.sSiteName = "Retail"
  5. Release the object.
    Set oPredictorClient = Nothing


Code to Predict Products

  1. Create a Dictionary object and populate it with information on the current user.
    Dim dCurrentCase
Set dCurrentCase = Server.CreateObject("Commerce.Dictionary")

dCurrentCase("UserID") = "someone@microsoft.com"
dCurrentCase("Age") = ""
dCurrentCase("Gender") = "F"
dCurrentCase("ZipCode") = "98052"
dCurrentCase("Education") = ""
  2. Assume a data table represents the products in the shopping basket of the user. The PivotColumn in this table is named "SKU", the AggregateColumn is named "QTY", and the user has two bottles of a product with an SKU equal to "wine_fine_us_zin_202" in his or her basket. Set this information into the current case for the user. The following naming convention is used for sparse properties only (they appear in Type 1 tables). For more information about the properties and tables, see Predictor Schema.
    dCurrentCase("QTY(wine_fine_us_zin_202)") = 2
  3. Assume a different table represents the advertisements the user has clicked on. The PivotColumn in this table is named "URL", the AggregateColumn is named "HitCount", and the user clicked on the indicated URL once. Set this information into the current case for the user.
    dCurrentCase("HitCount(www.roguecellars.com/ad_md)") = 1
  4. Create a SimpleList object and populate it with the properties to predict.
    Dim slPropertiesToPredict
Set slPropertiesToPredict = Server.CreateObject("Commerce.SimpleList")

slPropertiesToPredict.Add("SKU")
  5. Create Variant Safearrays to store the predicted properties and values.
    Dim vsavPredictedProps
Dim vsavPredictedValues
  6. Using the PredictorClient object, oPredictorClient, created in Code to Load a Model and Set Default Properties, and the Purchase1 model loaded in the same section, make a maximum of five predictions.
    oPredictorClient.Predict dCurrentCase, slPropertiesToPredict _
 vsavPredictedProps, vsavPredictedValues, 5
  7. Iterate through the returned predictions.
    Dim i
For i = LBound(vsavPredictedProps) To UBound(vsavPredictedProps)
Response.Write vsavPredictedProps(i) & " = " _
 & vsavPredictedValues(i) & "<BR>"
Next
  8. Release the objects.
    Set dCurrentCase = Nothing
Set slPropertiesToPredict = Nothing


Code to Predict User Attributes

  1. Create a SimpleList object and populate it with the properties to predict.
    Dim slPropertiesToPredict
Set slPropertiesToPredict = Server.CreateObject("Commerce.SimpleList")

slPropertiesToPredict.Add("Age")
slPropertiesToPredict.Add("Education")
  2. Create Variant Safearrays to store the predicted properties and values.
    Dim vsavPredictedProps
Dim vsavPredictedValues
  3. Make the predictions, using the dictionary, dCurrentCase, created and populated with information on the current user in Code to Predict Products, the PredictorClient object, oPredictorClient, created in Code to Load a Model and Set Default Properties, and the Purchase1 model loaded in the same section.
    oPredictorClient.Predict dCurrentCase, slPropertiesToPredict _
 vsavPredictedProps, vsavPredictedValues
  4. Iterate through the returned predictions.
    Dim i
For i = LBound(vsavPredictedProps) To UBound(vsavPredictedProps)
Response.Write vsavPredictedProps(i) & " = " _
 & vsavPredictedValues(i) & "<BR>"
Next
  5. Release the objects.
    Set dCurrentCase = Nothing
Set slPropertiesToPredict = Nothing


Code to Classify a User

This code sample will first determine the most likely segment to which the current user belongs, and then iterate the probabilities associated with the membership of the user in each segment.

  1. Using the PredictorClient object, oPredictorClient, created in Code to Load a Model and Set Default Properties, and the connection string, sDWConnect, retrieved in Code to Retrieve the Database Connection String, load the Demog1 model created in Predictor Schema Example.
    oPredictorClient.LoadModelFromDB "Demog1", sDWConnect
  2. Using the dictionary, dCurrentCase created in Code to Predict User Attributes, predict the most likely segment.
    Dim sMostLikelySegment
Dim vProbability

sMostLikelySegment = oPredictorClient.PredictMostLikelySegment _
 dCurrentCase, vProbability

Response.Write "Most likely segment is " & sMostLikelySegment & "<BR>"
Response.Write "The probability of membership in this segment is " _
 & vProbability & "<P>"
  3. Create Variant Safearrays to store the segment names and associated membership probabilities.
    Dim vsavSegmentNames
Dim vsavProbabilities
  4. Make the predictions.
    oPredictorClient.PredictAllSegments dCurrentCase, vsavSegmentNames _
 vsavProbabilities
  5. Iterate through the returned predictions.
    Dim i
For i = LBound(vsavSegmentNames) To UBound(vsavSegmentNames)
Response.Write vsavSegmentNames(i) & " - " _
 & vsavProbabilities(i) & "<BR>"
Next


Product Catalog Objects

The product catalog objects provide methods to create and manage catalogs, products, and categories in the Commerce Server 2000 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.

This section contains:

  • Product Catalog Programming Concepts Describes the concepts related to programming with product catalog objects.

  • Example Code for Product Catalog Objects Provides example code for product catalog objects.

See Also

CatalogManager Object

CacheManager Object


Product Catalog Programming Concepts

The Commerce Server product catalog objects are described in the following topics.

Catalog System Object Model

CatalogManager Object

ProductCatalog Object

Product Object

Category Object

CatalogSets Object

CatalogToVendorAssociation Object

Catalog System Object Model

The CatalogManager object is the foundation of the 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 outside of the object model.

The CatalogManager object manages one or more catalogs, represented by ProductCatalog objects. A catalog may consist of a flat list of products or it may 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.

CatalogManager Object

The CatalogManager object is the first object you create to use the Commerce Server 2000 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. Use the CatalogManager object to create and manage catalogs. You also use the CatalogManager object to create properties, define their attributes, and to create product and category definitions using those properties. The CatalogManager object also provides methods for queries and free text searches across single or multiple catalogs.

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. All of the methods of the ProductCatalog object are executed from the context of a specific catalog. You use the ProductCatalog object to add new products and categories to a catalog, to create a custom catalog, or to perform a specification search.

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 a category hierarchy.

Product Object

The Product object represents a single product or product family in the catalog. A product definition is created using the CatalogManager object and can be used across the Product Catalog System, but a product is always in the context of a single 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.

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).

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–2000 Microsoft Corporation.
Alle Rechte vorbehalten.


Example Code for Product Catalog Objects

This section provides detailed examples of how to use the objects exposed by the Commerce Server 2000 Product Catalog System. The code examples do not show error checking or certain other formalities required for functional code.

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 Free-Text Search of a Catalog

  • 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 make it visible or hide it from users, by adding an additional property to that product, and then filtering on that property.

The following provides steps on how to implement this scenario:

  1. Define a new property of type number and call it "IsActive" and 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, CatalogManager.Query, CatalogManager.FreeTextSearch, ProductCatalog.GuaranteedSpecificationSearch, ProductCatalog.PerformSpecificationSearch methods by specifying an ActiveX Data Object (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 may 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 2000 Software Development Kit (SDK). The Browse.asp file and its included files demonstrate parameter validation, error handling, and generation of links from recordsets.

  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.

    Dim oCatMgr
Dim oCatalog
Set oCatMgr = Application("MSCSCatalogManager")
Set oCatalog = oCatMgr.GetCatalog("ChildrensClothing")
  2. 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
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 rsChildCategories = oCatalog.GetCategory(strName).ChildCategories

If you have the category object in hand obtaining the child categories is straightforward:
'oCategory is an existing Category object.
Set rsChildCategories = oCategory.ChildCategories
  3. 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 "shoe" category:

    Dim rsProducts
Set rsProducts = oCatalog.GetCategory("Shoes").Products
  4. Get product detail.

    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. The Catalog sitelet uses the ISBN as the product ID.
Dim rsProductDetail
Set rsProductDetail = _
    oCatalog.GetProduct(0-7356-0513-0).GetProductProperties
  5. Display the results.

    The following code example demonstrates how to display a set of products contained in a recordset called rsProducts. For an example of generating links from a recordset, see the Browse.asp file in the Catalog Sitelet in the Commerce Server 2000 SDK.

    <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 "ISBN Number: " & _
                   rsProducts("isbn") & "<BR>"
    Response.Write "Title: " & _
                   rsProducts("name") & "<BR>"
    Response.Write "Author: " & _
                   rsProducts("author") & "<BR>"
    Response.Write "Published in: " & _
                   rsProducts("Publication Year") & "<BR>"

    rsProducts.MoveNext()
Loop
%>


Code to Change How a Category is Displayed

Categories must be unique across the Product Catalog System. This prevents using the same category name in multiple catalogs. For example, if you have a catalog for men and a catalog for women, you cannot have a category in both catalogs named Shoes. You can work around this limitation by displaying a different property instead of the category name.

The following steps outline how to change how a category is displayed in your catalog:

  1. Define a property of type text and call it "DisplayName".

  2. Set the AssignToAll attribute to False.

  3. Add this property to any category definitions used, for example the Department category definition.

  4. When creating categories, the category name must still be unique, but a non-unique name can be specified for the DisplayName field.

  5. Modify the shopping site code to display the DisplayName field of a category as its name, rather than the CategoryName field.

The following example demonstrates the modifications needed. It is taken from the Browse.asp file in the Catalog sitelet in the Commerce Server 2000 SDK. The original code only needed the addition of a constant for the name of the new field and a change in one script variable: needs a simple change

' 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 hot 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 catalog names.

Dim oCatMgr
Dim rsCatalogs
' Get a local reference to the CatalogManager
' object created in the global.asa file.
Set oCatMgr = Application("MSCSCatalogManager")
Set rsCatalogs = oCatMgr.Catalogs
'Write out the catalog names from the recordset.
If (rsCatalogs.RecordCount > 0) Then
    rsCatalogs.MoveFirst()
    Do While Not rsCatalogs.EOF
        Response.Write rsCatalogs.Fields("CatalogName").Value
        Response.Write "<BR>"
        rsCatalogs.MoveNext()
    Loop
End If


Code to Hide Searchable Categories

Some sites will define searchable categories, which 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 meant to be shown to the users. Displaying searchable categories on the site could confuse the users.

Whenever 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. Similar filters would be needed in your code 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"

Now the rsCategories recordset contains only shoe categories that are appropriate for display.


Code to Perform a Free-Text Search of a Catalog

The following code example shows a wrapper function that performs a free text search. It uses typical values for return properties and sorting properties, and simplifies performing a free text search by building the parameters for a call to the CatalogManager.FreeTextSearch method.

The constants used to build the values of the sPropertiesToReturn and sPropertiesToSortOn variables will need to be defined according to your catalog schema.

' Function: rsFreeTextSearch
'
' Description:
'    Performs a Free-Text Search using typical values.
'    Returns the results as a recordset.
'    iRecordCount gets set to the number of records retrieved.
'
' Parameters:
'    sPhrase             - the freetext string to find
'    iStartingRecord     - return results starting from this record#
'    iRecordsToRetrieve  - return max. this many records
'    iRecordCount        - return the actually retrieved number
'                          of records in this parameter
'
' Returns:
'   Recordset with search results
' -----------------------------------------------------------------------
Function rsFreeTextSearch(ByVal sPhrase, _
                          ByVal iStartingRecord, _
                          ByVal iRecordsToRetrieve, _
                          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 FreeTextSearch method and return the recordset.
    Set rsFreeTextSearch = _
          MSCSCatalogManager.FreeTextSearch( _
             sPhrase, _
             sCatalogsToSearch, _
             iClassType, _
             sPropertiesToReturn, _
             sPropertiesToSortOn, _
             True, _
             iStartingRecord, _
             iRecordsToRetrieve, _
             iRecordCount _
             )

End Function


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 PerformSpecificationSearch method indicates the total number of matching records. You may need to force the user to refine the 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 series of drop-down lists. After the user has made their 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.
        ' Lookup 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 pre-determined time or date by adding an additional property and then filtering on that property. A similar technique can be used to deactivate products.

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, which 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, ProductCatalog.PerformSpecificationSearch methods by specifying an ActiveX Data Object (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 may prevent products from appearing on your Web site until the cache is flushed.


Code to Use Caching with a Catalog

The following code demonstrates both the CacheManager object setup code required in the Application_OnStart event of the Global.asa file, and the CacheManager object access code required within Active Server Pages (ASP) using the CacheManager object. The cache can be either a Dictionary or LRUCache object. The following steps demonstrate the use of an LRUCache object and stores recordsets. You can use a similar cache to store HTML.

  1. Create the CacheManager object in the global.asa file.
    Dim oCacheManager

Set oCacheManager = Server.CreateObject("Commerce.Cachemanager")
oCacheManager.AppUrl = MY_APPLICATION_URL
Set Application("MSCSCacheManager") = oCacheManager

' Create a configuration dictionary for the cache.
dim dictProductCategoryCacheConfig
set dictProductCategoryCacheConfig = GetDictionary()
dictProductCategoryCacheConfig("ConnectionString") = _
                 TRANSACTION_CONFIG_CONNECTION_STRING
dictProductCategoryCacheConfig("CacheSize") = 10000
dictProductCategoryCacheConfig("TableName") = _
                 "CatalogCache_Virtual_Directory"
dictProductCategoryCacheConfig("Cachename") = PRODUCT_CATEGORY_CACHE
dictProductCategoryCacheConfig("AppURL") = MY_APPLICATION_URL

' Create and initialize the cache to use LRUCache objects.
oCacheManager.RefreshInterval(PRODUCT_CATEGORY_CACHE) = 0
oCacheManager.RetryInterval(PRODUCT_CATEGORY_CACHE) = 5 * 60
oCachemanager.CacheObjectProgId(PRODUCT_CATEGORY_CACHE) = _
                                "Commerce.LRUCache"
oCacheManager.LoaderProgID(PRODUCT_CATEGORY_CACHE) = _
                           "Commerce.LRUCacheFlush"
Set oCacheManager.LoaderConfig(PRODUCT_CATEGORY_CACHE) = _
                                      dictProductCategoryCacheConfig
' LRUCacheFlush is a cache loader component supplied
' to work specifically with LRUCaches.
  2. Get the cache in the ASP page. The CacheManager object will return a cache by name. If the requested cache does not exist, the CacheManager object will automatically create an empty one.
    ' Get a local reference to the CacheManager object on the ASP page:
Dim oCache
Dim g_MSCSCacheManager
Set g_MSCSCacheManager = Application("MSCSCacheManager")
' Get the cache from the CacheManager object:
Set oCache = g_MSCSCacheManager.getCache(PRODUCT_CATEGORY_CACHE)
  3. Perform a lookup. This example is part of a function named GetCategoriesRS that returns the child categories if given the name of the parent category. The name of the parent category, contained in the variable parentCategory, serves as the cache key.
    Dim rsChildCategories
' First, try to retrieve the child
' categories recordset from the cache.
Set rsChildCategories = oCache.Lookup(parentCategory)

' Test whether the cache returned the requested recordset.
If Not IsNull(rsChildCategories) Then
    ' It did, so return the recordset.
    Set GetCategoriesRS = rsChildCategories

Else
    ' It did not, so get it from the catalog.
    Set rsChildCategories = _
            oCatalog.GetCategory(parentCategory).ChildCategories

   ' Put the recordset in the cache for future use.
    Set oCache.Insert(parentCategory, rsChildCategories)

   ' Return the child categories recordset.
    Set GetCategoriesRS = rsChildCategories
End If


Profile 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.

This section contains:

  • Profile Programming Concepts. Describes the Profiles resource and the objects it exposes.

  • Example Code for Profile Objects. Provides detailed examples of how to use the profile objects exposed by the Profile resource.

See Also

Business Desk Users

Profile Schema

Profile XML Structures

ProfileObject Object

Profiles

ProfileService Object

Running the Profiles Resource


Profile Programming Concepts

The following topics describe the components of the Profiles resource.

Profile Store

This is a group of tables in a Microsoft SQL Server database that stores profile definitions, site terms, and named expressions.

Commerce OLE DB Provider

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 Commerce OLE DB Provider.

Profile Designer

Available through Commerce Server Business Desk, the Profile Designer provides a user interface to extend and delete current profile schemas. For more information, see Adding Properties to a Profile Definition.

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.

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.

ProfileService Object

This object is used to create, retrieve, and delete ProfileObject objects. For more information, see 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.

This section contains:

  • 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 Setup 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 Connect to the Profile 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.
    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 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) = "logon_name"         ' Unicode string
arNewCustomers(0, 1) = "user_type"          ' Integer
arNewCustomers(0, 2) = "date_registered"    ' {d 'YYYY-MM-DD'}
arNewCustomers(0, 3) = "org_id"             ' 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 = @today " & _
         "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 = @today"

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


Site Security Objects

Microsoft Commerce Server 2000 provides two Component Object Model (COM) objects used for site security. The AuthManager object is used for user authentication and identification. The BizDeskSecurity object is used to determine which Commerce Server Business Desk modules to display for the current user.

The section contains:

  • Security Objects Programming Concepts. Describes concepts related to the security objects provided with Microsoft Commerce Server 2000.

  • Example Code for Site Security Objects. Provides example code that demonstrates how to use the objects related to Web site security.

See Also

Managing the CS Authentication Resource

Working with Site Security and Filters

AuthManager Object

BizDeskSecurity Object


Security Objects Programming Concepts

This section describes the BizDeskSecurity object and the AuthManager object provided by Microsoft Commerce Server 2000 for site security.

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.

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.


Example Code for Site Security Objects

This section provides detailed examples of how to use the objects supplied by Commerce Server 2000 for site security. These samples are written in Microsoft Visual Basic Scripting Edition (VBScript) for Active Server Pages (ASP), and do not show error checking or certain other formalities required for functional code.

This section contains:

  • 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 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.

  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 created 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 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


Working with Site Security and Filters

Microsoft Commerce Server 2000 provides user authentication and identification to Web sites using an Internet Server Application Programming Interface (ISAPI) filter called the AuthFilter and a Component Object Model (COM) object called the AuthManager. The AuthFilter supports three distinct modes and two mixed modes of operation. The AuthManager object may be used with or without the AuthFilter, and can set an encrypted user ID into a cookie or encoded URL string, and validate the user against it. The AuthFilter requires cookies, however, the AuthManager object supports shopping both with and without cookies.

The authentication mode is set in Commerce Server Manager after the site is unpacked. Whenever the authentication mode or other CS Authentication resource site configuration properties are changed, Internet Information Services (IIS) must be restarted so that the AuthFilter begins using the new values. For more information, see Managing the CS Authentication Resource.

This section contains:

  • AuthFilter. Describes the ISAPI filter provided by Microsoft Commerce Server to support user authentication and identification.

  • Windows Authentication Mode. Describes the Windows Authentication mode of the AuthFilter.

  • Custom Authentication Mode. Describes the Custom Authentication mode of the AuthFilter.

  • Autocookie Mode. Describes the Autocookie mode of the AuthFilter.

  • Windows Authentication with Autocookie Mode. Describes the mixed authentication mode of Windows Authentication with Autocookie.

  • Custom Authentication with Autocookie Mode. Describes the mixed authentication mode of Custom Authentication with Autocookie.

See Also

Managing the CS Authentication Resource

AuthManager Object

Site Security Objects


AuthFilter

This section discusses the AuthFilter, the ISAPI filter provided with Commerce Server 2000. An ISAPI filter is a DLL loaded into the Internet Information Services (IIS) process when the Web service is started. The AuthFilter alters the default behavior of IIS and affects how HTTP requests and responses are handled. By default, when the filter is used, it is installed at the IIS site level with low priority. The following sections discuss the base services provided by the AuthFilter, the modes of operation it supports, and the IIS events it registers for.

This section contains:

  • Base Services

  • Modes of Operation

  • Filter Initialization

  • IIS Event Notifications

  • Single Sign On Support


Base Services

When the AuthFilter is notified of an incoming request, it automatically provides the following services regardless of the mode of operation:

  • URL correctness. Detects whether the requested URL is correct, automatically correcting for the case sensitivity of the Internet Information Services (IIS) virtual directory roots.

  • Cookie support. Checks for cookie support and, if unavailable, redirects the user to a no cookie page. Cookie support is required when using the AuthFilter.

  • Ticket validation. Checks that the user has a valid ticket. A ticket is a set of property/value pairs set in the cookie of the user and used to identify or authenticate the user.

Additional services are provided, depending on the mode of operation of the filter.


Modes of Operation

The AuthFilter supports the following modes of operation:

  • Windows Authentication mode. In this mode, the AuthFilter uses Windows Authentication — through access control lists (ACLs) — to control access to the site. Anonymous and registered users can access the site depending on the ACLs. Registered users are tracked; anonymous users are not tracked. For more information about this mode, see Windows Authentication Mode.

  • Custom Authentication mode. In this mode, the AuthFilter allows the site designer to provide a custom authentication process to control access to the site while still using the base services of the AuthFilter. For more information about this mode, see Custom Authentication Mode.

  • Autocookie mode. In this mode, the AuthFilter allows an anonymous user access to the site while storing a persistent cookie to allow tracking of the user. For more information about this mode, see Autocookie Mode.

  • Windows Authentication with Autocookie mode. This mixed mode allows both registered and anonymous users access to the site, and allows tracking of the anonymous users through persistent cookies. For more information about this mode, see Windows Authentication with Autocookie Mode.

  • Custom Authentication with Autocookie mode. This mixed mode allows both registered and anonymous users access to the site, and allows tracking of the anonymous users through persistent cookies. Instead of controlling access through Windows ACLs, the site developer can supply a custom authentication process. For more information about this mode, see Custom Authentication with Autocookie Mode.


Filter Initialization

When the first request is made to a Web site, the following steps are taken by the AuthFilter:

  1. The site name and application name are retrieved (using the physical path and the csapp.ini file).

  2. A global cache for storing site configuration authentication properties is created. There is one entry for each site, with each entry being a collection of the authentication properties for that site.

  3. The site cache is populated with the CS Authentication resource properties read from the Administration database using a SiteConfig object.


IIS Event Notifications

The AuthFilter monitors both incoming and outgoing streams of data and registers with Internet Information Services (IIS) for notification of the following events:

  • SF_NOTIFY_ORDER_LOW. Load the AuthFilter low so that authentication occurs at the end of a list of filters.

  • SF_NOTIFY_SECURE_PORT | SF_NOTIFY_NONSECURE_PORT. Support secure/non-secure requests.

  • SF_NOTIFY_PREPROC_HEADERS. A single SF_PREPROC_HEADERS event occurs for each page request signaling that the server has finished preprocessing the header and is about to begin processing the information inside the header. This is where cookie checking, and so on are performed by the AuthFilter.

  • SF_NOTIFY_URL_MAP. For mapping the URL to a physical path, correcting the URL, if required, for case sensitive virtual directory roots. Used to retrieve CS Authentication resource properties.

  • SF_NOTIFY_AUTHENTICATION. This notification is sent just before IIS attempts to authenticate the user. This is where the AuthFilter retrieves/sets the user ID and password.

  • SF_NOTIFY_ACCESS_DENIED. Access Denied. The AuthFilter redirects to a login page or error page as required

  • SF_NOTIFY_SEND_RESPONSE. Used to read proxy account information from the redirect (302) query string and store in cache. Also used to format a custom redirect header and body containing the first requested URL.

  • SF_NOTIFY_SEND_RAW_DATA. Used to filter out the original redirect request while performing a custom redirect.

  • SF_NOTIFY_END_OF_REQUEST. End of a particular request. The AuthFilter writes the custom redirect message back to the client.

  • SF_NOTIFY_END_OF_NET_SESSION. End of session; cleanup resources.


Single Sign On Support

Single Sign On (SSO) support allows a user who successfully logs on to one site or server, access to other sites and servers without having to log on again. The AuthFilter in Windows Authentication mode provides support for the following, using cookies:

  • SSO between domains. For more information, see Cookie Sharing.

  • SSO in a Web farm scenario. For more information, see Web Farms. SSO support in a Web farm is also supported in Custom Authentication mode using cookie sharing.


Windows Authentication Mode

In Windows Authentication mode, a user is validated by setting a session cookie that contains an MSCSAuth ticket. No expiration date is specified for the cookie, and the cookie is deleted after the session expires. An MSCSAuth ticket contains a user ID, the last login time, and a time window specifying how long the ticket is valid after the last login time. A validated user does not automatically have access to a requested URL. The credentials of the user, once validated, are checked against the access rights of the URL which are maintained through access control lists (ACLs).

Notes

  • When Windows Authentication mode is enabled, the security of the site is automatically set to Internet Information Services (IIS) Basic authentication. This must not be changed, as it allows the AuthFilter to be notified of events by IIS.

  • After unpacking a Solution Site for use with Commerce Server 2000, the files contained in the <SiteName>\AuthFiles folder have anonymous access enabled. If these files are not used, they should be deleted. For more information about Solution Sites, see Commerce Server Solution Sites.

This section contains:

  • URL Request Outcomes. Describes the possible outcomes when a user requests a URL: the user is sent the requested URL, is sent to a login page, or is redirected to a support page announcing cookies must be enabled. All this is transparent to the site developer.

  • Login Page. Describes the contents of the login page that must be supplied by the site developer.

  • Variations. Describes the various scenarios beyond that depicted in URL Request Outcomes, including proxy accounts, Web farms, cookie sharing, and distributed denial of service (DDOS) attacks.


URL Request Outcomes

This section and the subsequent sections describe the possible outcomes when a user requests a URL. Internet Information Services (IIS) detects the request sent by the browser and notifies the AuthFilter of the SF_NOTIFY_PREPROC_HEADERS event. At this time, the AuthFilter takes control of processing the request and performs the following actions:

  1. Checks for site configuration properties in the local site configuration cache and, if not found, reads the site configuration properties from the Administration database using a SiteConfig object and stores them in the local site configuration cache.

  2. Checks whether the URL is correct, automatically correcting for the case sensitivity of the IIS virtual directory roots.

  3. Checks for session-cookie support on the browser.

At this point, three actions are possible. The user is redirected to either a support page or a login page, or the user is sent the requested URL.

This section contains:

  • Case 1: Redirect to a Support Page. Describes the actions of the AuthFilter when session-cookie support is disabled.

  • Case 2: Send the Requested URL. Describes the actions of the AuthFilter when cookies are enabled and the requested URL has anonymous access rights, or the user has access rights to the requested URL and the returned cookie contains a valid MSCSAuth ticket.

  • Case 3: Redirect to a Login Page. Describes the actions of AuthFilter that lead to the user being redirected to a login page.


Case 1: Redirect to a Support Page

In this case, cookies are disabled. When AuthFilter discovers that session-cookies are disabled, it redirects the user to a support page that notifies the user that cookies are required and that the user should resubmit the request once cookies are enabled.

To accomplish this, the AuthFilter performs the following steps in the background after being notified by IIS that an SF_NOTIFY_PREPROC_HEADERS event has occurred:

  1. Checks for site configuration properties in the local site cache and, if not found, reads the site configuration properties from the Administration database using a SiteConfig object.

  2. Checks for session-cookie support on the browser. If session-cookies are not supported, the user is redirected to the Active Server Pages (ASP) page specified in the s_NoCookie_Form ("No-Cookie form" in the Commerce Server Manager user interface) property of the CS Authentication resource. Usually this page notifies the user that cookies are required and that the user should resubmit the request once cookies are enabled. By default, an ASP page, named nocookie.asp, is supplied for this purpose. This file is located in the AuthFiles folder in the Commerce Server installation directory.

See Also

URL Request Outcomes

Case 2: Send the Requested URL

Case 3: Redirect to a Login Page


Case 2: Send the Requested URL

In this case, cookies are enabled. The requested URL is returned to the user in either of these scenarios:

  • The returned cookie contains a valid MSCSAuth ticket and the user has access rights to the requested URL, or

  • The returned cookie does not contain an MSCSAuth ticket but the requested URL has anonymous access rights.

To accomplish this, the AuthFilter performs the following steps in the background after being notified by IIS that an SF_NOTIFY_PREPROC_HEADERS event has occurred:

  1. Checks for site configuration properties in the local site cache and, if not found, reads the site configuration properties from the Administration database using a SiteConfig object.

  2. Sends a cookie with an MSCSFirstRequestedURL property set to the originally requested URL.

  3. If the returned cookie does not contain an MSCSAuth ticket, processing is returned to IIS.

  4. If the requested URL has anonymous access rights, the URL is returned.

  5. If the cookie contains an MSCSAuth ticket, the AuthFilter checks the local password cache for an entry matching the user ID contained in the cookie.

  6. On finding a matching entry, the AuthFilter 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 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 an active user can remain browsing.

  7. Since the current time is within the time window, the ticket is considered valid, and the user ID and password are submitted to IIS for access to the requested URL.

  8. Since the user has access rights to the requested URL, IIS returns the page.

See Also

URL Request Outcomes

Case 1: Redirect to a Support Page

Case 3: Redirect to a Login Page


Case 3: Redirect to a Login Page

In this case, cookies are enabled. The AuthFilter redirects the user to a login form for any of these scenarios:

  • The returned cookie does not contain an MSCSAuth ticket and the requested URL does not have anonymous access rights.

  • The returned cookie contains an invalid MSCSAuth ticket.

  • The returned cookie contains a valid MSCSAuth ticket but the user does not have access rights to the requested URL. The Active Server Pages (ASP) page to which the user should be redirected is specified in the s_Logon_Form ("Login Form" in the Commerce Server Manager user interface) property of the CS Authentication resource.

To accomplish this, the AuthFilter performs the following steps in the background after being notified by IIS that an SF_NOTIFY_PREPROC_HEADERS event has occurred:.

  1. Checks for site configuration properties in the local site cache and, if not found, reads the site configuration properties from the Administration database using a SiteConfig object.

  2. Sends a cookie with an MSCSFirstRequestedURL property set to the originally requested URL.

  3. If the returned cookie does not contain an MSCSAuth ticket, processing is returned to IIS.

  4. The requested URL does not have anonymous access rights, IIS signals the AuthFilter of the SF_NOTIFY_ACCESS_DENIED event, and the user is redirected to either a login page or an error page, as required.

  5. If the cookie does contain an MSCSAuth ticket, the AuthFilter checks the password cache for an entry matching the user ID contained in the cookie.

  6. If a matching entry is not found, the user is redirected to the login page.

  7. If a matching entry is found, the AuthFilter checks the current time against the login time to see if it is within the time window specified in the ticket.

  8. If the current time is past the time window specified in the ticket, the user is redirected to the login page.

  9. If the current time is within the time window, the ticket is considered valid, and the user ID and password are submitted to IIS for access to the requested URL.

  10. The user does not have access rights to the requested URL, IIS issues a SF_NOTIFY_ACCESS_DENIED notification, and the AuthFilter redirects the user to a login page.

For information about the events on the login page, see Login Page.

See Also

URL Request Outcomes

Case 1: Redirect to a Support Page

Case 2: Send the Requested URL


Login Page

All the steps in URL Request Outcomes, are transparent to the site developer. The following actions take place in the login page, which must be supplied by the site developer. The login page is specified in the s_Logon_Form ("Login Form" in the Commerce Server Manager user interface) property of the CS Authentication resource. A default page, Login.asp, showing much of this functionality is supplied with the installed product and located under the \Microsoft Commerce Server\AuthFiles folder.

When the user requests the login page and the request is not a form submission, the page is sent to the user. The login page must have anonymous access rights because, at this point, the user is unauthenticated. The login page has a link to a registration page for new users. The user submits the login form containing the user ID and password. If either of these credentials is missing, the user is redirected back to the login page. The AuthFilter performs different actions depending on whether the submission was through the Get method or the Post method.

Note

  • For performance reasons, do not set any persistent cookies on the login page.

This section contains:

  • Get Method

  • Post Method


Get Method

When the Get method is used, the submitted user ID and password are placed in the HTTP header and are available to the AuthFilter when it receives the SF_NOTIFY_PREPROC_HEADERS event. This occurs before the login page processes the request.

The following steps are taken:

  1. The AuthFilter retrieves the submitted user ID and password from the QueryString collection properties, txtUserName and txtPassword.

  2. The AuthFilter checks the local password cache for an entry matching the user ID.

  3. If an entry is found, the password is updated with the submitted password.

  4. If an entry is not found, a new entry is made using the submitted user ID and password.

  5. The AuthFilter returns processing to the login page.

  6. In the login page, the submitted user ID and password are retrieved from the txtUserName and txtPassword properties of the QueryString collection of the Request object.

  7. Using the submitted user ID, the profile of the user is retrieved from the Commerce Server Profiles resource or another profile system.

  8. If the user does not have a profile, the user is redirected to the registration page.

  9. If the user has a profile, but the password associated with the profile does not match the submitted password, the login page is resent to the user.

  10. If the passwords do match, the AuthManager object is used to set the MSCSAuth ticket into a session cookie for the user.

  11. The user is redirected to the original URL, which was previously stored by the AuthFilter in the MSCSFirstRequestedURL property of a separate session cookie.

  12. When the browser resubmits the request, the AuthFilter determines the ticket is valid and returns processing to IIS.

  13. If the user has access rights to the URL, it is returned.


Post Method

When the Post method is used, the submitted user ID and password are placed in the HTTP body and are not available to the AuthFilter until after the login page processes the request. This requires an additional step beyond those used when processing a request that uses the Get method. This step entails appending the user ID and password to the URL query string. For a code example showing these steps, see Code to Retrieve Login Credentials Using the Post Method and Set an MSCSAuth Ticket.

The following steps are taken:

  1. Initially, the submitted user ID and password are unavailable to the AuthFilter and processing is immediately returned to the login page.

  2. In the login page, the submitted user ID and password are retrieved from the txtUserName and txtPassword properties of the Form collection of the Request object.

  3. Using the submitted user ID, the profile of the user is retrieved from the Commerce Server Profiles resource or another profile system.

  4. If the user does not have a profile, the user is redirected to the registration page.

  5. If the user does have a profile, but the password associated with the profile does not match the submitted password, the login page is resent to the user.

  6. If the passwords do match, the AuthManager object is used to set the MSCSAuth ticket into a session cookie for the user.

  7. The user ID and password are appended to the original URL query string, which was previously stored by the AuthFilter in the MSCSFirstRequestedURL property of a separate session cookie, using two properties, proxyuser and proxypwd. The query string resembles the following:
       "<MSCSFirstRequestedURL>&proxyuser=UserID&proxypwd=Password"
  8. The user is redirected to the original URL.

  9. IIS notifies the AuthFilter that it is sending the redirect response by signaling the SF_NOTIFY_SEND_RESPONSE event.

  10. The AuthFilter removes the user ID and password from the URL query string. The credentials are not sent to the browser.

  11. The AuthFilter checks for the user ID in the password cache and, if found, updates the password.

  12. If the user ID is not found, a new entry is made using the user ID and password.

  13. When the browser resubmits the request, the AuthFilter determines the ticket is valid and returns processing to IIS.

  14. If the user has access rights to the requested URL, it is returned.


Variations

A number of variations on the basic scenario depicted in URL Request Outcomes are supported and described in the following sections.

This section contains:

  • Clear Text Password in Active Directory

  • Cookie Sharing

  • Distributed Denial of Service Attacks

  • Proxy Accounts

  • Web Farms


Clear Text Password in Active Directory

The password of a user in Active Directory is stored encrypted. To have access to this password in clear text, two options are available when the password is initially retrieved in the login page:

  1. Extend the profile schema by adding a new property to store the clear text password. Extending the schema must be performed through the Profile Designer in Commerce Server Business Desk. For information about this procedure, see Adding Properties to a Profile Definition.

  2. Create a custom cache to store the clear text password.


Cookie Sharing

Users can be tracked across multiple domains and applications by sharing cookies. Cookie sharing is accomplished by setting two properties on the cookie, domain and path. This resembles the following:

      ";domain=DomainName;path=Path"

The domain property is used to specify the domains for which the cookie is valid. The path property is used to specify the subset of URLs in the domain for which the cookie is valid.

Before sending a request, the client browser checks to see if a cookie is available containing a domain property that matches the tail of the fully qualified domain name of the host specified in the requested URL. If such a cookie exists, the path property of the cookie is compared to the path name component of the requested URL. If they match, the cookie is sent with the request.

On the server side, while setting the property, if the value of the domain property is not specified, it defaults to the host name of the server that generated the cookie. Only hosts within the specified domain can set the domain property on the cookie. The most general path property is '/'. If the path property is not specified, it defaults to the path of the virtual root of the IIS application that generated the cookie. For more information about cookie sharing, see http://www.cis.ohio-state.edu/htbin/rfc/RFC2109.html.

In Commerce Server 2000, each site has its own cookies by default, however, the AuthFilter allows these cookies to be shared.

To share cookies between sites in the same domain, set the b_CookiePath_ApplicationScope property (uncheck the "Set cookie path to application" check box in the Commerce Server Manager user interface) to False. This causes the host to set the path property to '/'. If the b_CookiePath_ApplicationScope property is True, the path property is set to the current application path.

To share cookies between domains, set the u_CookieDomain_Scope property ("Number of shared domain levels" in the Commerce Server Manager user interface) to the required number. For more information, see RFC2109.


Distributed Denial of Service Attacks

A distributed denial of service (DDOS) attack is an attempt to shut down a server by repeatedly logging on with a known valid user ID and incorrect password. By default, the AuthFilter does not associate each password cache entry with one, and only one, client session. When a user logs on with a valid user ID, the password cache is updated with the submitted password. A malicious user can use this technique to disrupt service. The malicious user does not gain entry to the site, but forces a registered user that is active when the password is changed, to login again.

To avoid the attack, the AuthFilter can store an additional property in the cache besides the user ID and password. This property is generally a globally unique identifier (GUID) and is used to distinguish between different client sessions using the same user ID and possibly different passwords.

On the login page, the GUID is placed on the ticket of the user as a custom property, guid, by the SetProperty method of the AuthManager object. Additionally, the property is appended to the query string for the redirected URL.

Once set, the AuthFilter uses the guid property to access the password cache instead of the user ID. When a user logs on with the same user ID but with a different password, the AuthFilter identifies this as a different user and a new entry is made in the password cache instead of overwriting the original password. The AuthFilter then follows the same steps as for a new user. For a code example showing this process, see Code to Set a Custom Property on a Ticket.


Proxy Accounts

When accessing a site using a proxy account, the steps in the login page happen the same as with the Post method. However, the user ID is used to retrieve a proxy account ID and password, and these credentials are set into the URL query string and stored in the password cache instead of the user ID and password. On subsequent visits to the site, the proxy account ID, instead of the user ID, is used to access the password cache.

The proxy account credentials can be stored in an extended property of the default profile schema or by some other means. Extending the profile schema must be performed through the Profile Designer in Commerce Server Business Desk. For information about this procedure, see Adding Properties to a Profile Definition.

To track individual users when using proxy accounts, add the custom guid property to the ticket using the AuthManager object. Once set, the AuthFilter uses the guid property to access the password cache instead of the proxy account ID. For more information about this technique, see Distributed Denial of Service Attacks.


Web Farms

On a Web farm, the AuthFilter allows an authenticated user on one server access to a site on another server without the user having to resubmit login information. However, if the request is sent with the Post method using non-sticky load balancing, any information contained in the header body is lost during the required redirection. Only use the Post method with sticky load balancing. If using non-sticky load balancing, always use the Get method (and HTTPS if concerned about security).

When using the AuthFilter, follow these deployment scenarios:

  • Have all sites in the same directory, for example, www.microsoft.com/bookstore and www.microsoft.com/msdn. Do not have one site in the subdirectory of another site, for example, www.microsoft.com and www.microsoft.com/bookstore.

  • Use dissimilar names for sites in the same directory. A site name should not be a subset of another site name, for example, www.microsoft.com/retail and www.microsoft.com/retail2.

These requirements are due to the dependence of the AuthFilter on cookies. If the AuthFilter is not used and the ticket is placed in a URL query string, a site can be in a subdirectory of another site.

When the authenticated user arrives at a new server for the first time, the following steps are performed:

  1. The AuthFilter checks for the correct URL (auto-corrects for case sensitivity).

  2. The AuthFilter checks for session-cookie support.

  3. The AuthFilter checks for the MSCSAuth ticket.

  4. The AuthFilter checks that the MSCSAuth ticket is valid (by comparing the current time to the last login time plus the time window specified on the ticket).

  5. Since the password cache is not shared between hosts, and this is the first time the user visited this site, there is no entry in the cache corresponding to the user ID in the ticket. Detecting this, the AuthFilter resets the MSCSFirstRequestedURL cookie property to the current requested URL.

  6. Processing is passed to the login page.

  7. On the login page, once it is verified that this is not a Submit action and the user has a valid MSCSAuth ticket, the user ID is retrieved from the ticket and used to retrieve the profile of the user.

  8. The password of the user is retrieved from the profile and appended to the requested URL query string along with the user ID. The password must be available in clear text. For more information about using a clear text password, see Clear Text Password in Active Directory.

  9. The user is redirected to the requested URL and, when notified of the event by IIS, the AuthFilter removes the user ID and password from the query string and places them into the cache.

  10. When the browser resubmits the request, the AuthFilter checks the cache, finds the corresponding entry, and checks if the current time is within the time window.

  11. If the current time is within the time window, the AuthFilter passes processing to IIS.

  12. If the user has access rights to the requested URL, it is processed and returned by IIS.

Web Farms Using Proxy Accounts

Consider a user, with a valid ticket which contains a proxy account ID, who visits a new site on a Web farm. The AuthFilter uses the proxy account ID to retrieve the profile of the user. Since the proxy account ID does not have a profile associated with it, the ticket is considered invalid. The user is denied access and is redirected to the login page. For more information, see Proxy Accounts.

To circumvent this, add the custom guid property to the ticket using the AuthManager object. Once set, the AuthFilter uses the guid property to access the password cache instead of the proxy account ID. When the GUID is not found in the password cache, the AuthFilter uses the user ID from the MSCSAuth ticket, instead of the proxy account ID, to look up the profile. In this case, the profile should exist, and the user is redirected to the originally requested URL. For more information about this technique, see Distributed Denial of Service Attacks.


Custom Authentication Mode

This operating mode of the AuthFilter ISAPI filter allows the site developer to provide custom authentication services while still using the base services of the AuthFilter.

In this mode, the AuthFilter performs the following steps after being notified that an SF_NOTIFY_PREPROC_HEADERS event has occurred:

  1. Checks for site configuration properties in the local site cache and, if not found, reads the site configuration properties from the Administration database using a SiteConfig object and stores them in the site cache.

  2. Detects whether the requested URL is correct, and automatically corrects for case sensitivity in the URL.

  3. Checks for session-cookie support, and, if unavailable, redirects the user to the Active Server Pages (ASP) page specified in the s_NoCookie_Form ("No-Cookie form" in the Commerce Server Manager user interface) property of the CS Authentication resource. Usually this page notifies the user that cookies are required and that the user should resubmit the request once cookies are enabled.

  4. Checks whether the cookie contains an MSCSAuth ticket, and if not redirects the user to a login page.

  5. If the cookie contains an MSCSAuth ticket, checks the current time against the last login time on the ticket to see if it is within the time window specified in the ticket.

  6. If the current time is past the time window specified in the ticket, the user is redirected to the login page as an non-validated user.

  7. If the current time is within the time window, the ticket is considered valid, and the user is redirected to the login page as a validated user. 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 an active user can remain browsing.


Autocookie Mode

Autocookie mode allows anonymous users to be tracked between pages and across sessions. A unique ID is generated to identify the user and, if required, a profile is created to store information about the user. For a code example showing these steps, see Code to Set a New MSCSProfile Ticket.

When a user sends a request to access a site, the AuthFilter ISAPI filter performs the following steps after being notified by Internet Information Services (IIS) that an SF_NOTIFY_PREPROC_HEADERS event has occurred:

  1. Checks for site configuration properties in the local site cache and, if not found, reads the site configuration properties from the Administration database using a SiteConfig object and store them in the site cache.

  2. Checks whether the URL is correct, automatically correcting for case sensitivities.

  3. Checks for cookie support on the browser.

  4. If cookies are not supported, the user is redirected to the Active Server Pages (ASP) page specified in the s_NoCookie_Form ("No-Cookie form" in the Commerce Server Manager user interface) property of the CS Authentication resource. Usually this page notifies the user that cookies are required and that the user should resubmit the request once cookies are enabled. By default, an ASP page, named nocookie.asp, is supplied for this purpose. This file is located in the AuthFiles folder in the Commerce Server installation directory.

  5. If a cookie is returned, the AuthFilter checks whether it contains an MSCSProfile ticket.

  6. If the MSCSProfile ticket exists, the AuthFilter uses a valid Windows user account to impersonate the user in IIS.

  7. If the requested URL has anonymous access rights, the URL is returned.

  8. If the ticket does not exist, the user is redirected to the ASP page specified in the s_AutoCookie_Form ("AutoCookie Form" in the Commerce Server Manager user interface) property of the CS Authentication resource.

AutoCookie Page

All the preceding steps are transparent to the site developer. The following actions take place in the autocookie page, which must be supplied by the site developer:

  1. Persistent cookie support is checked, and if unavailable, the user is redirected to the no-cookie page.

  2. If persistent cookie support is enabled, a globally unique identifier (GUID) or another unique ID is created to identify the user.

  3. The unique ID is set into an MSCSProfile ticket for the user.

  4. At this point a profile can be created to store information about the anonymous user.

  5. The user is redirected to the requested URL.

A default page, autocookie.asp, showing much of this functionality is supplied with the installed product and located in the \Microsoft Commerce Server\AuthFiles folder.


Windows Authentication with Autocookie Mode

This topic describes the mixed authentication mode of Windows Authentication with Autocookie. This mode accepts both anonymous and registered users and allows tracking of both types. This mode is useful for sites where part of the content is available to everyone and the rest is available only to registered users.

The primary differences between this mixed mode and Windows Authentication mode are as follows:

  • The mixed mode allows tracking of anonymous users.

  • In mixed mode, an anonymous user must have a valid MSCSProfile ticket to access any URLs regardless of the access control list (ACL) settings. In Windows Authentication mode, an anonymous user does not need a ticket and can access any URL with anonymous access rights.

For more information about Window Authentication mode, see Window Authentication Mode. For more information about Autocookie mode, see Autocookie Mode.

Anonymous Users Who Register

A user who visits a site anonymously receives an MSCSProfile ticket. If the user decides to register, they receive an MSCSAuth ticket. The user now has two cookies in the HTTP header containing different tickets. The order of the tickets is unknown and can vary between requests. The AuthFilter is aware of this and automatically searches all cookies for an MSCSAuth ticket before searching for an MSCSProfile ticket.

Both cookies get logged in the Web log file in the order they appear in the HTTP request header. The Web server log import DTS task imports the first cookie it finds. The one user can appear to be two users to the DTS task if it finds hits in the log file with the cookies in different orders. This compromises the ability to track the user and may produce erroneous visit and user calculations.

The solution is to map the user IDs from both the MSCSAuth ticket and the MSCSProfile ticket to the same user ID. Then set the MSCSProfile ticket to an empty string, which causes the MSCSProfile ticket to be deleted.


Custom Authentication with Autocookie Mode

This section describes the mixed authentication mode of Custom Authentication with Autocookie. This mixed mode allows both registered and anonymous users access to the site, and allows tracking of the anonymous users through persistent cookies. Instead of controlling access through Windows access control lists (ACLs), the site developer can supply a custom authentication process.

Anonymous access is enabled by performing the following steps:

  1. Set the CS Authentication resource property, b_CookiePath_ApplicationScope (uncheck the "Set cookie path to application" check box in the Commerce Server Manager user interface), to False.

  2. On the login page, provide a link to a separate virtual directory root that is not under the current virtual directory root. Keep all of the anonymous access content under this separate virtual directory root.


Working with Pipelines

A Commerce Server 2000 pipeline is a software infrastructure that links one or more components and runs them in sequence. Commerce Server 2000 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 2000 pipelines.

  • Pipeline Editor. Explains how to use the Pipeline Editor to create pipelines from templates, modify existing pipelines by changing properties, and how to create custom pipelines.

  • Order Processing Pipeline. Describes the various types of Commerce Server 2000 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 used 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.

See Also

Pipeline 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, 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 2000 provides six objects to execute pipelines: MtsPipeline, MtsTxPipeline, PooledPipeline, PooledTxPipeline, OrderGroup, and OrderPipeline. The MtsPipeline and PooledPipeline objects do not support transactions. The MtsTxPipeline and PooledTxPipeline objects do support transactions.

Note

  • In Commerce Server 2000, pipelines are often called indirectly through the RunPipe method of the OrderGroup object.

Pipeline configuration files (.pcf files) are usually marked in one of 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.

Notes

  • Microsoft Application Center 2000 Component Load Balancing (CLB) can be used with Commerce Server pooled pipelines. Setup registers the Commerce Server pipeline as a COM+ package. In order to use it with CLB, you must go into the Component Services Microsoft Management Console (MMC) and change the Activation type of the package from "Library application" to "Server application." The pipeline object itself will be pooled by CLB, but pipeline components are not load balanced. This means that you cannot register any component that runs inside of a pooled pipeline as a COM+ application.

  • Setup also registers the Commerce Predictor Build Watcher component and the Commerce Event Logging component in COM+ packages. However, neither package should be used with CLB. These packages are created so that they can be used for administrative alert monitoring with distributed COM (DCOM), but there is no benefit to using them with CLB.

Designing Pipelines for Your Site

As the designer of the pipelines for your site, you 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 define the circumstances under which the pipeline is to stop processing. As each component in the pipeline executes, 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 that component. If you configure a stage to tolerate only success, and the component returns a warning, the pipeline stops processing, and returns an error.


Pipeline Editor

The Pipeline Editor is an application used for 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.

This screenshot depicts the Pipeline Editor with callouts that label stages and components

Click the illustration to enlarge or reduce.

Certain components have an affinity with certain stages. This means that the component can function 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. 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 2000, 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.

  4. The Pipeline Editor opens containing the .pcf file you selected to edit.

See Also

Creating a New Pipeline

Creating a Custom Pipeline


Creating a New Pipeline

Commerce Server 2000 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 2000, 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, enter 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

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 a particular component needs must exist in the order form before the component can successfully complete its function. 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 needing those values.

To add a component to a pipeline using the Pipeline Editor

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2000, 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 where 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 area. 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.

    The Stage Properties dialog box appears.

  7. 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 3.0 Commerce Edition 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 Specify the error level for the stage.

    For more information about error level values, see Error Levels.

    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.

  8. Click Apply, and then click OK.

  9. On the File menu, click Save.

See Also

Changing the Order of Components in a Pipeline Stage

Creating a List of Values Read and Written

Using the Pipeline Editor Property Pages


Changing the Order of Components in a Pipeline Stage

You can move a component up or down within its stage by using the up and down arrow buttons in the Pipeline Editor.

To move a component in the Pipeline Editor

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2000, and then click Pipeline Editor.

  2. On the File menu, click Open, and then select the pipeline you want to modify.

  3. Right-click the name of the component, and then click either Move Down or Move Up.

  4. On the File menu, click Save.

See Also

Adding a Component to a Pipeline


Creating a List of Values Read and Written

Each component in a pipeline reads values from the order form, performs its function, and then writes values to the order form. Components that execute 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.

With the Pipeline Editor, you can create a text file that lists each component of a pipeline in the order in which it is executed. The text file lists all of the components executed by the pipeline, including the required components. (The required component always executes 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 pipeline object's Execute method)

To create a list of all values read and written

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2000, and then click Pipeline Editor.

  2. On the File menu, click Open, and then select the pipeline you want to modify.

  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 provide 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 2000, 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 an individual component.

  • Values Read and Written Properties. Describes how to view the values read and written properties for an individual component.

  • Creation Error Properties. Describes the error dialog box that appears when a pipeline component cannot be loaded.


Pipeline Properties

Use the Pipeline Properties dialog box to change the name of the pipeline, specify its transaction compatability, 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 and Commerce Server 2000 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 2000. Mixing Site Server 3.0 Commerce Edition components and Commerce Server 2000 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, 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. Active only if Currency (high precision) is specified for Currency Mode.

  • Description. An area for you to enter comments about this pipeline.


Stage Properties

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 stops running and generates an error.


Component Properties

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.

  • ProgID. Specifies the easily recognizable ID for the component. This ID never changes.

  • Description. An area for you to enter comments about this component.


Values Read and Written Properties

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


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 DLL associated with the component is properly registered.

  • If neither of the above solutions corrects 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 Commerce Server 2000, 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.

    The Pipeline Properties dialog box appears.

  5. In the Pipeline Properties dialog box, do the following:
    Use this | To do this
    Label | Type a new 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, 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.

    The Stage Properties dialog box appears.

  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 2.0.

    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. Use 1 for RunProduct, 2 for RunPlan, and 4 for 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.

    The Choose a component dialog box appears.

  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 links several components and runs them in sequence on an OrderForm or Dictionary object. Commerce Server 2000 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 using discount components.

  • Inventory Objects. Explains how to check and reduce inventory using inventory components.

  • Shipping Objects. Describes the multiple-shipment shipping architecture and how to use Site Server 3.0 shipping components in Commerce Server 2000 pipelines.

  • Tax Objects. Explains how to use tax components with the multiple-shipment shipping architecture in Commerce Server 2000.

  • Business-to-Consumer Pipelines. Describes the business-to-consumer pipelines: the Product, Plan, and Purchase pipelines. These pipelines are used in Commerce Server sites designed for retail shopping by the public.

  • Using Order Processing Pipelines. Explains how to use Order Processing pipeline components in Commerce Server sites.

  • Order Processing 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 with ensuring the items ordered are in inventory, and another with checking 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 a category of work. Thus, a typical OPP may 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 pipeline components so that they do not overwrite the work done by another component. (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 executes, 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.


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 will 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 may 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 either need to replace these components with other components included in Commerce Server 2000 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 2000, 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 may 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 only Commerce Server 2000 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 2000, 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.

This section contains:

  • Currency Overview. Describes how Site Server 3.0 Commerce Edition and Commerce Server 2000 represent currency values.

  • Currency Modes. Explains the two modes Commerce Server 2000 pipelines use 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.

  • New 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, US pennies. This representation set a relatively low limit on the maximum value that could be represented.

Commerce Server 2000 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 2000 uses a direct decimal representation ($1.99 is stored as 1.99).

Commerce Server 2000 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

New Data Functions


Currency Modes

In Commerce Server 2000, 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 2000 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 2000 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 2000 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

New 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 2000 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 2000 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

New Data Functions


New Data Functions

Commerce Server 2000 provides two new 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 using a specified locale and currency symbol.

See Also

Currency Overview

Currency Modes

Rounding


Discount Objects

Microsoft Commerce Server 2000 provides a flexible and powerful way to apply and manage discounts. The Content Selection Framework processes discounts 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 discounts through the Commerce Server Business Desk, see Adding a Discount Campaign Item. For information about the Content Selection pipeline, see Content Selection Pipelines.

This section contains:

  • Overview. Describes the basic parts of a discount: requirements, conditions, awards, and offer. Also described are the differences between order-level and item-level discounts.

  • How Discounts Are Applied. Describes how the condition, award, and offer are evaluated in order to apply discounts to the purchases in the basket.


Overview

In Microsoft Commerce Server 2000, discounts have four parts. In addition, discounts can apply to either 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. 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 may be an expression, that the discount applies to any item, or that it applies 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 dollar amount off 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


How Discounts Are Applied

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 may be limits 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 Production Refresh module in 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 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 sub dictionary of the Context dictonary) must be passed, and the promotional code entered must be set.

See Also

Discount Overview


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, may 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 stages to reduce the local inventory once the items have been purchased.

This section explains how to use the inventory components included in Commerce Server 2000, and explains how you can use Commerce Server to address issues that arise in the context of inventory control.

Inventory and Backordering

Reducing Inventory

Inventory and Backordering

How you manage inventory in 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

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 using the property page for the component. If the Disallow Backorder check box is selected, and evaluates to zero (0), the FlagInventory component adds a _pur_out_of_stock message to the _Purchase_Errors SimpleList object. If the Disallow Backorder component 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 for executing a SQL query that updates the product inventory.

Note

  • You must unpackage 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 2000, 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 pipline, select the Inventory stage, and then on the Edit menu, point to Insert Component, and then click After.

  4. On 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 OLEDB 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 a 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 may 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 several 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 larger 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 in the Accept stage (Purchase pipeline). Following this component, you would include the SQLItemADO component. The inventory component would execute the query to decrement the in-stock value for the item.


Shipping Objects

Microsoft Commerce Server 2000 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.

  • 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 2000 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. 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.

  • The Shipments and Addresses 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

The multiple-shipment shipping architecture of Commerce Server 2000 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 the 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 Method module in Commerce Server Business Desk.

The following figure illustrates the relationships between all of the parts of the shipment component process.

This diagram illustrates how the Splitter component and the ShippingMethodRouter component work with other objects to process shipments
ShippingMethodRouter
ItemIndexes
(SimpleList)
ShippingMethodManager
ShippingConfig
database table
Pipeline Execution
. . .
address1
last_name
Address Dictionaries
first_name
Orderform.addresses
(SimpleList)
Business Desk
ShippingManagerCache
Shipping Pipeline Components
ItemIndexes
_cy_shipping_total
shipping_method_id
Shipment Dictionaries
shipping_address_id
Orderform.shipments
(SimpleList)
Context.shipments_to_process
(SimpleList)
Splitter

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 Method 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 | Determines the shipping method, runs the individual shipping components, and calculates the total shipping costs for the order.
StepwiseShipping | A pipeline component that 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 may 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 | The loader component used by the CacheManager object to handle data from the ShippingConfig database table.
Shipping Object | The 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 since they may 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 Shipments and Address Structures.

Handling charges, however, are calculated based on the order, rather than the individual shipment.

See Also

Setting Up the Pipeline and Cache

Using the Splitter Component to Create Multiple Shipments

Previewing Shipping Costs

Adding Shipping Methods and Components

Shipments 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=sa;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

Shipping Overview

Using the Splitter Component to Create Multiple Shipments

Previewing Shipping Costs

Adding Shipping Methods and Components

Shipments and Address Structures


Using the Splitter 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. You can specify other keys to use as criteria in the Input Distinguishers box on the Component Properties tab.

Each line in the following table would represent a dictionary pointed to by an element of the SimpleList object.The dictionaries also include a key, ItemIndexes, that 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 the previous information were split by the distinguishers shipping_method_id and shipping_address_id, to an output struct 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 the the four lineitems by vendor, to an output struct called _Vendors, a simplelist of dictionaries will be on your orderform 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

Shipping Overview

Setting Up the Pipeline and Cache

Previewing Shipping Costs

Adding Shipping Methods and Components

Shipments 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 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

Shipping Overview

Setting Up the Pipeline and Cache

Using the Splitter Component to Create Multiple Shipments

Adding Shipping Methods and Components

Shipments 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. These edit pages should be implemented by the component writer 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 table. This data is processed by the ShippingCommon_edit.asp page using edit fields in the top section. 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 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 menu 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 and install and register the custom DLL containing the shipping component (for example, Minmaxatl.dll). When Business Desk has been reloaded, your custom module should appear on the menu of the Shipping Methods module list page. When editing this method, your custom components should display in the lower section of the edit page.


Shipments 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 name.
country_code | Country 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

Shipping Overview

Setting Up the Pipeline and Cache

Using the Splitter Component to Create Multiple Shipments

Previewing Shipping Costs

Adding Shipping Methods and Components


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 the ShippingDiscountAdjust components from the pipeline. Site Server 3.0 components do not support the multiple-shipment shipping architecture used in Commerce Server 2000. You must also revert to Site Server 3.0 tax components, because tax components typically look at address and shipment information. And if you are using a site that has a Commerce Server 2000 an Active Server Pages (ASP) code base, code changes will also be necessary.

The _cy_shipping_totoal 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 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


How to Use 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 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 sum total of the weight of the items in the order form, you may also need to modify the Product Information stage to ensure that this product information is present in 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 SiteServer 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 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 TableShppingADO component into the pipeline

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2000, 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 pipline 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 executed 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 in the order form, and the ship_cost query is run.
    Method | Leave blank.
    Connection String | The connection string on which the query in the Query box is executed.
    Query | Type the name of the query to be executed. 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 the following in mind:

  • If your query references an item in the item Dictionary, you should make sure that the query that you execute 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 execute a query that retrieves this column to storage in the item Dictionary.


Tax Objects

Although Microsoft Commerce Server 2000 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.

Note

  • The tax components shipped with Commerce Server 2000 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.

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 pipeline components. For information about using Site Server 3.0 Commerce Edition shipping methods, see Using Site Server 3.0 Commerce Edition Shipping Components.

All components in the Tax stage will execute (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; otherwise, the component will not execute.

In each of the tax components, the country name can be specified as a parameter even though the name of the country 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 to which it applies. For example, another country may actually use a tax model similar to Canada. Because the country name is specified, the tax model (and its corresponding component) can be used for more than one country.

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 on individual products. This pipeline is often used to compute information that is displayed on the Product.asp page.

  • Plan Pipeline (Plan.pct). Runs OPP components that present the user with an order total, including all promotional discounts, taxes, 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 on individual products. This pipeline is often used to compute information that is displayed on the Product.asp page.

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 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 one (1).

After the Product Info components have been executed, the RequiredProdInfo component in the Product Info stage goes through the items list, deleting every item marked for deletion.

The components related to 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 2000 Product Catalog System. Marks missing items for deletion and adds basket errors if necessary.
QueryProdInfoADO | Executes 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 components related to this stage are shown in the following table.

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 on 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 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 components related to this stage are shown in the following table.

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 (Product Pipeline)

The Item Adjust Price stage contains components to initialize the value of the_iadjust_currentprice key. When the stage is complete, _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 _iadjust_regularprice key.

Once 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 executed 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 2000 Targeting System to apply item and order discounts.

The components related to this stage are shown in the following table.

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 components related to this stage are shown in the following table.

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 one (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 components related to 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 2000 Product Catalog System. Marks missing items for deletion and adds basket errors if necessary.
QueryProdInfoADO | Executes a database query, using Microsoft ActiveX Data Objects (ADO). This component differs from the QueryProdInfo component in that the query that it executes can take multiple parameters, and can reference a query in the QueryMap dictionary.
RequiredProdInfo | Deletes any 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 2000 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 components related to this stage are shown in the following table.

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 components related to this stage are shown in the following table.

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 components related to this stage are shown in the following table.

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 components related to this stage are shown in the following table.

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.

Once 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 executed 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 2000 Targeting System to apply item and order discounts.

The components related to this stage are shown in the following table.

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 components related to this stage are shown in the following table.

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 components related to this stage are shown in the following table.

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 components related to this stage are shown in the following table.

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, this 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 order._handling_total key is set. If not, it generates an error.

The components related to this stage are shown in the following table.

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. For information about how these components interact, see Tax Objects.

The components related to this stage are shown in the following table.

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 2000.
SimpleCanadaTax | Computes taxes for Canada, including GST (goods and services tax) and PST (provincial sales tax).
SimpleJapanTax | Computes the taxes for the Japanese model.
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 components related to this stage are shown in the following table.

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 components related to this stage are shown in the following table.

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 contain 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 components related to this stage are shown in the following table.

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 components related to this stage are shown in the following table.

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 components related to this stage are shown in the following table.

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 Pipeline

The Order Processing pipelines (OPP) provide much of the functionality for a working Web site, therefore understanding the components and processes of the OPP 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. 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. Describes how to use Microsoft Visual Basic Scripting Edition (VBScript) in a Scriptor pipeline component to display the contents of an OrderForm dictionary.

  • Send a Purchase Confirmation by E-mail. Describes how to automatically send a purchase confirmation by e-mail when a new order is received.

  • 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 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, _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 on an 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 item. 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. Used to check for price changes during a purchase.
item.delete | A flag indicating the item should be deleted from the order. 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. Used by the OrderDiscount object.
item.list_price | The 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 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 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. Part of the multiple-shipment shipping architecture.
order.shipment._cy_tax_total | Total tax for the shipment. Part of the multiple-shipment shipping architecture.
order.shipments | A SimpleList object of dictionaries, one dictionary per shipment. Part of the multiple-shipment shipping architecture.
order.shipments._cy_shipping_total | The shipping totals for each individual shipment. 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 on 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 on an OrderForm

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 in a page, you may make a direct assignment:

    objOrderForm.shopper_id = objPage.GetShopperID()

  • 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.

  • 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 page:

<%@ LANGUAGE=VBScript Transaction=Required%>

When you mark a 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 a 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, see "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 a 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 builder. 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 database, and a component following them fails, the modifications the components made to the 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

Error handling in a Commerce Server 2000 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 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 may 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, the error condition is ignored. 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.

See Also

Error Levels


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 using the DumpOrder sample Scriptor component. The DumpOrder sample is available in the Order Sitelet at: <Drive>:\Program Files\Microsoft Commerce Server\SDK\Samples\Sitelets\Order\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 executed, 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 fails 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.

The 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\SDK\Samples\Sitelets\Order\source\pipeline subdirectory. When it runs, DumpOrder 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 its 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 file (or click Browse to find it).

  3. DumpOrder 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. DumpOrder 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


Send 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 desired 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 messages

Step 3: Adding the Scriptor Component to the Pipeline

Step 4: Adding the SendSMTP Compoent 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 executed by a 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 executed 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 execute 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 2000, 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.

    The Component Properties dialog box appears.

  5. On 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 order form 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. On 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 button.

    The test e-mail message will appear in the inbox of the specified recipient.

  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, once 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 desired e-mail reply, you may 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. 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 write the result to the _email_body name/value pair in the order form.

Insert after the MakePO component the SendSMTP 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, pipeline context information, create other objects, and even execute 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 using the Component Properties dialog box. For more information about using the Component Properties dialog box, see Configuring a Scriptor Component.

Scriptor Methods

When you 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 executes the code that you write.

The script that you write for your MSCSOpen subroutine is executed immediately after the Scriptor component is created. The MSCSExit subroutine is executed 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 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 execute. 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 2000 pipeline components run in a linear fashion, certain coordination must exist between those components. Component coordination is critical when multiple components exist within the same stage but only some of the components in the stage will be implemented. The components that are implemented correlate to the actions of the Web site user. For example, the Payment stage may 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 2000 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 compatable components, but usually is not neccessary 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 only have one tax component in your pipeline. Having only one tax key makes 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 Component Reference

The following components are commonly run in the Order Processing pipeline (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.

  • Stages and Components of the Direct Mailer Pipeline Describes the individual stages in the pipeline and the components most often used in those stages.

  • 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 to screen recipients, personalize e-mail, and 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 there being 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 rcp_bypass 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. Commerce Server 2000 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 2000 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 2000 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, using the profile service to obtain the user profile, and finally 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 mail 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. For more information, see Creating a Direct Mail Campaign.

On the Campaign Manager <Customer> <Campaign> New (direct mail) screen, in the Direct Mail Properties section, 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 checkbox.
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")

as descibed in the comments of the ServiceReminder.asp code.

For more information about sending a test message, see Testing a Direct Mail Campaign.


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. Depending on where you send direct mail from opt-out links will have different effects on your mailing lists.

For Direct Mail sent from the Business Desk

The unpacked site associated with the 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 campaign name. When a user clicks on the opt-out link on the direct mail message sent from the business desk the user will be added to the opt-out list for the particular campaign that the direct mail was sent from. If the user is on mailing lists for multiple campaigns they 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 would include a link to this 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 the user was not previously on the campaigns opt-out list and they click the opt-out link in the test mail, they 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 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, and the recipient clicks the opt-out link they will be added to the opt-out list for the campaign. If the recipient was on multiple campaign mailing lists they 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 2000 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.

  • Content Selection Pipeline. Describes the stages and components of the Content Selection pipeline.

  • Event Processing Pipeline. Describes the stages and components of the 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 a 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 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 2000 includes no components for this stage. This stage is provided for custom extensions to CSF or for future enhancements to Commerce Server 2000.

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 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 of an item.

Format Stage

Microsoft Commerce Server 2000 includes no components for this stage. This stage is provided for custom extensions to CSF or for future enhancements to Commerce Server 2000.


Using Content Selection Pipelines

Using Content Selection pipelines included in Microsoft Commerce Server 2000 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 CSO were a ContentSelector object, then the line of code would appear as follows:

oContentSelector.Trace=True

You should not turn trace mode 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 loaders play an important role in Content Selection pipelines:

  • CSFLoadAdvertisements

  • CSFLoadDiscounts

  • CSFWriteEvents


Pooled Pipelines

Pooled pipelines are a Commerce Server 2000 feature that significantly speeds up pipelines. Commerce Server 2000 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 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 2000 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_POOLABLE, to the component to make it poolable.

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 re-started. 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.

Notes

  • Microsoft Application Center 2000 Component Load Balancing (CLB) can be used with Commerce Server pooled pipelines. Setup registers the Commerce Server pipeline as a COM+ package. In order to use it with CLB, you must go into the Component Services Microsoft Management Console (MMC) and change the Activation type of the package from "Library application" to "Server application." The pipeline object itself will be pooled by CLB, but pipeline components are not load balanced. This means that you cannot register any component that runs inside of a pooled pipeline as a COM+ application.

  • Setup also registers the Commerce Predictor Build Watcher component and the Commerce Event Logging components in COM+ packages. However, neither package should be used with CLB. These packages are created so that they can be used for administrative alert monitoring with distributed COM (DCOM), but there is no benefit to using them with CLB.


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.

Changing Pool Properties of Components

Monitoring 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, and 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.

The new pool properties are saved.

Monitoring 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


Integrating with BizTalk Server

The Solution Sites for Microsoft Commerce Server 2000 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 using Commerce Server Manager. These configuration settings are used to conditionally execute code within the Solution Sites that implements the integration with BizTalk Server. The remainder of this section provides some additional details regarding these areas of integration.

This section contains:

  • 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.

See Also

Using BizTalk Server and Commerce Server


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 of 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 the perspective of the vendor providing the catalog.

This topic contains:

  • Importing Catalogs in the Commerce Server XML Format. Describes the process of importing product catalogs received from various vendors.

  • Generating Catalogs in the Commerce Server XML Format. Describes the process of exporting a product catalog for those vendors using Microsoft Commerce Server 2000.

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 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 (IE). IE 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 via 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.


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 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 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 using the 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.

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 annotations in bold italics, and 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


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.

The Commerce Server Business Desk makes extensive use of two such style sheet files: Bizdesk.css and 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. The appearance of the Business Desk can be changed is by making modifications to these style sheets. For more information about the styles defined in these style sheet files, see Style Sheet Reference.

Important

  • Extreme care should be exercised when changing styles since undesired effects may be caused in other areas of the Business Desk.


Modifying Your Site for an International Audience

Microsoft Commerce Server 2000 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:

  • 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. It also describes strategies for presenting product prices in different currencies.


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:

  • Creating distinct Web sites for each language. If your site contains mostly static HTML pages, consider using pre-generated pages. 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, currency, and date/time formatting.

    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.

  • Storing the language choice in the user profile. Another option for tracking a language choice is to persist the choice made by each user in the user profile. This approach requires you to add a language property to the user profile, which you initialize when the user first chooses a language, or changes languages. Each page retrieves the user profile and then uses the value stored in the language property to make the appropriate selections for text, currency, and date/time formatting. This is a cost-effective method of storing language preferences, because the only performance cost involved is retrieving and updating the profile.


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.

Though 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, rather than having a single product description property that stores the description of a product in a single, default language, the schema can be extended to contain multiple description properties, one for each language that is supported.

    For example, instead of having a short_description property, you could define three description properties, as follows: short_description_en for the English version, short_description_fr for the French version, and short_description_nl for the Dutch version. Then, based on the language choice of the user, your Active Server Page (ASP) code can dynamically request the appropriate description value to display.

    For more information about changing the product catalog schema, see Changing Catalog Schema.

  • 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 below:
    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 the version of the string in a different language.

    An instance of the MessageManager object is typically created and loaded with messages in the file Global.asa. 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 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 occurs.

    For more information about using the MessageManager object, see MessageManager Object and Display Objects.

  • 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. The recommended technique is similar to that used for supporting multiple languages in the Product Catalog System.

    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.


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

For more information about these objects, see Display Objects.


Localizing Currencies

On Web sites that support multiple languages, rendered pages must display currency values in the format appropriate for the language chosen by the user. Further, the price of any given product needs to be displayable in multiple currencies.

This topic contains:

  • Objects for Manipulating Currencies

  • Presenting Product Prices in Multiple Currencies

  • Other Currency Issues

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 Display Objects.

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 reference currency. For example, you can store your prices in U.S. dollars or European euros, and then recalculate prices in other currencies dynamically, as needed. To calculate prices based on the reference currency, you need to create an exchange rate table that specifies the rates for other currencies in comparison to the reference currency. The exchange rate table should contain the following fields:

  • Currency symbol

  • International Standards Organization (ISO) currency code

  • Exchange rate

  • Display format

An example of an exchange rate table is shown below.

Currency symbol | ISO currency code | Exchange rate | Display format
$ | USD (U.S. dollar) | 1.0 | ####.##
Ł | UKP (U.K. pound sterling) | 1.2 | ####.##
F | BEF (Belgian franc) | 0.023 | ######,00
€ | EUR (European euro) | 0.9 | ####.##

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.

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.

Other Currency Issues

You may need to change the currency mode settings within the pipeline configurations to accommodate your choice of locale.


Migrating the Membership Directory

The Directory Migration Toolbox is a collection of components that you use to migrate a Site Server 3.0 Membership Directory to a Commerce Server 2000 user profile store.

This section describes the architecture of the components and how to migrate the Membership Directory, and is intended for use by the system administrators and site developers responsible for migrating a site based on Site Server 3.0 to Commerce Server 2000. Before you use the Directory Migration Toolbox, you should be familiar with the documentation for both products.

This section contains:

  • About the Directory Migration Toolbox. Describes the components in the Directory Migration Toolbox.

  • Planning for Migration. Describes issues you must consider before beginning your migration.

  • Preparing for Migration. Explains how to pre-populate Active Directory groups in the Profiles data store, and how to map attributes in the Membership Directory to attributes in the Profiles data store.

  • Starting the Migration Process. Explains how to start the migration process.

  • Troubleshooting with the Migration Log File. Explains how to investigate problems using the migration log file.

  • Verifying Successful Migration. Explains how to verify that the migration process is working correctly.

  • Programmer's Reference for Migration. Provides reference pages for the migration Component Object Model (COM) objects supplied with Commerce Server, and for each of the associated properties and methods.


About the Directory Migration Toolbox

The Directory Migration Toolbox contains the following components that you use to migrate users from the Site Server 3.0 Membership Directory to the Commerce Server Profiles data store:

  • Source Code for Migration Components. Provides the source code for the migration components so you can modify them as needed, and provides an example of C++ source code used to migrate a single user profile.

  • Groups Pre-Population Tool. Pre-populates Active Directory groups in the Profiles data store, if you need to use groups.

  • Migration ProfileBuilder Tool. Maps attributes in the Membership Directory to attributes in the Profiles data store.

  • Directory Migration Tool. Migrates profiles from the Membership Directory in batch mode or on-demand mode.

  • Subgroup Manager. Modifies code that determines where a user is stored in Active Directory. The Subgroup Manager helps you determine group membership.


Source Code for Migration Components

The Directory Migration Toolbox includes compiled versions of the components you can use to immediately migrate your Site Server 3.0 Membership Directory to the Commerce Server Profiles data store. In addition, the Toolbox includes the source code for all of the components so you can modify them to meet your needs.

The source code for these components is located in the following folder:

<Drive>:\Program Files\Microsoft Commerce Server\SDK\Tools\MembershipMigration

The following table lists the subfolders in the MembershipMigration folder, and describes the components in each subfolder.

Subfolder | Description
\bin\release | Pre-compiled binaries of the Directory Migration objects and the migration test client.
\Client | C++ source code for a simple client to migrate a single user profile.
\GroupMigration | Microsoft Visual Basic source code for the tool used to pre-populate Active Directory groups before migrating user profiles.
\include | Include header files used when you build the objects.
\MigrationLogObj | C++ source code for the MigrationLogObj object of the Directory Migration Tool.
\MigrationMainObj | C++ source code for the MigrationMainObj object.
\MigrationModifyObj | C++ source code for the MigrationModifyObj object.
\MigrationReadObj | C++ source code for the MigrationReadObj object.
\MigUtil | C++ source code for the Migration Utility Library of the Directory Migration Tool.
\MigrationWriteObj | C++ source code for the MigrationWriteObj object
\ProfileBuilder | Visual Basic source code for the Migration ProfileBuilder tool, used to build the Extensible Markup Language (XML) configuration file used by the Directory Migration tool objects.
\SubGroupManager | Visual Basic source code for a helper object, used to determine the group in which a user belongs.

The Readme.htm file in the MembershipMigration folder contains important information about the Directory Migration Toolbox for this release of Commerce Server.

See Also

Programmer's Reference for Migration


Groups Pre-Population Tool

Use the Groups Pre-Population tool to pre-populate Active Directory groups, if you use groups in your installation. You can create groups in the Active Directory domain or forest as appropriate. Because you must create groups before you add users to them, run the Groups Pre-Population Tool before migrating users.

By pre-populating Active Directory groups, you can set access control lists (ACLs) on the file system before enabling your Commerce Server site.

See Also

Run the Groups Pre-Population Tool


Migration ProfileBuilder Tool

Use the Migration ProfileBuilder tool to map attributes from the Site Server 3.0 Membership Directory to the Commerce Server Profile data store.

When you run the Directory Migration tool, it reads an Extensible Markup Language (XML) file that maps the user attributes from the Membership Directory to the Profiles data store(s).

The Migration ProfileBuilder tool performs the following tasks:

  • Reads user attributes from the Membership Directory schema

  • Reads user attributes from the User Profile Object schema

  • Creates the XML configuration file read by the Directory Migration Tool

Note

  • To use this tool, you must have administrative privileges to view all domains in the Active Directory forest.

See Also

Run the Migration ProfileBuilder Tool


Directory Migration Tool

You can run the Directory Migration tool in either of the following modes:

  • Batch Mode. Migrates a range of sequential users.

  • On-Demand Mode. Migrates one user at a time, on an as-needed basis.

You can run multiple instances of the Directory Migration tool simultaneously. When both modes are used to migrate a directory, the batch mode migrates all users together. For users who access the site before their accounts are migrated, on-demand migration can be triggered so the user can proceed on the new site with minimal interruption. The migration objects are installed on one or more servers and will migrate a user upon request. In batch mode, a sequential range of users is migrated. In on-demand mode, one user at a time is migrated as they log in to the Commerce Server 2000 site. The file Login.asp in the <Drive:>\Program Files\Microsoft Commerce Server\SDK\Tools\MembershipMigration\Client directory can be used to migrate users on demand.

To track the status of each user migration, the Migration attribute is added to the Membership Directory user schema. The Migration attribute type is binary.

For each attribute that is migrated, the Directory Migration tool assigns True to the Migration attribute if the migration was successful, and False if the migration was not successful. If the migration was unsuccessful, check the log for the reason.

Note

  • The Directory Migration tool interprets the lack of a migrated attribute as "no migration attempted."

MigrationMainObj Object

The MigrationMainObj object is the primary object that manages the migration of individual users or ranges of users upon demand. It calls the objects in the following order for each user to be migrated:

  1. MigrationReadObj object

  2. MigrationModifyObj object

  3. MigrationWriteObj object

  4. MigrationLogObj object

If the MigrationMainObj object is configured to run in batch mode, it uses a filter to generate Lightweight Directory Access Protocol (LDAP) queries for user profiles matching the filter criteria (for example, user names starting with "Aaa" through "Adz"). This filter is used to help prevent LDAP time-outs. For more information about this filter, see Migration ProfileBuilder Tool.

The following figure shows how the Directory Migration tool processes a user profile.

ASP
<XML>
Figure showing how the Directory Migration tool processes a user profile
Migration Configuration
ProfileServices
Object
MigrationLogObj
MigrationWriteObj
MigrationModifyObj
MigrationReadObj
Commerce Server 2000
LDAP
Server
SQL Server 2000
Windows 2000 Active Directory
Membership Directory Store
MigrationMainObj

The Directory Migration tool performs the following steps to process a user profile:

  1. It retrieves information from an Extensible Markup Language (XML) configuration file that contains details on the objects to be used, and instructions for mapping the data to be read to the data to be written.

  2. The MigrationMainObj object receives a request to migrate a user profile.

  3. The MigrationMainObj object sends the request to the MigrationReadObj object.

  4. If the Migration attribute is not set to True or False, the MigrationReadObj object sets the Migration attribute to True, which prevents other instances of the Directory Migration tool from migrating the same user profile again. If the update succeeds, the migration process continues to the next step; otherwise it fails.

  5. The MigrationReadObj object retrieves the user profile from the Membership Directory.

  6. If indicated in the XML configuration file, the MigrationReadObj object calls the MigrationModifyObj object.

  7. The MigrationModifyObj object changes the user profile as specified, and then returns the modified buffer to the MigrationReadObj object.

  8. The MigrationReadObj object sends a pointer to the buffer to the MigrationMainObj object. If the MigrationReadObj object returns a failure, the MigrationMainObj object logs the failure, calls the MigrationReadObj object to set the Migration attribute to "Failed," and then prepares to process the next migration request.

  9. The MigrationMainObj object sends the buffer to the MigrationWriteObj object, which writes the user profile to the Profiles data store.

  10. The MigrationWriteObj object sends the write request to the ProfileService object. If it succeeds, the MigrationWriteObj object then adds the user profile to the appropriate groups, and updates the MemberOf attribute accordingly. If the write fails, the write is rolled back. If the rollback fails, the MigrationWriteObj object logs the rollback failure.

  11. The ProfileService object returns a success/fail return code on the write attempt.

  12. If the migration is an Active Directory migration, the MigrationWriteObj object adds the user to the proper groups through direct Active Directory Service Interfaces (ADSI) calls.

  13. The MigrationWriteObj object logs the success (or failure) of the write attempt and adds users to the appropriate groups when completed. The MigrationWriteObj object returns the success/fail code as appropriate.

  14. The MigrationMainObj object logs a successful or failed migration attempt and returns the success/fail return code to the calling component.

MigrationReadObj Object

The MigrationReadObj object reads the user profile attributes from the Site Server 3.0 Membership Directory. The MigrationMainObj object calls the MigrationReadObj object when each user profile is to be migrated.

The source code for the MigrationReadObj object is provided in the SDK\Tools\MembershipMigration folder.

MigrationModifyObj Object

You use the MigrationModifyObj object to modify user profile data as it is migrated. The MigrationModifyObj object is responsible for buffer management. Refer to the source code for examples of buffer management.

The source code for a MigrationModifyObj object is provided in the SDK\Tools\MembershipMigration folder

MigrationWriteObj Object

The MigrationWriteObj object writes the migrated user profile data to the ProfileService object. In addition, if the user is a member of a group, the MigrationWriteObj object adds it to the equivalent group in Active Directory.

MigrationLogObj Object

The MigrationLogObj object is used to create a transaction log, which you use to diagnose problems encountered during the migration process.

See Also

Programmer's Reference for Migration


Subgroup Manager

The SubGroupManager object is a helper object that is used in code that determines where a user in Active Directory is stored, as an aid to determining group membership.

It is a Visual Basic ActiveX dynamic-link library (DLL) and an associated test .exe file that takes as input the distinguished names of a user and the parent group.

Because of the effective limit of 5000 objects per group, most groups will require a series of sub-groups to fully contain the users of a large group. For example; in Membership Directory, a group named "friends" might exist with 10,000 users in the group. In Active Directory, you would create the master group "friends" and then create subgroups under this master group, which actually holds all of the users. You can identify one of these subgroups by the fact that it contains the name of the master group with a numeric suffix. For example, "friends_0001".

The following table shows the methods supported by the SubGroupManager object, and provides a description of each.

Method Description
SubGroupMembership
  • Returns as a string the Distinguished Name (DN) of the subgroup in which the user profile will be place.

  • No operations are performed against Active Directory.
AddUserToMasterGroup
  • Determines which subgroup of the master group this user profile should be in.

  • Verifies whether the subgroup exists. If it does not exist, it creates the subgroup automatically.

  • Writes the user profile to the subgroup.
RemoveUserFromMasterGroup
  • Determines which subgroup of the master group this user profile should be in.

  • Removes the user profile from the subgroup.
IsUserOfMasterGroup
  • Determines which subgroup of the master group this user profile should be in.

  • Tests the subgroup for whether the user profile is a member; returns True if it is, False if it is not.

The SubGroupManager object is functionally complete, but it does have a hard-coded user name and password in it for connecting to the directory service. You will need to alter these constants, recompile, and then register the resulting DLL with the following command:

regsvr32 subgroupmanager.dll

The ProgID for creating the SubGroupManager object is: SubgroupManagerProject.SubGroupManager.

Note

  • If you change the hashing algorithm, you must make the same changes to the source code corresponding to the migrationutil.dll file.


Planning for Migration

Before you begin the migration process, it is important that you plan for and understand the steps involved with this process.

This section contains:

  • Migrating Authentication Types

  • Migrating Groups

  • Migrating to Active Directory or SQL Server


Migrating Authentication Types

The tools in the Directory Migration Toolbox migrate data so that all authentication types in the Membership Directory are supported.


Migrating Groups

Although the Commerce Server Profiling System supports groups, the implementation is dependent upon the capability of the Profiles data store. You must use Active Directory to implement groups the same way they were implemented in Site Server 3.0 Membership Directory.

You can use Active Directory to create groups and assign access control lists (ACL) and Access Control Entries (ACE) on files and directories. However, the implementation is not completely compatible with a site as it would be implemented using the Site Server 3.0 Membership Directory. Active Directory limits a group to 5000 objects. This limit is necessary because of the manner in which the contents of the group are replicated between instances of the domain controllers. Although this limitation will be addressed in future versions of Active Directory, it is necessary to perform a work-around to migrate your Membership Directory.

You can use the Directory Migration tools to create subgroups, and then add user profiles to the subgroups. To preserve space for additional growth and subgroups, the tools fill 4500 user profiles per subgroup.

The following table shows how a group with 100,000 user profiles in the Membership Directory would be migrated to Active Directory.

Membership Directory Structure | Equivalent Active Directory Structure
GroupA | GroupA
User1 .. User100000 | GroupA_0000
 | User1 .. User4500
 | GroupA_0001
 | User4501 .. User9000
 | …
 | GroupA_0023
 | User99001.. User100000

Caution

  • You must set up Active Directory in Native mode. Do not set up Active Directory in Mixed mode; if you do, Active Directory will not create the required group hierarchy.

If you use a forest of domains to contain the user profiles, the migration becomes more complex. The following figure shows how to map user profiles and ACLs on content to Active Directory and still enforce site security.

A figure showing how to migrate to a forest of domains
Windows 2000 Active Directory Forest
Post-Migration
Windows 2000
Active Directory
ResourceDomain
Windows NT
4.0 Domain
Domain3
Domain2
File ACL/ACE: DomainLocalGroup3
File ACL/ACE: DomainLocalGroup2
File ACL/ACE: DomainLocalGroup1
File ACL/ACE: Group3
File ACL/ACE: Group2
File ACL/ACE: Group1
Group3

Group3
User1
User2
User3
Group11
User65
User66
User67

Group2
Group2
GlobalGroup1
GlobalGroup1
GlobalGroup2
GlobalGroup2
GlobalGroup3
Group1
Group1_0000
User1
Group11 Group11_0000
User66
GlobalGroup3
Group1
Group1_0000
User1
Group11 Group11_0000
User67
GlobalGroup3
Group1
Group1_0000
User1
Group11 Group11_0000
User65
GlobalGroup2
GlobalGroup1
DomainLocalGroup3
DomainLocalGroup2
DomainLocalGroup1
Group1
Group1
Domain1
Membership
Directory
Pre-Migration


Migrating to Active Directory or SQL Server

You must decide whether you are migrating users to Active Directory or Microsoft SQL Server. The following factors should be considered:

  • Migration Performance and Scalability

  • Migration Attribute Compatibility

Migration Performance and Scalability

Active Directory

The Windows 2000 Server Active Directory is a robust, highly secure directory store. When planning for performance and scalability, note the following:

  • Active Directory is necessary to support deployment requiring access control of files that map to groups of users.

  • Active Directory is tuned as a domain controller with write transactions representing only a fraction of the total directory input/output.

  • Current testing indicates that at about one million (1,000,000) users in a domain the replication input/output between Active Directory instances in the domain begins to impact read/write activity for the profile. In addition, there is a practical limit of approximately five domains with one million users in each domain before the global catalog replication overhead begins to impact profile request input/output. These numbers are subject to hardware performance and tuning optimization.

The following recommendations are based on testing conducted using a typical e-commerce user profile:

  • One million users per Active Directory domain

  • Five Active Directory domains per forest of domains (this equates to a practical limit of five million accounts in Active Directory deployments).

For more information, see the latest performance and scalability documents at http://www.microsoft.com/commerceserver.

SQL Server

Commerce Server supports both Microsoft SQL Server 7.0 and SQL Server 2000. It is recommended that you use SQL Server 2000; it has improved performance and an enhanced set of features. When you plan for performance and scalability, note the following:

  • SQL Server has excellent scalability and stability characteristics. SQL Server is tuned for highly dynamic data supporting read/write balances approaching 50/50 with no significant performance degradation. This maps nicely to e-commerce sites with highly dynamic attributes being kept for users (for example, Favorites and last visit date/time).

  • No limits have been found in testing up to 10 million users in the store with a one percent concurrency rate.

  • Groups created in SQL Server do not have system ACL/ACE integration that would allow you to protect static content (for example, pictures and audio files).

  • Groups implemented under SQL are created as multi-value strings with a practical limit of less than 200 users per group.

Using Active Directory and SQL Server

For those sites that require both the access control provided by Active Directory and the performance of SQL Server, it is recommended that both Active Directory and SQL Server be used together to store user profile information. In this scenario, you would store data that is associated with user credentials and data that is very stable in an Active Directory data store. You would store the remaining attributes in SQL Server.

For example, you may want to divide the attributes as shown below:

  • User profile attributes stored in Active Directory:
    • UserName

    • Password
  • User profile attributes stored in SQL Server:
    • Credit Card

    • Home Address, City, State, Zip

    • Home Phone Number

    • Date/Time of last visit

    • Favorite Color

    • Last page visited

    • Year-to-date total spent on site

Migration Attribute Compatibility

Not every Site Server 3.0 Membership Directory attribute has an equivalent attribute in a Commerce Server Profiles data store.

The following table lists the types of attributes in a Membership Directory, the equivalent type of attributes in a Profiles data store, and then the types in Active Directory and SQL Server. These are the attributes that are supported by Commerce Server without any modifications.

Membership Directory Attribute Type | Commerce Server Profile System Equivalent Type(s) | Active Directory Underlying Data Type | SQL Server Underlying Data Type
String | Text, Password, SiteTerm, Profile | String | String
Integer | Numbers Only, Decimal Currency | Number | Number
DateTime | Date/Time, Date, Time | DateTime | DateTime
Distinguished Name (DN) | Text, Password, SiteTerm, Profile | String | String
Binary | Binary | Binary | Binary
Multi-value String | Multi-value (Text, Password, SiteTerm, Profile) | Multi-value String | Multi-value String
Multi-value Integer | Multi-value NUMBER | Multi-value Integer | Not supported
Multi-value DateTime | Multi-value Date/Time, Date, Tim | Multi-value DateTime | Not supported
Multi-value DN | Multi-value (Text, Password, SiteTerm, Profile) | Multi-value String | Multi-value String
Multi-value Binary | Multi-value Binary | Multi-value Binary | Not supported

Caution

  • Use caution when enabling multi-value attributes in the profile. The underlying data type is not checked to verify whether it is flagged as a multi-value data type.

  • There are currently several data types that are supported in the profile but are not enabled at the data layer on either SQL Server or Active Directory stores. These include: Integer, Long Text, and Reference.


Preparing for Migration

Before you migrate the Membership Directory to Commerce Server, you must perform the following steps:

  1. Set Up Commerce Server Profiles. Perform this step to create the data elements and data types in the Commerce Server Profiles data store.

  2. Modify Your Migration Objects. Perform this step so your migration objects can read all of the user information, modify it as needed, and then write it to the Commerce Server Profiles store.

  3. Run the Migration ProfileBuilder Tool. Perform this step to create the Extensible Markup Language (XML) file used by the Directory Migration tool.

  4. Run the Groups Pre-Population Tool. Perform this step if you are using Windows 2000 Server Active Directory.

  5. Compile Migration Objects. Perform this step only if you have modified your migration objects.

  6. Register Migration Objects. Perform this step to register the Directory Migration tool objects. You must perform this step even if you have not modified your migration objects.


Set Up Commerce Server Profiles

The following steps assume you have installed Commerce Server 2000 and verified that a Solution Site runs successfully in your environment. You must verify that the Commerce Server Profiling System can access the required data stores (for example, SQL Server, Active Directory, other OLE DB store or a Lightweight Directory Access Protocol (LDAP) version 3-compliant store).

To set up your Commerce Server profiles

  1. Determine which attributes in the Membership Directory member class you want to migrate.

  2. Use the Profiles service in Commerce Server Manager to create the underlying data elements.

  3. Use the Profiles service to map the data elements to the relevant data types available.

See Also

Running the Profiles Resource


Modify Your Migration Objects

Depending on the requirements for your site, it may be necessary to modify the MigrationRead, MigrationWriteObj, or MigrationModifyObj objects. The objects are written in C++.

If you need to modify your objects, you should do so before running the Migration ProfileBuilder tool.

See Also

Programmer's Reference for Migration


Run the Migration ProfileBuilder Tool

After you have set up your Commerce Server profiles and modified your migration objects as required, you can run the Migration ProfileBuilder tool to generate the migration Extensible Markup Language (XML) file.

This topic contains:

  • Compiling Migration ProfileBuilder Tool

  • Mapping Attributes from Membership Directory to Profiles Data Store

Compiling Migration ProfileBuilder Tool

If you need to modify the Migration ProfileBuilder tool, you can access the source code in the following folder:

<Drive>:\Program Files\Microsoft Commerce Server\SDK\Tools\Membership Migration\ProfileBuilder

The application images were built using Microsoft Visual Basic 6.0 Professional.

After you modify the Migration ProfileBuilder tool, you must create a Data Source Name (DSN) for the Commerce Server Profiles data store using the Data Sources (ODBC) manager found in Programs | Administrative Tools on the Start menu. Create a System DSN using the SQL Server driver. Ensure you change the default connection string to point to the correct Profiles data store (for example, Retail_commerce).

Mapping Attributes from Membership Directory to Profiles Data Store

To run the Migration ProfileBuilder tool, the server running the tool must be able to access both the Membership Directory Lightweight Directory Access Protocol (LDAP) server and the Commerce Server computer running the ProfileService object.

To run the Migration ProfileBuilder tool

  1. In Windows Explorer, navigate to the folder that contains the Migration ProfileBuilder tool, and then double-click ProfileBuilder.exe.

  2. In the Step 1 dialog box, do the following:
    Use this | To do this
    Location to store all of the profiles | Type the directory that contains the XML files used by the MigrationMainObj object. Usually, you will use only one XML file.
    XML file name | Type the name of the file to be generated. The Migration ProfileBuilder tool appends a profile ID to the end of the name. In this sample, the files will be named "migration"<n>.xml where 'n' is incremented each time a profile is generated.
    ProgID of IMigrationRead | Type the ProgID of the MigrationReadObj object. This default is generated by the included source code.
    ProgID of IMigrationWrite | Type the ProgID of the MigrationWriteObj object. This default is generated by the included source code.
    ProgID of IMigrationModify | Type the ProgID of the MigrationModifyObj object. This default is generated by the included source code.
    ProgID of IMigrationLog | Type the ProgID of the MigrationLogObj object. This default is generated by the included source code.

  3. In the Step 2 dialog box, do the following:
    Use this | To do this
    Membership Directory Server | Type the Netbios name of the Membership Directory.
    Port Number | Type the port number of the Membership Directory instance.
    MD User Name | Type the distinguished name of the user for the connection to the Membership Directory.
    Password | Type the password for the Membership Directory User Name given in the MD User Name box.
    Server Name | Type the name of the SQL Server running the Commerce Server Administration database.
    Database Name | Type the name of the database where the Profiles store is located.
    DBA Name | Type the login of the user who has system administrator (sa) privileges.
    DBA's Password | Type the password of the login user.

  4. In the Step 3 dialog box, do the following:
    Use this | To do this
    Migrate MemberOf | Determine whether the migration object reading this XML file will migrate users to Active Directory groups.
    Object Schema | Type the schema representing the user to be read, for example, member. You can type in other custom classes if they are to be migrated.
    Filter Depth | Type a number to specify how fine a search is requested. This is provided as a mechanism for preventing LDAP query time-outs. A filter depth of 2 will search cn=xx*. A filter depth of 3 will search cn=xxx* ("x" = [a-z, 0-9]).
    Search Scope | Select the depth to which the tool can search sub-containers under the root from the drop-down list.
    Search Filter Base | Type a prefix for account names to be migrated in batch mode (for example, cn=a).

  5. In the Step 4 dialog box, do the following:
    Use this | To do this
    Group's parent RDN | Type the Active Directory Relative Distinguished Name (RDN).
    AD Administrator's User Name | Type the account to log in as when writing to Active Directory in the form of "domain\account."
    AD Administrator's Password | Type the password for the account named in the AD Administrator's User Name box.
    Catalog | Select the profile catalog to use. Typically this is Profile Definitions.

  6. Map the attributes to be read to those to be written. You can control the objects listed in the right pane by selecting the profile definitions from the top list boxes. To create an association, click the attribute in the Site Server box and then click the corresponding attribute in the Commerce Server box.

    The numbers on the left of the attributes indicate the mapping (for example, 49 Telephone Number = 49 tel_number).

    The following figure shows attributes mapped from the Membership Directory to the Commerce Server Profiles data store.

    A screen shot showing attributes that have been mapped

    Click the illustration to enlarge or reduce.

  7. When you are finished mapping the attributes, click Preview.

    The Step 5 dialog box displays the entire XML file.

  8. If the XML file is complete, click Yes.

The XML file is saved.


Run the Groups Pre-Population Tool

After you run the Migration ProfileBuilder tool to create the XML file, you can create the groups to which the user profiles will migrate.

To run the Groups Pre-Population tool, the server running the tool must be able to access both the Membership Directory Lightweight Directory Access Protocol (LDAP) server and the Commerce Server computer.

To run the Groups Pre-Population tool

  1. In Windows Explorer, navigate to the folder that contains the Groups Pre-Population tool, and then double-click GroupMigration.exe.

  2. In the Create group structure in AD dialog box, do the following:
    Use this | To do this
    Server Name | Type the name of the Membership Directory server.
    Port Number | Type the port number of the Membership Directory LDAP server.
    User Name | Type the login name to use to connect to the LDAP server. Use the format: domain\user.
    Password | Type the password for the login name.
    Groups DN | Type the distinguished name of the groups object.
    Group's Schema | Type the objects describing the group schemas.
    Organizational Unit | Type the organizational unit under which you want to create the groups in Active Directory.
    Server | Type the name of the server on which Commerce Server is installed.
    Port | Type the port number for the server on which Commerce Server is installed.
    Partition | Type the list of the partition(s) to be included in the Active Directory forest. Use the format: dc = <domainName>.
    Domain User Name | Type the login name of an authorized Active Directory user. Use the format: domain\user.
    Password | Type the password for the Domain User Name.

    Note

    • When entering the partitions, you must click Add to save the entry.
  3. Click Next.

  4. In the Group Attributes Map dialog box, do the following:
    Use this | To do this
    Top box on left | Select the Membership Directory group attribute category.
    Top box on right | Type the name of your Active Directory Profile data store.

  5. In the box below Description, select a user profile attribute, and then click Map to map it to the equivalent attribute in your Active Directory Profile data store. There are two entries by default: Description and MBSTokenID. In the right column type the name of the attribute to which you want to map. Make sure the attribute name you typed exists in Active Directory with the matching data type.

  6. Click Remove to remove any attributes you do not want to map.

  7. When you are finished mapping the attributes, click Finish.

The Groups Pre-Population tool reads the groups in the Membership Directory and recreates them in the Active Directory. This creation process can take a considerable amount of time, depending upon how many groups you have.


Compile Migration Objects

If you modify your migration objects, you must compile them in the following order:

  1. MigUtil

  2. MigrationModifyObj

  3. MigrationLogObj

  4. MigrationReadObj

  5. MigrationWriteObj

  6. MigrationMainObj

Note the following dependencies, and the resulting consequences for compilation order:

  • MigrationMainObj depends on the other four modules.

  • MigrationReadObj depends on MigUtil and MigrationModifyObj.

  • MigrationWriteObj depends on MigUtil and MigrationLogObj.

  • MigrationLogObj depends on MigUtil.

  • MigrationModifyObj depends on MigUtil.

The MigrationLogObj object is used by the MigrationWriteObj and MigrationMainObj objects to log errors.

The MigrationReadObj object does not log errors directly because any error it returns are logged from the MigrationMainObj object.

If the MigrationWriteObj object encounters errors while writing, it rolls back the entire user record, and then returns an error back to the MigrationMainObj object. Then the MigrationMainObj object logs the error. The MigrationWriteObj will only use the MigrationLogObj directly when errors occur in the roll back process itself.

If you make modifications to the code, recompile using Microsoft Visual Basic 6.0 Service Pack 3 or Microsoft Visual C++ 6.0 Service Pack 3.

The following table shows the required compiler settings for each component.

Component | Compile Using | Compiler Options
GroupMigration | Visual Basic 6 | Default settings.
ProfileBuilder | Visual Basic 6 | Default settings.
SubGroupManager | Visual Basic 6 | Default settings.
MigrationLogObj | Visual C++ 6 | Set active project = Release, Unicode, MinSize
MigrationMainObj | Visual C++ 6 | Set active project = Release, Unicode, MinSize
MigrationModifyObj | Visual C++ 6 | Set active project = Release, Unicode, MinSize
MigrationReadObj | Visual C++ 6 | Set active project = Release, Unicode, MinSize
MigrationWriteObj | Visual C++ 6 | Set active project = Release, Unicode, MinSize
MigUtil | Visual C++ 6 | Set active project configuration = Release


Register Migration Objects

You must register the directory migration objects on each computer on which they are installed. For example:

Regsvr32 /s MigrationLogObj.dll

Register all five objects together by copying the following code sample to a .bat file, and then run it:

Regsvr32 /s MigrationLogObj.dll
Regsvr32 /s MigrationMainObj.dll
Regsvr32 /s MigrationModifyObj.dll
Regsvr32 /s MigrationReadObj.dll
Regsvr32 /s MigrationWriteObj.dll


Starting the Migration Process

To begin the migration process, deploy the migration objects to the servers that will be running the migration process. Follow these steps:

  1. Extend the attributes for members by creating a Migration attribute in the Membership Directory.

  2. Create at least one migration profile using the Migration ProfileBuilder tool. You will need to create one for each type of migration you plan on (batch and on-demand combined).

  3. To deploy the objects you will need to copy the completed migration objects to each server and register the objects. For more information, see Register Migration Objects.

  4. You will also need to make sure that the registry keys are set appropriately. For more information, see the Requirements section of MigrationLogObj Object.

If you plan on migrating users with on-demand migration as they log into your new site, you will want to install the migration objects on the Web servers and use the Login.asp file found in the <Drive:>\Program Files\Microsoft Commerce Server\SDK\Tools\MembershipMigration\Client directory. Use this file as a sample of how to trigger a migration when a user first visits your new Commerce Server site.

If you want to migrate all of your users together, install the migration objects on the server from which you will migrate all of the users. For best performance, choose a computer that is dedicated to the migration process. When you build the profile for migrating a range of users using the Migration ProfileBuilder tool, establish a filter depth, a search scope, and a search filter base in the Step 3 dialog box. Experimenting with different values before beginning the actual migration process allows you to optimize migration performance. Note that the distribution patterns of user account names in the Membership Directory plays an important role in the tuning process.

Always test the on-demand migration process before putting it into production.


Troubleshooting with the Migration Log File

The migration objects record problems to a text log file in the directory specified by the "LogFilePath" registry key. The log file will contain reports of migration failures and events that prevented successful migration. Additional migration failure information will be logged using the data returned by the failing object.

A new log file is automatically created and used whenever the number of lines in the current log file reaches the limit defined by the "MaxNumLinesEachFile" registry key.


Verifying Successful Migration

To verify that all users have been successfully migrated, query the Membership Directory for all accounts for which the Migration attribute is missing, or for which the Migration attribute set to False. Until the query returns no accounts, migrate the returned accounts individually.

When the query returns no records, you know that all of the users were migrated.

After establishing that all users have been migrated, remember to perform the following tasks:

  • As required, replace the version of the Login.asp file that triggers on-demand migration with your original Login.asp file.

  • Unregister and remove the migration objects from the servers upon which they were installed.

  • Backup and delete the migration log files.


Programmer's Reference for Migration

This section contains reference material related to membership migration.

This section contains:

  • Migration Objects

  • Migration Utility Library

  • Sample XML File


Migration Objects

This section provides a reference page for each of the migration objects.

This section contains:

  • MigrationMainObj Object

  • MigrationReadObj Object

  • MigrationWriteObj Object

  • MigrationModifyObj Object

  • MigrationLogObj Object


MigrationMainObj Object

Use the MigrationMainObj 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:

  • MigrationReadObj Object

  • MigrationWriteObj Object

  • MigrationModifyObj Object

  • MigrationLogObj Object

Interface

The MigrationMainObj object supports the following interface:

interface IMigrationProfile::IDispatch
{
    HRESULT Initialize(BSTR sProfileDirectory);
    HRESULT MigrateObject(BSTR bstrKeyName, long lProfile_id);
    HRESULT ShutDown();
};

Methods

The following table shows the methods of the MigrationMainObj object, and provides a descripton of each.

Method | Description
Initialize Sets up all the components for the migration process. The sProfileDirectory parameter, indicating where all profile files reside, is parsed each for 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/MigrationWriteObj objects.

  • The connection string to the membership directory or SQL Server that will be passed to the MigrationReadObj/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.
MigrateObject | Called from the Active Server Pages (ASP) page or from Microsoft Visual Basic Scripting Edition (VBscript) to migrate an ADSPath key to the Commerce stores. The profile ID to be used for this ADSPath key is passed to the object. The MigrationProfile object then finds the appropriate attribute array for this profile 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/MigrationWriteObj objects to be processed.
ShutDown | Called from MigrationReadObj/MigrationWriteObj objects and also deallocates the data structures that were created upon initialization.

Remarks

The following structure should be added to the .IDL file to facilitate passing the profile information to each object.

typedef struct _PROFILE
    long lprofile_id;
    BSTR bstrConnection;  //bstrConfigStore in CS
    BSTR bstrCatalog;     // used in profile service initialization
    BSTR bstrMemberOf;    // migrate user's membership?
    SAFEARRAY(BSTR) Attributes;
    SAFEARRAY(USHORT) nAttributeTypes; // number of attributes types?
    SAFEARRAY(BSTR) ProfileTypes;      // only for write use
    BSTR bstrMOUserName;  // Membership User Name
    BSTR bstrMDPassword;
    BSTR bstrCSUserName
    BSTR bstrCSPassword;
    BSTR bstrADSite;      // True for ADSite, otherwise False
    BSTR bstrGroupOU;     // OU that holds all groups
    // modify info
    long lNumModifies;    // total number of modifiers in this profile
    SAFEARRAY(USHORT) rgModIndex;
} PROFILE;


MigrationReadObj Object

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.

Interface

The MigrationReadObj object supports the following interface:

interface IMigrationRead::IUnknown
{
    HRESULT Initialize([in] long lNumProfiles,
                       [in] size_is(lNumProfiles)] PROFILE Profile[],
                       [in] BSTR bstrModifyProgID);

    HRESULT ReadAttributes([in] BSTR bstrKeyName,
                           [in] long lProfile_id,
                           [out] SAFEARRAY(VARIANT)* AttributeStructure,
                           [out] VARIANT* varValueIndex,
                           [out] VARIANT* vMemberOfs);

    HRESULT MigrationFailed([in] BSTR bstrKeyName);

    HRESULT ShutDown();
};

Methods

The following table shows the methods of the MigrationReadObj object, and provides a description of each.

Method | Description
Initialize | Accepts an array of structs containing all the attributes for each profile ID and the connection to use. It uses this data to determine what attributes to read for a particular key based on the profile ID.
ReadAttributes | Called for each migration that needs to take place. This method uses the profile ID to find out what attributes are associated with the key and reads these from the data source into the array.
MigrationFailed | Called to set the attribute cn=Migration to FALSE when the migration of this object fails. This is of type binary and should not exist in the current schema.
Shutdown | The MigrationProfile object calls the Shutdown method, which is used to free the created connection pools.


MigrationWriteObj Object

Use the MigrationWriteObj object to write the values for each attribute to the Commerce Server Profile data store.

Interface

The MigrationWriteObj object supports the following interface:

interface IMigrationWrite::IUnknown
{
    HRESULT Initialize([in] long numBuffers,
                       [in] long numProfiles,
                       [in] size_is(numProfiles)] PROFILE Profiles[],
                       IUnknown * pIMigrationLog);

    HRESULT WriteUserAttributes([in] BSTR bstrKeyName,
                                [in] long lProfile_id,
                                [in] SAFEARRAY(VARIANT)*
                                                  AttributeStructure,
                                [in] VARIANT *varValueIndex,
                                [in] VARIANT *vMemberOfs);

    HRESULT ShutDown();
};

Methods

The following table shows the methods of the MigrationWriteObj object, and provides a description for each.

Method | Description
Initialize | Accepts an array of structs containing all the attributes for each profile ID. This method uses this data to determine what attributes to write for a particular key based on the profile ID.
WriteUserAttributes | Called for each migration that needs to take place. This method uses the profile ID to identify the attributes that are associated with the key and writes these from the array into the Commerce Server Profile data store.
Shutdown | The MigrationProfile object calls the Shutdown method, which is used to free the created connection pools.


MigrationModifyObj Object

Use the MigrationModifyObj object to change the data that has been read from the Membership Directory before it is migrated to the Commerce Server Profile data store.

Interface

The MigrationModifyObj object supports the following interface:

interface IMigrationModify::IUnknown
{
    HRESULT Initialize();
    HRESULT ModifyAttributes([in] long lProfile_id,
                             [in] BSTR bstrAttribute,
                             [in] USHORT targetType,
                             [in] USHORT sourceType,
                             [in, out] VARIANT *varTarg);
};

Methods

The following table shows the methods of the MigrationWriteObj object, and provides a description of each.

Methods | Description
Initialize | Initializes the MigrationModifyObj object. Call this method before calling the ModifyAttributes method.
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.


MigrationLogObj Object

Use the MigrationLogObj object to write log data to a data store determined by the connection string. The data includes the status of each migration.

Interface

The MigrationLogObj object supports the following interface:

interface IMigrationLog::IUnknown
{
    HRESULT Initialize([in] int nLogSuccess);
    HRESULT RecordInfo([in] LOGINFO lgInfo);
    HRESULT LogSuccess([in] BSTR bstrKeyName,
                       [in] long lprofile_id);
};

The IMigrationLog interface depends on the following structure:

typedef struct _LOGINFO
{
    long  lProfile_id
    BSTR  bstrDN;
    BSTR  bstrObject;
    Long  lErrorCode;
    BSTR  bstrReason;
} LOGINFO;

Methods

The following table shows the methods of the MigrationLogObj object, and provides a description for each.

Method | Description
Initialize | Initializes the MigrationLogObj object. Call this method before calling the RecordInfo or LogSuccess methods.
RecordInfo | Use this method to record meaningful data to the log file.
LogSuccess | This method is called 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:\MigrationLog_success1.

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:\MigrationLog". 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. 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, 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 time-out; 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 time-out 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.


Migration Utility Library

The Migration Utility Library, MigUtil, contains global settings and methods. These include the following global variables:

  • Global variable g_pwszUserObject. Corresponds to the default setting in Commerce Server. If you switch to a different profile (other than UserObject), the name of the new profile should be assigned to this global variable.

  • Global variable g_searchOrder. Holds all the possible symbols that may appear in the search filters for Common Name (CN) except digits from 0 to 9, which will be converted to characters in the initialization stage. You have to allocate ten more spaces in this array to hold these ten numbers. For example:
    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'};

    In this example, the 128 characters that are reserved are more than sufficient (including the ten extra characters).

  • Global variable g_numSymbols. Contains the number of symbols you want to store in the array of g_searchOrder (not including the ten digits). For example:
    int g_numSymbols = 26;


Sample XML File

The following is a sample migration profile XML file. The Migration ProfileBuilder tool in the Commerce Server 2000 Software Development Kit (SDK) builds XML files that resemble the following:

<?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>


Bereitstellen der Site

Voraussetzung für die Bereitstellung einer Microsoft Commerce Server 2000-Website ist, dass Sie über die notwendige Hardware und Software verfügen und diese entsprechend konfigurieren. Außerdem müssen Sie Commerce Server 2000 installieren, die Website entpacken und Prozeduren zum Überwachen und Verwalten der Site implementieren. Der Gesamtbereitstellungsvorgang besteht aus mehreren Phasen, die in diesem Abschnitt beschrieben werden.

Dieser Abschnitt beinhaltet folgende Themen:

  • Vor der Bereitstellung. Beschreibt die Vorgänge, die vor Beginn des Bereitstellungsvorgangs abgeschlossen sein müssen.

  • Einrichten der Serverplattformen. Erklärt das Einrichten der Entwicklungs-, Test- und Produktionsumgebungen, sodass Sie Ihre Site aus einer Entwicklungsumgebung verschieben, testen und schließlich bereitstellen können. Zusätzlich wird erklärt, wie die Softwareplattform vor der Installation von Commerce Server konfiguriert wird.

  • Installieren der Site. Erklärt die Installation von Commerce Server und das Entpacken Ihrer Websites auf zwei verschiedenen, kleinen Sitekonfigurationen.

  • Sichern der Site. Erklärt das Konfigurieren der Sites, um sie vor nicht autorisierten Zugriffen zu schützen.

  • Sicherung der Site. Erklärt, wie Sie Sicherheitskopien der Site erstellen.

  • Aktualisieren der Site. Erklärt, wie Sie Siteinhalte und Datenbanken nach der ersten Bereitstellung aktualisieren.

  • Verwenden von Site Packager. Beschreibt die Funktionen von Commerce Server Site Packager und erklärt die allgemeinen Regeln des Packens bzw. Entpackens einer Site. Außerdem wird Referenzmaterial für Site Packager aufgeführt.

Siehe auch

Planen der Bereitstellung

Planen der Commerce Server-Installation


Vor der Bereitstellung

Bevor Sie eine Site bereitstellen, überprüfen Sie die folgenden Checklisten, um sicherzustellen, dass Ihre Planung vollständig ist.

Dieser Abschnitt beinhaltet folgende Themen:

  • Sitearchitektur: Checkliste. Stellt eine Checkliste zur Planung und Implementierung der Sitearchitektur bereit.

  • Hohe Verfügbarkeit: Checkliste. Stellt eine Checkliste zum Schutz gegen einen Serverausfall bereit.

  • Siteentwicklung und -test: Checkliste. Stellt eine Checkliste zur abschließenden Siteentwicklung und für Tests bereit.

  • Geschäftsprozesse: Checkliste. Stellt eine Checkliste zur Planung und Implementierung Ihrer Geschäftsprozesse bereit.

  • Plattformsicherheit: Checkliste. Stellt eine Checkliste zur Sicherung der Windows 2000-Plattform und der Internet-Informationsdienste (IIS) 5.0 bereit.

  • Commerce Server-Sicherheit: Checkliste. Stellt eine Checkliste zum Einrichten von Sicherheitsvorkehrungen in der Site bereit.

Siehe auch

Planen der Bereitstellung

Planen der Commerce Server-Installation

Hardwareanforderungen

Softwareanforderungen


Sitearchitektur: Checkliste

Bevor Sie Ihre Site bereitstellen, stellen Sie sicher, dass Sie die Sitearchitektur geplant und implementiert haben. Überprüfen Sie Folgendes:

  • Ein Microsoft Windows 2000-Servernetzwerk ist eingerichtet und enthält mindestens einen Microsoft Active Directory-Domänencontroller. Die Verfügbarkeit der Site wird erhöht, wenn Sie den Netzwerklastenausgleich (Network Load Balancing, NLB) verwenden bzw. Servercluster erstellen. Es empfiehlt sich, dafür Windows 2000 Advanced Server zu verwenden.

  • Im Idealfall sollten Sie zwei Computer verwenden, um Active Directory effizient zu verwalten. Diese haben dann die Funktion replizierter Domänencontroller. Ihre anderen Computer werden in diesem Fall mit der Domäne verknüpft. Weitere Informationen finden Sie unter Einrichten der Active Directory-Server.

  • Die Windows 2000-Domänenarchitektur für die Commerce-Server ist festgelegt und wurde dokumentiert.

  • Servernamen, Rollen, Anschlüsse und erforderliche Dienste wurden identifiziert und sind dokumentiert.

    Anmerkung

    • Ändern Sie nach Möglichkeit nicht die Namen Ihrer Server. Weitere Informationen finden Sie unter Ändern von Servernamen.
  • Die notwendigen Namen von Internetdomänen und IP-Adressen (Internet Protocol) stehen zur Verfügung.

  • Sicherheitsmodelle für Windows 2000, Internet-Informationsdienste (IIS) 5.0 und Microsoft SQL Server sind festgelegt worden.

  • Internet Explorer, Version 5.0 oder höher, ist installiert. Für Business Desk-Clientcomputer von Commerce Server ist Internet Explorer 5.5 erforderlich.

  • Firewalls und Proxyserver sind eingerichtet.

  • Erste Benutzer, Gruppen, Zugriffsberechtigungen und Richtlinien sind eingerichtet.

  • Serverhardware ist in der Site installiert.

  • Clienthardware für Business Desk-Clientcomputer ist in der Site installiert.

  • Netzwerkhardware und -verbindungen sowie Internetzugang sind eingerichtet.

  • Ersatzhardware steht in der Site zur Verfügung.

  • Windows 2000-Terminaldienste sind eingerichtet worden (sofern Sie die Verwendung von Remotecomputern für Business Desk-Sitzungen planen). Weitere Informationen finden Sie in der Onlinedokumentation der Terminaldienste.

  • Die notwendige Software, die unter Planen der Commerce Server-Installation aufgeführt ist, steht in der Site zur Verfügung.


Hohe Verfügbarkeit: Checkliste

Bevor Sie Ihre Site bereitstellen, stellen Sie sicher, dass Sie gegen Serverausfall gewappnet sind. Greifen Sie hierzu auf eine Kombination der folgenden Maßnahmen zurück:

  • Geografisch verteilte Data Centers.

  • Unterbrechungsfreie zweifache Stromversorgung.

  • Datensicherungen

  • Datenbankservercluster. In einer Windows-Clusterumgebung bilden zwei Server, die gemeinsame Daten nutzen, einen Cluster, der als ein System arbeitet. Weitere Informationen finden Sie unter Einrichten von Serverclustern.

  • Datenreplikation. Microsoft SQL Server-Replikation stellt die Synchronisation der Datenbankserver einer Site sicher. SQL Server bietet Replikationsoptionen, die Snapshotreplikation und Transaktionsreplikation einschließen. Weitere Informationen finden Sie unter Verwenden von SQL Server zur Replikation von Datenbanken.

  • Netzwerkcluster mit Lastenausgleich für Webserver. Der Netzwerklastenausgleich (Network Load Balancing, NLB) sorgt für Verfügbarkeit und Lastenausgleich bei (IIS-/ASP-basierten) Webanwendungen.

Weitere Informationen zur Vermeidung von Siteausfällen finden Sie unter Planen hoher Verfügbarkeit und im Commerce Server 2000 Resource Kit.


Siteentwicklung und -test: Checkliste

Bevor Sie Ihre Site bereitstellen, stellen Sie sicher, dass sowohl die Siteentwicklung als auch die Testphase abgeschlossen ist. Überprüfen Sie Folgendes:

  • Siteentwicklung ist abgeschlossen.

  • Site ist gepackt.

  • Eine Liste mit Siteressourcen ist dokumentiert.

  • Die Namen für die Siteserver sind festgelegt.

  • Datenbanknamen, Benutzernamen und Kennwörter sind festgelegt.

  • Das Testen ist abgeschlossen. Sie haben folgende Elemente getestet: Inhalt, Browserkompatibilität, Leistung, Serverauslastung, Datenbanken, Suchfunktionen, Antwortzeiten, Datengültigkeit und -vollständigkeit, Systemwiederherstellung, visuelle Konsistenz, Verknüpfungen und Router. Die Leistung der Site wurde mithilfe des Web Application Stress-Tools getestet.

  • Ein unabhängiges Unternehmen hat eine Sicherheitsüberprüfung der Site durchgeführt. Eine solche Überprüfung ist eine wirkungsvolle Maßnahme, um Sicherheitsrisiken aufzudecken.

  • Weitere Informationen über das Testen der Site finden Sie im Commerce Server 2000 Resource Kit.


Geschäftsprozesse: Checkliste

Bevor Sie Ihre Site bereitstellen, stellen Sie sicher, dass Sie Ihre Geschäftsprozesse geplant und implementiert haben. Überprüfen Sie Folgendes:

  • Workflows sind festgelegt und getestet worden.

  • Systemadministratoren haben an einer ersten Schulung teilgenommen, und Businessmanager, die hauptsächlichen Benutzer von Commerce Server Business Desk, haben das Business Desk-Lernprogramm absolviert.

  • Das Team für die Serverumgebung ist zusammengestellt, und die Betriebsabläufe sind festgelegt (z. B. Änderungsanforderungen, Änderungen des Kontrollprotokolls, Serveraktualisierungen, Wartungszeitpläne und Prozeduren bei Problemeskalation).

Weitere Informationen finden Sie unter Planen der Geschäftsprozesspipelines.


Plattformsicherheit: Checkliste

Die Sicherheit von Computern, die Informationen in einem Intranet oder im Internet veröffentlichen, kann auf verschiedene Arten erhöht werden. Wenn Sie Bedenken hinsichtlich der Sicherheit Ihres Systems haben, überprüfen Sie mithilfe der Checkliste, welche Sicherheitsbereiche verbessert werden sollten.

Anmerkung

  • Bei vertraulichen Informationen sollten Sie sich zur Unterstützung an ein professionelles Sicherheitsberatungsunternehmen wenden. Ein Beratungsunternehmen kann Sie bei der Festlegung angemessener Sicherheitsrichtlinien und -prozeduren unterstützen.

Windows-Sicherheit

Sicherheit der Internet-Informationsdienste

Physische Sicherheit

Personalsicherheit

Windows-Sicherheit

Die Sicherheitsfunktionen in Commerce Server basieren auf den Sicherheitsfunktionen in Windows. Die folgenden Einstellungen in Windows machen Ihre Website sicherer.

Dateisystem

 | Aktion | Grund
 | Verwenden von NTFS | Das NTFS-System ist sicherer als das FAT-System. Informationen darüber, wie Sie die Festplatte Ihres Computers von FAT in NTFS konvertieren, finden Sie in der Windows-Dokumentation.
 | Überprüfen von Zugriffsberechtigungen für Dateien | Windows erstellt standardmäßig neue Ordner und weist der Gruppe Jeder volle Zugriffsberechtigungen zu.
 | Einstellen der Zugriffssteuerung für das IUSR_Computername-Konto | Dies hilft Ihnen, den Zugriff anonymer Benutzer auf den Computer einzuschränken.
 | Speichern ausführbarer Dateien in einem separaten Verzeichnis | Dies erleichtert die Zuweisung von Zugriffsberechtigungen und die Überwachung.
 | Überprüfen von NTFS-Berechtigungen auf Netzwerklaufwerken | Windows erstellt standardmäßig neue gemeinsam verwendete Ressourcen und weist der Gruppe Jeder volle Zugriffsberechtigungen zu.

Benutzerkonten

 | Aktion | Grund
 | Häufiges Überprüfen von Benutzerkonten | Stellen Sie fest, ob neue Konten vorhanden sind, die nicht von einem zugelassenen Administrator erstellt wurden. Überprüfen Sie die Rechte des IUSR_Computername-Kontos. Alle Benutzer, die anonymen Zugriff auf die Site erhalten, haben die Rechte, die diesem Konto zugewiesen wurden. Sie können auch mithilfe der Überwachung kontrollieren, wann und durch wen Sicherheitsrichtlinien geändert werden.
 | Auswählen schwieriger Kennwörter | Kennwörter werden weniger schnell erraten, wenn Sie aus einer Kombination von Klein- und Großbuchstaben, Ziffern und Sonderzeichen bestehen.
 | Beibehalten strenger Kontorichtlinien | Verfolgen Sie, welche Zugriffstypen an wichtige Benutzerkonten und Gruppen vergeben werden. Dies schließt auch die Information ein, wer zur Änderung von Sicherheitsrichtlinien befugt ist.
 | Einschränken der Mitgliedschaft der Administratorengruppe | Diese Gruppe hat in der Regel vollen Zugriff auf den Computer.
 | Zuweisen eines Kennworts zum Administratorkonto | Das für das Administratorkonto verwendete Kennwort ist standardmäßig leer. Wie bereits erwähnt, sollten Sie für dieses Konto zur Erhöhung der Sicherheit ein schwieriges Kennwort wählen.

Dienste und andere Themen

 | Aktion | Grund
 | Minimales Dienstangebot | Bieten Sie nur Dienste an, die für Ihre Zwecke absolut notwendig sind. Jeder zusätzlich angebotene Dienst lässt eine Schwachstelle entstehen und erhöht die Anfälligkeit für böswillige Angriffe. Informationen über Dienste und Sicherheit finden Sie im Microsoft Windows 2000 Server Resource Kit.
 | Keinen PDC als Server verwenden | Der primäre Domänencontroller (PDC) verarbeitet ständig Authentifizierungsanfragen. Das Anbieten eines Webdienstes auf dem PDC mindert die Leistung. Es macht den PDC möglicherweise auch anfällig für Angriffe, die die Sicherheit des gesamten Netzwerks gefährden.
 | Überwachung aktivieren | Die Überwachung ist ein sehr nützliches Tool zur Ermittlung von Zugriffen auf kritische bzw. gesicherte Dateien. Die Überwachung kann auch zur Ermittlung von Serverereignissen verwendet werden, z. B. der Änderung von Sicherheitsrichtlinien. Überwachungsprotokolle können zur späteren Verwendung archiviert werden.
 | Verwenden von Verschlüsselung für die Remoteverwaltung | Bei der Remoteverwaltung kommt es in der Regel zum Austausch vertraulicher Informationen, z. B. des Kennworts für das Administratorkonto. Verwenden Sie die SSL-Verschlüsselung (Secure Sockets Layer) zum Schutz dieser Informationen über offene Netzwerke.
 | Verwenden eines Low-Level-Kontos für die Internetsuche | Die Verwendung des Administrator-, Hauptbenutzer- oder eines anderen hochpriviligierten Kontos für das Suchen im Internet erzeugt Schwachstellen im Computer und setzt diesen der Gefahr eventueller Angriffe aus. So sollte eine Suche im Internet auch niemals vom primären Domänencontroller (PDC) aus durchgeführt werden.
 | Häufiges Sichern notwendiger Dateien und der Registrierung | Auch größte Anstrengungen gewährleisten keine absolute Datensicherheit. Weitere Informationen finden Sie im Microsoft Windows 2000 Server Resource Kit.
 | Regelmäßige Virentests | Jeder Computer eines offenen Netzwerks ist anfällig für Viren. Durch regelmäßiges Testen können Sie unnötige Datenverluste verhindern.
 | Trennen unnötiger Dienste von den Internetadapterkarten | Warnung: Da die Trennung der Dienste unerwünschte Auswirkungen für die Benutzer des Systems haben kann, sollten Sie sich mit dem Systemadministrator absprechen, bevor Sie eine Trennung vornehmen.

Sicherheit der Internet-Informationsdienste

IIS bietet den ersten Schutz für Ihre Website nach außen, u. a. Authentifizierung und Webberechtigungen.

Authentifizierung

 | Aktion | Grund
 | Verwenden der sichersten Authentifizierungsart | Verwenden Sie die sicherste Authentifizierungsart, die von den Clients unterstützt wird. So sind die integrierte Windows-Authentifizierung und die Digestauthentifizierung sicherer als die Standardauthentifizierung. Für eine sehr sichere Authentifizierung können auch Clientzertifikate verwendet werden.
 | 1:1-Zuordnung oder n:1-Zuordung | Um Clientzertifikate zu Windows-Benutzerkonten zuzuordnen, können entweder eine oder beide Methoden zugleich verwendet werden. Die 1:1-Zuordnung bietet mehr Sicherheit, erfordert aber das Anlegen einer Kopie des Clientzertifikats auf dem Server. Die Implementierung der n:1-Zuordnung ist einfacher und erfordert keine Kopie des Zertifikats auf dem Server.

Webberechtigungen

 | Aktion | Grund
 | Synchronisieren der Web- und NTFS-Berechtigungen | Wenn Web- und NTFS-Berechtigungen nicht synchronisiert sind, werden die restriktiveren Berechtigungen verwendet. Die Synchronisation kann manuell oder mithilfe des Berechtigungs-Assistenten durchgeführt werden.
 | Verwenden von Beschränkungen für IP-Adressen bei Remoteverwaltung von IIS | Weitere Informationen finden Sie unter "Gewähren und Verweigern des Zugriffs für Computer" in der IIS-Dokumentation.
 | Verwenden der restriktivsten Zugriffsberechtigung | Wenn die Website beispielsweise nur zum Anzeigen von Informationen verwendet wird, sollten nur Leseberechtigungen zugewiesen werden. Wenn ein Verzeichnis oder eine Site ASP-Anwendungen beinhaltet, weisen Sie die Berechtigung "Nur Skripts" und nicht "Skripts und ausführbare Dateien" zu. Weitere Informationen finden Sie unter "Festlegen von Webserverberechtigungen" in der IIS-Dokumentation.
 | Schreibberechtigungen und Berechtigungen für Skripts und ausführbare Dateien | Verwenden Sie diese Kombination mit äußerster Vorsicht. Es könnten potenziell schädliche ausführbare Dateien auf den Server geladen und ausgeführt werden. Weitere Informationen finden Sie unter "Festlegen von Webserverberechtigungen" in der IIS-Dokumentation.

Physische Sicherheit

 | Aktion | Grund
 | Arbeitsstation bei Abwesenheit sperren | Wenn Sie sich nicht am Computer befinden, sperren Sie den Desktop, indem Sie STRG+ALT+ENTF drücken und die Option Computer sperren auswählen
 | Verwenden eines kennwortgeschützten Bildschirmschoners | Die Zeit, bis der Bildschirmschoner aktiv wird, sollte kurz sein, sodass niemand in Ihrer Abwesenheit den Computer verwenden kann. Der Bildschirmschoner sollte dunkel sein; animierte Bildschirmschoner können die Leistung des Servers beeinträchtigen.
 | Computer in einem abgeschlossenen Raum | Der Computer sollte sich in einem sicheren, abschließbaren Raum befinden, sodass die Möglichkeit eines Zugriffs durch nicht autorisierte Personen so gering wie möglich ist.

Personalsicherheit

 | Aktion | Grund
 | Verwenden unterschiedlicher Administratorkonten | Jede Person mit Administratorprivilegien sollte über ihr eigenes Benutzerkonto und Kennwort verfügen. Dadurch können vorgenommene Änderungen leichter nachvollzogen werden.
 | Geheimhaltungsvereinbarungen | Die Vertraulichkeit von Informationen kann auch durch Geheimhaltungsvereinbarungen geschützt werden.
 | Regelmäßige Neuzuordnung von Konten | Um die Sicherheit von Benutzerkonteninformationen zu erhöhen, ordnen Sie Personal mit Administratorprivilegien bzw. ähnlich hohen Privilegien neue Benutzerkonten zu.
 | Schnelles Löschen ungenutzter Konten | Dies mindert das Risiko, dass ein verärgerter ehemaliger Mitarbeiter bzw. Lieferant Zugriff auf das Netzwerk erhält.


Commerce Server-Sicherheit: Checkliste

Bevor Sie Ihre Site bereitstellen, stellen Sie sicher, dass Sie Ihre Sitesicherheit geplant und implementiert haben.

Befolgen Sie zur Sicherung der Site die folgenden Richtlinien:

  • Installieren Sie, wenn möglich, Internet-Informationsdienste (IIS) 5.0 und SQL Server auf separaten Computern. Wenn es Benutzern möglich ist, eine Verbindung zu den Computern herzustellen, auf denen Ihre Datenbanken gespeichert sind, stellt dies ein Sicherheitsrisiko für die Daten dar. Webanwendungen und Datenbanken sollten sich auf separaten Computern befinden.

  • Speichern Sie vertrauliche Daten stets hinter einem Firewall.

Befolgen Sie die folgenden Bereitstellungsrichtlinien, um Ihre Site vor internen Angriffen zu schützen:

  • Schränken Sie den physischen Zugriff auf alle Computer ein.

  • Begrenzen Sie die Anzahl der Benutzer, die sich bei allen Computern anmelden können; weisen Sie Benutzern nur die Privilegien zu, die diese für ihre Aufgaben wirklich benötigen.

  • Ändern Sie regelmäßig die Kennwörter, besonders nachdem ein Mitarbeiter Ihre Organisation verlassen hat.

  • Legen Sie Protokolle aller Systemaktivitäten an, und überprüfen Sie diese regelmäßig.

  • Lagern Sie alle Sicherheitskopien an einem sicheren Ort.

  • Verwenden Sie die CS-Authentifizierungsressource von Commerce Server zum Aufbau bzw. zur Änderung der Authentifizierungs- und Identifizierungsmethode Ihrer Microsoft Commerce Server 2000-Site. Weitere Informationen finden Sie unter Verwalten der CS-Authentifizierungsressource.

In der folgenden Liste finden Sie weitere Sicherheitsmaßnahmen, die während bzw. nach der Bereitstellung der Site zu beachten sind:

  • Beschränken des Zugriffs auf Commerce Server-Ordner und -Dateien.

  • Beschränken des Zugriffs auf Commerce Server-Dienste.

  • Beschränken des Zugriffs auf Business Desk-Module.

  • Beschränken des Zugriffs auf Verwaltungsdatenbanken.

  • Sichern der Protokolldateien.

  • Aktivieren nur der sichersten Version der integrierten Windows-(NTLM)-Authentifizierung.

  • Löschen der SQL-Systemadministratoranmeldung.

  • Einrichten des vollen Zugriffs für Datenbankadministratoren.

Informationen über diese Sicherheitsmaßnahmen nach der Installation finden Sie unter Sichern der Site.

Dieser Abschnitt beinhaltet folgende Themen:

  • Sichern der Business Desk-Sitzungen

  • Verwenden von Active Directory zum Speichern von Benutzerinformationen

  • Trennen von Benutzern von internen Domänen

  • Schützen von SQL Server-Kennwörtern

  • Einrichten von Datawarehouse-Berechtigungen

  • Sichern von Cookies

  • Erteilen von Zugriffsberechtigungen auf Ordner, die die Site enthalten, mithilfe von Skripts

  • Bereitstellen von Sites für externe Kunden

Sichern der Business Desk-Sitzungen

Beim Entpacken einer Commerce Server Business Desk-Anwendung durch Commerce Server Site Packager wird diese zur Verwendung der integrierten Windows-Authentifizierung konfiguriert. Dadurch wird zwar die Clientauthentifizierung gesichert, die Daten innerhalb der Business Desk-Sitzung werden jedoch in Klartext übergeben. Um Business Desk-Sitzungen zu sichern, empfiehlt es sich, nur Business Desk-Clients Zugriff auf den Bereich innerhalb des Internetfirewalls zu gewähren. Zur zusätzlichen Sicherheit können Sie für Business Desk-Verbindungen SSL (Secure Sockets Layer) verwenden. Weitere Informationen über SSL finden Sie unter "Einrichten von SSL auf dem Server" in der IIS 5.0-Dokumentation.

Verwenden von Active Directory zum Speichern von Benutzerinformationen

Benutzerinformationen wie Kennwörter, Kreditkartennummern und Telefonnummern werden in der Profildatenbank von Commerce Server in Klartext gespeichert. SQL Server sichert diese Information vor unautorisierten Zugriffen. Jedoch empfiehlt sich zur Erhöhung der Sicherheit die Verwendung von Active Directory zum Speichern vertraulicher Benutzerdaten. Weitere Informationen finden Sie unter Planen der Integration von Active Directory.

Sie können auch Produkte von Drittanbietern zur Verschlüsselung von SQL Server-Daten verwenden.

Trennen von Benutzern von internen Domänen

Wenn Sie Microsoft Active Directory für die Site und zur internen Organisation einsetzen, sollten Sie separate Domänen verwenden. Das Verwalten von Daten außerhalb des Firmennetzwerks kann zeit- und arbeitsintensiver sein, allerdings rechtfertigt in der Regel die Erhöhung der Sicherheit diesen Aufwand. Wenn Sie eine Domäne zugleich für die interne und externe Verwendung nutzen, kann es passieren, dass externe Benutzerdaten später im internen globalen Katalog von Active Directory anzutreffen sind. Wenn Sie das interne Active Directory in der Site verwenden müssen, sollten sich der Server von Commerce Server Business Desk und der Active Directory-Domänencontroller auf derselben Seite des Firewalls befinden. Werden interne und externe Active Directory-Informationen gemeinsam genutzt, gehen Sie auch folgende Risiken ein: Entstellung der Site, betrügerische Einkäufe, Änderungen von Konten, Denial-Of-Service-Attacken und Angriff durch Viren.

Schützen von SQL Server-Kennwörtern

Wenn ein Webserver eine Verbindung mit einem SQL Server herstellt, wird das SQL-Kennwort in Klartext übermittelt. Um die SQL Server-Verbindung vor Eindringlingen zu schützen, verwenden Sie den Multiprotokoll-Netzwerktreiber von SQL Server. Mit diesem können Sitzungsverbindungen verschlüsselt werden. Wenn Sie die Windows NT-Authentifizierung verwenden, wird das Kennwort geschützt. Von dem Schutz ausgenommen sind Commerce Server-Setup und die Verwendung der Option Schnelles Entpacken in Commerce Server Site Packager.

Einrichten von Datawarehouse-Berechtigungen

Sie können Benutzern von Commerce Server Business Desk das Lesen und Ändern von Objekten im Commerce Server-Datawarehouse ermöglichen, indem Sie ihnen ein Windows-Administratorkonto zuweisen. Möglicherweise möchten Sie jedoch einigen Benutzern von Business Desk lediglich das Lesen der Berichte gewähren. Weisen Sie hierzu verschiedenen Benutzern bestimmte SQL Server-Datenbankrollen zu. Die db_datareader-Rolle erlaubt Benutzern die Ansicht aller Daten jeder Tabelle in einer Datenbank. Die db_datawriter-Rolle ermöglicht Benutzern das Hinzufügen, Ändern und Löschen von Daten in Tabellen in der Datenbank.

So fügen Sie einen Benutzer zu einer SQL Server-Datenbankrolle hinzu

  1. Klicken Sie auf Start, zeigen Sie auf Programme und auf Microsoft SQL Server. Klicken Sie anschließend auf Enterprise Manager.

  2. Erweitern Sie in SQL Server-Enterprise Manager eine Servergruppe und dann den gewünschten Server.

  3. Erweitern Sie zuerst Datenbanken und dann die Datenbank, in welcher sich die Rolle befindet. Klicken Sie dann auf Rollen.

  4. Klicken Sie im Detailbereich mit der rechten Maustaste auf die Rolle, zu der der Benutzer hinzugefügt werden soll. Klicken Sie dann auf Eigenschaften.

  5. Klicken Sie im Dialogfeld Datenbankrolle – Eigenschaften auf Hinzufügen.

  6. Wählen Sie im Dialogfeld Rollenmitglieder hinzufügen die Benutzer, die hinzugefügt werden sollen. Klicken Sie dann auf OK.

    Nur Benutzer, die sich in der ausgewählten Datenbank befinden, können zu der Rolle hinzugefügt werden.

Sichern von Cookies

Cookies werden standardmäßig in Klartext gesendet. Eindringlinge können die in Cookies enthaltenen Informationen abfangen und sie dazu verwenden, die Identität von Benutzern anzunehmen. Cookies können allerdings verschlüsselt werden. Commerce Server 2000 bietet zur Erhöhung der Sicherheit Authentifizierung und anonyme, verschlüsselte Cookies an. Verwenden Sie Verschlüsselung zur Sicherung der Cookies, und betten Sie die IP-Adressen (Internet Protocol) des Clients darin ein. Dadurch kann der Zielserver überprüfen, ob Cookies tatsächlich vom richtigen Benutzer versendet wurden.

Erteilen von Zugriffsberechtigungen auf Ordner, die die Site enthalten, mithilfe von Skripts

Von Commerce Server Site Packager werden NTFS-Ordner- und Dateizugriffsberechtigungen (Zugriffssteuerungslisten) weder gepackt noch entpackt. Sichern Sie nach dem Entpacken der Site unbedingt die Dateien und Ordner, die die Site enthalten. Verwenden Sie zum Ändern von Zugriffsberechtigungen auf Ordner am besten die Skripthooks von Site Packager während bzw. nach der Ausführung von Site Packager. Weitere Informationen finden Sie unter Verwenden von Skripts mit Site Packager.

Bereitstellen von Sites für externe Kunden

Wenn Sie ein Application Service Provider (ASP) sind und Sites für externe Kunden bereitstellen, sollten sich auf einem einzelnen Computer nicht mehrere Sites befinden. Jede Kundensite sollte über ihre eigene Verwaltungsdatenbank verfügen. Benutzer der einen Site könnten die Daten anderer Sites lesen, sofern mehrere Sites auf dieselbe Verwaltungsdatenbank zugreifen. Das Sicherheitsrisiko erhöht sich, wenn Benutzer Skripts in Ihre Site laden können, da diese Skripts Codes enthalten könnten, die Daten aus der Verwaltungsdatenbank und anderen Commerce Server-Datenbanken lesen bzw. schreiben.


Einrichten der Serverplattformen

Bei der in diesem Abschnitt beschriebenen Installation handelt es sich um eine Konfiguration aus vier Computern. Sie enthält ein Webserverpaar, das Netzwerklastenausgleich (Network Load Balancing, NLB) und ein Paar von SQL Server-Clusterservern einsetzt. Weitere Informationen über diese Konfiguration erhalten Sie unter Konfiguration einer kleinen Site.

Führen Sie bei der Einrichtung von Servern für eine Commerce Server 2000-Website die folgenden Schritte aus:

  • Überprüfen Sie die geplante Computerkonfiguration.

  • Binden Sie alle beim Testen entdeckten Konfigurationsänderungen ein.

  • Erstellen Sie eine Standardkonfiguration für jede Computerrolle. Bei einer kleinen Konfiguration schließen die Rollen Webserver und Datenbankserver ein.

  • Installieren Sie Microsoft Windows 2000 Server bzw. Advanced Server auf allen Computern in der Testumgebung. Konfigurieren Sie diese gemäß der Konfigurationsdokumentation mit der entsprechenden Domänenmitgliedschaft, den IP-Adressen, der DNS (Domain Name System)-Clientkonfiguration, den Diensten und dem Microsoft SQL Server.

    Wenn Ihre Serverhardware die Anforderungen für das Imaging erfüllt, kann auch ein Abbild des Servers für jede Rolle erstellt werden. Mithilfe von Microsoft Application Center 2000 lässt sich das Abbild auf anderen Servern in dieser Rolle replizieren. Weitere Informationen finden Sie in der Microsoft Application Center 2000-Dokumentation.

Dieser Abschnitt beinhaltet folgende Themen:

  • Einrichten von Webservern. Erklärt die Installation von Netzwerklastenausgleich-Clustern sowie die Installation von Webservern in einer Active Directory-Domäne auf einer Vier-Computer-Konfiguration.

  • Einrichten der Datenbankserver. Erklärt, wie zwei SQL Server-Clusterserver auf einer Vier-Computer-Konfiguration eingerichtet werden.

  • Einrichten der Active Directory-Server. Erklärt die Einrichtung von zwei Webservern mithilfe des Netzwerklastenausgleichs sowie die Einrichtung von zwei SQL Server-Clusterservern und zwei Microsoft Active Directory-Domänencontrollern auf einer Sechs-Computer-Konfiguration.


Einrichten von Webservern

Dieser Abschnitt behandelt eine Vier-Computer-Konfiguration; sie enthält ein Webserverpaar, welches Netzwerklastenausgleich (NLB) und ein Paar von SQL Server-Clusterservern einsetzt. Weitere Informationen über diese Konfiguration erhalten Sie unter Konfiguration einer kleinen Site.

Führen Sie bei der Einrichtung der Webserver unbedingt folgende Schritte aus:

  • Vergewissern Sie sich, dass es sich bei den Webservern um die Computer handelt, auf denen sich die Websites und die Laufzeitkomponenten von Commerce Server befinden. Damit Sie die Ebene der Geschäftslogik von der Datenbankebene trennen können, sollten Webserver keine Ihrer Datenbanken enthalten. Vor der Installation von Commerce Server 2000 sollte sich unbedingt die notwendige Softwareplattform auf den Webservern befinden. Weitere Informationen finden Sie unter Softwareanforderungen.

  • Installieren Sie Windows 2000 Server oder Advanced Server.

  • Vergewissern Sie sich, dass NLB-Cluster von Windows 2000 eingerichtet sind.

  • Stellen Sie sicher, dass eine Internet-Informationsdienste (IIS) 5.0-Website für jede Site erstellt worden ist.

Dieser Abschnitt beinhaltet folgende Themen:

  • Installation von Netzwerklastenausgleich-Clustern

  • Verbinden von Webservern mit einer Active Directory-Domäne

  • Konfigurieren von IIS

Siehe auch

Webserver


Installation von Netzwerklastenausgleich-Clustern

Der Netzwerklastenausgleich (NLB) von Microsoft Windows 2000 erhöht die Verfügbarkeit und Skalierbarkeit von Commerce Server-Anwendungen. Die Zusammenführung der Ressourcen zweier oder mehrerer Webserver in einem Lastenausgleich durchführenden Cluster erhöht die Zuverlässigkeit der Website.

Jeder Server führt separate Kopien der Commerce Server-Anwendungen aus. NLB verteilt die Arbeitsauslastung auf die Server indem es ermöglicht, dass die Gruppe dieser Server mithilfe desselben IP-Adressenclusters adressiert wird.

Sie können NLB mithilfe der folgenden Programme installieren:

  • Microsoft Application Center 2000

  • Windows 2000 Advanced Server

  • Windows 2000 Datacenter Server

Informationen über die Installation von NLB, einschließlich der Hardwareanforderungen, finden Sie in der Dokumentation des Produkts, das Sie zur Installation verwenden.


Verbinden von Webservern mit einer Active Directory-Domäne

Wenn Sie eine Microsoft Active Directory-Domäne erstellen, vergewissern Sie sich vor der Installation von Commerce Server 2000, dass die Webserver zur Domäne gehören. Weitere Informationen über Active Directory finden Sie unter Einrichten der Active Directory-Server.

Anmerkung

  • Um den Computer mit einer Domäne verbinden zu können, müssen Sie beim lokalen Computer als Administrator angemeldet sein. Außerdem benötigen Sie einen gültigen Benutzernamen und ein Kennwort. Wenn Sie nicht wissen, welchen Benutzernamen bzw. welches Kennwort Sie verwenden sollen, wenden Sie sich an Ihren Systemadministrator.

So verbinden Sie eine Domäne

  7. Klicken Sie auf Start, zeigen Sie auf Einstellungen, klicken Sie auf Systemsteuerung, und klicken Sie dann auf System.

  8. Klicken Sie auf der Registerkarte Netzwerkidentifikation im Dialogfeld Systemeigenschaften auf Eigenschaften.

  9. Wählen Sie im Dialogfeld Änderungen der Benutzerinformationen im Feld Mitglied von die Option Domäne, geben Sie den Namen der zu verbindenden Domäne ein, klicken Sie dann auf OK.

    Sie werden zur Eingabe eines Benutzernamens und Kennworts aufgefordert, damit Sie den Computer mit der Domäne verbinden können.

    Anmerkung

    • Wenn Sie möchten, dass die Active Directory-Domäne längere Namen erkennt, muss der Domänenadministrator die Registrierung von DNS (Domain Name System)-Namen aktivieren, die 16 Byte oder länger sind.
  10. Um das Dialogfeld Systemeigenschaften nach der Eingabe des Benutzernamens und des Kennworts zu schließen, klicken Sie auf OK.

Sie werden aufgefordert, den Computer neu zu starten, damit die Änderungen übernommen werden.

Siehe auch

  • Einrichten der Active Directory-Server


Konfigurieren von IIS

Internet-Informationsdienste (IIS) 5.0 wird standardmäßig auf dem Microsoft Windows 2000 Server und Advanced Server installiert.

Um für Ihre Websites zusätzliche Sicherheit zu gewährleisten, sollten Sie eine neue IIS-Website für jede Site erstellen, die mit Commerce Server installiert werden soll. Commerce Server installiert die Site standardmäßig in der IIS-Standardwebsite. Wenn Sie Commerce Server Site Packager zum Entpacken der Site verwenden, können Sie festlegen, dass diese sich nicht in der Standardwebsite, sondern in der von Ihnen erstellten IIS-Website befinden soll.

So erstellen Sie eine neue IIS-Website

  1. Klicken Sie auf Start, zeigen Sie auf Programme und dann auf Verwaltungstools. Klicken Sie anschließend auf Internetdienste-Manager.

  2. Klicken Sie mit der rechten Maustaste im Dialogfeld Internet-Informationsdienste auf den Namen des Computers, auf welchem Sie die neue IIS-Site erstellen wollen. Zeigen Sie auf Neu, und klicken Sie dann auf Website.

  3. Klicken Sie im Dialogfeld Assistent für neue Website auf Weiter.

  4. Geben Sie im Dialogfeld Beschreibung der Website im Feld Beschreibung den Namen der neuen Website ein. Dieser Name wird als Sitename im Internetdienste-Manager angezeigt. Klicken Sie auf Weiter.

  5. Führen Sie im Dialogfeld IP-Adressen und Anschlusseinstellungen folgende Schritte aus:
    Option/Funktion | Zweck
    Eingabe der IP-Adresse für die Website | Geben Sie die IP-Adresse für diese Website ein, bzw. wählen Sie sie in der Dropdownliste aus. Der Wert Alle nicht zugeordnet in der Dropdownliste bezieht sich auf die IP-Adressen, die einem Computer, nicht aber einer bestimmten Site zugeordnet sind. Die Standardwebsite verwendet alle IP-Adressen, die keinen anderen Sites zugeordnet sind. Nur eine Site kann so eingestellt werden, dass sie nicht zugeordnete IP-Adressen verwendet.
    TCP-Anschluss, den diese Website verwenden sollte (Standard: 80) | Geben Sie die Anschlussadresse für diese Website ein.
    Hostheader für diese Site (Standard: Keiner) | Ordnen Sie den Hostheadernamen dieser Website zu. Wenn Sie einer IP-Adresse mithilfe von Hostheadern zusätzliche Sites hinzufügen, müssen Sie einen Hostheadernamen zuordnen.

  6. Klicken Sie auf Weiter.

  7. Führen Sie im Dialogfeld Basisverzeichnis der Website folgende Schritte aus:
    Option/Funktion | Zweck
    Pfad | Geben Sie den Speicherort für das Stammverzeichnis der Site im Windows-Dateisystem ein.
    Anonymen Zugriff auf diese Website zulassen | Hiermit gewähren Sie Remotebenutzern ohne Benutzernamen bzw. Kennwort die Verbindung zu dieser Site.

  8. Klicken Sie auf Weiter.

  9. Legen Sie im Dialogfeld Zugriffsberechtigungen für die Website die Zugriffsberechtigungen für Benutzer fest, die auf das Basisverzeichnis der Website zugreifen, wie dies im vorherigen Schritt beschrieben ist. Klicken Sie anschließend auf Weiter.

  10. Klicken Sie auf Fertig stellen, um den Assistenten zu schließen.

Anmerkung

  • Es empfiehlt sich, den DNS (Domain Name System)-Dienst auf einem Computer in Ihrem Intranet zu installieren. Wenn das Intranet klein ist, können Sie Hosts- bzw. LMHOSTS-Dateien auf allen Computern des Netzwerks verwenden. DNS ermöglicht Benutzern, auf Ihre Site mithilfe von Textnamen anstelle von IP-Adressen zuzugreifen.

  • Aus Sicherheitsgründen sollten alle mit IIS verwendeten Laufwerke mit NTFS formatiert sein.

Siehe auch

Verwenden von Commerce Server und IIS


Einrichten der Datenbankserver

Dieser Abschnitt behandelt eine Vier-Computer-Konfiguration; sie enthält ein Webserverpaar, das Netzwerklastenausgleich (NLB) und ein Paar von SQL Server-Clusterservern einsetzt. Weitere Informationen über diese Konfiguration erhalten Sie unter Konfiguration einer kleinen Site.

Bei den Datenbankservern handelt es sich um die Computer, die zur Bereitstellung der Commerce Server-Datenbanken und Anwendungsdatenbanken (sowie der Ressourcen von Commerce Server Direct Mailer und des Vorhersagedienstes, sofern Sie diese installieren wollen) eingesetzt werden. Damit Sie die Ebene der Geschäftslogik von den Datenbankebene trennen können, sollten Ihre Datenbankserver keine Ihrer Anwendungen oder Verwaltungstools enthalten. Direct Mailer ist von dieser Regel ausgeschlossen und kann auf dem Datenbankserver in der Konfiguration einer kleinen Site installiert werden. Vor der Installation von Commerce Server 2000 sollte sich unbedingt die notwendige Softwareplattform auf den Datenbankservern befinden. Weitere Informationen finden Sie unter Softwareanforderungen.

Anmerkung

  • Eine gemischte Konfiguration aus SQL Server 7.0 und SQL Server 2000 für Datawarehouse- und OLAP-Serverdatenbanken wird von Commerce Server nicht unterstützt.

Einrichten von Serverclustern

Um eine hohe Verfügbarkeit der SQL Server-Datenbanken zu gewährleisten, empfiehlt es sich, diese auf Serverclustern zu speichern. Als Cluster konfigurierte Server nutzen gemeinsame Daten und arbeiten als ein System. Jeder Server funktioniert darin unabhängig von anderen Servern im Cluster. Wenn ein Server ausfällt, übernimmt ein anderer seine Funktionen.

Vor der Installation eines Serverclusters müssen die Server des Clusters mit kompatiblen Laufwerken, Netzwerkkarten und Laufwerkcontrollern konfiguriert werden. Wenn Sie weitere Informationen zu diesem Thema benötigen, wenden Sie sich an Ihren Hardwarehersteller.

Je nach Bedürfnissen und Kostenrahmen stehen verschiedene Techniken zum Erstellen von Serverclustern zur Auswahl, z. B. gemeinsam genutzte sowie gespiegelte Laufwerke. Sie können Ihre Server auch als aktiv/aktiv konfigurieren. In diesem Fall führen die Server Anwendungen aus und übernehmen für einen anderen Server zugleich die Sicherung. Eine weitere Variante ist die Konfiguration der Server als aktiv/passiv, durch welche ein Server Anwendungen ausführt, während der andere die Funktion der Sicherung übernimmt. Bevor Sie sich für eine Technik entscheiden, sollten Sie genau überlegen, welche Rolle Servercluster in der Site spielen sollen. Dem Erstellen von Serverclustern sollte eine sorgfältige Planung vorausgehen. Weitere Informationen über das Planen von Serverclustern finden Sie im Microsoft Windows 2000 Server Deployment Planning Guide.

Verwenden Sie nach dem Erstellen eines Plans für die Servercluster den Windows-Assistenten zum Konfigurieren des Clusterdienstes zum Erstellen und Konfigurieren von Serverclustern. Weitere Informationen finden Sie in dem englischen Whitepaper Step-by-Step Guide to Installing Cluster Service.

Achten Sie beim Installieren von Serverclustern darauf, dass Sie die Installation der Anwendungen in der vorgeschriebenen Reihenfolge vornehmen. Informationen über die Installation von SQL Server auf einem Servercluster finden Sie in der Microsoft Produktsupport-Website.

Anmerkung

  • In der ersten Version von Commerce Server 2000 unterstützt Commerce Server Direct Mailer nicht die Installation auf einem virtuellen SQL Server-Cluster. Installieren Sie Direct Mailer auf einem physischen Knoten des virtuellen SQL Server-Clusters, und verwenden Sie dabei den Namen des physischen Computers sowie eine SQL Server-Instanz, die sich von der virtuellen Instanz unterscheidet. Überprüfen Sie, ob in der Microsoft Commerce Server-Website eine aktualisierte Lösung angeboten wird.


Einrichten der Active Directory-Server

Dieser Abschnitt behandelt eine Konfiguration mit sechs Computern; sie besteht aus zwei Webservern, die Netzwerklastenausgleich (Network Load Balancing, NLB) verwenden, zwei SQL Server-Clusterservern sowie zwei Microsoft Active Directory-Domänencontrollern. Weitere Informationen über diese Konfiguration erhalten Sie unter Konfiguration einer kleinen Site.

Wenn Sie Active Directory zum Speichern von Benutzerprofilen oder anderen Daten implementieren wollen, müssen Sie einige Schritte durchführen, die in den folgenden Themen beschrieben werden.

Anmerkung

  • Bevor Sie einen dieser Schritte durchführen, sollten Sie die Funktionen von Active Directory und seine Rolle im Siteplan verstehen. Weitere Informationen über Active Directory finden Sie in der englischen Website Active Directory Overview.

Dieser Abschnitt beinhaltet folgende Themen:

  • Erstellen einer Active Directory-Domäne. Erklärt, wie ein Active Directory-Domänencontroller eingerichtet wird. Wenn alle Sites über separate Domänen verfügen, die dabei auch von den Domänen des Firmennetzwerks abgesondert sind, erhöht dies die Sicherheit der Site.

  • Hinzufügen eines Domänencontrollers zu einer bestehenden Domäne. Beschreibt, wie ein Domänencontroller zu einer bestehenden Domäne hinzugefügt wird. Dieser Schritt ist zwar nicht verbindlich, wird aber sehr empfohlen, um die Verfügbarkeit aller in Active Directory gespeicherten Benutzerprofildaten sicherzustellen.

  • Aktivieren der Webserverauthentifizierung von Benutzern auf anderen Servern. Erklärt, wie Sie Windows konfigurieren, um sicherzustellen, dass Benutzer auf alle Commerce-Server zugreifen können.

Siehe auch

Planen des Profilsystems

Planen der Integration von Active Directory


Erstellen einer Active Directory-Domäne

Bevor Sie die Active Directory-Authentifizierung für die Benutzerprofilinformation der Commerce Server-Website aktivieren, muss die Active Directory-Domäne in der Site eingerichtet werden. Es empfiehlt sich, dafür ein repliziertes Serverpaar zu bestimmen.

Führen Sie diese Prozedur nur dann durch, wenn Sie die Konzepte von Active Directory verstehen und die Struktur von Active Directory geplant haben. Weitere Informationen über Active Directory finden Sie im Microsoft Windows 2000 Server Deployment Planning Guide.

So richten Sie durch das Erstellen einer neuen Domänenstruktur eine Active Directory-Domäne ein

So richten Sie durch das Erstellen einer neuen untergeordneten Domäne in einer bestehenden Domänenstruktur eine Active Directory-Domäne ein

So richten Sie durch das Erstellen einer neuen Domänenstruktur eine Active Directory-Domäne ein

  1. Klicken Sie auf Start und anschließend auf Ausführen.

  2. Geben Sie im Dialogfeld Ausführen im Feld Öffnen erst dcpromo ein, und klicken Sie dann auf OK.

  3. Klicken Sie im Dialogfeld Assistent zum Installieren von Active Directory auf Weiter.

  4. Wählen Sie im Dialogfeld Typ des Domänencontrollers die Option Domänencontroller für eine neue Domäne, und klicken Sie anschließend auf Weiter.

  5. Wählen Sie im Dialogfeld Struktur oder untergeordnete Domäne erstellen die Option Eine neue Domänenstruktur erstellen, und klicken Sie dann auf Weiter.

  6. Führen Sie im Dialogfeld Gesamtstruktur erstellen oder einer Gesamtstruktur beitreten folgende Schritte aus:
    Option/Funktion | Zweck
    Neue Gesamtstruktur aus Domänenstrukturen erstellen | Wählen Sie diese Option aus, falls dies die erste Domäne Ihrer Organisation ist bzw. wenn die neu erstellte Domänenstruktur unabhängig von der aktuellen Gesamtstruktur sein soll.
    Diese neue Domänenstruktur in eine bestehende Gesamtstruktur eingliedern | Wählen Sie diese Option aus, wenn die Benutzer in der neuen Domänenstruktur Zugriff auf Ressourcen in bestehenden Domänenstrukturen haben sollen – und umgekehrt.

  7. Wenn Sie die Option Neue Gesamtstruktur aus Domänenstrukturen erstellen gewählt haben, geben Sie im Dialogfeld Neuer Domänenname im Feld Gesamter DNS-Name für die neue Domäne den gesamten DNS (Domain Name System)-Namen der neuen Domäne ein.

  8. Geben Sie im Dialogfeld NetBIOS-Domänenname im Feld NetBIOS-Domänenname den Namen ein, den Benutzer früherer Versionen von Microsoft Windows zur Identifizierung der Domäne verwenden sollen. Es empfiehlt sich, die Standardversion zu verwenden, welche eine abgekürzte Version des gesamten DNS-Namens darstellt. Klicken Sie auf Weiter.

  9. Übernehmen Sie im Dialogfeld Datenbank und Protokolldatei die Standardeinstellungen oder ändern Sie sie ggf.

  10. Übernehmen Sie im Dialogfeld Freigegebenes SYSVOL die Standardeinstellung oder ändern Sie sie ggf.

  11. Wenn DNS auf Ihrem Computer noch nicht installiert ist, werden Sie zur Installation aufgefordert. Wählen Sie Ja, DNS automatisch auf diesem Computer installieren und konfigurieren, und klicken Sie dann auf Weiter.

  12. Wählen Sie im Dialogfeld Berechtigungen die Option Nur mit Windows 2000-Servern kompatible Berechtigungen, und klicken Sie dann auf Weiter.

Vorsicht

  • Wenn Sie Rückwärtskompatibilität zulassen, kann dies zu Sicherheitsproblemen in Commerce Server 2000 führen.
  13. Führen Sie im Dialogfeld Administratorkennwort für "Verzeichnisdienste wiederherstellen" die folgenden Schritte aus:
    Option/Funktion | Zweck
    Kennwort | Geben Sie das Kennwort ein, das Sie dem Administratorkonto für den Server zuordnen möchten.
    Kennwort bestätigen | Geben Sie das Kennwort erneut ein, um dieses zu bestätigen.

  14. Überprüfen Sie im Dialogfeld Zusammenfassung die ausgewählten Optionen, um die Richtigkeit der Active Directory-Konfiguration sicherzustellen. Wenn Sie richtig ist, klicken Sie auf Weiter. Wenn Sie Ihre Auswahl nochmals konfigurieren müssen, klicken Sie auf Zurück.

    Das Dialogfeld Active Directory konfigurieren wird angezeigt und teilt Ihnen mit, dass das konfigurierte Active Directory auf Ihrem Computer installiert wird.

  15. Klicken Sie im Dialogfeld Fertigstellen des Assistenten auf Fertig stellen.

So richten Sie durch das Erstellen einer neuen untergeordneten Domäne in einer bestehenden Domänenstruktur eine Active Directory-Domäne ein

  1. Klicken Sie auf Starten und anschließend auf Ausführen.

  2. Geben Sie im Dialogfeld Ausführen im Feld Öffnen erst dcpromo ein, und klicken Sie dann auf OK.

  3. Klicken Sie im Feld Assistent zum Installieren von Active Directory auf Weiter.

  4. Wählen Sie im Dialogfeld Typ des Domänencontrollers die Option Domänencontroller für eine neue Domäne, und klicken Sie anschließend auf Weiter.

  5. Wählen Sie im Dialogfeld Struktur oder untergeordnete Domäne erstellen die Option Eine neue untergeordnete Domänenstruktur in einer bestehenden Domänenstruktur erstellen, und klicken Sie dann auf Weiter.

  6. Führen Sie im Dialogfeld Installation der untergeordneten Domäne folgende Schritte aus:
    Option/Funktion | Zweck
    Übergeordnete Domäne | Geben Sie die übergeordnete Domäne ein.
    Untergeordnete Domäne | Geben Sie die untergeordnete Domäne ein.

  7. Geben Sie im Dialogfeld NetBIOS-Domänenname im Feld NetBIOS-Domänenname den Namen ein, den Benutzer früherer Versionen von Microsoft Windows zur Identifizierung der Domäne verwenden sollen. Es empfiehlt sich, die Standardversion zu verwenden, welche eine abgekürzte Version des gesamten DNS-Namens darstellt. Klicken Sie auf Weiter.

  8. Übernehmen Sie im Dialogfeld Datenbank und Protokolldatei die Standardeinstellungen oder ändern Sie sie ggf.

  9. Übernehmen Sie im Dialogfeld Freigegebenes SYSVOL die Standardeinstellungen oder ändern Sie sie ggf.

  10. Wenn DNS auf Ihrem Computer noch nicht installiert ist, werden Sie zur Installation aufgefordert. Wählen Sie Ja, DNS automatisch auf diesem Computer installieren und konfigurieren, und klicken Sie dann auf Weiter.

  11. Wählen Sie im Dialogfeld Berechtigungen die Option Nur mit Windows 2000-Servern kompatible Berechtigungen, und klicken Sie dann auf Weiter.

Vorsicht

  • Wenn Sie Rückwärtskompatibilität zulassen, kann dies zu Sicherheitsproblemen in Commerce Server 2000 führen.
  12. Führen Sie im Dialogfeld Administratorkennwort für "Verzeichnisdienste wiederherstellen" die folgenden Schritte aus:
    Option/Funktion | Zweck
    Kennwort | Geben Sie das Kennwort ein, das Sie dem Administratorkonto für den Server zuordnen möchten.
    Kennwort bestätigen | Geben Sie das Kennwort erneut ein, um dieses zu bestätigen.

    Das Dialogfeld Active Directory konfigurieren wird angezeigt und teilt Ihnen mit, dass das konfigurierte Active Directory auf Ihrem Computer installiert wird.

  13. Klicken Sie im Dialogfeld Fertigstellen des Assistenten auf Fertig stellen.

Siehe auch

Konfiguration einer kleinen Site

Verbinden von Webservern mit einer Active Directory-Domäne


Hinzufügen eines Domänencontrollers zu einer bestehenden Domäne

Nachdem Sie mehrere Domänencontroller erstellt haben, repliziert Active Directory regelmäßig und automatisch zwischen ihnen bestehende Verzeichnisinformationen. Wenn ein Domänencontroller nicht mehr verfügbar ist, stehen über die anderen Domänencontroller immer noch Verzeichnisinformationen zur Verfügung.

So fügen Sie einen Domänencontroller zu einer bestehenden Domäne hinzu

  1. Klicken Sie auf Start und anschließend auf Ausführen.

  2. Geben Sie im Dialogfeld Ausführen im Feld Öffnen erst dcpromo ein, und klicken Sie dann auf OK.

  3. Wählen Sie im Dialogfeld Typ des Domänencontrollers die Option Zusätzlicher Domänencontroller. Dadurch wird der Domänencontroller als ein Replikationspartner erstellt.

  4. Geben Sie im Dialogfeld Netzwerkreferenzen den Benutzernamen des Domänenadministrators, das Kennwort und den Namen der Domäne ein. Klicken Sie dann auf Weiter.

  5. Klicken Sie im Dialogfeld Zusätzlicher Domänencontroller auf Weiter.

  6. Übernehmen Sie im Dialogfeld Datenbank und Protokolldatei die Standardwerte, und klicken Sie dann auf Weiter.

  7. Klicken Sie im Dialogfeld Freigegebenes SYSVOL auf Weiter.

  8. Lassen Sie im Dialogfeld Administratorkennwort für "Verzeichnisdienste wiederherstellen" die Felder leer, und klicken Sie dann auf Weiter.

  9. Klicken Sie im Dialogfeld Zusammenfassung auf Weiter.

  10. Wenn das Dialogfeld Fertigstellen angezeigt wird, klicken Sie auf Fertig stellen und starten Windows neu.


Aktivieren der Webserverauthentifizierung von Benutzern auf anderen Servern

In Commerce Server 2000 ist es erforderlich, dass Webserver Benutzer authentifizieren können, bevor diese auf Dienste zugreifen, die sich auf anderen Servern befinden. Stellen Sie sicher, dass die Microsoft Windows-Konfiguration einen solchen Zugriff zulässt.

Anmerkung

  • Zum Aktivieren der Delegation müssen Sie über ausreichende Administratorprivilegien in der Windows 2000-Domäne verfügen.

So aktivieren Sie in einem Webserver die Authentifizierung von Clients für andere Server

  1. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Commerce Server 2000, und klicken Sie anschließend auf Commerce Server Manager.

  2. Erweitern Sie auf der Commerce Server Manager-Konsole Active Directory-Benutzer und -Computer, und klicken Sie mit der rechten Maustaste auf den Domänenknoten. Klicken Sie dann auf Suchen. Wenn Sie wissen, in welcher Organisationseinheit sich der Computer befindet, haben Sie aber auch die Möglichkeit, mit der rechten Maustaste in der Konsolenstruktur auf die Organisationseinheit zu klicken. Klicken Sie dann auf Suchen. (Weitere Möglichkeit: Navigieren Sie zu dem Computerkonto, das Sie ändern möchten, ohne den Befehl Suchen zu verwenden. Fahren Sie mit Schritt 9 fort.)

  3. Wählen Sie im Dialogfeld Benutzer, Kontakte und Gruppen suchen im Feld Suchen die Option Computer in der Dropdownliste.

  4. Geben Sie auf der Registerkarte Computer im Feld Name den Namen des Computers ein, nach dem Sie suchen.

  5. Wählen Sie im Feld In die Domäne bzw. die Organisationseinheit, die Sie aus der Dropdownliste aussuchen möchten, oder klicken Sie auf Durchsuchen, um den Ordner bzw. die Domäne auszuwählen, in welchem bzw. in welcher mit der Suche begonnen werden soll.

  6. (Optional) Geben Sie im Feld Besitzer den Namen der Person ein, deren Computer in der Domäne ist.

  7. (Optional) Wählen Sie im Feld Alle aus der Liste die Rolle des Computers. Sie können im Netzwerk nach allen Computern suchen, bei denen es sich um Arbeitsstationen und Server handelt bzw. um Computer, die Domänencontroller sind.

  8. Klicken Sie auf Suchen.

    Der Name des gewünschten Computers wird in der Liste im unteren Bereich des Dialogfelds Computer suchen angezeigt.

  9. Klicken Sie mit der rechten Maustaste auf den Namen des Computers, und klicken Sie dann auf Eigenschaften.

  10. Markieren Sie im Dialogfeld Eigenschaften von Computername die Option Computer für Delegierungszwecke vertrauen, und klicken Sie anschließend auf OK.


Installieren der Site

Dieser Abschnitt behandelt eine Konfiguration mit vier Computern; sie besteht aus zwei Webservern, die Netzwerklastenausgleich (Network Load Balancing, NLB) verwenden, und zwei SQL Server-Clusterservern. Weitere Informationen über diese Konfiguration erhalten Sie unter Konfiguration einer kleinen Site.

Informationen über die Installation von Commerce Server 2000 in einer größeren Umgebung finden Sie im Microsoft Commerce Server 2000 Resource Kit.

Dieser Abschnitt beinhaltet folgende Themen:

  • Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern. Beschreibt die Installation von Commerce Server 2000 und das Entpacken von Anwendungen in einer Konfiguration mit vier Computern.

  • Beispiel B: Installation auf Konfiguration mit drei Computern ohne Cluster. Beschreibt die Installation von Commerce Server 2000 auf dem Webserver und die anschließende Bereitstellung der Commerce Server-Datenbanken auf einem anderen Computer.


Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern

Dieses Thema enthält Anleitungen, die die Installation von Commerce Server 2000 und das Entpacken von Anwendungen in einer Konfiguration mit vier Computern mit folgender Zusammensetzung beschreiben:

  • Zwei Webserver in einem Netzwerklastenausgleich-(NLB)-Cluster. Diese Server enthalten auch die Verwaltungstools von Commerce Server.

  • Zwei SQL Server-Computer, die zu einem einzigen Servercluster konfiguriert sind. Diese Server haben einen gemeinsamen Clusternamen.

Eine Abbildung dieser Konfiguration finden Sie unter Konfiguration einer kleinen Site.

Schritt 1: So installieren Sie Commerce Server auf den Webservern

Schritt 2: So installieren Sie Commerce Server auf dem SQL Server-Cluster

Schritt 3: So entpacken Sie Ihre Website und Anwendungen

Schritt 1: So installieren Sie Commerce Server auf den Webservern

  1. Legen Sie die Commerce Server 2000-CD in das CD-Laufwerk ein, und führen Sie das Programm Commerce Server 2000-Setup aus. Nehmen Sie den Lizenzvertrag an, geben Sie Ihre Kundeninformationen ein, und stimmen Sie der Wahl des Standardzielordners zu.

  2. Wählen Sie im Dialogfeld Setup-Typ die Option Benutzerdefiniert aus, und klicken Sie anschließend auf Weiter.

  3. Wählen Sie im Dialogfeld Benutzerdefinierte Installation die Optionen Verwaltungstools, Commerce Server Site Packager und Onlinedokumentation. Bei Bedarf können Sie auch die Option Vorhersagedienst wählen.

  4. Vergewissern Sie sich, dass die Optionen Analyse und Datawarehouse und Direct Mailer-Dienst nicht ausgewählt sind (ein X in den Kontrollkästchen bedeutet, dass die jeweilige Option nicht ausgewählt ist). Die folgende Abbildung zeigt das Dialogfeld Benutzerdefinierte Installation.
    Benutzerdefinierte Installation (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  5. Klicken Sie auf Weiter.

  6. Führen Sie im Dialogfeld Konfiguration der Verwaltungsdatenbank folgende Schritte aus:
    Option/Funktion | Zweck
    SQL Server-Computer | Geben Sie den Computernamen für den Datenbankserver ein.
    SQL Server-Anmeldename | Geben Sie den SQL Server-Anmeldenamen für diesen Computer ein. Beim Erstellen einer neuen Datenbank muss ein Anmeldename verwendet werden, der zu einer der folgenden SQL Server-Rollen gehört: sysadmin oder dbcreator. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.
    SQL Server-Anmeldekennwort | Geben Sie das SQL Server-Kennwort für diesen Anmeldenamen ein. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.

    Die Verwaltungsdatenbank befindet sich auf dem SQL-Cluster. Mit diesem Schritt verweisen Sie den Computer auf diese Datenbank. Die folgende Abbildung zeigt das Dialogfeld Konfiguration der Verwaltungsdatenbank.

    Konfiguration der Verwaltungsdatenbank (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  7. Klicken Sie auf Weiter.

  8. Führen Sie im Dialogfeld Dienstkonten folgende Schritte aus:
    Option/Funktion | Zweck
    Benutzername | Geben Sie den Windows-Benutzernamen für das Konto ein, über das die Commerce Server-Dienste auf diesem Computer ausgeführt werden.
    Kennwort | Geben Sie das Kennwort für das Windows-Konto ein.
    Domäne | Geben Sie die Domäne für das Windows-Konto ein.

    Die folgende Abbildung zeigt das Dialogfeld Dienstkonten.

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  9. Klicken Sie auf Weiter.

  10. Klicken Sie im Dialogfeld Zur Installation bereit auf Installieren.

    Commerce Server-Setup installiert Verwaltungstools und Sitepakete.

  11. Klicken Sie auf Fertig stellen, um das Setupprogramm zu verlassen.

Schritt 2: So installieren Sie Commerce Server auf dem SQL Server-Cluster

  1. Legen Sie die Commerce Server 2000-CD in Ihr CD-ROM-Laufwerk ein, und führen Sie das Programm Commerce Server 2000-Setup aus. Nehmen Sie den Lizenzvertrag an, geben Sie Ihre Kundeninformationen ein, und stimmen Sie der Wahl des Standardzielordners zu.

  2. Wählen Sie im Dialogfeld Setup-Typ die Option Benutzerdefiniert aus, und klicken Sie anschließend auf Weiter.

  3. Wählen Sie im Dialogfeld Benutzerdefinierte Installation die Option Analyse und Datawarehouse.

  4. Vergewissern Sie sich, dass alle anderen Optionsfelder leer sind (in jedem Kontrollkästchen sollte sich ein X befinden, das anzeigt, dass die entsprechende Option nicht ausgewählt ist). Die folgende Abbildung zeigt das Dialogfeld Benutzerdefinierte Installation.
    Benutzerdefinierte Installation, Beispiel A: Servercluster

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Anmerkung

  • In der ersten Version von Commerce Server 2000 unterstützt Commerce Server Direct Mailer nicht die Installation auf einem virtuellen SQL Server-Cluster. Installieren Sie Direct Mailer auf einem physischen Knoten des virtuellen SQL Server-Clusters, und verwenden Sie dabei den Namen des physischen Computers sowie eine SQL Server-Instanz, die sich von der virtuellen Instanz unterscheidet. Überprüfen Sie, ob in der Microsoft Commerce Server-Website eine aktualisierte Lösung angeboten wird.
  5. Klicken Sie auf Weiter.

  6. Führen Sie im Dialogfeld Konfiguration der Verwaltungsdatenbank folgende Schritte aus:
    Option/Funktion | Zweck
    SQL Server-Computer | Geben Sie den Clusternamen dieses Serverclusters ein.
    SQL Server-Anmeldename | Geben Sie den SQL Server-Anmeldenamen ein, der für den Zugriff auf die Verwaltungsdatenbank verwendet werden soll. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.
    SQL Server-Anmeldekennwort | Geben Sie das Kennwort für die SQL Server-Anmeldung ein. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.

    Die folgende Abbildung zeigt das Dialogfeld Konfiguration der Verwaltungsdatenbank.

    Konfiguration der Verwaltungsdatenbank (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  7. Klicken Sie auf Weiter.

  8. Führen Sie im Dialogfeld Dienstkonten folgende Schritte aus:
    Option/Funktion | Zweck
    Benutzername | Geben Sie den Windows-Benutzernamen für das Konto ein, über das die Commerce Server-Dienste auf diesem Computer ausgeführt werden.
    Kennwort | Geben Sie das Kennwort für das Windows-Konto ein.
    Domäne | Geben Sie die Domäne für das Windows-Konto ein.

  9. Klicken Sie auf Weiter.

  10. Klicken Sie im Dialogfeld Zur Installation bereit auf Installieren.

    Commerce Server-Setup installiert die Analyse- und Datawarehouse-Features auf dem SQL Server-Cluster.

  11. Klicken Sie auf Fertig stellen, um das Setupprogramm zu verlassen.

Schritt 3: So entpacken Sie Ihre Website und Anwendungen

  1. Klicken Sie auf dem gewünschten Webserver auf Start, zeigen Sie auf Programme, dann auf Microsoft Commerce Server 2000, und klicken Sie anschließend auf Commerce Server-Manager.

  2. Erweitern Sie erst Commerce Server-Manager, und klicken Sie anschließend auf Commerce-Sites.

  3. Klicken Sie mit der rechten Maustaste auf Commerce-Sites, zeigen Sie auf Neu, und klicken Sie dann auf Site entpacken.

  4. Navigieren Sie im Dialogfeld Site entpacken von zu dem Ordner, der die zu entpackende Datei enthält. Wählen Sie die Datei, und klicken Sie auf Öffnen.

    Commerce Server Site Packager wird gestartet.

  5. Wählen Sie im Dialogfeld Entpacken die Option Benutzerdefiniertes Entpacken aus, und klicken Sie anschließend auf Weiter.

    Die folgende Abbildung zeigt das Dialogfeld Entpacken.

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  6. Wählen Sie im Dialogfeld Entpacken die Option Neue Site erstellen, und klicken Sie anschließend auf Weiter.

    Die folgende Abbildung zeigt das Dialogfeld Entpacken.

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  7. Geben Sie im Feld Sitename im Dialogfeld Sitename den Namen der Site ein, oder übernehmen Sie den Standardnamen, und klicken Sie anschließend auf Weiter.

    Die folgende Abbildung zeigt das Dialogfeld Sitename.

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

    Anmerkung

    • Verzichten Sie im Sitenamen auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden. Datenbanknamen haben standardmäßig den Sitenamen vorangestellt. Sonderzeichen werden in SQL Server nicht erkannt.

    • Geben Sie keine Sitenamen mit mehr als 256 Single-Byte-Zeichen bzw. mehr als 128 Double-Byte-Zeichen an.

    • Nennen Sie die Site nicht "Commerce". Dies ist ein für die OLAP-Datenbank (Online Analytical Processing) reservierter Name. Wenn Sie Ihre Site "Commerce" nennen, kann dies beim nächsten Entpacken einer Site zum Verlust der OLAP-Datenbank führen.
  8. Verschieben Sie im Dialogfeld Ressourcen auswählen alle Ressourcen außer Direct Mail in der Liste auf die rechte Seite. Um Commerce Server Direct Mailer zu entfernen, markieren Sie Direct Mail und klicken auf Entfernen. Die folgende Abbildung zeigt das Dialogfeld Ressourcen auswählen.
    Ressourcen auswählen ohne Direct Mail (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  9. Wenn Sie die Vorhersageressource nicht installieren wollen, wählen Sie Vorhersagedienst, und klicken Sie auf Entfernen.

    Anmerkung

    • Die Ressourcen CS-Authentifizierung und Profile müssen gemeinsam installiert werden. Sie sind nur funktionsfähig, wenn beide installiert sind.
  10. Klicken Sie im Dialogfeld Globale Ressourcenzeiger auf Weiter.

    Verwenden Sie das Dialogfeld Globale Ressourcenzeiger zum Zuordnen vorhandener globaler Ressourcen bzw. zum Erstellen neuer Ressourcen. Dieses Dialogfeld wird auch verwendet, wenn Sie globale Ressourcen bereits auf Ihrem Computer entpackt haben und nun globale Ressourcenzeiger in eine Site entpacken möchten, die die globalen Ressourcen verwenden soll.

    Die Abbildung zeigt einen Beispielbildschirm des Dialogfelds Globale Ressourcenzeiger.

    Globale Ressourcenzeiger ohne Direct Mail (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

    Im Dialogfeld Datenbank-Verbindungszeichenfolgen sind die Datenbanken aufgeführt, die Site Packager verwendet, sowie die Server, auf denen sich die Datenbanken befinden. Die folgende Abbildung zeigt das Dialogfeld Datenbank-Verbindungszeichenfolgen mit den Standardeinstellungen.

    Datenbank-Verbindungszeichenfolgen 1, Beispiel A

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

    Klicken Sie im Dialogfeld Datenbank-Verbindungszeichenfolgen auf Neue Datenbank. Da Sie die Datenbanken auf den Datenbankservercluster legen, müssen Sie die Datenbank erstellen.

  11. Führen Sie im Dialogfeld Neue Datenbank folgende Schritte aus:
    Option/Funktion | Zweck
    SQL Server-Computer | Geben Sie den Namen des SQL Server-Clusters ein.
    Datenbankname | Geben Sie den Namen der Datawarehouse-Datenbank ein.
    SQL-Benutzername | Beim Erstellen einer neuen Datenbank muss ein Anmeldename verwendet werden, der zu einer der folgenden SQL Server-Rollen gehört: sysadmin oder dbcreator. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.
    SQL-Kennwort | Geben Sie das Kennwort für die SQL Server-Anmeldung ein. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.

    Die folgende Abbildung zeigt das Dialogfeld Neue Datenbank.

    Neue Datenbank (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  12. Klicken Sie auf Datenbank erstellen, um die neue Datenbank zu erstellen.

    Die anderen Datenspeicher (z. B. Kataloge und Transaktionen) werden in einer anderen Datenbank auf dem Datenbankservercluster gespeichert. Diese Datenbanken müssen ebenfalls erstellt werden.

    Die Datenbanken werden auf dem Datenbankservercluster erstellt.

  13. Wenn Sie zum Dialogfeld Datenbank-Verbindungszeichenfolgen zurückkehren, wählen Sie Globales Datawarehouse und klicken anschließend auf Ändern.

  14. Geben Sie auf der Registerkarte Verbindung im Dialogfeld Datenverknüpfungseigenschaften den Namen des Datenbankserverclusters in das Feld Geben Sie einen Servernamen ein, oder wählen Sie einen aus ein. Wählen Sie im Feld Wählen Sie die Datenbank auf dem Server aus den Namen aus, den Sie der von Ihnen erstellten Datawarehouse-Datenbank zugewiesen haben. Klicken Sie anschließend auf OK.

    Anmerkung

    • Stellen Sie sicher, dass das Kontrollkästchen Speichern des Kennworts zulassen aktiviert ist. Ist dies nicht der Fall, wird die Datenbank von Site Packager nicht erstellt.

    Die folgende Abbildung zeigt das Dialogfeld Datenverknüpfungseigenschaften.

    Datenverknüpfungseigenschaften (Dialogfeld), Datawarehouse

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  15. Wenn Sie zum Dialogfeld Datenbank-Verbindungszeichenfolgen zurückkehren, wählen Sie alle anderen Datenbanken, und klicken Sie anschließend auf Ändern.

  16. Geben Sie auf der Registerkarte Verbindung im Dialogfeld Datenverknüpfungseigenschaften den Namen des Datenbankserverclusters in das Feld Geben Sie einen Servernamen ein, oder wählen Sie einen aus ein. Wählen Sie im Feld Wählen Sie eine Datenbank auf dem Server aus den Namen aus, den Sie der anderen von Ihnen erstellten Datenbank zugewiesen haben. Klicken Sie anschließend auf OK.

    Anmerkung

    • Stellen Sie sicher, dass das Kontrollkästchen Speichern des Kennworts zulassen aktiviert ist. Wenn dies nicht der Fall ist, wird die Datenbank von Site Packager nicht erstellt.

    Die folgende Abbildung zeigt das Dialogfeld Datenbank-Verbindungszeichenfolgen nach der Modifikation.

    Datenbank-Verbindungszeichenfolgen 2, Beispiel A

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  17. Klicken Sie auf Weiter.

  18. Überprüfen Sie im Dialogfeld Anwendungen auswählen, ob die zu entpackenden Anwendungen ausgewählt sind, und klicken Sie anschließend auf Weiter. Die folgende Abbildung zeigt das Dialogfeld Anwendungen auswählen.
    Anwendungen auswählen (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  19. Überprüfen Sie im Dialogfeld Anwendungen auswählen, ob die IIS-Websites und die IIS-Pfade für jede Anwendung korrekt sind. Um die IIS-Website für eine Anwendung zu ändern, wählen Sie die Anwendung aus der Liste und die IIS-Website aus der Dropdownliste aus.

    Um den Namen eines virtuellen Verzeichnisses einer Anwendung zu ändern, wählen Sie eine Anwendung aus der Liste. Geben Sie den gewünschten Namen in das Feld Virtuelles IIS-Verzeichnis ein.

    Anmerkung

    • Verzichten Sie in den Namen der virtuellen IIS-Verzeichnisse auf Sonderzeichen (wie #, @, % und '), um IIS-Fehler zu vermeiden.

    • Site Packager unterstützt nicht das Entpacken von Sites auf Remotecomputern.

    • Site Packager entpackt jede Anwendung im Basisverzeichnis der jeweiligen IIS-Website. Im Basisverzeichnis erstellt Site Packager ein Unterverzeichnis mit dem Namen des virtuellen IIS-Verzeichnisnamens der Anwendung.

    Die folgende Abbildung zeigt das Dialogfeld Anwendungen auswählen.

    IIS-Websites und virtuelle Verzeichnisse auswählen (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  20. Klicken Sie auf Weiter.

  21. Führen Sie im Dialogfeld Datawarehouse folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie den Namen für die globale Datawarehouse-Ressource ein.
    Server | Geben Sie einen Namen für den SQL Analysis (OLAP)-Computer ein.
    Datenbank | Geben Sie den Namen der SQL Analysis (OLAP)-Datenbank ein.

  22. Klicken Sie auf Weiter.

  23. Führen Sie im ersten Dialogfeld Profilsystem folgende Schritte aus:
    Option/Funktion | Zweck
    Profilschemadefinition | Geben Sie die Profilschemadefinition an, die importiert werden soll.
    Sitebegriffsdefinition | Geben Sie die Sitebegriffsdefinition an, die importiert werden soll.
    Ausdrucksdefinition | Geben Sie die Ausdrucksdefinition an, die importiert werden soll.

  24. Klicken Sie auf Weiter.

  25. Führen Sie im zweiten Dialogfeld Profilsystem folgende Schritte aus:
    Option/Funktion | Zweck
    Verbindungszeichenfolge für das Profilsystem | Geben Sie die Dateien an, die in den OLEDB-Datenspeicher importiert werden sollen. Klicken Sie auf Ändern, um eine andere Datenbank anzugeben.
    Schemadefinitionsskripts (*.sql, *.vbs) | Geben Sie die Schemadefinitionsskripts an, die importiert werden sollen.
    Datenauffüllungsskripts (*.sql) | Geben Sie die Datenauffüllungsskripts an, die in Ihre Site importiert werden sollen.

  26. Klicken Sie auf Weiter.

  27. Sehen Sie sich im Dialogfeld Das Entpacken ist abgeschlossen die Liste der erstellten SQL-Datenbanken und der IIS-Anwendungen an. Klicken Sie auf Protokolldatei anzeigen, um die Liste der Ereignisse in der Site Packager-Protokolldatei anzusehen.

  28. Klicken Sie auf Fertig stellen, um Site Packager zu schließen.

Anmerkung

  • Unmittelbar nach der Installation der Site und jedes Mal, wenn Sie grundlegende Änderungen an der Konfiguration Ihrer Commerce Server-Bereitstellung vornehmen, sollten Sie die Verwaltungsdatenbank unter einem anderen Namen sichern. Sie können diese Sicherungskopie verwenden, um bei Bedarf jegliche später vorgenommenen Änderungen rückgängig zu machen.

  • Führen Sie niemals mehr als eine Instanz von Site Packager gleichzeitig auf einem Computer aus.

Siehe auch

Verwenden von Skripts mit Site Packager


Beispiel B: Installation auf einer Konfiguration mit drei Computern ohne Cluster

Sie verwenden Commerce Server Site Packager, um Siteressourcen jedes beliebigen Commerce Server 2000-Computers in der Verwaltungsdatenbank bereitzustellen. Wenn Sie z. B. drei Computer besitzen, sollten Sie Commerce Server auf dem Webserver installieren und anschließend die Commerce Server-Datenbanken auf einem anderen Computer bereitstellen. Sie können die Computer folgendermaßen konfigurieren:

  • Computer A wird für die Verwaltungsdatenbank und Verwaltungstools verwendet. Mit diesem Computer verwalten Sie Commerce Server.

  • Computer B wird für das Datawarehouse und andere Datenbanken verwendet.

  • Computer C wird als Webserver verwendet und enthält die ASP-Dateien (Active Server Pages) Ihrer Anwendung.

Die folgenden Anweisungen gehen davon aus, dass auf jedem der drei Computer Microsoft Windows 2000 Server installiert ist sowie auf Computer A und B Microsoft SQL Server 7.0 oder SQL Server 2000. Wenn dies noch nicht der Fall ist, lesen Sie die Anweisungen unter Installieren von Commerce Server.

Schritt 1: Installieren von Commerce Server auf Computer A

Schritt 2: Installieren von Commerce Server auf Computer B nur mit Datawarehouse

Schritt 3: Installieren von Commerce Server-Webserver auf Computer C

Schritt 4: Entpacken der Site von Computer A

Schritt 5: Hinzufügen des Commerce Server-Webservers (Computer C) zu Ihrer Anwendung

Schritt 1: Installieren von Commerce Server auf Computer A

  1. Legen Sie die Commerce Server 2000-CD in das CD-Laufwerk ein, und führen Sie das Programm Commerce Server 2000-Setup aus. Nehmen Sie den Lizenzvertrag an, geben Sie Ihre Kundeninformationen ein, und stimmen Sie der Wahl des Standardzielordners zu.

  2. Wählen Sie im Dialogfeld Setup-Typ die Option Benutzerdefiniert, und klicken Sie anschließend auf Weiter.

  3. Überprüfen Sie im Dialogfeld Benutzerdefinierte Installation im Ordner Laufzeitobjekte, dass die Option Analyse und Datawarehouse nicht ausgewählt ist (ein X im Kontrollkästchen bedeutet, dass Sie die Funktion nicht auswählen). Wählen Sie die anderen zu installierenden Features aus, wie z. B. den Vorhersagedienst. Folgende Abbildung zeigt das Dialogfeld Benutzerdefinierte Installation.
    Benutzerdefinierte Installation (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  4. Führen Sie im Dialogfeld Konfiguration der Verwaltungsdatenbank folgende Schritte aus:
    Option/Funktion | Zweck
    SQL Server-Computer | Geben Sie den Computernamen für den Datenbankserver (Computer B) ein.
    SQL Server-Anmeldename | Geben Sie den SQL Server-Anmeldenamen für diesen Computer ein. Beim Erstellen einer neuen Datenbank muss ein Anmeldename verwendet werden, der zu einer der folgenden SQL Server-Rollen gehört: sysadmin oder dbcreator. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.
    SQL Server-Anmeldekennwort | Geben Sie das SQL Server-Kennwort für diesen Computer ein. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.

  5. Klicken Sie auf Weiter.

  6. Führen Sie im Dialogfeld Dienstkonten folgende Schritte aus:
    Option/Funktion | Zweck
    Benutzername | Geben Sie den Windows-Benutzernamen für das Konto ein, über das die Commerce Server-Dienste auf diesem Computer ausgeführt werden.
    Kennwort | Geben Sie das Kennwort für das Windows-Konto ein.
    Domäne | Geben Sie die Domäne für das Windows-Konto ein.

  7. Klicken Sie auf Weiter.

  8. Klicken Sie im Dialogfeld Zur Installation bereit auf Installieren.

    Commerce Server-Setup installiert die Features, die Sie auf Computer A angegeben haben, einschließlich der Verwaltungstools. Sie können diesen Computer zum Verwalten Ihrer Commerce Server-Installation verwenden.

  9. Klicken Sie auf Fertig stellen, um das Setupprogramm zu verlassen.

Schritt 2: Installieren von Commerce Server auf Computer B nur mit Datawarehouse

  1. Legen Sie die Commerce Server 2000-CD in das CD-Laufwerk ein, und führen Sie das Programm Commerce Server 2000-Setup aus. Nehmen Sie den Lizenzvertrag an, geben Sie Ihre Kundeninformationen ein, und stimmen Sie der Wahl des Standardzielordners zu.

  2. Wählen Sie im Dialogfeld Setup-Typ die Option Benutzerdefiniert, und klicken Sie anschließend auf Weiter.

  3. Wählen Sie im Dialogfeld Benutzerdefinierte Installation im Verzeichnis Laufzeitobjekte die Option Analyse und Datawarehouse, und deaktivieren Sie bis auf Direct Mailer (falls Sie diese Option verwenden wollen) alle anderen Optionen. Klicken Sie auf Weiter. Folgende Abbildung zeigt das Dialogfeld Benutzerdefinierte Installation.
    Benutzerdefinierte Installation (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  4. Führen Sie im Dialogfeld Konfiguration der Verwaltungsdatenbank folgende Schritte aus:
    Option/Funktion | Zweck
    SQL Server-Computer | Geben Sie den Computernamen für den Datenbankserver (Computer B) ein.
    SQL Server-Anmeldename | Geben Sie den SQL Server-Anmeldenamen für diesen Computer ein. Beim Erstellen einer neuen Datenbank muss ein Anmeldename verwendet werden, der zu einer der folgenden SQL Server-Rollen gehört: sysadmin oder dbcreator. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.
    SQL Server-Anmeldekennwort | Geben Sie das SQL Server-Kennwort für diesen Computer ein. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.

  5. Führen Sie zur Installation von Direct Mailer im Dialogfeld Konfiguration der Direct Mailer-Datenbank folgende Schritte aus:
    Option/Funktion | Zweck
    SQL Server-Computer | Übernehmen Sie die Standardwerte (Computer B).
    SQL Server-Anmeldename | Geben Sie den SQL Server-Anmeldenamen für diesen Computer ein. Beim Erstellen einer neuen Datenbank muss ein Anmeldename verwendet werden, der zu einer der folgenden SQL Server-Rollen gehört: sysadmin oder dbcreator. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.
    SQL Server-Anmeldekennwort | Geben Sie das SQL Server-Kennwort für diesen Computer ein. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.

  6. Geben Sie im Dialogfeld Dienstkonten den Windows-Benutzernamen und das Kennwort des Kontos ein, über das die Commerce Server-Dienste auf diesem Computer ausgeführt werden, und klicken Sie auf Weiter.

  7. Klicken Sie im Dialogfeld Zur Installation bereit auf Installieren.

    Commerce Server-Setup installiert die Analyse- und Datawarehouse-Features auf dem Computer B.

  8. Klicken Sie auf Fertig stellen, um das Setupprogramm zu verlassen.

Schritt 3: Installieren von Commerce Server-Webserver auf Computer C

  1. Legen Sie die Commerce Server 2000-CD in das CD-Laufwerk ein, und führen Sie das Programm Commerce Server 2000-Setup mit der Installationsoption Webserver aus. Nehmen Sie den Lizenzvertrag an, geben Sie Ihre Kundeninformationen ein und stimmen Sie der Wahl des Standardzielordners zu.

  2. Klicken Sie auf Weiter.

  3. Führen Sie im Dialogfeld Konfiguration der Verwaltungsdatenbank folgende Schritte aus:
    Option/Funktion | Zweck
    SQL Server-Computer | Geben Sie den Computernamen für den Datenbankserver (Computer B) ein.
    SQL Server-Anmeldename | Geben Sie den SQL Server-Anmeldenamen für diesen Computer ein. Beim Erstellen einer neuen Datenbank muss ein Anmeldename verwendet werden, der zu einer der folgenden SQL Server-Rollen gehört: sysadmin oder dbcreator. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.
    SQL Server-Anmeldekennwort | Geben Sie das SQL Server-Kennwort für diesen Computer ein. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.

  4. Klicken Sie auf Weiter.

  5. Geben Sie im Dialogfeld Dienstkonten den Windows-Benutzernamen und das Kennwort des Benutzers ein, dem Zugriff auf die Commerce Server-Dienste dieses Computers gewährt wird. Klicken Sie anschließend auf Weiter.

  6. Klicken Sie im Dialogfeld Zur Installation bereit auf Installieren.

    Das Commerce Server-Setup installiert die Laufzeitobjekte und Commerce Server Site-Pakete auf Computer C.

  7. Klicken Sie auf Fertig stellen, um das Setupprogramm zu verlassen.

Schritt 4: Entpacken der Site von Computer A

  1. Klicken Sie auf Computer A auf Start, zeigen Sie erst auf Programme, dann auf Microsoft Commerce Server 2000, und klicken Sie anschließend auf Commerce Server-Manager.

  2. Erweitern Sie erst Commerce Server-Manager, und klicken Sie anschließend auf Commerce-Sites.

  3. Klicken Sie mit der rechten Maustaste auf Commerce-Sites, zeigen Sie auf Neu, und klicken Sie dann auf Site entpacken.

  4. Navigieren Sie im Dialogfeld Site entpacken von zu dem Ordner, der die zu entpackende Datei enthält. Wählen Sie die Datei, und klicken Sie auf Öffnen.

    Commerce Server Site Packager wird gestartet.

  5. Wählen Sie im Dialogfeld Entpacken die Option Benutzerdefiniertes Entpacken aus, und klicken Sie anschließend auf Weiter. Folgende Abbildung zeigt das Dialogfeld Entpacken.

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  6. Wählen Sie im Dialogfeld Entpacken die Option Neue Site erstellen, und klicken Sie anschließend auf Weiter. Folgende Abbildung zeigt das Dialogfeld Entpacken.

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  7. Im Dialogfeld Sitename wird der Standardname der Site angezeigt. Ändern Sie den Namen nach Bedarf, und klicken Sie dann auf Weiter.

    Anmerkungen

    • Verzichten Sie im Sitenamen auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden. Datenbanknamen wird standardmäßig der Sitename vorangestellt. Sonderzeichen werden in SQL Server nicht erkannt.

    • Achten Sie darauf, dass der Sitename nicht mehr als 256 Single-Byte-Zeichen oder 128 Double-Byte-Zeichen umfasst.

    • Nennen Sie die Site nicht "Commerce". Dies ist ein für die OLAP-Datenbank reservierter Name. Wenn Sie Ihre Site "Commerce" nennen, kann dies beim nächsten Entpacken einer Site dazu führen, dass Ihre OLAP-Datenbank überschrieben wird.
  8. Wählen Sie im Dialogfeld Ressourcen auswählen alle Ressourcen aus. Wenn Sie Commerce Server Direct Mailer nicht installieren wollen, wählen Sie Direct Mailer, und klicken Sie auf Entfernen. Wenn Sie die Vorhersageressource nicht installieren wollen, wählen Sie Vorhersagedienst, und klicken Sie auf Entfernen. Folgende Abbildung zeigt das Dialogfeld Ressourcen auswählen.
    Alle Ressourcen auswählen (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

    Anmerkung

    • Die Ressourcen CS-Authentifizierung und Profile müssen gemeinsam installiert werden. Sie sind nur funktionsfähig, wenn beide installiert sind.
  9. Klicken Sie im Dialogfeld Globale Ressourcenzeiger auf Weiter.

    Dieser Bildschirm wird zur Zuordnung vorhandener globaler Ressourcen bzw. zum Erstellen neuer Ressourcen verwendet. Dieses Dialogfeld wird auch verwendet, wenn Sie globale Ressourcen bereits auf Ihrem Computer entpackt haben und nun globale Ressourcenzeiger in eine Site entpacken möchten, die die globalen Ressourcen verwenden werden.

    Im Dialogfeld Datenbank-Verbindungszeichenfolgen sind die Datenbanken aufgeführt, die Site Packager verwendet, sowie die Server, auf denen sich die Datenbanken befinden.

    Da Sie das Datawarehouse auf einen anderen Computer legen, müssen Sie die entsprechende Datenbank erstellen. Um eine Datenbank für das Datawarehouse auf Computer B mit dem Namen Blank_dw zu erstellen, klicken Sie auf Neue Datenbank.

  10. Führen Sie im Dialogfeld Neue Datenbank folgende Schritte aus:
    Option/Funktion | Zweck
    SQL Server-Computer | Geben Sie den SQL Server-Computernamen (Computer B) ein.
    Datenbankname | Geben Sie Blank_dw bzw. den Namen für das Datawarehouse ein.
    SQL-Benutzername | Beim Erstellen einer neuen Datenbank muss ein Anmeldename verwendet werden, der zu einer der folgenden SQL Server-Rollen gehört: sysadmin oder dbcreator. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.
    SQL-Kennwort | Geben Sie das Kennwort für die SQL Server-Anmeldung ein. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.

    Folgende Abbildung zeigt das Dialogfeld Neue Datenbank.

    Neue Datenbank (Dialogfeld), Beispiel B1

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  11. Klicken Sie auf Datenbank erstellen. Die Datenbank Blank_dw wird auf Computer B erstellt.

  12. Klicken Sie auf Neue Datenbank, wenn Sie zum Dialogfeld Datenbank-Verbindungszeichenfolgen zurückgekehrt sind.

    Legen Sie auch die anderen Commerce Server-Datenbanken auf Computer B.

  13. Um mithilfe einer separaten Datenbank mit dem Namen Blank_dw diese Datenbanken zu gruppieren, wiederholen Sie Schritt 11 und geben Sie Blank_dw in das Feld Datenbankname ein. Folgende Abbildung zeigt das Dialogfeld Neue Datenbank mit der Datenbank Blank_dw.
    Neue Datenbank (Dialogfeld), Beispiel B2

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  14. Klicken Sie auf Datenbank erstellen. Die Datenbank Blank_dw wird auf Computer B erstellt.

  15. Wenn Sie zum Dialogfeld Datenbank-Verbindungszeichenfolgen zurückkehren, wählen Sie Datawarehouse, und klicken Sie anschließend auf Ändern.

  16. Geben Sie im Dialogfeld Datenverknüpfungseigenschaften den Namen von Computer B in das Feld Geben Sie einen Servernamen ein, oder wählen Sie einen aus ein. Wählen Sie im Feld Geben Sie einen Servernamen ein, oder wählen Sie einen aus den Namen (Blank_dw) aus, den Sie dem Datawarehouse auf Computer B gegeben haben, und klicken Sie auf OK.

    Anmerkung

    • Stellen Sie sicher, dass das Kontrollkästchen Speichern des Kennworts zulassen aktiviert ist. Wenn dies nicht der Fall ist, wird die Datenbank von Site Packager nicht erstellt.

    Folgende Abbildung zeigt das Dialogfeld Datenverknüpfungseigenschaften.

    Datenverknüpfungseigenschaften (Dialogfeld), blank_dw

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  17. Wenn Sie zum Dialogfeld Datenbank-Verbindungszeichenfolgen zurückkehren, wählen Sie alle anderen Datenbanken (bis auf Datawarehouse), und klicken Sie anschließend auf Ändern.

  18. Geben Sie im Dialogfeld Datenverknüpfungseigenschaften den Namen von Computer B in das Feld Geben Sie einen Servernamen ein, oder wählen Sie einen aus ein. Wählen Sie im Feld Geben Sie einen Servernamen ein, oder wählen Sie einen aus den Namen (blank_dw) aus, den Sie der Datenbank gegeben haben, und klicken Sie auf OK.

    Anmerkung

    • Stellen Sie sicher, dass das Kontrollkästchen Speichern des Kennworts zulassen aktiviert ist. Wenn dies nicht der Fall ist, wird die Datenbank von Site Packager nicht erstellt.

    Folgende Abbildung zeigt das Dialogfeld Datenbank-Verbindungszeichenfolgen nach der Modifikation.

    Datenbank-Verbindungszeichenfolgen (Dialogfeld), Beispiel B

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  19. Klicken Sie auf Weiter.

  20. Überprüfen Sie im Dialogfeld Anwendungen auswählen, ob die zu entpackenden Anwendungen ausgewählt sind, und klicken Sie anschließend auf Weiter. Folgende Abbildung zeigt das Dialogfeld Anwendungen auswählen.
    Anwendungen auswählen (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  21. Überprüfen Sie im Dialogfeld Anwendungen auswählen, ob die Internet-Informationsdienste (IIS) 5.0-Websites und die IIS-Pfade für jede Anwendung korrekt sind. Um die IIS-Website für eine Anwendung zu ändern, wählen Sie die Anwendung in der Liste und die IIS-Website in der Dropdownliste aus.

    Um den Namen eines virtuellen Verzeichnisses einer Anwendung zu ändern, wählen Sie eine Anwendung in der Liste. Geben Sie den gewünschten Namen in das Feld Virtuelles IIS-Verzeichnis ein.

    Anmerkung

    • Verzichten Sie in den Namen der virtuellen IIS-Verzeichnisse auf Sonderzeichen (wie #, @, % und '), um IIS-Fehler zu vermeiden.

    • Site Packager unterstützt nicht das Entpacken von Sites auf Remotecomputern.

    • Site Packager entpackt jede Anwendung im Basisverzeichnis der jeweiligen IIS-Website. Im Basisverzeichnis erstellt Site Packager ein Unterverzeichnis mit dem Namen des virtuellen IIS-Verzeichnisnamens der Anwendung.

    Folgende Abbildung zeigt das Dialogfeld Anwendungen auswählen.

    IIS-Websites und virtuelle Verzeichnisse auswählen (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  22. Führen Sie im Dialogfeld Datawarehouse folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie einen Namen für die globale Datawarehouse-Ressource ein.
    Server | Geben Sie einen Namen für den SQL Analysis (OLAP)-Computer ein.
    Datenbank | Geben Sie einen Namen für die SQL Analysis (OLAP)-Datenbank ein.
  23. Klicken Sie auf Weiter.

  24. Führen Sie im ersten Dialogfeld Profilsystem folgende Schritte aus:
    Option/Funktion | Zweck
    Profilschemadefinition | Bestimmen Sie die Profilschemadefinition, die importiert werden soll.
    Sitebegriffsdefinition | Bestimmen Sie die Sitebegriffsdefinition, die importiert werden soll.
    Ausdrucksdefinition | Bestimmen Sie die Ausdrucksdefinition, die importiert werden soll.

  25. Klicken Sie auf Weiter.

  26. Führen Sie im zweiten Dialogfeld Profilsystem folgende Schritte aus:
    Option/Funktion | Zweck
    Verbindungszeichenfolge für das Profilsystem | Geben Sie die Dateien an, die in den OLEDB-Datenspeicher importiert werden sollen. Klicken Sie auf Ändern, um eine andere Datenbank anzugeben.
    Schemadefinitionsskripts (*.sql, *.vbs) | Geben Sie die Schemadefinitionsskripts an, die importiert werden sollen.
    Datenauffüllungsskripts (*.sql) | Geben Sie die Datenauffüllungsskripts an, die in Ihre Site importiert werden sollen.

  27. Klicken Sie auf Weiter.

  28. Sehen Sie sich im Dialogfeld Das Entpacken ist abgeschlossen die Liste der erstellten SQL-Datenbanken und der IIS-Anwendungen an. Klicken Sie auf Protokolldatei anzeigen, um die Liste der Ereignisse in der Site Packager-Protokolldatei anzusehen.

  29. Klicken Sie auf Fertig stellen, um Site Packager zu schließen.

Schritt 5: Hinzufügen des Commerce Server-Webservers (Computer C) zu Ihrer Anwendung

  1. Erweitern Sie erst Commerce Server-Manager und Commerce Sites auf Computer C, welcher zu der Anwendung hinzugefügt werden soll. Erweitern Sie dann die Site, die Sie verwalten möchten.

  2. Erweitern Sie Anwendungen, und klicken Sie auf den Namen der Anwendung, der Sie einen Webserver hinzufügen möchten. Klicken Sie mit der rechten Maustaste auf diesen Namen, zeigen Sie auf Neu, und klicken Sie dann auf Webserver hinzufügen.

    Das Dialogfeld Öffnen wird angezeigt. Es enthält eine Liste der vorhandenen Paketdateien.

  3. Wählen Sie im Dialogfeld Öffnen die Paketdatei, welche die Webserverdateien enthält, die Sie dem Webserver hinzufügen möchten. Klicken Sie anschließend auf Öffnen.

    Commerce Server Site Packager wird gestartet.

  4. Im Dialogfeld Anwendungen auswählen wird die IIS-Website angezeigt, auf der die Anwendung sowie das virtuelle IIS-Verzeichnis für jede E-Commerce-Anwendung installiert wird. Diese Informationen sind schreibgeschützt. IIS-Website und virtuelles IIS-Verzeichnis müssen für alle Webserver der Anwendung identisch sein. Klicken Sie auf Weiter.

    Site Packager fügt Ihre Dateien zum Webserver hinzu und fügt anschließend das Commerce-Webserver-Objekt der gewählten Anwendung hinzu. Beim Öffnen von Commerce Server-Manager wird das Commerce-Webserver-Objekt unter der Anwendung angezeigt.

    Anmerkung

    • Site Packager unterstützt nicht das Entpacken von Webservern auf Remotecomputern.
  5. Sehen Sie sich im Dialogfeld Das Entpacken ist abgeschlossen die Protokolldatei an, und klicken Sie dann auf Fertig stellen.

Nachdem Sie einen Webserver einer Anwendung hinzugefügt haben, wird das Commerce-Webserver-Objekt unter dem Anwendungsknoten im Commerce Server-Manager angezeigt. Das Commerce-Webserver-Objekt enthält Eigenschaften, die von Datawarehouse zum Importieren von Protokolldateien benötigt werden: Servername, IP-Adresse (Internet Protocol), Protokolldateipfad und Protokolldateiperiode. Diese Eigenschaften werden von IIS automatisch ausgefüllt, wenn Sie ein Commerce-Webserver-Objekt zu einer Anwendung hinzufügen. Anweisungen zum Konfigurieren von Webservereigenschaften finden Sie unter Konfigurieren eines Webservers.

Anmerkungen

  • Unmittelbar nach dem Installieren der Site sowie jedes Mal, wenn Sie grundlegende Änderungen an der Konfiguration Ihrer Commerce Server-Bereitstellung vornehmen, sollten Sie Ihre Verwaltungsdatenbank unter einem anderen Namen sichern. Sie können diese Sicherungskopie verwenden, um jegliche, später vorgenommene Änderungen rückgängig zu machen.

  • Führen Sie nie mehr als eine Instanz von Site Packager gleichzeitig auf einem Computer aus.

Siehe auch

Konfigurieren eines Webservers


Sichern der Site

Nach dem Entpacken der Site müssen Sie die Site sichern, um nicht autorisierten Zugriffen auf Ihre Commerce Server- und Anwendungsdateien vorzubeugen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Beschränken des Zugriffs auf Ihre Site . Beschreibt, wie mithilfe von NTFS-Berechtigungen der Zugriff auf Sitedateien beschränkt wird.

  • Beschränken des Zugriffs auf Commerce Server-Dienste . Beschreibt, wie bestimmten Windows-Konten Zugriff auf Commerce Server-Dienste gewährt wird.

  • Beschränken des Zugriffs auf Business Desk-Module . Beschreibt, wie bestimmte Benutzer vom Zugriff auf ausgewählte Commerce Server Business Desk-Module ausgeschlossen werden.

  • Beschränken des Zugriffs auf die Verwaltungsdatenbank . Beschreibt, wie der Zugriff auf die Verwaltungsdatenbanken mithilfe des Windows-Registrierungseditors beschränkt wird.

  • Gewähren des Zugriffs auf Commerce Server-Ressourcen . Beschreibt, wie der Zugriff auf die SQL Server-Datenbank gewährt wird, die Commerce Server-Ressourcen entspricht.

  • Sichern von Protokolldateien . Beschreibt, wie Sie Protokolldateien von Ihren Webservern zu einem sichereren Ort verschieben.

  • Aktivieren nur der sichersten Version der integrierten Windows-Authentifizierung . Beschreibt, wie sie Ihren Webserver konfigurieren, um die stärkste Version der integrierten Windows-Authentifizierung zu verwenden.

  • Verwenden des administrativen SQL-Kontos "sa" . Erläutert, warum die von SQL Server standardmäßig erstellte "sa"-Anmeldung nicht zu verwenden ist.

  • Unterscheidung der Zugänge zu Ressourcen . Beschreibt Zugriffsberechtigungen für verschiedene Commerce Site-Benutzer.

  • Ändern des Datawarehouse-Kennworts . Erklärt, wie das Datawarehouse-Kennwort geändert wird.

Siehe auch

Sicherheitsplanung

Commerce Server-Sicherheit: Checkliste


Beschränken des Zugriffs auf Ihre Site

Commerce Server Site Packager beeinflusst nicht die Windows-Zugriffssteuerungslisten (ACLs). Nach dem Entpacken einer Site sollten Sie einige Dateien und Verzeichnisse auf Ihrer Commerce Server-Site sperren, indem Sie die Zugriffsrechte ändern. Sie können den Zugriff auf Dateien auch durch die Einrichtung von Webserverberechtigungen beschränken. Weitere Informationen finden Sie unter So werden Webserverberechtigungen eingestellt.

Dieses Thema beschreibt, wie mithilfe von NTFS-Berechtigungen der Zugriff auf Sitedateien beschränkt wird. Wenn Sie den Zugriff auf Dateien und Verzeichnisse der Site beschränken, sollten Sie Folgendes beachten:

  • Ein Business Desk-Benutzer benötigt Zugriff auf die Protokolldatei im Profile-Verzeichnis, um Änderungen einer Profildefinition speichern zu können. Ein Businessmanager benötigt ebenfalls Zugriff auf die Protokolldatei im Profile-Verzeichnis, um Änderungen im Profil-Designer-Modul speichern zu können. Bei den Commerce Server-Lösungssites ist der Lesezugriff der IIS-Webserverberechtigungen standardmäßig deaktiviert. Sie können jedoch die Sicherheit weiter erhöhen, indem Sie auch den Lesezugriff der NTFS-Berechtigungen für dieses Verzeichnis deaktivieren.

  • Beachten Sie beim Debuggen einer Pipeline mithilfe der Pipelineprotokollierung, dass in den Protokolldateien vertrauliche Information in Klartext angezeigt werden. Stellen Sie sicher, dass der Ordner Pipelines\Logfiles, der diese Pipelineprotokolldateien enthält, gegen Lesezugriff geschützt ist.

  • Verwenden Sie Zugriffsbeschränkungen für IP-Adressen, um die Berechtigungen für die Dateien Bdrefresh.asp und RefreshApp.asp zu beschränken, sodass nicht autorisierte Benutzer diese Skripts nicht ausführen können. Standardmäßig sind die Dateien Bdrefresh.asp und Refreshapp.asp auf anonymen Zugriff eingestellt. Dies ist erforderlich, wenn Business Desk-Benutzer Änderungen in der Website veröffentlichen wollen. Um diese Dateien zu sichern, gewähren Sie nur ausgewählten Business Desk-Benutzern Zugriff. Verwenden Sie dazu Zugriffsbeschränkungen für IP-Adressen in Internet-Informationsdienste (IIS) 5.0. Anweisungen finden Sie unter So richten Sie Zugriffsbeschränkungen für IP-Adressen ein.

    Das Skript Bdrefresh.asp löscht den Business Desk-Cache. Das Skript RefreshApp.asp löscht den Profilcache. Das wiederholte Löschen eines dieser beiden Caches könnte für Benutzer zu einem Denial-of-service führen. Diese Dateien befinden sich im Stammverzeichnis einer entpackten Lösungssite.

    In den Commerce Server-Lösungssites stehen weitere ähnliche Dateien zur Verfügung. Informationen zum Schützen anderer Dateien finden Sie in der Lösungssites-Website.

  • Falls Sie beim Entpacken einer Business Desk-fremden Anwendung eine unpack.vbs-Skriptdatei erstellen und verwenden, stellen Sie sicher, dass Sie die Datei unmittelbar nach dem Entpacken löschen bzw. sichern. Die Datei befindet sich im Stammverzeichnis, und anonyme Benutzer können auf Sie zugreifen. Eine nicht autorisierte Verwendung dieses Skripts könnte zu einem Denial of Service oder zu einem Verlust von Einstellungen führen. Die Datei muss jedoch vorhanden sein, wenn Sie die Site entpacken.

    Die Datei unpack.vbs ist in den Commerce Server-Lösungssites standardmäßig gesichert.

  • Sie können Datei- und Verzeichnisberechtigungen nur auf Laufwerken einstellen, die für die Verwendung mit NTFS formatiert wurden.

  • Um Berechtigungen zu ändern, müssen Sie der Systemadministrator sein oder die Erlaubnis des Systemadministrators erhalten haben.

  • Gruppen oder Benutzer mit Vollzugriff für einen Ordner können dessen Unterordner und Dateien löschen, unabhängig von den Berechtigungen, die diese Dateien und Unterordner schützen.

  • Wenn die Kontrollkästchen unter Berechtigungen schattiert sind, oder wenn die Schaltfläche Entfernen nicht zur Verfügung steht, sind die Berechtigungen der Datei bzw. des Ordners vom übergeordneten Ordner abhängig.

So können Sie Datei- bzw. Ordnerberechtigungen setzen, ändern, anzeigen und entfernen

  1. Klicken Sie auf Start, zeigen Sie auf Programme und dann auf Zubehör, und klicken Sie anschließend auf Windows-Explorer.

  2. Navigieren Sie im Windows-Explorer zur gewünschten Datei bzw. zum gewünschten Ordner, klicken Sie mit der rechten Maustaste auf die Datei bzw. den Ordner, klicken Sie auf Eigenschaften und anschließend auf die Registerkarte Sicherheit.

  3. Führen Sie auf der Registerkarte Sicherheit einen der folgenden Schritte aus:
    • Um die Berechtigungen einer bestehenden Gruppe oder eines bestehenden Benutzers zu ändern, wählen Sie im Feld Name den Namen der Gruppe oder des Benutzers. Wählen Sie im Feld Berechtigungen für jede zu ändernde Berechtigung Zulassen bzw. Verweigern.

    • Um Gruppen oder Benutzer aus der Berechtigungsliste zu entfernen, wählen Sie sie im Namensfeld aus, und klicken Sie auf Entfernen.

    • Um Berechtigungen für eine neue Gruppe oder einen neuen Benutzer einzurichten, klicken Sie auf Hinzufügen. Geben Sie im Dialogfeld Benutzer, Computer oder Gruppen auswählen den Namen der Gruppe oder des Benutzers ein, für die bzw. den Sie Berechtigungen einrichten wollen. Führen Sie dies im Format Domänenname\Benutzername aus, und klicken Sie auf OK.
  4. Klicken Sie auf OK, um das Dialogfeld Eigenschaften zu schließen.

So richten Sie Zugriffsbeschränkungen für IP-Adressen ein

  1. Klicken Sie auf Start, zeigen Sie auf Programme und dann auf Verwaltungstools. Klicken Sie anschließend auf Internetdienste-Manager.

  2. Navigieren Sie in Internet-Informationsdienste zur Datei Bdrefresh.asp.

  3. Klicken Sie mit der rechten Maustaste auf Bdrefresh.asp, und klicken Sie anschließend auf Eigenschaften.

  4. Klicken Sie auf der Registerkarte Dateisicherheit im Bereich Beschränkungen für IP-Adressen und Domänennamen auf Bearbeiten.

  5. Klicken Sie im Dialogfeld Beschränkungen für IP-Adressen und Domänennamen auf Hinzufügen, um die Computer hinzuzufügen, denen Sie Zugriff auf die Datei Bdresfresh.asp gewähren wollen. Klicken Sie auf Zugriff verweigert, und klicken Sie auf OK.

  6. Navigieren Sie zur Datei Refreshapp.asp, klicken Sie mit der rechten Maustaste auf die Datei Refreshapp.asp, und klicken Sie auf Eigenschaften.

  7. Wiederholen Sie die Schritte 4 und 5, um die Datei Refreshapp.asp zu sichern.


Beschränken des Zugriffs auf Commerce Server-Dienste

Legen Sie während der Installation von Commerce Server im Dialogfeld Dienstkonten den Windows-Benutzernamen und das Windows-Kennwort für folgende Commerce Server-Dienste fest: List Manager, Direct Mailer und Vorhersagedienst. Diesen Windows-Konten wird damit automatisch die Berechtigung Anmelden als Dienst gewährt. Folgende Abbildung zeigt das Dialogfeld Dienstkonten.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Geben Sie im gleichen Dialogfeld ein Konto an, über das die Ereignisprotokollierung ausgeführt wird. Dieses letzte Konto wird für das beim Installieren erstellte COM+-Paket Commerce-Ereignisprotokollierung verwendet.

Stellen Sie sicher, dass Sie für jeden Dienst das richtige Konto einrichten. Für Listen-Manager müssen Ihre Commerce Server Business Desk-Benutzer in der Lage sein, die Ordner zu lesen, aus denen sie Listen importieren und in die Ordner zu schreiben, in die sie Listen exportieren. Das Listen-Manager-Dienstkonto muss für die Ordner, in die bzw. aus denen Benutzer Listen importieren bzw. exportieren, über die entsprechenden NTFS-Berechtigungen verfügen.

Außerdem erlaubt das Setup-Programm nicht, diese Dienste mithilfe des lokalen Systemkontos einzurichten. Obwohl dies nach dem Setup auch manuell vorgenommen werden kann, ist es nicht empfehlenswert, denn es könnten dadurch den Diensten möglicherweise mehr Berechtigungen als notwendig zugewiesen werden.


Beschränken des Zugriffs auf Business Desk-Module

Sie können bestimmte Benutzer vom Zugriff auf ausgewählte Commerce Server Business Desk-Module ausschließen. Dies wird durch das Einrichten von Zugriffssteuerungseinträgen (ACEs) in Business Desk ASP-Dateien ermöglicht. Jedes Business Desk-Modul besitzt eine zentrale ASP-Datei, die vor dem Hinzufügen zum Business Desk-Navigationsbereich auf ACEs überprüft wird. Einem angemeldeten Business Desk-Benutzer, der keine Leseberechtigung für die zentrale ASP-Datei dieses Moduls besitzt, wird das Modul im Navigationsbereich nicht zur Verfügung gestellt.

So beschränken Sie den Zugriff auf Business Desk-Module

  1. Navigieren Sie im Windows-Explorer zu dem Ordner, der die Business Desk-Anwendungsdateien enthält.

    Dieser Ordner enthält Ihre IIS-Website. Standardmäßig befindet sich dieser Ordner unter Inetpub\wwwroot.

  2. Klicken Sie auf den Ordner, der das Modul enthält, für das Sie den Zugriff beschränken möchten.

  3. Verwenden Sie die Informationen der folgenden Tabelle, und klicken Sie mit der rechten Maustaste auf den Namen der Datei, die dem Modul entspricht, für das Sie den Zugriff beschränken möchten. Klicken Sie anschließend auf Eigenschaften.

  4. Klicken Sie auf die Registerkarte Sicherheit.

  5. Auf der Registerkarte Sicherheit können Sie die ACEs verwalten, die in der Zugriffssteuerungsliste (ACL) dieser Datei enthalten sind.

    Folgende Tabelle führt die Dateien auf, über die Sie ACEs für jedes Business Desk-Modul einrichten können.

    Kategorie/Modul | ACE in zugehöriger ASP-Datei
    Analyse/Berichte | Analysis\Analysis_reports.asp
    Analyse/Abgeschlossene Berichte | Analysis\Analysis_report_viewer.asp
    Analyse/Segment-Viewer | Segviewer\Modellist.asp
    Kampagnen/Kampagnen-Manager | Marketing\Cmanager.asp
    Kampagnen/Listen-Manager | Marketing\Listmanager.asp
    Kampagnen/Kampagnenausdrücke | Marketing\Targetexpr.asp
    Kampagnen/Zielgruppe | Marketing\Target_group.asp
    Kampagnen/Referenztabellen | Marketing\Reftable.asp
    Kampagnen/Kampagnen veröffentlichen | Productionrefresh\refresh.asp
    Kataloge/Katalog-Designer | Catalogs\Designer\List_categorydefinitions.asp
    Kataloge/Katalog-Editor | Catalogs\Editor\List_catalogs.asp
    Kataloge/Katalogsätze | Catalogsets\Catalogsets_list.asp
    Bestellungen/Warenkorb-Manager | Orders\Basket_list.asp
    Bestellungen/Datencodes | Application\Datacodes_list.asp
    Bestellungen/Bestellstatus | Orders\Orderstatus_list.asp
    Bestellungen/Transaktionen veröffentlichen | Productionrefresh\refresh.asp
    Bestellungen/Versandarten | Shipping\Shipping_list.asp
    Bestellungen/Steuersätze | Tax\Regionaltax.asp
    Benutzer/Benutzer | Users\Registered.asp
    Benutzer/Organisationen | Organizations\Orgs.asp
    Benutzer/Profil-Designer | Profiles\Profileselector.asp
    Benutzer/Sitebegriffs-Editor | Profiles\Profileeditor.asp
    Benutzer/Profile veröffentlichen | Profiles\Refreshprofilesvcall.asp

Anmerkungen

  • Falls ein einzelner Benutzer und die authentifizierte Benutzergruppe Zugriff auf ein Commerce Server Business Desk-Modul haben, und Sie die Berechtigung des einzelnen Benutzers entfernen, starten Sie den Clientcomputer neu, um die Module, auf die der Benutzer Zugriff hat, in dessen Navigationsleiste zu aktualisieren.

  • Wenn Sie einen ACE für das Administratorkonto einrichten, müssen Sie auch Berechtigungen für die Gruppe Jeder erteilen. Die genaue Einstellung der Berechtigungen ist dabei nicht relevant. Jedoch muss die Gruppe Jeder in der Liste der Benutzer und Gruppen enthalten sein. Falls die Gruppe Jeder keine Zugriffsberechtigung für ein Business Desk Modul besitzt, können Administratoren nicht auf dieses Modul zugreifen.

  • Wenn Sie eines der folgenden Module sichern, werden standardmäßig alle drei Module gesichert: Profile veröffentlichen, Kampagnen veröffentlichen und Transaktionen veröffentlichen.


Beschränken des Zugriffs auf die Verwaltungsdatenbank

Der Server, der die Verwaltungsdatenbank der Site enthält, sollte unbedingt gesperrt werden. Nach dem Commerce Server-Setup besitzen Benutzer dieses Computers zunächst Vollzugriff auf die Verwaltungsdatenbank. Obwohl das SQL-Kennwort der Verwaltungsdatenbankanmeldung in der Windows-Registrierung verschlüsselt ist, können Benutzer über ein Skript, das auf eines dieser Programmobjekte zugreift, Zugriff darauf erlangen: SiteConfigReadOnly, SiteConfig oder GlobalConfig. Stellen Sie nach dem Setup sicher, dass Benutzer nicht auf den Computer zugreifen bzw. Skripts auf ihm ausführen können. Deaktivieren Sie das Gastkonto sowie Zugriffe ohne Administratorrechte.

Sie können die Verwendung der Objekte SiteConfig und GlobalConfig beschränken, indem Sie die Zugriffssteuerungslisten (ACLs) in den Registrierungsschlüsseln für diese Objektklassen ändern. Um den Zugriff auf diese Objekte zu beschränken, ändern Sie die Zugriffsberechtigungen auf diese Objekte im Windows-Registrierungseditor.

So ändern Sie die Berechtigungen auf ein administratives Objekt

  1. Klicken Sie auf Start und anschließend auf Ausführen.

  2. Geben Sie im Dialogfeld Ausführen im Feld Öffnen "regedt32" ein.

  3. Klicken Sie auf HKEY_LOCAL_MACHINE.

  4. Klicken Sie im Menü Ansicht auf Schlüssel finden.

  5. Geben Sie im Dialogfeld Suchen im Feld Suchen nach den jeweiligen Schlüssel ein. Richten Sie sich dabei nach den Einträgen in der folgenden Tabelle.
    Objekt | Schlüssel
    SiteConfig | 31B031AE-8877-4973-BC58-FEE0EF8CE07B
    GlobalConfig | CB438FDD-81EC-45FF-9DBB-9F9FBBF717AF
  6. Deaktivieren Sie das Kontrollkästchen Nur ganzes Wort suchen, und klicken Sie anschließend auf Weitersuchen.

    Ein Liste mit Schlüsseln wird angezeigt. Der von Ihnen ausgewählte Schlüssel wird mit einer dünnen schwarzen Linie umrissen. Möglicherweise müssen Sie in der Liste nach unten scrollen, um den ausgewählten Schlüssel zu sehen.

  7. Klicken Sie auf den Knoten des gesuchten Schlüssels.

  8. Klicken Sie im Menü Sicherheit auf Berechtigungen.

  9. Stellen Sie im Dialogfeld Berechtigungen die jeweiligen Berechtigungen Ihren Bedürfnissen entsprechend ein. Beschränken Sie die Leseberechtigungen auf Konten, die die Verwaltungsdatenbank modifizieren müssen.

Anmerkung

  • Das SiteConfigReadOnly-Objekt muss für alle Benutzerkonten, die auf Commerce Server-Anwendungen zugreifen, zugänglich sein. Wenn Sie anonymen Zugriff zulassen möchten, muss das Objekt für das anonyme Konto mit dem Namen IUSR_Computername zugänglich sein. Der Schlüssel für das SiteConfigReadOnly-Objekt lautet D1AA04A4-B00D-4D30-88AA-E3070DAE8040.


Gewähren des Zugriffs auf Commerce Server-Ressourcen

Damit Commerce Server Business Desk-Benutzer und -Administratoren auf Ressourcen wie den Produktkatalog zugreifen können, müssen sie über ausreichende Berechtigungen verfügen, um auf die der Ressource entsprechende SQL Server-Datenbank zugreifen zu können. Ein Benutzer sollte einen SQL Server-Anmeldenamen besitzen, der mit einem SQL Server-Benutzer verknüpft ist, welcher die Datenbankrolle db_owner besitzt. Um größere Granularität zu gewährleisten, können Sie dem Benutzer ebenso die Rollen db_ddladmin, db_datareader und db_datawriter zuweisen.

So überprüfen Sie die SQL Server-Rollen für den Anmeldenamen einer Ressource

  1. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft SQL Server, und klicken Sie anschließend auf Enterprise Manager.

  2. Erweitern Sie in SQL Server Enterprise Manager erst Microsoft SQL Server, dann die SQL Server Gruppe sowie den Namen des Datenbankservers, der die gewünschte Ressourcendatenbank enthält.

  3. Erweitern Sie erst Datenbanken und dann die Datenbank, die der gewünschten Ressource entspricht, und klicken Sie dann auf Benutzer.

  4. Doppelklicken Sie im rechten Bereich auf den Anmeldenamen.

  5. Stellen Sie sicher, dass im Dialogfeld Datenverknüpfungseigenschaften das Kontrollkästchen db_owner aktiviert ist, und klicken Sie auf OK.

    Ebenso können Sie sicherstellen, dass die Kontrollkästchen db_ddladmin, db_datareader und db_datawriter aktiviert sind. Klicken Sie anschließend auf OK.

Anmerkung

  • Sie können diese Einstellungen auch ändern, indem Sie die Anmeldeeigenschaften in SQL Server Enterprise Manager modifizieren. Erweitern Sie erst den Knoten des gewünschten Datenbankservers, dann Sicherheit, und klicken Sie dann auf Benutzernamen, um eine Liste von Benutzernamen anzuzeigen. Doppelklicken Sie auf einen Namen, um dessen Datenbankrolle zu modifizieren.

Falls der von Ihnen angegeben Anmeldename nicht in der Liste der Datenbankbenutzer angezeigt wird, können Sie einen neuen SQL Server-Benutzer hinzufügen.

So fügen Sie einen neuen SQL Server-Benutzer für eine Ressourcendatenbank hinzu

  1. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft SQL Server, und klicken Sie anschließend auf Enterprise Manager.

  2. Erweitern Sie in SQL Server Enterprise Manager erst Microsoft SQL Server, dann die SQL Server-Gruppe sowie den Namen des Datenbankservers, der die gewünschte Ressourcendatenbank enthält.

  3. Erweitern Sie erst Datenbanken, anschließend die Datenbank, die der gewünschten Ressource entspricht, klicken Sie dann mit der rechten Maustaste auf Benutzer und schließlich auf Neuer Datenbankbenutzer.

  4. Führen Sie im Dialogfeld Datenbankbenutzer – Eigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Anmeldename | Geben Sie den Anmeldenamen für den Datenbankzugriff ein bzw. wählen Sie diesen aus.
    Benutzername | Geben Sie den SQL Server-Benutzernamen ein, der diesem Anmeldenamen zugewiesen werden soll. Der Benutzername weist dem neuen Benutzer Zugriffsberechtigungen auf Objekte in der Datenbank zu.
    Mitglied in Datenbankrollen | Wählen Sie die Rollen aus, die der neue Benutzer besitzen soll. Aktivieren Sie das Kontrollkästchen db_owner, um dem neuen Benutzer Zugriff auf diese Ressource zu gewähren. Oder aktivieren Sie die Kontrollkästchen db_ddladmin, db_datareader und db_datawriter.

  5. Klicken Sie auf OK.


Sichern von Protokolldateien

Es empfiehlt sich, die Protokolldateien vom Webserver zu einem sichereren Ort zu verschieben. Achten Sie beim Verschieben darauf, das dieser Vorgang sicher ist. Eine Möglichkeit, Sicherheit zu erreichen, besteht in der Verwendung einer separaten Netzwerkleitung, die direkt von Ihrer Testumgebung zu Ihrer Produktionsumgebung verläuft. Diese separate Leitung eignet sich sehr gut dazu, Inhalte zu aktualisieren und Protokolldateien auf sichere Server zu verschieben. Eine andere Möglichkeit, Protokolldateien sicher zu verschieben, besteht in der Verwendung von SSL (Secure Sockets Layer) über HTTP oder FTP (File Transfer Protocol).

Beachten Sie beim Debuggen einer Pipeline mithilfe der Pipelineprotokollierung, dass in den Protokolldateien vertrauliche Information in Klartext angezeigt werden können. Stellen Sie sicher, dass der Ordner, der diese Pipelineprotokolldateien enthält (standardmäßig ist dies der Ordner \Pipeline\Logfiles der Anwendung), gesichert ist.


Aktivieren nur der sichersten Version der integrierten Windows-Authentifizierung

Wenn Sie integrierte Windows-Authentifizierung verwenden, und die Clientcomputer, die sich mit Ihrem Webserver verbinden, Microsoft Windows 2000 oder Microsoft Windows NT 4.0 Service Pack 3 oder höher verwenden, können Sie Ihren Webserver für die stärkste Version der integrierten Windows-Authentifizierung (NTLMv2) konfigurieren.

Sie können eine Windows-Richtlinie einrichten, um festzulegen, dass jeweils nur die neueste Version von NTLM verwendet wird. Bestimmen Sie in der Lokalen Sicherheitsrichtlinie Ihrer Webserver die sicherste Einstellung, indem Sie die Richtlinie LAN Manager-Authentifizierungsebene auf Nur NTLMv2-Antworten senden\LM & NTLM verweigern einstellen.


Verwenden des administrativen SQL-Kontos "sa"

Es wird empfohlen, die von SQL Server standardmäßig erstellte "sa"-Anmeldung nicht zu verwenden. Sie sollten einen anderen administrativen Anmeldenamen für Ihre Datenbankserver verwenden. Wenn Sie dennoch die "sa"-Anmeldung verwenden, achten Sie darauf, kein leeres Kennwort zu verwenden. Andernfalls erhöht sich das Sicherheitsrisiko für Ihre Site.


Unterscheidung der Zugänge zu Ressourcen

Commerce Server-Ressourcen besitzen für jede Datenbank einzelne Verbindungszeichenfolgen. Aus diesem Grund können Sie nicht verschiedene Zugriffsberechtigungen für verschiedene Commerce Site-Benutzer verwenden.


Ändern des Datawarehouse-Kennworts

Wenn Sie das Kennwort für Ihre SQL Server-Computer ändern, müssen Sie auch das Kennwort im Commerce Server-Datawarehouse sowie die Verbindungszeichenfolgen für alle Ressourcen ändern.

So ändern Sie das Datawarehouse-Kennwort

  1. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft Commerce Server 2000, und klicken Sie anschließend auf Commerce Server-Manager.

  2. Erweitern Sie in der Commerce Server-Manager-Konsole Globale Ressourcen, klicken mit der rechten Maustaste auf das Datawarehouse, für das Sie das Kennwort ändern wollen, und klicken anschließend auf Eigenschaften.

  3. Klicken Sie im Dialogfeld Eigenschaften von Datawarehouse auf die Registerkarte Verbindung.

  4. Geben Sie auf der Registerkarte Verbindung im Feld Kennwort das neue Kennwort ein, und klicken Sie anschließend auf OK.

Siehe auch

Konfigurieren einer globalen Ressource


Sicherung der Site

Nach der Bereitstellung und Konfiguration der Site sollten Sie alle Dateien der Site sichern, damit Sie die Site nach einem Serverausfall wiederherstellen können. Zur Sicherung einer kleinen Site ist es am einfachsten, die Site mithilfe von Commerce Server Site Packager zu packen. Das dabei entstehende Paket sichert viele der Konfigurationseinstellungen Ihrer aktuellen Site. Site Packager packt keine computerspezifischen Eigenschaften. Webservereigenschaften und einige über Commerce Server Manager eingestellte Eigenschaften werden z. B. nicht gepackt. Eine Übersicht, welche Daten einer Ressource jeweils gepackt werden, finden Sie unter Site Packager-Verweisinformationen.

Sie sollten Sie Ihre Site jedes Mal neu packen, wenn sich die Konfiguration ändert. Informationen zum Packen einer Site finden Sie unter Packen einer Site.

Bei einer großen Site ist die Erstellung einer Paketdatei nicht zu empfehlen. In diesem Fall sollten Sie jede Komponente (z. B. Anwendungen und Datenbanken) einzeln mit einer für die jeweilige Komponente angemessenen Methode sichern. Folgende Tabelle liefert eine Übersicht über geeignete Sicherungstools für die einzelnen Commerce Server-Komponenten.

Zu sichernde Komponente | Zu verwendendes Sicherungstool
Anwendungsdateien und Windows-Registrierung | Windows Backup oder Microsoft Application Center 2000
Datenbanken | SQL Server Backup
Domäneninformationen | Active Directory-Replikation zwischen mehreren Domänencontrollern

Siehe auch

Sichern und Wiederherstellen von Commerce Server

Sichern und Wiederherstellen von SQL-Datenbanken


Aktualisieren der Site

Die Bereitstellung ist ein fortlaufender Prozess. Nach der Inbetriebnahme der Site möchten Sie sicher Inhalte und Konfiguration der Site aktualisieren, um sich ändernden Anforderungen gerecht zu werden. In diesem Abschnitt finden Sie grundlegende Informationen zur Aktualisierung der Site. Weitere Informationen finden Sie im Commerce Server 2000 Resource Kit.

Dieser Abschnitt beinhaltet folgende Themen:

  • Verwenden der Testumgebung für Aktualisierungen. Beschreibt, wie Sie Ihre Testumgebung einsetzen können, bevor Sie Ihre Produktionsserver aktualisieren.

  • Hinzufügen von Webservern. Beschreibt, wie ein E-Commerce-Webserver installiert wird.

  • Hinzufügen von Webservern ohne Site Packager. Beschreibt, wie ein E-Commerce-Webserver installiert wird, ohne Site Packager zu verwenden.

  • Aktualisieren von Siteinhalten. Beschreibt, wie Commerce Server-Komponenten aktualisiert werden.

  • Verwenden von SQL Server zur Replikation von Datenbanken. Erklärt, wie Sie SQL Server verwenden, um Commerce Server-Datenbanken zu replizieren.

  • Ändern von Servernamen. Beschreibt, wie Sie die Namen Ihrer Server ändern können.


Verwenden der Testumgebung für Aktualisierungen

Installieren und testen Sie Ihre Aktualisierungen immer zuerst in einer separaten Testumgebung, bevor Sie Ihre Server in der Produktionsumgebung aktualisieren. Auf diese Weise können Sie die aktualisierte Site vollständig getestet und effizient bereitstellen.

Beispiel: Sie wollen Ihren Produktkatalog aktualisieren. Bevor Sie die Kataloge in der Produktionsumgebung modifizieren, aktualisieren Sie zuerst die Kataloge in der Testumgebung. Testen Sie dort die aktualisierten Kataloge. Wenn Sie sich überzeugt haben, dass die Aktualisierungen voll funktionsfähig sind, verwenden Sie SQL Server, um die Aktualisierungen auf den Produktionsservern zu replizieren.

Siehe auch

Aktualisieren von Siteinhalten

Verwenden von SQL Server zur Replikation von Datenbanken


Hinzufügen von Webservern

Um Webserver zu einer bestehenden Site hinzuzufügen, müssen Sie auf dem neuen Webserver Commerce Server-Setup und Commerce Server Site Packager ausführen. Stellen Sie zunächst sicher, dass die erforderliche Hard- und Software installiert ist.

So installieren Sie einen Commerce Server-Webserver

  1. Legen Sie die Commerce Server 2000-CD in das CD-Laufwerk ein, und führen Sie das Programm Commerce Server 2000-Setup mit der Installationsoption Webserver aus.

  2. Klicken Sie auf Weiter.

  3. Führen Sie im Dialogfeld Konfiguration der Verwaltungsdatenbank folgende Schritte aus:
    Option/Funktion | Zweck
    SQL Server-Computer | Geben Sie den Servernamen ein.
    SQL Server-Anmeldename | Geben Sie den SQL Server-Anmeldenamen ein, der für den Zugriff auf die Verwaltungsdatenbank verwendet werden soll. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.
    SQL Server-Anmeldekennwort | Geben Sie das Kennwort für die SQL Server-Anmeldung ein. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.

  4. Klicken Sie auf Weiter.

  5. Führen Sie im Dialogfeld Dienstkonten folgende Schritte aus:
    Option/Funktion | Zweck
    Benutzername | Geben Sie den Windows-Benutzernamen für das Konto ein, über das die Commerce Server-Dienste auf diesem Computer ausgeführt werden.
    Kennwort | Geben Sie das Kennwort für das Windows-Konto ein.
    Domäne | Geben Sie die Domäne für das Windows-Konto ein.

  6. Klicken Sie auf Weiter.

  7. Klicken Sie im Dialogfeld Zur Installation bereit auf Installieren.

    Commerce Server-Setup installiert die Laufzeitobjekte und Commerce Server Site-Pakete auf diesen Server.

  8. Klicken Sie auf Fertig stellen, um das Setupprogramm zu verlassen.

Jetzt müssen die für den neuen Webserver gewünschten Anwendungen entpackt werden. Gehen Sie folgendermaßen vor, nachdem Sie Commerce Server auf einem neuen Webserver installiert haben.

So fügen Sie einen neuen Webserver zu einer Anwendung hinzu

  1. Erweitern Sie auf dem physischen Webserver, den Sie zu der Anwendung hinzufügen wollen, zuerst Commerce Server-Manager, dann E-Commerce Sites und schließlich die Site, die Sie verwalten möchten.

  2. Erweitern Sie Anwendungen, klicken Sie mit der rechten Maustaste auf den Namen der Anwendung, zu der Sie einen Webserver hinzufügen wollen, und zeigen Sie auf Neu. Klicken Sie anschließend auf Webserver hinzufügen.

  3. Markieren Sie im Dialogfeld Webserver hinzufügen von die Paketdatei, die die Webserverdateien enthält, die Sie dem Webserver hinzufügen möchten. Klicken Sie anschließend auf Öffnen.

    Commerce Server Site Packager wird gestartet.

  4. Im Dialogfeld Anwendungen auswählen wird der Name der Internet Information Services (IIS) 5.0-Website angezeigt, auf der die Anwendung installiert wird. Außerdem wird das virtuelle IIS-Verzeichnis für jede E-Commerce-Anwendung angezeigt. Diese Informationen sind schreibgeschützt. IIS-Website und virtuelles IIS-Verzeichnis müssen für alle Webserver der Anwendung identisch sein. Klicken Sie auf Weiter.

    Site Packager fügt Ihre Dateien zu dem Webserver hinzu und fügt anschließend das Commerce-Webserver-Objekt zu der gewählten Anwendung hinzu. Beim Öffnen von Commerce Server-Manager wird das Commerce-Webserver-Objekt unter der Anwendung angezeigt.

  5. Sehen Sie sich im Dialogfeld Das Entpacken ist abgeschlossen die Protokolldatei an, und klicken Sie auf Fertig stellen.

Nachdem Sie einen Webserver zu einer Anwendung hinzugefügt haben, wird das Commerce-Webserver-Objekt unter dem Anwendungsknoten im Commerce Server-Manager angezeigt. Das Commerce-Webserver-Objekt enthält Eigenschaften, die von Datawarehouse zum Importieren von Protokolldateien benötigt werden: Servername, IP-Adresse (Internet Protocol), Protokolldateipfad und Protokolldateiperiode. Diese Eigenschaften werden von IIS automatisch ausgefüllt, wenn Sie ein Commerce-Webserver-Objekt zu einer Anwendung hinzufügen. Informationen über das Konfigurieren von Webservereigenschaften finden Sie unter Konfigurieren eines Webservers.

Anmerkung

  • Um einen Webserver zu einer bestehenden Anwendung hinzuzufügen, müssen Sie ein Paket verwenden, das ein Abbild dieser Anwendung enthält. Beispiel: Sie entpacken eine Site mit dem Namen Schuhgeschäft, die eine Anwendung mit dem Namen Händler enthält. Wenn Sie die Anwendung mit dem Namen Händler in Händler2 umbenennen, müssen Sie die Site mit der umbenannten Anwendung erneut packen und anschließend das neue Paket verwenden, um Webserver zu der Anwendung hinzuzufügen.

Siehe auch

Hardwareanforderungen

Softwareanforderungen

Hinzufügen von Webservern ohne Site Packager.


Hinzufügen von Webservern ohne Site Packager

Sie können Webserver zu einer Anwendung hinzufügen, ohne Commerce Server Site Packager zu verwenden. Kopieren Sie die Dateien der Anwendung zuerst auf den Server und konfigurieren Sie Internet Information Services (IIS) 5.0 auf dem neuen Server. Hierfür können Sie Microsoft Application Center 2000 verwenden. Beim ersten Start der Anwendung auf dem neuen Server wird er als Webserver zu der entsprechenden Anwendung in der Commerce Server-Verwaltungsdatenbank hinzugefügt. Die Verwaltungsdatenbank wird mithilfe der Funktion JoinWebFarm aktualisiert. Diese ist in den Commerce Server-Lösungssites enthalten. Sie befindet sich im Verzeichnis Include der entpackten Commerce Server-Lösungssites in der Datei Global_siteconfig_lib.asp.

Nachdem Sie den Webserver zu der Anwendung hinzugefügt haben, müssen Sie folgende Webservereigenschaften in Commerce Server mit denen in IIS synchronisieren:

  • TCP-Anschluss

  • SSL-Anschluss

  • IP-Adresse (Internet Protocol)

  • Protokolldateipfad

  • Protokolldateiperiode

Aktualisieren Sie entweder die Werte in Commerce Server-Manager manuell, oder klicken Sie im Dialogfeld Anwendungseigenschaften auf der Registerkarte Webserver auf die Schaltfläche Werte synchronisieren, um die Eigenschaften zu synchronisieren. Weitere Informationen finden Sie unter Konfigurieren einer Anwendung.

Wenn Sie auf die Schaltfläche Werte synchronisieren klicken, kopiert Commerce Server die Eigenschaften aus IIS auf der Anwendungsebene und die Eigenschaften aller Webserverobjekte unterhalb der Anwendungsebene. Bei der Synchronisierung der Eigenschaften auf der Anwendungsebene (TCP-Anschluss und SSL-Anschluss) verwendet Commerce Server die Werte des ersten Webservers. Commerce Server geht davon aus, dass die Webserver alle identisch konfiguriert sind; das muss bei einer Webfarm auch der Fall sein , damit sie korrekt arbeitet.

Da der JoinWebFarm-Code das SiteConfig-Objekt verwendet, funktioniert er nur, wenn der Benutzer die Berechtigung besitzt, SiteConfig zu verwenden. Wenn Sie zuvor die Berechtigung für SiteConfig verweigert haben, können Sie die Berechtigung für dieses Objekt mithilfe des Registrierungs-Editors von Windows wiederherstellen. Weitere Informationen finden Sie unter Beschränken des Zugriffs auf die Verwaltungsdatenbank.

Anmerkung

  • Application Center 2000 synchronisiert Dateien und IIS-Einstellungen, aktualisiert jedoch nicht die Commerce Server-Verwaltungsdatenbank. Dazu muss ein zusätzliches Skript verwendet werden, in dem die Funktion JoinWebFarm enthalten ist. Weitere Informationen über Application Center 2000 finden Sie in der Application Center 2000-Dokumentation.


Aktualisieren von Siteinhalten

Für die erste Bereitstellung Ihrer Website verwenden Sie Commerce Server Site Packager. Um den Inhalt der Site zu aktualisieren, können Sie eine Vielzahl von Tools je nach der zu aktualisierenden Komponente verwenden. Folgende Tabelle gibt an, wo sich Commerce Server-Komponenten befinden und wie sie aktualisiert werden können.

Zu aktualisierender Inhaltstyp | Vorgehensweise
Webseiten (ASP- und HTML-Dateien) | Verwenden Sie Microsoft Visual Studio, Microsoft Application Center 2000, das Content Deployment-Tool oder andere Webseitenpublishing-Tools. Weitere Informationen dazu finden Sie in Visual Studio oder in der Application Center 2000-Dokumentation.
Component Object Model (COM)-Anwendungen | Übertragen Sie die entsprechenden DLL-Dateien (Dynamic Link Library) auf den Webserver, und registrieren Sie sie mit dem Befehl regsvr32 dll-Dateiname.
Benutzerprofile und Katalogschemas | Erstellen Sie ein Skript. Eine Beschreibung dieser Schemas finden Sie unter Profile Schema (englisches Thema) und Erstellen eines Katalogschemas.
Katalogdaten, Kampagnen, Anzeigen und Preisnachlässe | Erstellen Sie einen Data Transformation Services (DTS)-Task, und führen Sie ihn aus. Bewegen Sie beim Aktualisieren von Kampagnen, Anzeigen und Preisnachlässen nur Tabellen, die diese Einträge enthalten. Überschreiben Sie nicht die Leistungstabelle. Weitere Informationen über DTS-Tasks finden Sie unter Ausführen des Datawarehouse.
Pipelines | Kopieren Sie die entsprechenden Pipeline-(PCF)-Dateien.

Anmerkung

  • Bevor Sie die Inhalte eines Servers aktualisieren, stellen Sie sicher, dass keine Benutzer mit dem Server verbunden sind. Sonst treffen Benutzer in Ihrer Website möglicherweise auf nicht funktionierende Links.

Siehe auch

Verwenden von SQL Server zur Replikation von Datenbanken


Verwenden von SQL Server zur Replikation von Datenbanken

Um die Verfügbarkeit und Skalierbarkeit großer Commerce Server 2000-Sites zu gewährleisten, sollten Sie die Katalogdatenbank replizieren. Verwenden Sie SQL Server, um die Katalogserver bzw. Servercluster im NLB-Cluster (Network Load Balancing) zu replizieren. Eine Abbildung dieser Konfiguration finden Sie unter Konfiguration einer großen Site.

Verwenden Sie SQL Server, um die Commerce Server-Datenbanken zu replizieren. Folgende Schritte helfen Ihnen, die Replikation zu implementieren, egal ob Sie eine Snapshot-, Transaktions-, oder Mergereplikation verwenden.

Schritt | Vorgehensweise
Konfigurieren der Replikation | Identifizieren Sie Herausgeber, Distributor und Abonnenten in Ihrer Topologie. Verwenden Sie SQL Server Enterprise Manager, SQL-DMO oder mit Transact-SQL gespeicherte Prozeduren und Skripts, um den Herausgeber zu konfigurieren, eine Verteilungsdatenbank zu erstellen und Abonnenten zu aktivieren.
Veröffentlichen von Daten und Datenbankobjekten | Erstellen Sie eine Publikation, und definieren Sie die Daten- und Datenbankobjektartikel in der Publikation. Wenden Sie alle notwendigen Filter auf die zu veröffentlichenden Daten an.
Abonnieren von Publikationen | Erstellen Sie Push-, Pull- oder anonyme Abonnements, um festzulegen, welche Publikationen wann an einzelne Abonnenten übertragen werden.
Erstellen des Anfangssnapshots | Geben Sie an, wo Snapshotdateien gespeichert werden sollen, ob sie komprimiert werden sollen und welche Skripts vor oder nach dem Anfangssnapshot ausgeführt werden sollen.
Anwenden des Anfangssnapshots | Wenden Sie den Snapshot automatisch an, indem Sie das Abonnement mithilfe des Verteilungs-Agenten oder des Merge-Agenten synchronisieren. Der Snapshot kann aus dem Standardsnapshotordner oder von Wechselmedien aus angewendet werden. Wechselmedien können vor der Anwendung des Snapshots manuell zum Abonnenten transportiert werden.
Synchronisieren von Daten Das Synchronisieren von Daten erfolgt, wenn der Snapshot-Agent, Verteilungs-Agent oder Merge-Agent ausgeführt wird und Aktualisierungen zwischen Herausgeber und Abonnenten übertragen werden.

Bei der Snapshotreplikation wird ein Snapshot aufgenommen und an die Abonnenten übertragen. Bei der Transaktionsreplikation speichert der Protokolllese-Agent die Aktualisierungen in der Verteilungsdatenbank, und der Verteilungs-Agent überträgt die Aktualisierungen an die Abonnenten.

Wenn Sie Abonnements verwenden, die über Snapshotreplikation oder über Transaktionsreplikation aktualisiert werden können, werden die Daten von einem Abonnenten an den Herausgeber und an andere Abonnenten übertragen.

Bei der Mergereplikation werden die Daten während des Mergeprozesses synchronisiert, wenn Datenänderungen auf allen Servern zusammengeführt werden. Dabei möglicherweise auftretende Konflikte werden erkannt und gelöst.

Siehe auch

Aktualisieren von Siteinhalten


Ändern von Servernamen

Es wird dringend geraten, Servernamen nach der Installation von Commerce Server 2000 nicht zu ändern. Falls Sie den NetBIOS-Namen eines Servers ändern müssen, sollten Sie Commerce Server deinstallieren, den Namen ändern, den Server neu starten, auf eine korrekte Konfiguration der Plattform achten und anschließend Commerce Server neu installieren.

Commerce Server benennt die Verbindungszeichenfolgen zwischen Ressourcen auf der Basis von Servernamen. Wenn Sie einen Namen ändern, werden die Verbindungen zwischen den Ressourcen möglicherweise aufgehoben . Sie müssen diese Verbindungszeichenfolgen in Commerce Server Manager manuell ändern.

Die angezeigten Namen des Vorhersagediensts, von Commerce Server Direct Mailer und der globalen Ressourcen von Profilen beinhalten den Namen des Servers, auf dem Sie erstellt wurden. Wenn Sie den Servernamen ändern, können Sie das Commerce Server-Setup verwenden, um den Vorhersagedienst und Direct Mailer zu entfernen und neu zu installieren. Sie können Commerce Server Site Packager verwenden, um eine neu benannte globale Ressource von Profilen zu erstellen. Dann müssen Sie die Eigenschaft Verweis im globalen Ressourcenzeiger von Profilen für alle Sites ändern, die diese globale Ressource von Profilen verwenden.

Wenn Sie Microsoft Application Center 2000 verwenden, um eine Anwendung auf einem umbenannten Webserver neu zu laden, erstellt die Funktion JoinWebFarm, die über die Datei Global.asa während des Ereignisses Application_OnStart aufgerufen wird, in der Verwaltungsdatenbank einen neuen Webserverknoten. Sie müssen Commerce Server-Manager verwenden, um den alten Servernamen in der Site zu löschen.


Verwenden von Site Packager

Commerce Server Site Packager ist ein Bereitstellungstool und hat in erster Linie zwei Zwecke. Mit diesem Tool können Sie Ihre Commerce Server 2000-Site in eine einzige Datei packen, einschließlich Internet Information Services (IIS) 5.0-Einstellungen (Metabasis), Dateisystem, Ressourcen der Verwaltungsdatenbank sowie SQL Server-Datenbanken. Außerdem können Sie damit die Commerce Server-Site (bzw. Teile davon) auf anderen Computern entpacken.

In den meisten Fällen wird Site Packager zur ersten Bereitstellung der Site eingesetzt. Für anschließende Bereitstellungen, inkrementelle Aktualisierungen und Rollbacks sollten Sie jedoch ein Tool wie Microsoft Application Center 2000 bzw. ein anderes Content Management-Produkt verwenden.

Dieser Abschnitt beinhaltet folgende Themen:

  • Über Site Packager. Beschreibt, wofür Sie Site Packager einsetzen können, was ein Paket ist und wie globale Ressourcen entpackt werden.

  • Packen einer Site. Beschreibt, wie eine Site in eine Paketdatei gepackt wird.

  • Entpacken einer Site. Beschreibt, wie eine Site aus einer Paketdatei entpackt wird.

  • Verwenden von Skripts mit Site Packager. Beschreibt, wie Skripts vor bzw. nach der Installation mit Site Packager verwendet werden.

  • Ausführen von Site Packager von der Befehlszeile. Beschreibt, wie Site Packager über die Befehlszeile verwendet wird.

  • Anpassen von Site Packager-INI-Dateien. Beschreibt die INI-Datei, die in den Commerce Server Lösungssites enthalten ist und wie Sie diese INI-Dateien als Vorlagen zur Erstellung von benutzerdefinierten INI-Dateien für Ihre eigenen Pakete verwenden können.

  • Site Packager-Verweisinformationen. Enthalten die Daten und Einstellungen, die in SQL Server beim Entpacken einer Site eingerichtet werden.


Über Site Packager

Commerce Server Site Packager packt und entpackt Websites und Einstellungen und erleichtert so die Bereitstellung Ihrer Anwendungen.

Pakete

Optionen zum Entpacken

Lösungssites

So werden Datenbank- und Anwendungsnamen erstellt

So werden globale Ressourcen entpackt

Wo sich Datenbanken befinden

So werden Webserverberechtigungen eingestellt

Pakete

Ein Paket ist eine speziell formatierte Commerce Server-Datei. Jedes Paket hat die Dateinamenerweiterung PUP. Ein Paket enthält immer eine einzelne Site mit ihren Ressourcen, Daten und Anwendungen.

Zusätzlich zu den Siteressourcen, Anwendungen und den Internet Information Services (IIS) 5.0-Einstellungen, die zur Wiederherstellung der Webserverkonfigurationen benötigt werden, enthält Commerce Server Site Packager auch die Eigenschaftswerte der Verwaltungsdatenbank. Beispiel: Wenn Sie die Ressource der Anwendungsstandardkonfiguration packen, werden auch alle aktuellen Eigenschaftswerte gepackt. Wenn Sie die Ressource der Anwendungsstandardkonfiguration entpacken, werden die Eigenschaftswerte in die Verwaltungsdatenbank entpackt.

Das Paket enthält globale Ressourcenzeiger, aber nicht die globale Ressourcen selbst. Verbindungszeichenfolgen werden ohne die Felder für Benutzernamen und Kennwort gepackt.

Während des Packens einer Anwendung sucht Site Packager die IIS-Metabasis auf Ihrem lokalen Computer. Es wird das physischen Verzeichnis dieser Anwendung gefunden, das als Stammverzeichnis dieser Anwendung dient. Anschließend packt Site Packager beginnend mit dem Stammverzeichnis alle Unterverzeichnisse in eine neue Datei mit der Dateinamenerweiterung PUP. Site Packager hat bestimmte Einstellungen in IIS, wie z. B. Autorisierungen und Zugriffsberechtigungen.

Site Packager packt keine computerspezifischen Eigenschaften. Webservereigenschaften und einige über Commerce Server Manager eingestellte Eigenschaften werden z. B. nicht gepackt. Eine Übersicht, welche Daten einer Ressource jeweils gepackt werden, finden Sie unter Site Packager-Verweisinformationen.

Optionen zum Entpacken

Standardmäßig entpackt Site Packager jede Anwendung in die IIS-Standardwebsite in einem virtuellen Verzeichnis, das mit dem Anwendungsnamen übereinstimmt. Um die Sicherheit der Site zu erhöhen, sollten Sie eine neue IIS-Website erstellen, anstatt die Standardwebsite für die von Ihnen entpackten Commerce Server-Sites zu verwenden. Sie können den Namen des virtuellen Verzeichnisses ändern, das zu jeder Anwendung gehört. Um die IIS-Website oder das virtuelle Verzeichnis beim Entpacken zu ändern, müssen Sie den Modus Benutzerdefiniert von Site Packager verwenden.

Wenn Sie einen weiteren Webserver für eine Anwendung entpacken (und eine Webfarm erstellen), können Sie beim Entpacken keine Konfigurationsinformationen für Anwendungen ändern, da alle Webserver die gleichen Einstellungen verwenden müssen. Site Packager zeigt den Namen der IIS-Website an, in der die Anwendung installiert wird, sowie den IIS-Anwendungspfad für jede Commerce Server-Anwendung.

Wenn Sie eine Site und eine Anwendung entpacken, die bereits in der Verwaltungsdatenbank existieren, geht Site Packager davon aus, dass Sie einen Webserver zu einer Anwendung hinzufügen.

Lösungssites

Lösungssites sind Pakete, die Ressourcen zum Aufbau einer Site enthalten. Nach der Installation von Commerce Server können Sie eine dieser Lösungssites entpacken und als Grundlage für Ihre eigene Site verwenden.

Commerce Server enthält folgende Lösungssites:

  • Blank. Enthält alle Commerce Server-Ressourcen zum Aufbau einer benutzerdefinierten Site.

Zusätzliche Lösungssites finden Sie in der Commerce Server-Website, wie z. B.:

  • Retail. Enthält die Commerce Server-Ressourcen zum Aufbau einer Handelssite.

  • Supplier. Enthält die Commerce Server-Ressourcen zum Aufbau einer Lieferantensite, in der Active Directory aktiviert ist.

So werden Datenbank- und Anwendungsnamen erstellt

Commerce Server Site Packager entnimmt die Datenbank- und Anwendungsnamen dem Paket.

Für jede Anwendung im Paket wird eine IIS-Anwendung erstellt. Im Paket wird der vollständige Pfad jeder Anwendung gespeichert.

So werden globale Ressourcen entpackt

Beim Commerce Server-Setup werden zwei globale Ressourcen installiert – der Vorhersagedienst und Direct Mailer. Alle anderen globalen Ressourcen werden mithilfe von Site Packager installiert. Bevor Sie eine Site entpacken, die die globalen Ressourcen Vohersagedienst bzw. Direct Mailer benötigt, müssen Sie diese Ressourcen über das Commerce Server-Setup installieren. Informationen über das Installieren globaler Ressourcen finden Sie unter Installieren und Deinstallieren von globalen Ressourcen.

Wo sich Datenbanken befinden

Sie werden von Site Packager nicht aufgefordert, die Speicherorte von Datenbanken anzugeben. Statt dessen verwendet Site Packager die SQL Server-Standardverzeichnisse. Stellen Sie sicher, dass genügend Festplattenspeicherplatz zur Verfügung steht, um die Datenbanken auf den Datenbankservern zu erstellen.

So werden Webserverberechtigungen eingestellt

IIS-Webserverberechtigungen können eingerichtet werden, um den Zugriff anonymer Benutzer auf die Anwendungen einzuschränken sowie um die Ansicht von Quellcode über das Internet einzuschränken, auch für Benutzer mit Windows-Berechtigungen (bzw. Zugriffssteuerungseinträgen).

Der Unterschied zwischen Webserverberechtigungen und NTFS-Berechtigungen ist unbedingt zu beachten. Im Gegensatz zu NTFS beziehen sich Webserverberechtigungen auf alle Benutzer, die auf Ihre Website zugreifen. NTFS-Berechtigungen beziehen sich nur auf Benutzer oder Benutzergruppen mit gültigem Windows-Konto. NTFS steuert den Zugriff auf physische Verzeichnisse Ihres Servers, während Webberechtigungen den Zugriff auf virtuelle Verzeichnisse Ihrer Website steuern.

Beim Packen einer Site werden die Webserverberechtigungen der Quellsite übernommen. Beispiel: Wenn Sie im Stammverzeichnis Ihrer Anwendung auf dem Quellcomputer die Einstellung Ausführberechtigungen auf Skripts und ausführbare Dateien eingestellt haben , wird die gleiche Einstellung in das virtuelle Stammverzeichnis auf dem Zielcomputer übernommen.

In der folgenden Tabelle wird z. B. gezeigt, wie die IIS-Berechtigungen in den von Microsoft zur Verfügung gestellten Paketen eingestellt sind.

Verzeichnis | Berechtigungen
Stamm | Einstellen von Ausführberechtigung auf Skripts und ausführbare Dateien
Pipeline, Include, Template | Verweigern von Lese-, Schreib- und Ausführberechtigung.

Anmerkung

  • Site Packager übernimmt keine Windows-Zugriffssteuerungslisten (ACLs), die NTFS-Berechtigungen enthalten. In ACLs sind die Gruppen und Personen festgelegt, die auf bestimmte Objekte in Windows 2000 Zugriff haben. Diese Objekte beinhalten Microsoft Active Directory-Objekte, lokale NTFS-Dateien und -Verzeichnisse, die Registrierung und Drucker.

Siehe auch

Verwenden von Commerce Server und IIS

Packen einer Site

Entpacken einer Site

Site Packager-Verweisinformationen

Ausführen von Site Packager von der Befehlszeile


Packen einer Site

Beim Packen einer Site werden Ihre Anwendungen und Einstellungen in einer einzigen Paketdatei gespeichert.

So packen Sie eine Site

  1. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft Commerce Server 2000, und klicken Sie anschließend auf Commerce Server Site Packager.

  2. Wählen Sie im Dialogfeld Willkommen die Option Vorhandene Site packen, und klicken Sie auf Weiter.

  3. Führen Sie im Dialogfeld Site packen folgende Schritte aus:
    Option/Funktion | Zweck
    Zu packende Site | Auswählen der hinzuzufügenden Site aus der Liste verfügbarer Sites.
    Zu erstellende Paketdatei | Eingeben eines Namens für die zu erstellende Paketdatei.

  4. Klicken Sie auf Durchsuchen

  5. Navigieren Sie im Dialogfeld Speichern unter zu dem Verzeichnis, in dem Sie das Paket erstellen möchten. Geben Sie den Dateinamen ein, und klicken Sie auf Speichern. Klicken Sie nach der Rückkehr zum Bildschirm Commerce Site Packager auf OK.

  6. Führen Sie im Dialogfeld Profilsystem folgende Schritte aus:
    Option/Funktion | Zweck
    Schemadefinitionsskripts Festlegen der Schemadefinitionsskripts, die in dem Paket enthalten sein sollen. Klicken Sie auf Durchsuchen, um den Speicherort dieser Skripts anzugeben.

    Site Packager verwendet ein Standard-Schemadefinitionsskript. Wenn Sie die Benutzerobjekt-Tabelle oder andere Profilschemadefinitionen modifizieren, müssen Sie SQL Server Enterprise Manager verwenden, um ein Skript zu erstellen, das hier verwendet werden kann. Weitere Informationen finden Sie unter Packen von erweiterten Profilschemas.
    Datenauffüllungsskripts | Festlegen der Datenauffüllungsskripts, die in dem Paket enthalten sein sollen. Klicken Sie auf Durchsuchen, um den Speicherort dieser Skripts anzugeben.

  7. Klicken Sie auf OK.

  8. Klicken Sie im Dialogfeld Das Packen ist abgeschlossen auf Protokolldatei anzeigen, um die Liste der Ereignisse in der Site Packager-Protokolldatei anzuzeigen.

  9. Klicken Sie auf Fertig stellen, um Site Packager zu schließen.

Anmerkungen

  • Wenn Sie eine Commerce Server-Anwendung packen, deren virtuelles Verzeichnis untergeordnete IIS-Anwendungen enthält, packt Site Packager auch die Ordner und Dateien der untergeordneten Anwendungen. Wenn Sie die Ordner und Dateien der untergeordneten Anwendungen nicht benötigen, müssen Sie sie nach dem Entpacken der übergeordneten Commerce Server-Anwendung löschen.

  • Site Packager packt keine Dateien in untergeordneten virtuellen Verzeichnissen der IIS-Anwendung. Wenn Sie Dateien in untergeordneten virtuellen Verzeichnissen packen wollen, verschieben Sie vor dem Packen der Site die Ordner und Dateien in untergeordnete physische Verzeichnisse des Stammverzeichnisses der IIS-Anwendung.

  • Bevor Sie eine Site packen, die Anwendungen (z. B. Retail und RetailBusinessDesk) auf separaten Webservern hat, müssen Sie einen der Webserver zu der anderen Anwendung hinzufügen. Wenn z. B. Retail auf Computer A und RetailBizDesk auf Computer B installiert ist, können Sie Site Packager auf Computer B ausführen, um diesen als Webserver für Retail hinzuzufügen. Anschließend können Sie die Site von Computer B aus packen. (Umgekehrt können Sie Computer A zu RetailBizDesk hinzufügen und die Site von dort aus packen.) Weitere Informationen finden Sie unter Hinzufügen eines Webservers zu einer Anwendung.

Siehe auch

Über Site Packager

Entpacken einer Site

Ausführen von Site Packager von der Befehlszeile


Entpacken einer Site

Verwenden Sie Commerce Server Site Packager, um eine Site oder einen Teil einer Site auf einen oder mehrere Computer zu entpacken. Beim Ausführen von Site Packager müssen Sie die entsprechenden Berechtigungen besitzen, um Dateien in die Zielverzeichnisse kopieren zu können.

So entpacken Sie eine Site schnell (Standardeinstellungen akzeptieren)

So entpacken Sie eine Site (alle Einstellungen selbst angeben)

Anmerkungen

  • Führen Sie nie mehr als eine Instanz von Site Packager gleichzeitig auf einem Computer aus.

  • Verwenden Sie den Modus Benutzerdefiniert von Site Packager, um eine Site in eine anderen Internet Information Services (IIS) 5.0-Website als der standardmäßigen zu entpacken.

  • Wenn Sie die Direct Mailer-Ressource entpacken, nachdem Sie eine Business Desk-Anwendung entpackt und einen Business Desk Client installiert haben, müssen Sie die Internet-Informationsdienste (IIS) 5.0 auf dem Webserver neu starten, auf dem sich die Business Desk-Anwendung befindet. Erst dadurch wird erkannt, dass Direct Mailer hinzugefügt wurde. Business Desk Clients müssen die Verbindung zur Anwendung erneut herstellen. Anweisungen zum Neustarten von IIS finden Sie unter Neustarten von IIS.

  • Business Desk-Module werden nicht automatisch aus der Business Desk-Anwendung entfernt, wenn Sie eine erforderliche Ressource nicht entpacken. Wenn Sie z. B. den Produktkatalog nicht entpacken, werden die Katalogmodule weiterhin in Business Desk angezeigt, aber Sie funktionieren nicht.

Gehen Sie folgendermaßen vor, wenn Sie einen Computer zu einem Webserver machen und alle Datenbankdateien auf einen SQL Server legen wollen.

So entpacken Sie eine Site schnell (Standardeinstellungen akzeptieren)

  1. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft Commerce Server 2000, und klicken Sie anschließend auf Commerce Server Site Packager.

  2. Wählen Sie im Dialogfeld Commerce Server Site Packager die Option Aus Paketdatei entpacken, und klicken Sie auf Weiter.

  3. Klicken Sie im Dialogfeld Entpacken neben dem Feld Zu entpackende Datei auf die Schaltfläche Durchsuchen.

  4. Navigieren Sie im Dialogfeld Öffnen zu dem Ordner, der die zu entpackende Datei enthält. Wählen Sie die Datei aus, und klicken Sie dann auf Öffnen.

  5. Wählen Sie nach der Rückkehr zum Dialogfeld Entpacken die Option Schnelles Entpacken, und klicken Sie auf Weiter.

  6. Führen Sie im Dialogfeld Schnelles Entpacken folgende Schritte aus:
    Option/Funktion | Zweck
    Sitename | Geben Sie den Sitenamen ein, falls er geändert werden soll. Verwenden Sie keine Sonderzeichen im Namen (wie z. B. #, @, % und '). Nennen Sie die Site nicht "Commerce".
    IIS-Website | Wählen Sie den Namen der IIS-Website aus, auf der die Anwendung(en) installiert werden soll(en).
    SQL Server-Computer | Geben Sie den Namen des SQL Server-Computers ein, auf dem sich die Sitedatenbanken befinden.
    SQL-Benutzername | Geben Sie den SQL-Anmeldenamen für die Datenbanken ein.
    SQL-Kennwort | Geben Sie das SQL-Anmeldekennwort ein.

  7. Falls das Dialogfeld Datawarehouse angezeigt wird, können Sie folgende Schritte ausführen:
    Option/Funktion | Zweck
    Name | Eingeben des Namens für die globale Datawarehouse-Ressource.
    Server | Eingeben des Namens für den SQL Analysis-OLAP (analytische Onlineverarbeitung)-Computer.
    Datenbank | Eingeben des Namens der SQL Analysis (OLAP)-Datenbank.

  8. Klicken Sie auf Weiter.

  9. Falls das erste Dialogfeld Profilsystem angezeigt wird, können Sie folgende Schritte ausführen:
    Option/Funktion | Zweck
    Profilschemadefinition | Angeben der Profilschemadefinition, die importiert werden soll.
    Sitebegriffsdefinition | Angeben der Sitebegriffsdefinition, die importiert werden soll.
    Ausdrucksdefinition | Angeben der Ausdrucksdefinition, die importiert werden soll.

  10. Klicken Sie auf Weiter.

  11. Falls das zweite Dialogfeld Profilsystem angezeigt wird, können Sie folgende Schritte ausführen:
    Option/Funktion | Zweck
    Verbindungszeichenfolge für das Profilsystem | Angeben der Dateien, die in den OLEDB-Datenspeicher importiert werden sollen. Klicken Sie auf Ändern, um eine andere Datenbank anzugeben.
    Schemadefinitionsskripts (*.sql, *.vbs) | Angeben der Schemadefinitionsskripts, die importiert werden sollen.
    Datenauffüllungsskripts (*.sql) | Angeben der Datenauffüllungsskripts, die importiert werden sollen.

  12. Klicken Sie auf Weiter.

  13. Sehen Sie sich im Dialogfeld Das Entpacken ist abgeschlossen die Liste der erstellten SQL-Datenbanken und der IIS-Anwendungen an. Klicken Sie auf Protokolldatei anzeigen, um die Liste der Ereignisse in der Site Packager-Protokolldatei anzusehen.

  14. Klicken Sie auf Fertig stellen, um Site Packager zu schließen.

Gehen Sie folgendermaßen vor, wenn Sie einen Webserver zu einer bestehenden Anwendung hinzufügen wollen oder wenn Sie festlegen möchten, dass mehr als ein Datenbankserver für die Site verwendet werden soll.

So entpacken Sie eine Site (alle Einstellungen selbst angeben)

  1. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft Commerce Server 2000, und klicken Sie anschließend auf Commerce Server Site Packager.

  2. Wählen Sie im Dialogfeld Commerce Server Site Packager die Option Aus Paketdatei entpacken, und klicken Sie auf Weiter.

  3. Klicken Sie im Dialogfeld Entpacken neben dem Feld Zu entpackende Datei auf die Schaltfläche Durchsuchen.

  4. Navigieren Sie im Dialogfeld Öffnen zu dem Ordner, der die zu entpackende Datei enthält. Wählen Sie die Datei aus, und klicken Sie dann auf Öffnen.

  5. Wählen Sie nach der Rückkehr zum Dialogfeld Entpacken die Option benutzerdefiniertes Entpacken aus, und klicken Sie auf Weiter.

  6. Wählen Sie im Dialogfeld Entpacken die entsprechende Option aus, und klicken Sie dann auf Weiter.

  7. Geben Sie im Dialogfeld Sitename den Namen der Site ein, und klicken Sie auf Weiter.

    Anmerkungen

    • Verzichten Sie im Sitenamen auf Sonderzeichen (wie #, @, % und '), um Fehler beim Entpacken zu vermeiden. Den Datenbanknamen einer Site wird standardmäßig der Sitename vorangestellt, und Sonderzeichen werden in SQL Server nicht erkannt.

    • Geben Sie keine Sitenamen mit mehr als 256 Single-Byte-Zeichen bzw. mehr als 128 Double-Byte-Zeichen an.

    • Nennen Sie die Site nicht "Commerce". Dies ist ein für die OLAP-Datenbank reservierter Name. Wenn Sie Ihre Site "Commerce" nennen, kann dies beim nächsten Entpacken einer Site zum Verlust Ihrer OLAP-Datenbank führen.
  8. Wählen Sie im Dialogfeld Anwendungen auswählen bzw. Ressourcen auswählen die Elemente aus, die Sie installieren möchten, und klicken Sie dann auf Weiter.

    Anmerkung

    • Im Dialogfeld Ressourcen auswählen müssen Sie die Ressourcen CS-Authentifizierung und Profile gemeinsam installieren. Sie sind nur funktionsfähig, wenn beide installiert sind.
  9. Klicken Sie im Dialogfeld Globale Ressourcenzeiger auf Weiter.

    In diesem Dialogfeld können Sie vorhandene globale Ressourcen zuordnen bzw. neue erstellen.

  10. Im Dialogfeld Datenbank-Verbindungszeichenfolgen sind die Datenbanken aufgeführt, die Site Packager erstellen wird, sowie die Server, auf denen die Datenbanken erstellt werden. Überprüfen Sie, ob die Datenbanken korrekt sind, und klicken Sie auf Weiter.

  11. Überprüfen Sie im Dialogfeld Anwendungen auswählen, ob die zu entpackenden Anwendungen ausgewählt sind, und klicken Sie dann auf Weiter.

  12. Überprüfen Sie dann im Dialogfeld Anwendungen auswählen, ob die IIS-Websites und IIS-Anwendungspfade korrekt sind, und klicken Sie dann auf Weiter.

    Anmerkungen

    • Verzichten Sie in den Namen der virtuellen Verzeichnisse auf Sonderzeichen (wie #, @, % und '), um IIS-Fehler zu vermeiden.

    • Site Packager unterstützt nicht das Entpacken von Sites auf Remotecomputern.

    • Site Packager entpackt jede Anwendung im Basisverzeichnis der jeweiligen IIS-Website. Im Basisverzeichnis erstellt Site Packager ein Unterverzeichnis mit dem Namen des virtuellen IIS-Verzeichnisses der Anwendung.
  13. Im Dialogfeld Datawarehouse können Sie die folgenden Schritte ausführen:
    Option/Funktion | Zweck
    Name | Eingeben des Namens für die globale Datawarehouse-Ressource.
    Server | Eingeben des Namens des SQL Analysis (OLAP)-Computers.
    Datenbank | Eingeben des Namens der SQL Analysis (OLAP)-Datenbank.

  14. Klicken Sie auf Weiter.

  15. Falls das erste Dialogfeld Profilsystem angezeigt wird, können Sie die folgenden Schritte ausführen:
    Option/Funktion | Zweck
    Profilschemadefinition | Angeben der Profilschemadefinition, die importiert werden soll.
    Sitebegriffsdefinition | Angeben der Sitebegriffsdefinition, die importiert werden soll.
    Ausdrucksdefinition | Angeben der Ausdrucksdefinition, die importiert werden soll.

  16. Klicken Sie auf Weiter.

  17. Falls das zweite Dialogfeld Profilsystem angezeigt wird, können Sie die folgenden Schritte ausführen:
    Option/Funktion | Zweck
    Verbindungszeichenfolge für das Profilsystem | Angeben der Dateien, die in den OLEDB-Datenspeicher importiert werden sollen. Klicken Sie auf Ändern, um eine andere Datenbank anzugeben.
    Schemadefinitionsskripts (*.sql, *.vbs) | Angeben der Schemadefinitionsskripts, die importiert werden sollen.
    Datenauffüllungsskripts (*.sql) | Angeben der Datenauffüllungsskripts, die importiert werden sollen.

  18. Klicken Sie auf Weiter.

  19. Sehen Sie sich im Dialogfeld Das Entpacken ist abgeschlossen die Liste der erstellten SQL-Datenbanken und der IIS-Anwendungen an. Klicken Sie auf Protokolldatei anzeigen, um die Liste der Ereignisse in der Site Packager-Protokolldatei anzusehen.

  20. Klicken Sie auf Fertig stellen, um Site Packager zu schließen.

Anmerkungen

  • Unmittelbar nach dem Installieren der Site sowie jedes Mal, wenn Sie grundlegende Änderungen an der Konfiguration der Commerce Server-Bereitstellung vornehmen, sollten Sie die Verwaltungsdatenbank unter einem anderen Namen sichern. Sie können diese Sicherungskopie verwenden, um alle später vorgenommenen Änderungen rückgängig zu machen.

  • Wenn Sie Commerce Server-Datenbanken (außer Datawarehouse) auf einem Remotecomputer installieren, kann eine Verzögerung auftreten, bevor diese Datenbanken auf dem Remotecomputer angezeigt werden.

  • Falls Sie eine unpack.vbs-Skriptdatei verwenden, wenn Sie eine nicht-Commerce Server Business Desk-Anwendung entpacken, stellen Sie sicher, dass Sie die Datei unmittelbar nach dem Entpacken löschen bzw. sichern. Die Datei befindet sich im Stammverzeichnis, und anonyme Benutzer können auf Sie zugreifen. Eine nicht autorisierte Verwendung dieses Skripts könnte zu einem Denial of Service oder zu einem Verlust von Einstellungen führen.

Siehe auch

Über Site Packager

Packen einer Site

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern

Beispiel B: Installation auf einer Konfiguration mit drei Computern ohne Cluster

Ausführen von Site Packager von der Befehlszeile

Problembehandlung bei Site Packager


Verwenden von Skripts mit Site Packager

Sie können drei Typen von Microsoft Visual Basic-Skripts mit Commerce Server Site Packager verwenden.

Pre-Packaging-Skripts

Post-Packaging-Skripts

Anwendungskripts

Packen von erweiterten Profilschemas

Pre-Packaging-Skripts

Bevor die Site entpackt wird, führt Site Packager ein Pre-Packaging-Skript aus, sobald der Paketname bekannt ist. Pre-Packaging-Skripts müssen folgendermaßen benannt werden: PrePaketname.vbs, z. B. PreRetail.vbs.

Ein Pre-Packaging-Skript besitzt den Parameter mode ( /s: ). Dieser gibt an, ob Site Packager im automatischen oder normalen Installationsmodus ausgeführt wird. Damit die Pre-Packaging-Skripts ausgeführt werden können, müssen sie sich im selben Verzeichnis wie das zu entpackende Paket befinden.

Post-Packaging-Skripts

Site Packager führt nach Beendigung des Entpackens (aber bevor das Dialogfeld Das Entpacken ist abgeschlossen. angezeigt wird) ein Post-Packaging-Skript aus. Post-Packaging-Skripts müssen folgendermaßen benannt werden: PostPaketname.vbs, z. B. PostRetail.vbs. Ein Post-Packaging-Skript besitzt zwei Parameter:

  • Sitename in Anführungszeichen (/n:"MeineSite")

  • Modus ( /s: ) – legt automatischen oder normalen Installationsmodus fest

Damit Post-Packaging-Skripts ausgeführt werden können, müssen sie sich im selben Verzeichnis wie das zu entpackende Paket befinden.

Anwendungsskripts

Site Packager kann auch anwendungsspezifische Skripts ausführen. Anwendungsskripts besitzen sechs Parameter:

  • Sitename in Anführungszeichen (/n:"MeineSite")

  • Anwendungsname in Anführungszeichen (/r:"MeineAnwendung")

  • Servernummer oder Instanznummer der IIS-Website, in der die Anwendung installiert wurde (/i:1)

  • Name des virtuellen Verzeichnisses, in das die Anwendung installiert wurde (/v:"MeinStamm")

  • Dateipfad in Anführungszeichen, in dem die Anwendungsdateien installiert sind (/d:"C:\inetpub\wwwstamm")

  • Modus ( /s: ) – legt automatischen bzw. normalen Installationsmodus fest

Anwendungsskripts werden für jede Anwendung ausgeführt, nachdem folgende Ereignisse aufgetreten sind:

  • Die Anwendung wurde installiert, und die Dateien wurden kopiert.

  • Die IIS-Eigenschaften wurden auf die Anwendung eingestellt.

  • Die Anwendungsinformationen wurden in die Verwaltungsdatenbank geschrieben.

  • Site Packager hat Datawarehouse mitgeteilt, dass die Anwendung existiert.

Anmerkung

  • Falls Sie zum Entpacken einer nicht-Commerce Server Business Desk-Anwendung eine unpack.vbs-Skriptdatei erstellen und verwenden, sollten Sie die Datei unmittelbar nach dem Entpacken löschen oder sichern. Die Datei befindet sich im Stammverzeichnis, und anonyme Benutzer können auf sie zugreifen. Eine nicht autorisierte Verwendung dieses Skripts könnte zu einem Denial of Service oder zu einem Verlust von Einstellungen führen.

Siehe auch

Ausführen von Site Packager von der Befehlszeile

Anpassen von Site Packager-INI-Dateien

Packen von erweiterten Profilschemas

Wenn Sie ein Paket mit erweiterten Profilschemas erstellen wollen, müssen Sie ein vor dem Packen der Site ein Skript erstellen. Die folgenden Schritte zeigen Ihnen, wie Sie ein erweitertes Profilschema packen können:

  1. Verwenden Sie SQL Server Enterprise Manager, um die Benutzerobjekt-Tabelle zu erweitern und eigene Attribute hinzuzufügen. Weitere Informationen dazu finden Sie in der SQL Server-Dokumentation.

  2. Fügen Sie die neuen Datenelemente zum Datenobjekt hinzu. Weitere Informationen finden Sie unter Hinzufügen eines neuen Datenelements.

  3. Verwenden Sie SQL Server Enterprise Manager, um Skripts für Ihr erweitertes Profilschema zu erstellen. Weitere Informationen dazu finden Sie in der SQL Server-Dokumentation.

  4. Beim Packen der Site fordert Sie Site Packager auf, den Speicherort des von Ihnen erstellten Schemadefinitionsskripts anzugeben. Wenn Sie Ihr Skript nicht angeben, packt Site Packager das Standardskript, das Ihre Erweiterung nicht enthält.

Siehe auch

UserObject Profile Schema (englisches Thema)

Packen einer Site


Ausführen von Site Packager von der Befehlszeile

Mithilfe der Laufzeitdatei Pup.exe können Sie Commerce Server Site Packager von der Befehlszeilenoberfläche ausführen. Site Packager enthält eine Sammlung von Befehlszeilenschaltern, mit denen Sie Tasks in Sites oder Ressourcen ausführen können – einschließlich dem Packen, Entpacken und Löschen einer Site bzw. Ressource. Außerdem können Sie mithilfe von Microsoft Visual Basic-Skripts eindeutige Ressourcenreferenzen für Ihre benutzerdefinierten Installationsanforderungen einrichten.

Um z. B. ein Paket mit dem Namen BlankSite zu erstellen, würden Sie folgende Befehlszeichenfolge in die Befehlszeile eingeben:

PuP.exe /p  /s:BlankSite /f:D:\Programme\Microsoft Commerce Server\PuP Packages\XBlank.pup /i:D:\Programme\Microsoft Commerce Server\SiteCreate\packBlank.ini

Anmerkung

  • Wenn Sie Befehle zum Packen einer Site eingeben, müssen Sie die Parameter durch Leerzeichen trennen. Außerdem muss der vollständige Pfad und Dateiname der Rückmeldungsdatei angeben (Die Rückmeldungsdatei im vorangegangenen Beispiel heißt packBlank.ini.).

Die folgende Tabelle gibt eine Übersicht über die Befehlszeilenoptionen, die über die Datei Pup.exe zur Verfügung stehen.

Parameter | Packen | Entpacken | Beschreibung
/s: | X |  | Gibt den Namen der zu packenden Site an. /s:Name der Site
/f: | X | X | Gibt den Pfad der zu packenden Datei an. /f:vollständiger zu packender Pfad
/r | X | X | Zeigt das Dialogfeld Ressourcen auswählen an.
/i: | X | X | Gibt die INI-Datei für die automatische Installation an. /i:vollständiger Pfadname
/p | X |  | Packt eine Site oder Ressource.
/u |  | X | Entpackt eine Site oder Ressource.
/a: | X | X | Gibt den Namen der Anwendung an. /a:Anwendungsname
/w: |  | X | Gibt den Namen des Webservers an. /w:Webservername Verwenden Sie diese Option, um einen lokalen Computer als Webserver zu entpacken.

Um z. B. eine Site mit dem Namen Retail zu entpacken, würden Sie folgenden Befehl verwenden:

D:\Programme\Microsoft Commerce Server\PuP.exe /u /f:D:\Programme\Microsoft Commerce Server\PuP Packages\Retail.pup /i:C:\Commerce\Retail.ini

Siehe auch

Anpassen von Site Packager-INI-Dateien


Anpassen von Site Packager-INI-Dateien

Im BlankSite-Paket von Commerce Server ist die Datei packBlank.ini enthalten. Für die Retail- und Supplier-Lösungssites finden Sie eigene INI-Dateien in der Commerce Server-Website. Sie können diese INI-Dateien als Vorlagen für die Erstellung benutzerdefinierter INI-Dateien für Ihre eigenen Pakete verwenden. Diese INI-Dateien sind besonders nützlich zur Erstellung automatisierter Pakete, z. B. für Produktionsumgebungen, in denen Pakete immer nachts erstellt und morgens installiert werden sollen.

Sie können dieselbe INI-Datei sowohl zum Packen als auch zum Entpacken verwenden. Während des Packens bzw. Entpackens werden die für den Task irrelevanten Inhalte ignoriert.

INI-Dateien werden von der Befehlszeile ausgeführt. Anweisungen und einen Beispielbefehl finden Sie unter Ausführen von Site Packager von der Befehlszeile.

Unten sehen Sie den Inhalt der Datei packBlank.ini mit Kommentaren zu jedem Abschnitt. Ein Sternchen (*) weist auf Kommentare hin:

[General]

SiteName=BlankSite
Description=Blank site
NumOfResources= 11
NumOfApplications= 2

*Es folgt eine Liste mit zu installierenden Ressourcen. Wenn Sie eine bestimmte Ressource nicht installieren möchten, löschen Sie die Zeile dieser Ressource aus der INI-Datei und numerieren Sie die Ressourcen neu durch. Die Reihenfolge, in der die Ressourcen entpackt werden, hat keinen Einfluss auf den Entpackungsvorgang. Sämtliche Ressourcen werden jedoch immer vor den Anwendungen entpackt.

Anmerkung

  • Beim Packen einer Site wird die in der INI-Datei enthaltene Ressourcenliste nicht gelesen. Statt dessen wird die gesamte Site gepackt.
Resource0=App Default Config
Resource1=Product Catalog
Resource2=Campaigns
Resource3=Site Data Warehouse
Resource4=Transactions
Resource5=Transaction Config
Resource6=Direct Mail
Resource7=Predictor
Resource8=Biz Data Service
Resource9=Group Data Warehouse
Resource10=Site CS Authentication
Application0=B2CSite
Application1=B2CBizDesk
NumOfConnStrs= 6

[App Default Config]

*Die Anwendungsstandardkonfiguration enthält kein UseData-Flag, da sie nur Konfigurationsinformationen enthält.

[ConnStrs]

*In diesem Abschnitt werden die Verbindungszeichenfolgen für die Ressourcen aufgelistet. Die Verbindungszeichenfolgen verwenden folgende Parameter:

ConnStrResourceName

Gibt den Namen der Ressource an.

ConnStrValue

Gibt den Wert der Verbindungszeichenfolge an.

ConnStrPropertyName

Gibt den Eigenschaftsnamen der Verbindungszeichenfolge an.

Folgendes Beispiel zeigt den Abschnitt [ConnStrs]:

ConnStrResourceName0=Product Catalog
ConnStrPropertyName0=connstr_db_Catalog
ConnStrValue0=Provider=SQLOLEDB;Persist Security Info=False;User ID=;Password=;Initial Catalog=BlankSite_commerce;Data Source=SERVERNAME;
ConnStrResourceName1=Campaigns
ConnStrPropertyName1=connstr_db_Campaigns
ConnStrValue1=Provider=SQLOLEDB;Persist Security Info=False;User ID=;Password=;Initial Catalog=BlankSite_commerce;Data Source=SERVERNAME;
ConnStrResourceName2=Transactions
ConnStrPropertyName2=connstr_db_Transactions
ConnStrValue2=Provider=SQLOLEDB;Persist Security Info=False;User ID=;Password=;Initial Catalog=BlankSite_commerce;Data Source=SERVERNAME;
ConnStrResourceName3=TransactionConfig
ConnStrPropertyName3=connstr_db_TransactionConfig
ConnStrValue3=Provider=SQLOLEDB;Persist Security Info=False;User ID=;Password=;Initial Catalog=BlankSite_commerce;Data Source=SERVERNAME;
ConnStrResourceName4=Biz Data Service
ConnStrPropertyName4=connstr_db_bds
ConnStrValue4=Provider=SQLOLEDB;Persist Security Info=False;User ID=;Password=;Initial Catalog=BlankSite_commerce;Data Source=SERVERNAME;
ConnStrResourceName5=Global Data Warehouse
ConnStrPropertyName5=connstr_db_dw
ConnStrValue5=Provider=SQLOLEDB;Persist Security Info=False;User ID=;Password=;Initial Catalog=BlankSite_dw;Data Source=SERVERNAME;

[Product Catalog]

*UseData gibt an, ob Sie die Daten und das Schema oder nur das Schema einbeziehen möchten. 1 bedeutet, dass Sie sowohl Daten als auch Schema einschließen wollen. UseData hat keinen Einfluss auf die Anwendungen, die Profilressource, die CS-Authentifizierungsressource oder die Datawarehouse-Ressource.

UseData = 1

[Campaigns]

UseData = 1

[Site Data Warehouse]

*Site-Datawarehouse verwendet kein UseData-Flag, da es nur Konfigurationsinformationen enthält.

[Transactions]

UseData = 1

[Transaction Config]

UseData = 1

[Direct Mail]

*Verwenden Sie GlobalResourceName, um die globale Ressource einer globalen Ressource zuzuweisen, die bereits auf dem Computer vorhanden ist. Wenn der Wert dieser Einstellung (Fügen Sie eine neue globale Resource hinzu.) lautet, wird die globale Ressource zur Site hinzugefügt und nicht einer vorhandenen globalen Ressource zugewiesen.

GlobalResourceName=Direct Mail on SERVERNAME

[Predictor]

GlobalResourceName=Predictor on SERVERNAME

[B2CSite]

ASPDir=
VRoot=
Website=
UseData = 1

[B2CBizDesk]

ASPDir=
VRoot=
Website=
UseData = 1

[Biz Data Service]

*Dieses UseData hat keinen Einfluss auf den Profile-Dienst. Der Profile-Dienst enthält nur Schemas, keine Daten.

UseData = 1
GlobalResourceName= (Fügen Sie eine neue globale Ressource hinzu.)

[Global Data Warehouse]

*Dieses UseData hat keinen Einfluss auf Informationen in Group Data Warehouse. Group Data Warehouse enthält nur Schemas, keine Daten.

UseData = 1
GlobalResourceName= (Fügen Sie eine neue globale Ressource hinzu.)

[Site CS Authentication]

GlobalResourceName= (Fügen Sie eine neue globale Ressource hinzu.)


Site Packager-Verweisinformationen

Diese Site enthält Informationen darüber, welche Daten und Einstellungen beim Packen einer Site einbezogen werden.

Ressourcen und Daten

Die folgende Tabelle gibt eine Übersicht über die Ressourcen und Daten, die beim Packen einer Site für jede Ressource gepackt werden.

Ressource | Gepackte Daten
Anwendungsstandardkonfiguration | Alle Eigenschaftswerte
Kampagnen | Folgende Tabellen in der Kampagnendatenbank: 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-Authentifizierung | Einstellungen in AuthSetup.ini. Beim Entpacken einer Site können Sie eine neue Ressource erstellen oder auf eine bestehende zeigen.
Commerce Server-Datawarehouse | Keine. Beim Entpacken einer Site können Sie eine neue Datawarehouse-Ressource erstellen oder auf eine bestehende zeigen.
Commerce Server Direct Mailer | Keine. Bestätigt, dass in der Site ein Direct Mailer vorhanden ist. Die zu verwendende globalen Ressource für Direct Mailer wird beim Entpacken angegeben. Beim Entpacken einer Site können Sie auf eine Direct Mailer-Ressource zeigen. Sie müssen das Commerce Server-Setup verwenden, um eine neue zu erstellen.
Vorhersagedienst | Keine. Bestätigt, dass in der Site ein Vorhersagedienst vorhanden ist. Die zu verwendende globale Ressource für den Vorhersagedienst wird beim Entpacken angegeben. Beim Entpacken einer Site können Sie auf eine Vorhersageressource zeigen. Sie müssen das Commerce Server-Setup verwenden, um eine neue zu erstellen.
Produktkatalog | Folgende Tabellen der Katalogdatenbank: CatalogAttributes, CatalogDefinitions, CatalogDefinitionProperties, CatalogGlobal, CatalogUsedDefinitions, CatalogEnumValues, CatalogStatus, CatalogCustomCatalogs, CatalogCustomPrices, CatalogSet_Info, CatalogSet_Catalogs, CatalogToVendorAssociation, x_ProductsComplete, x_Relationships, x_Hierarchy
Profile | Schemaskript und Datenskript. Standard sind commerce_server_Stamm\Profilesql.sql bzw. commerce_server_stamm\PopulateProfileSql.sql Bestehende Datenbanken werden nicht gepackt. Beim Entpacken einer Site können Sie eine neue Ressource erstellen oder auf eine bestehendes zeigen.
Transaktionen | Folgende Tabellen der Transaktionsdatenbank: TransDimension, TransCategory.
Transaktionskonfiguration | Folgende Tabellen der Transaktionskonfigurations-Datenbank: Decode, Region, RegionalTax, ShippingConfig, TableShippingRates.

IIS-Einstellungen

Beim Packen einer Site bezieht Site Packager viele Ihrer IIS-Einstellungen ein. Site Packager packt keine IIS-Website (wie z. B. die Standardwebsite), jedoch die Dateien im physischen Stammverzeichnis der Anwendung und alle physischen Unterverzeichnisse mit den zugehörigen Dateien.

So zeigen Sie IIS-Einstellungen für eine Anwendung, ein Verzeichnis oder eine Datei an

  1. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft Commerce Server 2000, und klicken Sie anschließend auf Commerce Server-Manager.

  2. Erweitern Sie im Commerce Server-Manager die Struktur Internet-Informationsdienste. Erweitern Sie den Namen des Webservers, der eine Anwendung enthält. Erweitern Sie den Namen der IIS-Website, die die Anwendung enthält, klicken Sie mit der rechten Maustaste auf den Namen der Anwendung, des Verzeichnisses oder der Datei, und klicken Sie dann auf Eigenschaften.

    Das Dialogfeld Eigenschaften der Anwendung wird angezeigt.

Folgende Tabellen zeigen eine Übersicht über die Einstellungen für die Registerkarten Virtuelles Verzeichnis und Verzeichnissicherheit im Dialogfeld Eigenschaften und geben an, welche bei der Verwendung von Site Packager gepackt werden.

Registerkarte "Virtuelles Verzeichnis"

Feld | Gepackt/Nicht gepackt
Skriptzugriff | wird gepackt
Lesen | wird gepackt
Schreiben | wird gepackt
Verzeichnis durchsuchen | wird gepackt
Besuche protokollieren | wird gepackt
Ressource indizieren | wird gepackt
Anwendungsname | wird nicht gepackt
Ausgangspunkt | wird nicht gepackt
Ausführberechtigungen | wird gepackt
Anwendungsschutz | ist beim Entpacken immer auf Mittel eingestellt
Anwendungskonfigurationseinstellungen (wird nach Klicken auf Konfiguration angezeigt) | werden nicht gepackt

Registerkarte "Verzeichnissicherheit"

Feld | Gepackt/Nicht gepackt
Anonymer Zugriff | wird gepackt
Konto für anonymen Zugriff | wird nicht gepackt
Standardauthentifizierung | wird gepackt
Domäne für Standardauthentifizierung | wird nicht gepackt
Digestauthentifizierung | wird gepackt
Integrierte Windows-Authentifizierung | wird gepackt
Beschränkungen für IP-Adressen und Domänennamen | werden nicht gepackt
Sichere Kommunikation | werden nicht gepackt

Anmerkung

  • Die Inhalte der Registerkarten Dokumente, HTTP-Header und Benutzerdefinierte Fehler werden nicht gepackt. Die Skriptdatei unpack.vbs für Business Desk fügt nach dem Entpacken benutzerdefinierte Fehler für Business Desk hinzu.

Virtuelle IIS-Verzeichnisse

Wenn sich innerhalb der Anwendung virtuelle Verzeichnisse befinden, werden die virtuellen Verzeichnisobjekte, Verzeichnisse und Dateien im Pfad, auf den die Anwendung verweist, nicht gepackt. Wenn Sie diese Verzeichnisse und Dateien packen wollen, kopieren Sie sie in ein Verzeichnis des physischen Pfads der Anwendung, bevor Sie sie packen.

NTFS-Berechtigungen

NTFS-Berechtigungen und Zugriffsteuerungslisten in Verzeichnissen und Dateien werden nicht gepackt. Mithilfe der Skripts unpack.vbs bzw. postsite.vbs können Sie NTFS-Berechtigungen nach dem Entpacken automatisch zuweisen.


Verwalten von Commerce Server

In diesem Abschnitt wird beschrieben, wie Sie Microsoft Commerce Server 2000 mithilfe des Commerce Server-Managers verwalten können. Die Informationen sind in erster Linie für Systemadministratoren relevant, zu deren Aufgaben das Hinzufügen und Verwalten von Websiteressourcen, das Installieren und Konfigurieren von Webservern, das Überwachen der Commerce Server-Leistung sowie das Verwalten von Commerce Server-Datenbanken gehört.

Dieser Abschnitt beinhaltet folgende Themen:

  • Hilfe zum Commerce Server-Manager. Führt allgemeine Aufgaben bei der Arbeit mit dem Commerce Server-Manager auf.

  • Grundlagen der Verwaltung. Beschreibt Ressourcen, Sites, Anwendungen, Webserver und die Verwaltungsdatenbank von Commerce Server sowie die Beziehung zwischen Commerce Server und Microsoft Internet-Informationsdienste (IIS) 5.0. Erläutert darüber hinaus das Einrichten eines Computers, der ausschließlich für Verwaltungszwecke bestimmt ist.

  • Verwalten der Verwaltungsdatenbank. Beschreibt die Verwaltungsdatenbank und deren Interaktion mit Sites. Erläutert die Konfiguration der Datenbank und die Sicherheitsverwaltung.

  • Verwalten von Commerce-Ressourcen. Erläutert das Hinzufügen und Entfernen von globalen Ressourcen und Siteressourcen sowie das Starten und Beenden von Ressourcen.

  • Verwalten von Commerce-Sites. Erläutert das Hinzufügen, Konfigurieren und Löschen von Sites.

  • Verwalten von Commerce-Anwendungen und Webservern. Erläutert das Hinzufügen, Konfigurieren und Löschen von Commerce Server-Anwendungen sowie das Hinzufügen und Löschen von Webservern.

  • Verwalten von Commerce Server. Erläutert das Erstellen von Sicherungskopien und das Wiederherstellen von Commerce Server-Dateien und -Datenbanken.

  • Verwalten der CS-Authentifizierungsressource. Erläutert die Verwendung der CS-Authentifizierungsressource, mit deren Hilfe die Authentifizierungs- und Identifikationsmethode für die Commerce Server-Site eingerichtet und geändert werden kann.

  • Ausführen des Datawarehouse. Erläutert den Datenimport in das Datawarehouse und das Anpassen des Importvorgangs. Beschreibt darüber hinaus die Verwaltung und Ergänzung von Daten im Datawarehouse.

  • Ausführen von Direct Mailer. Erläutert die Entwicklung personalisierter Direktsendungen und beschreibt das Anpassen von Commerce Server Direct Mailer sowie das Ausführen, Überwachen und Löschen von Aufgaben in Direct Mailer.

  • Ausführen der Vorhersageressource. Erläutert das Erstellen neuer Vorhersage- und Segmentmodelle, das Anzeigen von Modellen und das Überwachen der Vorhersageressource.

  • Ausführen der Profilressource. Erläutert das Hinzufügen von Profildatenquellen zu Commerce Server, das Erstellen von Profildefinitionen für die Datensammlung in der Website und das Erstellen von Sitebegriffen.

  • Verwenden von BizTalk Server und Commerce Server. Erläutert das Einrichten von Commerce Server und BizTalk Server für die Bearbeitung von Aufträgen und den Austausch von Katalogen.

  • Überwachen von Commerce Server-Sites. Erläutert das Überwachen der Commerce Server-Installation. Beschreibt die Leistungsindikatoren von Commerce Server sowie die Verwendung der Systemleistungsindikatoren von Commerce Server zur Verbesserung der Serverleistung.

  • Optimieren von Commerce Server. Erläutert die Minimierung der Antwortzeit für einzelne Anfragen sowie die Maximierung des Durchsatzes von Commerce Server.

  • Referenz zur Benutzeroberfläche. Bietet kontextbezogene Hilfe zu den Themen Datawarehouse, Data Transformation Services-Tasks, Vorhersageressource und Commerce Server Site Packager.


Hilfe zum Commerce Server-Manager

Im Folgenden werden die gängigen Aufgaben des Commerce Server-Managers aufgeführt.

Bereich Themen
Ressourcen
  • Installieren und Deinstallieren von globalen Ressourcen

  • Hinzufügen eines globalen Ressourcenzeigers zu einer Site

  • Hinzufügen einer Ressource zu einer Site
Sites und Anwendungen
  • Verwenden von Site Packager

  • Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern

  • Beispiel B: Installation auf einer Konfiguration mit drei Computern ohne Cluster

  • Hinzufügen einer Site

  • Hinzufügen einer Anwendung zu einer Site

  • Hinzufügen eines Webservers zu einer Anwendung

  • Konfigurieren der Verwaltungsdatenbank

  • Konfigurieren einer Anwendung

  • Konfigurieren eines Webservers
Vorhersageressource
  • Konfigurieren der Eigenschaften der Vorhersageressource

  • Erneutes Erstellen eines Analysemodells
Direct Mailer
  • Konfigurieren von Direct Mailer

  • Ausführen von Direct Mailer
Datawarehouse
  • Konfigurieren der Datawarehouse-Ressource

  • Konfigurieren der Importeigenschaften von Webprotokolldateien

  • Importieren von Daten in das Datawarehouse
CS-Authentifizierungsressource
  • Konfigurieren der Eigenschaften der CS-Authentifizierungsressource

  • Verwalten der CS-Authentifizierungsressource
Profilressource
  • Konfigurieren der Profilressource

  • Hinzufügen einer neuen Datenquelle
Ressource der Anwendungsstandardkonfiguration
  • Konfigurieren der Eigenschaften der Anwendungsstandardkonfigurations-Ressource

  • Konfigurieren von Commerce Server für die Zusammenarbeit mit BizTalk Server
Problembehandlung
  • Problembehandlung bei Commerce Server


Grundlagen der Verwaltung

Dieser Abschnitt beschreibt die Ressourcen, Sites, Anwendungen und Webserver von Microsoft Commerce Server 2000. Darüber hinaus wird die Verwaltungsdatenbank einschließlich ihrer Erstellung und Aktualisierung erläutert. Außerdem wird die Beziehung zwischen Commerce Server und Microsoft Internet-Informationsdienste (IIS) 5.0 dargestellt. Es wird die Einrichtung eines Computers erklärt, der nur zur Verwaltung eingesetzt werden soll.

Dieser Abschnitt beinhaltet folgende Themen:

  • Verwaltungstools. Beschreibt die zur Verwaltung von Commerce Server verwendeten Tools.

  • Verwenden von Commerce Server-Manager. Beschreibt den Commerce Server-Manager und erläutert, wie man ihn startet.

  • Informationen zu Ressourcen, Sites, Anwendungen und Webservern. Beschreibt Ressourcen, Sites, Anwendungen und Webserver, d. h. die Commerce Server-Objekte in der Microsoft Management Console (MMC).

  • Informationen zu den Commerce Server-Datenbanken. Beschreibt die Commerce Server-Datenbank und die Daten, die jede Datenbank enthält.

  • Einstellen der Datenbank-Verbindungszeichenfolgen. Führt die Commerce Server-Verbindungszeichenfolgen auf und beschreibt, wie sie eingestellt werden.

  • Verwenden von Commerce Server und IIS. Beschreibt die Webservereigenschaften, die Sie sowohl in Commerce Server als auch in IIS einstellen können. Außerdem wird beschrieben, wie Commerce Server Eigenschaften von IIS übernimmt.

  • Installieren der Verwaltungstools. Erklärt, was ein Computer ist, der nur für Verwaltungszwecke eingesetzt wird, und wie solch ein Computer eingerichtet wird.

  • Informationen zu Data Transformation Services (DTS). Führt die in Commerce Server enthaltenen DTS-Tasks auf.


Verwaltungstools

Die folgende Tabelle führt die Verwaltungstools auf, die zur Verwaltung einer Commerce Server 2000-Installation verwendet werden.

Option/Funktion | Zweck
Commerce Server-Manager | Verwalten und Konfigurieren der Ressourcen, Sites, Anwendungen und Webserver von Commerce Server
Commerce Server Site Packager | Bereitstellen von Sites, Ressourcen, Anwendungen und Webservern
SQL Enterprise Manager | Verwalten der Commerce Server-Datenbanken
IIS-Snap-In | Verwalten von Webservern
Windows 2000 Active Directory-Benutzer und -Computer | Verwalten von Windows 2000-Benutzerkonten, -Computerkonten, -Sicherheits- und -Verteilergruppen
Windows 2000-Ereignisanzeige | Anzeigen von Ereignisprotokollen
Windows 2000-Systemmonitor | Sammeln und Anzeigen von Echtzeit-Computerleistungsdaten
Windows 2000-Sicherungs-Assistent | Sichern der IIS-Metabasis, Windows 2000-Registrierungseinstellungen und Commerce Server-Dateien
Windows 2000-Wiederherstellungs-Assistent | Wiederherstellen der IIS-Metabasis, Windows 2000-Registrierungseinstellungen und Commerce Server-Dateien


Verwenden von Commerce Server-Manager

Der Commerce Server-Manager ist ein Tool, das zum Verwalten und Konfigurieren von Commerce Server 2000-Ressourcen, -Sites, -Anwendungen und -Webservern eingesetzt wird. Die Microsoft Management Console (MMC), eine Windows-basierte Oberfläche von Microsoft Windows 2000, dient als Host für den Commerce Server-Manager.

Die Funktionen des Commerce Server-Managers stehen weder über web- noch über befehlszeilenbasierte Verwaltung zur Verfügung. Der Zugriff und die Manipulation eines Großteils dieser Funktionen erfolgt stattdessen über COM-Objekte. Aus diesem Grund können Sie zur Erweiterung der Verwaltungsumgebung ein WSH-Skript (Windows Scripting Host) oder eine ASP-Seite (Active Server Pages) schreiben.

So greifen Sie auf den Commerce Server-Manager zu

  • Klicken Sie auf Start, zeigen Sie auf Programme und dann auf Verwaltungstools. Klicken Sie anschließend auf Commerce Server-Manager.

Siehe auch

Integrating Custom Resources (englisches Thema)

Konfigurieren der Verwaltungsdatenbank


Informationen zu Ressourcen, Sites, Anwendungen und Webservern

Ressourcen, Sites, Anwendungen und Webserver sind Commerce Server 2000-Objekte im Commerce Server-Manager, die Sie zur Verwaltung der Commerce Server-Installation verwenden. In diesem Abschnitt werden alle Objekte und ihre Interaktion beschrieben.

  • Ressourcen

  • Sites

  • Anwendungen

  • Webserver

Die folgende Abbildung zeigt die Commerce Server-Manager-Konsole und ihre Teile.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.


Ressourcen

Eine Ressource ist eine Einheit, die den Anwendungen einer Commerce Server-Site bestimmte Funktionen zur Verfügung stellt.

Eine Ressource besteht aus einem oder mehreren COM-Objekten (Component Object Model). Diese werden auf den Webseiten einer Anwendung für den Zugriff auf Ressourcenfunktionalitäten verwendet. Ressourcen beinhalten Eigenschaften, die in der Verwaltungsdatenbank gespeichert sind. Mit dem Commerce Server-Manager ist sowohl der Zugriff auf diese Eigenschaften als auch deren Änderung möglich (sie können auch programmatisch durch die Config-Objekte geändert werden).

Es gibt zwei Ressourcentypen: globale Ressourcen und Siteressourcen. Drittanbieter können benutzerdefinierte globale Ressourcen und Siteressourcen für die Arbeit mit Commerce Server entwickeln. Weitere Informationen finden Sie unter Integrating Custom Resources (englisches Thema).

Globale Ressourcen

Siteressourcen

Globale Ressourcen

Globale Ressourcen stehen allen Sites zur Verfügung.

Einige globale Ressourcen werden von Commerce Server-Setup erstellt; andere werden beim Auspacken einer Site mithilfe von Commerce Server Site Packager erstellt. Im Commerce Server-Manager werden unter "Globale Ressourcen" nur Ressourcen mit Eigenschaften auf globaler Ebene angezeigt. Jede Site, die globale Ressourcen verwendet, übernimmt damit auch die Eigenschaften, die den globalen Ressourcen zugewiesen sind.

In der folgenden Tabelle werden die in Commerce Server enthaltenen globalen Ressourcen aufgelistet und beschrieben.

Globale Ressourcen | Beschreibung | Installation durch
Commerce Server Direct Mailer (auch ein Windows 2000-Dienst) | Sendet personalisierte bzw. nicht personalisierte Mailings an große Empfängergruppen. | Commerce Server-Setup
Vorhersagedienst (auch ein Windows 2000-Dienst) | Stattet die Website mit Vorhersagefähigkeiten aus und erstellt komplexe Analysemodelle zum Identifizieren von Benutzersegmenten und -trends. | Commerce Server-Setup
Datawarehouse | Importiert und verwaltet Websitedaten aus Webprotokolldateien, Commerce Server-Datenbanken und anderen Datenquellen. | Commerce Server Site Packager
CS-Authentifizierung | Konfiguriert die Authentifizierungs- und Identifizierungsmethoden für Ihre Commerce Server-Site. | Commerce Server Site Packager
Profile | Erstellt Datenquellen zum Speichern von Profildaten. Erstellt und speichert Profildefinitionen und -eigenschaften. | Commerce Server Site Packager

Siteressourcen

Siteressourcen statten eine bestimmte Site mit Funktionen aus.

Im Commerce Server-Manager werden globale Ressourcenzeiger und Siteressourcen unter der Site aufgeführt. Sie konfigurieren die Eigenschaften einer Siteressource auf der Siteebene. Dabei werden globale Ressourcenzeiger so konfiguriert, dass sie auf die globale Ressource auf der globalen Ebene zeigen.

Die Eigenschaften einer Ressource befinden sich entweder auf der Siteebene oder der globalen Ebene, nicht aber auf beiden Ebenen zugleich.

In der folgenden Tabelle werden die in Commerce Server enthaltenen Siteressourcen aufgeführt und beschrieben.

Siteressource | Beschreibung
Anwendungsstandardkonfiguration | Speichert Eigenschaften, die Sie zur Konfiguration Ihrer Site verwenden, z. B. Gebietsschemas für Währung und Symbole, Rechnungs- und Zahlungsoptionen, Datenschutzoptionen, Maßeinheiten für Gewichtsangaben und Optionen für die Integration mit BizTalk Server.
Kampagnen | Stellt eine Verbindung zur Datenbank her, in der Kampagnendaten (Anzeigen, Preisnachlässe und Direktsendungen) gespeichert sind.
Produktkatalog | Stellt eine Verbindung zur Datenbank her, in der Katalogschema und Produktdaten gespeichert sind.
Transaktionen | Stellt eine Verbindung zur Datenbank her, in der Warenkorb- und Auftragsdaten gespeichert sind.
Transaktionskonfiguration | Stellt eine Verbindung zur Datenbank her, in der Daten für Lieferoptionen und Kostensätze, Steuersätze, Landes- und Regionalkennzahlen sowie Bestellstatuscodes gespeichert sind.

Siehe auch

Integrating Custom Resources (englisches Thema)

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern

Beispiel B: Installation auf einer Konfiguration mit drei Computern ohne Cluster

Verwalten von Commerce-Ressourcen


Sites

Eine Site besteht aus mehreren ASP-basierten (Active Server Pages) Anwendungen, die COM-Objekte von Commerce Server einsetzen. Diese verwenden und modifizieren Ressourcen. Eine Site stellt Mittel bereit, mit denen Anwendungen in der Site zusammen verwaltet werden können.

Eine Site enthält in der Regel mindestens zwei Anwendungen: eine Anwendung, mit der Benutzer Ihren Onlinespeicher anzeigen, und eine andere Anwendung, die Businessmanager verwenden, um auf Commerce Server Business Desk zuzugreifen. Eine Site kann aber auch zusätzliche Anwendungen enthalten. Eine Site kann z. B. www.alpineskihouse.com, www.alpineskihouse.com/equipment, www.alpineskihouse.com/clothing und www.alpineskihouse.com/BusinessDesk enthalten. Diese Anwendungen können über viele Server verteilt werden.

Sites verwenden sowohl globale Ressourcen, die von mehreren Sites genutzt werden, als auch Siteressourcen, die speziell für eine Site definiert werden.

Über einen Siteknoten im Commerce Server-Manager können Sie eine Site packen sowie Ressourcen hinzufügen bzw. löschen.

Siehe auch

Verwenden von Site Packager

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern

Beispiel B: Installation auf einer Konfiguration mit drei Computern ohne Cluster

Sichern der Site

Sicherung der Site


Anwendungen

Eine Commerce Server 2000-Anwendung ist eine Website. Sie ist eine logische Abbildung einer Anwendung der Internet-Informationsdienste (IIS) 5.0; sie wird sowohl im Commerce Server-Manager als auch in der IIS-Konsolenstruktur angezeigt. In der IIS-Konsole befindet sich eine Anwendung entweder auf der Ebene des Basisverzeichnisses oder in einem Unterverzeichnis der Website. Weitere Informationen sowie eine Abbildung, die die Beziehungen zwischen Objekten in der Commerce Server-Manager- und IIS-Konsole anzeigt, finden Sie unter Verwenden von Commerce Server und IIS.

Eine Anwendung repräsentiert die Webadresse, auf die ein Webclient zugreift. Wenn Sie eine Anwendung zu Commerce Server hinzufügen, wird die Verwaltungsdatenbank mit den Konfigurationsdaten für die Anwendung aktualisiert. Wenn Sie einen Webserver zur Anwendung hinzufügen, werden ASP-Dateien auf dem Webservercomputer installiert.

Beim Entpacken einer Commerce Server-Site werden in der Regel zwei Anwendungen installiert: eine Anwendung für die Website, auf die Benutzer zur Suche und zum Kaufen von Produkten zugreifen, und eine andere Anwendung für Commerce Server Business Desk zur Verwaltung dieser Site. Eine Anwendung kann nur die Ressourcen der Site nutzen, der sie zugeordnet ist.

Eine Anwendung enthält ihre eigenen Webserver. Diese liefern der ASP-Seite Inhalte für die Website. Eine Anwendung kann mehrere Webserver umfassen; sie umfasst immer mindestens einen Webserver. Sie können eine Anwendung entweder im Stammverzeichnis einer IIS-Website oder in einem virtuellen Verzeichnis einrichten, das sich beliebig viele Ebenen unterhalb des Stammverzeichnisses befindet.

In den IIS- und Commerce Server-Manager-Konsolen können Sie folgende Funktionen ausführen:

  • Über den Anwendungsknoten im IIS-Snap-In können Sie alle Eigenschaften festlegen, die auf der Ebene des virtuellen Verzeichnisses verfügbar sind, u. a. Eigenschaften des virtuellen Verzeichnisses, Standarddokumente, Verzeichnissicherheit, HTTP-Kopfzeilen (Hypertext Transfer Protocol) und benutzerdefinierte Fehler. Sie können auch Microsoft FrontPage-Servererweiterungen konfigurieren und die Anwendung umbenennen oder löschen.

  • Über den Anwendungsknoten im Commerce Server-Manager können Sie in der Anwendung den nicht sicheren und den sicheren Hostnamen und den IIS-Anwendungspfad einrichten, HTTPS, Autocookies und einen Authentifizierungsfilter aktivieren sowie für alle Webserver geltende Einstellungen konfigurieren.

Ausführliche Informationen über Eigenschaften, die Commerce Server von IIS übernimmt, finden Sie unter Verwenden von Commerce Server und IIS.

Siehe auch

Commerce Server-Sicherheit

Verwenden von Site Packager

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern

Beispiel B: Installation auf einer Konfiguration mit drei Computern ohne Cluster

Sichern der Site

Verwalten von Commerce-Anwendungen und Webservern


Webserver

In Commerce Server ist ein Webserver ein Computer, auf dem Internet-Informationsdienste (IIS) 5.0 installiert ist. Um einen Webserver mit Commerce Server 2000 einzusetzen, müssen Commerce Server und IIS auf demselben Computer installiert sein.

In Commerce Server ist ein Webserver einer oder mehreren Anwendungen zugeordnet; verschiedene Anwendungen können denselben Webserver nutzen. Der Webserver enthält die ASP-Dateien (Active Server Pages) und die Unterordner der Anwendung. Eine Anwendung kann mehrere Webserver haben. Die Gesamtheit dieser Webserver bildet eine Webfarm.

Wenn Sie ASP-Dateien zu einem Webserver hinzufügen möchten, verwenden Sie Commerce Server Site Packager, um den Webserver zu entpacken. Das Commerce-Webserverobjekt wird zur Anwendung hinzugefügt, wenn der Entpackungsvorgang abgeschlossen ist. Im Commerce Server-Manager wird ein Webserverobjekt unter der zugeordneten Anwendung angezeigt.

Das Webserverobjekt enthält Eigenschaften, die vom Datawarehouse zum Importieren von Protokolldateien benötigt werden. Beim Hinzufügen eines Webservers wird die Commerce Server-Verwaltungsdatenbank automatisch mit den folgenden IIS-Eigenschaften aufgefüllt.

Eigenschaft | Beschreibung
Servername | Der Name des Computers, auf dem IIS installiert ist.
IP-Adresse | Die IP-Adresse (Internet Protocol) für die IIS-Website der Anwendung.
Protokolldateipfad | Der Pfad, in den die IIS-Website der Anwendung Ereignisse schreiben soll, z. B. C:\Winnt\System32\LogFiles\Log1.
Protokolldateiperiode | Die Zeitdauer, die eine Protokolldatei bestehen bleibt, bis sie von der IIS-Website einer Anwendung überschrieben wird.

Über den Webserverknoten im Commerce Server-Manager können die folgenden Eigenschaften angezeigt und geändert werden. Wenn Sie die Eigenschaften im Commerce Server-Manager ändern, müssen Sie sie auch in IIS manuell ändern. Wenn Eigenschaften in IIS geändert werden, können Sie im Commerce Server-Manager auf die Schaltfläche Werte synchronisieren klicken, um die neuen Werte aus IIS in Commerce Server zu kopieren.

Commerce Server unterstützt auch Webserver, auf denen IIS nicht ausgeführt wird und die keine Commerce Server-Komponenten enthalten. Dies ermöglicht Ihnen, dem Datawarehouse die Webserver-Protokolldateien zum Import zur Verfügung zu stellen. Weitere Informationen finden Sie unter Hinzufügen anderer Anwendungen und Webserver.

Ein Webserver kann von verschiedenen Anwendungen genutzt werden. Jede Anwendung hat einen eigenen URL. Eine einzige IIS-Website kann eindeutige URLs bedienen. So könnte dieselbe IIS-Website z. B. www.microsoft.com und www.microsoft.com/commerceserver bedienen.

Wenn Sie eine Webfarm betreiben, müssen Sie Ihre Webserver replizieren. Es empfiehlt sich, Microsoft Application Center 2000 oder ein anderes Produkt für die Content Replication zu verwenden.

Siehe auch

Einrichten von Webservern

Hinzufügen eines Webservers zu einer Anwendung

Hinzufügen eines weiteren Webservers

Hinzufügen anderer Anwendungen und Webserver

Konfigurieren eines Webservers

Ausführen des Datawarehouse


Informationen zu den Commerce Server-Datenbanken

In der folgenden Tabelle werden die Datenbanken aufgeführt, die in der Regel in einer Commerce Server-Site verwendet werden. Abhängig von den Funktionen und der Konfiguration, die Sie für Ihre Site wählen, können Sie zusätzliche bzw. weniger Datenbanken verwenden.

Sie bestimmen die Verbindungszeichenfolgen für diese Datenbanken beim Setup und während des Entpackens. Sie können die Verbindungszeichenfolgen jedoch mithilfe des Commerce Server-Managers ändern.

Datenbank und Name | Beschreibung
Commerce Server Sitename_commerce | Daten für Kataloge, Kampagnen, Transaktionen, Profile und Ereignisse.
Verwaltungsdatenbank MSCS_Admin | Konfigurationsdaten, die von Commerce Server verwendet werden.
Datawarehouse Sitename_dw | Täglich anfallende Betriebsdaten über die Besucher Ihrer Site: Benutzerprofil-, Transaktions- und Klickverlaufsdaten. Diese Daten werden aus Webprotokollen und anderen Commerce Server-Datenbanken mithilfe der DTS-Tasks von Commerce Server importiert.
Direct Mailer | Daten für Adressenlisten, Nachrichten und Ereignisse.

Siehe auch

Verwalten von Commerce Server

Database Table Reference (englisches Thema)

Working with the Data Warehouse (englisches Thema)


Einstellen der Datenbank-Verbindungszeichenfolgen

Commerce Server-Verbindungszeichenfolgen, einschließlich der Benutzeranmeldenamen und Kennwörter, werden in der Verwaltungsdatenbank gespeichert.

Anmerkung

  • Alle Commerce Server-Verbindungszeichenfolgen verwenden Microsoft SQL Server-Sicherheit. Allerdings unterstützt die Verbindungszeichenfolge für die Datawarehouse-Ressource zur OLAP-Serverdatenbank (Online Analytical Processing) nur Microsoft Windows NT-Authentifizierung.

Commerce Server verwendet Verbindungszeichenfolgen für die folgenden Datenbanken:

  • Verwaltungsdatenbank und Direct Mailer-Datenbank. Beim Setup geben Sie die Benutzeranmeldenamen und die Kennwörter für die Verwaltungsdatenbank und die Direct Mailer-Datenbank ein. Sie können diese zu einem späteren Zeitpunkt mithilfe des Commerce Server-Managers ändern.

  • Datenbanken, die von Ressourcen verwendet werden. Wenn Sie eine Site mit Commerce Server Site Packager entpacken, werden Sie bei einigen Ressourcen nach einer Verbindungszeichenfolge zur entsprechenden Datenbank gefragt. In der folgenden Tabelle werden die Verbindungszeichenfolgen für jede Ressource aufgeführt.
    Ressource | Verbindungszeichenfolge
    Produktkatalog | Katalogdatenbank
    Kampagnen | Kampagnendatenbank
    Transaktionen | Transaktionsdatenbank
    Transaktionskonfiguration | Transaktionsdatenbank
    Profile | s_BizDataStoreConnectionString, s_CommerceProviderConnectionString, s_ProfileServiceConnectionString
    Datawarehouse | Die Verbindungszeichenfolge hat auf der Benutzeroberfläche keinen Namen, da das Datawarehouse über eine eigene Snap-In-Erweiterung verfügt.

  • Andere Datenbanken. Sie bestimmen Verbindungszeichenfolgen auch in den folgenden Fällen:
    Feature | Verbindungszeichenfolge
    Ressource der Anwendungsstandardkonfiguration: Integrieren mit BizTalk Server | Legen Sie die Verbindungszeichenfolge zur BizTalk Interchange Manager-Datenbank fest, in der Nachrichten gespeichert werden, die aus Commerce Server versendet wurden.
    Listen-Manager: Importieren und Exportieren von Listen | Stellen Sie im Listen-Manager-Modul von Commerce Server Business Desk die Verbindungszeichenfolge für die SQL Server-Datenbanktabelle ein, die Sie importieren bzw. exportieren.
    Migration ProfileBuilder Tool | Nachdem Sie Migration ProfileBuilder geändert haben, erstellen Sie einen Datenquellennamen (DSN) für den Commerce Server-Profildatenspeicher.
    Profilressource: Hinzufügen von Datenquellen | Verwenden Sie die Datenquellenauswahl (bzw. für LDAP [Lightweight Directory Access Protocol] den LDAP-Verbindungszeichenfolgedialog) zur Eingabe der Verbindungszeichenfolgen für die Datenbanken und LDAP-Quellen, die Sie mit Datenquellenpartitionen verknüpfen.
    Vorhersageressource | Geben Sie die Verbindungszeichenfolge für die externe Datenbank ein, nicht für das Datawarehouse.

Verwenden Sie den Commerce Server-Manager, wenn Sie eine Verbindungszeichenfolge für eine Datenbank ändern müssen.

So ändern Sie die Verbindungszeichenfolge für die Verwaltungsdatenbank

So ändern Sie die Verbindungszeichenfolge für eine globale Ressource

So ändern Sie die Verbindungszeichenfolge für eine Siteressource

So ändern Sie die Verbindungszeichenfolge für die Verwaltungsdatenbank

  1. Klicken Sie mit der rechten Maustaste auf Commerce Server-Manager, und klicken Sie anschließend auf Eigenschaften. Das Dialogfeld Commerce Server-Manager-Eigenschaften wird angezeigt.

  2. Klicken Sie auf der Registerkarte Verwaltungsdatenbank auf Ändern. Das Dialogfeld Commerce Server-Manager-Eigenschaften wird angezeigt.

  3. Sobald Sie die notwendigen Änderungen im Dialogfeld Datenverknüpfungseigenschaften vorgenommen haben, klicken Sie auf OK.

    Wenn Sie weitere Informationen über das vollständige Ausfüllen des Dialogfelds Datenverknüpfungseigenschaften benötigen, klicken Sie im Dialogfeld Datenverknüpfungseigenschaften auf Hilfe. Damit öffnen Sie die Microsoft Data Link-Hilfedatei.

Anmerkung

  • Nachdem Sie eine Eigenschaft im Commerce Server-Manager geändert haben, müssen Sie die IIS-Anwendungen in der Site aus den Speichern aller Webserver löschen, damit die Änderungen wirksam werden. Anweisungen finden Sie unter Entfernen einer Anwendung aus dem Speicher.

So ändern Sie die Verbindungszeichenfolge für eine globale Ressource

Da die globale Datawarehouse-Ressource über ihre eigene Snap-In-Erweiterung mit einer anderen Benutzeroberfläche verfügt, gilt diese Anleitung hier nicht. Anweisungen zum Ändern der Datawarehouse-Verbindungszeichenfolge finden Sie unter Konfigurieren der Datawarehouse-Ressource.

  1. Erweitern Sie Commerce Server-Manager, und erweitern Sie dann Globale Ressourcen.

  2. Klicken Sie mit der rechten Maustaste auf die zu konfigurierende globale Ressource, und klicken Sie dann auf Eigenschaften.

  3. Wählen Sie die Registerkarte Verbindungszeichenfolgen, um die Verbindungszeichenfolgen für die globale Ressource zu konfigurieren. Wählen Sie eine Verbindungszeichenfolge, und klicken Sie dann auf Ändern. Das Dialogfeld Datenverknüpfungseigenschaften wird angezeigt.

  4. Sobald Sie die notwendigen Änderungen im Dialogfeld Datenverknüpfungseigenschaften vorgenommen haben, klicken Sie auf OK.

Anmerkung

  • Nachdem Sie eine Eigenschaft im Commerce Server-Manager geändert haben, müssen Sie die IIS-Anwendungen in der Site aus den Speichern aller Webserver löschen, damit die Änderungen wirksam werden. Anweisungen finden Sie unter Entfernen einer Anwendung aus dem Speicher.

So ändern Sie die Verbindungszeichenfolge für eine Siteressource

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und erweitern Sie dann die Site, die Sie verwalten möchten.

  2. Erweitern Sie Siteressourcen, klicken Sie mit der rechten Maustaste auf die zu konfigurierende Siteressource, und klicken Sie anschließend auf Eigenschaften.

  3. Wählen Sie im Dialogfeld Eigenschaften die Registerkarte Verbindungszeichenfolge. Wählen Sie eine Verbindungszeichenfolge aus, und klicken Sie auf Ändern. Das Dialogfeld Datenverknüpfungseigenschaften wird angezeigt.

  4. Nachdem Sie die notwendigen Änderungen im Dialogfeld Datenverknüpfungseigenschaften vorgenommen haben, klicken Sie auf OK.

Anmerkung

  • Nachdem Sie eine Eigenschaft im Commerce Server-Manager geändert haben, müssen Sie die IIS-Anwendungen in der Site aus den Speichern aller Webserver löschen, damit die Änderungen wirksam werden. Anweisungen finden Sie unter Entfernen einer Anwendung aus dem Speicher.

Siehe auch

Connection Strings for the Data Warehouse (englisches Thema)

Connection Strings for the Profiling System (englisches Thema)

Code to Connect to the Expression Store (englisches Thema)

Code to Retrieve the Database Connection String (englisches Thema)

Code to Connect to the Profile Store (englisches Thema)


Verwenden von Commerce Server und IIS

Systemadministratoren, die für die tägliche Verwaltung von Commerce Server 2000 verantwortlich sind, müssen sich in der Regel auch um die Verwaltung der Internet-Informationsdienste (IIS) 5.0 kümmern.

Obwohl IIS im Hintergrund von Commerce Server ausgeführt wird, besteht kein strenges hierarchisches Verhältnis zwischen IIS- und Commerce Server-Objekten. Die Gesamtheit der Eigenschaften, die sich auf die Commerce Server-Site auswirken, besteht aus Eigenschaften, für die Folgendes gilt:

  • Nur auf IIS-Ebene festgelegt

  • Nur innerhalb von Commerce Server festgelegt, unabhängig von IIS

  • Von IIS übernommen

Mithilfe des IIS-Snap-Ins lassen sich Zugriffsberechtigungen für die Website, Sicherheit, Performance, Verzeichnisse und Pfade, Websiteidentifizierung, IP-Adressen und Anschlüsse verwalten.

Den Commerce Server-Manager verwenden Sie für folgende Aufgaben:

  • Zum Verwalten globaler Ressourcen und Commerce Server-Siteressourcen, zum Konfigurieren Commerce Server-spezifischer Eigenschaften, zum Konfigurieren von Datenbank-Verbindungszeichenfolgen für Ressourcen sowie zum Hinzufügen und Entfernen von Webservern zu bzw. aus einer Anwendung.

  • Auf der Anwendungsebene von Commerce Server bestimmen Sie den IIS-Anwendungspfad, die IIS-Website, nicht sichere und sichere Hostnamen, IP-Anschluss und den sicheren IP-Anschluss. Außerdem können Sie zur Aktivierung von Hypertext Transfer Protocol (HTTP) und des Autocookiemodus sowie zur Auswahl eines Authentifizierungsfilters Eigenschaften konfigurieren. Diese Eigenschaften lassen sich auf alle Webserver anwenden, die von der Anwendung eingesetzt werden.

    Wenn Sie mit dem Commerce Server-Manager Anschlusseigenschaften ändern, werden die Eigenschaften in IIS nicht automatisch geändert. Daher müssen Sie sie manuell ändern. Wenn Sie die Anschlusseigenschaften in IIS ändern, müssen Sie diese auch in Commerce Server ändern. Bei den folgenden Anschlusseigenschaften in IIS handelt es sich um die Eigenschaften, die gerade verwendet werden:

    Auf der Anwendungsebene

    • TCP-Anschluss (Transmission Control Protocol)

    • SSL-Anschluss (Secure Sockets Layer)

    Auf jedem Webserver

    • IP-Adresse (Internet Protocol)

    • Protokolldateipfad

    • Protokolldateiperiode

    Webservereigenschaften werden aus IIS übernommen und in der Verwaltungsdatenbank gespeichert, was den Zugriff auf sie erleichtert. Wenn Sie IIS-Eigenschaften ändern, müssen Sie die Commerce Server-Verwaltungsdatenbank mit IIS synchronisieren: Entweder aktualisieren Sie die neuen Werte in Commerce Server manuell, oder Sie klicken im Dialogfeld Anwendungseigenschaften auf der Registerkarte Webserver auf die Schaltfläche Werte synchronisieren. Weitere Informationen finden Sie unter Konfigurieren einer Anwendung.

    Wenn Sie auf die Schaltfläche Werte synchronisieren klicken, kopiert Commerce Server die Eigenschaften aus IIS auf der Anwendungsebene und die Eigenschaften aller Webserverobjekte unterhalb der Anwendungsebene. Bei der Synchronisation der Eigenschaften auf der Anwendungsebene (TCP- und SSL-Anschluss) bezieht Commerce Server sich auf die Werte des ersten Webservers. Commerce Server geht davon aus, dass die Webserver alle identisch konfiguriert sind, was bei einer Webfarm, die korrekt arbeiten soll, auch der Fall sein muss.

  • Auf der Ebene des Commerce Server-Webservers ändern Sie oder zeigen Sie Eigenschaften für die IP-Adresse (Internet Protocol), den Protokolldateipfad und die Protokolldateiperiode an.

    In der folgenden Abbildung sind die Objekte auf den IIS- und Commerce Server-Manager-Konsolenstrukturen sowie die Beziehungen zwischen diesen Objekten zu sehen.

    Illustration der Beziehungen zwischen Objekten in IIS und Commerce Server-Manager

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Siehe auch

Konfigurieren einer Anwendung

Hinzufügen anderer Anwendungen und Webserver

Integrating Custom Resources (englisches Thema)

Verwenden von Site Packager


Informationen zu Data Transformation Services (DTS)

Commerce Server enthält einige DTS-Tasks (Data Transformation Services), die Sie für den Datenimport in das Datawarehouse verwenden. DTS ist ein Feature von Microsoft SQL Server. Es stellt Funktionen zur Verfügung, die den Datenimport und -export sowie die Dateiformatumwandlung zwischen Microsoft SQL Server und jedem OLE DB-, Open Database Connectivity-(ODBC)- oder Textdateiformat ermöglichen. So ist z. B. das Importieren von Katalogdaten aus der Katalogdatenbank in das Datawarehouse ein DTS-Task. Nachdem Sie Daten in das Datawarehouse importiert haben, können Businessmanager die Analysemodule in Commerce Server Business Desk zur Analyse der Daten verwenden.

Ausführliche Information über die Verwendung der DTS-Tasks von Commerce Server finden Sie unter Ausführen des Datawarehouse.

In der folgenden Tabelle werden die in Commerce Server enthaltenen DTS-Tasks aufgeführt.

DTS-Tasks in Commerce Server 2000 | Beschreibung
Import von Webserverprotokollen | Webprotokolldateien werden definiert und importiert. Sie führen diesen Task durch, um Eigenschaften von Webprotokolldateien zu erstellen, die die aus einer Webprotokolldatei importierten Daten bestimmen. Darüber hinaus wird festgelegt, wie zwischen individuellen Benutzern und Besuchen unterschieden wird.
Konfigurationssynchronisation | Das Datawarehouse wird mit Commerce Server Business Desk synchronisiert, nachdem Sie Änderungen in den Konfigurationseinstellungen vorgenommen haben. Dieser Task muss vor jedem Importtask durchgeführt werden.
Transaktionsdatenimport | Transaktionsdaten werden definiert und importiert. Führen Sie diesen Task durch, um den Transaktionsdatentyp auszuwählen, den Sie in das Datawarehouse importieren möchten.
Datenlöschung | Detaildaten und Zusammenfassungen der Webprotokolldatei im Datawarehouse werden gelöscht. Sie löschen Daten der Webprotokolldatei, um die Größe des Datawarehouse zu reduzieren. Sie löschen alle Daten (detaillierte und zusammengefasste), wenn Sie Testdaten importiert haben und Sie das Datawarehouse vor dem Import gültiger Dateien leeren möchten.
Produktkatalogimport | Katalogdaten werden importiert. Katalogberichte, die importierte Katalogdaten verwenden, enthalten mehr beschreibende Produktinformationen als Katalogberichte, die Transaktionsdaten verwenden.
Import von Benutzerprofildaten | Benutzerprofildaten werden importiert. Benutzerprofildaten werden anhand von Profildaten definiert, die in der Profilressource erstellt werden. Benutzerprofildaten werden zum Sammeln von persönlichen Informationen von Benutzern verwendet, die sich in Ihrer Website registrieren.
IP-Auflösung | IP-Adressen (Internet Protocol) werden aus importierten Benutzerdaten aufgelöst. IP-Auflösung konvertiert aus Ihren Protokolldateien importierte IP-Adressen in Domänennamen. So wird z. B. aus der IP-Adresse 198.105.232.4 www.microsoft.com. Dies erleichtert es Lesern, die in Ihren Berichten enthaltenen Daten zu verstehen.
Kampagnendatenimport | Importiert Daten über Marketingkampagnen. Sie verwenden Kampagnendaten, um die Erfolge Ihrer Kampagnen zu analysieren.
Berichtsvorbereitung | Füllt OLAP-Cubes mit Importdaten auf, bereitet die Daten zur Reporterstellung vor und bereinigt den Datenträger nach einem Löschvorgang. Dieser Task muss nach jedem Import- und Löschtask durchgeführt werden.

Weitere Informationen über DTS-Tasks finden Sie in der SQL Server-Onlinedokumentation.

Siehe auch

Ausführen des Datawarehouse


Installieren der Verwaltungstools

Sobald Sie Commerce Server 2000 auf mindestens einem Computer installiert haben, können Sie auch eine reine Verwaltungskonsole auf einem separaten Computer einrichten. Ein Verwaltungscomputer enthält nur den Commerce Server-Manager und ist mit der vorhandenen Verwaltungsdatenbank verbunden.

In folgenden Fällen können Sie einen reinen Verwaltungscomputer einsetzen:

  • Sie möchten Ihren vorhandenen Computer einsetzen, ohne zuvor aufwendige Konigurationen durchzuführen. Ein Verwaltungscomputer stellt in Bezug auf Software und Konfiguration weniger Anforderungen als ein Computer, auf dem Commerce Server vollständig installiert ist. Auf einem Verwaltungscomputer kann Microsoft Windows 2000 Professional, nicht aber Microsoft Windows 2000 Server ausgeführt werden.

  • Sie möchten die Option haben, Commerce Server von verschiedenen Standorten aus zu verwalten. Verwaltungscomputer müssen sich in derselben Domäne wie Commerce Server bzw. in einer vertrauenswürdigen Domäne befinden.

Ein Verwaltungscomputer muss den folgenden Anforderungen entsprechen:

  • Microsoft Windows 2000 Professional, Server oder Advanced Server müssen installiert sein

  • 20 MB freier Festplattenspeicherplatz

  • Konnektivität zur vorhandenen Verwaltungsdatenbank

So installieren Sie die Verwaltungstools

So ermöglichen Sie die Verwaltung durch einen Proxyserver oder einen Firewall

So installieren Sie die Verwaltungstools

  1. Legen Sie die Commerce Server 2000-CD in Ihr CD-Laufwerk ein, und führen Sie das Commerce Server 2000-Setup aus. Nehmen Sie den Lizenzvertrag an, geben Sie Ihre Kundeninformationen ein, und stimmen Sie der Wahl des Standardzielordners zu.

  2. Wählen Sie im Dialogfeld Setup-Typ die Option Benutzerdefiniert aus, und klicken Sie anschließend auf Weiter.

  3. Wählen Sie im Dialogfeld Benutzerdefinierte Installation die Option Verwaltungstools, und wählen Sie anschließend die Option Nicht installiert, um die anderen Optionen anzuzeigen. Klicken Sie auf Weiter.

  4. Geben Sie im Feld SQL Server-Computer des Dialogfelds Konfiguration der Verwaltungsdatenbank den Namen des Computers an, auf welchem Sie die Verwaltungsdatenbank speichern möchten. Geben Sie den SQL Server-Benutzeranmeldenamen und das Kennwort ein, um eine Verbindung zur Verwaltungsdatenbank herzustellen. Klicken Sie anschließend auf Weiter.

  5. Geben Sie im Dialogfeld Dienstkonten den Windows-Benutzernamen und das Kennwort des Ereignisprotokollkontos ein, und klicken Sie anschließend auf Weiter.

  6. Klicken Sie im Dialogfeld Zur Installation bereit auf Installieren.

    Commerce Server-Setup installiert die Verwaltungstools auf diesem Computer. Sie können diesen Computer zum Verwalten Ihrer Commerce Server-Installation verwenden.

  7. Klicken Sie auf Fertig stellen, um das Setupprogramm zu verlassen.

Der Commerce Server-Manager ist auf Ihrem Computer installiert.

So ermöglichen Sie die Verwaltung durch einen Proxyserver oder einen Firewall

  • Öffnen Sie Anschluss 1433 zwischen SQL Server und dem Verwaltungscomputer.

SQL Server akzeptiert standardmäßig den Anschluss 1433. Anweisungen zum Ändern der Anschlussnummer finden Sie in der SQL Server-Onlinedokumentation.

Anmerkung

  • Sie können den Commerce Server-Manager zwar über einen Proxyserver oder einen Firewall verwenden, nicht jedoch den Internetdienste-Manager. Sie können browserbasierte IIS oder Microsoft Terminaldienste einsetzen, um Verwaltungsfunktionen von IIS einem Verwaltungscomputer hinzuzufügen, der sich hinter einem Firewall befindet. Weitere Informationen über die Verwendung von IIS finden Sie in der IIS 5.0-Dokumentation. Informationen über die Verwendung von Terminaldiensten finden Sie unter "Clientdienste" in der Windows 2000-Dokumentation.

Siehe auch

Installieren von Commerce Server


Verwalten der Verwaltungsdatenbank

Ihre Commerce Server 2000-Site kann aus vielen Computern bestehen. Allerdings werden die Konfigurationsdaten der Ressourcen aller Computer zentral in einer einzigen SQL Server-Verwaltungsdatenbank namens MSCS_Admin gespeichert. Diese Datenbank wird automatisch bei der ersten Installation von Commerce Server erstellt. Während der Installation müssen Sie den SQL Server-Computer für die Verwaltungsdatenbank bestimmen.

Wenn Sie Commerce Server auf zusätzlichen Computern installieren, richten Sie während der Installation die Computer auf die Verwaltungsdatenbank aus. Wenn alle Computer so eingerichtet werden, dass sie auf diese zentrale Datenbank verweisen, können Sie alle Commerce Server-Computer von einer zentralen Konsole aus verwalten.

Anmerkung

  • Eine einzige Verwaltungsdatenbank kann von allen Commerce Server-Computern verwendet werden. Alternativ können Computer ihre eigene Verwaltungsdatenbank verwenden.

In der folgenden Tabelle werden die typischen Speicherorte der Verwaltungsdatenbank in unterschiedlichen Umgebungen angezeigt.

Typ der Umgebung | Typischer Speicherort von Verwaltungsdatenbanken
Ein einziger Server, der Commerce Server, Microsoft SQL Server und alle Webkomponenten enthält | Auf dem einzigen Server
Ein oder mehrere Webserver und ein Datenbankserver | Auf dem SQL Server-Computer
Mehrschichtige Umgebung mit mehreren Servern | Auf einem der SQL Server-Computer (zur optimalen Performance getrennt vom Datawarehouse)

Dieser Abschnitt beinhaltet folgende Themen:

  • Konfigurieren der Verwaltungsdatenbank

  • Interaktion zwischen Sites und der Verwaltungsdatenbank

  • Verwalten der Sicherheit auf der Verwaltungsdatenbank


Konfigurieren der Verwaltungsdatenbank

Wenn Sie Commerce Server 2000 installieren, konfiguriert das Setupprogramm automatisch Ihren Server mit der Verbindungszeichenfolge für die Verwaltungsdatenbank. Allerdings müssen Sie möglicherweise die Verbindungszeichenfolge ändern, z. B. wenn sich der SQL Server-Benutzeranmeldename und das Kennwort für die Verwaltungsdatenbank geändert haben.

Anmerkung

  • Wenn der Commerce Server-Manager keine Verbindung zur Verwaltungsdatenbank herstellen kann, wird der Stammknoten für den Commerce Server-Manager im Bereichsausschnitt der Microsoft Management Console (MMC) angezeigt. Der Rest der Commerce Server-Hierarchie wird jedoch nicht angezeigt. Sie müssen den Commerce Server-Manager konfigurieren, um die korrekte Verbindungszeichenfolge bereitzustellen.

So konfigurieren Sie den Commerce Server-Manager

  1. Klicken Sie mit der rechten Maustaste auf Commerce Server-Manager, und klicken Sie dann auf Eigenschaften. Das Dialogfeld Commerce Server-Manager-Eigenschaften wird angezeigt.

  2. Klicken Sie auf der Registerkarte Verwaltungsdatenbank auf Ändern. Das Dialogfeld Datenverknüpfungseigenschaften wird angezeigt.

  3. Sobald Sie die notwendigen Änderungen im Dialogfeld Datenverknüpfungseigenschaften vorgenommen haben, klicken Sie auf OK.

    Anmerkung

    • Wenn Sie weitere Informationen über das vollständige Ausfüllen des Dialogfelds Datenverknüpfungseigenschaften benötigen, klicken Sie im Dialogfeld Datenverknüpfungseigenschaften auf Hilfe. Damit öffnen Sie die Microsoft Data Link-Hilfedatei.

Siehe auch

Einrichten der Datenbankserver

Sichern der Site

Problembehandlung bei Commerce Server


Interaktion zwischen Sites und der Verwaltungsdatenbank

Der Zugriff auf die Verwaltungsdatenbank wird über drei COM-Objekte gewährleistet: SiteConfig, GlobalConfig und SiteConfigReadOnly. In der folgenden Abbildung wird dargestellt, wie die Kommunikation zwischen Sites und der Verwaltungsdatenbank durch diese Config-Objekte vereinfacht wird.

Aktualisierung der Verwaltungsdatenbank mithilfe von Config-Objekten
Anwendungen
<Computername>
/RetailBusinessDesk
<Computername> /Retail
Anwendungen
Anwendungen
Web-seiten
Web-seiten
Config-Objekte
Site 2
Site 1
Verwaltungsdatenbank:
SCS_Admin
Site 2
Site 1

Die Config-Objekte schreiben Daten in die Verwaltungsdatenbank. Config-Objekte erhalten aber auch Daten von der Datenbank, die dann von den Anwendungen verwendet werden. Informationen über das Programmieren von Config-Objekten finden Sie in der Programmierreferenz.

Siehe auch

Einrichten der Serverplattformen

Sichern der Site

Verwalten der Sicherheit auf der Verwaltungsdatenbank


Verwalten der Sicherheit auf der Verwaltungsdatenbank

Die Verbindungszeichenfolge für die Verwaltungsdatenbank verwendet einen Microsoft SQL Server-Benutzeranmeldenamen und ein Kennwort.

Während der Installation von Commerce Server werden Sie vom Setupprogramm zur Eingabe eines vorhandenen SQL Server-Benutzeranmeldenamens und eines Kennworts aufgefordert. Setup benötigt diese, um die Verwaltungsdatenbank auf dem SQL Server zu erstellen bzw. eine Verbindung zur Datenbank herzustellen, sofern diese bereits existiert.

Nach dem Erstellen der Verwaltungsdatenbank können Sie mit Microsoft SQL Server Enterprise Manager den SQL Server-Benutzeranmeldenamen und das Kennwort für die Verwaltungsdatenbank ändern. Wenn Sie eine andere SQL Server-Anmeldung verwenden möchten, um vom Commerce Server-Computer aus eine Verbindung zur Verwaltungsdatenbank herzustellen, müssen Sie den Commerce Server-Manager zum Ändern der Verbindungszeichenfolge zur Datenbank verwenden.

Verwenden Sie aus Sicherheitsgründen nicht die Systemadministratoranmeldung für den Zugriff auf die Verwaltungsdatenbank. Erstellen Sie stattdessen mit SQL Server Enterprise Manager für die Verwaltungsdatenbank eine neue Anmeldung und einen neuen Benutzer.

So ändern Sie den SQL Server-Benutzeranmeldenamen und das Kennwort für die Verwaltungsdatenbank

  1. Klicken Sie mit der rechten Maustaste auf Commerce Server-Manager, und klicken Sie anschließend auf Eigenschaften. Das Dialogfeld Commerce Server-Manager-Eigenschaften wird angezeigt.

  2. Klicken Sie auf der Registerkarte Verwaltungsdatenbank auf Ändern. Das Dialogfeld Datenverknüpfungseigenschaften wird angezeigt.

  3. Sobald Sie die notwendigen Änderungen im Dialogfeld Datenverknüpfungseigenschaften vorgenommen haben, klicken Sie auf OK.

    Anmerkung

    • Wenn Sie weitere Informationen über das vollständige Ausfüllen des Dialogfelds Datenverknüpfungseigenschaften benötigen, klicken Sie im Dialogfeld Datenverknüpfungseigenschaften auf Hilfe. Damit öffnen Sie die Microsoft Data Link-Hilfedatei.

Siehe auch

Sichern der Site

Verwalten von Commerce Server


Verwalten von Commerce-Ressourcen

Es gibt zwei Ressourcentypen: globale Ressourcen und Siteressourcen. Drittanbieter können benutzerdefinierte globale Ressourcen und Siteressourcen für die Arbeit mit Commerce Server entwickeln. Führen Sie die Anleitungen dieses Abschnitts zum Installieren, Hinzufügen und Konfigurieren von Commerce Server-Ressourcen durch.

Dieser Abschnitt beinhaltet folgende Themen:

  • Installieren und Deinstallieren von globalen Ressourcen . Beschreibt, wie eine globale Ressource installiert und deinstalliert wird.

  • Hinzufügen eines globalen Ressourcenzeigers zu einer Site . Beschreibt, wie ein globaler Ressourcenzeiger einer Site hinzugefügt wird.

  • Hinzufügen einer Ressource zu einer Site . Beschreibt, wie eine Ressource einer Site hinzugefügt wird.

  • Konfigurieren einer globalen Ressource . Beschreibt, wie eine globale Ressource konfiguriert wird.

  • Konfigurieren einer Siteressource . Beschreibt, wie eine Siteressource konfiguriert wird.

  • Konfigurieren der Eigenschaften der Anwendungsstandardkonfigurations-Ressource . Beschreibt, wie die Ressource für die Anwendungsstandardkonfiguration konfiguriert wird.

  • Ändern des Dienstkontos oder des Kennworts . Beschreibt, wie ein Konto oder ein Kennwort für den Vorhersagedienst, Direct Mailer, die Ereignisprotokollierung und den Listen-Manager geändert wird.

  • Löschen einer Ressource aus einer Site . Beschreibt, wie eine Ressource von einer Site gelöscht wird.


Installieren und Deinstallieren von globalen Ressourcen

Sie verwenden das Programm Microsoft Commerce Server 2000-Setup zum Installieren bzw. Deinstallieren des Vorhersagedienstes und des Direct Mailer, zwei der globalen Ressourcen in Commerce Server. Andere globale Ressourcen werden während des Vorgangs des Entpackens erstellt.

Nachdem Sie den Vorhersagedienst und Direct Mailer installiert haben, müssen Sie diese Ressourcen entpacken, sodass die Site diese verwenden kann. Wenn Sie eine Anwendung entpacken, stellen Sie die globalen Ressourcenzeiger der Site so ein, dass sie auf den Vorhersagedienst und Direct Mailer zeigen. Anweisungen zum Hinzufügen und Löschen von globalen Ressourcenzeigern zu bzw. aus einer Site finden Sie unter Hinzufügen eines globalen Ressourcenzeigers zu einer Site und Löschen einer Ressource aus einer Site.

Weitere Informationen über das Installieren und Bereitstellen des Vorhersagedienstes und des Direct Mailer finden Sie unter Bereitstellen der Site.

Anmerkung

  • In der ersten Version von Commerce Server 2000 ist die Installation von Direct Mailer auf einem virtuellen Cluster von SQL Server nicht möglich. Installieren Sie Direct Mailer auf einem physischen Knoten des virtuellen Clusters des SQL Servers, und verwenden Sie dabei den Namen des physischen Computers sowie eine SQL Server-Instanz, die sich von der virtuellen Instanz unterscheidet.

So installieren Sie den Vorhersagedienst oder Direct Mailer

  1. Legen Sie die Commerce Server 2000-CD ein, und führen Sie das Commerce Server 2000-Setup aus. Nehmen Sie den Lizenzvertrag an, geben Sie Ihre Kundeninformationen ein, und wählen Sie einen Zielordner aus.

  2. Wählen Sie im Dialogfeld Setup-Typ die Option Benutzerdefiniert (oder die Option Ändern, wenn Sie Commerce Server bereits auf Ihrem Computer installiert haben). Klicken Sie anschließend auf Weiter.

  3. Wählen Sie im Dialogfeld Benutzerdefinierte Installation unterhalb des Ordners Laufzeitobjekte die Optionen Vorhersagedienst oder Direct Mailer-Dienst. Wählen Sie anschließend die Option Nicht installiert, um die weiteren Optionen anzuzeigen. Klicken Sie auf Weiter.

  4. Geben Sie im Eingabefeld SQL Server-Computer im Dialogfeld Konfiguration der Direct Mailer-Datenbank den Namen des Computers ein. Geben Sie den SQL Server-Benutzeranmeldenamen und das Kennwort ein, wenn Sie die Direct Mailer-Datenbank erstellen. Klicken Sie anschließend auf Weiter.

  5. Geben Sie im Dialogfeld Dienstkonten den Windows-Benutzernamen und das Kennwort des Kontos ein, über das die Dienste ausgeführt werden. Klicken Sie anschließend auf Weiter.

    Anmerkung

    • Verwenden Sie ein dauerhaftes Konto. Wenn dieses Konto zu einem späteren Zeitpunkt deaktiviert wird oder das Kennwort geändert wird, hört Commerce Server auf zu arbeiten. Anweisungen zum Ändern des Dienstkontos oder des Kennworts finden Sie unter Ändern des Dienstkontos oder des Kennworts.
  6. Klicken Sie im Dialogfeld Zur Installation bereit auf Installieren.

    Commerce Server-Setup installiert den Vorhersagedienst und/oder Direct Mailer auf dem Computer.

  7. Klicken Sie auf Fertig stellen, um das Setupprogramm zu verlassen.

So deinstallieren Sie den Vorhersagedienst oder Direct Mailer

  1. Legen Sie die Commerce Server 2000-CD in Ihr CD-Laufwerk ein, und führen Sie das Commerce Server 2000-Setup aus. Nehmen Sie den Lizenzvertrag an, geben Sie Ihre Kundeninformationen ein, und stimmen Sie der Wahl des Standardzielordners zu.

  2. Wählen Sie im Dialogfeld Setup-Typ die Option Ändern aus, und klicken Sie anschließend auf Weiter.

  3. Überprüfen Sie im Dialogfeld Benutzerdefinierte Installation, dass die zu entfernende Funktion, also Vorhersagedienst oder Direct Mailer-Dienst, nicht ausgewählt ist (ein X im Kontrollkästchen bedeutet, dass Sie die Funktion nicht auswählen). Klicken Sie auf Weiter.

  4. Klicken Sie im Dialogfeld Zur Installation bereit auf Installieren.

    Commerce Server-Setup entfernt den Vorhersagedienst und/oder Direct Mailer vom Computer.

  5. Klicken Sie auf Fertig stellen, um das Setupprogramm zu verlassen.

Siehe auch

Bereitstellen der Site

Hinzufügen eines globalen Ressourcenzeigers zu einer Site

Löschen einer Ressource aus einer Site

Installieren von Commerce Server

Deinstallieren von Commerce Server


Hinzufügen eines globalen Ressourcenzeigers zu einer Site

Nachdem Sie das Setupprogramm von Commerce Server 2000 zum Installieren einer globalen Ressource verwendet haben, können Sie einen Zeiger einer Ressource in jeder Site Ihrer Commerce Server-Verwaltungsdatenbank hinzufügen. Um einen globalen Ressourcenzeiger einer Site hinzuzufügen, entpacken Sie den globalen Ressourcenzeiger aus einer Commerce Server Site Packager-Datei.

Beispiel: Nachdem Sie den Vorhersagedienst und Direct Mailer installiert haben, entpacken Sie eine Site, die die Vohersagedienst- und Direct Mailer-Ressourcen enthält. Wenn Sie eine Site entpacken, stellen Sie die globalen Ressourcenzeiger der Site so ein, dass sie auf den Vorhersagedienst und Direct Mailer zeigen.

Anmerkung

  • Bevor Sie diesen Schritt durchführen, müssen Sie eine Paketdatei erstellen oder ein Lösungssitepaket verwenden, das den globalen Ressourcenzeiger enthält, den Sie Ihrer Site hinzufügen möchten. Anweisungen zum Erstellen eines Pakets finden Sie unter Verwenden von Site Packager.

  • Wenn Sie die Direct Mailer-Ressource entpacken, nachdem Sie eine Commerce Server Business Desk-Anwendung entpackt und einen Business Desk Client installiert haben, müssen Sie die Internet-Informationsdienste (IIS) 5.0 auf dem Webserver, auf dem sich die Business Desk-Anwendung befindet, neu starten. Dadurch erst wird erkannt, dass Direct Mailer hinzugefügt wurde. Business Desk Clients müssen die Verbindung zur Anwendung erneut herstellen. Anweisungen zum Neustarten von IIS finden Sie unter Neustarten von IIS.

So fügen Sie einen globalen Ressourcenzeiger einer Site hinzu.

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und erweitern Sie dann die Site, die Sie verwalten möchten.

  2. Klicken Sie auf Siteressourcen, klicken Sie mit der rechten Maustaste auf Siteressourcen, zeigen Sie auf Neu und klicken Sie anschließend auf Ressource hinzufügen.

    Das Dialogfeld Öffnen wird angezeigt.

  3. Wählen Sie das Paket, das den globalen Ressourcenzeiger enthält, den Sie der Site hinzufügen möchten. Klicken Sie anschließend auf Öffnen.

    Der Commerce Server Site Packager wird gestartet.

  4. Wählen Sie im Dialogfeld Ressourcen auswählen die globale Ressource, die aus dem Feld Verfügbare Ressourcen ausgewählt werden kann, und klicken Sie dann auf Hinzufügen. Die Ressource wird im Feld Zu entpackende Ressourcen angezeigt. Klicken Sie auf Weiter.

  5. Stellen Sie im Dialogfeld Globale Ressourcenzeiger sicher, dass die Ressource auf die entsprechende globale Ressource zeigt. Sie können einige Typen neuer globaler Ressourcen auf diesem Bildschirm erstellen. Dazu wählen Sie Neue globale Ressource erstellen dann aus, wenn Sie den globalen Ressourcenzeiger zuordnen.

  6. Im Dialogfeld Datenbank-Verbindungszeichenfolgen sind die Datenbanken aufgeführt, die Site Packager erstellen wird, sowie die Server, auf denen die Datenbanken erstellt werden.

  7. Wenn Sie eine neue Datenbank für Ihre globale Ressource erstellen müssen, klicken Sie auf Neue Datenbank.

    Geben Sie im Eingabefeld SQL Server-Computer den Namen des Computers ein, der die Datenbank enthalten wird. Geben Sie im Eingabefeld Datenbanknamen den Namen ein, den die Datenbank erhalten soll. In die übrigen Eingabefelder geben Sie einen SQL Server-Benutzeranmeldenamen und ein Kennwort ein. Klicken Sie dann auf Datenbank erstellen.

  8. Wenn Sie zum Dialogfeld Datenbank-Verbindungszeichenfolgen zurückkehren, wählen Sie eine Verbindungszeichenfolge und klicken anschließend auf Ändern.

  9. Nehmen Sie im Dialogfeld Datenverknüpfungseigenschaften die notwendigen Änderungen vor, und klicken Sie auf OK.

    Anmerkung

    • Wenn Sie weitere Informationen über das vollständige Ausfüllen des Dialogfelds Datenverknüpfungseigenschaften benötigen, klicken Sie im Dialogfeld Datenverknüpfungseigenschaften auf Hilfe. Damit öffnen Sie die Microsoft Data Link-Hilfedatei.
  10. Klicken Sie auf Weiter.

  11. Sehen Sie sich im Dialogfeld Das Entpacken ist abgeschlossen die Protokolldatei des Entpackungsvorgangs an, und klicken Sie dann auf Fertig stellen.

Der globale Ressourcenzeiger wird unter der Site im Commerce Server-Manager angezeigt.

Siehe auch

Grundlagen der Verwaltung

Verwenden von Site Packager

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern

Beispiel B: Installation auf einer Konfiguration mit drei Computern ohne Cluster

Löschen einer Ressource aus einer Site

Installieren von Commerce Server


Hinzufügen einer Ressource zu einer Site

Um eine Ressource einer Site hinzuzufügen, entpacken Sie die Ressource aus einer Paketdatei.

Anmerkung

  • Bevor Sie diesen Schritt durchführen, müssen Sie eine Paketdatei erstellen oder ein Lösungssitepaket verwenden. Dieses muss die Ressource enthalten, die Sie Ihrer Site hinzufügen möchten. Anweisungen zum Packen einer Ressource und zur Erstellung einer Paketdatei finden Sie unter Verwenden von Site Packager.

  • Wenn Sie die Direct Mailer-Ressource entpacken, nachdem Sie eine Commerce Server Business Desk-Anwendung entpackt und einen Business Desk Client installiert haben, müssen Sie die Internet-Informationsdienste (IIS) 5.0 auf dem Webserver, auf dem sich die Business Desk-Anwendung befindet, neu starten. Dadurch erst wird erkannt, dass Direct Mailer hinzugefügt wurde. Business Desk Clients müssen die Verbindung zur Anwendung erneut herstellen. Anweisungen zum Neustarten von IIS finden Sie unter Neustarten von IIS.

So fügen Sie eine Siteressource hinzu

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites und schließlich die Site, die Sie verwalten möchten.

  2. Klicken Sie erst auf Siteressourcen, klicken Sie dann mit der rechten Maustaste auf Siteressourcen, zeigen Sie auf Neu und klicken Sie schließlich auf Ressource hinzufügen.

    Das Dialogfeld Öffnen wird angezeigt. Es enthält die Liste vorhandener Sitepakete.

  3. Wählen Sie das Paket, das die Ressource enthält, die Sie der Site hinzufügen möchten. Klicken Sie anschließend auf Öffnen.

    Der Commerce Server Site Packager wird gestartet.

  4. Wählen Sie im Dialogfeld Ressourcen auswählen die gewünschte Ressource aus dem Feld Verfügbare Ressourcen, und klicken Sie dann auf Hinzufügen. Die Ressource wird im Feld Zu entpackende Ressourcen angezeigt. Klicken Sie auf Weiter.

  5. Stellen Sie im Dialogfeld Globale Ressourcenzeiger sicher, dass die Ressource auf den Server zeigt, der die entsprechende globale Ressource enthält. Sie können einige Typen neuer globaler Ressourcen auf diesem Bildschirm erstellen. Dazu wählen Sie Neue globale Ressource erstellen dann aus, wenn Sie den globalen Ressourcenzeiger zuordnen.

    Site Packager listet die Eigenschaften von Verbindungszeichenfolgen globaler Ressourcen auf, die Sie neu hinzufügen. Die Eigenschaften von Verbindungszeichenfolgen werden nicht aufgelistet, wenn es sich bei der von Ihnen hinzugefügten Ressource nicht um einen globalen Ressourcenzeiger handelt.

  6. Im Dialogfeld Datenbank-Verbindungszeichenfolgen sind die Datenbanken aufgeführt, die Site Packager erstellen wird, sowie die Server, auf denen die Datenbanken erstellt werden.

  7. Wenn Sie eine neue Datenbank für Ihre globale Ressource erstellen müssen, klicken Sie auf Neue Datenbank.

    Geben Sie im Eingabefeld SQL Server-Computer den Namen des Computers ein, der die Datenbank enthalten wird. Geben Sie im Eingabefeld Datenbanknamen den Namen ein, den die Datenbank erhalten soll. In die übrigen Eingabefelder geben Sie den SQL Server-Benutzeranmeldenamen und das Kennwort ein. Klicken Sie dann auf Datenbank erstellen.

  8. Wenn Sie zum Dialogfeld Datenbank-Verbindungszeichenfolgen zurückkehren, wählen Sie eine Verbindungszeichenfolge und klicken anschließend auf Ändern.

  9. Nehmen Sie im Dialogfeld Datenverknüpfungseigenschaften die notwendigen Änderungen vor, und klicken Sie auf OK.

    Anmerkung

    • Wenn Sie weitere Informationen über das vollständige Ausfüllen des Dialogfelds Datenverknüpfungseigenschaften benötigen, klicken Sie im Dialogfeld Datenverknüpfungseigenschaften auf Hilfe. Damit öffnen Sie die Microsoft Data Link-Hilfedatei.
  10. Klicken Sie auf Weiter.

  11. Sehen Sie sich im Dialogfeld Das Entpacken ist abgeschlossen die Protokolldatei des Entpackungsvorgangs an, und klicken Sie dann auf Fertig stellen.

Die Ressource wird unterhalb der Site im Commerce Server-Manager angezeigt.

Siehe auch

Ressourcen

Verwenden von Site Packager

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern

Beispiel B: Installation auf einer Konfiguration mit drei Computern ohne Cluster

Konfigurieren einer Siteressource

Löschen einer Ressource aus einer Site


Konfigurieren einer globalen Ressource

Nach der Installation einer globalen Ressource können Sie die Eigenschaften und die von der globalen Ressource verwendeten Datenbank-Verbindungszeichenfolgen jederzeit ändern.

Anmerkung

  • Wenn Sie die Eigenschaften oder die Datenbank-Verbindungszeichenfolgen für eine globale Ressource mit dem Commerce Server-Manager ändern, werden Änderungen möglicherweise nicht sofort in Commerce Server Business Desk oder in den Webseiten der Anwendungen eingetragen, die die globale Ressource verwenden. Verwenden Sie zum Aktualisieren dieser Änderungen Internet-Informationsdienste (IIS) 5.0-Snap-In, um die IIS-Anwendungen von den Webservern zu entfernen, die von den Anwendungen eingesetzt werden. Anweisungen finden Sie unter Entfernen einer Anwendung aus dem Speicher.

So konfigurieren Sie eine globale Ressource

  1. Erweitern Sie erst Commerce Server-Manager und dann Globale Ressourcen.

  2. Klicken Sie mit der rechten Maustaste auf die zu konfigurierende globale Ressource, und klicken Sie dann auf Eigenschaften.

  3. Wählen Sie im Dialogfeld Eigenschaften von globaler Ressource die Registerkarte Eigenschaften zum Konfigurieren der Eigenschaften für die globale Ressource.

  4. Wählen Sie für jede zu konfigurierende Eigenschaft die jeweilige Eigenschaft. Geben Sie dann im Eingabefeld Ausgewählter Eigenschaftswert einen Wert ein.

  5. Wählen Sie die Registerkarte Verbindungszeichenfolgen, um die Verbindungszeichenfolgen für die globale Ressource zu konfigurieren. Klicken Sie dann auf Ändern. Das Dialogfeld Datenverknüpfungseigenschaften wird angezeigt.

    Anmerkung

    • Wenn Sie weitere Informationen über das vollständige Ausfüllen des Dialogfelds Datenverknüpfungseigenschaften benötigen, klicken Sie im Dialogfeld Datenverknüpfungseigenschaften auf Hilfe. Damit öffnen Sie die Microsoft Data Link-Hilfedatei.
  6. Sobald Sie die notwendigen Änderungen im Dialogfeld Datenverknüpfungseigenschaften vorgenommen haben, klicken Sie auf OK.

Die globale Ressource, die Sie gewählt haben, wird nun konfiguriert.

Anmerkung

  • Nachdem Sie einen Eigenschaftswert im Commerce Server-Manager geändert haben, müssen Sie die IIS-Anwendung der Site aus den Speichern aller Webserver entfernen, damit die Änderungen wirksam werden. Anweisungen finden Sie unter Entfernen einer Anwendung aus dem Speicher.

Siehe auch

Ressourcen

Konfigurieren einer Siteressource

Entfernen einer Anwendung aus dem Speicher


Konfigurieren einer Siteressource

Nach dem Hinzufügen einer Siteressource zu einer Site können Sie die von der Siteressource verwendeten Eigenschaften jederzeit ändern. Alle von einer Site verwendeten Siteressourcen zeigen ein Objekt auf der Siteebene an.

Anmerkung

  • Globale Ressourcen, die von einer Site verwendet werden, zeigen ein Objekt auf der Siteebene an (einen globalen Ressourcenzeiger). Jedoch ist die einzige vom Objekt angezeigte Eigenschaft ein Zeiger, der auf die zugeordnete globale Ressource verweist. Informationen über das Konfigurieren globaler Ressourcen finden Sie unter Konfigurieren einer globalen Ressource.

So konfigurieren Sie eine Siteressource

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites und schließlich die Site, die Sie verwalten möchten.

  2. Erweitern Sie Siteressourcen, klicken Sie mit der rechten Maustaste auf die zu konfigurierende Siteressource, und klicken Sie anschließend auf Eigenschaften.

  3. Wählen Sie im Dialogfeld Eigenschaften die zu konfigurierende Eigenschaft. Geben Sie dann im Eingabefeld Ausgewählter Eigenschaftswert einen Wert ein.

  4. Sobald Sie die Konfiguration der Eigenschaften für die Siteressource abgeschlossen haben, klicken Sie auf OK.

Anmerkung

  • Nachdem Sie eine Eigenschaft im Commerce Server-Manager geändert haben, müssen Sie die IIS-Anwendung der Site aus den Speichern aller Webserver entfernen, damit die Änderungen wirksam werden. Anweisungen finden Sie unter Entfernen einer Anwendung aus dem Speicher.

Siehe auch

Ressourcen

Konfigurieren einer globalen Ressource


Konfigurieren der Eigenschaften der Anwendungsstandardkonfigurations-Ressource

Die Ressource für die Anwendungsstandardkonfiguration hat Eigenschaften, die die Funktionen Ihrer Site sowie Commerce Server Business Desk beeinflussen. Beispiel: Sie verwenden z. B. die Eigenschaften der Anwendungsstandardkonfiguration, um die von Ihnen unterstützten Währungen und Zahlungsoptionen zu bestimmen, während Sie Commerce Server mit Microsoft BizTalk Server 2000 integrieren.

Informationen über das Konfigurieren der Anwendungsstandardkonfiguration zur Verwendung von BizTalk Server finden Sie unter Konfigurieren von Commerce Server für die Zusammenarbeit mit BizTalk Server. Informationen über das Lokalisieren einer Site finden Sie unter Modifying Your Site for an International Audience (englisches Thema).

So konfigurieren Sie die Ressource für die Anwendungsstandardkonfiguration.

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites und schließlich die Site, die Sie verwalten möchten.

  2. Klicken Sie mit der rechten Maustaste auf Anwendungsstandardkonfiguration und dann auf Eigenschaften.

  3. Führen Sie auf der Registerkarte Eigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Artikelumleitungsoptionen hinzufügen | Bestimmen der Sitefunktionen, die zur Verfügung stehen, wenn ein Benutzer ein Produkt zum Warenkorb hinzufügt. Eingeben von 1 zum Anzeigen der aktuellen Produktseite. Eingeben von 0 zur Weiterleitung zum Warenkorb.
    Adressbuchoptionen Festlegen, ob die Site Adressbuchoptionen unterstützen soll.

    Eingeben von 0, um das Adressbuch zu deaktivieren.

    Eingeben von 1, um das Adressbuch schreibgeschützt zu aktivieren. Wenn Sie ein vordefiniertes Adressbuch haben, sollten Sie diese Option wählen.

    Eingeben von 2, um das Adressbuch mit Schreib- und Lesezugriff zu aktivieren, sodass Benutzer Adressen hinzufügen bzw. ändern können.
    Timeout des Authentifizierungstickets des AuthManagers | Eingeben der Anzahl von Minuten, nach denen ein Ticket abläuft. Diese Eigenschaft wird nur verwendet, wenn Sie Ihre Site basierend auf einer Commerce Server-Lösungssite entwickeln.
    BizTalk-Katalogdokumenttyp | Eingeben eines Dokumentdefinitionsnamens, der von BizTalk Server für Kataloge benötigt wird (z. B. CatalogTransferDoc).
    BizTalk-Optionen | Eingeben von 1, um die Integration mit BizTalk Server zum Austausch von Dokumenten zu aktivieren. Eingeben von 0, um die Integration zu deaktivieren.
    BizTalk-Auftragsdokumenttyp | Eingeben eines Dokumentdefinitionsnamens, der von BizTalk Server für Aufträge benötigt wird (z. B. PurchaseOrder).
    BizTalk-Quellorganisationsqualifizierer | Eingeben des Aliasqualifizierers für die Site in BizTalk Server (z. B. MyCompany).
    Wert des BizTalk-Quellorganisationsqualifizierers | Eingeben des Aliaswertes für die Site in BizTalk Server (z. B. Sender).
    BizTalk-Sendetyp | Eingeben von 1 um Dokumente asynchron an BizTalk Server zu senden.
    Cookiepfadkorrektur-Optionen | Eingeben von 1, um die anwendungsbasierte Korrektur bzw. von 2, um die filterbasierte Korrektur zu aktivieren.
    Währung: Code für alternative Währung | Eingeben des ISO 4217-Codes für die alternative Währung.
    Währung: Umrechnungskurs für alternative Währung | Eingeben des Kurses, der für die Umrechnung von der Basiswährung zur alternativen Währung verwendet wird.
    Währung: Gebietsschema für alternative Währung | Eingeben des Gebietsschemas für die alternative Währung (1031°= Deutsch, 1033°= Englisch, 1034 = Spanisch, 1036 = Französisch, 1041 = Japanisch).
    Währung: Optionen für alternative Währung | Eingeben von 1, um die gleichzeitige Anzeige zweier Währungen zu aktivieren; Eingeben von 0, um dieses Feature zu deaktivieren.
    Währung: Symbol für alternative Währung | Eingeben des Symbols der Währung bei Verwendung einer alternativen Währung.
    Währung: Code für Basiswährung | Eingeben des ISO 4217-Codes für die Basiswährung.
    Währung: Gebietsschema für die Basiswährung | Eingeben des Gebietsschemas für die Basiswährung (1031°= Deutsch, 1033°= Englisch, 1034 = Spanisch, 1036 = Französisch, 1041 = Japanisch).
    Währung: Symbol für Basiswährung | Eingeben des Symbols für die Basiswährung.
    Optionen für die Anzeigenreihenfolge der Währungen | Eingeben von 0 bei Verwenden einer alternativen Währung, um zunächst die Basiswährung anzuzeigen; eingeben von 1, wenn die alternative Währung zuerst angezeigt werden soll.
    Optionen für delegierte Verwaltung Eingeben von 1, um Partnerservices zu aktivieren; eingeben von 0, um dieses Feature zu deaktivieren.

    Zum Erstellen eines delegierten Administrators muss im Benutzermodul in Commerce Server Business Desk ein Benutzer erstellt werden. Die Flag für die Partnerservicerolle muss auf Administrator eingestellt sein. Verknüpfen Sie den Benutzer dann mit einer bestimmten Organisation.

    Delegierte Administratoren verfügen auf ihrer Site über einen Link zu den Partnerservices. Partnerservices ermöglichen ihnen, bestimmte Aufgaben für ihre Organisationen durchzuführen wie z. B. das Verwalten von Benutzern und das Überprüfen von Bestellungen.
    Formularanmeldeoptionen Legt fest, wann sich ein Benutzer bei Ihrer Site anmelden muss. Geben Sie hierzu Folgendes ein:

    0 = Anmeldung deaktivieren. Benutzer können nur als Gast auf die Site zugreifen.

    1 = Erforderlich beim Betreten der Site.

    2 = Optional beim Betreten der Site.

    5 = Erforderlich zum Zeitpunkt des Kaufes.

    6 = Vollständig optional.

    7 = Erforderliche IIS-Authentifizierung.

    Diese Eigenschaft wird nur verwendet, wenn Sie Ihre Site basierend auf einer Commerce Server-Lösungssite entwickeln.
    Hostnamenkorrektur-Optionen | Eingeben von 1, um die Hostnamenkorrektur zu aktivieren; eingeben von 0, um dieses Feature zu deaktivieren.
    Seitencodierungs-Zeichensatz | Bestimmen des Seitencodierungs-Zeichensatzes für diese Site, beispielsweise Windows - 1252.
    Zahlungsoptionen | Eingeben von 1, wenn Benutzer ihre Bestellungen mit Kreditkarte bezahlen; eingeben von 4, wenn das Konto der Benutzer belastet werden soll; eingeben von 5, wenn beide Optionen unterstützt werden.
    Site-Standardgebietsschema | Eingeben des Gebietsschemas für diese Site (1031°= Deutsch, 1033°= Englisch, 1034 = Spanisch, 1036 = Französisch, 1041 = Japanisch).
    Sitedatenschutz-Optionen Eingeben von 1, um Profile anonymer Benutzer zu erstellen; eingeben von 2, um Profile anonymer Benutzer zu erstellen und die Besuche anonymer Besucher zu überwachen.

    Diese Eigenschaft wird nur verwendet, wenn Sie Ihre Site basierend auf einer Commerce Server-Lösungssite entwickeln.
    Siteregistrierungsoptionen | Eingeben von 1, um die Selbstregistrierung zu aktivieren; eingeben von 2, um dieses Feature zu deaktivieren. Diese Eigenschaft wird nur verwendet, wenn Sie Ihre Site basierend auf einer Commerce Server-Lösungssite entwickeln.
    Siteticketoptionen | Eingeben von 1, um das Benutzerticket im URL zu platzieren; eingeben von 2, um das Benutzerticket in einem Cookie zu platzieren. Diese Eigenschaft wird nur verwendet, wenn Sie Ihre Site basierend auf einer Commerce Server-Lösungssite entwickeln.
    SMTP-Servername | Eingeben des Computernamens des SMTP (Simple Mail Transfer Protocol)-Servers.
    Maßeinheit für Gewicht | Maßeinheit für die Berechnung der Produktversandkosten.

  4. Klicken Sie auf der Registerkarte Verbindungszeichenfolgen auf Ändern, um die Verbindungszeichenfolge zur BizTalk Interchange Manager-Datenbank zu bestimmen, welche Nachrichten speichert, die aus Commerce Server versendet wurden.

  5. Klicken Sie auf OK.

Anmerkung

  • Nachdem Sie eine Eigenschaft im Commerce Server-Manager geändert haben, müssen Sie die IIS-Anwendung der Site aus den Speichern aller Webserver entfernen, damit die Änderungen wirksam werden. Anweisungen finden Sie unter Entfernen einer Anwendung aus dem Speicher.

  • Informationen darüber, wie die Lösungssites die Authentifizierungseigenschaften der Anwendungsstandardkonfiguration verwenden, finden Sie im Commerce Server 2000 Resource Kit.

Siehe auch

Ressourcen

Verwenden von BizTalk Server und Commerce Server

Verwalten der CS-Authentifizierungsressource

Integrating with BizTalk Server (englisches Thema)

Konfigurieren von Commerce Server für die Zusammenarbeit mit BizTalk Server

Modifying Your Site for an International Audience (englisches Thema)


Ändern des Dienstkontos oder des Kennworts

Bei der Installation von Commerce Server bestimmen Sie Windows-Benutzernamen und -Kennwörter für die Commerce Server-Dienste: Listen-Manager, Direct Mailer, Vorhersagedienst und ein Windows-Konto für die Ereignisprotokollierung. Wenn ein Kennwort für eines der Windows-Konten geändert wird bzw. Sie eines der verwendeten Windows-Konten ändern möchten, müssen Sie die Änderung in der Windows-Dienstekonsole bestimmen. Dort müssen das Konto und das Kennwort für jeden der drei Dienste aktualisiert werden.

Zum Ändern des Kontos für die Ereignisprotokollierung müssen Sie das Komponentendienste-Snap-In verwenden.

So ändern Sie ein Dienstkonto oder ein Kennwort

So ändern Sie ein Dienstkonto oder ein Kennwort für die Ereignisprotokollierung

So ändern Sie ein Dienstkonto oder ein Kennwort

  1. Klicken Sie auf Start, zeigen Sie auf Programme und dann auf Verwaltungstools. Klicken Sie anschließend auf Dienste.

  2. Klicken Sie mit der rechten Maustaste im Fenster Dienste auf den Commerce Server-Dienst, dessen Kontonamen oder Kennwort Sie ändern möchten. Klicken Sie dann auf Eigenschaften.

  3. Klicken Sie auf die Registerkarte Anmelden.

  4. Führen Sie auf der Registerkarte Anmelden folgende Schritte aus:
    Option/Funktion

            Zweck

    Dieses Konto Eingeben des Benutzernamens des Windows-Kontos, den Sie zur Authentifizierung dieses Dienstes verwenden möchten. Sie müssen den Namen in der folgenden Form eingeben:

    Domäne_Name\Benutzer_Name
    Kennwort | Eingeben des Kennwortes für dieses Benutzerkonto.
    Kennwort bestätigen | Eingeben der Kennwortbestätigung für dieses Benutzerkonto.

  5. Klicken Sie auf OK.

So ändern Sie das Konto oder das Kennwort für die Ereignisprotokollierung

  1. Klicken Sie auf Start, zeigen Sie auf Programme und dann auf Verwaltungstools. Klicken Sie anschließend auf Komponentendienste.

  2. Erweitern Sie erst Komponentendienste, dann Computer und dann Mein Arbeitsplatz. Erweitern Sie anschließend die COM+-Anwendung.

  3. Klicken Sie mit der rechten Maustaste auf Commerce-Ereignisprotokollierung, und klicken Sie anschließend auf Eigenschaften.

  4. Geben Sie auf der Registerkarte Identität den Benutzernamen und das Kennwort ein. Klicken Sie dann auf OK.


Löschen einer Ressource aus einer Site

Wenn eine Ressource von keiner Anwendung verwendet wird, können Sie die Ressource aus Ihrer Site löschen.

In der folgenden Tabelle werden die Ergebnisse eines solchen Löschvorgangs aufgeführt.

Ressource | Was wird gelöscht?
Anwendungsstandardkonfiguration | Löscht die Ressource aus der Verwaltungsdatenbank.
Profile | Löscht die Ressource aus der Verwaltungsdatenbank. Daten aus der Profildatenbank werden nicht gelöscht.
Kampagnen | Führt Schema_drop.sql aus, wodurch gespeicherte Prozeduren, Trigger und Dropdown-Tabellen gelöscht werden. Außerdem wird die Ressource aus der Verwaltungsdatenbank gelöscht.
CS-Authentifizierung | Löscht die Sitereferenz auf einer globalen CS-Authentifizierungsressource aus der Verwaltungsdatenbank.
Datawarehouse | Löscht die Sitereferenz auf einer globalen Datawarehouse-Ressource aus der Verwaltungsdatenbank.
Commerce Server Direct Mailer | Löscht die Sitereferenz auf einer globalen Ressource für Direct Mailer aus der Verwaltungsdatenbank.
Vorhersagedienst | Löscht die Sitereferenz auf einer globalen Ressource für den Vorhersagedienst aus der Verwaltungsdatenbank.
Produktkatalog | Löscht die Ressource aus der Verwaltungsdatenbank.
Transaktionen | Löscht die Ressource aus der Verwaltungsdatenbank.
Transaktionskonfiguration | Löscht die Ressource aus der Verwaltungsdatenbank.

So löschen Sie eine Ressource aus einer Site

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites und schließlich die Site, die Sie verwalten möchten.

  2. Klicken Sie mit der rechten Maustaste auf die zu löschende Ressource, und klicken Sie dann auf Löschen.

Daten für die Ressource werden aus der Verwaltungsdatenbank gelöscht. Das Ressourcenobjekt wird im Commerce Server-Manager unterhalb der Site nicht mehr angezeigt. Wenn Sie den globalen Ressourcenzeiger gelöscht haben, ist die globale Ressource, auf welche gezeigt wurde, immer noch für solche Sites verfügbar, die diese Ressource verwenden.

Siehe auch

Ressourcen

Hinzufügen einer Ressource zu einer Site


Verwalten von Commerce-Sites

Der im Commerce Server-Manager angezeigte E-Commerce-Sites-Container wird beim Ausführen des Setupprogramms erstellt. Siteinstanzen werden für jede Site aus einem Paket erstellt und als Unterordner innerhalb des Containers angezeigt. Sie fügen Sites und Siteressourcen mithilfe von Commerce Server-Manager und Commerce Server Site Packager hinzu.

Dieser Abschnitt beinhaltet folgende Themen:

  • Hinzufügen einer Site. Beschreibt, wie Commerce Server eine Site hinzugefügt wird.

  • Löschen einer Site. Beschreibt, wie eine Site aus Commerce Server gelöscht wird.


Hinzufügen einer Site

Nachdem Sie Microsoft Commerce Server 2000 auf einem Computer installiert haben, können Sie Commerce Server eine Site hinzufügen.

Anmerkung

  • Bevor Sie diesen Schritt durchführen, müssen Sie eine Paketdatei erstellen, die die Site enthält, die Sie hinzufügen möchten. Sie können aber auch eines der Lösungssitepakete verwenden. Anweisungen zum Packen einer Site finden Sie unter Verwenden von Site Packager.

In den folgenden Anweisungen wird davon ausgegangen, dass der angemeldete Benutzer über die entsprechenden Berechtigungen zum Kopieren von Dateien in die Zielordner verfügt.

So fügen Sie eine Site hinzu

  1. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft Commerce Server 2000. Klicken Sie anschließend auf Commerce Site Packager.

    Der Bildschirm Commerce Server Site Packager wird angezeigt.

  2. Wählen Sie die Option Aus Paketdatei entpacken, und klicken Sie dann auf Weiter.

  3. Klicken Sie im Dialogfeld Entpacken neben dem Feld Zu entpackende Datei auf die Schaltfläche Suchen. Der Bildschirm Öffnen wird angezeigt.

  4. Navigieren Sie im Dialogfeld Öffnen zu dem Ordner, der die zu entpackende Datei enthält. Wählen Sie die Datei, und klicken Sie dann auf Öffnen.

  5. Sofern Sie alle Datenbankdateien auf einen SQL Server-Computer legen, wählen Sie die Option Schnelles Entpacken, sobald Sie zum Dialogfeld Entpacken zurückgekehrt sind . Wenn Sie diese Option wählen, klicken Sie auf Weiter und gehen Sie weiter zu Schritt 13.

    Eine anderen Variante besteht darin, die Option Benutzerdefiniertes Entpacken zu wählen, um alle Entpackoptionen anzupassen. Klicken Sie auf Weiter.

  6. Wählen Sie im Dialogfeld Entpackmethode die Option Neue Site erstellen, und klicken Sie anschließend auf Weiter.

  7. Geben Sie im Dialogfeld Sitename den Namen der Site ein, und klicken Sie dann auf Weiter.

  8. Wählen Sie Dialogfeld Ressourcen auswählen die Elemente, die Sie installieren möchten, und klicken Sie dann auf Weiter.

  9. Klicken Sie im Dialogfeld Globale Ressourcenzeiger auf Weiter.

    Sie verwenden diesen Bildschirm zur Zuordnung vorhandener globaler Ressourcen bzw. zum Erstellen neuer Ressourcen. Dieses Dialogfeld wird auch verwendet, wenn Sie globale Ressourcen bereits auf Ihrem Computer entpackt haben und nun globale Ressourcenzeiger in eine Site entpacken möchten, die die globalen Ressourcen verwenden wird.

  10. Im Dialogfeld Datenbank-Verbindungszeichenfolgen sind die Datenbanken aufgeführt, die Site Packager erstellen wird, sowie die Server, auf denen die Datenbanken erstellt werden. Überprüfen Sie die Datenbanken, und klicken Sie dann auf Weiter.

  11. Überprüfen Sie im Dialogfeld Anwendungen auswählen, dass die zu entpackenden Anwendungen ausgewählt sind. Klicken Sie dann auf Weiter.

  12. Überprüfen Sie dann im Dialogfeld Wählen Sie die IIS-Websites und die virtuellen Verzeichnisse aus, ob die IIS-Anwendungspfade und virtuellen Verzeichnisse die Richtigen sind. Klicken Sie dann auf Weiter.

  13. Wenn das Dialogfeld Datawarehouse angezeigt wird, klicken Sie auf OK.

  14. Wenn das erste Dialogfeld Profilsystem angezeigt wird, klicken Sie auf Weiter und dann im zweiten Dialogfeld Profilsystem auf OK.

  15. Sehen Sie sich im Dialogfeld Das Entpacken ist abgeschlossen die Liste der erstellten SQL-Datenbanken und der IIS-Anwendungen an. Klicken Sie auf die Option Protokolldatei anzeigen, um die Liste der Ereignisse in der Pup-Protokolldatei anzusehen.

  16. Klicken Sie auf Fertig stellen, um Site Packager zu schließen.

Siehe auch

Grundlagen der Verwaltung

Verwenden von Site Packager

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern

Beispiel B: Installation auf einer Konfiguration mit drei Computern ohne Cluster

Sicherung der Site

Problembehandlung bei Site Packager


Löschen einer Site

Wenn Sie eine Site löschen, werden die Sitekonfigurationsdaten aus der Verwaltungsdatenbank gelöscht. Das Löschen einer Site kann nicht rückgängig gemacht werden.

So löschen Sie eine Site

So löschen Sie die von der Site verwendeten Datenbanken

So löschen Sie OLAP-Datenbanken aus der Site

So löschen Sie die virtuellen Verzeichnisse der Site

So löschen Sie die Siteordner und -dateien

So löschen Sie Direct Mailer-Aufträge

So löschen Sie eine Site

  1. Erweitern Sie erst Commerce Server-Manager und dann Commerce-Sites.

  2. Klicken Sie mit der rechten Maustaste auf die zu löschende Site, und klicken Sie dann auf Löschen.

So löschen Sie die von der Site verwendeten Datenbanken

  1. Klicken Sie auf Start, zeigen Sie auf Programme, und zeigen Sie auf Microsoft SQL Server oder Microsoft SQL Server 7.0 (abhängig von der installierten Datenbank). Klicken Sie anschließend auf Enterprise Manager.

    Anmerkung

    • Stellen Sie in SQL Server Enterprise Manager sicher, dass SQL Server ausgeführt wird (das Symbol im Enterprise Manager-Fenster ist grün). Falls SQL Server nicht ausgeführt wird, klicken Sie mit der rechten Maustaste auf den SQL Server-Computer und dann auf Start.
  2. Erweitern Sie die Knoten auf den folgenden Pfad: \Microsoft SQL Servers\SQL Server Group\SQL Server Name\Databases.

  3. Klicken Sie mit der rechten Maustaste auf die zu löschende Datenbank. Klicken Sie auf die Option Alle Aufgaben und dann auf Datenbank trennen. Klicken Sie im Dialogfeld Datenbank trennen auf die Option Löschen und klicken Sie anschließend auf OK. Wiederholen Sie diesen Schritt für alle Datenbanken, die Sie löschen möchten.

    Indem Sie zuerst die Datenbanken trennen, durchtrennen Sie die Verbindungszeichenfolgen, die zu den Datenbanken bestehen.

  4. Klicken Sie mit der rechten Maustaste auf die von der Site verwendeten Datenbanken, und klicken Sie dann auf Löschen.

So löschen Sie OLAP-Datenbanken aus der Site

  1. Klicken Sie auf Start, zeigen Sie auf Programme, Microsoft SQL Server, Analysis Services, und klicken Sie dann auf Analysis-Manager.

  2. Erweitern Sie die Knoten auf den folgenden Pfad: \Analysis Servers\SQL Server Name.

  3. Klicken Sie mit der rechten Maustaste auf die zu löschende Datenbank. Klicken Sie dann auf Löschen.

  4. Klicken Sie auf Ja, um das Löschen der Ordner für die einzelnen Datenbanken zu bestätigen.

  5. Wiederholen Sie die Schritte 3 und 4 für jede Datenbank, die Sie löschen möchten.

So löschen Sie die virtuellen Verzeichnisse der Site

  1. Klicken Sie auf Start, zeigen Sie auf Verwaltungstools, und klicken Sie dann auf Internetdienste-Manager.

  2. Erweitern Sie die Knoten auf den folgenden Pfad: \Computername\IIS-Websitename.

  3. Klicken Sie mit der rechten Maustaste auf die zu löschenden virtuellen Verzeichnisse (z. B. Retail oder Supplier). Klicken Sie dann auf Löschen.

  4. Klicken Sie bei jedem zu löschenden virtuellen Verzeichnis auf Ja.

  5. Wiederholen Sie die Schritte 3 und 4 für jedes virtuelle Verzeichnis, das Sie löschen möchten.

So löschen Sie die Siteordner und -dateien

  1. Gehen Sie im Windows-Explorer zum Verzeichnis, in dem die Sitedateien installiert sind (z. B. C:\Inetpub\wwwroot).

  2. Klicken Sie mit der rechten Maustaste auf den zu löschenden Ordner. Klicken Sie dann auf Löschen.

  3. Klicken Sie bei jedem zu löschenden Ordner auf Ja.

  4. Wiederholen Sie die Schritte 2 und 3 für jeden Ordner, den Sie löschen möchten.

So löschen Sie Direct Mailer-Aufträge

  1. Klicken Sie auf Start, zeigen Sie auf Programme und dann auf Microsoft SQL Server oder Microsoft SQL Server 7.0 (abhängig von der installierten Datenbank). Klicken Sie anschließend auf Enterprise Manager.

  2. Erweitern Sie die Knoten auf den folgenden Pfad: \Microsoft SQL Servers\SQL Server Group\SQL Server Name\Management\SQL Server Agent\Jobs.

  3. Die Direct Mailer-Aufträge werden im rechten Fensterausschnitt des SQL Server Enterprise Manager angezeigt.

  4. Wählen Sie die zu löschenden Direct Mailer-Aufträge, und klicken Sie dann auf der Symbolleiste auf die Schaltfläche Löschen.

Siehe auch

Deinstallieren von Commerce Server

Löschen einer Ressource aus einer Site

Löschen einer Anwendung aus einer Site

Entfernen eines Webservers aus einer Anwendung


Verwalten von Commerce-Anwendungen und Webservern

In den Themen dieses Abschnitts wird beschrieben, wie Anwendungen und Webserver hinzugefügt und verwaltet werden. Bevor Sie diese Prozeduren durchführen, müssen Sie Commerce Server installieren und eine Site entpacken.

Dieser Abschnitt beinhaltet folgende Themen:

  • Hinzufügen einer Anwendung zu einer Site . Beschreibt, wie eine Anwendung einer Site hinzugefügt wird.

  • Konfigurieren einer Anwendung . Erklärt, wie eine Anwendung konfiguriert wird.

  • Hinzufügen eines Webservers zu einer Anwendung . Erklärt, wie ein Webserver einer Anwendung hinzugefügt wird.

  • Hinzufügen eines weiteren Webservers . Erklärt, wie weitere Webserver einer Anwendung hinzugefügt werden.

  • Konfigurieren eines Webservers . Beschreibt, wie ein Webserver konfiguriert wird.

  • Umbenennen einer Anwendung . Beschreibt, wie Anwendungen in Commerce Server benannt bzw. umbenannt werden können.

  • Entfernen einer Anwendung aus dem Speicher . Erklärt, wie eine Anwendung aus dem Speicher entfernt wird.

  • Löschen einer Anwendung aus einer Site . Beschreibt, wie eine Anwendung von einer Site gelöscht wird.

  • Entfernen eines Webservers aus einer Anwendung . Beschreibt, wie ein Webserver aus einer Anwendung gelöscht wird.

  • Automatisches Hinzufügen eines Webservers . Erklärt, wie ein Webserver automatisch einer Anwendung hinzugefügt werden kann.

  • Hinzufügen anderer Anwendungen und Webserver . Erklärt, wie andere Anwendungen und Webserver hinzugefügt werden.


Hinzufügen einer Anwendung zu einer Site

Eine Anwendung ist eine Website. Eine Anwendung repräsentiert die Webadresse, auf die ein Webclient zugreift. Wenn Sie Commerce Server eine Anwendung hinzufügen, wird die Verwaltungsdatenbank mit den Konfigurationsdaten für die Anwendung aktualisiert. Wenn Sie einen Webserver zur Anwendung hinzufügen, werden ASP-Dateien (Active Server Pages) auf dem Webservercomputer installiert.

Beim Auspacken einer Commerce Server-Site werden in der Regel zwei Anwendungen installiert: Eine Anwendung für die Website, auf welche Benutzer zur Suche und zum Kaufen von Produkten zugreifen, und eine andere Anwendung für Commerce Server Business Desk zur Verwaltung dieser Site. Eine Anwendung kann nur die Ressourcen der Commerce-Site nutzen, der sie zugeordnet ist.

Eine Anwendung hat ihre eigenen Webserver. Diese liefern der ASP-Seite Inhalte für die Website. Eine Anwendung kann mehrere Webserver haben; sie hat immer mindestens einen Webserver. Sie können eine Anwendung entweder im Stammverzeichnis einer IIS-Website oder in einem virtuellen Verzeichnis beliebige Ebenen unterhalb des Stammverzeichnisses einrichten.

Anmerkung

  • Bevor Sie diese Prozedur durchführen, müssen Sie eine Paketdatei erstellen, die die Anwendung enthält, die Sie der Site hinzufügen möchten. Sie können aber auch eine der Lösungssites verwenden. Anweisungen zum Erstellen einer Paketdatei finden Sie unter Verwenden von Site Packager.

So fügen Sie einer Site eine Anwendung hinzu

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites und schließlich die Site, die Sie verwalten möchten.

  2. Klicken Sie erst auf Anwendungen, klicken Sie dann mit der rechten Maustaste auf Anwendungen, zeigen Sie auf Neu, und klicken Sie schließlich auf Anwendung hinzufügen.

    Das Dialogfeld Anwendung hinzufügen von wird angezeigt.

  3. Wählen Sie das Paket, das die Anwendungen enthält, die Sie der Site hinzufügen möchten. Klicken Sie anschließend auf Öffnen.

    Commerce Server Site Packager wird gestartet.

  4. Überprüfen Sie im Dialogfeld Anwendungen auswählen, ob die zu entpackenden Anwendungen ausgewählt sind. Klicken Sie dann auf Weiter.

  5. Überprüfen Sie dann im Dialogfeld Wählen Sie die IIS-Websites und die virtuellen Verzeichnisse aus, ob die IIS-Anwendungspfade und virtuellen Verzeichnisse die Richtigen sind. Klicken Sie dann auf Weiter.

  6. Sehen Sie sich im Dialogfeld Das Entpacken ist abgeschlossen die Liste der erstellten SQL-Datenbanken und der IIS-Anwendungen an. Klicken Sie auf die Option Protokolldatei anzeigen, um die Liste der Ereignisse anzusehen, die während der Ausführung von Site Packager aufgetreten sind.

  7. Klicken Sie auf Fertig stellen, um Site Packager zu schließen.

Nachdem Sie die Anwendung hinzugefügt haben, müssen den nichtgesicherten (bzw. gesicherten) Hostnamen Ihrer Anwendung in den Domänennamen ändern, die auf dem DNS (Domain Name System)-Server erstellt wurden, z. B. in www.microsoft.com. Weitere Informationen finden Sie unter Umbenennen einer Anwendung.

Siehe auch

Umbenennen einer Anwendung

Anwendungen

Verwenden von Site Packager

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern

Beispiel B: Installation auf einer Konfiguration mit drei Computern ohne Cluster


Konfigurieren einer Anwendung

Beim Konfigurieren einer Anwendung werden Eigenschaften bestimmt, die für alle von der Anwendung verwendeten Webserver gelten.

Wenn Sie einem Webserver eine Anwendung hinzufügen, werden einige Eigenschaften automatisch von Internet Informationsdiensten (IIS) 5.0 aufgefüllt und in der Verwaltungsdatenbank gespeichert. Wenn IIS-Eigenschaften geändert werden, müssen Sie die Verwaltungsdatenbank mit der IIS-Metabasis synchronisieren: Entweder aktualisieren Sie die neuen Eigenschaften im Commerce Server-Manager manuell, oder Sie klicken im Dialogfeld Eigenschaften der Anwendung auf der Registerkarte Webserver auf die Schaltfläche Werte synchronisieren.

Wichtig

  • Wenn Sie auf die Schaltfläche Werte synchronisieren klicken, synchronisiert Commerce Server die Eigenschaften auf der Anwendungsebene und die Eigenschaften aller Webserverobjekte unterhalb der Anwendungsebene. Bei der Synchronisierung der Eigenschaften auf der Anwendungsebene (TCP- und SSL-Anschluss) bezieht sich Commerce Server auf die Werte des ersten Webservers. Es wird davon ausgegangen, dass alle Webserver gleich konfiguriert sind, was bei Servern einer Webfarm der Fall sein muss.

Informationen über das Ändern des nichtgesicherten (bzw. gesicherten) Hostnamens Ihrer Anwendung in den Domänennamen, die auf dem DNS (Domain Name System)-Server erstellt wurden (z. B. www.microsoft.com), finden Sie unter Umbenennen einer Anwendung.

So konfigurieren Sie eine Anwendung

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und klicken Sie dann auf die Site, die Sie verwalten möchten.

  2. Erweitern Sie Anwendungen, klicken Sie mit der rechten Maustaste auf die zu konfigurierende Anwendung, und klicken Sie anschließend auf die Option Eigenschaften.

  3. Führen Sie auf der Registerkarte Allgemein im Dialogfeld Eigenschaften von Anwendung folgende Schritte aus:
    Option/Funktion | Zweck
    Nicht sicherer Hostname Eingeben des DNS-Domänennamens zur Verwendung mit nichtgesicherten Links in Ihren Anwendungen.

    Vorsicht

    • Wenn Sie als Anschlussnummer nicht 80 verwenden, müssen Sie die von Ihnen verwendete Nummer an das Ende des nicht sicheren Hostnamens hängen (z. B. www.microsoft.com:81). Sie können die von Ihnen verwendete Anschlussnummer im Feld TCP-Anschluss auf der Registerkarte Webserver anzeigen.
    IIS-Anwendungspfad | Eingeben des Pfades zur IIS-Anwendung.
    HTTPS aktivieren | Auswählen der Eigenschaft zur Aktivierung von Links für einen sicheren HTTP-Host (SSL) in Ihren Anwendungen.
    Sicherer Hostname Eingeben des DNS-Domänennamens zur Verwendung mit gesicherten Links in Ihren Anwendungen.

    Vorsicht

    • Wenn Sie als Anschlussnummer nicht 443 verwenden, müssen Sie die von Ihnen verwendete Nummer an das Ende des sicheren Hostnamens hängen (z. B. www.microsoft.com:441). Sie können die von Ihnen verwendete Anschlussnummer im Feld SSL-Anschluss auf der Registerkarte Webserver anzeigen.
    Autocookie | Auswählen dieser Eigenschaft zur Erstellung von Cookies für anonyme Benutzer. Diese Eigenschaft wird während des Vorgangs des Entpackens eingestellt. Informationen darüber, wie Sie die Authentifizierung Ihrer Site konfigurieren, finden Sie unter Verwalten der CS-Authentifizierungsressource.
    Authentifizierungsfilter Auswählen des zu verwendenden Authentifizierungsfiltertyps in der Dropdownliste.
    • Kein Filter

    • Windows-Authentifizierung

    • Benutzerdefinierte Authentifizierung

    Informationen darüber, wie Sie die Authentifizierung Ihrer Site konfigurieren, finden Sie unter Verwalten der CS-Authentifizierungsressource.
    Den Pfad des Cookies festlegen | Auswählen dieser Option, wenn Cookies durch mehrere Anwendungen gemeinsam genutzt werden sollen.
    Anzahl der freigegebenen Domänenebenen | Festlegen, über wie viele Domänenebenen Eigenschaften verfügen müssen, damit sie einen Cookie gemeinsam nutzen können. Setzen Sie z. B. den Wert auf 2, damit premier.microsoft.com und msn.microsoft.com den microsoft.com-Cookie gemeinsam nutzen.

  4. Klicken Sie auf der Registerkarte Webserver auf die Option Werte synchronisieren, um die folgenden Eigenschaften aus IIS in die Commerce Server-Verwaltungsdatenbank zu kopieren.

    Wichtig

    • Wenn Sie auf die Option Werte synchronisieren klicken, synchronisiert Commerce Server die Eigenschaften auf der Anwendungsebene und die Eigenschaften aller Webserverobjekte unterhalb der Anwendungsebene. Bei der Synchronisierung der Eigenschaften auf der Anwendungsebene (TCP- und SSL-Anschluss) bezieht Commerce Server sich auf die Werte des ersten Webservers. Es wird davon ausgegangen, dass alle Webserver gleich konfiguriert sind, was bei Servern einer Webfarm der Fall sein muss.

    Oder führen Sie folgende Schritte aus:

    Option/Funktion | Zweck
    IIS-Website | Eingeben des Namens der IIS-Website (z. B. Standardwebsite).
    TCP-Anschluss | Der Standardwert ist 80. Wenn Sie hier einen anderen Wert als 80 haben, müssen Sie diesen Wert in das Eingabefeld Nicht sicherer Hostname auf der Registerkarte Allgemein eingeben (z. B. www.microsoft.com:81).
    SSL-Anschluss | Der Standardwert ist 443. Wenn Sie hier einen anderen Wert als 443 haben, müssen Sie diesen Wert in das Eingabefeld Sicherer Hostname auf der Registerkarte Allgemein eingeben (z. B. www.microsoft.com:441).
    Lokale Domäne | Eingeben des Namens der lokalen Domäne (z. B. microsoft.com).

  5. Klicken Sie auf OK.

Anmerkung

  • Nachdem Sie eine Eigenschaft im Commerce Server-Manager geändert haben, müssen Sie die IIS-Anwendung der Site aus den Speichern aller Webserver entfernen, damit die Änderungen wirksam werden. Anweisungen finden Sie unter Entfernen einer Anwendung aus dem Speicher.

Siehe auch

Grundlagen der Verwaltung

Konfigurieren eines Webservers

Verwalten der CS-Authentifizierungsressource

Umbenennen einer Anwendung


Hinzufügen eines Webservers zu einer Anwendung

Wenn Sie einen Webserver zu einer Anwendung hinzufügen, fügen Sie die ASP-, HTM-, GIF- und andere Dateien für diese Anwendung dem Webservercomputer hinzu. Auf dem Webservercomputer müssen bereits Internet-Informationsdienste (IIS) 5.0 und Commerce Server installiert sein.

Sie können Commerce Server Site Packager verwenden, um einen Webserver zu einer Anwendung hinzuzufügen. Nachdem Sie einen Webserver einer Anwendung hinzugefügt haben, wird das Commerce-Webserverobjekt unter dem Anwendungsknoten im Commerce Server-Manager angezeigt. Das Webserverobjekt enthält die Eigenschaften, die vom Datawarehouse zum Importieren von Protokolldateien benötigt werden: Servernamen, IP-Adresse (Internet Protocol), Protokolldateipfad und Protokolldateiperiode. Diese Eigenschaften werden von IIS automatisch ausgefüllt, wenn Sie ein Commerce-Webserverobjekt zu einer Anwendung hinzufügen.

Sie können auch einen neuen Webserver zu einer Anwendung hinzufügen, ohne Site Packager zu verwenden. Stattdessen verwenden Sie Application Center Server, um die Commerce Server-Dateien dem Webserver bereitzustellen. Es ist auch möglich, die Commerce Server-Dateien manuell in den Webserver zu kopieren. Weitere Informationen über das Hinzufügen von Webservern zu Commerce Server, ohne dabei Site Packager zu verwenden, finden Sie unter Hinzufügen von Webservern ohne Site Packager.

Anmerkung

  • Stellen Sie sicher, dass Sie über Zugriffsberechtigungen für den Computer verfügen, auf dem Sie die Anwendung entpacken.

  • Bevor Sie diese Prozedur durchführen, müssen Sie eine Paketdatei erstellen, die die ASP-Dateien der Anwendung enthält. Sie können aber auch eine der Lösungssites verwenden. Anweisungen zum Erstellen einer Paketdatei finden Sie unter Verwenden von Site Packager.

So fügen Sie einen Webserver zu einer Anwendung hinzu

  1. Erweitern Sie erst Commerce Server-Manager und E-Commerce-Sites auf dem Webservercomputer, den Sie der Anwendung hinzufügen wollen, und erweitern Sie dann die Site, die Sie verwalten möchten.

  2. Erweitern Sie Anwendungen, und klicken Sie auf den Namen der Anwendung, der Sie einen Webserver hinzufügen wollen. Klicken Sie anschließend mit der rechten Maustaste auf die Anwendung. Zeigen Sie auf Neu, und klicken Sie dann auf Webserver hinzufügen.

    Das Dialogfeld Webserver hinzufügen von wird angezeigt. Es enthält eine Liste mit Commerce Server Site Packager-Dateien (d. h. Dateien mit der Erweiterung PUP).

  3. Navigieren Sie im Dialogfeld Webserver hinzufügen von zu dem Ordner, der die zu entpackende Datei enthält. Wählen Sie die Datei, und klicken Sie auf Öffnen.

    Site Packager wird gestartet.

  4. Überprüfen Sie dann im Dialogfeld Wählen Sie die IIS-Websites und die virtuellen Verzeichnisse aus, ob die IIS-Anwendungspfade und virtuellen Verzeichnisse die Richtigen sind. Klicken Sie dann auf Weiter.

    Site Packager fügt erst die Dateien dem Webserver hinzu und fügt anschließend das Commerce-Webserverobjekt der gewählten Anwendung hinzu. Beim Öffnen des Commerce Server-Managers wird das Commerce-Webserverobjekt unter der Anwendung angezeigt.

  5. Sehen Sie sich im Dialogfeld Das Entpacken ist abgeschlossen die Liste der erstellten SQL-Datenbanken und der IIS-Anwendungen an. Klicken Sie auf die Option Protokolldatei anzeigen, um die Liste der Ereignisse in der PUP-Protokolldatei anzusehen.

  6. Klicken Sie auf Fertig stellen, um Site Packager zu schließen.

Siehe auch

Grundlagen der Verwaltung

Konfigurieren eines Webservers

Hinzufügen eines weiteren Webservers


Hinzufügen eines weiteren Webservers

Wenn Sie einen anderen Webserver einer Anwendung hinzufügen, können Sie während des Entpackens keine Konfigurationsinformationen für Anwendungen ändern, da alle Webserver gleich konfiguriert sein müssen. Commerce Server Site Packager zeigt den Namen der Internet-Informationsdienste (IIS) 5.0-Website an, auf der die Anwendung installiert wird, sowie den IIS-Anwendungspfad für jede Commerce -Anwendung.

Wenn Sie eine Anwendung entpacken wollen, die bereits in der Site in der Verwaltungsdatenbank existiert, geht Commerce Server Site Packager davon aus, dass Sie einen Webserver dieser Anwendung hinzufügen.

Siehe auch

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern

Beispiel B: Installation auf Konfiguration mit drei Computern ohne Cluster

Hinzufügen eines Webservers zu einer Anwendung


Konfigurieren eines Webservers

Im Commerce Server-Manager enthalten Webserverobjekte Eigenschaften, die vom Datawarehouse zum Importieren von Protokolldateien benötigt werden. Wenn Sie einem Webserver eine Anwendung hinzufügen, werden diese Eigenschaften automatisch von Internet Informationsdiensten (IIS) 5.0 aufgefüllt und in der Verwaltungsdatenbank gespeichert.

So konfigurieren Sie einen Webserver

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und klicken Sie dann auf die Site, die Sie verwalten möchten.

  2. Erweitern Sie erst Anwendungen und dann die Anwendung, die den Webserver enthält, den Sie konfigurieren möchten. Klicken Sie mit der rechten Maustaste auf das Webserverobjekt, und klicken Sie dann auf Eigenschaften.

  3. Führen Sie im Dialogfeld Eigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Servername | Eingeben des Computernamens, auf welchem der Webserver installiert ist. Ändern Sie den Namen nur dann, wenn Sie den Server umbenannt haben.
    IP-Adresse | Anzeigen der IP-Adresse (Internet Protocol) für den Webserver In diesem Feld. Dieser Wert wird anfangs aus IIS gelesen.
    Protokolldateipfad | Eingeben des Protokolldateipfads, auf dem die IIS-Website Ereignisse schreibt, z. B. C:\Winnt\System32\LogFiles\Log1. Dieser Wert wird anfangs aus IIS gelesen.
    Protokolldateiperiode | Auswählen der Protokolldateiperiode aus der Dropdownliste. Die Protokolldateiperiode gibt an, wie lange die IIS-Website zu einer Protokolldatei schreibt, bevor sie eine neue Datei erstellt. Dieser Wert wird anfangs aus IIS gelesen.

  4. Klicken Sie auf OK.

Siehe auch

Webserver

Konfigurieren einer Anwendung

Hinzufügen anderer Anwendungen und Webserver


Umbenennen einer Anwendung

Sie müssen den nichtgesicherten (bzw. gesicherten) Hostnamen Ihrer Anwendung in den Domänennamen umbenennen, der auf dem DNS (Domain Name System)-Server erstellt wurde, z. B. www.microsoft.com. Commerce Server liest den Domänennamen nicht automatisch vom DNS; stattdessen verwendet Commerce Server den Computernamen als Standarddomänennamen. Gehen Sie folgendermaßen vor, um für Commerce Server einen Domänennamen anzugeben.

Wenn Sie zuerst eine Site entpacken, erhalten Ihre Anwendungen den Namen des Computers (z. B. Server1) und der Anwendungspfade der Internet-Informationsdienste (IIS) 5.0, die Sie während des Vorgangs des Entpackens bestimmt haben (z. B. /msn). Ein Beispielname einer Anwendung ist Server1/msn.

Jede Anwendung Ihrer Site muss in den Domänennamen umbenannt werden. Für die Anwendung www.microsoft.com/msn lautet der Domänenname www.microsoft.com. Der IIS-Anwendungspfad ist /msn.

So benennen Sie eine Anwendung um

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und klicken Sie dann auf die Site, die Sie verwalten möchten.

  2. Erweitern Sie Anwendungen und klicken Sie mit der rechten Maustaste auf die Anwendung, die Sie umbenennen möchten. Klicken Sie anschließend auf Eigenschaften.

  3. Führen Sie im Dialogfeld Eigenschaften von Site auf der Registerkarte Allgemein folgende Schritte aus:
    Option/Funktion Zweck
    Nicht sicherer Hostname Eingeben des Domänennamens, so wie er in Ihrem DNS-Server angezeigt wird (z. B. könnten Sie ihn in "www.microsoft.com" ändern).

    Vorsicht

    • Wenn Sie als Anschlussnummer nicht 80 verwenden, müssen Sie die von Ihnen verwendete Nummer an das Ende des nicht sicheren Hostnamens hängen (z. B. www.microsoft.com:81). Sie können die von Ihnen verwendete Anschlussnummer im Feld TCP-Anschluss auf der Registerkarte Webserver anzeigen.
    IIS-Anwendungspfad Eingeben des Pfades zur IIS-Anwendung. Beispiel: Für die Anwendung www.microsoft.com/msn lautet der Pfad /msn.

    Vorsicht

    • Wenn Sie diese Eigenschaft ändern, müssen Sie den Speicherort dieser Dateien auf dem/den Webserver(n) ändern, sodass Pfad und Speicherort übereinstimmen. Sie müssen auch IIS mit der neuen Anwendung konfigurieren.

  4. Klicken Sie auf OK.

Anmerkung

  • Nachdem Sie eine Eigenschaft im Commerce Server-Manager geändert haben, müssen Sie die IIS-Anwendung der Site aus den Speichern aller Webserver entfernen, damit die Änderungen wirksam werden. Anweisungen finden Sie unter Entfernen einer Anwendung aus dem Speicher.

Siehe auch

Grundlagen der Verwaltung


Entfernen einer Anwendung aus dem Speicher

In Commerce Server ist jede Site eine Anwendung von Internet-Informationsdienste (IIS) 5.0. Nachdem Sie den Wert einer Eigenschaft im Commerce Server-Manager geändert haben, müssen Sie die IIS-Anwendungen aus den Speichern aller Webserver entfernen, damit die Änderungen wirksam werden. Der von der Commerce Server-Global.asa erstellte Cache wird freigegeben; wenn der nächste Benutzer Ihre Site besucht, werden die Ressourceeigenschaften wieder gelesen und in den Cache geladen.

Das Entfernen einer Anwendung aus dem Speicher unterscheidet sich vom Neustarten von IIS oder dem Befehl IISReset. Sie können eine Anwendung entfernen, ohne den Webserver herunterzufahren.

Sie müssen eine Anwendung aus dem Speicher entfernen, nachdem Sie eine der folgenden Aufgaben durchgeführt haben:

  • Konfigurieren einer globalen Ressource

  • Konfigurieren einer Siteressource

  • Konfigurieren der Anwendungsstandardkonfiguration

  • Konfigurieren einer Anwendung

  • Umbenennen einer Anwendung

Wenn Sie die CS-Authentifizierungsressource ändern, müssen Sie IIS allerdings neu starten. Anweisungen finden Sie unter Neustarten von IIS.

So entfernen Sie eine Anwendung aus dem Speicher.

  1. Wählen Sie im Internet-Informationsdienste-Snap-In das Stammverzeichnis der IIS-Website oder das Ausgangspunkt-Verzeichnis der Anwendung.

  2. Klicken Sie mit der rechten Maustaste auf das Verzeichnis (z. B. Standardwebsite), klicken Sie auf Eigenschaften und dann auf die Registerkarte Basisverzeichnis.

    Anmerkung

    • Wenn die Schaltfläche Entfernen nicht zur Verfügung steht, befinden Sie sich nicht im Ausgangspunkt-Verzeichnis bzw. die Anwendung ist bereits entfernt worden.
  3. Klicken Sie auf Entfernen.

    Es könnte die folgende Nachricht angezeigt werden: "Das Entladen dieser Anwendung wird alle Anwendungen im Anwendungspool entfernen. Möchten Sie den Vorgang wirklich fortsetzen?"

  4. Klicken Sie auf Ja, wenn diese Nachricht angezeigt wird.

Die Anwendung wird aus dem Speicher entfernt. Sobald der nächste Benutzer Ihre Webseite besucht, werden die neuen Eigenschaftswerte gelesen, wenn die Anwendung in den Speicher geladen wird.

Siehe auch

Neustarten von IIS

Konfigurieren einer globalen Ressource

Konfigurieren einer Siteressource

Konfiguration der Eigenschaften der Ressource für Anwendungsstandardkonfiguration

Konfigurieren einer Anwendung

Umbenennen einer Anwendung


Neustarten von IIS

Wenn Sie die von der CS-Authentifizierungsressource verwendeten Eigenschaften ändern, müssen Sie Internet-Informationsdienste (IIS) 5.0 beenden und neu starten. Da die CS-Authentifizierung eine globale Ressource ist, müssen alle Sites, die CS-Authentifizierung verwenden, aus dem Speicher entfernt werden.

Sie müssen IIS neu starten, wenn Sie eine der folgenden Aufgaben in der CS-Authentifizierungsressource durchführen:

  • Konfigurieren der Eigenschaften der CS-Authentifizierungsressource

  • Aktivieren der Cookiefreigabe über Domänen/Anwendungen hinweg

  • Aktivieren von AuthFilter

  • Deaktivieren von AuthFilter

Anmerkung

  • Verwenden Sie zum Neustarten von IIS nicht den Befehl IISReset. Obwohl durch den Befehl IISReset IIS beendet und neugestartet wird, beendet und startet dieser Befehl unter bestimmten Bedingungen nicht Inetinfo.exe (W3SVC-Dienst). Wenn z. B. der W3SVC-Dienst so konfiguriert wurde, dass er nur manuell und nicht automatisch gestartet werden kann, wird er durch den Befehl IISReset nicht neu gestartet.

So setzen Sie IIS zurück

  1. Klicken Sie auf Starten, und klicken Sie anschließend auf Ausführen.

  2. Im Feld Öffnen geben Sie net stop iisadmin ein.

  3. Wenn die Frage "Möchten Sie diesen Vorgang fortsetzen?" angezeigt wird, geben Sie J ein.

    Die Internet-Informationsdienste werden beendet.

  4. Klicken Sie auf Starten, und klicken Sie anschließend auf Ausführen.

  5. Im Feld Öffnen geben Sie net start w3svc ein.

    Die Internet-Informationsdienste werden gestartet.

Siehe auch

Entfernen einer Anwendung aus dem Speicher

Konfigurieren der Eigenschaften der CS-Authentifizierungsressource

Aktivieren der Cookiefreigabe über Domänen/Anwendungen hinweg

Aktivieren von AuthFilter für die Retail-Lösungssite

Aktivieren von AuthFilter für die Supplier-Lösungssite

Deaktivieren von AuthFilter


Löschen einer Anwendung aus einer Site

Wenn Sie eine Anwendung aus einer Site löschen, werden die Anwendungsdaten in der Verwaltungsdatenbank gelöscht. Es werden weder Webserverdateien noch Einstellungen der Internet-Informationsdienste (IIS) 5.0 gelöscht.

Bevor Sie eine Anwendung aus einer Site löschen, müssen Sie zunächst jeden Commerce-Webserver entfernen, der dieser Anwendung zugeordnet ist. Anweisungen über das Entfernen eines Webservers finden Sie unter Entfernen eines Webservers aus einer Anwendung.

So löschen Sie eine Anwendung aus einer Site

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und erweitern Sie dann die Site, die Sie verwalten möchten.

  2. Erweitern Sie Anwendungen, klicken Sie auf die zu löschende Anwendung und klicken Sie dann mit der rechten Maustaste auf die Anwendung. Klicken Sie anschließend auf die Option Löschen.

Die Anwendungskonfigurationsdaten werden aus der Verwaltungsdatenbank gelöscht.

Siehe auch

Entfernen eines Webservers aus einer Anwendung

Löschen einer Ressource aus einer Site

Löschen einer Site


Entfernen eines Webservers aus einer Anwendung

Wenn Sie einen Webserver aus einer Anwendung entfernen, wird das Commerce-Webserverobjekt aus der Verwaltungsdatenbank entfernt. Sie entfernen nicht Einstellungen der Internet-Informationsdienste (IIS) 5.0 oder Webserverdateien.

Wenn Sie den von Commerce Server Business Desk verwendeten Webserver entfernen, werden Benutzer die Site nicht mehr verwalten können.

Nach dem Entfernen des letzten Servers aus einer Anwendung wird die Anwendung weiterhin im Commerce Server-Manager angezeigt.

So entfernen Sie einen Webserver aus einer Anwendung

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und erweitern Sie dann die Site, die Sie verwalten möchten.

  2. Erweitern Sie Anwendungen, und erweitern Sie dann die Anwendung, von welcher Sie das Commerce-Webserverobjekt entfernen möchten. Klicken Sie mit der rechten Maustaste auf das Webserverobjekt, und klicken Sie dann auf Löschen.

Das Commerce-Webserverobjekt wird aus der Anwendung entfernt; der Webserver wird nicht mehr unter der Anwendung angezeigt. Bei Bedarf können Sie denselben Webserver oder auch einen anderen Webserver der Anwendung hinzufügen.

Siehe auch

Webserver

Hinzufügen eines Webservers zu einer Anwendung

Deinstallieren von Commerce Server


Automatisches Hinzufügen eines Webservers

Sie können einen neuen Webserver mithilfe von Microsoft Application Center 2000 erstellen, um die Commerce Server-Dateien dem Webserver bereitzustellen. Sie können Commerce Server-Dateien aber auch manuell in den Webserver kopieren, anstatt Commerce Server Site Packager zu verwenden. Commerce Server-Lösungssites enthalten Code in Global.asa, der das automatische Hinzufügen eines Webservers zu einer Anwendung ermöglicht.

Wenn die Commerce Server-Anwendung zuerst auf dem neuen Webserver gestartet wird (z. B. wenn ein Benutzer eine Verbindung zum Webserver herstellt oder ein Lastenausgleich durchgeführt wird), und dann Global.asa startet, wird der Webserver automatisch zu der Verwaltungsdatenbank hinzugefügt. Der Webserver liest die für die Site benötigten Eigenschaften aus der Verwaltungsdatenbank.

Nach dem Hinzufügen des Webservers wird dieser im Commerce Server-Manager angezeigt, sodass Sie ihn verwalten können.


Hinzufügen anderer Anwendungen und Webserver

Sie können den Commerce Server-Manager zum Hinzufügen von Anwendungen und Webservern einsetzen, welche nicht Commerce Server-Komponenten verwenden. Das Hinzufügen anderer Anwendungen und Webserver hat den Zweck, dass Sie die Webserver-Protokolldateien dem Datawarehouse zum Import zur Verfügung stellen können.

So fügen Sie eine Nicht-Commerce-Anwendung zu einer Site hinzu

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und erweitern Sie dann die Site, die Sie verwalten möchten.

  2. Klicken Sie erst auf Anwendungen, klicken Sie mit der rechten Maustaste auf Anwendungen und klicken Sie dann auf Nicht-Commerce-Anwendung hinzufügen.

  3. Führen Sie im Dialogfeld Neue Nicht-Commerce-Anwendung auf der Registerkarte Allgemein folgende Schritte aus:
    Option/Funktion | Zweck
    Webserver in dieser Anwendung führen IIS aus | Aktivieren dieses Kontrollkästchens, wenn die Server in der Nicht-Commerce-Anwendung Internet-Informationsdienste (IIS) 5.0 ausführen. In einer Nicht-Commerce-Anwendung können nicht gleichzeitig IIS-Server und Nicht-IIS-Server vorhanden sein.
    Nicht sicherer Hostname Eingeben des DNS (Domain Name System)-Domänennamens, den nichtgesicherte Links in der Anwendung verwenden.

    Vorsicht

    • Wenn Sie als Anschlussnummer nicht 80 verwenden, müssen Sie die von Ihnen verwendete Nummer an das Ende des Servernamens hängen (z. B. www.microsoft.com:81). Sie können die von Ihnen verwendete Anschlussnummer im Feld TCP-Anschluss auf der Registerkarte Webserver anzeigen.
    IIS-Anwendungspfad oder Anwendungspfad | Eingeben des Pfades zur Anwendung.
    HTTPS aktivieren | Auswählen dieser Eigenschaft, wenn gesicherte Links in der Anwendung verwendet werden.
    Sicherer Hostname Eingeben des DNS-Domänennamens, den gesicherte Links in der Anwendung verwenden.

    Vorsicht

    • Wenn Sie als Anschlussnummer nicht 443 verwenden, müssen Sie die von Ihnen verwendete Nummer an das Ende des Servernamens hängen (z. B. www.microsoft.com:441). Sie können die von Ihnen verwendete Anschlussnummer im Feld SSL-Anschluss auf der Registerkarte Webserver anzeigen.

  4. Führen Sie auf der Registerkarte Webserver folgende Schritte aus:
    Option/Funktion | Zweck
    IIS-Website | Eingeben des Namens der IIS-Website (z. B. Standardwebsite).
    TCP-Anschluss | Eingeben des TCP (Transmission Control Protocol)-Anschlusses (in der Regel 80). Wenn Sie hier einen anderen Wert als 80 haben, müssen Sie diesen Wert auf der Registerkarte Allgemein in das Eingabefeld Nicht sicherer Hostname eingeben (z. B. www.microsoft.com:81).
    SSL-Anschluss | Eingeben des SSL (Secure Sockets Layer)-Anschlusses (in der Regel 443). Wenn Sie hier einen anderen Wert als 443 haben, müssen Sie diesen Wert auf der Registerkarte Allgemein in das Eingabefeld Sicherer Hostname eingeben (z. B. www.microsoft.com:441).
    Lokale Domäne | Eingeben des Namens der lokalen Domäne (z. B. microsoft.com).

  5. Klicken Sie auf OK.

So fügen Sie einen Nicht-Commerce-Webserver zu einer Anwendung hinzu

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und erweitern Sie dann die Site, die Sie verwalten möchten.

  2. Erweitern Sie Anwendungen, klicken Sie auf den Namen der Nicht-Commerce-Anwendung, der Sie einen Webserver hinzufügen wollen, und klicken Sie dann mit der rechten Maustaste auf sie. Zeigen Sie auf Neu, und klicken Sie anschließend auf Nicht-Commerce-Webserver hinzufügen.

  3. Führen Sie im Dialogfeld Eigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Servername | Eingeben des Namens des Computers, der als Host für den Nicht-Commerce-Webserver dient.
    IP-Adresse | Eingeben der IP-Adresse (Internet Protocol) für den Nicht-Commerce-Webserver.
    Protokolldateipfad | Eingeben des Protokolldateipfads, auf dem der Nicht-Commerce-Webserver Ereignisse schreibt, z. B. C:\Winnt\System32\LogFiles\Log1.
    Protokolldateiperiode | Auswählen der Protokolldateiperiode in der Dropdownliste. Die Protokolldateiperiode gibt an, wie lange der Nicht-Commerce-Webserver zu einer Protokolldatei schreibt, bevor er eine neue Datei erstellt.

  4. Klicken Sie auf OK.

Siehe auch

Verwalten der CS-Authentifizierungsressource

Cookies und Authentifizierung


Verwalten von Commerce Server

Dieser Abschnitt beinhaltet folgende Themen:

  • Sichern und Wiederherstellen von Commerce Server . Beschreibt, wie eine Commerce Server-Installation gesichert bzw. wiederhergestellt wird.

  • Sichern und Wiederherstellen von SQL-Datenbanken . Beschreibt Sicherungs- und Wiederherstellungsstrategien und die Einschränkungen von Sicherungsoperationen.

  • Minimieren der Sicherungs- und Wiederherstellungszeiten in unternehmenskritischen Umgebungen . Beschreibt das Minimieren der Sicherungs- und Wiederherstellungszeiten und erklärt das Wiederherstellen von Datenbanksicherungen.


Sichern und Wiederherstellen von Commerce Server

Es empfiehlt sich, Ihre Commerce Server-Konfiguration nach jeder Änderung zu sichern. Dadurch können Sie leicht ihren vorherigen Zustand wiederherstellen, falls es einmal zu verheerenden Ausfällen von Hardware- bzw. Software kommen sollte.

So sichern Sie Ihre Commerce Server-Installation

  1. Sichern Sie Ihre SQL Server-Datenbanken mithilfe von SQL Enterprise Manager.

  2. Sichern Sie die Internet-Informationsdienste (IIS) 5.0-Metabasis mithilfe des Microsoft Windows 2000-Sicherungs-Assistenten.

  3. Sichern Sie die Registrierung mithilfe des Sicherungs-Assistenten.

  4. Sichern Sie die Commerce Server-Dateien mithilfe des Sicherungs-Assistenten.

  5. Packen Sie Ihre Commerce Server-Site mithilfe von Commerce Server Site Packager.

So stellen Sie Ihre Commerce Server-Installation wieder her

  1. Stellen Sie Ihre IIS-Metabasis mithilfe des Sicherungs-Assistenten wieder her.

  2. Stellen Sie Ihre Registrierung mithilfe des Windows 2000-Wiederherstellungs-Assistenten wieder her.

  3. Stellen Sie die Commerce Server-Dateien mithilfe des Sicherungs-Assistenten wieder her.

  4. Entpacken Sie Ihre Commerce Server-Site und/oder -Ressourcen mithilfe von Commerce Server Site Packager.

Siehe auch

Verwenden von Site Packager

Sicherung der Site

Sichern und Wiederherstellen von SQL-Datenbanken

Minimieren der Sicherungs- und Wiederherstellungszeiten in unternehmenskritischen Umgebungen


Sichern und Wiederherstellen von SQL-Datenbanken

Wenn Sie eine Datenbanksicherung erstellen, werden durch den Sicherungsvorgang nur Daten der Datenbank in die Sicherungsdatei kopiert; in der Datenbank nicht verwendeter Speicherplatz wird nicht kopiert. Da die Datenbanksicherung nur die tatsächlichen Daten der Datenbank – d. h. keinen leeren Speicherplatz – enthält, ist die Datenbanksicherung möglicherweise kleiner als die Datenbank selbst. Die Größe der Datenbanksicherung kann mithilfe der im System gespeicherten Prozedur sp_spaceused geschätzt werden; der reservierte Wert gibt die geschätzte Größe an.

Microsoft SQL Server schneidet die Transaktionsprotokolle während der Sicherung der Datenbank nicht ab. Beim Erstellen einer Datenbanksicherung empfiehlt es sich daher, das Transaktionsprotokoll so einzustellen, dass es automatisch jedes Mal dann abgeschnitten wird, wenn ein Prüfpunkt in der Datenbank angezeigt wird. Setzen Sie die Datenbankoption trunc. log on chkpt. dann auf WAHR. Dies verhindert, dass das Transaktionsprotokoll voll wird. Andernfalls müßte das Transaktionsprotokoll manuell abgeschnitten werden.

Wenn Sie nur Datenbanksicherungen erstellen, sollte das Sicherungsintervall lang genug sein, sodass der Rechenaufwand der Sicherung andere Vorgänge nicht beeinträchtigt. Das Sicherungsintervall sollte aber auch kurz genug sein, um einen signifikanten Datenverlust zu verhindern. Datenbanken, die keine kritischen Daten enthalten und leicht verändert sind, können jede Woche bzw. alle zwei Wochen gesichert werden. Daten, die kritischer bzw. flüchtiger sind, sollten täglich oder noch häufiger gesichert werden. Einige in der Regel schreibgeschützte Datenbanken müssen nur nach einer regelmäßigen Aktualisierung mit neuen Daten gesichert werden.

Es ist auch ratsam, mehr als eine Sicherung der Datenbank zu erstellen. Es empfiehlt sich, eine rotierende Serie von Sicherungsmedien einzusetzen, sodass Sie über zwei oder mehr Versionen der Datenbank verfügen, die Sie wiederherstellen können. Dies ermöglicht Ihnen, mit Situationen umzugehen, in denen ein Benutzer einige inkorrekte Änderungen macht, die für eine Weile unentdeckt bleiben. Außerdem können Sie auf eine frühere Sicherung zugreifen, wenn Sicherungsmedien beschädigt sein sollten.

Sicherungseinschränkungen

Mithilfe von SQL Server können Sicherungsvorgänge vorgenommen werden, während die Datenbank online ist oder verwendet wird. Allerdings sind folgende Vorgänge während des Sicherungsvorgangs nicht erlaubt:

  • Erstellen oder Löschen von Datenbankdateien

  • Erstellen von Indexen

  • Durchführen von nicht protokollierten Vorgängen

  • Verkleinern der Datenbank (automatisch oder manuell) oder der Datenbankdateien

Wenn der Sicherungsvorgang gestartet wird, während einer der beiden Vorgänge durchgeführt wird, wird der Sicherungsvorgang beendet. Wenn der Sicherungsvorgang durchgeführt wird, schlägt der Versuch fehl, eine der beiden Operation zu starten. Der Sicherungsvorgang wird fortgesetzt.

Wiederherstellen einer Datenbanksicherung

Durch das Wiederherstellen einer Datenbanksicherung wird der Zustand einer Datenbank wiederhergestellt, der zum Zeitpunkt der Erstellung der Sicherung herrschte. Wenn Sie eine Datenbank wiederherstellen, stellt SQL Server die Datenbank und alle ihr zugeordneten Dateien wieder her. Folgende Schritte werden dabei automatisch durchgeführt:

  • Alle gesicherten Daten werden in die Datenbank kopiert; der Rest der Datenbank wird als leerer Speicherplatz erstellt.

  • Jede unvollständige Transaktion bei der Datenbanksicherung (d. h. Transaktionen, die während des Beendens des Sicherungsvorgangs nicht abgeschlossen sind) wird rückgängig gemacht, um sicherzustellen, dass die Datenbank konsistent bleibt.

Dadurch wird gewährleistet, dass die wiederhergestellte Datenbank tatsächlich die Kopie der Datenbank ist, die zum Zeitpunkt vorhanden war, als der Sicherungsvorgang beendet wurde, abgesehen von den unvollständig ausgeführten Transaktionen, die rückgängig gemacht worden sind. Das Rückgängigmachen ist notwendig, um die Vollständigkeit der Datenbank zu gewährleisten.

Außerdem kann während des Wiederherstellungsvorhangs eine automatische Sicherheitsüberprüfung durchgeführt werden, um ein unbeabsichtigtes Überschreiben der Datenbank zu verhindern. Unter folgenden Umständen schlägt der Wiederherstellungsvorgang fehl:

  • Die Datenbank, die im Wiederherstellungsvorgang genannt wird, existiert bereits auf dem Server, und der Datenbankname stimmt nicht mit dem Datenbanknamen überein, der im Sicherungssatz aufgezeichnet ist.

  • Die Datenbank, die im Wiederherstellungsvorgang genannt wird, existiert bereits auf dem Server, aber es handelt sich dabei nicht um die Datenbank, die in der Datenbanksicherung enthalten ist. Zum Beispiel sind die Datenbanknamen identisch, doch jede Datenbank wurde auf unterschiedliche Weise erstellt.

  • Eine oder mehrere Dateien müssen durch den Wiederherstellungsvorgang automatisch erstellt werden (unabhängig davon, ob die Datenbank bereits existiert), aber es existieren bereits Dateien mit Dateinamen, die mit denen identisch sind, die erstellt werden müssen.

Diese Sicherheitsüberprüfung kann deaktiviert werden, wenn ein Überschreiben einer anderen Datenbank beabsichtigt wird.

Unterbrochene Sicherungs- und Wiederherstellungsvorgänge

Wenn ein Sicherungs- bzw. Wiederherstellungsvorgang unterbrochen wird (z. B. wegen Energieverlusts auf dem Server), ist es möglich, den Sicherungs- bzw. Wiederherstellungsvorgang an dem Punkt wieder zu starten, wo er unterbrochen wurde. Dies kann besonders beim automatischen Wiederherstellen großer Datenbanken auf anderen Servern von Vorteil sein. Wenn der automatische Prozess kurz vor Abschluss des Wiederherstellungsvorgangs fehlschlägt (wenn es z. B. zu einem Energieverlust kommt), kann der Systemadministrator den Wiederherstellungsvorgang dort neu starten, wo er abgebrochen wurde, anstatt das Wiederherstellen der ganzen Datenbank von neuem zu beginnen.

Siehe auch

Minimieren der Sicherungs- und Wiederherstellungszeiten in unternehmenskritischen Umgebungen

Sicherung der Site


Minimieren der Sicherungs- und Wiederherstellungszeiten in unternehmenskritischen Umgebungen

Unternehmenskritische Umgebungen machen es oft erforderlich, dass die Datenbank jederzeit bzw. über längere Zeiträume bei minimalen Ausfallzeiten zur Verfügung steht. Daher sollte die Dauer unerwarteter Vorfälle, z. B. von Hardware-Fehlern, die das Wiederherstellen der Datenbank erforderlich machen, so kurz wie möglich sein. Unternehmenskritische Datenbanken sind darüber hinaus oftmals groß und benötigen bei Sicherungs- und Wiederherstellungsvorgängen mehr Zeit. Microsoft SQL Server bietet einige Methoden, um Sicherungs- und Wiederherstellungsvorgänge zu beschleunigen. Dadurch wird die Beeinträchtigung der Benutzer während der beiden Vorgänge verringert.

  • Wenn mehrere Sicherungsmedien gleichzeitig verwendet werden, ist das gleichzeitige Speichern der Sicherungskopien auf allen Medien möglich. Auf gleiche Art und Weise ist auch die Wiederherstellung der Sicherungskopie aus mehreren Medien möglich.

  • Die Verwendung einer Kombination aus Datenbank, differentieller Datenbank und Transaktionsprotokollsicherungen, um die Anzahl der Sicherungskopien zu verringern, die einen Ausfall der Datenbank verursachen können.

  • Die Verwendung von Datei- und Dateigruppensicherungen sowie von Transaktionsprotokollsicherungen, wodurch gewährleistet ist, dass nicht die gesamte Datenbank, sondern nur solche Dateien gesichert bzw. wiederhergestellt werden, die die relevanten Daten enthalten.

So erstellen Sie eine Sicherung einer SQL-Datenbank

  1. Erweitern Sie in SQL Server-Enterprise Manager eine Servergruppe und dann einen Server.

  2. Erweitern Sie Datenbanken, klicken Sie mit der rechten Maustaste auf die zu sichernde Datenbank, zeigen Sie auf Alle Aufgaben und klicken Sie anschließend auf Datenbank sichern.

  3. Geben Sie auf der Registerkarte Allgemein in das Feld Name den Namen des Sicherungssatzes ein.

  4. Geben Sie optional im Feld Beschreibung eine Beschreibung des Sicherungssatzes ein.

  5. Wählen Sie unter Sicherung die Option Datenbank - vollständig.

  6. Klicken Sie unter Ziel auf Hinzufügen, um ein existierendes Sicherungsmedium hinzuzufügen bzw. ein neues Sicherungsmedium zu erstellen.

    Oder klicken Sie auf Entfernen, um das Sicherungsmedium aus der Liste der zu verwendenden Sicherungsmedien zu entfernen.

  7. Führen Sie im Dialogfeld SQL Server Backup unter Überschreiben folgende Schritte aus:
    Option/Funktion | Zweck
    An Medien anfügen | Anfügen der Sicherung an jede existierende Sicherungskopie auf dem Sicherungsmedium.
    Vorhandene Medien überschreiben | Überschreiben aller vorhandener Sicherungskopien auf dem Sicherungsmedium.
    Zeitplan | Optional Auswählen, um den Sicherungsvorgang zur späteren oder regelmäßigen Ausführung zu planen.

  8. Klicken Sie optional auf die Registerkarte Optionen, und wählen Sie aus den folgenden Sicherungsoptionen aus:
    • Sicherung bei Abschluss überprüfen. Löst die Überprüfung der abgeschlossenen Sicherung aus.

    • Nach der Sicherung Band auswerfen. Löst das Auswerfen des Bandes aus, sobald der Sicherungsvorgang abgeschlossen ist. Nur mit Bandmedien verfügbar.

    • Mediensatzname und Sicherungssatz-Ablaufdatum überprüfen. Löst die Überprüfung der Sicherungsmedien aus, um vor versehentlichem Überschreiben zu schützen. Geben Sie im Feld Mediensatzname den Namen der Medien ein, die für den Sicherungsvorgang verwendet werden sollten. Lassen Sie dieses Feld leer, wenn nur das Sicherungssatz-Ablaufdatum bestimmt wird.
  9. Wenn Sie die Sicherungsmedien erstmalig verwenden bzw. wenn Sie eine vorhandene Medienbezeichnung ändern wollen, wählen Sie unter Mediensatzbezeichnungen die Option Medien initialisieren und bezeichnen, und geben Sie den Mediensatznamen und die Mediensatzbeschreibung ein. (Die Medien können nur beim Überschreiben der Medien initialisiert und bezeichnet werden.)

Siehe auch

Sicherung der Site


Verwalten der CS-Authentifizierungsressource

Mit der CS-Authentifizierungsressource können Sie die Authentifizierung und Identifizierung für Ihre Microsoft Commerce Server 2000-Site aufbauen und ändern. Der Siteentwickler kann eine Authentifizierungsmethode entwickeln und die Site packen. Anschließend können Sie sie entpacken. Wenn Sie die Site entpackt haben, können Sie die Einstellungen für die Authentifizierungsmethode mit der CS-Authentifizierungsressource anzeigen bzw. modifizieren.

Dieser Abschnitt beinhaltet folgende Themen:

  • Informationen zur CS-Authentifizierungsressource. Beschreibt die Modi, welche von der CS-Authentifizierungsressource unterstützt werden. Beschreibt das Objekt AuthManager und AuthFilter.

  • Konfigurieren der Eigenschaften der CS-Authentifizierungsressource. Erklärt, wie Sie die Authentifizierungsressource konfigurieren, und beschreibt die Siteeigenschaften, die Sie für die Commerce Server-Site einstellen können.

  • Aktivieren der Windows-Authentifizierung. Erklärt, wie Sie den Windows-Authentifizierungsmodus aktivieren.

  • Aktivieren der benutzerdefinierten Authentifizierung. Erklärt, wie Sie den benutzerdefinierten Authentifizierungsmodus aktivieren.

  • Aktivieren der Autocookie-Erzeugung. Erklärt, wie Sie den Autocookiemodus aktivieren.

  • Aktivieren der Cookiefreigabe über Domänen/Anwendungen hinweg. Erklärt, wie Sie die Cookiefreigabe über mehrere Domänen bzw. Anwendungen hinweg aktivieren.

  • Einstellen des Sicherheitsmodus auf dem Domänencontroller. Erklärt, wie der Sicherheitsmodus auf dem Domänencontroller eingestellt wird.

  • Deaktivieren von AuthFilter. Beschreibt den Modus Kein Filter für die CS-Authentifizierungsressource und erklärt, wie Sie AuthFilter deaktivieren können.

  • Aktivieren von AuthFilter für die Retail-Lösungssite. Erklärt, wie AuthFilter für die Retail-Lösungssite aktiviert wird.

  • Aktivieren von AuthFilter für die Supplier-Lösungssite. Erklärt, wie AuthFilter für die Supplier-Lösungssite aktiviert wird.

  • "Login.asp"-Code für die Retail-Lösungssite. Enthält den Code der Datei Login.asp für die Retail-Lösungssite.

  • "Login.asp"-Code für die Supplier-Lösungssite. Enthält den Code der Datei Login.asp für die Supplier-Lösungssite.

  • Verwenden der Windows-Authentifizierung mit Proxykonto in einer Webfarm. Erklärt, wie der Code der Datei Login.asp modifiziert wird, um ein Proxykonto in einer Webfarm zu unterstützen.

  • Erstellen eines neuen Verschlüsselungsschlüssels. Erklärt, wie ein neuer Verschlüsselungsschlüssel zum Verschlüsseln und Entschlüsseln von Cookiedaten erstellt wird.


Informationen zur CS-Authentifizierungsressource

Die CS-Authentifizierungsressource ist eine Commerce Server-Ressource mit Eigenschaften auf globaler Ebene. Sie wird von Commerce Server-Manager verwaltet. Mit der CS-Authentifizierungsressource können Sie Authentifizierungsmodi konfigurieren und festlegen, wie Cookies in Ihrer Site implementiert werden. Sie können mit der CS-Authentifizierungsressource z. B. die Autocookie-Erzeugung aktivieren und Cookies so einstellen, dass sie von mehreren Anwendungen in derselben Site verwendet werden können. Außerdem kann die Gültigkeitsdauer von persistent gespeicherten Cookies bestimmt werden.

Die CS-Authentifizierungseigenschaften werden an zwei Stellen eingestellt:

  • Auf der globalen Ebene werden die Eigenschaften in der globalen Ressource der CS-Authentifizierung eingestellt. Diese Eigenschaften werden von allen Commerce Server-Sites verwendet.

  • Auf der Anwendungsebene (klicken Sie mit der rechten Maustaste auf die Anwendung im Commerce Server-Manager) werden die Authentifizierungseigenschaften eingestellt, die nur von dieser Anwendung verwendet werden.

Die CS-Authentifizierung verfügt für jede Site über einen globalen Ressourcenzeiger. Auf der Siteebene werden keine Eigenschaften eingestellt. Eine globale CS-Authentifizierungsressource kann von zwei oder mehr Sites verwendet werden.

Wenn Sie mithilfe einer Commerce Server-Lösungssite eine Site entwickeln, stellen Sie dabei auch Authentifizierungseigenschaften in der Ressource für Anwendungsstandardkonfiguration ein. Diese Eigenschaften werden von der CS-Authentifizierung nicht verwendet. Weitere Informationen über die Konfiguration der Eigenschaften der Anwendungsstandardkonfiguration finden Sie unter Konfigurieren der Eigenschaften der Anwendungsstandardkonfigurations-Ressource.

Authentifizierungskomponenten

Authentifizierungsmodi

Funktion zur einmaligen Anmeldung für mehrere Domänen

Authentifizierungskomponenten

Commerce Server enthält zwei Tools zur Verwaltung der Benutzerauthentifizierung und -identifizierung: das Objekt AuthManager und AuthFilter.

  • AuthManager. Ein COM-Objekt (Component Object Model), das Methoden zur Benutzeridentifizierung und zur Zugriffssteuerung auf dynamisch erstellte Inhalte bereitstellt. Beispiel: Siteentwickler können die Methode GetUserID des Objekts AuthManager aufrufen, um einen Benutzer basierend auf einem Cookie oder einer Abfragezeichenfolge zu identifizieren. Weitere Informationen finden Sie unter Konfigurieren der Eigenschaften der CS-Authentifizierungsressource.

  • AuthFilter. Ein ISAPI-Filter, der auf der Anwendungsebene von IIS Commerce Server verwendet wird. Dieser Filter lässt sich auf alle Benutzer anwenden, die eine Anwendung besuchen. AuthFilter wird auf der Anwendungsebene konfiguriert. Weitere Informationen finden Sie unter Konfigurieren einer Anwendung.

Authentifizierungsmodi

Beim Einsatz von AuthFilter haben Sie die Wahl zwischen den folgenden Authentifizierungsmodi:

  • Kein Filter. AuthFilter ist deaktiviert.

  • Windows-Authentifizierung. AuthFilter setzt Windows-Authentifizierung zur Steuerung des Zugriffs auf die Site ein. Dabei werden Benutzername und Kennwort mit Active Directory (oder einem lokalen Sicherheitszugriffsmanager-Konto) verglichen. Wenn Sie Windows-Authentifizierung verwenden, haben Sie die Möglichkeit, nur für von Ihnen festgelegte Active Server Pages (ASP) und Verzeichnisse eine Benutzerauthentifizierung zu verlangen. Informationen über den Einsatz von Windows-Authentifizierung finden Sie unter Aktivieren der Windows-Authentifizierung.

  • Benutzerdefinierte Authentifizierung. AuthFilter überprüft Benutzernamen und Kennwort (Authentifizierungsticket) anhand einer SQL Server-Datenbank oder anhand eines anderen Datenbanktyps. Für jede Active Server Page und jedes Verzeichnis der Commerce Server-Site ist eine Anmeldung erforderlich. AuthFilter prüft diese Anmeldung anhand des virtuellen Verzeichnisses der Commerce Server-Site. Außerdem wird in der Commerce Server-Verwaltungsdatenbank abgefragt, ob für die entsprechende Site benutzerdefinierte Authentifizierung aktiviert ist. Falls das Authentifizierungsticket ungültig ist, fordert AuthFilter den Benutzer zur Eingabe von Anmeldeinformationen auf.

    Informationen über den Einsatz der benutzerdefinierten Authentifizierung finden Sie unter Aktivieren der benutzerdefinierten Authentifizierung.

  • Autocookie. Für Gastbenutzer lassen sich automatisch Cookies erstellen, in denen Tickets gespeichert werden. (Wenn ein anonymer Benutzer ein Profilticket erhält, wird er zum Gastbenutzer.) Mit Profiltickets können Sie Profildaten über das Navigationsverhalten von Gastbenutzern in Ihrer Site sammeln und in Erfahrung bringen, wie sie die Site verwenden.

    Bei gleichzeitiger Auswahl von Autocookie und Kein Filter gibt es keine registrierten Benutzer.

    Wenn Sie den Autocookiemodus zusammen mit Windows-Authentifizierung oder benutzerdefinierter Authentifizierung ("gemischter Modus") einsetzen, können die persistent gespeicherten Cookies der Gastbenutzer aktualisiert werden, sobald diese sich registrieren lassen. Dadurch gehen die Profildaten nicht verloren, die Sie gesammelt haben, während der Benutzer noch Gast war. Informationen über den Einsatz des Autocookiemodus finden Sie unter Aktivieren der Autocookie-Erzeugung.

Wenn Sie einen gemischten Modus verwenden, erstellt AuthFilter folgende Tickets:

  • Wenn ein Benutzer sich erstmalig bei der Site anmeldet, wird das Profilticket erstellt.

  • Wenn der Benutzer authentifiziert werden konnte, wird das Authentifizierungsticket erstellt. Dieses enthält die Benutzer-ID. Sie können das Authentifizierungsticket zur Zugriffssteuerung einsetzen.

  • Falls der Benutzer nicht authentifiziert ist (also kein Authentifizierungsticket hat), zeigt das Profilticket an, dass es sich um einen anonymen Benutzer handelt.

Funktion zur einmaligen Anmeldung für mehrere Domänen

Die CS-Authentifizierungsressource enthält eine Funktion zur einmaligen Anmeldung für mehrere Domänen. Um den Zugriff auf mehrere Domänen über eine einzige Anmeldung zu ermöglichen, müssen Sie Cookies mithilfe ihrer Domäneneigenschaft für verschiedene Domänen freigeben. Dies funktioniert nur, wenn die Domänen auf der zweiten Ebene einen gemeinsamen Domänennamen haben. So können z. B. premier.microsoft.com und msn.microsoft.com Cookies gemeinsam mit dem Domänennamen microsoft.com nutzen.

Zwei Domänen wie microsoft.com und microsoft.uk unterstützen nicht die einmalige Anmeldung; sie können Cookies nicht gemeinsam nutzen, da sie auf der zweiten Ebene nicht über denselben Domänennamen verfügen. In diesem Fall muss der Benutzer sich erneut anmelden, wenn er die Domäne wechselt. Weitere Informationen über die Integration von Passport finden Sie unter Integrating with Passport (englisches Thema).

Stellen Sie zwei Authentifizierungseigenschaften auf der Siteebene ein, um die Funktion zur einmaligen Anmeldung für mehrere Domänen zu nutzen: Den Pfad des Cookies zur Anwendung festlegen und Anzahl der freigegebenen Domänenebenen. Sie müssen die Anzahl der freigegebenen Domänenebenen auf mindestens zwei Domänenebenen einstellen. Außerdem müssen Sie Domänen mit demselben Namen der obersten Ebene verwenden, wie im Beispiel msn.microsoft.com und premier.microsoft.com. Informationen über das Einstellen dieser Authentifizierungseigenschaften finden Sie unter Konfigurieren einer Anwendung.

Siehe auch

Sicherheitsplanung

Working with Site Security and Filters (englisches Thema)

Aktivieren der Windows-Authentifizierung

Aktivieren der benutzerdefinierten Authentifizierung

Aktivieren der Autocookie-Erzeugung

Site Security Objects (englisches Thema)

AuthManager Object (englisches Thema)


Konfigurieren der Eigenschaften der CS-Authentifizierungsressource

Sie können die CS-Authentifizierungseigenschaften für die globale CS-Authentifizierungsressource anzeigen und bearbeiten.

Anmerkung

  • Auf der Siteebene werden viele Authentifizierungseigenschaften eingestellt. Informationen über das Konfigurieren von Authentifizierungseigenschaften auf der Siteebene finden Sie unter Konfigurieren einer Anwendung.

  • Die folgenden Authentifizierungseigenschaften werden in der Ressource für Anwendungsstandardkonfiguration eingestellt: Siteticketoptionen, Sitedatenschutz-Optionen, Formularanmeldeoptionen, Timeout des Authentifizierungstickets des AuthManagers. Diese Eigenschaften werden zugewiesen, wenn Sie eine Site mithilfe von Commerce Server-Lösungssites entwickeln. Weitere Informationen über die Konfiguration dieser Eigenschaften der Anwendungsstandardkonfiguration finden Sie unter Konfigurieren der Eigenschaften der Anwendungsstandardkonfigurations-Ressource.

So konfigurieren Sie die Eigenschaften der CS-Authentifizierungsressource

  1. Erweitern Sie Commerce Server-Manager und öffnen Sie dann Globale Ressourcen.

  2. Klicken Sie mit der rechten Maustaste auf die Ressource CS-Authentifizierung, und klicken Sie dann auf Eigenschaften.

  3. Wählen Sie im Dialogfeld Eigenschaften die Eigenschaft, für die Sie einen Wert einstellen wollen.

  4. Geben Sie im Eingabefeld Ausgewählter Eigenschaftswert den neuen Wert ein, und klicken Sie anschließend auf OK.

Die folgende Tabelle enthält die CS-Authentifizierungseigenschaften, die Sie für eine Commerce Server-Site auf der globalen Ressourcenebene einstellen können.

Eigenschaft | Beschreibung
Anmeldeformular Formularname, der für die Anmeldung von Benutzern verwendet wird. Sie können einen der beiden Pfadtypen angeben:
  • Relativer Pfad zur Seite Login.asp. Verwendet http://Server und den AuthFilter Helper-Ordner.

  • Vollständiger Pfad zur Seite Login.asp.

Wenn Sie die SSL (Secure Sockets Layer) einsetzen, müssen Sie den vollständigen Pfad zur Seite Login.asp angeben. Beispiel:

http://www.microsoft.com/authfilter/login.asp.
Anmeldeversuche | Gibt an, wie oft Benutzer zur Eingabe von Benutzername und Kennwort aufgefordert werden, bevor eine Aufforderung angezeigt wird, sich mit dem Kundendienst in Verbindung zu setzen.
Größe des Kennwortzwischenspeichers | Die maximale Anzahl von Benutzern, deren Anmeldeinformationen im AuthFilter-Benutzerkennwort-Zwischenspeicher gespeichert werden können. Diese Eigenschaft wird nur im Windows-Authentifizierungsmodus verwendet.
Kennwortzwischenspeicher-Lebensdauer | Die Zeitdauer in Minuten, die Authentifizierungsanmeldeinformationen im Kennwortzwischenspeicher gespeichert werden. Diese Eigenschaft wird nur im Windows-Authentifizierungsmodus verwendet.
Zeitfenster für gültiges Ticket | Der Standardzeitraum, für den die vom Objekt AuthManager erzeugten Anmeldeinformationen gültig sind.
AuthProfile-Name | Name des Profilobjekts, das verwendet wird, wenn die Datenquelle für das Profilsystem partitioniert ist. Wenn das Standardschema verwendet wird, muss der Wert Profile Definitions.UserObject sein.
AuthFilter Helper-Ordner | Name des Ordners, den AuthFilter verwendet, um Hilfsdateien zu speichern. Alle Dateien, die AuthFilter zugeordnet sind, müssen sich in diesem Ordner befinden. Der Standardunterordner ist \AuthFiles. Der anonyme Zugriff muss für alle AuthFilter-Dateien aktiviert sein.
Fehlerformular Name des Formulars, das verwendet wird, wenn ein Zugriffsverweigerungsfehler auftritt. Sie können einen der beiden Pfadtypen angeben:
  • Relativer Pfad zum Formular. Verwendet http://Server und den AuthFilter Helper-Ordner.

  • Vollständiger Pfad zum Formular.
Hilfeformular Der Name des Formulars, das Hilfsinformationen zur Anmeldung enthält. Sie können einen der beiden Pfadtpyen angeben:
  • Relativer Pfad zum Formular. Verwendet http://Server und AuthFilter Helper-Ordner.

  • Vollständiger Pfad zum Formular.
Formular für interne Fehler Der Name des Fehlerformulars, das angezeigt wird, wenn ein interner Fehler auftritt. Sie können einen der beiden Pfadtypen angeben:
  • Relativer Pfad zum Formular. Verwendet http://Server und AuthFilter Helper-Ordner.

  • Vollständiger Pfad zum Formular.
Formular "Keine Cookies" Der Name des Formulars, das angezeigt wird, wenn für den Browser keine Cookies aktiviert sind bzw. wenn der Browser keine Cookies unterstützt. Sie können einen der beiden Pfadtypen angeben:
  • Relativer Pfad zum Formular. Verwendet http://Server und AuthFilter Helper-Ordner.

  • Vollständiger Pfad zum Formular.
Formular "AutoCookie" Name des Formulars, auf das umgeleitet wird, wenn Autocookies aktiviert sind. Sie können einen der beiden Pfadtypen angeben:
  • Relativer Pfad zum Formular. Verwendet http://Server und AuthFilter Helper-Ordner.

  • Vollständiger Pfad zum Formular.
Profilcookie-Ablaufdatum | Enddatum, nach dem das Cookie nicht mehr gültig ist.
Verschlüsselung aktivieren | Zum Aktivieren der Verschlüsselung von Cookiedaten legen Sie diese Eigenschaft auf Commerce-Siteebene fest. Anweisungen finden Sie unter Konfigurieren einer Anwendung.
Schlüssel für Cookiedaten | Der Schlüssel für die Ver- und Entschlüsselung von Cookiedaten. Informationen zum Erstellen eines neuen Verschlüsselungsschlüssels finden Sie unter Erstellen eines neuen Verschlüsselungsschlüssels.

Anmerkungen

  • Alle Dateien, die AuthFilter zugeordnet sind, müssen sich in einem Ordner befinden, der in der Eigenschaft Auth Filter Helper-Ordner angeben ist. Der Standardunterordner ist \AuthFiles. Der anonyme Zugriff muss für alle AuthFilter-Dateien aktiviert sein.

  • Wenn Sie eine globale CS-Authentifizierungseigenschaft geändert haben und AuthFilter verwenden, müssen Sie Internet-Informationsdienste (IIS) 5.0 neu starten. Anweisungen finden Sie unter Neustarten von IIS.

  • Wenn Sie eine Authentifizierungseigenschaft auf der Anwendungsebene geändert haben und AuthManager verwenden, müssen Sie API Refresh() verwenden oder IIS neu starten, um die aktualisierten Eigenschaftswerte anzuwenden.

Siehe auch

Working with Site Security and Filters (englisches Thema)

Konfigurieren der Eigenschaften der Anwendungsstandardkonfigurations-Ressource

Site Security Objects (englisches Thema)

AuthManager Object (englisches Thema)


Aktivieren der Windows-Authentifizierung

Wenn Sie die Windows-Authentifizierung verwenden, sucht AuthFilter in Active Directory nach Zugriffsrechten des Benutzers. Wenn ein Benutzer sich bei einer Site in diesem Modus anmeldet, ruft AuthFilter den Benutzernamen und das Kennwort aus der Hypertext Transfer Protocol (HTTP)-Anforderung ab und speichert sie im Cache. Außerdem wird ein Cookie festgelegt, der nur für die Dauer der Benutzersitzung gültig bleibt. Der Cookie kann dann von anderen Seiten überprüft werden, die der Benutzer während der Sitzung besucht. Im Windows-Authentifizierungsmodus bestimmt die Zugriffssteuerungsliste (ACL) den Zugriff auf jede Ressource in der Website.

Die Windows-Authentifizierung unterstützt ein Webfarm-Szenario mit einmaliger Anmeldung und die Verwendung von Proxykonten. Weitere Informationen über die einmalige Anmeldung finden Sie unter Cookies und Authentifizierung.

Anmerkung

  • In den folgenden Anweisungen wird davon ausgegangen, dass Sie den Sicherheitsmodus auf Ihrem Domänencontroller für lokale Anmeldungen eingestellt haben. Wenn Sie dies noch nicht getan haben, finden Sie Informationen dazu unter Einstellen des Sicherheitsmodus auf dem Domänencontroller.

So aktivieren Sie den Windows-Authentifizierungsmodus

  5. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und klicken Sie dann auf die Site, die Sie verwalten möchten.

  6. Erweitern Sie Anwendungen, klicken Sie mit der rechten Maustaste auf den Namen der Anwendung, mit der Sie arbeiten möchten, und klicken Sie dann auf Eigenschaften.

  7. Wählen Sie im Dialogfeld Eigenschaften auf der Registerkarte Allgemein im Feld Authentifizierungsfilter die Option Windows-Authentifizierung, und klicken Sie anschließend auf OK.

AuthFilter leitet die Anmeldeinformationen an Internet-Informationsdienste (IIS) 5.0 weiter. IIS überprüft den Benutzernamen und das Kennwort im Active Directory-Datenspeicher.

Anmerkung

  • Nachdem Sie eine Eigenschaft in Commerce Server-Manager geändert haben, müssen Sie die Anwendung aus den Speichern aller Webserver entfernen, damit die Änderungen wirksam werden. Anweisungen finden Sie unter Entfernen einer Anwendung aus dem Speicher.

Siehe auch

Working with Site Security and Filters (englisches Thema)

Aktivieren der benutzerdefinierten Authentifizierung

Aktivieren der Autocookie-Erzeugung

Aktivieren der Cookiefreigabe über Domänen/Anwendungen hinweg

Site Security Objects (englisches Thema)

AuthManager Object (englisches Thema)


Aktivieren der benutzerdefinierten Authentifizierung

Wenn Sie die benutzerdefinierte Authentifizierung implementieren müssen, können Sie AuthFilter verwenden, um sie in Ihre Site zu integrieren. Wenn Sie benutzerdefinierte Authentifizierung verwenden, sucht AuthFilter nach einem gültigen Authentifizierungsticket. Wenn kein gültiges Authentifizierungsticket gefunden wird, wird der Benutzer zur Anmeldeseite umgeleitet. Dort können Sie eine eigene benutzerdefinierte Authentifizierung vornehmen, indem Sie erst die Anmeldeinformationen überprüfen und nach erfolgreicher Überprüfung das Authentifizierungsticket einrichten.

Sie können z. B. das Profilsystem verwenden, um Zugriffsrechte aus dem Benutzerprofil abzurufen, wenn der Benutzer sich anmeldet. Das Profilsystem ruft Benutzerinformationen aus einer Datenquelle ab. Diese Datenquelle kann eine Microsoft SQL Server-Datenbank, Windows 2000 Active Directory oder eine andere OLE DB-kompatible Datenquelle bzw. ein gültiger LDAP-Datenspeicher der Version 3 sein.

So aktivieren Sie den benutzerdefinierten Authentifizierungsmodus

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und klicken Sie dann auf die Site, die Sie verwalten möchten.

  2. Erweitern Sie Anwendungen, klicken Sie mit der rechten Maustaste auf den Namen der Anwendung, mit der Sie arbeiten möchten, und klicken Sie dann auf Eigenschaften.

  3. Wählen Sie im Dialogfeld Eigenschaften auf der Registerkarte Allgemein im Dialogfeld Authentifizierungsfilter die Option Benutzerdefinierte Authentifizierung, und klicken Sie anschließend auf OK.

AuthFilter leitet die Benutzeranforderung an die Seite Login.asp weiter. Dort werden der Benutzername und das Kennwort in einer SQL Server-Datenbank oder in einem anderen Datenspeicher überprüft.

Anmerkung

  • Nachdem Sie eine Eigenschaft in Commerce Server-Manager geändert haben, müssen Sie die Anwendung aus den Speichern aller Webserver entfernen, damit die Änderungen wirksam werden. Anweisungen finden Sie unter Entfernen einer Anwendung aus dem Speicher.

Siehe auch

Working with Site Security and Filters (englisches Thema)

Aktivieren der Cookiefreigabe über Domänen/Anwendungen hinweg

Aktivieren der Windows-Authentifizierung

Aktivieren der Autocookie-Erzeugung

Site Security Objects (englisches Thema)

AuthManager Object (englisches Thema)


Aktivieren der Autocookie-Erzeugung

Wenn Sie den Autocookiemodus aktivieren, erzeugt AuthFilter automatisch einen persistenten Cookie (Profilticket), sodass der Benutzer als anonymer Benutzer behandelt wird. Wenn Sie den Autocookiemodus wählen, überprüft AuthFilter immer, ob der Browser diesen anonymen Cookie hat. Wenn sich der anonyme Cookie nicht im Browser befindet, leitet der Filter den Benutzer an das Formular AutoCookie um.

Der Autocookiemodus ermöglicht Commerce Server 2000 die Verwaltung der anonymen Benutzer. Wenn sich Benutzer mit anonymen Cookies registrieren, kann Commerce Server ihre persistenten Cookies aktualisieren. Die Profildaten, die gesammelt wurden, während die Benutzer anonym waren, gehen nicht verloren. Ob Commerce Server die persistenten Cookies aktualisiert, hängt allerdings davon ab, wie Sie Ihre Anwendung entwickelt haben.

So aktivieren Sie den Autocookiemodus

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und klicken Sie dann auf die Site, die Sie verwalten möchten.

  2. Erweitern Sie Anwendungen, klicken Sie mit der rechten Maustaste auf den Namen der Anwendung, mit der Sie arbeiten möchten, und klicken Sie dann auf Eigenschaften.

  3. Wählen Sie im Dialogfeld Eigenschaften auf der Registerkarte Allgemein die Option Autocookie, und klicken Sie anschließend auf OK.

AuthFilter erstellt nun automatisch persistente Cookies für anonyme Benutzer.

Anmerkung

  • Nachdem Sie eine Eigenschaft in Commerce Server-Manager geändert haben, müssen Sie die Anwendung aus den Speichern aller Webserver entfernen, damit die Änderungen wirksam werden. Anweisungen finden Sie unter Entfernen einer Anwendung aus dem Speicher.

Siehe auch

Working with Site Security and Filters (englisches Thema)

Aktivieren der Windows-Authentifizierung

Aktivieren der benutzerdefinierten Authentifizierung

Aktivieren der Cookiefreigabe über Domänen/Anwendungen hinweg

Site Security Objects (englisches Thema)

AuthManager Object (englisches Thema)


Aktivieren der Cookiefreigabe über Domänen/Anwendungen hinweg

Sie können Cookies über Domänen hinweg freigeben. Wenn Sie dies tun möchten, müssen Ihre Domänen auf der zweiten Ebene einen gemeinsamen Domänennamen haben. So können z. B. msn.microsoft.com und premier.microsoft.com gemeinsam Cookies nutzen, deren Domäneneigenschaft auf microsoft.com eingestellt ist. Sie können als Domäne nicht .com festlegen.

Wenn Sie Cookies nicht über Domänen hinweg freigeben möchten, können Sie sie über Anwendungen hinweg freigeben. Stellen Sie dazu die Pfadeigenschaft bei dem Cookie auf die Anwendung ein. So können Sie z. B. den Pfad auf /retail setzen, damit der Cookie über alle Anwendungen der Retail-Lösungssite hinweg freigegeben wird. Für Anwendungen, die nicht dasselbe virtuelle Verzeichnis haben, geben Sie Cookies frei, indem Sie als Pfad das Stammverzeichnis (/) angeben.

So aktivieren Sie die Cookiefreigabe über mehrere Domänen hinweg

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und klicken Sie dann auf die Site, die Sie verwalten möchten.

  2. Erweitern Sie Anwendungen, klicken Sie mit der rechten Maustaste auf die zu konfigurierende Anwendung, und klicken Sie anschließend auf die Option Eigenschaften.

  3. Legen Sie im Feld Anzahl der freigegebenen Domänenebenen fest, wie viele Domänenebenen identisch sein müssen, damit ein Cookie freigegeben wird. Setzen Sie z. B. den Wert auf 2, damit premier.microsoft.com und msn.microsoft.com den microsoft.com-Cookie gemeinsam nutzen.

  4. Klicken Sie auf OK.

  5. Starten Sie IIS neu. Anweisungen finden Sie unter Neustarten von IIS.

Anmerkung

  • Wenn Sie Verschlüsselung einsetzen, stellen Sie sicher, dass beide Domänen denselben Verschlüsselungsschlüssel einsetzen. Informationen zum Erstellen eines neuen Verschlüsselungsschlüssels finden Sie unter Erstellen eines neuen Verschlüsselungsschlüssels.

So aktivieren Sie die Cookiefreigabe über mehrere Anwendungen in derselben Site

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und klicken Sie dann auf die Site, die Sie verwalten möchten.

  2. Erweitern Sie Anwendungen, klicken Sie mit der rechten Maustaste auf die zu konfigurierende Anwendung, und klicken Sie anschließend auf die Option Eigenschaften.

  3. Deaktivieren Sie das Kontrollkästchen Den Pfad des Cookies zur Anwendung festlegen, und klicken Sie anschließend auf OK.

  4. Starten Sie IIS neu. Anweisungen finden Sie unter Neustarten von IIS.

Siehe auch

Cookies und Authentifizierung

Working with Site Security and Filters (englisches Thema)

Konfigurieren einer Anwendung

Site Security Objects (englisches Thema)

AuthManager Object (englisches Thema)


Einstellen des Sicherheitsmodus auf dem Domänencontroller

Sie müssen Domäne\Benutzer aktivieren, wenn der Windows-Authentifizierungsmodus in einer beliebigen Commerce Server-Site benutzt werden soll. Außerdem müssen Sie Domäne\Benutzer für die Supplier-Lösungssite aktivieren, in der Sie die Standardauthentifizierung verwenden möchten (anstelle der integrierten Authentifizierung).

So stellen Sie den Sicherheitsmodus auf dem Domänencontroller ein

  1. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Verwaltungstools, und klicken Sie anschließend auf Sicherheitsrichtlinie für Domänencontroller.

  2. Klicken Sie auf der Registerkarte Sicherheitseinstellungen auf Lokale Richtlinien, klicken Sie auf Zuweisen von Benutzerrechten. Klicken Sie anschließend auf Lokal anmelden.

  3. Fügen Sie im Dialogfeld Sicherheit zu dieser Richtlinie die Option Domäne\Benutzer hinzu, und klicken Sie anschließend auf OK.

Siehe auch

Aktivieren von AuthFilter für die Supplier-Lösungssite


Deaktivieren von AuthFilter

Wenn AuthFilter in Ihrer Site auf der Siteebene nicht verwendet werden soll, müssen Sie für eine Anwendung auf der Registerkarte Allgemeine Eigenschaften im Bereich Commerce-Authentifizierungsfilter den Modus Kein Filter wählen. Für diese Site müssen Sie auch die Autocookie-Erzeugung deaktivieren.

Wenn Sie den Modus Kein Filter für die CS-Authentifizierungsressource wählen, wird AuthFilter nicht auf die Website angewendet. Wenn Sie allerdings Kein Filter wählen und die Autocookie-Erzeugung aktiviert ist, wird AuthFilter auf die Site angewendet.

Im Modus Kein Filter kann der Siteentwickler Authentifizierung auf einzelne Active Server Pages (ASP) anwenden. Dazu werden Methoden des Objekts AuthManager aufgerufen. AuthManager ist ein COM-Objekt, das Methoden zur Benutzeridentifizierung und zur Zugriffssteuerung auf dynamisch erstellte Inhalte bereitstellt. Beispiel: Siteentwickler können die Methode GetUserID des Objekts AuthManager aufrufen, um einen Benutzer basierend auf einem Cookie oder einer Abfragezeichenfolge zu identifizieren.

Die Lösungssites für Commerce Server 2000 verwenden standardmäßig den Modus Kein Filter. Außerdem sind auf dem AuthManager basierende Authentifizierungsschemas implementiert. Wenn Sie die Sites ändern möchten, um AuthFilter zu nutzen, müssen Sie einige Änderungen an der Seite Login.asp und anderen Hilfsseiten vornehmen. Weitere Informationen finden Sie unter Aktivieren von AuthFilter für die Retail-Lösungssite und Aktivieren von AuthFilter für die Supplier-Lösungssite.

So deaktivieren Sie AuthFilter

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und klicken Sie dann auf die Site, die Sie verwalten möchten.

  2. Erweitern Sie Anwendungen, klicken Sie mit der rechten Maustaste auf die zu konfigurierende Anwendung, und klicken Sie anschließend auf die Option Eigenschaften.

  3. Wählen Sie im Dialogfeld Eigenschaften auf der Registerkarte Allgemein im Feld Authentifizierungsfilter die Option Kein Filter.

  4. Deaktivieren Sie ggf. das Kontrollkästchen Autocookie, und klicken Sie anschließend auf OK.

Anmerkung

  • Nachdem Sie eine Eigenschaft in Commerce Server-Manager geändert haben, müssen Sie die Internet-Informationsdienste (IIS) 5.0 neu starten, damit die Änderungen wirksam werden. Anweisungen finden Sie unter Neustarten von IIS.

  • Wenn Sie AuthFilter durch Auswahl des Modus Kein Filter für eine Site deaktivieren, müssen Sie die in der Site benötigten Sicherheitseinstellungen manuell konfigurieren. Verwenden Sie ISS zur manuellen Konfiguration der Sicherheitseinstellungen. Wählen Sie die Sicherheitseinstellungen, die Sie für die Site einrichten möchten. Starten Sie anschließend IIS neu. Anweisungen hierzu finden Sie unter Neustarten von IIS.

Siehe auch

Working with Site Security and Filters (englisches Thema)

Aktivieren von AuthFilter für die Retail-Lösungssite

Aktivieren von AuthFilter für die Supplier-Lösungssite

Entfernen einer Anwendung aus dem Speicher


Aktivieren von AuthFilter für die Retail-Lösungssite

Diese Anweisungen erklären, wie AuthFilter auf der Retail-Lösungssite aktiviert wird.

So aktivieren Sie AuthFilter in der Retail-Lösungssite

Wichtige Informationen über die Verwendung von AuthFilter

So aktivieren Sie AuthFilter in der Retail-Lösungssite

  1. Verwenden Sie Commerce Server Site Packager, um die Retail-Lösungssite zu entpacken.

  2. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und klicken Sie dann auf die Site, die Sie verwalten möchten.

  3. Erweitern Sie Anwendungen, klicken Sie mit der rechten Maustaste auf den Namen der Anwendung, mit der Sie arbeiten möchten, und klicken Sie dann auf Eigenschaften.

  4. Wählen Sie im Dialogfeld Eigenschaften auf der Registerkarte Allgemein im Feld Authentifizierungsfilter entweder die Option Windows-Authentifizierung oder Benutzerdefinierte Authentifizierung. Klicken Sie anschließend auf OK.

  5. Verwenden Sie den Editor, um Authfiles\Login.asp für die Site Retail zu öffnen.

  6. Vergewissern Sie sich in Login.asp, dass Sie über die in Retail\Login\Login.asp enthaltenen Dateien verfügen und dass der Code mit dem Beispiel übereinstimmt. Informationen zum Überprüfen des Codes im Beispiel finden Sie unter "Login.asp"-Code für die Retail-Lösungssite.

  7. Speichern und schließen Sie die aktualisierte Login.asp-Seite.

  8. Verwenden Sie zur Erstellung eines neuen Benutzers für die Retail-Lösungssite das Benutzermodul in Commerce Server Business Desk. Weitere Informationen finden Sie unter Hinzufügen eines Benutzers.

  9. Navigieren Sie mit Internet Explorer zu http://Computername/Retail.

Geben Sie auf der Anmeldeseite Ihren Benutzernamen und Ihr Kennwort ein, wenn Sie ein registrierter Benutzer sind. Wenn Sie sich nun registrieren möchten, klicken Sie auf den Link im unteren Bereich der Seite.

Die Login.asp-Seite erstellt das Authentifizierungsticket für den registrierten Benutzer, ruft das Profil des Benutzers ab und füllt die Webseite mit den abgerufenen Profilinformationen auf.

Wenn das Profil nicht gefunden werden konnte, wird die Login.asp-Seite mit einer Fehlermeldung und den beiden Anmeldeoptionen erneut angezeigt. Wenn der Benutzername oder das Kennwort ungültig ist, wird Login.asp erneut angezeigt, jedoch ohne Fehlermeldung. Folgen Sie den Anweisungen für die Login.asp-Seite, wenn Sie mithilfe von AuthFilter zu Ihrer Website eine Seite für die Registrierung oder für neue Benutzer hinzufügen möchten.

Anmerkung

  • Sie müssen eine eigene Registrierungsseite hinzufügen, auf der Sie Konten für Active Directory erstellen können.

  • Wenn Sie AuthFilter nach der Deaktivierung wieder aktivieren möchten, müssen Sie die Sicherheitseinstellungen in Internet-Informationsdienste (IIS) 5.0 manuell einstellen.

  • Nachdem Sie eine Eigenschaft in Commerce Server-Manager geändert haben, müssen Sie die Anwendung aus den Speichern aller Webserver entfernen, damit die Änderungen wirksam werden. Anweisungen finden Sie unter Entfernen einer Anwendung aus dem Speicher.

Wichtige Informationen über die Verwendung von AuthFilter

  • Wenn Sie eine Site im virtuellen Verzeichnis von IIS entpacken und AuthFilter dabei aktiviert ist, müssen Sie auf der Anwendungsebene die Eigenschaft Den Pfad des Cookies zur Anwendung festlegen deaktivieren. Diese Eigenschaft enthält die Pfadeigenschaft für Cookies. Die Eigenschaft ist standardmäßig aktiviert, sodass die Pfadeigenschaft auf das virtuelle Verzeichnis der Site eingestellt wird (z. B.: /retail). Durch Deaktivieren des Kontrollkästchens wird das Stammverezichnis (/) als Pfadeigenschaft der Cookies eingestellt. Sie müssen nach der Aktualisierung dieser Eigenschaft IIS neu starten. Anweisungen finden Sie unter Neustarten von IIS.

  • Stellen Sie sicher, dass Sie für alle Include-, GIF- oder Hilfsdateien, die von Login.asp verwendet werden, den anonymen Zugriff benutzen.

  • Bei der Windows-Authentifizierung verwendet die Standardanmeldeseite die Aktion Abrufen beim Absenden der Anmeldung. Login.asp unterstützt ebenfalls die Aktion Bereitstellen. Weitere Informationen über die Aktion Bereitstellen finden Sie in den Kommentaren in Login.asp. Folgen Sie diesen Anweisungen.

  • Es gibt ein bekanntes Sicherheitsproblem bei der Verwendung von Abrufen mit Login.asp. Raten Sie daher den Benutzern Ihrer Site, entweder ihre Browser so einzustellen, dass der Verlauf des Browsers nach dem Abmelden automatisch gelöscht wird, oder den Verlauf des Browsers manuell zu löschen.

  • Folgende Servervariablen sind bei der Windows-Authentifizierung nicht eingestellt: AUTH_USER und AUTH_TYPE. Die Servervariable LOGON_USER ist auf die Benutzer-ID eingestellt, die zum Anmelden verwendet wird.

  • Sie müssen in der CS-Authentifizierung die Eigenschaft s_Login_Form auf den vollständigen Pfad einstellen, um SSL (Secure Sockets Layer) zu verwenden. Anweisungen finden Sie unter Konfigurieren der CS-Authentifizierungsressource.

Siehe auch

Working with Site Security and Filters (englisches Thema)

Hinzufügen eines Benutzers

"Login.asp"-Code für die Retail-Lösungssite

"Login.asp"-Code für die Supplier-Lösungssite

Entfernen einer Anwendung aus dem Speicher

Konfigurieren der CS-Authentifizierungsressource


Aktivieren von AuthFilter für die Supplier-Lösungssite

Diese Anweisungen erklären, wie AuthFilter in der Supplier-Lösungssite aktiviert wird.

Für die Supplier-Lösungssite und für die Verwendung von AuthFilter im Windows-Authentifizierungsmodus müssen Sie den Sicherheitsmodus auf dem Domänencontroller für lokale Anmeldung einstellen. Wenn Sie dies noch nicht getan haben, finden Sie Informationen dazu unter Einstellen des Sicherheitsmodus auf dem Domänencontroller.

In der Supplier-Lösungssite sollte nur die Standardauthentifizierung aktiviert sein. Verändern Sie keine anderen Sicherheitseinstellungen.

Für den AuthFiles-Unterordner und alle in ihm enthaltenen Seiten sollte der anonyme Zugriff aktiviert sein.

Wenn der Domänencontroller und der Webserver auf verschiedenen Computern in derselben Domäne installiert sind, muss AuthFilter über ein anonymes Konto auf dem Webserver verfügen, damit die Methode ProfileService.GetUserProfileByKey() von jedem Profil/Benutzer auf der Anmeldeseite erfolgreich angewendet werden kann.

Standardmäßig heißt ein anonymes Benutzerkonto IUSR_Servername. In diesem Szenario verfügt IUSR_Servername nicht über genügend Zugriffsberechtigungen im Internetdienste-Manager, um die Methode erfolgreich anzuwenden. Wenn Ihr Webserver und Ihr Domänencontrollerserver nicht identisch sind, müssen Sie ein Benutzerkonto aus dieser Domäne als anonymes Konto hinzufügen. Erstellen Sie dazu zunächst in der Domäne ein Benutzerkonto, das Lesezugriff auf Benutzereigenschaften in Active Directory hat. Verwenden Sie dann auf dem Webserver den IIS-Manager, um für den AuthFiles-Unterordner und alle seine Dateien dasselbe Benutzerkonto als anonymes Konto einzurichten.

So aktivieren Sie AuthFilter in der Supplier-Lösungssite

Wichtige Informationen über die Verwendung von AuthFilter

So aktivieren Sie AuthFilter in der Supplier-Lösungssite

  1. Verwenden Sie Commerce Server Site Packager, um die Supplier-Lösungssite zu entpacken.

  2. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und klicken Sie dann auf die Site, die Sie verwalten möchten.

  3. Erweitern Sie Anwendungen, klicken Sie mit der rechten Maustaste auf den Namen der Anwendung, mit der Sie arbeiten möchten, und klicken Sie dann auf Eigenschaften.

  4. Wählen Sie im Dialogfeld Eigenschaften auf der Registerkarte Allgemein im Feld Authentifizierungsfilter entweder die Option Windows-Authentifizierung oder Benutzerdefinierte Authentifizierung. Klicken Sie anschließend auf OK.

  5. Erweitern Sie Internet-Informationsdienste, klicken Sie mit der rechten Maustaste auf die Site Supplier, und klicken Sie anschließend auf Eigenschaften.

  6. Klicken Sie im Dialogfeld Eigenschaften auf der Registerkarte Verzeichnissicherheit im Bereich Steuerung des anonymen Zugriffs und der Authentifizierung auf Bearbeiten.

  7. Deaktivieren Sie im Dialogfeld Authentifizierungsmethoden das Kontrollkästchen Integrierte Windows-Authentifizierung.

    Anmerkung

    • In der Supplier-Lösungssite sollte nur die Standardauthentifizierung aktiviert sein. Verändern Sie keine der weiteren Sicherheitseinstellungen.
  8. Verwenden Sie den Editor, um Authfiles\Login.asp für die Site Supplier zu öffnen.

  9. Wenn Sie eine Webfarm verwenden bzw. Unterstützung für das Proxykonto benötigen, aktualisieren Sie in Login.asp den Code, sodass er dem Code entspricht, der unter "Login.asp"-Code für die Supplier-Lösungssite angegeben ist.

    Wichtig

    • Wenn es sich um einen einzelnen Server handelt, der keine Unterstützung für ein Proxykonto benötigt, müssen Sie Login.asp nicht aktualisieren.
  10. Ändern Sie für die Windows-Authentifizierung die Methode GetUserInfo() in \SupplierAD\include\Std_access_lib.asp folgendermaßen:
Sub GetUserInfo()
    Dim sAuthUser, mscsUser
    Dim aName

    If dictConfig.i_DelegatedAdminOptions = DELEGATED_ADMIN_SUPPORTED Then
       sAuthUser = LoginName(Request.ServerVariables("LOGON_USER"))
        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
  11. Ändern Sie für die Windows-Authentifizierung in der Methode PrepareLoginSection in \SupplierAD\template\menu.asp den Code einer Zeichenfolge Request.ServerVariables so, dass er nicht länger auf die Servervariable "AUTH_USER", sondern auf die Servervariable "LOGON_USER" verweist. Zum Beispiel:

    Falsch: sAuthUser = Request.ServerVariables("AUTH_USER")

    Richtig: sAuthUser = Request.ServerVariables("LOGON_USER")

  12. Speichern und schließen Sie die aktualisierten Seiten Login.asp und menu.asp.

  13. Verwenden Sie Business Desk zum Erstellen eines neuen Benutzers für die Site Supplier.

    Wichtig

    • Erstellen Sie eine Organisation, bevor Sie der Site Supplier Benutzer hinzufügen bzw. neue Benutzer für diese erstellen.
  14. Navigieren Sie mit Internet Explorer zu http://Computername/SupplierAD.

  15. Geben Sie auf der Anmeldeseite den Benutzernamen ein, und verwenden Sie dabei das Format Domänenname\Benutzer-ID oder das UPN-Format (User Principal Name). (Sie können Logik zu Login.asp hinzufügen, um Benutzer-ID bzw. Namen zu erweitern). Geben Sie Ihr Kennwort ein, wenn Sie ein registrierter Benutzer sind. Wenn Sie sich nun registrieren möchten, klicken Sie auf den Link im unteren Bereich der Seite. (Sie müssen eine eigene Registrierungsseite hinzufügen, auf der Sie Konten für Active Directory erstellen können.)

Die Login.asp-Seite erstellt das Authentifizierungsticket für registrierte Benutzer, ruft das Profil der Benutzer ab und überprüft, wenn nötig, die Anmeldeinformationen. Durch die Anforderung wird die Webseite mit den angeforderten Informationen aufgefüllt.

Wenn der Benutzername oder das Kennwort ungültig ist oder das Profil nicht gefunden werden konnte, wird die Login.asp-Seite mit einer Fehlermeldung und den beiden Anmeldeoptionen erneut angezeigt.

Wichtige Informationen über die Verwendung von AuthFilter

  • Wenn Sie eine Site im virtuellen Verzeichnis von IIS entpacken und AuthFilter dabei aktiviert ist, müssen Sie auf der Anwendungsebene die Eigenschaft Den Pfad des Cookies zur Anwendung festlegen deaktivieren. Diese Eigenschaft enthält die Pfadeigenschaft für Cookies. Die Eigenschaft ist standardmäßig aktiviert, sodass die Pfadeigenschaft auf das virtuelle Verzeichnis der Site eingestellt wird (z. B.: /retail). Durch Deaktivieren des Kontrollkästchens wird das Stammverzeichnis (/) als Pfadeigenschaft der Cookies eingestellt. Sie müssen nach der Aktualisierung dieser Eigenschaft IIS neu starten. Anweisungen finden Sie unter Neustarten von IIS.

  • Stellen Sie sicher, dass Sie für alle Include-, GIF- oder Hilfsdateien, die von Login.asp verwendet werden, den anonymen Zugriff benutzen.

  • Bei der Windows-Authentifizierung verwendet die Standardanmeldeseite die Aktion Abrufen beim Absenden der Anmeldung. Die Aktion Bereitstellen wird ebenfalls mit Login.asp unterstützt. Weitere Informationen über die Aktion Bereitstellen finden Sie in den Kommentaren in Login.asp. Folgen Sie diesen Anweisungen.

  • Es gibt ein bekanntes Sicherheitsproblem bei der Verwendung von Abrufen mit Login.asp. Raten Sie daher den Benutzern Ihrer Site, entweder ihre Browser so einzustellen, dass der Verlauf des Browsers nach dem Abmelden automatisch gelöscht wird, oder den Verlauf des Browsers manuell zu löschen.

  • Folgende Servervariablen sind bei der Windows-Authentifizierung nicht eingestellt: AUTH_USER und AUTH_TYPE. Die Servervariable LOGON_USER ist auf die Benutzer-ID eingestellt, die zum Anmelden verwendet wird.

  • Sie müssen in der CS-Authentifizierung die Eigenschaft s_Login_Form auf den vollständigen Pfad einstellen, um SSL (Secure Sockets Layer) zu verwenden. Anweisungen finden Sie unter Konfigurieren der CS-Authentifizierungsressource.

Siehe auch

Working with Site Security and Filters (englisches Thema)

"Login.asp"-Code für die Supplier-Lösungssite


"Login.asp"-Code für die Retail-Lösungssite

Im Folgenden finden Sie den Code für die Datei Login.asp für die Retail-Lösungssite. Wenn Sie AuthFilter für die Site Retail verwenden möchten, müssen Sie diesen Code für die Datei Login.asp der Site verwenden. Weitere Informationen finden Sie unter Aktivieren von AuthFilter für die Retail-Lösungssite.

<!-- #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_cookie_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_url_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_util_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_profile_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%>

Siehe auch

Working with Site Security and Filters (englisches Thema)

Aktivieren von AuthFilter für die Retail-Lösungssite


"Login.asp"-Code für die Supplier-Lösungssite

Im Folgenden finden Sie den Code für die Datei Login.asp für die Supplier-Lösungssite. Wenn Sie AuthFilter für die Supplier-Site verwenden möchten, müssen Sie diesen Code für die Datei Login.asp der Site verwenden. Weitere Informationen finden Sie unter Aktivieren von AuthFilter für die Supplier-Lösungssite.

<!-- #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_cookie_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_url_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_util_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_profile_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%>

Siehe auch

Working with Site Security and Filters (englisches Thema)

Aktivieren von AuthFilter für die Supplier-Lösungssite


Verwenden der Windows-Authentifizierung mit Proxykonto in einer Webfarm

Sie können AuthFilter und Windows-Authentifizierung mit der Supplier-Lösungssite in einem Webfarm-Szenario verwenden. Sie müssen die GUID-Eigenschaft verwenden. Die Verwendung wird im Szenario DDoS-Angriff (Distributed Denial of Service) unter "Login.asp"-Code für die Supplier-Lösungssite beschrieben.

Außerdem müssen Sie die GUID-Eigenschaft mit dem Pfad der erstmaligen Anmeldung und dem Webfarm-Anmeldepfad verwenden. Der im folgenden Beispiel fett dargestellte Code zeigt die Änderungen, die Sie an der Datei Login.asp vornehmen müssen.

' after setting AuthTicket
     objAuth.SetAuthTicket strUserID, True, 90
  objAuth.SetProperty 2, "guid", strGUID

' 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="
   strRetAsp = strRetAsp + strGUID

Die Variable strGUID ist eine erzeugte GUID/UniqueID (z. B. durch das GUIDGen-Objekt) bzw. eine Profil-GUID.

Siehe auch

Working with Site Security and Filters (englisches Thema)


Erstellen eines neuen Verschlüsselungsschlüssels

Die CS-Authentifizierungsressource verwendet einen Schlüssel für die Ver- und Entschlüsselung von Cookiedaten. Standardmäßig wird beim Entpacken einer Site der Verschlüsselungsschlüssel des Pakets verwendet (sofern einer vorhanden ist). Der Verschlüsselungsschlüssel wird in der Datei AuthSetup.ini im Paket gespeichert. Wenn kein Schlüssel vorhanden ist, erstellt Commerce Server Site Packager einen neuen Schlüssel und verwendet dazu AuthManager::GenerateEncryptionKey().

Bei jedem Entpacken einer Site wird ein neuer Verschlüsselungsschlüssel erstellt. Wenn Sie einen eigenen Verschlüsselungsschlüssel mit der CS-Authentifizierungsressource packen, steht Ihnen bei jedem Entpacken dieses benutzerdefinierten Pakets derselbe Schlüssel zur Verfügung. Wenn Sie bei jedem Entpacken dieser Site einen neuen oder separaten Schlüssel verwenden möchten, müssen Sie nach dem Entpacken der Site in Commerce Server Manager auf die Schaltfläche Neuen Verschlüsselungsschlüssel erzeugen klicken.

Ändern Sie den Verschlüsselungsschlüssel nicht, während eine Site aktiv ist. Falls Sie einen Verschlüsselungsschlüssel aktualisieren, während eine Site aktiv ist, verlieren vorhandene Authentifizierungstickets ihre Gültigkeit, und Benutzer müssen sich erneut anmelden. Ein Ticket kann nur mit dem Schlüssel entschlüsselt werden, der auch zum Verschlüsseln verwendet wurde.

Anmerkung

  • Bevor Sie einen vorhandenen Verschlüsselungsschlüssel aktualisieren, müssen Sie eine Sicherung für diesen Verschlüsselungsschlüssel erstellen. Commerce Server erstellt Sicherungen für Sie nicht automatisch. Nachdem Sie einen neuen Schlüssel erstellt haben, kann der alte Schlüssel nicht mehr verwendet werden.

So erstellen Sie einen neuen Verschlüsselungsschlüssel

  1. Erweitern Sie erst Commerce Server-Manager, dann Commerce-Sites, und klicken Sie dann auf die Site, die Sie verwalten möchten.

  2. Erweitern Sie Anwendungen, klicken Sie mit der rechten Maustaste auf die zu konfigurierende Anwendung, und klicken Sie anschließend auf die Option Eigenschaften.

  3. Klicken Sie im unteren Bereich des Dialogfelds auf Neuen Verschlüsselungsschlüssel erzeugen.

  4. Klicken Sie im Bestätigungsdialogfeld auf OK.

Siehe auch

Working with Site Security and Filters (englisches Thema)


Ausführen des Datawarehouse

Mithilfe des Commerce Server-Datawarehouse können Sie Websitedaten importieren, transformieren und speichern. Daten können aus Webprotokolldateien, Commerce Server-Datenbanken und anderen Datenquellen, die Sie selbst festlegen, in das Datawarehouse importiert werden. Nach dem Import der Daten können Sie diese analysieren. Zu diesem Zweck führen Sie in Commerce Server Business Desk Berichte aus oder zeigen Populationssegmente an.

Die Datawarehouse-Datenbank wird beim Entpacken einer Site zu Microsoft SQL Server hinzugefügt. Zum Importieren und Verwalten der Daten arbeiten Sie mit Commerce Server-DTS-Tasks (Data Transformation Services) und SQL Server-Paketen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Workflow für den Datenimport. Veranschaulicht den Workflow für das Laden und Transformieren von Daten.

  • Informationen zum Datawarehouse. Beschreibt das Datawarehouse und die darin enthaltenen Datentypen.

  • Komponenten des Datawarehouse. Beschreibt die Komponenten des Datawarehouse.

  • Konfigurieren der Datawarehouse-Ressource. Erläutert die Konfiguration der Datawarehouse-Ressource.

  • Konfigurieren von Webprotokolldateien für den Import. Erläutert die Konfiguration der Standardeigenschaften einer Website für den Import.

  • Synchronisieren der Sitekonfiguration mit dem Datawarehouse. Erläutert die Synchronisierung der Sitekonfiguration mit dem Datawarehouse, sodass alle an der Anwendung vorgenommenen Änderungen an das Datawarehouse weitergegeben werden.

  • Konfigurieren der Importeigenschaften von Webprotokolldateien. Erläutert die Vorgehensweise zur Steuerung und Anpassung der Art und Weise, in der Daten aus Webprotokolldateien in das Datawarehouse importiert werden.

  • Importieren von Daten in das Datawarehouse. Erläutert die Vorgehensweise zum Importieren von Daten aus Webprotokolldateien, Katalogen, Kampagnen, Transaktionen und Benutzerprofilen in das Datawarehouse.

  • Ausführen der Internet Protocol-Auflösung. Erläutert die Auflösung von IP-Adressen (Internet Protocol) und beschreibt, was bei der IP-Auflösung geschieht.

  • Vorbereiten der Berichterstellung. Erläutert die Verwendung des Berichtsvorbereitungstasks und beschreibt dessen Rolle beim Laden von in Berichten verwendeten Daten in die OLAP-Cubes.

  • Löschen von Daten aus dem Datawarehouse. Erläutert das Löschen von Daten, die aus Webprotokolldateien importiert wurden, aus dem Datawarehouse.

  • Erweitern des Datawarehouse. Enthält eine Liste der zur Erweiterung des Datawarehouse zur Verfügung stehenden Ressourcen.


Workflow für den Datenimport

Die nachfolgende Abbildung zeigt ein Beispielszenario für den Import von Daten in das Datawarehouse.

Workflow für den Datenimport in das Datawarehouse
Webprotokolldatei Transaktion Benutzerprofil Produktkatalog Kampagne
Daten importieren
Für Analyse
verfügbare Daten
Berichtsvorbereitung
Webprotokolldateien
konfigurieren
Sitekonfiguration mit dem
Datawarehouse
synchronisieren


Informationen zum Datawarehouse

Mithilfe des Commerce Server-Datawarehouse können Sie Websitedaten importieren, transformieren und speichern. Anhand der im Datawarehouse gespeicherten Daten können Sie die Benutzeraktivität in der Website analysieren. Commerce Server 2000 bietet in Commerce Server Business Desk verschiedene Geschäftsanalysefeatures, z. B. Berichte. In diesen Berichten werden Daten aus dem Datawarehouse in verschiedenen Formaten so dargestellt, dass sie Aufschluss über spezifische wirtschaftliche Aspekte der Website geben.

Mithilfe des Datawarehouse können Sie die folgenden Aufgaben ausführen:

  • Importieren von Daten aus Webprotokolldateien, Benutzerprofilen, Transaktionen, Kampagnen und Katalogen von der Commerce Server 2000-Site. Es können auch Daten aus anderen Datenspeichern importiert werden, z. B. aus anderen Webservern.

  • Auflösen von IP-Adressen (Internet Protocol), die für Clienthosts importiert wurden, die eine Verbindung zu der Site hergestellt haben.

  • Vorbereiten der im Datawarehouse gespeicherten Daten für die Analyse durch Auffüllen der OLAP-Cubes (Online Analytical Processing), in denen die Daten während der Ausführung von Berichten für den Abruf organisiert werden.

  • Löschen importierter Protokolldateidaten, um durch Commerce Server belegten Speicherplatz in der SQL Server-Datenbank freizugeben.

  • Löschen aller Daten aus dem Datawarehouse, um vorhandene Testdaten oder archivierte Daten zu entfernen.

SQL Server-Pakete

Commerce Server und das Datawarehouse

SQL Server-Pakete

Zum Importieren, Transformieren und Speichern von Daten im Datawarehouse verwenden Sie die DTS-Tasks (Data Transformation Services) von Commerce Server, die beim Entpacken einer Site mit SQL Server-DTS-Paketen in SQL Server geladen werden. Das Arbeiten mit dem Datawarehouse ist sowohl direkt in SQL Server als auch im Commerce Server-Manager möglich.

Zum Ausführen von Vorgängen im Datawarehouse fügen Sie einem SQL Server-DTS-Paket Commerce Server-DTS-Tasks hinzu und führen das Paket dann aus. Sie können entweder jeweils nur einen Datawarehouse-Task ausführen, indem Sie ein Paket öffnen, diesem einen Task hinzufügen und das Paket dann ausführen. Alternativ können Sie aber auch einem Paket mehrere Tasks hinzufügen, Workflowanweisungen zur Reihenfolge der Tasks hinzufügen und das Paket dann ausführen, sodass alle Tasks in demselben Prozess in der von Ihnen vorgegebenen Reihenfolge ausgeführt werden.

Zusätzlich können Sie Pakete mit Tasks und Workflowanweisungen speichern. Gespeicherte Pakete sind dann sofort verfügbar, wenn Sie sie ausführen möchten. Mithilfe des SQL Server-Zeitplaners können Sie die Ausführung eines Pakets planen. Weitere Informationen zu DTS-Paketen, Tasks und dem SQL Server-Zeitplaner finden Sie in der SQL Server-Onlinedokumentation.

Commerce Server und das Datawarehouse

In Commerce Server werden die Daten im Datawarehouse folgendermaßen genutzt:

  • Mithilfe der Analysemodule in Business Desk führen Sie Berichte aus, die Ihnen durch Analyse der Daten im Datawarehouse Aufschluss über spezifische wirtschaftliche Aspekte der Website geben. Sie können auch im Segment-Viewer Segmentmodelle anzeigen, die unter Verwendung der Vorhersageressource erstellt wurden. Weitere Informationen zum Ausführen von Berichten und zum Anzeigen von Segmentmodellen in den Analysemodulen finden Sie unter Business Desk-Analyse.

  • Die Vorhersageressource im Commerce Server-Manager verwenden Sie, um Vorhersagemodelle, aus denen sich das zukünftige Benutzerverhalten ablesen lässt, sowie Segmentmodelle, in denen das Benutzerverhalten anhand der Daten im Datawarehouse analysiert wird, zu erstellen. Weitere Informationen zur Vorhersageressource finden Sie unter Ausführen der Vorhersageressource.

  • Mithilfe des Listen-Manager-Moduls in Business Desk können Sie Listen verwalten, die Sie unter Verwendung der Daten im Datawarehouse aus Analyseberichten und Segmentmodellen erstellen. Weitere Informationen zu Kampagnen und zum Listen-Manager-Modul finden Sie unter Business Desk-Kampagnen.

  • Die Profilressource im Commerce Server-Manager bietet Ihnen die Möglichkeit, zu definieren, welche Daten von den Benutzern der Website abgefragt werden sollen, und auszuwählen, welche der Informationen in das Datawarehouse importiert werden sollen. Weitere Informationen zur Profilressource finden Sie unter Ausführen der Profilressource.

  • Die Benutzermodule in Business Desk bieten Ihnen die Möglichkeit, die in der Website gesammelten Benutzerinformationen zu aktualisieren, zu definieren, welche Daten von den Benutzern der Website abgefragt werden sollen, und auszuwählen, welche der Informationen in das Datawarehouse importiert werden sollen. Weitere Informationen zu den Benutzermodulen finden Sie unter Business Desk-Benutzer.

Siehe auch

Importieren von Daten in das Datawarehouse


Komponenten des Datawarehouse

Im Datawarehouse kommen für das Importieren, Transformieren und Speichern der Daten von der Site DTS-Tasks (Data Transformation Services), Importprozesse und OLAP-Cubes (Online Analytical Processing) zum Einsatz.

Dieser Abschnitt beinhaltet folgende Themen:

  • DTS-Tasks

  • Importprozesse

  • Speichermodul des Datawarehouse

  • OLAP-Cubes


DTS-Tasks

Mithilfe von Commerce Server-DTS-Tasks (Data Transformation Services) importieren Sie Daten in das Datawarehouse oder ändern Sie vorhandene Daten. Die Commerce Server-Tasks werden beim Entpacken einer Site in SQL Server geladen. Wenn Sie Änderungen am Datawarehouse vornehmen möchten, fügen Sie die Commerce Server-Tasks einem SQL Server-Paket hinzu und führen dieses Paket dann aus.

Commerce Server bietet die folgenden Tasks zur Datenbearbeitung im Datawarehouse:

Import von Webserverprotokollen. Definiert und importiert Webprotokolldateien. Diesen Task verwenden Sie, um Eigenschaften für die Webprotokolldatei festzulegen. Diese wiederum sind ausschlaggebend dafür, welche Daten aus der Webprotokolldatei importiert werden und wie zwischen einzelnen Benutzern und Besuchen unterschieden wird.

Datenlöschung. Löscht detaillierte Protokolldateidaten und zusammengefasste Daten aus dem Datawarehouse. Durch das Löschen von Protokolldateidaten können Sie die Größe des Datawarehouse verringern. Das Löschen aller detaillierten oder zusammengefassten Daten ist sinnvoll, wenn Sie Testdaten importiert haben und das Datawarehouse vor dem Importieren gültiger Daten leeren möchten.

IP-Auflösung. Löst IP-Adressen (Internet Protocol) aus den importierten Benutzerdaten auf. Bei der IP-Auflösung werden die aus den Protokolldateien importierten IP-Adressen in Domänennamen konvertiert. So wird beispielsweise 198.105.232.4 zu www.microsoft.com. Auf diese Weise können die Leser von Berichten die in den Berichten enthaltenen Daten leichter verstehen.

Import von Kampagnendaten. Importiert Daten zu Kampagnen. Anhand der Kampagnendaten können Sie den Erfolg Ihrer Kampagnen analysieren. Zum Einrichten von Kampagnen arbeiten Sie mit der Kampagnenressource von Commerce Server Business Desk. Informationen zur Verwendung der Kampagnenmodule in Business Desk finden Sie im Hilfethema Informationen zu Kampagnen. Sie können auch Berichte ausführen, um Kampagnendaten zu analysieren. Informationen zu Berichten finden Sie unter Anzeigenberichte.

Import von Transaktionsdaten. Definiert und importiert Transaktionsdaten. Transaktionsdaten werden in der Website erstellt, wenn ein Benutzer Artikel zum Warenkorb hinzufügt bzw. daraus entfernt oder einen Einkauf tätigt. Zum Analysieren der Transaktionsdaten können Sie Berichte ausführen. Informationen zu Berichten finden Sie unter Produktverkaufsberichte.

Import von Benutzerprofildaten. Importiert Benutzerprofildaten in das Datawarehouse. Wenn Benutzer die Website besuchen, erfasst Commerce Server Benutzerprofildaten. Commerce Server erfasst Profildaten über registrierte Benutzer, wenn die Benutzer in der Website persönliche Informationen in die Profildefinition Benutzerobjekt eingeben.

Darüber hinaus erfasst Commerce Server auch Informationen zu den Aktionen von Gastbenutzern (also Benutzern, die in der Website nicht registriert sind). Die Profildaten zu Gastbenutzern enthalten einen globalen eindeutigen Bezeichner (GUID, Global Unique Identifier) sowie Verhaltensdaten für den jeweiligen Gastbenutzer.

Änderungen der Profildefinition Benutzerobjekt sind sowohl in der Profilressource im Commerce Server-Manager als auch im Profil-Designer-Modul in Business Desk möglich. Benutzerprofildaten können Sie im Benutzermodul in Business Desk ändern.

Informationen zur Arbeit mit Profildefinitionen in der Profilressource finden Sie unter Ausführen der Profilressource. Informationen zur Arbeit mit dem Profil-Designer-Modul und den Benutzermodulen in Business Desk finden Sie unter Business Desk-Benutzer. Sie können auch Berichte ausführen, um Benutzerdaten zu analysieren. Informationen zu Berichten finden Sie unter Benutzerberichte.

Berichtsvorbereitung. Füllt OLAP-Cubes mit den importierten Daten auf, bereitet die Daten für die Erstellung von Berichten vor und aktualisiert die Cubes nach einem Löschvorgang. Dieser Task muss nach jedem Import- und Löschtask ausgeführt werden.

Import von Produktkatalogen. Importiert Produktdaten aus Katalogen. Durch den Import von Produktdaten können Sie Transaktionsberichten Produktinformationen hinzufügen, die aussagekräftiger sind als die in den Transaktionsdaten enthaltenen. Sie können auch Berichte ausführen, um die Produktverkäufe zu analysieren. Informationen zu Berichten finden Sie unter Produktverkaufsberichte.

Konfigurationssynchronisation. Synchronisiert nach der Durchführung von Änderungen an Konfigurationseinstellungen das Datawarehouse mit der Commerce Server-Anwendung. Im Falle von Änderungen an der Konfiguration der Onlinesite sollte dieser Task vor jedem anderen Task ausgeführt werden.

Siehe auch

Konfigurieren von Webprotokolldateien für den Import

Konfigurieren der Importeigenschaften von Webprotokolldateien

Hinzufügen anderer Anwendungen und Webserver


Importprozesse

Commerce Server bietet fünf Importprozesse für den Import von Daten in das Datawarehouse und deren Transformation.

  • Importprozess für Daten aus Webprotokolldateien

  • Importprozess für Transaktionsdaten

  • Importprozess für Benutzerdaten

  • Importprozess für Kampagnendaten

  • Importprozess für Produktkatalogdaten

Importprozess für Daten aus Webprotokolldateien

Mit diesem Prozess werden Daten aus von den Webservern erzeugten Webprotokolldateien importiert. Die Webprotokolldateien müssen im erweiterten W3C-Webprotokolldateiformat (World Wide Web Consortium) vorliegen. Informationen zum Konfigurieren von Webprotokolldateien im erweiterten W3C-Webprotokolldateiformat finden Sie unter Konfigurieren von Webprotokolldateien für den Import.

Für den Importtask für Webserverprotokolle können Sie angeben, welche Protokolldatei importiert werden soll und wo diese sich befindet. Der Importprozess für Webprotokolldateien sucht dann am angegebenen Speicherort nach den Protokolldateien, analysiert diese und übernimmt die Eigenschaften, die Sie zuvor im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften festgelegt haben.

Falls die Site über mehrere Webserver verfügt, führt der Importprozess für Webprotokolldateien die Dateien von den verschiedenen Webservern im Speicher zusammen und ordnet die Webprotokolldaten chronologisch. Der Importprozess für Webprotokolldateien filtert die Daten aus den Webprotokolldateien unter Verwendung der von Ihnen festgelegten Importeigenschaften. Er wendet auch einen Rückschlussalgorithmus für Benutzerbesuche an, um Klickdaten in gesonderte Zähler für Benutzer und Besuche zu transformieren.

Außerdem können Sie wahlweise festlegen, dass mit der Website verbundene Abfragezeichenfolgen importiert werden sollen. Diese importiert der Importprozess für Webprotokolldateien dann ebenfalls. Informationen zum Konfigurieren von Webprotokolldateien finden Sie unter Konfigurieren der Importeigenschaften von Webprotokolldateien.

Commerce Server unterstützt auch Webserver, auf denen Internet-Informationsdienste (IIS) 5.0 nicht ausgeführt wird und die keine der Commerce Server-Komponenten aufweisen, die zur Erstellung von Protokolldateien im W3C-Protokolldateiformat fähig sind. Auch die Protokolldateien dieser Webserver können Sie so vorbereiten, dass sie in das Datawarehouse importiert werden können. Weitere Informationen zum Hinzufügen von Anwendungen und Webservern, die keine Commerce Server-Komponenten verwenden, finden Sie unter Hinzufügen anderer Anwendungen und Webserver.

Anmerkung

  • Der Importprozess für Webprotokolldateien kann keine Protokolldateien importieren, solange IIS aktiv in diese schreibt. Importieren Sie Protokolldateien nicht direkt von der Website. Überprüfen Sie stattdessen, ob der Server noch auf die Datei zugreift, und wenn dies nicht der Fall ist, kopieren Sie die Datei an einen anderen Speicherort. Anschließend können Sie sie von dem gewählten Speicherort importieren.

Importprozess für Transaktionsdaten

Dieser Prozess importiert Sitetransaktionsdaten, wenn Sie den Importtask für Transaktionsdaten ausführen. Bei Transaktionsdaten handelt es sich um gespeicherte Bestelldaten wie Aufträge und Anforderungsnummern. Wenn Sie Berichte über die importierten Transaktionsdaten ausführen, können Sie analysieren, wie gut sich einzelne Produkte verkaufen, wie viele Anforderungen eingehen und wie viel die Kunden kaufen. Sie können alle Transaktionsdaten aus der Commerce Server-Datenbank vollständig importieren oder einen inkrementellen Import der Transaktionsdaten durchführen, die noch nicht in das Datawarehouse importiert wurden.

Importprozess für Benutzerdaten

Dieser Prozess importiert Benutzerprofildaten, wenn Sie den Importtask für Benutzerprofildaten ausführen. Die Benutzerdaten werden in der Website mithilfe der Profildefinition Benutzerobjekt erfasst. Welche Benutzerprofileigenschaften in das Datawarehouse importiert werden sollen, legen Sie wiederum mithilfe des Profil-Designer-Moduls in Business Desk fest. (Alternativ können Sie zu diesem Zweck auch die Profilressource im Commerce Server-Manager verwenden.) Informationen zum Festlegen der Benutzerdaten, die in das Datawarehouse importiert werden sollen, finden Sie unter Profildefinitionen.

Wenn Sie Berichte über die importierten Benutzerdaten ausführen, können Sie analysieren, ob der Kreis der Benutzer sich erweitert, und den Erfolg der Site daran messen, wie viele Gastbenutzer sich registrieren lassen. Der Importprozess für Benutzerdaten importiert die Benutzerdaten in bestimmten Intervallen in das Datawarehouse. Diese Intervalle können Sie selbst bestimmen, um zu vermeiden, dass die Datenbanktabelle gesperrt wird. Wenn Sie beispielsweise Daten zu 10.000 Benutzern importieren möchten, können Sie für den Benutzerdatenimport Intervalle von 15 Minuten angeben, damit der Server nicht überlastet wird.

Sie können alle Benutzerdaten aus der Commerce Server-Datenbank vollständig importieren oder einen inkrementellen Import der Benutzerdaten durchführen, die noch nicht in das Datawarehouse importiert wurden.

Importprozess für Kampagnendaten

Dieser Prozess importiert Kampagnendaten, wenn Sie den Importtask für Kampagnendaten ausführen. Zu den Kampagnendaten zählen Informationen zu Werbungstreibenden, Werbekampagnen und Kampagnenartikeln. Der Kampagnenimportprozess importiert Kampagnendaten aus der Commerce Server-Datenbank. Wenn Sie Berichte über die importierten Kampagnendaten ausführen, können Sie den Erfolg Ihrer Werbemaßnahmen analysieren.

Importprozess für Produktkatalogdaten

Dieser Prozess importiert Daten über die Produkte im Katalog, wenn Sie den Importtask für Produktkatalogdaten ausführen. Zu den Produktkatalogdaten zählen dimensionale Informationen zu den Katalogprodukten, z. B. Name, Beschreibung, Farbe und Größe. Der Katalogdatenimportprozess importiert die Katalogdaten aus der Commerce Server-Datenbank. Katalogdaten sind für bestimmte Berichte wie beispielsweise Produktanalyse und Transaktionsanalyse zur korrekten Anzeige erforderlich. Werden Katalogdaten nicht in das Datawarehouse importiert, sind Produkte in Berichten ausschließlich anhand ihrer SKU-Nummern (Stock Keeping Unit) zu identifizieren.

Siehe auch

Konfigurieren von Webprotokolldateien für den Import

Konfigurieren der Importeigenschaften von Webprotokolldateien

Hinzufügen anderer Anwendungen und Webserver

Hinzufügen von Eigenschaften zu Profildefinitionen


Speichermodul des Datawarehouse

Das Speichermodul des Datawarehouse bietet drei Speicherprozesse für das Laden von Daten in das Datawarehouse.

  • Zusammenfassung

  • Schemaverwaltung

  • Laden von Daten

Zusammenfassung

Mit der Zusammenfassung arbeiten Sie, um Benutzer-, Transaktions-, Kampagnen- und Katalogdaten aus der Commerce Server-Datenbank zusammenzufassen, wenn Sie den Importtask für Webserverprotokolle und den Berichtsvorbereitungstask ausführen. Bei der Zusammenfassung werden Rohdaten in der Commerce Server-Datenbank in Informationen im Datawarehouse transformiert, anhand derer Sie dann die Benutzeraktivität in der Website analysieren können. Zu diesem Zweck werden die relevanten Rohdaten zusammengeführt und gezählt.

So werden beispielsweise 1.000 Einträge über einzelne Zugriffe auf eine bestimmte Seite zu der Information zusammengefasst, dass auf der Seite 1.000 Zugriffe stattfanden. Diese Informationen können für Sie von Nutzen sein, um einen vermehrten Datenverkehr in der Website zu planen.

Schemaverwaltung

Mithilfe der Schemaverwaltung können Sie das Datawarehouse-Schema während des Importprozesses je nach Bedarf verändern. Wenn Sie beispielsweise der Profildefinition Benutzerobjekt eine neue Eigenschaft hinzufügen und diese als exportiert kennzeichnen, fügt der Importprozess für Benutzerprofildaten dem Datawarehouse-Schema die neue Spalte hinzu, sobald Benutzerprofildaten, die diese Eigenschaft enthalten, importiert werden.

In der folgenden Tabelle werden die verschiedenen Importprozesse aufgeführt und die Änderungen erläutert, die das Speichermodul des Datawarehouse am Datawarehouse-Schema vornimmt.

Importprozess | Änderung am Datawarehouse-Schema
Webprotokolldatei | Dem Schema werden Abfragezeichenfolgen hinzugefügt.
Benutzer | Benutzerprofileigenschaften werden dem Schema hinzugefügt bzw. aus diesem entfernt.
Produktkatalog | Produktkatalogdimensionen werden dem Schema hinzugefügt bzw. aus diesem entfernt.

Laden von Daten

Verwenden Sie diesen Prozess, um das Laden von großen Datenmengen in die Datawarehouse-Datenbank durch parallele Lese- und Schreibzugriffe zu unterstützen.

Siehe auch

Konfigurieren von Webprotokolldateien für den Import

Konfigurieren der Importeigenschaften von Webprotokolldateien

Hinzufügen anderer Anwendungen und Webserver


OLAP-Cubes

Bei OLAP-Cubes (Online Analytical Processing) handelt es sich um Datenstrukturen, die im Datawarehouse die importierten Daten aufnehmen. Innerhalb der Cubes werden die Daten in Teilmengen unterteilt, die nach gemeinsamen Dimensionen definiert werden.

Bei einer Dimension handelt es sich um das beschreibende Attribut eines Measures. So könnte eine Dimension beispielsweise die Anzahl von Käufen bezeichnen, die ein Benutzer tätigt. Dabei ist die Anzahl der Käufe ein Measure. Der Benutzer und die gekauften Produkte sind Dimensionen. In der folgenden Abbildung wird der Zusammenhang zwischen Dimensionen und Measures verdeutlicht. Weitere Informationen zu OLAP-Cubes finden Sie in der SQL Server-Onlinedokumentation.

Dimensionen und Measures
Einheiten
Zeit
Produkt
Zeit
Produkt
Dimensions-
tabellen
Geografische Daten
Geografische Daten
Dimension
Measures

Die von Commerce Server verwendeten OLAP-Cubes werden während des Entpackens erstellt und dann aufgefüllt und für den Datenabruf aufbereitet, sobald der Berichtsvorbereitungstask ausgeführt wird. Durch die Speicherung von Daten in Cubes können Daten rascher abgerufen werden, wenn Sie in Business Desk Analyseberichte für die Website ausführen. Der folgenden Tabelle können Sie die Cubes und Dimensionen von Commerce Server entnehmen.

Cube | Dimensionen
Benutzertrends pro Woche | Datum Site Kalenderwoche
Kampagne | Werbungstreibender Kampagne Datum und Uhrzeit Ereignisse Seitengruppe Site Benutzertyp URI
Verkäufe | Kundenbestellungen Datum Produkte Site Benutzertyp
Warenkorbereignisse | Datum und Uhrzeit Ereignisse Produkte Registrierter Benutzer Site Benutzertyp
Bestellereignisse | Datum und Uhrzeit Wochentag Ereignisse Uhrzeit Site Benutzertyp Kalenderwoche
Käuferbesuche | Käufertyp Site Benutzertyp
Bandbreite | Datum und Uhrzeit Wochentag Uhrzeit Site
Benutzer | Datum Site Benutzertyp
Eingangsseiten | Datum Site URI
Ausgangsseiten | Datum Site URI
Webverwendung | Datum Datum und Uhrzeit Wochentag Uhrzeit Verweiser Registrierter Benutzer Sitebenutzertyp Kalenderwoche
Seitenverwendung | Datum HTTP-Status Ist-Anforderung Verzeichnis der Ebene Site URI Win32-Status

Siehe auch

Konfigurieren von Webprotokolldateien für den Import

Konfigurieren der Importeigenschaften von Webprotokolldateien

Hinzufügen anderer Anwendungen und Webserver


Konfigurieren der Datawarehouse-Ressource

Die Datawarehouse-Ressource muss so konfiguriert werden, dass das Datawarehouse mit Microsoft SQL Server eingesetzt werden kann. Zusätzlich können Sie die Zeitzone und den ersten Tag der Woche, die das Datawarehouse den importierten Zeitdaten zuweist, konfigurieren.

Zum Verbinden des Datawarehouse mit SQL Server legen Sie während der Installation die Verbindungszeichenfolge fest. Mithilfe des Commerce Server-Managers können Sie die Benutzer-ID und das Kennwort in der Verbindungszeichenfolge auf der Ebene der globalen Ressourcen ändern. Das Datawarehouse meldet sich bei SQL Server mit einer Benutzer-ID und einem Kennwort an.

Anmerkung

  • Sie können nur die Benutzer-ID und das Kennwort in der Verbindungszeichenfolge für das Datawarehouse ändern. Wenn Sie die gesamte Verbindungszeichenfolge ändern möchten, müssen Sie die Site erneut entpacken. Informationen zum Entpacken einer Site finden Sie unter Entpacken einer Site und Beispiel B: Installation auf einer Konfiguration mit drei Computern ohne Cluster.

So ändern Sie die Verbindungszeichenfolge auf der Ebene der globalen Ressourcen

So ändern Sie die Zeitzone und den ersten Tag der Woche

So ändern Sie die Verbindungszeichenfolge auf der Ebene der globalen Ressourcen

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, klicken Sie mit der rechten Maustaste auf Datawarehouse, und klicken Sie dann auf Eigenschaften.

  2. Nehmen Sie im Dialogfeld Eigenschaften von Datawarehouse auf der Registerkarte Verbindung die folgenden Einstellungen vor:
    Option | Aktion
    SQL Server-Authentifizierung | Klicken Sie hierauf, um die Anmeldeinformationen anhand eines angegebenen Benutzernamens und Kennworts zu authentifizieren.
    Benutzer-ID | Geben Sie die Benutzer-ID ein, die bei der Anmeldung zur Authentifizierung verwendet werden soll.
    Kennwort | Geben Sie das Kennwort ein, das bei der Anmeldung zur Authentifizierung verwendet werden soll.

  3. Klicken Sie auf OK, um die vorgenommenen Änderungen zu speichern.

So ändern Sie die Zeitzone und den ersten Tag der Woche

  4. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, klicken Sie mit der rechten Maustaste auf Datawarehouse, und klicken Sie dann auf Eigenschaften.

  5. Nehmen Sie im Dialogfeld Eigenschaften von Datawarehouse auf der Registerkarte Uhrzeit die folgenden Einstellungen vor:
    Option | Aktion
    Zeitzone anpassen an | Wählen Sie in der Dropdownliste die gewünschte Zeitzone aus.
    Erster Tag der Woche | Wählen Sie in der Dropdownliste den ersten Tag der Woche aus.

  6. Klicken Sie auf OK, um die vorgenommenen Änderungen zu speichern.

Anmerkung

  • Der in SQL Server festgelegte erste Tag der Woche wird in Berichten verwendet. Der erste Tag der Woche, den Sie im Dialogfeld Eigenschaften von Datawarehouse festlegen, dient hingegen dazu, die aus Webprotokolldateien importierten Daten wöchentlich zu aggregieren.

Die Datawarehouse-Ressource ist nun konfiguriert. Bevor Sie jedoch Daten in das Datawarehouse importieren, müssen Sie die Webprotokolldateien für den Import konfigurieren und die Sitekonfiguration mit dem Datawarehouse synchronisieren.

Siehe auch

Installieren von Commerce Server

Entpacken einer Site

Konfigurieren eines Webservers


Konfigurieren von Webprotokolldateien für den Import

Bevor Sie Webprotokolldateien in das Datawarehouse importieren können, müssen Sie zunächst die Eigenschaften der Webprotokolldateien so konfigurieren, dass diese im Protokolldateiformat nach dem W3C-Standard (World Wide Web Consortium) vorliegen. Zum Konfigurieren der Eigenschaften der Webprotokolldateien verwenden Sie den Internetdienste-Manager.

So konfigurieren Sie die Standardeigenschaften einer Website für den Import

So geben Sie im Datawarehouse den Speicherort einer Protokolldatei an

So konfigurieren Sie die Standardeigenschaften einer Website für den Import

  1. Erweitern Sie nacheinander Internet-Informationsdienste und den Server, auf dem Sie die Site entpackt haben, klicken Sie mit der rechten Maustaste auf die Standardwebsite, und klicken Sie dann auf Eigenschaften.

  2. Nehmen Sie im Dialogfeld Standardwebsite-Eigenschaften auf der Registerkarte Website die folgenden Einstellungen vor:
    Option | Aktion
    Protokollierung aktivieren | Aktivieren Sie diese Option, wenn die Aktivität in der Website in einem Protokoll aufgezeichnet werden soll.
    Aktives Protokollformat | Wählen Sie in der Dropdownliste den Eintrag Erweitertes W3C-Protokolldateiformat aus.

  3. Klicken Sie auf Eigenschaften.

  4. Nehmen Sie im Dialogfeld Erweiterte Protokollierungseigenschaften auf der Registerkarte Erweiterte Eigenschaften die folgenden Einstellungen vor:
    Eigenschaft | Importierte Daten
    Datum | Der Tag, an dem es zu einer Aktivität in der Website gekommen ist.
    Uhrzeit | Die Uhrzeit, zu der die Aktivität aufgetreten ist.
    Client-IP-Adresse | Die IP-Adresse des Clients, der auf den Server zugegriffen hat.
    Benutzername | Der Name des Benutzers, der auf den Server zugegriffen hat.
    Server-IP-Adresse | Die IP-Adresse des Servers, auf dem der Protokolleintrag erzeugt wurde.
    Serveranschluss | Die Anschlussnummer, über die der Client verbunden ist.
    Methode | Die Aktion, die der Client auszuführen versucht hat (z. B. Öffnen einer Webseite).
    URI-Stamm | Der URI-Stamm (Uniform Resource Identifier) der Ressource, auf die zugegriffen wurde, beispielsweise einer HTML-Seite.
    URI-Abfrage | Die Abfrage, die der Client ggf. auszuführen versucht hat. Beispielsweise eine Suchzeichenfolge, für die der Client eine Übereinstimmung gesucht hat.
    HTTP-Status | Der Status der Aktion in für HTTP üblichen Begriffen.
    Win32-Status | Der Status der Aktion in den für Microsoft Windows üblichen Begriffen.
    Bytes gesendet | Die Anzahl Bytes, die der Server gesendet hat.
    Bytes empfangen | Die Anzahl Bytes, die der Server empfangen hat.
    Benutzer-Agent | Der auf dem Client verwendete Browser.
    Cookie | Der Inhalt des gesendeten bzw. empfangenen Cookies.
    Verweiser | Die Site, die den Benutzer zu der aktuellen Site geführt hat.

    Wichtig

    • Webprotokolldateien werden nur fehlerfrei importiert, wenn Sie Client-IP-Adresse, URI-Stamm und Uhrzeit ausgewählt haben. Wählen Sie auch die Eigenschaft Datum aus, um sicherzugehen, dass Datumsangaben in Berichten richtig erscheinen. Informationen zum Festlegen der Webservereigenschaften finden Sie unter Konfigurieren eines Webservers.
  5. Klicken Sie auf OK, um das Dialogfeld Erweiterte Protokollierungseigenschaften zu schließen, und klicken Sie dann erneut auf OK, um auch das Dialogfeld Standardwebsite-Eigenschaften zu schließen.

Die Eigenschaften der Webprotokolldateien sind nun im W3C-Protokolldateiformat konfiguriert.

So geben Sie im Datawarehouse den Speicherort einer Protokolldatei an

  1. Erweitern Sie nacheinander Internet-Informationsdienste und den Servernamen, klicken Sie mit der rechten Maustaste auf Standardwebsite, und klicken Sie dann auf Eigenschaften.

  2. Klicken Sie im Dialogfeld Standardwebsite-Eigenschaften auf Eigenschaften.

  3. Geben Sie im Dialogfeld Erweiterte Protokollierungseigenschaften auf der Registerkarte Allgemeine Eigenschaften im Feld Protokolldateiverzeichnis den Pfad des Protokolldateiverzeichnisses ein.

  4. Klicken Sie auf OK, um das Dialogfeld Eigenschaften der Protokolldatei zu schließen, und klicken Sie dann erneut auf OK, um auch das Dialogfeld Standardwebsite-Eigenschaften zu schließen.

Das Datawarehouse kann nun die Protokolldatei für die Website finden. Nachdem Sie die Standardeigenschaften der Website für den Import in das Datawarehouse konfiguriert haben, müssen Sie die IIS-Eigenschaften im Commerce Server-Manager mit den Eigenschaften in der IIS-Metabasis und im Datawarehouse synchronisieren. Anweisungen zum Synchronisieren der IIS-Eigenschaften mit dem Datawarehouse finden Sie unter Synchronisieren der Sitekonfiguration mit dem Datawarehouse.

Siehe auch

Konfigurieren eines Webservers

Konfigurieren einer Anwendung

Hinzufügen anderer Anwendungen und Webserver

Synchronisieren der Sitekonfiguration mit dem Datawarehouse


Synchronisieren der Sitekonfiguration mit dem Datawarehouse

Mit dem Konfigurationssynchronisationstask arbeiten Sie, um die Sitekonfiguration mit dem Datawarehouse zu synchronisieren, sodass alle an der Sitekonfiguration vorgenommenen Änderungen an das Datawarehouse weitergegeben werden. Den Synchronisationstask müssen Sie ausführen, bevor Sie die Import- und Löschtasks ausführen können.

So synchronisieren Sie die Sitekonfiguration mit dem Datawarehouse

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Konfigurationssynchronisation (Commerce Server).

  4. Nehmen Sie im Dialogfeld Eigenschaften von DW-Synchronisierung die folgenden Einstellungen vor:
    Option | Aktion
    Beschreibung | Geben Sie eine Beschreibung des Synchronisationstasks ein.
    Sitename | Wählen Sie in der Dropdownliste die Site aus, die mit dem Datawarehouse synchronisiert werden soll.

  5. Klicken Sie auf OK.

  6. Klicken Sie im Menü Paket auf Ausführen.

    Das Dialogfeld Paket ausführen, in dem Sie über den Status der Synchronisation informiert werden, wird angezeigt. Nach Abschluss des Vorgangs wird im Dialogfeld Paketausführungsergebnisse der Hinweis angezeigt, dass der Vorgang erfolgreich abgeschlossen wurde.

  7. Klicken Sie auf OK und anschließend auf Fertig.

Das Datawarehouse ist nun mit der Commerce Server-Sitekonfiguration synchronisiert. Sie können jetzt die Importeigenschaften für die Webprotokolldatei konfigurieren oder Daten in das Datawarehouse importieren.

Siehe auch

Konfigurieren von Webprotokolldateien für den Import

Konfigurieren eines Webservers

Konfigurieren einer Anwendung

Hinzufügen anderer Anwendungen und Webserver


Konfigurieren der Importeigenschaften von Webprotokolldateien

Sie können fünf Eigenschaftengruppen konfigurieren, um zu steuern und anzupassen, welche Daten in welcher Form aus den Webprotokolldateien in das Datawarehouse importiert werden. Die Einstellungen, die Sie für diese Eigenschaften auswählen, können positive Auswirkungen auf die Datenanalyse haben und zudem die Importprozesse beschleunigen und die Verwaltung des Datawarehouse erleichtern.

Anmerkung

  • Sofern nichts anderes angegeben ist, gelten die Einstellungen für alle Anwendungen in der Site.

Anhand der folgenden Eigenschaften steuern Sie, welche Daten aus den Webprotokolldateien in das Datawarehouse importiert werden.

  • Std.-Dateien. Hiermit wird gewährleistet, dass die Zugriffszahlen für einmalige Besucher der Standardseite Ihrer Site genau sind, wobei auch Umleitungen und mehrere Versionen des URLs berücksichtigt werden.

  • Ausgeschlossen. Hiermit wird verhindert, dass die folgenden Daten in das Datawarehouse importiert werden: Zugriffe von bestimmten Hosts, Anforderungen für bestimmte Dateitypen oder Ausdrücke sowie Zugriffe durch Suchmaschinen.

  • Rückschlüsse. Hiermit können Sie die Annahmen anpassen, die während des Imports in Bezug auf Benutzer und Besuche vorausgesetzt werden, sodass die Analyseanforderungen Ihrer Organisation bestmöglich erfüllt werden.

  • Protokolldat. Hiermit können Sie die Reaktion auf Zeitüberlappungen in Protokolldateien anpassen.

  • Abfr.-Zeichenfolgen. Hiermit können Sie Abfragezeichenfolgen für Websites importieren, sodass die mit diesen verbundenen Daten analysiert werden können.

Siehe auch

Komponenten des Datawarehouse

Synchronisieren des Datawarehouse mit der Anwendung

Importieren von Daten in das Datawarehouse

Vorbereiten der Berichterstellung


Std.-Dateien

Bei einer Standarddatei, auch als Verzeichnisindexdatei oder Homepage bezeichnet, handelt es sich um die Webseite, auf die Benutzer zunächst gelangen, wenn sie in der Adresszeile des Browsers einen Site-URL eingeben, der keinen bestimmten Dateinamen enthält. So gelangen Benutzer beispielsweise zur Seite www.microsoft/default.htm, wenn sie im Browser entweder www.microsoft.com oder www.microsoft.com/default.htm eingeben. In Webprotokolldateien werden die beiden URLs jedoch als Zugriffe auf zwei verschiedene Seiten gezählt.

Sie können die Option Std.-Dateien in Commerce Server 2000 so einstellen, dass mehrere URLs als Zugriffe auf dieselbe Seite gezählt werden. Mithilfe dieser Option können Sie Umleitungen und mehrere Pfade zu Ihrer Site erstellen, ohne dass die Genauigkeit der Gesamtbenutzerstatistik für die Site darunter leidet.

Zusätzlich können Sie wahlweise Dateinamenszeichenfolgen ohne Angabe der obersten Verzeichnisse anzeigen, bevor sie importiert werden. Durch diese Vorgehensweise erleichtern Sie sich die Arbeit mit Ihren Dateien, wenn die Verzeichnisse der Site in einem Unterverzeichnis gespeichert sind, über das Sie in den Berichten keine Angaben benötigen.

Für Internet-Informationsdienste (IIS) 5.0 wird diese Einstellung automatisch während der Installation mit den in IIS aufgeführten grundlegenden URL-Verzeichnisindexdateien synchronisiert.

Anmerkung

  • Für andere Server lauten die Standardeinstellungen Index.html, Index.htm, und Default.htm. Falls diese Einstellungen für Ihre Site nicht richtig sind, ändern Sie sie, um sicherzustellen, dass die Anzahl der Anforderungen genau erfasst wird.

So stellen Sie eine Verzeichnisindexdatei ein

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Import von Webserverprotokollen (Commerce Server).

  4. Klicken Sie im Dialogfeld Webserverprotokolle importieren auf Erweitert.

  5. Nehmen Sie im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften auf der Registerkarte Std.-Dateien die folgenden Einstellungen vor:
    Option | Aktion
    Oberstes Verzeichnis von Dateisystempfaden entfernen | Aktivieren Sie diese Option, damit Dateinamenszeichenfolgen ohne Angabe der obersten Verzeichnisse angezeigt werden.
    Verzeichnisindexdatei | Geben Sie den Namen der Datei ein, die als Verzeichnisindexdatei verwendet werden soll.
    Hinzufügen | Klicken Sie hierauf, um die neue Verzeichnisindexdatei der Liste der Standarddateien hinzuzufügen.

  6. Klicken Sie auf Übernehmen und anschließend auf OK.

Die Verzeichnisindexdateien für den Importprozess für Webprotokolldateien sind nun festgelegt. Sie können mit der Konfiguration des Importprozesses für Webprotokolldateien fortfahren oder Daten in das Datawarehouse importieren. Bevor Sie jedoch Daten in das Datawarehouse importieren, müssen Sie die Sitekonfiguration mit dem Datawarehouse synchronisieren.

Siehe auch

Komponenten des Datawarehouse

Konfigurieren der Importeigenschaften von Webprotokolldateien

Importieren von Daten in das Datawarehouse


Ausgeschlossen

Sie können beim Importieren bestimmte Datentypen ausschließen. Durch das Ausschließen bestimmter Daten können Sie das Datawarehouse auf einer Größe halten, bei der die Verwaltung noch problemlos möglich ist. Zudem können auf diese Weise Seitenanforderungen in Berichten genauer definiert werden. Die folgenden Datentypen können ausgeschlossen werden:

  • Hosts. Sie können Daten von Benutzern ausschließen, die von bestimmten Hosts aus zugreifen (z. B. Mitarbeiter oder Softwaretester). Diese Funktion wird in der Regel eingesetzt, um interne Hosts auszuschließen. Sie können jedoch auch jeden anderen Host für den Ausschluss angeben.

    Zugriffe von ausgeschlossenen Hosts aus werden nicht in das Datawarehouse importiert. Dennoch werden auch solche Zugriffe in manchen Zusammenfassungsberichten berücksichtigt, z. B. in den Berichten Zusammenfassung der Zugriffsanzahl und Zusammenfassung der Bandbreite.

    Wenn Sie einen auszuschließenden Hostnamen eingeben, müssen Sie in Commerce Server 2000 eine Zeichenfolge angeben, anhand derer das Programm die Protokolldateien durchsuchen kann. So werden beispielsweise bei Eingabe von www.microsoft.com Informationen von Benutzern ausgeschlossen, deren Host www.microsoft.com ist. Leerzeichen sind in den eingegebenen Namen nicht zulässig.

  • Dateitypen. Auch wenn eine Seite Ihrer Website mehrere Dateien umfassen kann, ist es sinnvoll, dass nicht für jede Datei der Seite ein Zugriff gezählt wird, sondern nur eine Seitenanforderung. Enthält z. B. eine Seite Grafiken, die in separaten Dateien gespeichert sind, logisch jedoch einen Teil der Seite ausmachen, schließen Sie die Grafikdateien vom Import aus, um genauere Zugriffszahlen zu erhalten. Wenn Sie die Eigenschaft Ausgeschlossen festlegen, um Dateien vom Import auszuschließen, geben Sie die Dateinamenerweiterungen der auszuschließenden Dateitypen an.

    Standardmäßig werden Dateien mit den Erweiterungen .GIF, .JPG, .JPEG, .CSS und .CDF von Commerce Server-Importen ausgenommen. Sie können aber auch Dateinamenerweiterungen aus der Ausschlussliste entfernen. Der eingegebene Name ist die Zeichenfolge, nach der Commerce Server die Protokolldateien durchsucht. Achten Sie daher unbedingt darauf, die Erweiterung korrekt einzugeben.

  • Dateiausdrücke. Sie können Dateien nicht nur anhand ihrer Namenerweiterung vom Import ausschließen, sondern auch anhand des Dateipfades. Dabei können Sie entweder einen vollständigen Dateiausdruck für eine einzelne Datei eingeben oder aber Platzhalterzeichen verwenden, um eine ganze Gruppe von Dateien auszuschließen, deren Ausdrücke übereinstimmende Zeichen enthalten.

    Bei Dateiausdrücken wird nicht zwischen Groß- und Kleinschreibung unterschieden. Unterstriche (_) und Leerzeichen sind nicht zulässig. Geben Sie stets genau die Zeichenfolge ein, nach der Commerce Server suchen soll.

    Der folgenden Tabelle können Sie die Platzhalterzeichen entnehmen, die in Dateiausdrücken verwendet werden können.

    Zeichen Beschreibung Beispiel
    * Steht für beliebig viele Zeichen in einer Zeichenfolge. t* kann für Test, total und toll stehen.
    ? Steht für ein einzelnes alphanumerisches Zeichen. Te?t kann für Test und Text stehen.

  • Suchmaschinen. Suchmodule sind von Suchmaschinen abhängig, die das World Wide Web durchlaufen und nach bestimmten Inhalten, Titeln, Schlüsselwörtern usw. suchen. Suchmaschinen werden standardmäßig vom Import ausgeschlossen, um zu verhindern, dass Zugriffe durch Internetsuchmodule, Roboter und andere Benutzer-Agenten in das Datawarehouse importiert werden. (In bestimmten Berichten wie Zusammenfassung der Zugriffsanzahl und Zusammenfassung der Bandbreite erscheinen solche Zugriffe jedoch.)

    In der Datei Crawler.ini. im Stammverzeichnis von Commerce Server finden Sie eine Liste der Suchmaschinen, die standardmäßig ausgeschlossen sind. Diese Standardliste umfasst die wichtigsten Suchmaschinen, die auch von den großen für die Webüberwachung zuständigen Organisationen ausgeschlossen werden. Sie können der Ausschlussliste neue Suchmaschinen hinzufügen oder ausgeschlossene Suchmaschinen für den Import zulassen. Letzteres kann sich jedoch negativ auf die Systemleistung auswirken.

Auf der Registerkarte Ausgeschlossen im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften finden Sie eine Dropdownliste, in der Sie die Datentypen auswählen können, mit denen Sie arbeiten möchten. Wählen Sie in der Liste die Option Alle aus, um eine Liste aller Ausschlüsse anzuzeigen.

Wenn Sie Daten vom Import ausschließen, gilt der Ausschluss dieser Daten standardmäßig für alle in der Site ausgeführten Anwendungen. Sie können aber auch Daten für bestimmte Anwendungen ausschließen, während die gleichen Daten bei anderen Anwendungen in der Site einbezogen werden.

Angenommen, Sie verfügen über zwei Anwendungen in Ihrer Site, nämlich Anwendung 1 und Anwendung 2, und beide Anwendungen enthalten ein Verzeichnis namens /Beispiele. Sie können entweder den Inhalt des Verzeichnisses /Beispiele für beide Anwendungen ausschließen oder festlegen, dass nur Daten aus dem Verzeichnis /Beispiele von Anwendung 1 ausgeschlossen werden sollen. In diesem Fall wird der Inhalt des Verzeichnisses /Beispiele von Anwendung 2 auch weiterhin importiert.

So fügen Sie einen Importausschluss hinzu

So löschen Sie einen Importausschluss

So fügen Sie einen Importausschluss hinzu

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Import von Webserverprotokollen (Commerce Server).

  4. Klicken Sie im Dialogfeld Webserverprotokolle importieren auf Erweitert.

  5. Nehmen Sie im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften auf der Registerkarte Ausgeschlossen die folgenden Einstellungen vor:
    Option | Aktion
    Standardsuchmaschinenliste für die Ausschlusskriterien einschließen | Aktivieren Sie dieses Kontrollkästchen, um den Import von Suchmaschinen von der Standardsuchmaschinenliste zu verhindern.
    Hinzufügen | Klicken Sie hierauf, um das Dialogfeld Ausgeschlossen zu öffnen und ein neues Ausschlusselement zu erstellen.

  6. Nehmen Sie im Dialogfeld Ausgeschlossen die folgenden Einstellungen vor:
    Option | Aktion
    Markieren Sie die Ausschlusskategorie | Wählen Sie in der Dropdownliste den Typ des hinzuzufügenden Ausschlusses aus.
    Name | Geben Sie die Zeichenfolge ein, nach der Commerce Server die Protokolldateien durchsuchen soll. Zum Ausschließen von Grafikdateien geben Sie beispielsweise *.GIF ein. Commerce Server importiert keine Elemente, die der eingegebenen Zeichenfolge entsprechen. Leerzeichen dürfen in der Zeichenfolge nicht enthalten sein.
    Alle Anwendungen in einer Site | Wählen Sie diese Option aus, wenn das Element von allen Anwendungen innerhalb einer Site ausgeschlossen werden soll.
    Ausgewählte Anwendungen in einer Site | Wählen Sie diese Option aus, wenn das Element nur von einer bestimmten Anwendung ausgeschlossen werden soll.
    Alle auswählen | Wählen Sie diese Option aus, um die Daten von allen oberhalb der Schaltfläche aufgeführten Anwendungen auszuschließen.
    Auswahl aufheben | Wählen Sie diese Option aus, um die Auswahl aller oberhalb der Schaltfläche aufgeführten Anwendungen aufzuheben.

  7. Klicken Sie auf OK, um das Dialogfeld Ausgeschlossen zu schließen und zur Registerkarte Ausgeschlossen des Dialogfelds Erweiterte Webprotokollimport-Eigenschaften zurückzukehren.

  8. Fügen Sie weitere Ausschlüsse hinzu. Klicken Sie abschließend auf Übernehmen, und klicken Sie auf OK, um die vorgenommenen Änderungen zu speichern und das Dialogfeld zu schließen.

So löschen Sie einen Importausschluss

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Import von Webserverprotokollen (Commerce Server).

  4. Klicken Sie im Dialogfeld Webserverprotokolle importieren auf Erweitert.

  5. Nehmen Sie im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften auf der Registerkarte Ausgeschlossen die folgenden Einstellungen vor:
    Option | Aktion
    Ausschlusstyp | Wählen Sie das zu löschende Ausschlusselement aus.
    Entfernen | Entfernen Sie das Ausschlusselement.

  6. Klicken Sie auf Übernehmen und anschließend auf OK, um das Dialogfeld zu schließen.

Die Importausschlüsse für den Importprozess für Webprotokolldateien sind nun konfiguriert. Sie können nun die Konfiguration der Importeigenschaften für die Webprotokolldatei fortsetzen oder Daten in das Datawarehouse importieren. Bevor Sie jedoch Daten in das Datawarehouse importieren, müssen Sie die Sitekonfiguration mit dem Datawarehouse synchronisieren.

Siehe auch

Komponenten des Datawarehouse

Konfigurieren der Importeigenschaften von Webprotokolldateien

Importieren von Daten in das Datawarehouse


Rückschlüsse

In Commerce Server 2000 wird der Datenverkehr in einer Website anhand von Benutzerbesuchen analysiert. Ein Besuch kann als Gruppe von Anforderungen desselben Benutzers innerhalb eines festgelegten Zeitraums definiert werden. Bei der Identifizierung von Benutzern treten jedoch gewisse Ungenauigkeiten auf, da die Webclientcomputer Daten nur in begrenztem Umfang an den Webservercomputer senden. Commerce Server versucht, Benutzer anhand der Eigenschaften in der Webprotokolldatei zu identifizieren. Die Identifizierung von Benutzern anhand der Eigenschaften in der Webprotokolldatei wird als Rückschluss bezeichnet. Sie können im Datawarehouse Rückschlüsse auf Benutzer und Besuche festlegen und auf diese Weise anpassen, welche Annahmen während des Imports in Bezug auf Benutzer und Besuche vorausgesetzt werden, sodass die Analyseanforderungen Ihrer Organisation bestmöglich erfüllt werden.

Benutzer

Besuche

Benutzer

Es kann sinnvoll sein, Benutzer als Personen zu identifizieren, deren Such- oder Kaufmuster von Interesse sind.

Commerce Server bietet drei Optionen zur Identifizierung von Benutzern.

  • Commerce Server-Identifizierungscookies für Rückschlüsse verwenden. Sie können Commerce Server so einstellen, dass automatisch verschlüsselte Cookies ausgegeben werden, die verschiedene Benutzer identifizieren und Benutzerprofilen in der Commerce Server-Datenbank zuordnen.

  • Benutzernamen für Rückschlüsse verwenden. Wenn sich Benutzer bei der Site registrieren, können sie anhand ihrer selbst gewählten Benutzernamen identifiziert werden

  • Benutzerdefinierte Cookiebezeichner verwenden. Sie können einen benutzerdefinierten Cookiebezeichner hinzufügen.

Anmerkung

  • Wenn Sie zuvor mit Microsoft Site Server 3.0 Commerce Edition (SSCE) gearbeitet haben, werden die früher verwendeten Site Server-Cookies nun als benutzerdefinierte Cookies behandelt. Sie werden im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften auf der Registerkarte Rückschlüsse direkt unterhalb des Textfelds Neuen benutzerdefinierten Cookiebezeichner eingeben in der Liste der benutzerdefinierten Cookies angezeigt.

Standardmäßig sind alle drei Methoden für Commerce Server aktiviert. Sofern Sie nicht eine oder mehrere dieser Methoden deaktivieren, werden diese in der folgenden Reihenfolge zur Identifizierung von Benutzern verwendet: Commerce Server-Identifizierungscookies, benutzerdefinierte Cookiebezeichner und Benutzernamen. Sind diese Methoden nicht aktiviert oder verfügbar, werden Benutzer anhand ihrer IP-Adresse und des Client-Agenten identifiziert.

So legen Sie einen Rückschluss für Benutzer fest

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Import von Webserverprotokollen (Commerce Server).

  4. Klicken Sie im Dialogfeld Webserverprotokolle importieren auf Erweitert.

  5. Nehmen Sie im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften auf der Registerkarte Rückschlüsse die folgenden Einstellungen vor:
    Option | Aktion
    Commerce Server-Identifizierungscookies für Rückschlüsse verwenden | Aktivieren Sie dieses Kontrollkästchen, wenn Sie Commerce Server-Cookies für Benutzerrückschlüsse verwenden möchten.
    Benutzernamen für Rückschlüsse verwenden | Aktivieren Sie dieses Kontrollkästchen, wenn Sie eindeutige Benutzernamen für Rückschlüsse verwenden möchten.
    Benutzerdefinierte Cookiebezeichner verwenden | Aktivieren Sie dieses Kontrollkästchen, wenn Sie benutzerdefinierte Cookies für Rückschlüsse verwenden möchten.
    Neuen benutzerdefinierten Cookiebezeichner eingeben | Geben Sie den Bezeichner für das benutzerdefinierte Cookie in dieses Feld ein.
    Hinzufügen | Klicken Sie hierauf, um den neuen benutzerdefinierten Cookiebezeichner hinzuzufügen.
    Entfernen | Klicken Sie hierauf, um die ausgewählten benutzerdefinierten Cookiebezeichner zu entfernen.
    Nach oben | Klicken Sie hierauf, um den ausgewählten benutzerdefinierten Cookiebezeichner an eine Stelle weiter oben in der Liste zu verschieben. Cookies werden in der Reihenfolge ausgeführt, in der sie auch in der Liste erscheinen.
    Nach unten | Klicken Sie hierauf, um den ausgewählten benutzerdefinierten Cookiebezeichner an eine Stelle weiter unten in der Liste zu verschieben. Cookies werden in der Reihenfolge ausgeführt, in der sie auch in der Liste erscheinen.

  6. Klicken Sie auf Übernehmen und anschließend auf OK.

Der Benutzerrückschluss für den Importprozess für Webprotokolldateien ist nun konfiguriert. Sie können nun die Konfiguration der Importeigenschaften für die Webprotokolldatei fortsetzen oder Daten in das Datawarehouse importieren. Bevor Sie jedoch Daten in das Datawarehouse importieren, müssen Sie die Sitekonfiguration mit dem Datawarehouse synchronisieren.

Besuche

Der Besuch einer Website entspricht der Zeitdauer, während derer ein einzelner Besucher mit dieser Website interagiert. In der Regel beginnt ein Besuch, sobald ein Benutzer auf eine Site zugreift, indem er entweder auf einen Link zu der Site klickt oder den Site-URL in die Adresszeile seines Browsers eingibt. Festzustellen, wann ein Besuch endet, gestaltet sich hingegen schwieriger. Wenn der Benutzer während einer Sitzung den Browser schließt oder minimiert oder in die Adresszeile des Browsers einen neuen URL eingibt, wird kein Protokolleintrag erzeugt, der auf das Ende des Besuchs hinweist.

Um diesen Mangel an eindeutigen Hinweisen auf das Ende eines Besuchs auszugleichen, gilt in Commerce Server ein Standardbesuchstimeout von 30 Minuten nach der letzten Benutzeraktivität, wodurch dann das Ende des Besuchs festgelegt wird. Wahlweise können Sie den Wert für das Besuchstimeout auch ändern, um den Erfordernissen Ihrer Website besser gerecht zu werden. Kehrt der Benutzer kurz nach Ablauf des Besuchstimeouts und Beendigung des Besuchs zur Site zurück, werden im Bericht zwei Besuche verzeichnet.

Anmerkung

  • In manchen Fällen protokolliert der Server möglicherweise die Benutzerbesuchsaktivität nicht chronologisch, wodurch dann unter Umständen Daten für einen Besuch nicht in chronologischer Reihenfolge importiert werden. Das Datawarehouse ist in der Lage, diesen Mangel bis zum Ablauf des Besuchstimeouts auszugleichen. Überschreitet ein Besuch jedoch das Besuchstimeout, ist die Genauigkeit der Daten nicht mehr gewährleistet.

So legen Sie einen Rückschluss für Besuche fest

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Import von Webserverprotokollen (Commerce Server).

  4. Klicken Sie im Dialogfeld Webserverprotokolle importieren auf Erweitert.

  5. Geben Sie im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften auf der Registerkarte Rückschlüsse im Feld Rückschlüsse besuchen eine Zahl für die Anzahl der Minuten ein, während derer ein Benutzer inaktiv sein muss, bevor ein Besuch beendet wird.

  6. Klicken Sie auf Übernehmen und anschließend auf OK.

Der Besuchsrückschluss für den Importprozess für Webprotokolldateien ist nun konfiguriert. Sie können nun die Konfiguration der Importeigenschaften für die Webprotokolldatei fortsetzen oder Daten in das Datawarehouse importieren. Bevor Sie jedoch Daten in das Datawarehouse importieren, müssen Sie die Sitekonfiguration mit dem Datawarehouse synchronisieren.

Siehe auch

Komponenten des Datawarehouse

Konfigurieren der Importeigenschaften von Webprotokolldateien

Importieren von Daten in das Datawarehouse


Protokolldat.

Verwenden Sie die Eigenschaft Überlappen, um Redundanzen zu vermeiden, die auftreten können, wenn Protokolldateien Anforderungen mit zeitlichen Überschneidungen enthalten. Mithilfe der Eigenschaft Drehung können Sie Redundanzen und Datenverluste vermeiden, zu denen es kommen kann, wenn bei Servern eine Rotation der Protokolldateien vorgenommen wird, um zu verhindern, dass diese zu groß werden.

Wenn die Einstellungen Überlappen und Drehung nicht vorgenommen werden, ist der Import von Protokolldateien ohne den Verlust von Aktivitätsdaten in das Datawarehouse nicht möglich, da während des Betriebs der Site ständig Protokolldateien erstellt werden. Dass Dateien Daten für überlappende Zeiträume enthalten, kann vorkommen, wenn Sie Protokolldateien auf separaten Servern ausführen, die Protokollierung auf einem einzelnen Server unterbrechen und fortsetzen, versehentlich eine Protokolldatei erneut importieren oder unterschiedliche Protokolldateien verketten.

Überlappen

Drehung

Überlappen

Zeitüberlappungen können auftreten, wenn Sie mehrere Server mit einer Site verknüpft haben, die Protokollierung auf einem einzelnen Server unterbrechen und fortsetzen, versehentlich eine Protokolldatei erneut importieren oder unterschiedliche Protokolldateien verketten. (Durch eine Verkettung wird die Nachverfolgung von Zeitüberlappungen erheblich erschwert, und daher sollten Verkettungen vermieden werden.) Die standardmäßige Zeitüberlappungsdauer für Commerce Server liegt bei 30 Minuten.

Wenn während eines Imports eine Zeitüberlappung festgestellt wird, werden standardmäßig die überlappenden Anforderungen verworfen, während die übrigen Anforderungen importiert werden. Sie können sowohl die Zeitüberlappungsdauer als auch die gewünschte Reaktion auf erkannte Überlappungen ändern.

Wenn Sie eine Protokolldatei versehentlich importieren, können Sie sie unter Verwendung des Datenlöschungstasks wieder löschen. Informationen zum Löschen von Protokolldateien finden Sie unter Löschen von Daten aus dem Datawarehouse.

In der folgenden Abbildung wird verdeutlicht, wie die vier bei einer Überlappung möglichen Aktionen, nämlich Datensätze verwerfen und Vorgang fortsetzen, Alle Datensätze importieren, Import beenden und Alle Importe beenden, sich auf die Teile der zweiten und dritten Protokolldatei auswirken, die bei Erkennung einer Überlappung beibehalten werden.

Anteil der nicht importierten Protokolldatei
Anteil der importierten Protokolldatei
Protokolldatei
Protokoll-
datei 3
Protokoll-
datei 2
Protokoll-
datei 1
Datensätze verwerfen und Vorgang fortsetzen
Alle Datensätze
importieren
Import
beenden
Alle Importe
beenden

So konfigurieren Sie Zeitüberlappungen in Webprotokolldateien

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Import von Webserverprotokollen (Commerce Server).

  4. Klicken Sie im Dialogfeld Webserverprotokolle importieren auf Erweitert.

  5. Nehmen Sie im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften auf der Registerkarte Protokolldat. die folgenden Einstellungen vor:
    Option | Aktion
    Anzahl der Minuten, die Datensätze überlappen müssen | Geben Sie die Anzahl der Minuten ein, die Datensätze überlappen müssen.
    Wenn Überlappung festgestellt wird Wählen Sie die Aktion aus, die bei Feststellung einer Überlappung ausgeführt werden soll:
    • Datensätze verwerfen und Vorgang fortsetzen. (Standardeinstellung) Alle Anforderungen mit Überlappung werden verworfen, während die verbleibenden Anforderungen importiert werden.

    • Alle Datensätze importieren. Importiert alle Anforderungen, auch solche mit Überlappungen.

    • Import beenden. Verhindert den Import der gesamten Protokolldatei, die überlappende Anforderungen enthält. Alle anderen Protokolldateien werden importiert.

    • Alle Importe beenden. Beendet alle Importe von Protokolldateien. Wenn Sie die Daten, die vor Erkennung der überlappenden Anforderung bereits importiert wurden, nicht behalten möchten, müssen Sie die importierte Protokolldatei löschen.

    Anmerkung

    • Treten beim Import Probleme auf, wählen Sie zur Problembehandlung die Option Import beenden oder Alle Importe beenden aus.
  6. Klicken Sie auf Übernehmen und anschließend auf OK.

Der Eigenschaft Überlappen für den Importprozess für Webprotokolldateien ist nun konfiguriert. Sie können nun die Konfiguration der Importeigenschaften für die Webprotokolldatei fortsetzen oder Daten in das Datawarehouse importieren. Bevor Sie jedoch Daten in das Datawarehouse importieren, müssen Sie die Sitekonfiguration mit dem Datawarehouse synchronisieren.

Drehung

Bei der Rotation von Protokolldateien werden die Daten in den Protokolldateien willkürlich abgeschnitten. Dabei werden Daten für manche Besuche zwischen dem Ende der einen Protokolldatei und dem Anfang der nächsten aufgeteilt. Diese offenen Besuche können Sie wahlweise am Ende des Importprozesses speichern, Sie können einen Commit ausführen oder die offenen Besuche verwerfen.

So legen Sie die Protokolldateirotation fest

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Import von Webserverprotokollen (Commerce Server).

  4. Klicken Sie im Dialogfeld Webserverprotokolle importieren auf Erweitert.

  5. Nehmen Sie im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften auf der Registerkarte Protokolldat. die folgenden Einstellungen vor:
    Option Aktion
    Nach Abschluss des Imports Legen Sie fest, was am Ende des Importprozesses mit den offenen Besuchen geschehen soll:
    • Offene Besuche für den nächsten Import speichern. (Standardeinstellungen) Stellt den Besuch wieder so her, als wäre eine nahtlose Protokolldatei vorhanden. Diese Option ist etwas zeitaufwendiger, da die offenen Besuche bei jedem neuen Import aus dem Cache aufgerufen werden müssen. Die Option funktioniert nur fehlerfrei, wenn Sie die Protokolldateien in chronologischer Reihenfolge importieren.

    • Commit offener Besuche in die Datenbank ausführen. Die Anzahl der Besuche ist zu Beginn und zum Ende der Protokolldateiperiode höher, da Besuche, die sich über die beiden Perioden erstrecken, zweimal gezählt werden.

    • Offene Besuche verwerfen. Am Ende der Protokolldateiperiode ist die Berichtsanzahl geringer, da nicht geschlossene Besuche gelöscht werden.

  6. Klicken Sie auf Übernehmen und anschließend auf OK.

Die Eigenschaft Drehung für den Importprozess für Webprotokolldateien ist nun konfiguriert. Sie können nun die Konfiguration der Importeigenschaften fortsetzen oder Daten in das Datawarehouse importieren. Bevor Sie jedoch Daten in das Datawarehouse importieren, müssen Sie die Sitekonfiguration mit dem Datawarehouse synchronisieren.

Siehe auch

Komponenten des Datawarehouse

Konfigurieren der Importeigenschaften von Webprotokolldateien

Importieren von Daten in das Datawarehouse


Abfr.-Zeichenfolgen

Wenn in Ihrer Site Abfragezeichenfolgen verwendet werden, können Sie diese in Protokolldateien erfassen und in das Datawarehouse importieren. Abfragezeichenfolgen sind in einer Site für die Suche sowie zur Ausführung ausführbarer Dateien nützlich. Wenn Sie über eine Liste der in der Site verwendeten Abfragezeichenfolgen verfügen, können Sie die Berichterstellung für den mit diesen Abfragezeichenfolgen verknüpften Inhalt aktivieren.

Standardmäßig werden Abfragezeichenfolgen mit dem Uniform Resource Identifier (URI) im Datawarehouse gespeichert. Anhand der Abfragezeichenfolgen können Sie HTML-Titelsuchen für die Seiten der Site, die Abfragezeichenfolgen verwenden, ausführen. Wenn es jedoch viele verschiedene Kombinationen von Parameternamen und Werten für die Abfragezeichenfolgen in den Protokolldateien gibt, kann die Anzahl der importieren Anforderungen erheblich zunehmen, wodurch wiederum die Systemleistung beeinträchtigt wird. Falls dieser Fall eintritt, kann es sinnvoll sein, keine Abfragezeichenfolgen mehr mit dem URI zu speichern.

Anmerkungen

  • Es können insgesamt maximal 256 Abfragezeichenfolgen mit einem und mehreren Werten in das Datawarehouse importiert werden.

  • Die importierten Abfragezeichenfolgen können maximal 150 Abfragezeichenfolgen mit einem Wert oder maximal 256 Abfragezeichenfolgen mit mehreren Werten umfassen. Werden zu viele Abfragezeichenfolgen importiert, besteht die Gefahr, dass der Importprozess für Webprotokolldateien fehlschlägt.

  • Im Datawarehouse ist die Länge importierter Zeichenfolgen mit mehreren Werten (wozu auch Abfragezeichenfolgen zählen) auf 512 Zeichen beschränkt. Wenn eine Abfragezeichenfolge mit mehreren Werten länger als 512 Zeichen ist, wird sie beim Import auf 512 Zeichen gekürzt.

So konfigurieren Sie Abfragezeichenfolgen für den Import

So entfernen Sie eine Abfragezeichenfolge aus dem Import

So zeigen Sie die Eigenschaften der Abfragezeichenfolgen-Konfiguration an

So konfigurieren Sie Abfragezeichenfolgen für den Import

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Import von Webserverprotokollen (Commerce Server).

  4. Klicken Sie im Dialogfeld Webserverprotokolle importieren auf Erweitert.

  5. Nehmen Sie im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften auf der Registerkarte Abfr.-Zeichenfolgen die folgenden Einstellungen vor:
    Option | Aktion
    Speichern der Abfragezeichenfolge mit URI | Aktivieren Sie dieses Kontrollkästchen, wenn die Abfragezeichenfolgen zusammen mit den zugehörigen URIs im Datawarehouse gespeichert werden sollen.
    Hinzufügen | Klicken Sie hierauf, um das Dialogfeld Abfragezeichenfolgen zu öffnen.

  6. Nehmen Sie im Dialogfeld Abfragezeichenfolgen die folgenden Einstellungen vor:
    Option | Aktion
    Name Geben Sie den Namen der Abfragezeichenfolge genauso ein, wie er in den Protokolldateien erscheint.

    Der Name darf keiner der Datawarehouse-Standardspalten entsprechen. Zudem darf er nicht die Zeichenfolge CEVT enthalten (diese Zeichenfolge ist für Commerce Server-Abfragezeichenfolgen reserviert). Darüber hinaus darf der Name weder Leerzeichen noch eines der folgenden Zeichen enthalten: ', ", +, &, ^, ', ", {,}, <, > oder =.

    Alle Anwendungen in einer Site | Wählen Sie diese Option aus, um Abfragezeichenfolgen aus allen Anwendungen innerhalb der Site zu importieren.
    Ausgewählte Anwendungen in einer Site | Wählen Sie diese Option aus, um die Anwendungen festzulegen, aus denen Abfragezeichenfolgen importiert werden sollen.
    Datentyp auswählen Wählen Sie in dieser Dropdownliste den Datentyp der Abfragezeichenfolge aus. Es stehen vier Datentypen zur Auswahl: Ganze Zahl, Zeichenfolge, Datum/Uhrzeit oder Real.

    Für den Datentyp Zeichenfolge sind maximal 255 Zeichen zulässig.
    Mehrwertiger Datentyp | Aktivieren Sie dieses Kontrollkästchen, wenn die Abfragezeichenfolge einen mehrwertigen Datentyp aufweist.

  7. Klicken Sie auf OK, um das Dialogfeld Abfragezeichenfolgen zu schließen.

  8. Klicken Sie auf Übernehmen und anschließend auf OK.

Die Abfragezeichenfolgen für den Importprozess für Webprotokolldateien sind nun konfiguriert. Sie können nun die Konfiguration der Importeigenschaften für die Webprotokolldatei fortsetzen oder Daten in das Datawarehouse importieren. Bevor Sie jedoch Daten in das Datawarehouse importieren, müssen Sie die Sitekonfiguration mit dem Datawarehouse synchronisieren.

So entfernen Sie eine Abfragezeichenfolge aus dem Import

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Import von Webserverprotokollen (Commerce Server).

  4. Klicken Sie im Dialogfeld Webserverprotokolle importieren auf Erweitert.

  5. Markieren Sie im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften auf der Registerkarte Abfr.-Zeichenfolgen die zu entfernende Abfragezeichenfolge, und klicken Sie dann auf Entfernen.

  6. Klicken Sie auf Übernehmen und anschließend auf OK.

Die Abfragezeichenfolge wird aus dem Importprozess für Webprotokolldateien entfernt. Sie können nun die Konfiguration der Importeigenschaften für die Webprotokolldatei fortsetzen oder Daten in das Datawarehouse importieren. Bevor Sie jedoch Daten in das Datawarehouse importieren, müssen Sie die Sitekonfiguration mit dem Datawarehouse synchronisieren.

So zeigen Sie die Eigenschaften der Abfragezeichenfolgen-Konfiguration an

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Import von Webserverprotokollen (Commerce Server).

  4. Klicken Sie im Dialogfeld Webserverprotokolle importieren auf Erweitert.

  5. Klicken Sie im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften auf der Registerkarte Abfr.-Zeichenfolgen auf Eigenschaften, um das Dialogfeld Abfragezeichenfolgen zu öffnen. (Eine Änderung der angezeigten Eigenschaften ist nicht möglich.)

    Anmerkung

    • Wenn Sie Eigenschaften ändern möchten, müssen Sie die Abfragezeichenfolge zunächst aus dem Import entfernen und sie dann mit den gewünschten neuen Eigenschaften erneut hinzufügen.
  6. Klicken Sie auf OK und anschließend noch einmal auf OK.

Sie können nun die Konfiguration der Importeigenschaften für die Webprotokolldatei fortsetzen oder Daten in das Datawarehouse importieren. Bevor Sie jedoch Daten in das Datawarehouse importieren, müssen Sie die Sitekonfiguration mit dem Datawarehouse synchronisieren.

Siehe auch

Komponenten des Datawarehouse

Konfigurieren der Importeigenschaften von Webprotokolldateien

Importieren von Daten in das Datawarehouse


Importieren von Daten in das Datawarehouse

Zum Importieren von Daten in das Datawarehouse verwenden Sie die Commerce Server-Importtasks.

Dieser Abschnitt beinhaltet folgende Themen:

  • Importieren von Daten aus Webprotokolldateien

  • Importieren von Katalogdaten

  • Importieren von Kampagnendaten

  • Importieren von Transaktionsdaten

  • Importieren von Benutzerprofildaten


Importieren von Daten aus Webprotokolldateien

Zum Importieren von Daten aus Webprotokolldateien von Ihrer Site arbeiten Sie mit dem Importtask für Webserverprotokolle. Wie oft die Daten importiert werden sollten, ermitteln Sie durch eine Analyse des Datenverkehrs in der Site. Je höher der Datenverkehr in der Website, umso häufiger sollten Sie die Daten aus den Webprotokolldateien importieren.

Sie können auch Protokolldateien von Websites importieren, auf denen Internet-Informationsdienste (IIS) 5.0 nicht ausgeführt wird und die keine der Commerce Server-Komponenten aufweisen. Weitere Informationen zum Hinzufügen von Anwendungen und Webservern, die keine Commerce Server-Komponenten verwenden, finden Sie unter Hinzufügen anderer Anwendungen und Webserver.

Bevor Sie Daten aus Webprotokolldateien importieren, müssen Sie die Sitekonfiguration mit dem Datawarehouse synchronisieren, indem Sie den Konfigurationssynchronisationstask ausführen. Nach dem Importieren von Daten aus Webprotokolldateien müssen Sie den Berichtsvorbereitungstask ausführen, um die importierten Daten in die angegebenen OLAP-Cubes (Online Analytical Processing) einzuordnen.

So importieren Sie Webprotokolldateien in das Datawarehouse

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Import von Webserverprotokollen (Commerce Server).

  4. Nehmen Sie im Dialogfeld Webserverprotokolle importieren die folgenden Einstellungen vor:
    Option | Aktion
    Beschreibung | Geben Sie eine Beschreibung des Importtasks ein.
    Sitename | Wählen Sie in der Dropdownliste den Namen der Website aus, die das zu importierende Webserverprotokoll enthält.
    Anwendung | Klicken Sie hierauf, um die Liste der Protokolldateien nach Anwendung zu sortieren.
    Computer | Klicken Sie hierauf, um die Liste der Protokolldateien nach Computer zu sortieren.
    IIS-Website | Klicken Sie hierauf, um die Liste der Protokolldateien nach IIS-Website zu sortieren.
    Protokolldateipfad | Klicken Sie hierauf, um die Liste der Protokolldateien nach Protokolldateipfad zu sortieren.
    Protokolldateipfad | Geben Sie den Pfad der zu importierenden Webprotokolldatei ein, oder klicken Sie auf die Schaltfläche mit den Auslassungspunkten [...], um nach dem Protokolldateipfad zu suchen.
    Protokolldateien anzeigen | Klicken Sie hierauf, um das Dialogfeld Webserver-Protokolldateien zu öffnen, wählen Sie in der Liste Webserver-Protokolldateien die Webprotokolldateien aus, die Sie importieren möchten, und klicken Sie dann auf OK, um zum Dialogfeld Webserverprotokolle importieren zurückzukehren.
    Alle Protokolldateien seit dem letzten Import importieren | Wählen Sie diese Option aus, um festzulegen, dass alle seit dem letzten Import erstellten Protokolldateien importiert werden sollen.
    Protokolldateien nach Datum-/Uhrzeitbereich importieren | Wählen Sie diese Option aus, um festzulegen, dass nur Protokolldateien importiert werden sollen, die zwischen Anfangsdatum/-zeit und Beendigungsdatum/-zeit erstellt wurden.
    Anfangsdatum/-zeit | Geben Sie das Datum und die Uhrzeit ein, mit dem bzw. der der Bereich beginnt, für den Protokolldateien importiert werden sollen. Diese Option ist nur verfügbar, wenn Sie die Option Protokolldateien nach Datum-/Uhrzeitbereich importieren ausgewählt haben.
    Beendigungsdatum/-zeit | Geben Sie das Datum und die Uhrzeit ein, mit dem bzw. der der Bereich endet, für den Protokolldateien importiert werden sollen. Diese Option ist nur verfügbar, wenn Sie die Option Protokolldateien nach Datum-/Uhrzeitbereich importieren ausgewählt haben.

  5. Klicken Sie auf OK.

  6. Klicken Sie im Menü Paket auf Ausführen.

    Das Dialogfeld Paket ausführen, in dem Sie über den Status des Importvorgangs informiert werden, wird angezeigt. Nach Abschluss des Importvorgangs wird im Dialogfeld Paketausführungsergebnisse der Hinweis angezeigt, dass der Vorgang erfolgreich abgeschlossen wurde.

    Anmerkung

    • Sollte der Importprozess für Webprotokolldateien fehlschlagen, führen Sie den Task Datenlöschung aus, um die mit der betreffenden Webprotokolldatei verknüpften Daten zu löschen, und führen Sie dann den Task Berichtsvorbereitung aus, um die OLAP-Cubes zu aktualisieren.
  7. Klicken Sie auf OK und anschließend auf Fertig.

Die Daten aus der Webprotokolldatei werden in das Datawarehouse importiert. Sie müssen den Berichtsvorbereitungstask ausführen, um die importierten Daten in die angegebenen OLAP-Cubes einzuordnen.

Anmerkungen

  • Sie können einem Paket mehrere DTS-Tasks (Data Transformation Services) hinzufügen, Informationen zu Reihenfolge und Workflow hinzufügen und dann alle Tasks im Paket ausführen.

  • Sie können den Importprozess auch verfeinern, indem Sie verschiedene erweiterte Importeigenschaften für Webprotokolldateien festlegen. Informationen zum Konfigurieren von Importeigenschaften für Webprotokolldateien finden Sie unter Konfigurieren der Importeigenschaften von Webprotokolldateien. Informationen zum Festlegen der Webservereigenschaften finden Sie unter Konfigurieren eines Webservers.

Siehe auch

Komponenten des Datawarehouse

Konfigurieren der Importeigenschaften von Webprotokolldateien

Synchronisieren der Sitekonfiguration mit dem Datawarehouse

Vorbereiten der Berichterstellung

Löschen von Daten aus dem Datawarehouse


Importieren von Katalogdaten

Zum Importieren von Katalogdaten verwenden Sie den Importtask für Produktkatalogdaten. Bevor Sie Katalogdaten importieren, müssen Sie die Sitekonfiguration mit dem Datawarehouse synchronisieren, indem Sie den Konfigurationssynchronisationstask ausführen. Nach dem Importieren von Katalogdaten müssen Sie den Berichtsvorbereitungstask ausführen, um die importierten Daten in die angegebenen OLAP-Cubes (Online Analytical Processing) einzuordnen.

Anmerkung

  • Wenn Sie zum ersten Mal Katalogdaten in das Datawarehouse importieren, müssen Sie die Option Vollständiges Laden verwenden und einen vollständigen Import durchführen. Verwenden Sie nach dem Import von Katalogdaten die Option Inkrementelles Laden, um nur neue Daten, d. h. solche, die seit dem letzten Import von Katalogdaten erstellt wurden, zu importieren.

So importieren Sie Katalogdaten in das Datawarehouse

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Import von Produktkatalogen (Commerce Server).

  4. Nehmen Sie im Dialogfeld Katalogimporteigenschaften die folgenden Einstellungen vor:
    Option | Aktion
    Beschreibung | Geben Sie eine Beschreibung des Importtasks ein.
    Sitename | Wählen Sie in der Dropdownliste die Site aus, die die zu importierenden Daten enthält.
    Inkrementelles Laden | Wählen Sie diese Option aus, um nur die seit dem vorangegangenen Import neu erstellten Katalogdaten zu importieren.
    Vollständiges Laden | Wählen Sie diese Option aus, um alle Katalogdaten zu importieren.

  5. Klicken Sie auf OK.

  6. Klicken Sie im Menü Paket auf Ausführen.

    Das Dialogfeld Paket ausführen, in dem Sie über den Status des Importvorgangs informiert werden, wird angezeigt. Nach Abschluss des Importvorgangs wird im Dialogfeld Paketausführungsergebnisse der Hinweis angezeigt, dass der Vorgang erfolgreich abgeschlossen wurde.

  7. Klicken Sie auf OK und anschließend auf Fertig.

Die Katalogdaten werden in das Datawarehouse importiert. Sie müssen den Berichtsvorbereitungstask ausführen, um die importierten Daten in die angegebenen OLAP-Cubes einzuordnen.

Anmerkung

  • Sie können einem Paket mehrere DTS-Tasks (Data Transformation Services) hinzufügen, Informationen zu Reihenfolge und Workflow hinzufügen und dann alle Tasks im Paket ausführen.

Siehe auch

Komponenten des Datawarehouse

Importieren von Daten in das Datawarehouse

Synchronisieren der Sitekonfiguration mit dem Datawarehouse

Vorbereiten der Berichterstellung


Importieren von Kampagnendaten

Zum Importieren von Kampagnendaten verwenden Sie den Importtask für Kampagnendaten. Bevor Sie Kampagnendaten importieren, müssen Sie die Sitekonfiguration mit dem Datawarehouse synchronisieren, indem Sie den Konfigurationssynchronisationstask ausführen. Nach dem Importieren von Kampagnendaten müssen Sie den Task Berichtsvorbereitung ausführen, um die importierten Daten in die angegebenen OLAP-Cubes (Online Analytical Processing) einzuordnen.

So importieren Sie Katalogdaten in das Datawarehouse

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Import von Produktkatalogen (Commerce Server).

  4. Nehmen Sie im Dialogfeld Kampagnenimporteigenschaften die folgenden Einstellungen vor:
    Option | Aktion
    Beschreibung | Geben Sie eine Beschreibung des Importtasks ein.
    Sitename | Wählen Sie in der Dropdownliste die Site aus, die die zu importierenden Daten enthält.

  5. Klicken Sie auf OK.

  6. Klicken Sie im Menü Paket auf Ausführen.

    Das Dialogfeld Paket ausführen, in dem Sie über den Status des Importvorgangs informiert werden, wird angezeigt. Nach Abschluss des Importvorgangs wird im Dialogfeld Paketausführungsergebnisse der Hinweis angezeigt, dass der Vorgang erfolgreich abgeschlossen wurde.

  7. Klicken Sie auf OK und anschließend auf Fertig.

Die Kampagnendaten werden in das Datawarehouse importiert. Sie müssen den Berichtsvorbereitungstask ausführen, um die importierten Daten in die angegebenen OLAP-Cubes einzuordnen.

Anmerkung

  • Sie können einem Paket mehrere DTS-Tasks (Data Transformation Services) hinzufügen, Informationen zu Reihenfolge und Workflow hinzufügen und dann alle Tasks im Paket ausführen.

Siehe auch

Komponenten des Datawarehouse

Importieren von Daten in das Datawarehouse

Synchronisieren der Sitekonfiguration mit dem Datawarehouse

Vorbereiten der Berichterstellung


Importieren von Transaktionsdaten

Zum Importieren von Transaktionsdaten verwenden Sie den Importtask für Transaktionsdaten. Bevor Sie Transaktionsdaten importieren, müssen Sie die Sitekonfiguration mit dem Datawarehouse synchronisieren, indem Sie den Konfigurationssynchronisationstask ausführen. Nach dem Importieren von Transaktionsdaten müssen Sie den Berichtsvorbereitungstask ausführen, um die importierten Daten in die angegebenen OLAP-Cubes (Online Analytical Processing) einzuordnen.

Anmerkung

  • Wenn Sie zum ersten Mal Transaktionsdaten in das Datawarehouse importieren, müssen Sie die Option Vollständiges Laden verwenden und einen vollständigen Import durchführen. Verwenden Sie nach dem Import von Transaktionsdaten die Option Inkrementelles Laden, um nur neue Daten, d. h. solche, die seit dem letzten Import von Transaktionsdaten erstellt wurden, zu importieren.

So importieren Sie Transaktionsdaten in das Datawarehouse

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Import von Transaktionsdaten (Commerce Server).

  4. Nehmen Sie auf der Registerkarte Allgemein im Dialogfeld Transaktionsimporteigenschaften folgende Einstellungen vor:
    Option | Aktion
    Beschreibung | Geben Sie eine Beschreibung des Importtasks ein.
    Sitename | Wählen Sie in der Dropdownliste die Site aus, die die zu importierenden Daten enthält.
    Inkrementelles Laden | Wählen Sie diese Option aus, um nur die seit dem vorangegangenen Import neu erstellten Transaktionsdaten zu importieren.
    Vollständiges Laden | Wählen Sie diese Option aus, um alle Transaktionsdaten zu importieren.

  5. Klicken Sie auf OK.

  6. Klicken Sie im Menü Paket auf Ausführen.

    Das Dialogfeld Paket ausführen, in dem Sie über den Status des Importvorgangs informiert werden, wird angezeigt. Nach Abschluss des Importvorgangs wird im Dialogfeld Paketausführungsergebnisse der Hinweis angezeigt, dass der Vorgang erfolgreich abgeschlossen wurde.

  7. Klicken Sie auf OK und anschließend auf Fertig.

Die Transaktionsdaten werden in das Datawarehouse importiert. Sie müssen den Berichtsvorbereitungstask ausführen, um die importierten Daten in die angegebenen OLAP-Cubes einzuordnen.

Anmerkung

  • Sie können einem Paket mehrere DTS-Tasks (Data Transformation Services) hinzufügen, Informationen zu Reihenfolge und Workflow hinzufügen und dann alle Tasks im Paket ausführen.

Siehe auch

Komponenten des Datawarehouse

Importieren von Daten in das Datawarehouse

Synchronisieren der Sitekonfiguration mit dem Datawarehouse

Vorbereiten der Berichterstellung


Importieren von Benutzerprofildaten

Zum Importieren von Benutzerprofildaten verwenden Sie den Importtask für Benutzerprofildaten. Bei Benutzerprofildaten handelt es sich um Benutzerdaten, die in der Website mithilfe der Profildefinition Benutzerobjekt erfasst werden. Informationen zum Erstellen von Profildefinitionen finden Sie unter Ausführen der Profilressource.

Bevor Sie Benutzerdaten importieren, müssen Sie die Sitekonfiguration mit dem Datawarehouse synchronisieren, indem Sie den Konfigurationssynchronisationstask ausführen. Nach dem Importieren von Benutzerdaten müssen Sie den Berichtsvorbereitungstask ausführen, um die importierten Daten in die angegebenen OLAP-Cubes (Online Analytical Processing) einzuordnen. Informationen zum Festlegen der Benutzerdaten, die ins Datawarehouse importiert werden sollen, finden Sie unter Hinzufügen von Eigenschaften zu Profildefinitionen.

Anmerkung

  • Wenn Sie zum ersten Mal Benutzerprofildaten in das Datawarehouse importieren, müssen Sie die Option Vollständiges Laden verwenden und einen vollständigen Import durchführen. Verwenden Sie nach dem Import von Benutzerprofildaten die Option Inkrementelles Laden, um nur neue Daten, d. h. solche, die seit dem letzten Import von Benutzerprofildaten erstellt wurden, zu importieren.

So importieren Sie Benutzerdaten in das Datawarehouse

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Import von Benutzerprofildaten (Commerce Server).

  4. Nehmen Sie im Dialogfeld Benutzerimporteigenschaften die folgenden Einstellungen vor:
    Option | Aktion
    Beschreibung | Geben Sie eine Beschreibung des Importtasks ein.
    Sitename | Wählen Sie in der Dropdownliste die Site aus, die die zu importierenden Daten enthält.
    Abfrageintervall (Min.) Geben Sie das gewünschte Zeitintervall für den Import ein. Benutzerdaten werden in bestimmten Zeitintervallen importiert, um zu vermeiden, dass die Datenbanktabelle gesperrt wird. So werden Benutzerdaten z. B. bei einer Website mit 10.000 Benutzern alle 15 Minuten importiert.

    Wenn Sie einen kleineren Wert einstellen, wird die Tabelle zwar für einen kürzeren Zeitraum gesperrt, jedoch nimmt dann die Anzahl der unter Verwendung der Tabelle ausgeführten Abfragen zu, wodurch die Ausführung des Tasks länger dauert. Wählen Sie den Wert Null, wird eine einzige Abfrage ausgeführt, und die Tabelle wird während der gesamten Dauer des Imports gesperrt. Hierbei kann jedoch die Leistung der Website sinken.
    Importanfangsdatum | Wählen Sie im Dropdownkalender das Datum aus, an dem der Import beginnen soll.
    Inkrementelles Laden | Wählen Sie diese Option aus, um nur die seit dem vorangegangenen Import neu hinzugekommenen Benutzer zu importieren.
    Vollständiges Laden | Wählen Sie diese Option aus, um alle Benutzerdaten zu importieren.

  5. Klicken Sie auf OK.

  6. Klicken Sie im Menü Paket auf Ausführen.

    Das Dialogfeld Paket ausführen, in dem Sie über den Status des Importvorgangs informiert werden, wird angezeigt. Nach Abschluss des Importvorgangs wird im Dialogfeld Paketausführungsergebnisse der Hinweis angezeigt, dass der Vorgang erfolgreich abgeschlossen wurde.

  7. Klicken Sie auf OK und anschließend auf Fertig.

Die Benutzerprofildaten werden in das Datawarehouse importiert. Sie müssen den Berichtsvorbereitungstask ausführen, um die importierten Daten in die angegebenen OLAP-Cubes einzuordnen.

Anmerkung

  • Sie können einem Paket mehrere DTS-Tasks (Data Transformation Services) hinzufügen, Informationen zu Reihenfolge und Workflow hinzufügen und dann alle Tasks im Paket ausführen.

Siehe auch

Komponenten des Datawarehouse

Importieren von Daten in das Datawarehouse

Synchronisieren der Sitekonfiguration mit dem Datawarehouse

Vorbereiten der Berichterstellung

Hinzufügen von Eigenschaften zu Profildefinitionen


Ausführen der Internet Protocol-Auflösung

Den IP-Auflösungstask verwenden Sie in regelmäßigen Abständen zum Auflösen von IP-Adressen (Internet Protocol). Auf diese Weise wird sichergestellt, dass das Datawarehouse möglichst aussagekräftige Daten enthält.

Wenn Sie einen IP-Auflösungstask starten, wird bei dem Versuch, die neuen IP-Adressen aufzulösen, zunächst ein Cache, in dem sich bereits aufgelöste IP-Adressen befinden, durchsucht. Wenn auch nach Überprüfung des Caches noch nicht alle IP-Adressen aufgelöst werden konnten, folgt eine Überprüfung auf dem DNS-Server (Domain Name System). Die Erfolgsrate der IP-Auflösung liegt in der Regel bei 60 bis 75 %. IP-Adressen werden in einer Batchdatei aufgelöst, wodurch die Verbindung zum DNS-Server optimiert wird.

Wenn Sie einen IP-Auflösungstask starten, werden standardmäßig nur IP-Adressen ohne Domänennamen aufgelöst. Möchten Sie jedoch alle möglichen Änderungen von Domänennamen aufzeichnen, können Sie wahlweise auch alle IP-Adressen auflösen. Bei Auswahl dieser Option werden selbst Domänennamen aktualisiert, die sich bereits im Datawarehouse befinden.

Anmerkung

  • Wenn Sie zum ersten Mal IP-Adressen im Datawarehouse auflösen, müssen Sie die Option Vollständige Suche verwenden. Nach der vollständigen Suche können Sie dann auch die inkrementelle IP-Auflösung verwenden, um nur nach neuen IP-Adressen zu suchen.

So lösen Sie IP-Adressen auf

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf IP-Auflösung (Commerce Server).

  4. Nehmen Sie im Dialogfeld Eigenschaften der IP-Auflösung die folgenden Einstellungen vor:
    Option | Aktion
    Beschreibung | Geben Sie eine Beschreibung des Tasks ein.
    Sitename | Wählen Sie in der Dropdownliste die Site aus, die die Daten enthält, für die Sie eine IP-Auflösung durchführen möchten.
    Inkrementelle Suche | Wählen Sie diese Option aus, um nur IP-Adressen aufzulösen, die zuvor noch nicht aufgelöst wurden.
    Vollständige Suche | Wählen Sie diese Option aus, um alle IP-Adressen aufzulösen.
    Lokaler Domänenname | Geben Sie den lokalen Domänennamen des Domänennamenservers (DNS) ein, der primär zur Auflösung von IP-Adressen eingesetzt wird.
    Tage der Zwischenspeicherung des Ergebnisses | Geben Sie an, wie viele Tage lang aufgelöste IP-Adressen zwischengespeichert werden sollen. Standard sind 30 Tage. Wenn Sie den Standardwert erhöhen, können IP-Adressen rascher aufgelöst werden. Dabei werden aber möglicherweise Änderungen an Domänennamen nicht erfasst.
    Sekunden bis zum Timeout | Geben Sie die Zeit in Sekunden an, während derer der DNS-Server durchsucht wird, bevor eine IP-Adresse als nicht aufgelöst gekennzeichnet wird. Standard sind 60 Sekunden. Wenn Sie einen höheren Wert als Standard wählen, werden zwar mehr IP-Adressen aufgelöst, jedoch dauert die IP-Auflösung länger.
    Im Stapel zu behaltendende Suchanforderungen | Geben Sie die Anzahl der Suchanforderungen ein. Hiermit legen Sie fest, wie viele IP-Adressen in einem Stapel zum DNS-Server übertragen werden. Der Standardwert lautet 500, möglich sind jedoch zwischen 10 und 99.999 Anforderungen.

  5. Klicken Sie auf OK.

  6. Klicken Sie im Menü Paket auf Ausführen.

    Das Dialogfeld Paket ausführen, in dem Sie über den Status des Importvorgangs informiert werden, wird angezeigt. Nach Abschluss des Importvorgangs wird im Dialogfeld Paketausführungsergebnisse der Hinweis angezeigt, dass der Vorgang erfolgreich abgeschlossen wurde.

  7. Klicken Sie auf OK und anschließend auf Fertig.

Die IP-Auflösung wird ausgeführt. Sie müssen den Berichtsvorbereitungstask ausführen, um die importierten Daten in die angegebenen OLAP-Cubes einzuordnen. Anweisungen zur Ausführung des Berichtsvorbereitungstasks finden Sie unter Vorbereiten der Berichterstellung.

Anmerkung

  • Sie können einem Paket mehrere DTS-Tasks (Data Transformation Services) hinzufügen, Informationen zu Reihenfolge und Workflow hinzufügen und dann alle Tasks im Paket gleichzeitig ausführen.

Siehe auch

Informationen zum Datawarehouse

Konfigurieren der Importeigenschaften von Webprotokolldateien

Vorbereiten der Berichterstellung


Vorbereiten der Berichterstellung

Sie führen den Berichtsvorbereitungstask aus, um die OLAP-Cubes (Online Analytical Processing) mit den Daten im Datawarehouse aufzufüllen. In den OLAP-Cubes ordnet Commerce Server 2000 die im Datawarehouse enthaltenen zusammengefassten Daten, sodass die Berichte in den Analysemodulen schneller ausgeführt werden. Der Berichtsvorbereitungstask muss immer dann ausgeführt werden, wenn Daten in das Datawarehouse importiert oder aus diesem gelöscht werden. Informationen zu OLAP-Cubes finden Sie in der SQL Server-Onlinedokumentation.

Anmerkung

  • Wenn Sie zum ersten Mal den Berichtsvorbereitungstask ausführen, um die OLAP-Cubes im Datawarehouse aufzufüllen, müssen Sie die vollständige Cubeverarbeitung wählen. Nach der Ausführung des Berichtsvorbereitungstasks können Sie die inkrementelle Cubeverarbeitung ausführen, um nur neue Daten in die OLAP-Cubes zu laden.

  • Auch wenn Sie alle Daten aus dem Datawarehouse gelöscht haben, müssen Sie die vollständige Cubeverarbeitung wählen. Informationen zum Löschen von Daten aus dem Datawarehouse finden Sie unter Löschen von Daten aus dem Datawarehouse.

So füllen Sie OLAP-Cubes mit Daten auf

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Berichtsvorbereitung (Commerce Server).

  4. Nehmen Sie im Dialogfeld Berichtseigenschaften vorbereiten die folgenden Einstellungen vor:
    Option | Aktion
    Beschreibung | Geben Sie eine Beschreibung des Berichtsvorbereitungstasks ein.
    Sitename | Wählen Sie die Site aus, für die Sie die OLAP-Cubes auffüllen.
    Inkrementell | Wählen Sie diese Option aus, um die OLAP-Cubes inkrementell zu verarbeiten.
    Vollständig | Wählen Sie diese Option aus, um die OLAP-Cubes vollständig zu verarbeiten.

  5. Klicken Sie auf OK.

  6. Klicken Sie im Menü Paket auf Ausführen.

    Das Dialogfeld Paket ausführen, in dem Sie über den Status des Importvorgangs informiert werden, wird angezeigt. Nach Abschluss des Importvorgangs wird im Dialogfeld Paketausführungsergebnisse der Hinweis angezeigt, dass der Vorgang erfolgreich abgeschlossen wurde.

  7. Klicken Sie auf OK und anschließend auf Fertig.

Die Daten werden in die OLAP-Cubes geladen. Nun können Sie das Geschäftsanalysesystem von Commerce Server verwenden, einschließlich der Commerce Server-Berichte, um die Daten im Datawarehouse zu analysieren. Weitere Informationen zum Ausführen von Berichten finden Sie unter Business Desk-Analyse.

Anmerkung

  • Sie können dem geöffneten Paket mehrere DTS-Tasks (Data Transformation Services) hinzufügen, Informationen zu Reihenfolge und Workflow hinzufügen und dann alle Tasks im Paket gleichzeitig ausführen.

Siehe auch

Komponenten des Datawarehouse

Synchronisieren der Sitekonfiguration mit dem Datawarehouse

Importieren von Daten in das Datawarehouse


Löschen von Daten aus dem Datawarehouse

Zum Löschen von Daten aus dem Datawarehouse arbeiten Sie mit dem Datenlöschungstask. Im Datawarehouse werden zwei Arten von Daten gespeichert, nämlich detaillierte Protokolldateidaten und zusammengefasste Daten. Diese Daten werden im Datawarehouse erstellt, indem bestimmte Informationen während des Importierens der Daten nachverfolgt werden. Schlägt der Import einer Webprotokolldatei fehl, löschen Sie diese Protokolldatei unter Verwendung des Datenlöschungstasks aus dem Datawarehouse. Außerdem können Sie den Datenlöschungstask verwenden, um alle Daten aus dem Datawarehouse zu löschen.

Achten Sie unbedingt darauf, veraltete Protokolldateidaten regelmäßig zu löschen, damit die Leistung und die Arbeitsspeicherkapazität des Datawarehouse nicht beeinträchtigt werden. Falls Sie Verlaufsdaten von Ihrer Commerce Server-Site beibehalten möchten, können Sie die Daten zur Erhaltung in Berichten extrahieren.

Anmerkung

  • Für das Löschen von Daten aus einzelnen Webprotokolldateien ist temporärer Speicher in der Datawarehouse-Datenbank erforderlich. Sollte ein Datenlöschungstask fehlschlagen, geben Sie Speicherplatz in der Datawarehouse-Datenbank frei, und wiederholen Sie den Löschvorgang.

Nach dem Löschen von Daten aus dem Datawarehouse müssen Sie den Berichtsvorbereitungstask ausführen, um die OLAP-Cubes (Online Analytical Processing) zu aktualisieren. Wenn Sie Daten aus dem Datawarehouse gelöscht haben, müssen Sie die vollständige Cubeverarbeitung wählen.

Anmerkung

  • Wenn Sie detaillierte Daten löschen, die aus einer einzelnen Webprotokolldatei importiert wurden, bleiben die Protokolldateidaten, auf die die Berichte im Analysemodul in Commerce Server Business Desk zugreifen, trotzdem unverändert. Das Löschen detaillierter Daten wirkt sich lediglich auf den Bericht Eingangspfadanalyse aus. Wenn Sie die Daten, auf denen die Berichte basieren, löschen möchten, müssen Sie zu diesem Zweck alle aus der Webprotokolldatei importieren Daten löschen.

So löschen Sie Protokolldateidaten

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem das Datawarehouse installiert ist.

  2. Klicken Sie mit der rechten Maustaste auf Data Transformation Services, und klicken Sie dann auf Neues Paket.

    Wenn Sie ein vorhandenes Paket ändern, können Sie alternativ mit der rechten Maustaste auf Data Transformation Services klicken, dann auf Alle Aufgaben klicken und schließlich Paket öffnen auswählen. Markieren Sie das zu ändernde Paket, und klicken Sie dann auf Öffnen.

  3. Klicken Sie im Menü Task auf Datenlöschung (Commerce Server).

  4. Nehmen Sie im Dialogfeld Löschtask die folgenden Einstellungen vor:
    Option | Aktion
    Beschreibung | Geben Sie eine Beschreibung des Tasks ein.
    Sitename | Wählen Sie in der Dropdownliste die Site aus, die die zu löschenden Protokolldateien enthält.
    Löschtyp auswählen Wählen Sie in der Dropdownliste die Option Webprotokollimporte aus.

    Anmerkung

    • Falls Sie über zwei Sites mit verschiedenen Datawarehouses verfügen und die Option Alle wählen, werden nur Daten aus dem Datawarehouse der aktuell ausgewählten Site gelöscht. Daten aus beiden Datawarehouses werden auf diese Weise nicht gelöscht.
    Detaildaten löschen | Wählen Sie diese Option aus, um die mit den zu löschenden Webprotokolldateien verknüpften detaillierten Daten zu löschen.

  5. Aktivieren Sie die Kontrollkästchen neben den zu löschenden Webprotokolldateien.

  6. Klicken Sie auf OK.

  7. Klicken Sie im Menü Paket auf Ausführen.

    Das Dialogfeld Paket ausführen, in dem Sie über den Status des Importvorgangs informiert werden, wird angezeigt. Nach Abschluss des Importvorgangs wird im Dialogfeld Paketausführungsergebnisse der Hinweis angezeigt, dass der Vorgang erfolgreich abgeschlossen wurde.

  8. Klicken Sie auf OK und anschließend auf Fertig.

Die detaillierten Daten der ausgewählten Webprotokolldateien werden aus dem Datawarehouse gelöscht. Sie müssen den Berichtsvorbereitungstask ausführen, um die importierten Daten in die angegebenen OLAP-Cubes einzuordnen.

Anmerkung

  • Sie können dem geöffneten Paket zusätzliche DTS-Tasks (Data Transformation Services) hinzufügen, Informationen zu Reihenfolge und Workflow hinzufügen und dann alle Tasks im Paket gleichzeitig ausführen.

Siehe auch

Informationen zum Datawarehouse

Komponenten des Datawarehouse

Konfigurieren eines Webservers

Vorbereiten der Berichterstellung

Importieren von Daten in das Datawarehouse


Erweitern des Datawarehouse

Sie können das logische Schema und die Funktionalität des Datawarehouse erweitern. Informationen zum Erweitern des logischen Schemas des Datawarehouse und zum Importieren benutzerdefinierter Daten in das Datawarehouse finden Sie unter Working with the Data Warehouse (englisches Thema). Informationen zum Erstellen neuer DTS-Tasks (Data Transformation Services) finden Sie in der SQL Server-Onlinedokumentation.

Siehe auch

Working with the Data Warehouse (englisches Thema)

Data Warehouse Meta-Model (englisches Thema)


Ausführen von Direct Mailer

Mit Commerce Server Direct Mailer können Sie personalisierte E-Mail-Nachrichten über eine Website oder nicht personalisierte Mailings auf Grundlage einer Text-Flatfile an große Gruppen von Empfängern senden. Direct Mailer kann als eigenständiger Prozess oder als integrierter Bestandteil der Kampagnenmodule in Commerce Server Business Desk verwendet werden.

Direct Mailer ist aufgrund der zentralisierten Gestaltung dieses Moduls leicht zu verwalten. Direct Mailer wird in Commerce Server auf der Ebene der globalen Ressourcen eingesetzt. Jede Site zeigt auf die spezifische Gruppeninstanz von Direct Mailer, die für diese Site verwendet werden soll. Dadurch können Sie eine Partitionierung und einen Lastenausgleich im Hinblick darauf durchführen, welche Sites Direct Mailer verwenden.

Direct Mailer bietet eine Befehlszeilenschnittstelle, über die Sie Direct Mailer-Aufträge erstellen, ausführen und überwachen sowie Start- und Wiederherstellungstasks für Aufträge durchführen können. Zum Konfigurieren von Eigenschaften für Direct Mailer verwenden Sie Commerce Server-Manager.

Direct Mailer wird bei der Installation automatisch zur Zusammenarbeit mit anderen Commerce Server-Features eingerichtet. Sie können das Modul jedoch auch als eigenständiges Produkt verwenden, ohne die anderen Commerce Server-Komponenten zu nutzen. Um Direct Mailer als eigenständiges Produkt einzusetzen, verwenden Sie die Befehlszeilenschnittstelle.

Dieser Abschnitt beinhaltet folgende Themen:

  • Workflow für Direct Mailer. Erläutert den Workflow von Direct Mailer-Aufträgen.

  • Informationen zu Direct Mailer. Beschreibt die Softwareanforderungen und -abhängigkeiten für Direct Mailer. Behandelt die Komponenten von Direct Mailer, einschließlich einer kurzen Übersicht über die Direct Mailer-Pipeline sowie über Abonnementkündigungslisten und deren Funktionsweise.

  • Erstellen und Verwalten von Direktsendungslisten. Beschreibt die Verwendung von Listen in Business Desk-Listen-Manager sowie die Erstellung und Verarbeitung von Direct Mailer-Listen.

  • Einrichten einer Direktsendungskampagne. Beschreibt die zum Einrichten einer Direktsendungskampagne erforderlichen Schritte.

  • Entwickeln von Direktsendungsinhalten. Beschreibt, wie personalisierter Inhalt für den Nachrichtentext von Direktsendungen erstellt werden kann.

  • Konfigurieren von Direct Mailer. Erläutert, wie der Zeitrahmen verändert werden kann, in dem Direct Mailer E-Mail-Nachrichten versendet. Des Weiteren wird die Verwendung von verschiedenen Übermittlungspfaden beschrieben.

  • Anzeigen des Status von Direct Mailer-Aufträgen. Erläutert, wie der Status von Direct Mailer-Aufträgen überprüft werden kann.

  • Anhalten, Beenden und Löschen von Direct Mailer-Aufträgen. Beschreibt, wie Direct Mailer-Aufträge beendet und gelöscht werden können.

  • Erneutes Starten von Direct Mailer-Aufträgen. Erläutert, wie Direct Mailer-Aufträge neu gestartet werden können, die vor Abschluss der Verarbeitung angehalten wurden.

  • Ausführen von Direct Mailer im eigenständigen Modus. Erläutert, wie Direct Mailer als eigenständiges Produkt ausgeführt werden kann.


Workflow für Direct Mailer

In der folgenden Abbildung wird der Workflow eines Direct Mailer-Auftrags dargestellt.

Commerce Server
Business Desk
Listen-Manager
Kampagnen-Manager
Direktsendungs-
kampagne
Datawarehouse
Benutzer
SQL Server
Webprotokolle
Berichte
IIS-Ereignis-
verarbeitung
Kampagnendatenbank
(Retail_Commerce)
CDO
Pipeline
DML-Ausführung
Direct Mailer-
NT-Dienst
SQL Server-Agent
SQL Server-Direktsendungs-
datenbank
Zeichnet alle Aufträge in der Datenbank auf
Direct Mailer-
Benutzeroberfläche
Standalone-
modus
Webserver Personalisierte
E-Mail-Seiten


Informationen zu Direct Mailer

Direct Mailer ist ein Windows 2000-Dienst, der bei einer vollständigen Installation zusammen mit Commerce Server installiert wird bzw. bei einer benutzerdefinierten Installation als optionale Installationskomponente gewählt werden kann. Pro Server kann jeweils nur eine Instanz von Direct Mailer vorhanden sein. Auf der Ebene der globalen Ressourcen können Sie jedoch mehr als eine Direct Mailer-Ressource verwenden.

Direct Mailer führt die folgenden Tasks aus:

  • Verwalten von Direct Mailer-Aufträgen.

  • Erstellen von personalisierten und nicht personalisierten Nachrichtentexten.

  • Formatieren von E-Mail-Nachrichtenköpfen.

  • Einstellen des Codepagewerts (d. h. der Sprache) und Konvertieren von Nachrichtentexten in den korrekten Nachrichtentyp: MIME Encapsulation of Aggregate HTML Documents (MHTML oder Einschließen von aggregierten HTML-Dokumenten mit MIME), Multipurpose Internet Mail Extensions (MIME oder Vielzweckerweiterungen für Internet-E-Mail) oder Text.

  • Versenden von E-Mail-Nachrichten an Empfänger.

Sie können Direct Mailer eine Empfängerliste zur Verfügung stellen, indem Sie das Modul "Listen-Manager" in Commerce Server Business Desk verwenden. Wenn Sie Direct Mailer im eigenständigen Modus von der Befehlszeile aus ausführen, können Sie eine zu verwendende Liste festlegen (durch Angabe eines Dateinamens oder durch eine SQL Server-Abfrage). Direct Mailer führt für alle Empfängerlisten dieselben Verarbeitungsschritte über die Listen-Manager-Objekte durch.

Direct Mailer kann Nachrichtentexte aus Webseiten oder statischen Dateien erstellen. Wenn Sie Direct Mailer durch Hinzufügen von benutzerdefinierten Komponenten zur Direct Mailer-Pipeline erweitern, ist auch die Erstellung von Nachrichten unter Verwendung von anderen Quellen, wie z. B. SQL Server-Vorlagen, möglich. Weitere Informationen zum Hinzufügen von benutzerdefinierten Komponenten zur Direct Mailer-Pipeline finden Sie unter Using the Direct Mailer Pipeline (englisches Thema).

Direct Mailer kann personalisierte E-Mail-Nachrichten über eine Website oder nicht personalisierte Mailings auf Grundlage einer Text-Flatfile an große Gruppen von Empfängern senden.

Direct Mailer-Anforderungen

Direct Mailer-Datenbanken

Direct Mailer-Pipeline

Abonnementkündigungslisten

Direct Mailer-Anforderungen

Für Direct Mailer gelten die folgenden Anforderungen:

  • Softwareanforderungen und -abhängigkeiten

  • Adressenlistenformate

  • Nachrichtenformate

  • Nachrichtenquellen

Softwareanforderungen und -abhängigkeiten

Direct Mailer verwendet als Datenbank SQL Server 7.0 oder SQL Server 2000. Um wiederholte Mailings starten zu können, muss der SQL Server-Agent installiert sein und ausgeführt werden. Direct Mailer muss auf demselben Computer installiert sein wie die Direct Mailer-Datenbank. SQL Server muss ausgeführt werden, bevor Direct Mailer gestartet werden kann.

Weitere Informationen zu SQL Server finden Sie in der SQL Server-Onlinedokumentation.

Microsoft Windows 2000 enthält die folgenden Komponenten, von denen Direct Mailer abhängig ist:

  • Microsoft ActiveX Data Objects (ADO oder ActiveX-Datenobjekte). Durch ADO kann Direct Mailer auf Daten in der Direct Mailer-Datenbank zugreifen und diese Daten ändern. Um auf Daten zuzugreifen, die sich auf einem oder mehreren Computern mit SQL Server befinden, wird der OLE DB-Provider für Microsoft SQL Server verwendet.

  • Microsoft Windows Collaboration Data Objects (CDO oder Kollaborationsdatenobjekte). Durch CDO wird eine Gruppe von COM-Schnittstellen zur Verfügung gestellt, über die Direct Mailer operiert. Direct Mailer verwendet hauptsächlich zwei Schnittstellen: IMessage und IConfiguration. Diese Schnittstellen ermöglichen das Erstellen, Formatieren und Versenden von Simple Mail Transfer Protocol-Nachrichten (SMTP oder einfaches E-Mail-Übertragungsprotokoll) über das Netzwerk sowie die lokale Übermittlung.

Adressenlistenformate

Direct Mailer unterstützt die folgenden Adressenlistenquellen:

  • Textdateien wie z. B. trennzeichengetrennte Dateien (.CSV)

  • SQL Server-Abfragen

  • Analyseberichte

  • Segmentlisten

Eine Direktsendungsliste enthält eine oder mehrere Empfängerzeilen. Jede Zeile in der Liste enthält einen einzigen Empfänger und setzt sich aus den folgenden durch Trennzeichen getrennten Elementen zusammen:

Parameter | Beschreibung
E-Mail-Adresse | Erforderlich. Name oder <name@domäne>.
GUID | Optional. Die eindeutige Benutzer-ID, die zum Bereitstellen von Inhalt in personalisierten E-Mail-Nachrichten verwendet wird.
Nachrichtenformat | Optional. Steuert den Nachrichtenformattyp, in den CDO die Ergebnisse konvertiert. Beispiel: Text, MHTML oder MIME.
Sprache | Optional. Der Codepagewert für die E-Mail-Nachricht.
URL | Optional. Bietet die Möglichkeit, individuelle URLs nach Benutzer an CDO zu übertragen.

Anmerkung

  • Wenn Sie einen optionalen Parameter nicht verwenden, müssen Sie das Trennzeichen einfügen, um die nachfolgenden optionalen Parameter angeben zu können.

Nachrichtenformate

Direct Mailer unterstützt die folgenden Nachrichtenformate:

  • Nur Text

  • Multipurpose Internet Mail Extensions (MIME)

  • MIME Encapsulation of Aggregate HTML Documents (MHTML oder Einschließen von aggregierten HTML-Dokumenten mit MIME)

Nachrichtenquellen

Direct Mailer kann URLs oder Dateipfade als Nachrichtenquellen verwenden. Wenn Sie eine Datei verwenden, müssen Sie sicherstellen, dass diese sich in einem Verzeichnis befindet, auf das Direct Mailer zugreifen kann.

Aus Gründen der Leistungsverbesserung lädt Direct Mailer den Dateiinhalt im Voraus in den Speicher, wodurch die Dateigröße beschränkt wird. Die Datei kann eine beliebige Größe aufweisen; es werden jedoch nur die ersten zwei Millionen ASCII-Zeichen bzw. nur die erste Million Unicode-Zeichen in den Speicher geladen.

Direct Mailer-Datenbanken

Direct Mailer nutzt intensiv SQL Server 7.0 bzw. SQL Server 2000 sowie den SQL Server-Agent. Die Direct Mailer-Datenbank wird bei der Installation von Commerce Server automatisch in SQL Server erstellt. Mit dem SQL Server-Agent, der permanent ausgeführt wird, können Sie detaillierte Informationen zu Ihren Direct Mailer-Aufträgen anzeigen lassen. Sie können den Status von Direct Mailer-Aufträgen, das Datum und die Uhrzeit der letzten Ausführung und den Zeitpunkt der nächsten geplanten Ausführung überprüfen.

Direct Mailer verwendet bei der Ausführung als integrierter Bestandteil von Commerce Server die folgenden Datenbanken:

  • Direct Mailer-Datenbank. Enthält die Details und Informationen zum Direct Mailer-Auftrag.

  • Kampagnendatenbank. Enthält die Details und Informationen zum Direktsendungskampagnenartikel.

In der folgenden Abbildung sind Direct Mailer-Aufträge und die zugehörigen Details dargestellt, wie sie im SQL Server-Agent angezeigt werden.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

So starten Sie einen Direct Mailer-Auftrag im SQL Server-Agent

  1. Erweitern Sie die Knoten auf den folgenden Pfad: \Microsoft SQL Server\SQL Server-Gruppe\<Name des SQL Server-Computers>\Verwaltung\SQL Server-Agent\.

  2. Klicken Sie auf Aufträge. Die Direct Mailer-Aufträge werden im rechten Bereich von SQL Server Enterprise Manager angezeigt.

  3. Klicken Sie mit der rechten Maustaste auf den Direct Mailer-Auftrag, und wählen Sie Auftrag starten aus.

Anmerkung

  • Zur erneuten Planung eines Direct Mailer-Auftrags verwenden Sie das Modul "Kampagnen-Manager" in Commerce Server Business Desk. Informationen zum Planen von Direct Mailer-Aufträgen finden Sie unter Planen einer Direktsendungskampagne.

Siehe auch

Direct Mailer-Pipeline

Direct Mailer-Pipeline

Die Direct Mailer-Pipeline wird zum Verarbeiten von Empfängerlisten verwendet. Sie können der Pipeline neue Komponenten hinzufügen, die Komponenten in unternehmensspezifische Systeme integrieren oder sie durch Komponenten von Drittanbietern ersetzen.

In der folgenden Tabelle sind die Stufen der Direct Mailer-Pipeline aufgelistet, die von Commerce Server zur Verfügung gestellt werden. Jede Stufe kann null oder eine größere Anzahl von Komponenten enthalten.

Stufe | Beschreibung
Drossel | Beschränkt die in Nachrichten pro Stunde gemessene Geschwindigkeit, mit der Direct Mailer ausgeführt wird. Dies ist hilfreich, um das Überfluten von Mailservern zu verhindern.
Empfänger aufbereiten | Verifiziert die Empfängerdaten.
Empfänger filtern | Kann als Modell zum Hinzufügen bzw. Erstellen weiterer benutzerdefinierter Komponenten für diese Stufe verwendet werden, um die vorhandene Pipeline zu erweitern. Zum Beispiel kann das Abonnement eines Empfängers gekündigt werden.
Cookies erstellen | Erstellt die Cookies, die zum Annehmen der Identität eines Sitebenutzers und zum Abrufen von personalisiertem Inhalt vom Webserver erforderlich sind.
E-Mail verfassen | Verfasst und formatiert den Nachrichtentext. Die E-Mail-Nachricht wird durch Collaboration Data Objects (CDO oder Kollaborationsdatenobjekte) für Microsoft Windows 2000 erstellt.
E-Mail senden | Sendet die zuvor erstellte E-Mail-Nachricht.
Empfänger nachbereiten | Kann als Modell zum Hinzufügen bzw. Erstellen weiterer benutzerdefinierter Komponenten für diese Stufe verwendet werden, um die vorhandene Pipeline zu erweitern. Zum Beispiel können Sie die Direct Mailer-Datenbank aktualisieren, indem Sie die versendeten Nachrichten markieren und ggf. die entsprechenden Fehlercodes schreiben.

In der folgenden Abbildung ist die Direct Mailer-Pipeline mit den Komponenten in den einzelnen Pipelinestufen dargestellt.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Weitere Informationen zum Hinzufügen und Entfernen von Komponenten zur bzw. aus der Direct Mailer-Pipeline finden Sie unter Using the Direct Mailer Pipeline (englisches Thema).

Siehe auch

Direct Mailer-Anforderungen

Direct Mailer-Datenbanken

Einrichten einer Direktsendungskampagne

Using the Direct Mailer Pipeline (englisches Thema)

Abonnementkündigungslisten

  • Direct Mailer bietet Funktionen zur Abonnementkündigung bzw. zum Filtern von Direktsendungslisten anhand von Abonnementkündigungslisten. Für Direct Mailer-Aufträge, die als Teil eines Kampagnenartikels ausgeführt werden, bietet die Plattform für die einzelnen Empfänger die Möglichkeit, das Abonnement für Direktsendungskampagnenartikel zu kündigen. Dies geschieht durch Verwendung einer Active Server Page (ASP), die als Teil der Lösungssites geliefert wird.

  • Bei der Entwicklung der ASP für die Direct Mailer-Aufträge vom Webserver können Hyperlinks zu einer Abonnementkündigungs-ASP zur Verfügung gestellt werden. So können die Empfänger durch Klicken auf den entsprechenden Hyperlink das Abonnement entweder von der Site oder vom Direktsendungskampagnenartikel kündigen. Wenn ein Direct Mailer-Auftrag als Teil eines Kampagnenartikels ausgeführt wird, überprüft Direct Mailer, ob auf Site- und Kampagnenartikelebene jeweils eine Abonnementkündigungsliste vorhanden ist. Wenn eine oder beide Listen vorhanden sind, werden sie aus der ursprünglichen Direktsendungsliste entfernt, und die daraus entstehende Liste fungiert als neue Direktsendungsliste.

Um Unterstützung für Abonnementkündigungslisten von der Befehlszeilenschnittstelle aus zu bieten, verwenden Sie die Parameter OptoutListType, OptoutListLocation und OptoutListSQL in einer Auftragsdatei, die mit dem Dateiformat Windows.ini kompatibel ist. Weitere Informationen zur Abonnementkündigung über die Befehlszeilenschnittstelle finden Sie unter Auftragsdatenabschnitt.

Siehe auch

Auftragsdatenabschnitt


Erstellen und Verwalten von Direktsendungslisten

Mit Listen-Manager können Sie Listen von Direktsendungsempfängern erstellen und verwalten. Es gibt zwei Arten von Listen: generische Listen und Adressenlisten. Generische Listen werden aus dem Berichtemodul, dem Modul "Segment-Viewer", einer SQL Server-Tabelle oder einer ASCII-Textdatei in Listen-Manager importiert. Listen-Manager versucht automatisch, generische Listen in Adressenlisten zu konvertieren, wenn in den Listen eine Zeile mit E-Mail-Adressen gefunden wird. Adressenlisten werden von Direct Mailer zum Erstellen und Senden von Nachrichten an ausgewählte Empfänger in der Liste verwendet. Wenn die generische Liste keine E-Mail-Adressen enthält, wird die Liste als Benutzerliste importiert, wenn die Formatanforderungen erfüllt sind. Weitere Informationen zu Adressenlistenformaten finden Sie unter Adressenlistenformate.

Wenn die Listen in Listen-Manager importiert wurden, können Sie sie verwenden, um Direct Mailer-Aufträge auszuführen und bestimmte Benutzergruppen gezielt anzusprechen. Sie können z. B. Berichte erstellen, die Ihnen die Eigenschaften und das beobachtete Verhalten der Benutzer aufzeigen, und dann eine Direktsendungskampagne starten, um Werbung oder Produkte gezielt an diese Benutzer heranzutragen.

Mit Listen-Manager können Sie Listen auch in Dateien oder SQL Server-Datenbanken exportieren sowie Listen hinzufügen, entfernen, kopieren, extrahieren und löschen.

Erstellen von Empfängerlisten

Verarbeiten von Empfängerlisten

Erstellen von Empfängerlisten

Zum Erstellen von Empfängerlisten für Direktsendungskampagnen verwenden Sie das Modul "Listen-Manager" im Kampagnenmodul. Listen werden in Listen-Manager erstellt, indem in anderen Anwendungen erstellte Listen importiert werden. Bei diesen Anwendungen handelt es sich um Microsoft SQL Server (zum Erstellen von SQL-Tabellen), Editor (zum Erstellen von ASCII-Textdateien), Microsoft Excel (zum Erstellen von Kalkulationstabellen) oder Microsoft Outlook (zum Erstellen von PST-Dateien, die Nachrichten, Termine, Kontakte und andere Outlook-Elemente enthalten).

Sie können eine Empfängerliste aus Analyseberichten, aus Segment-Viewer oder aus einer externen Datenbank erstellen und diese Liste dann in Listen-Manager importieren. Informationen zum Importieren von Listen in Listen-Manager finden Sie unter Importieren und Exportieren von Listen.

Verarbeiten von Empfängerlisten

Zum Verarbeiten einer Empfängerliste lädt Direct Mailer die Empfängerliste zunächst aus Listen-Manager in eine Auftragstabelle. Dann wird die Benutzerliste verarbeitet, und die Empfängerdaten werden über die Direct Mailer-Pipeline gesendet.

Siehe auch

Direct Mailer-Pipeline


Einrichten einer Direktsendungskampagne

Das Modul "Kampagnen-Manager" bietet eine Schnittstelle zum Erstellen von Direktsendungskampagnen. Sie können Direct Mailer-Aufträge für alle Direktsendungskampagnen über Kampagnen-Manager verwalten. Sie können neue Direktsendungskampagnen erstellen, Nachrichten personalisieren und Eigenschaften ändern. Sie können Ihren Direktsendungskampagnen Anlagen hinzufügen, und Sie können planen, wann die Direktsendungskampagnen ausgeführt werden sollen. Sie können Ihre Direktsendungskampagne auch unter Verwendung einer Testadressenliste testen, bevor Sie die Kampagne zur Produktion senden.

Im Folgenden finden Sie eine Übersicht über die Schritte, die Sie zum Einrichten und Ausführen einer Direktsendungskampagne durchführen müssen.

  1. Erstellen Sie den Nachrichtentext, der an die Empfänger gesendet werden soll. Wenn Sie z. B. personalisierte Nachrichtentexte liefern möchten, entwickeln Sie eine personalisierte Active Server Page (ASP), die den Nachrichtentext für Direct Mailer zur Verfügung stellt.

  2. Geben Sie die Datenquelle an, die die Empfängerdaten enthält, und richten Sie sie ein:
    • Um eine Empfängerliste aus Daten im Datawarehouse zu erstellen, verwenden Sie das Berichtemodul in Commerce Server Business Desk. Um die zu verwendenden statischen Berichte anzeigen zu lassen, wählen Sie die Berichte aus, und exportieren Sie die daraus entstehende Liste in Listen-Manager. Weitere Informationen zum Importieren und Exportieren von Listen in Listen-Manager finden Sie unter Importieren und Exportieren von Listen.

    • Um eine Empfängerliste aus einer Datei zu erstellen, benötigen Sie den Pfad der Datei.

    • Um eine Empfängerliste aus einer SQL Server-Datenbank zu erstellen, benötigen Sie die Verbindungszeichenfolge und die SQL Server-Abfragezeichenfolge.
  3. Erstellen und planen Sie die Direktsendungskampagne. Verwenden Sie das Modul "Kampagnen-Manager", um die folgenden Informationen festzulegen:
    • Name der Kampagne und des Kunden

    • Name der Empfängerliste

    • Startzeit und -datum der Direktsendungskampagne

    • Uniform Resource Locator (URL oder genormte Ressourcenangabe) oder statische Datei, bei dem bzw. der Direct Mailer den personalisierten Nachrichtentext abrufen soll.

Anmerkung

  • Der URL des personalisierten Nachrichtentexts muss über eine gültige Erweiterung für HTML-Inhaltstypen verfügen, z. B. HTM oder ASP. Ungültige Erweiterungen wie z. B. XML führen zu CDO-Fehlern (Collaboration Data Objects), und die Nachricht wird nicht gesendet.

Die Direktsendungskampagne wird zum geplanten Zeitpunkt ausgeführt. Informationen dazu, wie Sie Ihre Direktsendungslisten testen können, bevor Sie sie zur Produktion senden, finden Sie unter Testen einer Direktsendungskampagne.

Siehe auch

Informationen zu Kampagnen

Erstellen einer Kampagne

Hinzufügen von Direktsendungskampagnenartikeln

Verwalten von Benutzereintragslisten


Entwickeln von Direktsendungsinhalten

Direct Mailer kann Nachrichtentexte aus Webseiten oder statischen Dateien erstellen. Wenn Sie Direct Mailer durch Hinzufügen von benutzerdefinierten Komponenten zur Direct Mailer-Pipeline erweitern, ist auch die Erstellung von Nachrichten unter Verwendung von anderen Quellen, wie z. B. SQL Server-Vorlagen, möglich. Weitere Informationen zum Hinzufügen von benutzerdefinierten Komponenten zur Direct Mailer-Pipeline finden Sie unter Using the Direct Mailer Pipeline (englisches Thema).

Aus Gründen der Leistungsverbesserung lädt Direct Mailer den Dateiinhalt von statischen Dateien im Voraus in den Speicher. Die Dateigröße ist auf zwei Millionen ASCII-Zeichen bzw. eine Million Unicode-Zeichen beschränkt. Die restlichen Zeichen in der Datei werden ignoriert und nicht in der Nachricht gesendet.

Die einzige Möglichkeit zum Versenden von individuell personalisierten E-Mail-Nachrichten besteht im Verwenden einer Webseite. Um personalisierte Nachrichtentexte liefern zu können, müssen Sie zunächst die personalisierte Webseite erstellen.

Anmerkung

  • Wenn Sie beim Senden eines Mailings im MHTML-Format (MIME Encapsulation of Aggregate HTML Documents, Einschließen von aggregierten HTML-Dokumenten mit MIME) von Direct Mailer aus eine Textanlage festlegen, wird die personalisierte Webseite bei der Anzeige in Microsoft Outlook als Anlage angezeigt. Dies gilt nur für Outlook, nicht jedoch für Microsoft Outlook Express.


Konfigurieren von Direct Mailer

Bevor Sie Direct Mailer ausführen, empfiehlt es sich gegebenenfalls, die Eigenschaften zur Steuerung der Auftragsausführung zu überprüfen und zu ändern. In der folgenden Abbildung werden die Eigenschaften für Direct Mailer dargestellt, das auf der Ebene der globalen Ressourcen eingesetzt wird.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

So ändern Sie die Eigenschaften von Direct Mailer

  1. Erweitern Sie Commerce Server-Manager, öffnen Sie die Commerce-Gruppe, die Sie verwalten möchten, und klicken Sie dann auf Globale Ressourcen.

  2. Klicken Sie mit der rechten Maustaste auf Direct Mailer, und wählen Sie Eigenschaften aus.

  3. Gehen Sie im Dialogfeld Eigenschaften folgendermaßen vor:
Option (Eigenschaften) | Aktion (Ausgewählter Eigenschaftswert)
Übermittlungspfade | Geben Sie den Übermittlungspfad ein. Es muss mindestens ein Eintrag angegeben werden. Für die lokale Übertragung sind Ablageverzeichnisse angegeben, für die Remoteübertragung die Adresse des SMTP-Servers.
Übermittlungsmethode | Geben Sie den Wert ein, der bestimmt, auf welche Weise die Mailings übermittelt werden sollen: 1– Remote 2 – Lokal in ein Ablageverzeichnis
Protokollordnerpfad | Geben Sie den Speicherort der Direct Mailer-Vorgangsprotokolldatei ein.
Maximaler Fehleranteil | Geben Sie den maximal zulässigen Prozentsatz von Fehlern pro Auftrag ein.
Maximale Threadzahl | Geben Sie die maximal zulässige Anzahl von Threads pro Auftrag ein.
Nachrichten pro Stunde | Geben Sie die Anzahl von Nachrichten pro Stunde ein, die dieser Server produzieren kann. Wenn diese Eigenschaft auf null (0) eingestellt wird, verarbeitet Direct Mailer Nachrichten so schnell wie möglich.
Leistungsaktualisierungsintervall | Geben Sie das Leistungsaktualisierungsintervall in Sekunden ein.
Pipelinekonfigurationsdatei | Geben Sie den Speicherort der Pipelinekonfigurationsdatei DMLPipe.pcf ein.
Proxyumgehung | Geben Sie die lokalen Computer ein, bei denen keine Proxyüberprüfung erforderlich ist, oder geben Sie einen Wert ein, der für alle lokalen Computer steht.
Proxyserver | Geben Sie den Namen des zu verwendenden Proxyservers ein.
Verbindungszeichenfolgen | Geben Sie die Verbindungszeichenfolge zur Direct Mailer SQL Server-Datenbank ein.

Anmerkung

  • Die Eigenschaften Protokollordnerpfad, Nachrichten pro Stunde, Proxyumgehung, Proxyserver und Verbindungszeichenfolgen basieren auf einer Dienstinstanz. Das bedeutet, dass Direct Mailer jedes Mal neu gestartet werden muss, wenn Änderungen an den Werten für diese Eigenschaften vorgenommen werden. Die übrigen Direct Mailer-Eigenschaften basieren auf einer Auftragsinstanz, sodass Direct Mailer nicht neu gestartet werden muss.

Erneutes Starten von Direct Mailer

Sie können Direct Mailer entweder von der Befehlszeilenschnittstelle aus oder über die Verwaltungstools neu starten.

So starten Sie Direct Mailer von der Befehlszeilenschnittstelle aus neu

  1. Geben Sie in der Befehlszeile den Befehl net stop dmlservice ein.

  2. Wenn der Dienst beendet wurde, geben Sie den Befehl net start dmlservice ein.

So starten Sie Direct Mailer vom Modul "Dienste" aus neu

  1. Öffnen Sie das Modul Dienste über das Menü Start. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Verwaltungstools, und klicken Sie dann auf Dienste.

  2. Klicken Sie im Fenster Dienste im rechten Fensterbereich mit der rechten Maustaste auf Commerce Server Direct Mailer, und wählen Sie Neu starten.

Siehe auch

Ändern der Geschwindigkeit von Direct Mailer

Verwenden von mehreren Übermittlungspfaden


Ändern der Geschwindigkeit von Direct Mailer

Direct Mailer wurde so entwickelt, dass Sie die Anzahl der pro Stunde verarbeiteten Nachrichten beschränken können, um eine Überlastung des Produktionsmailservers durch den Auftrag zu verhindern. Dazu ändern Sie die Eigenschaft Nachrichten pro Stunde, durch die bestimmt wird, wie viele Nachrichten Direct Mailer in einer Stunde verarbeitet. Wenn die Eigenschaft Nachrichten pro Stunde auf null (0) eingestellt wird, verarbeitet Direct Mailer die Nachrichten so schnell wie möglich.

So ändern Sie die Geschwindigkeit von Direct Mailer

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, klicken Sie mit der rechten Maustaste auf Direktsendung an <Name des SQL Server-Computers>, und klicken Sie dann auf Eigenschaften.

  2. Wählen Sie im Dialogfeld Eigenschaften die Option Nachrichten pro Stunde aus, und geben Sie im Feld Ausgewählter Eigenschaftswert die Anzahl von Nachrichten pro Stunde ein, die Direct Mailer versenden soll.

    Wenn Sie Ausgewählter Eigenschaftswert auf null (0) einstellen, verarbeitet Direct Mailer Nachrichten so schnell wie möglich.

  3. Klicken Sie auf OK.

  4. Starten Sie Direct Mailer neu. Informationen zum erneuten Starten von Direct Mailer finden Sie unter Erneutes Starten von Direct Mailer.

Die neue Einstellung wird unmittelbar auf alle Direct Mailer-Aufträge angewendet.

Neben der Eigenschaft Nachrichten pro Stunde gibt es noch andere Faktoren, die die Geschwindigkeit bestimmen, mit der Direct Mailer Nachrichten verarbeitet. Einige Beispiele:

  • Die Leistungsfähigkeit von Direct Mailer ist von Collaboration Data Objects (CDO oder Kollaborationsdatenobjekte) für Microsoft Windows 2000 abhängig.

  • Direct Mailer berechnet basierend auf der Gesamtleistung und den Drosselungseinstellungen den Verzögerungswert für jede Pipelineschleife.

  • Die Leistungsfähigkeit von Direct Mailer ist stark von der Leistung des Simple Mail Transfer Protocol-Servers (SMTP oder einfaches E-Mail-Übertragungsprotokoll) und den entsprechenden Drosselungsanforderungen abhängig.


Verwenden von mehreren Übermittlungspfaden

Wenn Direct Mailer zur Verwendung von mehreren Übermittlungspfaden konfiguriert ist (wobei es sich um Ablageverzeichnisse oder SMTP-Server (Simple Mail Transfer Protocol) handeln kann), wird dieselbe Liste für jede Auftragsausführung verwendet. Direct Mailer liest die Liste der Übermittlungspfade aus dem globalen Konfigurationswörterbuch ein, das globale Konfigurationsparameter für alle Aufträge in allen Sites enthält. Direct Mailer führt im globalen Konfigurationswörterbuch keine Sortiervorgänge oder Überprüfungen auf doppelte Einträge durch.

Wenn die Eigenschaft Übermittlungsmethode auf 2 (Lokal) eingestellt ist, behandelt Direct Mailer jeden Eintrag in der Liste als vollständige Pfadangabe zum Abholverzeichnis des SMTP-Servers. Wenn die Eigenschaft Übermittlungsmethode auf 1 (Remote) eingestellt ist, geht Direct Mailer davon aus, dass alle Einträge in der Liste das folgende Format verwenden:

<Adresse des SMTP-Servers>[: Port]

Die Angabe des Ports ist optional. Wenn keine Angabe gemacht wird, verwendet Direct Mailer Port 25.

Wenn ein Direct Mailer-Auftrag gestartet wird, verwendet der erste Empfänger in der Direktsendungsliste den ersten Übermittlungspfad. Der nächste Empfänger verwendet den nächsten Übermittlungspfad. Der Übermittlungsprozess wird wiederholt, bis keine neuen Übermittlungspfade mehr zur Verfügung stehen. In diesem Fall werden die Übermittlungspfade bis hin zum ersten Pfad wieder verwendet.

Wenn beim Versenden ein Fehler auftritt, versucht Direct Mailer nicht, einen anderen Pfad zu verwenden oder Timeout- oder Verfügbarkeitstests durchzuführen. Daher können die einzelnen Empfänger nur die ihnen zugewiesenen Übermittlungspfade verwenden.

So verwenden Sie mehrere Übermittlungspfade

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, klicken Sie mit der rechten Maustaste auf Direct Mailer, und klicken Sie dann auf Eigenschaften.

  2. Wählen Sie im Dialogfeld Eigenschaften die Option Übermittlungspfade aus, und geben Sie im Feld Ausgewählter Eigenschaftswert den vollständigen Pfad zum Ablageverzeichnis bzw. zum SMTP-Server ein. UNC-Pfade (Pfade gemäß der Universal Naming Convention oder universellen Namenskonvention) werden nicht unterstützt.

Zur Angabe von mehreren Übermittlungspfaden müssen die einzelnen Pfade durch Kommas oder Semikola abgetrennt werden. Das Komma und das Semikolon sind die einzigen Trennzeichen, die zur Abtrennung von verschiedenen Pfaden verwendet werden können.

  3. Wählen Sie Übermittlungsmethode aus, und geben Sie im Feld Ausgewählter Eigenschaftswert den Wert 2 für lokale Übertragung oder den Wert 1 für Remoteübertragung ein.

  4. Klicken Sie auf OK.

Die neue Einstellung wird unmittelbar auf alle Direct Mailer-Aufträge angewendet.


Anzeigen des Status von Direct Mailer-Aufträgen

Sie können den Status Ihrer Direct Mailer-Aufträge überprüfen, um festzustellen, ob ein bestimmter Auftrag gegenwärtig ausgeführt wird, angehalten bzw. beendet wurde oder ob die Ausführung erfolgreich abgeschlossen ist. Sie können den Status Ihrer Direct Mailer-Aufträge unter Verwendung der Befehlszeilenschnittstelle anzeigen lassen.

So lassen Sie den Status Ihrer Direct Mailer-Aufträge unter Verwendung der Befehlszeilenschnittstelle anzeigen

  • Geben Sie in der Befehlszeile DmlRun /list ein, um eine Liste aller Direct Mailer-Aufträge anzeigen zu lassen.

Die Liste der Direct Mailer-Aufträge wird angezeigt.

Für jeden Direct Mailer-Auftrag werden die folgenden Informationen angezeigt:

  • Auftragsidentifizierungsnummer

  • Auftragsstatus

  • Auftragsbeschreibung

  • Sitename

  • Identifizierungsnummer für den Kampagnenartikel

  • Name des Kampagnenartikels

Anmerkung

  • Der Sitename, die Identifizierungsnummer für den Kampagnenartikel und der Name des Kampagnenartikels werden nur angezeigt, wenn diese Informationen für den Direct Mailer-Auftrag vorhanden sind.

In der folgenden Tabelle finden Sie eine Liste der Auftragsstatuscodes.

Code | Beschreibung
0 | Der Auftrag wurde erstellt, aber noch nicht initialisiert.
1 | Der Auftrag wurde vollständig definiert, wird aber nicht ausgeführt (Inaktiv), oder er wurde beendet.
2 | Der Auftrag ist abgeschlossen.
3 | Der Auftrag wird ausgeführt (Aktiv).
4 | Der Auftrag wird ausgeführt, wurde aber vorübergehend angehalten (angehalten, aber noch Aktiv).
-2 | Der Auftrag wurde von Direct Mailer angehalten, da schwer wiegende Probleme aufgetreten sind oder der Grenzwert für die Fehlerschwelle erreicht wurde.
-3 | Der Auftrag wurde als css_site definiert, bei Laufzeit standen jedoch nicht alle Daten zur Verfügung.


Anhalten, Beenden und Löschen von Direct Mailer-Aufträgen

Sie können Direct Mailer-Aufträge jederzeit anhalten. Wenn Sie einen Direct Mailer-Auftrag anhalten, unterbricht Direct Mailer die Verarbeitung der Empfängerliste. Der Vorgang kann jedoch zu einem späteren Zeitpunkt fortgesetzt werden. Direct Mailer verzeichnet intern, welcher Empfänger als nächster verarbeitet wird. Wenn der Auftrag angehalten wird (z. B. durch Herunterfahren des Computers oder aufgrund eines Festplattenfehlers), kann Direct Mailer die Verarbeitung daher nach dem Neustart an ungefähr derselben Stelle beginnen, an der sie unterbrochen wurde. Die Empfänger, die in den letzten 1 bis 1,5 Sekunden vor dem Unterbrechen der Stromzufuhr verarbeitet wurden, erhalten möglicherweise keine E-Mail.

Sie können einen Direct Mailer-Auftrag während der Ausführung beenden. Wenn ein Direct Mailer-Auftrag beendet wurde, können Sie die Verarbeitung nicht an derselben Stelle im Verarbeitungsprozess fortsetzen. Sie müssen den Direct Mailer-Auftrag neu starten, woraufhin die Verarbeitung wieder am Anfang der Empfängerliste beginnt.

Sie können Direct Mailer-Aufträge löschen, wenn die Aufträge beendet, abgeschlossen oder fehlgeschlagen sind. Sie können einen Direct Mailer-Auftrag nicht während der Ausführung löschen. Wenn Sie einen Direct Mailer-Auftrag löschen, werden alle Informationen zu dem Auftrag in Direct Mailer gelöscht. Wenn Sie den Auftrag erneut ausführen möchten, müssen Sie ihn neu erstellen.

Anmerkung

  • Sie können Direct Mailer-Aufträge nur über die Befehlszeilenschnittstelle anhalten, beenden und löschen. Das Verwenden des Moduls für Kampagnen-Manager in Business Desk zum Anhalten, Beenden oder Löschen von Direct Mailer-Aufträgen ist nicht möglich.

So halten Sie Direct Mailer-Aufträge von der Befehlszeilenschnittstelle aus an

  1. Geben Sie in der Befehlszeile DmlRun /list ein, um eine Liste aller Direct Mailer-Aufträge anzeigen zu lassen.

  2. Notieren Sie sich die Auftrags-ID des Direct Mailer-Auftrags, den Sie anhalten möchten, und geben Sie dann Folgendes ein:

    DmlRun /pause:<Auftrags-ID>

    Der Direct Mailer-Auftrag wird angehalten.

So beenden Sie Direct Mailer-Aufträge von der Befehlszeilenschnittstelle aus

  1. Geben Sie in der Befehlszeile DmlRun /list ein, um eine Liste aller Direct Mailer-Aufträge anzeigen zu lassen.

  2. Notieren Sie sich die Auftrags-ID des Direct Mailer-Auftrags, den Sie beenden möchten, und geben Sie dann Folgendes ein:

    DmlRun /term:<Auftrags-ID>

    Der Direct Mailer-Auftrag wird beendet.

So löschen Sie Direct Mailer-Aufträge von der Befehlszeilenschnittstelle aus

  1. Geben Sie in der Befehlszeile DmlRun /list ein, um eine Liste aller Direct Mailer-Aufträge anzeigen zu lassen.

  2. Notieren Sie sich die Auftrags-ID des Direct Mailer-Auftrags, den Sie löschen möchten, und geben Sie dann Folgendes ein:

    DmlRun /delete:<Auftrags-ID>

Der Direct Mailer-Auftrag wird gelöscht.

Siehe auch

Löschen und Wiederherstellen eines Kampagnenartikels

Verwalten und Steuern von Direct Mailer-Aufträgen über die Befehlszeile

Erneutes Starten von Direct Mailer-Aufträgen


Erneutes Starten von Direct Mailer-Aufträgen

Wenn ein Direct Mailer-Auftrag angehalten wird, bevor er vollständig ausgeführt wurde, wird der Auftragsstatus von Direct Mailer aktualisiert, um anzugeben, dass der Auftrag angehalten und somit nicht erfolgreich abgeschlossen wurde. Verwenden Sie den Befehl DmlRun /list von der Befehlszeilenschnittstelle aus, um den Direct Mailer-Auftrag anzeigen zu lassen. Um den Auftragsstatus automatisch in der Konsole wiedergeben zu lassen, verwenden Sie die Option /wait. Informationen zum Anzeigen des Status von Direct Mailer-Aufträgen finden Sie unter Anzeigen des Status von Direct Mailer-Aufträgen.

Wenn ein Direct Mailer-Computer deaktiviert wird (z. B. durch einen Festplattenfehler), werden alle auf diesem Computer ausgeführten Direct Mailer-Aufträge angehalten. Wenn ein Direct Mailer-Auftrag angehalten wird, bevor er vollständig verarbeitet wurde, müssen Sie den angehaltenen Auftrag neu starten.

So starten Sie Direct Mailer-Aufträge neu

  1. Geben Sie in der Befehlszeile DmlRun /list ein, um eine Liste aller Direct Mailer-Aufträge anzeigen zu lassen.

  2. Notieren Sie sich die Auftrags-ID des Direct Mailer-Auftrags, den Sie neu starten möchten, und geben Sie dann Folgendes ein:

    DmlRun /run:<Auftrags-ID>

Der Direct Mailer-Auftrag wird neu gestartet.

Siehe auch

Verwalten und Steuern von Direct Mailer-Aufträgen über die Befehlszeile


Ausführen von Direct Mailer im eigenständigen Modus

Der eigenständige Modus von Direct Mailer macht das Modul zu einer Plattformkomponente, die einfach in unternehmensspezifische Systeme integriert werden kann. Angenommen, die PR-Abteilung möchte Commerce Server-Analyseberichte per E-Mail erhalten. Bei dieser Verwendung werden die von der Anwendung an Direct Mailer übertragenen Daten ignoriert. Direct Mailer kann z. B. eine Datei mit einem Bericht des Typs Anzeigenplatzierung an eine Liste von PR-Mitarbeitern senden. Die Auftragsinformationen stammen in diesem Fall aus den Befehlszeilenparametern und einer Konfigurationsdatei.

Um Direct Mailer von der Befehlszeilenschnittstelle aus auszuführen, verwenden Sie die ausführbare Datei DmlRun zusammen mit Befehlszeilenoptionen. Sie können diese Optionen zum Durchführen verschiedener Tasks verwenden, z. B. zum Erstellen, Ausführen, Überwachen und Löschen von Direct Mailer-Aufträgen.

Anmerkung

  • Zum Planen von Direktsendungskampagnen können Sie entweder das Modul "Kampagnen-Manager" in Business Desk verwenden oder manuelle Einstellungen im Windows-Taskplaner vornehmen. Der Windows-Taskplaner kann eine Batchdatei ausführen, die die Befehlszeilenschnittstelle verwendet.

Im Folgenden finden Sie eine Übersicht über die Schritte, die zum Einrichten und Ausführen von Direct Mailer im eigenständigen Modus befolgt werden müssen:

  1. Erstellen Sie den Nachrichteninhalt, der an die Empfänger gesendet werden soll. Erstellen Sie ggf. die Webseite bzw. die statische Datei, die den personalisierten Nachrichtentext zur Verfügung stellen soll.

  2. Geben Sie die Datenquelle für die Empfängerliste an.

  3. Erstellen Sie die Direct Mailer-Auftragsdatei.

  4. Erstellen Sie den Direct Mailer-Auftrag, indem Sie von der Befehlszeilenschnittstelle aus die Option /create verwenden.

  5. Führen Sie den eigenständigen Auftrag ausgehend von der Befehlszeile aus.


Erstellen von Direct Mailer-Auftragsdateien

Bevor Sie einen eigenständigen Direct Mailer-Auftrag erstellen können, müssen Sie eine Direct Mailer-Auftragsdatei erstellen, in der Informationen über den Auftrag gespeichert werden. Dazu gehören z. B. Angaben darüber, ob personalisierte Nachrichtentexte versendet werden sollen, aber auch Informationen wie das Format der E-Mail-Nachrichtenköpfe und der Speicherort der Empfängerliste.

Sie können die Auftragsdatei mit einem beliebigen Text-Editor erstellen. Die Auftragsdatei muss als Textdatei in einem Format vorliegen, das mit dem Format von Microsoft Windows-INI-Dateien kompatibel ist.

Fügen Sie der Auftragsdatei die folgenden Abschnitte hinzu:

  • Auftragsdatenabschnitt Enthält die Schlüsselparameter für den Auftrag, wie z. B. die Datenquelle für den Inhalt, die Empfängerliste, den Nachrichtenformattyp, den Betreff und die Abonnementkündigungsliste.

  • Auftragsanlagenabschnitt Dieser Abschnitt ist optional. Enthält die Anzahl und die Quelle der Anlagen.

Nach der Ausführung von Direct Mailer wird ein Ergebnisabschnitt in die Auftragsdatei geschrieben. Die Parameter im Ergebnisabschnitt sind JobID, ErrorCode und ErrorString. Wenn ein Auftrag erfolgreich abgeschlossen wird, werden die Auftrags-ID (JobID) sowie der Wert 0 für den Fehlercode (ErrorCode=0) in die Datei geschrieben. Wenn ein Auftrag fehlschlägt, werden die Auftrags-ID (JobID), die Fehlercodenummer (ErrorCode) und die Fehlerzeichenfolge (ErrorString) in die Datei geschrieben.

Auftragsdatenabschnitt

In der folgenden Tabelle sind die Parameter aufgeführt, die Sie für Auftragsdaten in der Auftragsdatei definieren können.

Parameter | Typ | Beschreibung
JobDesc | Zeichenfolge (128 max) | Optional. Geben Sie eine Beschreibung des Auftrags an.
TemplateURL | Zeichenfolge (2084 max) | Optional. Geben Sie die E-Mail-Vorlagenquelle als Uniform Resource Locator (URL oder genormte Ressourcenangabe) an: http:// oder file:// Wenn Sie eine Flatfile als Vorlage verwenden, geben Sie einen vollständigen, serverzentrierten, lokalen Pfadnamen ein. UNC-Pfadnamen (Pfadnamen gemäß der Universal Naming Convention oder universellen Namenskonvention) werden unterstützt.
MailFrom | Zeichenfolge (256 max) | Erforderlich. Geben Sie das Feld Von der E-Mail an.
MailSubject | Zeichenfolge (256 max) | Optional. Geben Sie das Feld Betreff der E-Mail an.
MailReplyTo | Zeichenfolge (256 max) | Optional. Geben Sie die E-Mail-Adresse an, an die Antworten gesendet werden sollen.
DefaultFmt Ganze Zahl Optional. Geben Sie das Standardnachrichtenformat für den zu versendenden Inhalt an.

1 = Nur Text
2 = Multipurpose Internet Mail Extensions (MIME)
3 = MIME Encapsulation of Aggregate HTML Documents (MHTML)
JobLocale | Zeichenfolge (255 max) | Optional. Geben Sie das Standardgebietsschema für den Auftrag an.
MailPersonalize Ganze Zahl Optional. Geben Sie 1 an, wenn Sie personalisierten Inhalt liefern, und geben Sie 0 an, wenn dies nicht der Fall ist.

Anmerkung

  • Die Angabe einer Nicht-Ganzzahl (d. h. eines oder mehrerer Zeichenwerte) entspricht der Angabe von MailPersonalize=0.

  • Die Angabe einer Ganzzahl, die ungleich null ist, entspricht der Angabe von MailPersonalize=1.
MailingListType Ganze Zahl Erforderlich. Geben Sie den Adressenlistentyp an.

1 = Flatfile
2 = Listen-Manager-Liste
3 = SQL Server-Abfrage
MailingListLocation Zeichenfolge (256 max) Erforderlich. Geben Sie den Speicherort der Adressenliste an.

Geben Sie bei Flatfiles den vollständigen, lokalen, serverzentrierten Pfadnamen ein. Geben Sie keine Schemapräfixe wie z. B. file:// an.

Geben Sie bei SQL Server-Abfragen die Verbindungszeichenfolge an.

Geben Sie bei Listen-Manager-Listen die Listenidentifizierungsnummer an.

UNC-Pfadnamen werden unterstützt.
MailingListSQL | Zeichenfolge (256 max) | Geben Sie die SQL-Anweisung an, von der aus gesendet werden soll. Wenn MailingListType = 3 festgelegt ist, ist ein Wert erforderlich. Anderenfalls wird der Wert ignoriert.
OptoutListType Ganze Zahl Optional. Geben Sie den Abonnementkündigungslistentyp an.

1 = Flatfile
2 = Listen-Manager-Liste
3 = SQL Server-Abfrage
OptoutListLocation Zeichenfolge (256 max) Optional. Nur erforderlich, wenn OptoutListType verwendet wird. Geben Sie den Speicherort der Abonnementkündigungsliste an.

Geben Sie bei Flatfiles den vollständigen, lokalen, serverzentrierten Pfadnamen an. Geben Sie keine Schemapräfixe wie z. B. file:// an.

Geben Sie bei SQL Server-Abfragen die Verbindungszeichenfolge an.

Geben Sie bei Listen-Manager-Listen die Listenidentifizierungsnummer an.

UNC-Pfadnamen werden unterstützt.
OptoutListSQL | Zeichenfolge (256 max) | Geben Sie die SQL-Anweisung an, von der aus Abonnements gekündigt werden sollen. Wenn OptoutListType = 3 festgelegt ist, ist ein Wert erforderlich. Anderenfalls wird der Wert ignoriert.
UserFlags | Ganze Zahl | Optional. Geben Sie alle mit dem Auftrag verknüpften benutzerdefinierten Flags an.

Auftragsanlagenabschnitt

In der folgenden Tabelle sind die Parameter aufgeführt, die Sie für Auftragsanlagen definieren können. Dieser Abschnitt der Auftragsdatei ist optional.

Parameter | Typ | Beschreibung
AttachmentCount | Zeichenfolge | Geben Sie die Anzahl der Anlagen mit einem Wert an, der größer als 0 ist.
Attachment_<N> | Zeichenfolge (2084 max) | Geben Sie den URL oder den Dateisystempfad für die Anlage <N> an, wobei N für eine Zahl zwischen 1 und dem Wert von AttachmentCount steht. Stellen Sie sicher, dass der URL ein Schemapräfix wie z. B. http:// oder file:// enthält. Geben Sie bei Dateianlagen den vollständigen, serverzentrierten Pfadnamen an. UNC-Pfadnamen werden unterstützt.

Ergebnisabschnitt

Nach der Ausführung von Direct Mailer wird ein Ergebnisabschnitt in die Auftragsdatei geschrieben. In der folgenden Tabelle sind die Parameter aufgeführt, die Direct Mailer in den Ergebnisabschnitt schreibt.

Parameter | Typ | Beschreibung
ErrorCode | HRESULT | 0 = Vorgang (Erstellen, Starten, Löschen usw.) wurde erfolgreich ausgeführt. Wenn der Vorgang nicht erfolgreich ausgeführt wurde, wird ein Fehlercode in die Datei geschrieben.
ErrorString | Zeichenfolge (256 max) | Wenn durch ErrorCode angegeben wird, dass der Auftrag nicht erfolgreich ausgeführt wurde, wird durch diesen Parameter Text zur Beschreibung des Fehlers angegeben. Anderenfalls bleibt dieses Feld leer.
JobID | GUID | Dieser Parameter gibt die neue Auftrags-ID an, die zum Starten, Beenden oder Verarbeiten dieses Auftrags verwendet werden kann.

Siehe auch

Abonnementkündigungslisten


Erstellen und Ausführen von Direct Mailer-Aufträgen

Wenn Sie eine Auftragsdatei erstellt haben, können Sie einen eigenständigen Direct Mailer-Auftrag einrichten. Um den Auftrag zu erstellen, verwenden Sie von der Befehlszeilenschnittstelle aus die Option /create.

So erstellen Sie einen eigenständigen Direct Mailer-Auftrag

  1. Geben Sie in der Befehlszeile die folgende Zeichenfolge ein:

    DmlRun /create:filename=<Name der Auftragsdatei>

    Geben Sie einen vollständigen Pfadnamen für die Auftragsdatei ein. Direct Mailer sucht die Auftragsdatei im aktuellen Verzeichnis, wenn kein Verzeichnis angegeben wird.

    Wenn die Parameter der Auftragsdatendatei nicht korrekt sind, schreibt Direct Mailer einen Fehlercode und eine Beschreibung des Fehlers in den Ergebnisabschnitt der Auftragsdatei.

Der Direct Mailer-Auftrag wird erstellt.

  2. Um die Auftrags-ID anzeigen zu lassen, geben Sie Folgendes ein:

    DmlRun /list

  3. Um den Auftrag auszuführen, geben Sie Folgendes ein:

    DmlRun /run:<Auftrags-ID>

Der Direct Mailer-Auftrag wird gestartet.

  4. Um einen Auftrag zu erstellen und zu starten, geben Sie Folgendes ein:

    DmlRun /create:filename=<Name der Auftragsdatei> /execute

Der Direct Mailer-Auftrag wird erstellt und gestartet.

Siehe auch

Erstellen von Direct Mailer-Auftragsdateien

Verwalten und Steuern von Direct Mailer-Aufträgen über die Befehlszeile


Verwalten und Steuern von Direct Mailer-Aufträgen über die Befehlszeile

Sie können Direct Mailer-Aufträge über die Befehlszeilenschnittstelle verwalten, indem Sie die Win32-Konsolenanwendung DmlRun verwenden. Direct Mailer enthält einen Satz von Befehlszeilenoptionen, die Sie mit DmlRun verwenden können. Mit diesen Optionen können Sie Direct Mailer-Aufträge erstellen, ausführen, überwachen und löschen.

Um z. B. alle Ihre Direct Mailer-Aufträge auflisten zu lassen und die Auftrags-IDs zu überprüfen, geben Sie DmlRun /list ein. Um einen bestimmten, von Direct Mailer verarbeiteten Auftrag zu beenden (z. B. Auftrag 1456), geben Sie DmlRun /term:1456 ein.

In der folgenden Tabelle sind die Optionen aufgeführt, die Sie mit DmlRun verwenden können.

Option | Beschreibung
/run:<Auftrags-ID> | Startet einen Auftrag oder setzt einen angehaltenen Auftrag fort.
/term:<Auftrags-ID> | Beendet einen Auftrag, der momentan ausgeführt wird.
/pause:<Auftrags-ID> | Hält den Auftrag an, ohne ihn zu beenden. Alle Ressourcen bleiben zugewiesen. Verwenden Sie diese Option, wenn Sie die Belastung des Simple Mail Transfer Protocol-Servers (SMTP oder einfaches E-Mail-Übertragungsprotokoll) ausgleichen möchten.
/create:<Parameter-Zeichenfolge> | Erstellt einen neuen Direct Mailer-Auftrag auf Grundlage der Daten in Ihrer Auftragsdatei. Wenn der Auftrag erstellt wurde, können Sie ihn unter Verwendung der Option /run ausführen.
/delete:<Auftrags-ID> | Löscht einen Direct Mailer-Auftrag.
/list | Listet alle Direct Mailer-Aufträge auf.
/list:[css_site=xxxx;] [filename=yyy;] Listet alle Aufträge für die angegebene Commerce Server-Site auf (wenn eine Site angegeben wurde). Wenn das Schlüsselwort für css_site nicht angegeben wird, werden die Aufträge für alle Sites aufgelistet. Wenn ein Dateiname (filename) angegeben wird, wird die Ausgabe an die angegebene Datei weitergeleitet. Wenn kein Verzeichnis angegeben wird, wird eine Datei mit dem angegebenen Namen im Verzeichnis WINNT erstellt.

Ein Beispiel für das Format der Auftragslistendatei finden Sie unter Verwenden der Option /list.
/del_old:<Alter> | Löscht abgeschlossene Aufträge, die älter als der für <Alter> angegebene Wert (gemessen in Tagen) sind.
/wait Optional. Sie können diese Option zusammen mit den Optionen /run, /term, /create und /execute verwenden. Wenn Sie diese Option mit der Option /run kombinieren, wartet DmlRun, bis der Auftrag fertig gestellt ist, bevor der Auftragsstatus an die Konsole zurückgegeben wird. Sie können die Option /wait auch mit /create /execute kombinieren, um denselben Effekt zu erzielen.

Bei Verwendung von /term /wait wartet DmlRun, bis der Auftrag tatsächlich beendet ist.

Anmerkungen

  • Die Option /wait muss mit einer anderen Option kombiniert werden; eine Verwendung als eigenständige Option ist nicht möglich.

  • Bei Verwendung von /wait /term wird eine Fehlermeldung wie die folgende ausgegeben: "Fehler: Der Auftrag {7f2c6324-6b72-402d-853d-8b1c654ae842} wurde mit Statuscode 1 beendet."
/execute Optional. Bei Verwendung von /create /execute erstellt DmlRun den Auftrag und führt ihn aus.

Wenn Sie die Option /execute in einer Zeile verwenden, muss in der Zeile grundsätzlich auch die Option /create enthalten sein.

/server:<Servername> | Optional. Sie können diese Option mit beliebigen anderen Optionen verwenden. Diese Option bewirkt, dass DmlRun den Auftrag remote auf dem angegebenen Server verwaltet.
/? oder /help oder /h | Stellt Hilfeinformationen für die Befehlszeilenoptionen und deren Verwendung bereit. Sie können diese Option nicht zusammen mit anderen Optionen verwenden.

Die folgenden Optionen können nicht zusammen in derselben Befehlszeile verwendet werden:

  • /create

  • /delete

  • /del_old

  • /list

  • /pause

  • /run

  • /term

Verwenden der Option "/list"

Die Auftragslistendatei kann durch den Befehl DmlRun /list:<Dateiname> erzeugt werden. Es handelt sich dabei um eine Textdatei in einem INI-kompatiblen Format. Jeder Auftrag nimmt einen eigenen Abschnitt in Anspruch, Job <Nr.>, wobei <Nr.> für eine fortlaufende Nummer steht (von 1 bis zur Gesamtanzahl der Aufträge). Im Folgenden finden Sie einen beispielhaften Auszug aus der Datei:

[General]
JobCount=2

[Job 1]
JobID number=<Auftrags-ID des Auftrags>
Description=<Beschreibung des Auftrags>
Status=<Ganzzahl; Statuscode des Auftrags>
LastRunTime=<Datum/Uhrzeit der letzten Ausführung des Auftrags. Leer, wenn der Auftrag nicht ausgeführt wurde.>
FinishedTime=<Datum/Uhrzeit der Fertigstellung des Auftrags. Leer, wenn der Auftrag nicht fertig gestellt wurde.>
CampaignItem=<Kampagnenartikel-ID. Nur vorhanden, wenn Teil einer Kampagne.>
DMLItem=<Direct Mailer-Artikel-ID. Nur vorhanden, wenn Teil einer Kampagne.>
CommerceSite=<css_site-ID. Nur vorhanden, wenn Teil einer Site.>

[Job 2]

Siehe auch

Erstellen von Direct Mailer-Auftragsdateien

Erstellen und Ausführen von Direct Mailer-Aufträgen


Ausführen der Vorhersageressource

Mithilfe der Commerce Server-Vorhersageressource können Sie Ihre Website mit Vorhersagefunktionen ausstatten. Diese versetzen Sie beispielsweise in die Lage, anhand von Informationen über frühere, von Benutzern mit denselben Merkmalen getätigte Produktkäufe vorherzusagen, welche Produkte wohl gekauft werden. Zum Einrichten und Verwalten der Vorhersageressource arbeiten Sie mit Commerce Server-Manager.

Dieser Abschnitt beinhaltet folgende Themen:

  • Workflow für die Vorhersageressource. Veranschaulicht den Workflow für das Erstellen und Verwalten von Modellen.

  • Informationen zur Vorhersageressource. Beschreibt die von der Vorhersageressource unterstützten Vorhersagefunktionen. Beschreibt außerdem die Komponenten der Vorhersageressource.

  • Bereitstellen der Vorhersageressource. Beschreibt, wie und aus welchen Gründen die Vorhersageressource zur optimalen Nutzung bereitgestellt werden kann.

  • Konfigurieren der Eigenschaften der Vorhersageressource. Erläutert, wie die Vorhersageressource für den Einsatz mit anderen Datenbanken als dem Commerce Server-Datawarehouse konfiguriert werden kann.

  • Starten und Beenden der Vorhersageressource. Erläutert das Starten und Beenden der Vorhersageressource.

  • Erstellen eines neuen Analysemodells. Erläutert, wie auf Grundlage einer Modellkonfiguration ein neues Analysemodell erstellt werden kann.

  • Bereitstellen eines Analysemodells. Erläutert die Bereitstellung eines Analysemodells.

  • Anzeigen von Konfigurationstabellen für Analysemodelle. Erläutert das Anzeigen von Konfigurationstabellen für Analysemodelle.

  • Anzeigen von Analysemodellen. Erläutert, wie Sie erstellte Analysemodelle anzeigen können. Zum Anzeigen der Analysemodelle können Sie entweder den Vorhersagemodell-Viewer in Commerce Server-Manager oder den Segment-Viewer in Commerce Server Business Desk verwenden.

  • Verwenden der Abhängigkeitsnetzwerkansicht. Erläutert, wie Sie mithilfe des Vorhersagemodell-Viewer das Abhängigkeitsnetzwerk anzeigen können.

  • Verwenden der Entscheidungsbaumansicht. Erläutert, wie Sie mithilfe des Vorhersagemodell-Viewer den Entscheidungsbaum anzeigen können.

  • Erneutes Erstellen eines Analysemodells. Erläutert, wie Sie ein Analysemodell neu erstellen können.

  • Umbenennen eines Analysemodells. Erläutert das Umbenennen eines Analysemodells.

  • Löschen eines Analysemodells. Erläutert, wie Sie ein Analysemodell löschen können.

  • Überwachen der Vorhersageressource. Erläutert, wie Sie die Vorhersageressource auf Verarbeitungsfehler überwachen können.


Workflow für die Vorhersageressource

In der folgenden Abbildung wird der Workflow zum Erstellen, Anzeigen, Analysieren und Bereitstellen von Analysemodellen dargestellt.

Workflowdiagramm für die Vorhersageressource
Transaktionen
Neues Konfigurationsmodell
(erstellt vom Siteentwickler)
Vorhersagemodell
Segmentmodell
Analysemodell auswählen:
Konfigurationsmodell auswählen:
Modell auf Webservern mithilfe von API-Aufrufen des Predictor-Clients bereitstellen
Segmentmodell
mithilfe des Segment-Viewers (in Business Desk)
anzeigen und analysieren
Vorhersagemodell
mithilfe des Vorhersagemodell-Viewers (im Commerce Server-Manager)
anzeigen und analysieren
Analysemodell erstellen
Daten in das Datawarehouse
importieren

  1. Importieren Sie Daten in das Commerce Server-Datawarehouse.

  2. Wählen Sie im Dialogfeld Modellerstellung ein Konfigurationsmodell aus.

    Oder erstellen Sie eine neue Modellkonfiguration.

  3. Wählen Sie im Dialogfeld Modellerstellung einen Analysemodelltyp aus.

  4. Erstellen Sie das Analysemodell.

  5. Zeigen Sie im Vorhersagemodell-Viewer ein Vorhersagemodell an, und analysieren Sie es.

  6. Zeigen Sie im Segment-Viewer in Business Desk ein Segmentmodell an, und analysieren Sie es.

  7. Stellen Sie das Analysemodell unter Verwendung von PredictorClient-API-Aufrufen auf Ihren Webservern bereit.

Anmerkung

  • Vorhersagemodelle bieten genauere Empfehlungen als Segmentmodelle. Verwenden Sie daher Vorhersagemodelle, um Empfehlungen für Ihre Site zu formulieren.


Informationen zur Vorhersageressource

Die Vorhersageressource ist ein Microsoft Windows 2000-Dienst, der bei einer vollständigen Installation zusammen mit Commerce Server installiert bzw. bei einer benutzerdefinierten Installation als optionale Installationskomponente gewählt werden kann. Mithilfe der Vorhersageressource sind Sie in der Lage, Ihre Website mit Vorhersagefunktionen auszustatten. Die Vorhersageressource ist nützlich, um komplexe Analysemodelle zu erstellen. Zu diesem Zweck legen Sie die Tabellenspalten bzw. Attribute fest, die vorhergesagt werden sollen. So können Sie mithilfe der Vorhersageressource beispielsweise ermitteln, welche Art von Inhalten, Anzeigen und Gegenseitigkeitsgeschäften für Benutzer möglicherweise von Interesse sind. Nachdem die Vorhersagerressource die Analysemodelle erstellt hat, können Sie den Active Server Pages (ASP) das Predictor Client-Objekt hinzufügen, das Ihrer Site intelligente Gegenseitigkeitsgeschäfte, Produktempfehlungen und Eigenschaftenvorhersagen hinzufügt.

In jeder Commerce-Site werden mehrere Instanzen der Vorhersageressource unterstützt, pro Computer wird jedoch nur jeweils eine Instanz unterstützt. Sie können die Vorhersageressource auf jedem Computer installieren, auf dem sich das Commerce Server-Datawarehouse befindet, alternativ können Sie aber die Vorhersageressource auch nur auf dedizierten Computern installieren, um Systemarbeitsspeicher zu sparen. Wenn Sie die Vorhersageressource auf einem separaten Computer ausführen, wird mehr Netzwerkbandbreite belegt, als wenn Sie die Vorhersageressource und das Datawarehouse auf demselben Computer ausführen. Voraussetzung für die Nutzung der Vorhersageressource ist, dass Sie als Datenbank Microsoft SQL Server verwenden.

Die Erstellung von Analysemodellen ist ein arbeitsspeicherintensiver Vorgang. Ressourcenzugriffe auf den Webservern können Sie vermeiden, indem Sie das Modell einmal erstellen und es dann auf die einzelnen Webserver kopieren. (Hierzu verwenden Sie die IPredictorClient::LoadModelFromDB-Methode mit dem Predictor Client-Objekt.) Jeder Webserver kann mehrere Analysemodelle hosten (für verschiedene Vorhersagefunktionen).

Nach dem Erstellen eines Analysemodells können Sie dieses anzeigen. Zum Anzeigen eines Vorhersagemodells können Sie den Vorhersagemodell-Viewer in Commerce Server-Manager verwenden, zum Anzeigen eines Segmentmodells das Modul "Segment-Viewer" in Commerce Server Business Desk.

Anmerkung

  • Pro Computer kann jeweils nur eine Instanz der Vorhersageressource vorhanden sein.

Die Vorhersageressource umfasst Analysemodelle und Analysemodellkonfigurationen. Zum Analysieren und Anzeigen der Analysemodelle bietet die Vorhersageressource den Vorhersagemodell-Viewer.

Dieser Abschnitt beinhaltet folgende Themen:

  • Analysemodelle

  • Analysemodellkonfigurationen

  • Vorhersagemodell-Viewer

  • Tipps zur Verwendung des Vorhersagedienstes

  • Effizienz von Analysemodellen


Analysemodelle

Bei einem Analysemodell handelt es sich um einen Satz statistischer Beziehungen, die auf Erkenntnissen über frühere Sitebenutzer und/oder deren Einkaufsverlauf, Klickverlauf oder anderes Verhalten basieren. Ein solches Modell enthält Informationen zu den Benutzertypen, die Ihre Site besuchen, nicht jedoch Informationen zu einzelnen Benutzern. Die detaillierten Informationen, anhand derer ein Analysemodell erstellt wird, sind im Commerce Server-Datawarehouse gespeichert.

Alle Modelle werden als Binärdaten in der Datenspalte der Tabelle PredictorModels in der Datawarehouse-Datenbank gespeichert.

In einer Site können verschiedene Analysemodelle ausgeführt werden. Dabei kann jedes dieser Modelle auf Daten aus einer anderen Datenbank beruhen. Sites können Analysemodelle gemeinsam nutzen, da die Modelle nicht sitespezifisch sind. In Commerce Server 2000 können Sie für jede Site bzw. jeden Server beliebig viele Modelle verwenden.

Vorhersagemodelle und Segmentmodelle

Fälle

Dicht gefüllte Tabellen

Gering gefüllte Tabellen

Vorhersagemodelle und Segmentmodelle

Sie können zwei Arten von Analysemodellen erstellen, nämlich Vorhersagemodelle und Segmentmodelle. Zum Anzeigen von Vorhersagemodellen verwenden Sie den Vorhersagemodell-Viewer in Commerce Server-Manager, zum Anzeigen von Segmentmodellen das Modul "Segment-Viewer" in Commerce Server Business Desk.

Ein Vorhersagemodell besteht aus einem Satz von Entscheidungsbäumen und einem Zusammenfassungsnetzwerk, das als Abhängigkeitsnetzwerk bezeichnet wird. In einem Abhängigkeitsnetzwerk werden die Abhängigkeiten (Vorhersagebeziehungen) zusammengefasst, die in den Entscheidungsbäumen beschrieben sind. Vorhersagemodelle bieten genauere Vorhersagen als Segmentierungs- oder speicherbasierte Algorithmen. Sowohl das Abhängigkeitsnetzwerk als auch die einzelnen Entscheidungsbäume zeigen Sie mithilfe des Vorhersagemodell-Viewer an.

In einem Segmentmodell werden Benutzergruppen anhand übereinstimmender Benutzereigenschaften in Segmente unterteilt. Gleichartige Segmente werden wiederum in Segmentsammlungen gruppiert, wodurch eine Segmenthierarchie entsteht. Zum Anzeigen von Segmentmodellen verwenden Sie das Modul "Segment-Viewer" in Business Desk.

Bevor Sie ein Analysemodell erstellen, müssen Sie sicherstellen, dass die Daten, mit denen Sie das Modell erstellen möchten, im Datawarehouse verfügbar sind. Zudem müssen Sie eine eigene Konfiguration erstellen, wenn Sie nicht die standardmäßige Transaktionsmodellkonfiguration verwenden möchten.

Analysemodelle werden auf der Grundlage von Fällen erstellt, die Sie wiederum anhand der Daten im Datawarehouse erstellen. Bevor Sie jedoch anhand der Daten im Datawarehouse Fälle erstellen können, müssen Sie zunächst Daten in das Datawarehouse importieren. Informationen zum Importieren von Daten in das Datawarehouse finden Sie unter Importieren von Daten in das Datawarehouse.

Fälle

Bei einem Fall handelt es sich um die Menge aller Informationen, die über einen bestimmten Sitebenutzer bekannt sind. Ein Fall besteht aus Attribut/Wert-Paaren. Zu diesen Information können Daten zum Benutzerprofil, zum Einkaufsverlauf, zum Klickverlauf oder eine Kombination dieser Daten zählen. In einem typischen Analysemodell werden zwischen 10.000 und 50.000 Fälle verwendet, was zu einer Größe von zwischen 10 KB und 100 KB führen kann. Die Anzahl der in einer Modellkonfiguration enthaltenen Fälle wirkt sich auf die Genauigkeit der Analysemodell aus, die auf dieser Konfiguration basieren. Grundsätzlich sind Vorhersagen genauer, wenn für ein Modell zahlreiche Fälle zur Verfügung stehen. Ab einem bestimmten Punkt (der häufig bei 50.000 Fällen oder sogar darunter liegt) hat jedoch eine höhere Anzahl von Fällen keine nennenswerten Auswirkungen mehr auf die Genauigkeit. Dagegen dauert die Erstellung eines Analysemodells immer länger, je mehr Fälle in die Konfiguration einbezogen werden.

Fälle werden anhand der in der Datawarehouse-Datenbank gespeicherten Daten erstellt. Nicht alle in der Datawarehouse-Datenbank enthaltenen Datentabellen bieten jedoch nützliche Informationen für das Webgeschäft. Wenn Sie z. B. vorhersagen möchten, welche Produkte bestimmte Benutzer wahrscheinlich kaufen werden, ist es sicherlich sinnvoll, Datentabellen bzw. Ansichten (also virtuelle Tabellen, in denen die Daten aus einer oder mehreren Tabellen in anderer Form dargestellt werden) zu verwenden, die Informationen zu den Benutzern enthalten, beispielsweise Benutzerprofile, Einkaufsverlauf und/oder Klickverlauf.

Die beiden zur Erstellung von Modellkonfigurationen am häufigsten verwendeten Datentypen sind Benutzerprofildaten, die in dicht gefüllten Tabellen gespeichert werden, und Transaktionsverlaufsprotokolle, die in gering gefüllten Tabellen gespeichert werden. Zum Analysieren von Transaktionen in einer gering gefüllten Tabellen können Sie wahlweise die standardmäßig zur Verfügung stehende Transaktionsmodellkonfiguration verwenden oder eine eigene Modellkonfiguration erstellen. So können Sie z. B. eine Konfiguration erstellen, die eine einzige dicht gefüllte Tabelle mit demografischen Informationen analysiert. Sie können aber auch eine Konfiguration erstellen, die sowohl eine dicht gefüllte Tabelle als auch eine oder mehrere gering gefüllte Tabellen mit Transaktionen analysiert.

Anmerkung

  • Bei Verwendung sowohl einer dicht gefüllten Tabelle als auch einer oder mehrerer gering gefüllter Tabellen werden nur Daten verarbeitet, die in der dicht gefüllten Tabelle aufgeführten Benutzern entsprechen. Wenn Sie für Benutzer, für die keine entsprechenden Daten in der dicht gefüllten Tabelle vorliegen, Daten aus einer gering gefüllten Tabelle verwenden möchten, müssen Sie in der dicht gefüllten Tabelle für diese Benutzer Datensätze erstellen und alle unbekannten Werte auf NULL setzen. Informationen zur Vorgehensweise bei der Erstellung einer eigenen Konfiguration finden Sie unter Predictor Schema (englisches Thema).

Dicht gefüllte Tabellen

In einer dicht gefüllten Tabelle (bzw. Ansicht) werden die Attribute eines Falles als Spaltenwerte in einer einzigen Zeile dargestellt. In der Regel eignet sich eine dicht gefüllte Tabelle am besten zur Darstellung demografischer Kundendaten (wie z. B. Alter, Geschlecht und Gehalt). In dicht gefüllten Tabellen dieses Typs gibt es genau eine Zeile für jeden Benutzer und genau eine Spalte für jedes Attribut.

Als Datenquelle für dicht gefüllte Tabellen werden häufig die Profildaten herangezogen, die Benutzer beim Ausfüllen eines Registrierungsformulars übermitteln. Informationen zum Erstellen von Profildefinitionen zum Erfassen von Benutzerdaten in Ihrer Website finden Sie unter Ausführen der Profilressource.

In der folgenden Abbildung wird das Layout einer typischen dicht gefüllten Tabelle dargestellt.

Dicht gefüllte Tabelle

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Gering gefüllte Tabellen

In einer gering gefüllten Tabelle (bzw. Ansicht) wird ein Fall in mehreren Zeilen dargestellt, wobei jede Zeile für ein Attribut/Wert-Paar steht. So können beispielsweise Produktkaufsdaten im folgenden Schema vorliegen: (KundenID, ProduktID, Menge). In gering gefüllten Tabellen dieses Typs gibt es eine Zeile für jedes Produkt, das der Benutzer kauft. Grundsätzlich enthalten gering gefüllte Tabellen eine Zeile für jede Transaktionen, also beispielsweise eine Zeile für jeden bestellten Artikel oder jede besuchte Seite. Außerdem kann eine solche Tabelle mehrere Zeilen für jeden Benutzer enthalten, der Ihre Site besucht, da ein und derselbe Benutzer mehrere Artikel bestellt oder mehrere Seiten besucht haben kann. Die Gesamtheit aller Zeilen, die sich auf einen einzelnen Benutzer beziehen, stellt einen Fall dar. Als Fall-ID dient in der Regel eine Benutzer-ID, wie z. B. ein eindeutiger Benutzer- oder Anmeldename. Die Eigenschaft ist das Element, das vorhergesagt werden soll, und der Wert ist die Menge dieser Eigenschaft.

Da die für eine gering gefüllte Datentabelle benötigten Daten möglicherweise in zwei oder mehr Tabellen der Datenquelle gespeichert sind, ist es unter Umständen erforderlich, mithilfe von SQL Server Enterprise Manager eine Ansicht zu erstellen, die alle für die Analysemodellkonfiguration erforderlichen Spalten enthält. Wenn Sie also beispielsweise Käufe vorhersagen möchten, die auf anderen gekauften Produkten basieren, benötigen Sie die Spalten mit der Benutzer-ID, der Produkt-SKU und den gekauften Mengen. Nun befinden sich diese Spalten je nach Struktur der Datenbank möglicherweise in zwei oder drei unterschiedlichen verknüpften Tabellen (z. B. Kunden, Bestellungen und Bestelldetails oder Anforderung und Auftragseinzelposten).

In der folgenden Abbildung wird das Layout einer typischen gering gefüllten Tabelle dargestellt.

Gering gefüllte Tabelle

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Informationen zum Erstellen dicht bzw. gering gefüllter Tabellen sowie zum Erstellen von Analysemodellkonfigurationen finden Sie unter Predictor Schema (englisches Thema).


Analysemodellkonfigurationen

Eine Analysemodellkonfiguration enthält Informationen, anhand derer Vorhersage- und Segmentmodelle erstellt werden. Die Vorhersageressource verwendet Analysemodellkonfigurationen, um Daten aus der Datawarehouse-Datenbank von Commerce Server Fällen zuzuordnen. Bei einem Fall handelt es sich um die Menge der Informationen, die über einen bestimmten Benutzer bekannt sind. Ein Fall besteht aus Attribut/Wert-Paaren. Fälle dienen zur Erstellung von Analysemodellen, die wiederum vom Predictor Client-Objekt zur Formulierung von Vorhersagen in Bezug auf das zukünftige Benutzerverhalten verwendet werden.

In einer Analysemodellkonfiguration werden die folgenden Elemente festgelegt:

  • Eine Auflistung der Tabellen und/oder Ansichten im Datawarehouse, die die in dem Modell zu berücksichtigenden Daten enthalten.

  • Attribute für das Modell. Ein Attribut ist ein nützliches Unterscheidungsmerkmal eines Benutzers, z. B. sein Alter, ob er ein bestimmtes Produkt gekauft hat oder ob er auf eine bestimmte Anzeige geklickt hat.

Commerce Server 2000 bietet eine Transaktionsmodellkonfiguration, anhand derer Sie Vorhersage- und Segmentmodelle zum Analysieren von Transaktionsdaten aus dem Datawarehouse erstellen können. Wenn Sie aber Vorhersage- und Segmentmodelle auf der Grundlage anderer Datentypen erstellen möchten, müssen Sie mithilfe des Vorhersagedienstschemas neue Modellkonfigurationen erstellen. Informationen zum Erstellen einer neuen Analysemodellkonfiguration finden Sie unter Predictor Schema (englisches Thema).

Die manuelle Erstellung einer eigenen Analysemodellkonfiguration kann aus einem der folgenden Gründe erforderlich sein:

  • Die Feldnamen in Ihren Tabellen (bzw. Ansichten) weichen von denen in den integrierten Tabellen ab.

  • Sie verwenden nicht die in Commerce Server integrierten Datentabellen.

  • Die zur Verfügung gestellten Modellkonfigurationen genügen Ihren geschäftlichen Ansprüchen nicht.

Die in Commerce Server zur Verfügung stehende Transaktionsmodellkonfiguration wird in der Datawarehouse-Datenbank in den drei Haupttabellen und einer optionalen vierten Tabelle verwaltet. Diese lauten wie folgt:

  • PredictorModelCfgs. Führt die bestehende Modellkonfiguration auf. Diese Modellkonfiguration ist unter Modellkonfigurationen in Commerce Server-Manager enthalten.

  • PredictorDataTables. Führt die Tabellen auf, die die in Modellen zu berücksichtigenden Daten enthalten, und beschreibt sie.

  • PredictorModels. Speichert die eigentlichen Analysemodelle und die zu deren Erstellung verwendeten Parameter.

  • PredictorAttributes <Konfigurationsname>. Zeigt an, welche Eigenschaften zum Erstellen des Modells zu verwenden sind oder welche Eigenschaften vorhergesagt werden sollen. Diese Tabelle ist optional und kann verwendet werden, um die automatische Zuordnung von Attributverteilungen außer Kraft zu setzen.

Informationen zum Anzeigen der Modellkonfigurationstabellen mit Microsoft SQL Server finden Sie unter Anzeigen von Konfigurationstabellen für Analysemodelle.


Vorhersagemodell-Viewer

Den Vorhersagemodell-Viewer verwenden Sie zum Anzeigen Ihrer Vorhersagemodelle. Der Vorhersagemodell-Viewer bietet zwei Ansichten zum Analysieren von Vorhersagemodellen, nämlich die Abhängigkeitsnetzwerkansicht und die Entscheidungsbaumansicht.

Abhängigkeitsnetzwerkansicht

Entscheidungsbaumansicht

Abhängigkeitsnetzwerkansicht

Mit der Abhängigkeitsnetzwerkansicht arbeiten Sie, um die statistischen Abhängigkeiten der Attribute in Ihren Analysemodellen zu analysieren. Die Abhängigkeitsnetzwerkansicht ist die Ansicht, in der ein Vorhersagemodell im Vorhersagemodell-Viewer zunächst immer geöffnet wird. Es handelt sich bei dieser Ansicht um ein Diagramm des Vorhersagemodells, das mit Knoten und Bögen dargestellt wird. Dabei entsprechen die Knoten den Attributen und die Bögen den statistischen Abhängigkeiten zwischen den Attributen.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Die Knoten werden als Oval mit Text angezeigt. Wenn Sie etwas länger mit dem Mauszeiger auf einen Knoten zeigen, wird eine QuickInfo mit dem vollständigen Namen des Attributs eingeblendet. Alle Knoten werden in grüner Farbe dargestellt, solange keine Knoten ausgewählt sind.

Wenn Sie ein Vorhersagemodell in der Abhängigkeitsnetzwerkansicht öffnen, werden die Knoten automatisch so angezeigt, dass Sie sich ganz einfach einen Überblick verschaffen können. Während Commerce Server das Layout verbessert, bewegen sich die Knoten fortwährend. Sie können den Verbesserungsprozess beenden und erneut starten. Zudem können Sie auf einen Knoten klicken, um die direkten Beziehungen zwischen diesem Knoten und den anderen Knoten im Diagramm hervorzuheben. Sie können Knoten auch an eine andere Position ziehen, um das Layout manuell zu verändern. Informationen zum Arbeiten mit der Layoutanordnung Ihres Modells finden Sie unter Anordnen des Layouts in der Abhängigkeitsnetzwerkansicht. Die Farben der Knoten haben die folgende Bedeutung:

  • Grün. Der Knoten ist ausgewählt.

  • Rot. Der ausgewählte Knoten wird zur Vorhersage dieses Knotens herangezogen.

  • Blau. Dieser Knoten wird zur Vorhersage des ausgewählten Knotens herangezogen.

  • Lila. Es besteht eine Vorhersagebeziehung in beiden Richtungen.

Mithilfe des Schiebereglers an der linken Seite der Abhängigkeitsnetzwerkansicht können Sie steuern, wie viele Beziehungen basierend auf der Stärke der Beziehung angezeigt werden. Wenn Sie den Schieberegler nach unten bewegen, werden Bögen entfernt, d. h., es werden die Bögen entfernt, die den schwächsten Abhängigkeiten entsprechen, bis nur noch die Bögen für die stärksten Abhängigkeiten angezeigt werden.

Der Schieberegler ist ein nützliches Hilfsmittel beim Anzeigen eines Vorhersagemodells mit Dutzenden von Eigenschaften und Hunderten von Beziehungen, da er Ihnen ermöglicht, sich auf die Abhängigkeiten zu konzentrieren, die für Sie am interessantesten sind.

Entscheidungsbaumansicht

Mithilfe der Entscheidungsbaumansicht der Vorhersageressource können Sie die Baumkomponenten Ihres Vorhersagemodells analysieren. Zur Entscheidungsbaumansicht gelangen Sie durch Doppelklicken auf einen Knoten in der Abhängigkeitsnetzwerkansicht. Bei einem Entscheidungsbaum handelt es sich um eine grafische Darstellung für einen Satz von Wahrscheinlichkeitsregeln im folgenden Format:

WENN X = Wert und Y = Wert usw., DANN Ziel = Wert mit der Wahrscheinlichkeit p

Die Bedingungen in der WENN-Klausel einer bestimmten Regel entsprechen Traversierung des Baums von links nach rechts. Insbesondere wird jeder interne Knoten mit dem Namen eines Attributs als Anmerkung versehen, und die Außenkanten werden mit einem bzw. mehreren Werten für dieses Attribut als Anmerkung versehen.

Knoten weisen eine ovale Form und die Farbe Lila auf. Blattknoten, die die Vorhersagewahrscheinlichkeiten anzeigen, werden als rechteckige graue Felder dargestellt.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

In jedem Blattknoten wird eine Wahrscheinlichkeitsverteilung für das Zielattribut gespeichert. (Als Wahrscheinlichkeitsverteilung wird eine Menge von Wahrscheinlichkeiten bezeichnet, von denen sich jeweils eine auf einen möglichen Wert des Ziels bezieht.) Wenn das Zielattribut kategorisiert ist und weniger als acht Werte aufweist, wird die Wahrscheinlichkeit der einzelnen Werte im Blattknoten als Histogramm dargestellt. Ist ein kategorisiertes Attribut binär (d. h. zeigt es nur das Vorhandensein bzw. Fehlen eines Wertes an), dann wird nur die Wahrscheinlichkeit für das vorhandene Attribut als Teil des grünen Balkens angezeigt (siehe vorstehende Abbildung). Bei einem kategorisierten Attribut mit mehr als acht Werten wird jedem Blattknoten der wahrscheinlichstes Wert für das Ziel als Anmerkung hinzugefügt. Ist das Zielattribut kontinuierlich, wird jedem Blattknoten der erwartete Bereich des Ziels als Anmerkung hinzugefügt.

Sie können auch auf einen internen Knoten doppelklicken, um den Pfad zu diesem Knoten besser erkennen zu können.

Es ist möglich, weiter durch den Baum zu navigieren, ohne das Dialogfeld zu schließen. Im Dialogfeld wird jeweils der Pfad für den aktuell ausgewählten Knoten angezeigt.

Beachten Sie, dass es zwischen dem Inhalt der Entscheidungsbäume und dem des Abhängigkeitsnetzwerks einen Zusammenhang gibt, den Sie sich zunutze machen können. So gibt es nämlich im Abhängigkeitsnetzwerk nur dann einen Bogen von Attribut A zu Attribut B, wenn Attribut A ein Knoten im Entscheidungsbaum für Attribut B ist. (Also lassen beide Ansichten denselben Schluss zu, nämlich dass die Kenntnis von Attribut A hilfreich für die Vorhersage von Attribut B ist.)

Siehe auch

Verwenden der Abhängigkeitsnetzwerkansicht


Tipps zur Verwendung des Vorhersagedienstes

Die Leistung der Vorhersageressource lässt sich auf verschiedene Weise verbessern:

  • Steuern der zum Erstellen eines Analysemodells verwendeten Stichprobengröße

  • Steuern der Anzahl der in einem Analysemodell zu berücksichtigenden Attribute

  • Erstellen des Modells auf demselben Computer, auf dem sich auch das Datawarehouse befindet

Sie haben die Möglichkeit, die relative Genauigkeit eines Analysemodells sowie die für die Erstellung benötigte Zeit zu steuern, indem Sie die Stichprobengröße ändern. Je größer die Stichprobe, umso genauer ist das Analysemodell und umso länger dauert die Modellerstellung. Umfassen Analysemodelle jedoch mehr als 30.000 bis 50.000 Fälle, lässt sich ihre Genauigkeit nicht mehr wesentlich steigern. Wie viele Fälle zum Erstellen eines Analysemodells verwendet werden, können Sie im Dialogfeld Modellerstellungseigenschaften durch Festlegen eines anderen Werts für Anzahl der Fälle steuern. Des Weiteren können Sie unter Verwendung einer Ansicht oder Tabelle vorab eine Stichprobe der Daten ziehen und das Modell aus dieser Stichprobe erstellen. Falls Sie sich für diese Methode entscheiden, sollten Sie darauf achten, die Stichproben der Fälle nach dem Zufallsprinzip zu ziehen, statt sie folgerichtig auszuwählen.

Sie können auch die als Eingaben verwendeten Anteile von Attributen steuern, um die Genauigkeit eines Analysemodells und die für die Modellerstellung benötigte Zeit vorherzusagen. Je größer der Anteil, umso genauer ist das Modell, umso länger dauert jedoch auch die Modellerstellung. Um festzulegen, wie viele Attribute in ein Analysemodell einbezogen werden sollen, ändern Sie im Dialogfeld Modellerstellungseigenschaften die Werte für Eingabeattributanteil und Ausgabeattributanteil. Dabei sagt der Wert 1,0 aus, dass die Vorhersageressource alle verfügbaren Attribute zur Erstellung des Modells verwenden soll. Wenn die Datenbank zahlreiche Attribute enthält (z. B. ein Produktkatalog mit Zehn- oder Hunderttausenden von Produkten), empfiehlt es sich, eine geringere Anzahl zu wählen. In den meisten Fällen ist es empfehlenswert, gleich große Ein- und Ausgabeanteile zu verwenden, es sei denn, es gibt einen triftigen Grund, anders vorzugehen.

Wenn Sie die Ergebnisse Ihres Vorhersagemodells zu verbessern versuchen, bedenken Sie die Datengrößen und Höchstwerte ebenso wie die Leistungskriterien für die Vorhersageressource.

Es empfiehlt sich auch, Analysemodelle immer auf dem Computer zu erstellen, auf dem sich auch das Commerce Server-Datawarehouse befindet.

Datengrößen und Höchstwerte

Leistungskriterien

Datengrößen und Höchstwerte

Der folgenden Tabelle können Sie die durchschnittlichen und maximalen Datengrößen für die Vorhersageressource entnehmen.

Parameter | Durchschnittswert | Höchstwert
Anzahl von Produkten im Produktkatalog | 50.000 | 500.000
Anzahl von Fällen für die Modellerstellung | 30.000 | Begrenzung nur durch den verfügbaren Arbeitsspeicher
Anzahl von Transaktionen pro Benutzer | 20 | Gesamtanzahl der Attribute
Größe des berechneten Modells | 100 KB | Begrenzung durch Einschränkungen der Datenbank
Anzahl vorhergesagter Attribute pro Aufruf | 10 | Gesamtanzahl der Attribute

Leistungskriterien

Der folgenden Tabelle können Sie die Leistungskriterien für die Vorhersageressource entnehmen. Die Kriterien basieren auf den Durchschnittszahlen, die unter Datengrößen und Höchstwerte genannt sind.

Für alle angegebenen Zahlen wird angenommen, dass der Dienst auf einem Computer mit Pentium II-Prozessor mit 400 MHz und 512 MB RAM ausgeführt wird. Clientcomputer verfügen über einen Pentium II-Prozessor mit 400 MHz und 128 MB RAM.

Kriterium | Komponente | Minimum | Maximum | Durchschnitt
Wartezeit für Vorhersage | Client | 0 ms | 200 ms pro Vorhersageaufruf | 100 ms pro Vorhersageaufruf
Durchsatz für Vorhersageanforderungen | Client | 30 Vorhersagen pro Sekunden pro CPU | Nicht zutreffend | 50 Vorhersagen pro Sekunden pro CPU
Erstellungszeit für neue Modelle | Dienst | Nicht zutreffend | 8 Stunden | 1,5 Stunden
Laden von Modellen aus der Datenbank | Client | Nicht zutreffend | 30 Sekunden | 10 Sekunden
Dienstanfangszeit | Dienst | Nicht zutreffend | 45 Sekunden | 10 Sekunden

Siehe auch

Effizienz von Analysemodellen


Effizienz von Analysemodellen

Die Effizienz eines Analysemodells können Sie prüfen, indem Sie es zum Vorhersagen neuer Daten verwenden. Die Vorhersageressource gibt Werte aus, anhand derer bemessen wird, wie genau ein Modell neue Daten vorhersagt. Anhand dieser Werte können Sie die Effizienz von Analysemodellen ermitteln. Zu diesem Zweck ändern Sie die Werte für die Parameter Stichprobengröße sowie Eingabeattributanteil und Ausgabeattributanteil. Wie viele Fälle für die Überprüfung verwendet werden, legen Sie mithilfe des Parameters Gemessene Genauigkeit des Stichprobenanteils fest.

Die Vorhersageressource umfasst zwei Werte. Einer davon wird als Empfehlungsbewertung bezeichnet. Dieser Wert dient dazu, die Qualität eines Analysemodells zu bemessen, wenn dieses verwendet wird, um Produkte für Gegenseitigkeitsgeschäfte zu empfehlen. Dabei wird die Qualität einer von dem Modell zurückgegebenen, nach Rang sortierten Liste von Empfehlungen bewertet. Der zweite Wert wird als Datenanpassungswert bezeichnet. Dieser Wert dient dazu, die Qualität von Vorhersagen zu bemessen, die ein Analysemodell beim Auffüllen fehlender Daten wie z. B. fehlender Benutzereigenschaften ausgegeben hat. Sie können diese Werte in Commerce Server-Manager im Knoten Modelle anzeigen. Die Werte werden im Commerce Server-Datawarehouse in der Tabelle PredictorModels in den Spalten DataFitScore und Empfehlungsbewertung gespeichert.

Die Empfehlungsbewertung funktioniert folgendermaßen: Alle Fälle in den neuen (Test-)Daten werden nacheinander dem Analysemodell zugeführt, wobei eine (nach dem Zufallsprinzip ausgewählte) Transaktion entfernt wird. Daraufhin gibt das Modell eine Liste mit Empfehlungen zurück (höchstens so viele, wie Sie im Parameter Gemessene maximale Vorhersagegenauigkeit festgelegt haben). Wird die zuvor entfernte Transaktion in der Liste aufgeführt, wird das Modell als erfolgreich bewertet. Die Empfehlungsbewertung entspricht dem Prozentsatz der Fälle, in dem das Analysemodell erfolgreich war. Der Parameter Gemessene maximale Vorhersagegenauigkeit wird bei der Erstellung des Modells festgelegt. Er dient dazu, die Anzahl der Empfehlungen zu bestimmen, die dem Benutzer angezeigt werden sollen.

Beim Datenanpassungswert handelt es sich um den geometrischen Mittelwert der Wahrscheinlichkeit, die das Analysemodell einer Beobachtung in den Testdaten zuordnet, dividiert durch die Wahrscheinlichkeit, die ein Randmodell dieser Beobachtung zuordnet. Bei einem Randanalysemodell handelt es sich um ein theoretisches Modell, das auf der Annahme basiert, alle Attribute seien voneinander unabhängig.

Mit beiden Werten wird nur die Fähigkeit des Modells zur Formulierung von Vorhersagen in Bezug auf die in den Testdaten enthaltenen Fälle bewertet. Infolgedessen müssen die Testdaten soweit als möglich der wahrscheinlich in der Praxis auftretenden Verteilung der Fälle entsprechen, damit einer der Werte als verlässlicher Indikator der tatsächlichen Leistung eines Analysemodells herangezogen werden kann. Darüber hinaus ist es wichtig, dass die Testdaten nicht mit den zur Erstellung des Analysemodells verwendeten Daten überlappen. Falls die Werte bei den verschiedenen, jeweils für die Bewertung als Stichproben gezogenen Testdaten erheblich voneinander abweichen (so ergibt sich beispielsweise durch eine geringfügige Änderung der Option Gemessene Genauigkeit des Stichprobenanteils ein ganz anderer Wert), ist es sehr wahrscheinlich, dass die Testdaten unzulänglich sind. Auch wenn nicht genügend Eingabefälle bzw. "Trainingsfälle" vorhanden sind, können die Ergebnisse stark voneinander abweichen.

Negative Datenanpassungswerte für Segmentmodelle

Bei der Segmentierung werden Fälle unter dem Gesichtspunkt ähnlicher Merkmale in separaten Segmenten gruppiert. Die in einem Segment enthaltenen Fälle werden in der Segmentbeschreibung zusammengefasst. Die Beschreibung beruht auf Wahrscheinlichkeitsannahmen. Angenommen, jeder Fall bezieht sich z. B. auf einen Benutzer, während das Commerce Server-Datawarehouse Informationen zum Gehalt dieses Benutzers enthält und dazu, ob der Benutzer die Produkte X, Y und Z gekauft hat. Die Segmentbeschreibung richtet sich in diesem Beispiel nach einer Bemessung der folgenden Mengen in Bezug auf die Benutzer (Fälle) in einem bestimmten Segment: Durchschnittsgehalt (und standardmäßige Gehaltsabweichungen), Wahrscheinlichkeit, dass Produkt X gekauft wurde, Wahrscheinlichkeit, dass Produkt Y gekauft wurde, und Wahrscheinlichkeit, dass Produkt Z gekauft wurde. Das Segmentmodell setzt sich aus den Segmentbeschreibungen der einzelnen Segmente zusammen.

Das Segmentmodell sowie die Segmentbeschreibungen werden ausschließlich mit Eingabefällen bzw. "Trainingsfällen" berechnet. Wenn nun "Testfälle" vorliegen, die in den Trainingsfällen nicht enthaltene Informationen umfassen, kann es zu niedrigen Werten für die Empfehlungsbewertung und sogar zu negativen Werten für den Datenanpassungswert kommen. Im Idealfall sollten die Trainings- und Testfälle dieselben Informationen enthalten. Treten niedrige Werte für die Empfehlungsbewertung oder negative Werte für den Datenanpassungswert auf, lässt sich das Problem möglicherweise bis zu einem gewissen Grad beheben, wenn Sie den Wert des Parameters Stichprobengröße erhöhen oder den Wert des Parameters Gemessene Genauigkeit des Stichprobenanteils senken. Sie sollten sich aber darüber im Klaren sein, dass bei einem höheren Wert für den Parameter Stichprobengröße möglicherweise die Erstellung des Segmentmodells länger dauert. Seien Sie besonders vorsichtig, wenn Sie den Wert für den Parameter Gemessene Genauigkeit des Stichprobenanteils senken möchten, denn dadurch verringert sich die Anzahl der Testfälle. Grundsätzlich ist aber eine große Anzahl von Testfällen immer von Vorteil.

Mit der Empfehlungsbewertung und dem Datenanpassungswert wird das Segmentmodell nur in seiner Fähigkeit zur Formulierung von Vorhersagen bewertet. Wenn sich für ein Segmentmodell ein niedriger Wert für die Empfehlungsbewertung oder ein negativer Wert für den Datenanpassungswert ergeben, weist dies darauf hin, dass die Vorhersagen des Modells möglicherweise nicht genau sind. Allerdings gilt diese Aussage nur für die Testfälle. Sie werden wahrscheinlich feststellen, dass die von dem Segmentmodell erzeugten Segment für andere Zwecke durchaus nützlich sind. Bewerten können Sie die Segmente mit dem Segment-Viewer in Commerce Server Business Desk.

Siehe auch

Analysemodelle

Analysemodellkonfigurationen

Erstellen eines neuen Analysemodells

Anzeigen von Analysemodellen

Anzeigen von Konfigurationstabellen für Analysemodelle

PredictorClient Object (C++) (englisches Thema)

PredictorClient Object (Visual Basic) (englisches Thema)


Bereitstellen der Vorhersageressource

Die Erstellung von Analysemodellen ist ein CPU-intensiver Vorgang. Sie können die Vorhersageressource auf dem Computer ausführen, auf dem das Commerce Server-Datawarehouse gespeichert ist. Alternativ können Sie sie aber auch auf einem separaten Host bereitstellen. Wenn Sie die Vorhersageressource auf demselben Computer wie das Datawarehouse ausführen, nimmt die Modellerstellung weniger Zeit in Anspruch, da die Daten nicht über ein Netzwerk übertragen werden müssen. Es kann dabei jedoch zu Leistungseinbußen im Datawarehouse kommen. Probleme mit der Leistung des Datawarehouse können Sie aber umgehen, wenn Sie Analysemodelle zu einem Zeitpunkt erstellen, zu dem wenige Zugriffe auf das Datawarehouse erfolgen.

Ob Sie die Vorhersageressource auf einem separaten Computer (auf dem sich das Datawarehouse nicht befindet) bereitstellen sollten, richtet sich nach der Größe und Anzahl der zu erstellenden Analysemodelle. Benötigen Sie nur kleine Modelle, deren Erstellung nicht mehr als eine oder zwei Minuten in Anspruch nimmt, ist es empfehlenswert, die Vorhersageressource auf demselben Computer bereitzustellen wie das Datawarehouse. Müssen Sie hingegen sehr große Analysemodelle erstellen, wenn Sie also beispielsweise über einen Katalog mit 1.000.000 Produkten verfügen und all diese Produkte regelmäßig verkaufen, dann empfiehlt es sich, die Vorhersageressource auf einem dedizierten Host bereitzustellen.

Anmerkung

  • Wenn Sie den OLAP-Server (analytische Onlineverarbeitung), das Datawarehouse und die Vorhersageressource auf demselben Computer ausführen, kann dies dazu führen, dass große Analyseberichte nur noch sehr langsam ausgeführt werden.

Siehe auch

Bereitstellen der Site


Konfigurieren der Eigenschaften der Vorhersageressource

Vorhersageempfehlungen werden standardmäßig in der Vorhersageressource für die Verwendung mit dem Commerce Server-Datawarehouse aktiviert. Wenn Sie die Standardempfehlungen deaktivieren möchten, müssen Sie den ASP-Code (Active Server Pages) ändern oder das Analysemodell, das der ASP-Code standardmäßig für die Standardempfehlungen lädt, umbenennen.

Die ersten beiden der folgenden Schrittanweisungen beziehen sich auf das Konfigurieren der Eigenschaften der Vorhersageressource, sodass die Vorhersageressource Modelle und Modellkonfigurationen aufführt, die sich in anderen Datenbanken als dem Commerce Server-Datawarehouse befinden.

Anmerkung

  • Falls Sie eine andere Datenbank als das Commerce Server-Datawarehouse verwenden möchten, müssen Sie die Eigenschaft Externe Datenbank verwenden neu konfigurieren und anschließend im Dialogfeld Datenverknüpfungseigenschaften eine Verbindungszeichenfolge für die externe Datenbank eingeben.

So listen Sie Analysemodelle und Modellkonfigurationen in einer externen Datenbank auf

So legen Sie die Verbindungszeichenfolge für eine externe Datenbank fest

So listen Sie nur Modelle und Modellkonfigurationen im Commerce Server-Datawarehouse auf

So listen Sie Analysemodelle und Modellkonfigurationen in einer externen Datenbank auf

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, klicken Sie mit der rechten Maustaste auf Vorhersage auf <Servername>, und klicken Sie dann auf Eigenschaften.

  2. Wählen Sie im Dialogfeld Eigenschaften von Vorhersage auf <Servername> auf der Registerkarte Eigenschaften im Feld Eigenschaften die Option Externe Datenbank verwenden aus.

  3. Setzen Sie die Eigenschaft im Feld Ausgewählter Eigenschaftswert auf -1 (Wahr).

Die Vorhersageressource listet neben den Modellen und Modellkonfigurationen aus dem Datawarehouse auch die aus einer externen Datenbank in der Konsole von Commerce Server-Manager auf. (Modelle und Modellkonfigurationen im Commerce Server-Datawarehouse werden immer aufgelistet.)

Nachdem Sei diese Eigenschaft festgelegt haben, müssen Sie eine Verbindung zu der externen Datenbank einrichten.

So legen Sie die Verbindungszeichenfolge für eine externe Datenbank fest

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, klicken Sie mit der rechten Maustaste auf Vorhersage auf <Servername>, und klicken Sie dann auf Eigenschaften.

  2. Wählen Sie im Dialogfeld Eigenschaften von Vorhersage auf <Servername> auf der Registerkarte Verbindungszeichenfolgen die Option Externe Datenbank aus, und klicken Sie dann auf Ändern.

  3. Nehmen Sie im Dialogfeld Datenverknüpfungseigenschaften die folgenden Einstellungen vor:
    Option | Aktion
    Geben Sie einen Servernamen ein, oder wählen Sie einen aus | Wählen Sie in der Dropdownliste einen Servernamen aus, oder geben Sie den Pfad des Servers ein, auf dem sich die Datenbank befindet, auf die Sie zugreifen möchten.
    Integrierte Sicherheit von Windows NT verwenden | Klicken Sie hierauf, um festzulegen, dass der Provider eine sichere (bzw. vertrauenswürdige) Verbindung zu einem SQL Server-Computer anfordern soll, auf dem Microsoft Windows NT ausgeführt wird.
    Spezifischen Benutzernamen und Kennwort verwenden | Klicken Sie hierauf, um Ihre Anmeldeinformationen anhand eines angegebenen Benutzernamens und Kennworts gegenüber der Datenquelle zu authentifizieren.
    Benutzername | Geben Sie die Benutzer-ID ein, die bei der Anmeldung bei der Datenquelle zur Authentifizierung verwendet werden soll.
    Kennwort | Geben Sie das Kennwort ein, das bei der Anmeldung bei der Datenquelle zur Authentifizierung verwendet werden soll.
    Leeres Kennwort | Wählen Sie diese Option aus, um ein leeres Kennwort in der Verbindungszeichenfolge zurückzugeben.
    Speichern des Kennworts zulassen | Wählen Sie diese Option aus, um das Speichern des Kennworts mit der Verbindungszeichenfolge zuzulassen.
    Wählen Sie die Datenbank auf dem Server aus | Geben Sie den Namen der Datenbank ein, auf die Sie zugreifen möchten.

    Anmerkung

    • Weitere Informationen zur Verwendung des Dialogfelds Datenverknüpfungseigenschaften erhalten Sie, wenn Sie in dem Dialogfeld auf Hilfe klicken.
  4. Klicken Sie auf Verbindung testen, um zu überprüfen, ob Sie die Server- und Datenbankinformationen richtig eingegeben haben, und klicken Sie dann zum Schließen der Verbindungsmeldung auf OK.

  5. Klicken Sie zum Schließen des Dialogfelds Datenverknüpfungseigenschaften auf OK.

    Im Dialogfeld Eigenschaften von Vorhersage auf <Servername> wird auf der Registerkarte Verbindungszeichenfolgen im Feld Verbindungszeichenfolgen in dieser Ressource der Wert der externen Verbindungszeichenfolge angezeigt.

  6. Klicken Sie zum Schließen des Dialogfelds Eigenschaften von Vorhersage auf <Servername> auf OK.

Wenn der Wert einer externen Verbindungszeichenfolge ignoriert und nur die Modelle und Konfigurationsdateien im Datawarehouse im Detailfenster der Vorhersageressource aufgelistet werden sollen, müssen Sie die Eigenschaft Externe Datenbank verwenden auf 0 (Falsch) setzen.

So listen Sie nur Modelle und Modellkonfigurationen im Commerce Server-Datawarehouse auf

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, klicken Sie mit der rechten Maustaste auf Vorhersage auf <Servername>, und klicken Sie dann auf Eigenschaften.

  2. Wählen Sie im Dialogfeld Eigenschaften von Vorhersage auf <Servername> auf der Registerkarte Eigenschaften im Feld Eigenschaften die Option Externe Datenbank verwenden aus.

  3. Setzen Sie die Eigenschaft im Feld Ausgewählter Eigenschaftswert auf 0 (Falsch).

  4. Klicken Sie zum Übernehmen der Änderungen und zum Schließen des Dialogfelds Eigenschaften von Vorhersage auf <Servername> auf Übernehmen.

Nun werden nur Analysemodelle und Analysemodellkonfigurationen, die sich im Datawarehouse befinden, im Detailfenster der Vorhersageressource aufgelistet.


Starten und Beenden der Vorhersageressource

Sie können die Vorhersageressource mithilfe von Commerce Server-Manager starten und beenden. Beenden können Sie die Vorhersageressource alternativ auch mit Verwaltung unter Microsoft Windows 2000. Es empfiehlt sich jedoch, Commerce Server-Manager den Vorzug zu geben, damit die Benutzeroberfläche der Vorhersageressource entsprechend aktualisiert werden kann. Wenn die Vorhersageressource gestartet bzw. beendet wird, wird dieses Ereignis im Ereignisprotokoll des lokalen Computers erfasst.

So starten Sie die Vorhersageressource mithilfe von Commerce Server-Manager

So beenden Sie die Vorhersageressource mithilfe von Commerce Server-Manager

So brechen Sie die Erstellung eines Modells in der Vorhersageressource mithilfe von Commerce Server-Manager ab

So unterbrechen Sie die Erstellung eines Modells in der Vorhersageressource mithilfe von Commerce Server-Manager und setzen sie dann fort

So starten Sie die Vorhersageressource mithilfe von Commerce Server-Manager

  • Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, klicken Sie mit der rechten Maustaste auf den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Starten.

Die Vorhersageressource wird gestartet.

So beenden Sie die Vorhersageressource mithilfe von Commerce Server-Manager

  • Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, klicken Sie mit der rechten Maustaste auf den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Beenden.

    Anmerkung

    • Sie können die Vorhersageressource nur beenden, wenn Sie bereits ausgeführt wird.

Die Vorhersageressource wird beendet, und im Ereignisprotokoll des lokalen Computers wird dieses Ereignis aufgezeichnet.

So brechen Sie die Erstellung eines Modells in der Vorhersageressource mithilfe von Commerce Server-Manager ab

  • Klicken Sie während der Erstellung des Analysemodells mit der rechten Maustaste auf den Modellnamen, und klicken Sie dann auf Beenden.

    Anmerkung

    • Sie können die Modellerstellung nur abbrechen, wenn der Modellstatus Wird ausgeführt lautet.

Nun wird eine Fehlermeldung eingeblendet, die besagt, dass die Modellerstellung fehlgeschlagen ist und der Vorgang fehlerbedingt beendet wurde. Die Vorhersageressource wird beendet, und im Ereignisprotokoll des lokalen Computers wird dieses Ereignis aufgezeichnet. Der Status der Modellerstellung lautet nun wieder Im Leerlauf.

So unterbrechen Sie die Erstellung eines Modells in der Vorhersageressource mithilfe von Commerce Server-Manager und setzen sie dann fort

  1. Klicken Sie während der Erstellung des Analysemodells mit der rechten Maustaste auf den Modellnamen, und klicken Sie dann auf Anhalten.

    Die Modellerstellung nimmt den Status Angehalten an.

  2. Zum Fortsetzen der Modellerstellung klicken mit der rechten Maustaste auf den Modellnamen, und klicken Sie dann auf Fortsetzen.

    Der Status der Modellerstellung lautet wieder Wird ausgeführt.


Erstellen eines neuen Analysemodells

Sie können für jede Site mehrere Analysemodelle erstellen. Die Modellerstellung ist ein ressourcenintensiver Vorgang. Daher empfiehlt es sich, Analysemodelle ausschließlich dann zu erstellen, wenn nur minimale Beeinträchtigungen des Computers zu erwarten sind.

Wie lange die Erstellung eines Analysemodells dauert, hängt vom Umfang der Eingabedaten (der Gesamtanzahl der Fälle), der Stichprobengröße, der Anzahl der in den Daten enthaltenen Attribute sowie der Hardware und Topologie der Server ab.

So erstellen Sie ein neues Analysemodell

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modellkonfigurationen.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf die Modellkonfiguration, die Sie zur Erstellung eines Analysemodells verwenden möchten, und klicken Sie dann auf Erstellen.

  3. Nehmen Sie im Dialogfeld Modellerstellungseigenschaften die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie einen Namen für das Analysemodell ein.
    Erstellungspriorität | Wählen Sie die Erstellungspriorität für diese Modellerstellung aus. Die Standardeinstellung lautet Normal. (Hierbei handelt es sich um die Erstellungspriorität für den jeweiligen Erstellungsthread.)
    Modelltyp | Wählen Sie in der Dropdownliste für dieses Modell entweder Vorhersage oder Segment aus.

  4. Klicken Sie auf Weiter.

  5. Nehmen Sie im zweiten Fenster des Dialogfelds Modellerstellungseigenschaften die folgenden Einstellungen vor:
    Option | Aktion
    Stichprobengröße | Geben Sie die Anzahl der Fälle ein, die zur Erstellung des Analysemodells verwendet werden soll. Falls erforderlich, können Sie den Standardwert ändern. Wenn beispielsweise eine große Tabelle mit 200.000 Zeilen vorliegt, ist es vielleicht sinnvoll, festzulegen, dass die Vorhersageressource nur 20.000 Zeilen zum Erstellen des Analysemodells verwenden soll. Die Standardeinstellung lautet -1 oder 20.000, wobei der geringere Wert ausschlaggebend ist.
    Gemessene Genauigkeit des Stichprobenanteils | Geben Sie den Anteil der Stichprobendaten, der verwendet werden soll, um die Genauigkeit des Modells automatisch zu bewerten, als Zahl zwischen 0,0 und 1,0 ein. Wenn Sie beispielsweise den Wert 0,0 für die Option Gemessene Genauigkeit des Stichprobenanteils eingeben, wird das Modell gar nicht bewertet. Geben Sie 0,4 ein, werden 40 % der Stichprobendaten zur Bewertung des Modells verwendet. (Die restlichen 60 % dienen dann zur Erstellung des Modells.)
    Gemessene maximale Vorhersagegenauigkeit | Geben Sie an, wie viele Empfehlungen maximal in Ihrer Site angezeigt werden sollen. (Diese Zahl dient zur Berechnung der Empfehlungsbewertung.) Standard sind 10 Attribute.
    Eingabeattributanteil | Geben Sie den Anteil der Attribute, der als Eingabe für die Vorhersagen verwendet werden soll, als Zahl zwischen 0,0 und 1,0 ein. Wenn Sie beispielsweise einen Eingabeattributanteil von 0,05 angeben, werden die aussagekräftigsten 5 % der Eingabeattribute ausgewählt. Der Standardwert liegt bei 1,0. Dabei werden alle Attribute als Eingabe für die Vorhersage berücksichtigt. Wenn sehr viele Attribute vorliegen, wie beispielsweise bei Produktempfehlungen für einen Katalog mit über 1.000 Produkten, empfiehlt es sich, einen Wert unter 1,0 festzulegen.
    Ausgabeattributanteil | Geben Sie den Anteil der vorherzusagenden Attribute als Zahl zwischen 0,0 und 0,1 ein. Wenn Sie beispielsweise einen Ausgabeattributanteil von 0,05 festlegen, werden Entscheidungsbäume für die aussagekräftigsten 5 % der Attribute erstellt. (Handelt es sich bei den Ausgabeattributen um Produkte, werden Bäume für 5 % der beliebtesten Produkte zurückgegeben.) Der Standardwert liegt bei 1,0. Dabei werden Bäume für alle Attribute erstellt. Wenn sehr viele Attribute vorliegen, wie beispielsweise bei Produktempfehlungen für einen Katalog mit über 1.000 Produkten, empfiehlt es sich, einen Wert unter 1,0 festzulegen.
    Anzahl der Segmente | Geben Sie an, in wie viele Segmente die Benutzer maximal unterteilt werden sollen. Dies ist nur ein Hinweis für den Algorithmus, der möglicherweise weniger relevante Segmente findet, als in diesem Wert angegeben. Dieser Wert steht nur zur Verfügung, wenn Sie ein Segmentmodell erstellen.
    Puffergröße | Geben Sie die Größe des Puffers ein, der zum Lesen von Fällen während der Segmentierung verwendet wird. Standard sind 1.000.000 Bytes. Die Puffergröße kann sich auf die Erstellungszeit wie auch auf die Qualität des Modells auswirken. Wenn das Modell z. B. zahlreiche Attribute enthält, ist es ratsam, einen größeren Puffer zu wählen. Die Puffergröße unterliegt stets den Beschränkungen der Systemressourcen des Computers, auf dem die Vorhersageressource ausgeführt wird. Dieser Wert steht nur zur Verfügung, wenn Sie ein Segmentmodell erstellen.

  6. Klicken Sie auf Fertig stellen.

Der Status des Erstellungsvorgangs wird im Detailfenster angezeigt.

Während des Erstellungsvorgangs lautet der Status Das Modell wird erstellt. Nach Abschluss des Erstellungsvorgangs lautet der Status Im Leerlauf. Falls der Erstellungsvorgang fehlschlägt, wird eine Meldung mit einer Fehlerbeschreibung eingeblendet und anschließend im Anwendungsprotokoll von Commerce Server 2000 aufgezeichnet. Zum Anzeigen des Anwendungsprotokolls verwenden Sie die Ereignisanzeige.

Anmerkung

  • Wenn Sie eine eigene Vorhersagemodellkonfiguration erstellen, können Sie die Attribute, die Sie für die Ein- und Ausgabe verwenden möchten, explizit auflisten. In diesem Fall gelten die in Schritt 6 genannten Attributanteile für diese Listen. Wenn Sie beispielsweise fünf Attribute in die Eingabeliste aufnehmen und einen Eingabeattributanteil von 0,08 angeben, werden nur die vier aussagekräftigsten Attribute der Liste bei der Erstellung des Analysemodells als Eingabeattribute verwendet.

Siehe auch

Anzeigen von Konfigurationstabellen für Analysemodelle

Tipps zur Verwendung des Vorhersagedienstes

Bereitstellen eines Analysemodells


Bereitstellen eines Analysemodells

Zum Bereitstellen von Analysemodellen auf Ihren Webservern können Sie den zuständigen Siteentwickler die Datei Global.asa so ändern lassen, dass sie einen Aufruf für die LoadModelFromDB-Methode enthält. Durch diesen Aufruf wird das Vorhersagemodell beim Starten der Anwendung aus dem Commerce Server-Datawarehouse auf die Webserver geladen. Voraussetzung für diese Methode ist, dass das Datawarehouse stets verfügbar ist. Falls Sie nicht mit Sicherheit davon ausgehen können, dass das Datawarehouse ständig verfügbar ist, verwenden Sie die folgende Methode.

Wenn Sie nicht sicherstellen können, dass das Datawarehouse, aus dem das Modell geladen wird, jederzeit verfügbar ist, oder wenn Sie die für die erneute Initialisierung der Site benötigte Zeit möglichst gering halten möchten, können Sie Analysemodelle auch programmgesteuert bereitstellen. Allerdings müssen Sie sich im Klaren darüber sein, dass diese Methode zusätzliche Arbeit für den Siteentwickler bedeutet.

Sie können den Siteentwickler ein Skript schreiben lassen, das das Modell aus dem Datawarehouse lädt (LoadModelFromDB), es in einer Datei (SaveModelToFile) auf dem Computer speichert, der die Vorhersageressource enthält, und diese Datei dann auf die einzelnen Webserver kopiert.

Nach der Erstellung des Modells muss der Siteentwickler die ASP-Datei auf jedem einzelnen Webserver bearbeiten, sodass das Modell aus der Datei geladen wird, in der es auf den einzelnen Servern gespeichert wurde (LoadModelFromFile). Anschließend muss der Siteentwickler eine der Vorhersagemethoden (Predict, PredictMostLikelySegment oder PredictAllSegments) mit den entsprechenden Parametern aufrufen.

Anmerkung

  • Der Siteentwickler kann zwar mithilfe der Vorhersagemethoden sowohl Segment- als auch Vorhersagemodelle erstellen, trotzdem ist es nicht ratsam, Segmentmodelle für Empfehlungen in Echtzeit zu verwenden, da sie nicht zu diesem Zweck optimiert sind. Des Weiteren geben Segmentmodelle keine so genauen Empfehlungen aus wie Vorhersagemodelle. Erstellen und verwenden Sie für Empfehlungen in Echtzeit in Ihrer Site stets Vorhersagemodelle. Sie können auch auf Grundlage derselben Modellkonfiguration mit denselben Daten ein separates Segmentmodell erstellen und dieses mit dem Segment-Viewer in Commerce Server Business Desk anzeigen. Informationen zur Verwendung von Vorhersagemethoden finden Sie unter Prediction Objects (englisches Thema).

Siehe auch

Bereitstellen der Vorhersageressource

Bereitstellen der Site


Anzeigen von Konfigurationstabellen für Analysemodelle

Die Konfigurationstabellen und -spalten für Analysemodelle können Sie mithilfe von Microsoft SQL Server Enterprise Manager anzeigen.

So zeigen Sie die Konfigurationstabellen für Analysemodelle an

  1. Erweitern Sie nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Server, auf dem sich die anzuzeigende Datenbank befindet. Erweitern Sie dann Datenbanken und die Datenbank, die die anzuzeigenden Tabellen enthält, und klicken Sie schließlich auf Tabellen.

    Nun wird eine Liste aller Tabellen in der ausgewählten Datenbank im Detailfenster angezeigt.

  2. Doppelklicken Sie im Detailfenster auf den Namen der Tabelle, die die anzuzeigenden Spalten enthält. Die Modellkonfigurationstabellen heißen PredictorModelCfgs, PredictorDataTables und PredictorModels.

Nun wird das Dialogfeld Tabelleneigenschaften: <Tabellenname> geöffnet. Dieses enthält eine Liste der Spaltennamen und zugehörigen Attribute.

Siehe auch

Analysemodellkonfigurationen

Analysemodelle

Anzeigen von Analysemodellen

PredictorModels Table (englisches Thema)


Anzeigen von Analysemodellen

Sie können die mit Commerce Server 2000 erstellten Vorhersagemodelle mithilfe des Vorhersagemodell-Viewer anzeigen. Auf diesen greifen Sie über Commerce Server-Manager zu. Der Vorhersagemodell-Viewer bietet zwei Ansichten, nämlich die Abhängigkeitsnetzwerkansicht und die Entscheidungsbaumansicht.

Informationen zum Anzeigen von Segmentmodellen finden Sie unter Anzeigen eines Segmentmodells.

So zeigen Sie ein Vorhersagemodell an

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

Daraufhin wird der Vorhersagemodell-Viewer geöffnet, und das ausgewählte Modell wird in der Abhängigkeitsnetzwerkansicht (der Standardansicht) angezeigt.

Siehe auch

Verwenden der Abhängigkeitsnetzwerkansicht

Verwenden der Entscheidungsbaumansicht

Anzeigen eines Segmentmodells


Verwenden der Abhängigkeitsnetzwerkansicht

Mithilfe der Abhängigkeitsnetzwerkansicht können Sie Vorhersagemodelle in Diagrammform anzeigen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Suchen aller verfügbaren Knoten in der Abhängigkeitsnetzwerkansicht

  • Verwenden des Schiebereglers in der Abhängigkeitsnetzwerkansicht

  • Anordnen des Layouts in der Abhängigkeitsnetzwerkansicht

  • Vergrößern und Verkleinern in der Abhängigkeitsnetzwerkansicht

  • Vergrößern und Verkleinern von Knoten in der Abhängigkeitsnetzwerkansicht

  • Verwenden von "An Seite anpassen" in der Abhängigkeitsnetzwerkansicht

  • Anzeigen von Entscheidungsbaumdetails in der Abhängigkeitsnetzwerkansicht


Suchen aller verfügbaren Knoten in der Abhängigkeitsnetzwerkansicht

Mithilfe der Schaltfläche Suchen auf der Symbolleiste können Sie eine Liste aller verfügbaren Knoten in der Abhängigkeitsnetzwerkansicht anzeigen. Diese Option ist besonders dann nützlich, wenn das Modell Hunderte von Knoten enthält, denn sie bietet die Möglichkeit, rasch auf einen bestimmten Knoten zuzugreifen.

So suchen Sie einen Knoten

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

  3. Klicken Sie im Menü Bearbeiten auf der Symbolleiste auf Suchen. Das Dialogfeld Knotensuche wird angezeigt.

  4. Geben Sie im Dialogfeld Knotensuche im Feld Knotenname den Namen des gesuchten Knotens ganz oder teilweise ein.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  5. Sie können hier wahlweise eine, beide oder gar keine der folgenden Optionen aktivieren:
    • Zum Anzeigen aller versteckten Knoten aktivieren Sie das Kontrollkästchen Versteckte Knoten anzeigen.

    • Zum Anzeigen aller Knoten, die mit dem gesuchten Knoten verbunden sind, aktivieren Sie das Kontrollkästchen Verknüpfte Knoten hinzufügen.
  6. Klicken Sie auf Zu Knoten wechseln.

Im Vorhersagemodell-Viewer werden je nach den im vorherigen Schritt ausgewählten Optionen entweder nur der gesuchte Knoten oder der gesuchte Knoten mitsamt aller mit diesem verknüpften Knoten in der Abhängigkeitsnetzwerkansicht angezeigt.

Anmerkung

  • Wenn Sie einen Knoten suchen und diesen dann in der Entscheidungsbaumansicht anzeigen möchten, klicken Sie im Dialogfeld Knotensuche auf Struktur anzeigen.


Verwenden des Schiebereglers in der Abhängigkeitsnetzwerkansicht

Mithilfe des Schiebereglers in der Abhängigkeitsnetzwerkansicht können Sie die schwächsten Abhängigkeiten im Modell ausblenden.

So verwenden Sie den Schieberegler

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

  3. Zeigen Sie auf den oberen Rand des Schiebreglers, klicken Sie mit der linken Maustaste, halten Sie diese gedrückt, und ziehen Sie den Schiebregler gleichzeitig an den Punkt, den Sie anzeigen möchten.


Anordnen des Layouts in der Abhängigkeitsnetzwerkansicht

Sie haben die Möglichkeit, die standardmäßige Anordnung des Modelllayouts in der Abhängigkeitsnetzwerkansicht zu ändern. Eine Änderung des Layouts kann sinnvoll sein, wenn die Abhängigkeiten, die Sie anzeigen möchten, nur schwer zu erkennen sind.

So ändern Sie die Layoutanordnung

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

  3. Klicken Sie auf der Symbolleiste auf Layout verbessern, um den Layoutverbesserungsprozess abzubrechen, und ziehen Sie dann einen oder mehrere Knoten an eine geeignetere Position auf dem Bildschirm.

    Anmerkung

    • Um den Layoutverbesserungsprozess zu starten und zum automatischen Layout der Knoten zurückzukehren, klicken Sie auf der Symbolleiste auf Layout verbessern, um das Layout aller Knoten automatisch zu wiederholen.

Alle verbindenden Knoten und Bögen werden an die neue Position verschoben.


Vergrößern und Verkleinern in der Abhängigkeitsnetzwerkansicht

Sie können Vorhersagemodelle im Vorhersagemodell-Viewer vergrößert oder verkleinert anzeigen. So müssen Sie möglicherweise das Modell vergrößern oder verkleinern, um sich Details zu einem bestimmten Bereich des Modells anzusehen.

So vergrößern Sie

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

  3. Klicken Sie auf der Symbolleiste auf Vergrößern.

Das Modell wird im Vorhersagemodell-Viewer um 10 % vergrößert.

So verkleinern Sie

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

  3. Klicken Sie auf der Symbolleiste auf Verkleinern.

Das Modell wird im Vorhersagemodell-Viewer um 10 % verkleinert.


Vergrößern und Verkleinern von Knoten in der Abhängigkeitsnetzwerkansicht

Sie können in der Abhängigkeitsnetzwerkansicht die Knoten in einem Vorhersagemodell vergrößern bzw. verkleinern, ohne die Größe des eigentlichen Modells zu ändern.

So vergrößern Sie Knoten

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

  3. Klicken Sie auf der Symbolleiste auf Layout verbessern, um die Layoutverbesserung abzubrechen, klicken Sie dann auf einen Knoten und anschließend auf der Symbolleiste auf Knoten vergrößern, um die Knoten zu vergrößern.

Die Knoten werden nun größer. Klicken Sie auf der Symbolleiste auf Layout verbessern, um die Layoutverbesserung fortzusetzen. Falls der Layoutprozess feststellt, dass die Proportionen der Knoten nicht stimmen, ändert er diese.

So verkleinern Sie Knoten

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

  3. Klicken Sie auf der Symbolleiste auf Layout verbessern, um die Layoutverbesserung abzubrechen, klicken Sie dann auf einen Knoten und anschließend auf der Symbolleiste auf Knoten verkleinern.

Die Knoten werden nun kleiner. Klicken Sie auf der Symbolleiste auf Layout verbessern, um die Layoutverbesserung fortzusetzen. Falls der Layoutprozess feststellt, dass die Proportionen der Knoten nicht stimmen, ändert er diese.


Verwenden von "An Seite anpassen" in der Abhängigkeitsnetzwerkansicht

Die Option An Seite anpassen verwenden Sie, um ein Vorhersagemodell so zu skalieren, dass es in den Anzeigebereich des Vorhersagemodell-Viewer passt.

So skalieren Sie ein Modell so, dass es in den Anzeigebereich des Vorhersagemodell-Viewer passt

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

  3. Klicken Sie auf der Symbolleiste auf An Seite anpassen.

Nun wird das Modell so skaliert, dass es im Vorhersagemodell-Viewer genau in den Anzeigebereich passt.


Anzeigen von Entscheidungsbaumdetails in der Abhängigkeitsnetzwerkansicht

Sie können die Details des Entscheidungsbaums Ihres Vorhersagemodells in der Abhängigkeitsnetzwerkansicht anzeigen.

So zeigen Sie die Entscheidungsbaumdetails in der Abhängigkeitsnetzwerkansicht an

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

  3. Doppelklicken Sie auf den Knoten, der die anzuzeigenden Entscheidungsbaumdetails enthält.

Der Vorhersagemodell-Viewer wechselt nun zur Entscheidungsbaumansicht, und der Entscheidungsbaum für den betreffenden Knoten wird angezeigt.

So kehren Sie nach dem Anzeigen der Entscheidungsbaumdetails zur Abhängigkeitsnetzwerkansicht zurück

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

  3. Doppelklicken Sie auf den Modellknoten, der die anzuzeigenden Entscheidungsbaumdetails enthält.

  4. Um die Entscheidungsbaumansicht zu verlassen und zur Abhängigkeitsnetzwerkansicht zurückzukehren, klicken Sie auf der Symbolleiste auf Zurück.

Nun wird wieder die Abhängigkeitsnetzwerkansicht angezeigt.


Verwenden der Entscheidungsbaumansicht

Mithilfe des Entscheidungsbaums der Vorhersageressource können Sie Ihr Analysemodell analysieren.

Dieser Abschnitt beinhaltet folgende Themen:

  • Vergrößern und Verkleinern in der Entscheidungsbaumansicht

  • Vergrößern und Verkleinern von Knoten in der Entscheidungsbaumansicht

  • Verwenden von "An Seite anpassen" in der Entscheidungsbaumansicht

  • Verwenden von "Zurück zu Diagramm" in der Entscheidungsbaumansicht


Vergrößern und Verkleinern in der Entscheidungsbaumansicht

Sie haben die Möglichkeit, ein Vorhersagemodell in der Entscheidungsbaumansicht größer oder kleiner darzustellen, um Details zu einem bestimmten Bereich des Modells bzw. das ganze Modell anzuzeigen.

So vergrößern Sie

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

  3. Doppelklicken Sie auf den Modellknoten, der die anzuzeigenden Entscheidungsbaumdetails enthält.

  4. Klicken Sie auf der Symbolleiste auf Vergrößern.

Das Modell wird im Vorhersagemodell-Viewer in der Entscheidungsbaumansicht um 10 % vergrößert.

So verkleinern Sie

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

  3. Doppelklicken Sie auf den Modellknoten, der die anzuzeigenden Entscheidungsbaumdetails enthält.

  4. Klicken Sie auf der Symbolleiste auf Verkleinern.

Das Modell wird im Vorhersagemodell-Viewer in der Entscheidungsbaumansicht um 10 % verkleinert.


Vergrößern und Verkleinern von Knoten in der Entscheidungsbaumansicht

Sie können die Knoten in einem Vorhersagemodell vergrößern bzw. verkleinern, ohne die Größe des eigentlichen Modells zu ändern.

So vergrößern Sie Knoten

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

  3. Doppelklicken Sie auf den Modellknoten, der die anzuzeigenden Entscheidungsbaumdetails enthält.

  4. Markieren Sie den Knoten, den Sie vergrößern möchten, und klicken Sie dann auf der Symbolleiste auf Knoten vergrößern.

So verkleinern Sie Knoten

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

  3. Doppelklicken Sie auf den Modellknoten, der die anzuzeigenden Entscheidungsbaumdetails enthält.

  4. Markieren Sie den Knoten, den Sie verkleinern möchten, und klicken Sie dann auf der Symbolleiste auf Knoten verkleinern.


Verwenden von "An Seite anpassen" in der Entscheidungsbaumansicht

Die Option An Seite anpassen verwenden Sie, um ein Vorhersagemodell so zu skalieren, dass es in den Anzeigebereich des Vorhersagemodell-Viewer passt.

So skalieren Sie ein Modell so, dass es in den Anzeigebereich des Vorhersagemodell-Viewer passt

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

  3. Doppelklicken Sie auf den Modellknoten, der die anzuzeigenden Entscheidungsbaumdetails enthält.

  4. Klicken Sie auf der Symbolleiste auf An Seite anpassen.

Nun wird das Modell so skaliert, dass es im Vorhersagemodell-Viewer genau in den Anzeigebereich passt.


Verwenden von "Zurück zu Diagramm" in der Entscheidungsbaumansicht

Die Option Zurück zu Diagramm verwenden Sie, um die Entscheidungsbaumansicht zu verlassen und zur Abhängigkeitsnetzwerkansicht zurückzukehren.

So verlassen Sie die Entscheidungsbaumansicht und kehren zur Abhängigkeitsnetzwerkansicht zurück

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Vorhersagemodell, das Sie anzeigen möchten, und klicken Sie dann auf Modell anzeigen.

  3. Doppelklicken Sie auf den Modellknoten, der die anzuzeigenden Entscheidungsbaumdetails enthält.

  4. Klicken Sie auf der Symbolleiste auf Zurück zu Diagramm.

Nun wird die Entscheidungsbaumansicht geschlossen und die Abhängigkeitsnetzwerkansicht geöffnet.


Erneutes Erstellen eines Analysemodells

Das erneute Erstellen eines Analysemodells ist erforderlich, wenn entweder die aktuelle Modelldatendatei beschädigt ist oder die zur Erstellung des Modells verwendeten Daten sich seit der letzten Modellerstellung wesentlich geändert haben.

So erstellen Sie ein Analysemodell neu

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Modell, das Sie neu erstellen möchten, und klicken Sie dann auf Neu erstellen.

  3. Klicken Sie im Dialogfeld Modellerstellungseigenschaften auf Weiter, um die zuvor eingegebenen Modellinformationen zu bestätigen.

  4. Klicken Sie im Dialogfeld Modellerstellungseigenschaften auf Fertig stellen, um die zuvor eingegebenen Modellinformationen zu bestätigen.

Nun beginnt die Erstellung des Analysemodells. Dabei wird im Detailfenster der Status des Erstellungsvorgangs als Wird ausgeführt angezeigt. Nach der Erstellung des Modells lautet der Status des Erstellungsvorgangs Im Leerlauf.

Siehe auch

Erstellen eines neuen Analysemodells

Anzeigen von Analysemodellen


Umbenennen eines Analysemodells

Wenn Sie ein Analysemodell umbenennen, stellen Sie sicher, dass auch die Website, die dieses Modell verwendet, entsprechend aktualisiert wird und keine andere Site das Modell unter dem alten Namen verwendet.

So benennen Sie ein Analysemodell um

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Modell, das Sie umbenennen möchten, und klicken Sie dann auf Umbenennen.

  3. Geben Sie einen neuen Namen für das Modell ein, und drücken Sie dann die EINGABETASTE.

  4. Klicken Sie in dem Dialogfeld, in dem Sie das Umbenennen in <Modellname> bestätigen müssen, auf Ja, um die Änderungen zu übernehmen.

Siehe auch

Erstellen eines neuen Analysemodells

Anzeigen von Analysemodellen


Löschen eines Analysemodells

Bevor Sie ein Analysemodell löschen, überprüfen Sie, ob die Website dieses Modell nicht mehr verwendet.

So löschen Sie ein Analysemodell

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, erweitern Sie dann Vorhersage auf <Servername>, erweitern Sie auch den zweiten Eintrag Vorhersage auf <Servername>, und klicken Sie dann auf Modelle.

  2. Klicken Sie im Detailfenster mit der rechten Maustaste auf das Modell, das Sie löschen möchten, und klicken Sie dann auf Löschen.

  3. Klicken Sie in dem Dialogfeld, in dem Sie das Löschen von <Modellname> bestätigen müssen, auf Ja, um das Modell zu löschen.

Das Modell wird aus der Liste der verfügbaren Modelle gelöscht.

Vorsicht

  • Wenn Sie ein Modell gelöscht haben, kann es nicht wiederhergestellt werden. Sie müssen dann ein neues Modell erstellen.


Überwachen der Vorhersageressource

Sie können den Status Ihrer Analysemodelle mithilfe von Commerce Server-Manager überwachen. Alternativ können Sie aber auch Leistungsindikatoren verwenden, die ein wertvolles Hilfsmittel sind, um die Leistung der Vorhersageressource in Bezug auf Vorhersagezeit, Modellladezeit, Ladehäufigkeit eines Modells oder Gesamtanzahl erfolgter Vorhersagen zu überwachen.

Wenn Sie den aktuellen Status eines Analysemodells anzeigen, sehen Sie die folgenden Informationen im Detailfenster:

  • Modellname

  • Modelltyp

  • Größe des zuletzt erstellten Modells

  • Datum/Uhrzeit der letzten Modellerstellung

  • Dauer der letzten Modellerstellung

  • Dienststatus (nur die Folgenden sind möglich: Das Modell wird erstellt, Im Leerlauf, Daten werden geladen, Wird ausgeführt oder Angehalten.)

  • Quellenkonfiguration

  • Empfehlungsbewertung

  • Datenanpassungswert

Falls Sie die Meldung "Fehler beim Erstellen" erhalten, öffnen Sie die Ereignisanzeige, und überprüfen Sie das Ereignisprotokoll. Je nach Art des aufgetretenen Fehlers ist es in der Regel möglich, die entsprechenden Parameter zu ändern und das Modell neu zu erstellen.

Die Vorhersageressource verfügt über vier Leistungsindikatoren. Mit einem der Indikatoren (der Indikator Durchschn. Clientvorhersagezeit) können Sie messen, wie schnell Vorhersagen erfolgen, und die drei anderen zählen, wie häufig bestimmte Vorgänge auf dem Predictor Client-Objekt aufgerufen werden.

Weitere Informationen zu den Leistungsindikatoren der Vorhersageressource finden Sie unter Überwachen der Vorhersageressource.

Siehe auch

Tipps zur Verwendung des Vorhersagedienstes

Effizienz von Analysemodellen


Ausführen der Profilressource

Mit der Profilressource von Commerce Server verwalten Sie die Datensammlung in Ihrer Website. Sie können z. B. Profildefinitionen zur Steuerung der Daten erstellen, die von Benutzern in Ihrer Website gesammelt werden. Sie können die Daten definieren, die mit einer Profildefinition gesammelt werden, und festlegen, ob bestimmte Daten in das Datawarehouse von Commerce Server exportiert werden sollen. Sie können Datenquellen erstellen, durch die gesteuert wird, wo die gesammelten Daten gespeichert werden. Sie können Sitebegriffe erstellen, um Benutzern Optionen zur Verfügung zu stellen, die sie beim Beantworten von Datensammlungsfragen in Ihrer Site auswählen können. Beispiel: Eine Liste mit Farben, aus der die Benutzer ihre Lieblingsfarbe wählen können.

Dieser Abschnitt beinhaltet folgende Themen:

  • Workflow für Profile. Hier wird der Workflow für das Verwalten von Profilen erläutert.

  • Informationen zur Profilressource. Hier werden die Features und die Funktionsweise der Profilressource beschrieben.

  • Konfigurieren der Profilressource. Hier wird das Ändern der Verbindungszeichenfolge für die Profilressource erläutert.

  • Hinzufügen einer neuen Datenquelle. Hier wird das Hinzufügen und Partitionieren einer neuen Datenquelle erläutert. Die Datenquelle dient zur Zuordnung der in der Website gesammelten Informationen zu den Datenbanken (oder LDAP-Quellen), die Sie zum Speichern der gesammelten Daten verwenden.

  • Hinzufügen eines neuen Datenobjekts. Hier wird erläutert, wie Sie ein neues Datenobjekt zum Offenlegen einer Datenbanktabelle bzw. einer LDAP-Klasse gegenüber einer Profildefinition hinzufügen können.

  • Hinzufügen eines neuen Datenelements. Hier wird das Hinzufügen eines neuen Datenelements erläutert. Das Datenelement dient zum Zuordnen einer Profileigenschaft zur angegebenen Spalte einer Datenbanktabelle bzw. zum angegebenen Attribut einer LDAP-Klasse.

  • Hinzufügen einer neuen Profildefinition. Hier wird erläutert, wie Sie Profildefinitionen hinzufügen und sie Datenobjekten zuordnen können.

  • Hinzufügen von Eigenschaften zu Profildefinitionen. Hier wird erläutert, wie Sie Profileigenschaften und benutzerdefinierte Profileigenschaftsattribute hinzufügen können.

  • Überprüfen von Profildefinitionen. Hier wird erläutert, wie Sie eine einzelne Profildefinition oder alle Ihre Profildefinitionen überprüfen können, um sicherzustellen, dass die Profileigenschaften ordnungsgemäß dem Datenspeicher zugeordnet wurden.

  • Hinzufügen von Profildefinitionen zu anderen Profildefinitionen. Hier wird erläutert, wie Sie von der Eigenschaft einer Profildefinition auf eine andere Profildefinition verweisen können, sodass die beiden Profile verknüpft werden. Sie können z. B. ein Benutzerprofil mit dem Adressenprofil des Benutzers verknüpfen.

  • Hinzufügen von Sitebegriffen. Hier wird das Erstellen von Sitebegriffen erläutert.

  • Hinzufügen von Sitebegriffen zu Profildefinitionen. Hier wird erläutert, wie Sie einer Profileigenschaft einen Sitebegriff hinzufügen können, sodass der Benutzer einen Wert aus dem Sitebegriff als Wert für die Eigenschaft auswählt.

  • Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen. Hier wird erläutert, wie Sie eine Benutzerprofildefinition erstellen können, die Daten sowohl in einer Microsoft SQL Server-Datenbank als auch in einer Microsoft Active Directory-Datenbank speichert.

  • Verwalten von Datenquellen. Hier wird erläutert, wie Sie Datenquellen, Datenobjekte und Datenelemente ändern und löschen können.

  • Verwalten von Profildefinitionen.. Hier wird erläutert, wie Sie Profildefinitionen ändern und löschen können.

  • Verwalten von Profileigenschaften. Hier wird erläutert, wie Sie Profileigenschaften und benutzerdefinierte Profileigenschaftsattribute ändern und löschen können.

  • Verwalten von Sitebegriffen. Hier wird erläutert, wie Sie Sitebegriffe und Sitebegriffswerte ändern und löschen können.


Workflow für Profile

In der folgenden Abbildung wird der Workflow zum Erstellen von Datenquellen und Profildefinitionen dargestellt.

Workflow für die Profilressource
Eigenschaften zu einer Profildefinition hinzufügen
Sitebegriff
hinzufügen
Profildefinition
hinzufügen
Datenelement
hinzufügen
Datenobjekt
hinzufügen
Datenquelle erstellen
Datenbanken für Benutzerdaten erstellen

  1. Erstellen Sie eine neue Datenquelle, um der Profilressource Datenbanken und LDAP-Quellen offen zu legen.

  2. Erstellen Sie ein neues Datenobjekt, um der Profilressource eine Datenbanktabelle (oder eine LDAP-Klasse) offen zu legen.

  3. Erstellen Sie neue Datenelemente, um der Profilressource Spalten in einer Datenbanktabelle (oder Attribute in einer LDAP-Klasse) offen zu legen.

  4. Erstellen Sie zur Zuordnung zur Datenbank eine neue Profildefinition, die das Datenobjekt verwendet.

  5. Verwenden Sie das Profil-Designer-Fenster in der Profilressource, um der Profildefinition eine neue Eigenschaft hinzuzufügen und ihr ein Datenelement zuzuweisen.

  6. Stellen Sie sicher, dass Ihre Profildefinitionen vorhandenen Datenspeichern zugeordnet sind.

  7. Verwenden Sie das Sitebegriffs-Editor-Fenster in der Profilressource, um einen Sitebegriff zum Beschränken der Dateneingabe in Ihrer Website zu erstellen.

  8. Verwenden Sie das Profil-Designer-Fenster, um eine Profildefinition oder einen Sitebegriff mit einer Profildefinition zu verknüpfen.


Informationen zur Profilressource

Mit der Profilressource erstellen Sie Datenquellen, Profildefinitionen und Sitebegriffe. Mit Profildefinitionen sammeln Sie von Ihrer Commerce Server 2000-Website aus Benutzer- und Geschäftsdaten. Mit Datenquellen ordnen Sie die mit Profildefinitionen gesammelten Daten der Spalte und Tabelle in der Datenbank (bzw. dem Attribut und der Klasse der Lightweight Directory Access Protocol- oder LDAP-Quelle) zu, in der die Daten gespeichert werden sollen. Sie erstellen Sitebegriffe, um Benutzern bei der Eingabe von persönlichen Vorlieben oder sonstigen Informationen in Ihrer Website mehrere Auswahlmöglichkeiten zur Verfügung zu stellen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Datenquellen

  • Datenquellenpartitionen

  • Profildefinitionen

  • Sitebegriffe

  • Beispieldatenquellen

  • Beispielprofildefinitionen

  • Beispielsitebegriffe


Datenquellen

Mit Datenquellen legen Sie der Profilressource Ihren Datenspeicher offen, sodass die in der Website gesammelten Daten mit Profildefinitionen im Datenspeicher gespeichert werden können. Commerce Server 2000 unterstützt OLE DB-Datenbanken sowie LDAP-Quellen (Lightweight Directory Access Protocol).

Datenquellen enthalten die folgenden Komponenten:

  • Datenobjekte. Dienen zum Offenlegen einer Tabelle in einer OLE DB-Datenbank bzw. einer Klasse in einer LDAP-Quelle gegenüber einer Profildefinition. Beim Erstellen eines Datenobjekts wird keine neue Tabelle in der Datenbank bzw. keine neue Klasse in der LDAP-Quelle erstellt. Stattdessen wird durch das Erstellen eines Datenobjekts die Tabelle bzw. LDAP-Klasse für die Profilressource sichtbar. Die Tabelle bzw. Klasse muss vorhanden sein, bevor Sie ein Datenobjekt zu ihrer Offenlegung erstellen.

  • Datenelemente. Dienen zum Offenlegen einer Tabellenspalte in einer OLE DB-Datenbank bzw. eines Klassenattributs in einer LDAP-Quelle gegenüber einer Profileigenschaft. Sie verwenden z. B. eine Profildefinition zum Sammeln von Informationen von Benutzern, wenn diese sich in Ihrer Website registrieren lassen. Die Benutzerinformationen wie z. B. Vorname, Nachname und E-Mail-Adresse werden durch Profileigenschaften gesammelt. Jede Eigenschaft ist mit einem Datenelement verknüpft, das die gesammelten Informationen der Datenbankspalte bzw. dem LDAP-Attribut zuordnet, in der bzw. dem sie gespeichert werden sollen. Dieser Vorgang kann auch als Weiterleitung bezeichnet werden.

    Beim Erstellen eines Datenelements erstellen Sie keine neue Spalte in der Datenbanktabelle bzw. kein neues Attribut in der Klasse der LDAP-Quelle. Stattdessen machen Sie die Spalte bzw. das LDAP-Attribut für die Profilressource sichtbar. Die Spalte bzw. das Attribut muss vorhanden sein, bevor Sie ein Datenelement zu ihrer bzw. seiner Offenlegung erstellen.

In der folgenden Abbildung wird dargestellt, wie sich die Teile des physischen Schemas von Datenspeicher, Datenquellen und Profildefinitionen ergänzen.

Verbindungen zwischen Datenspeicherung, einer Datenquelle und einer Profildefinition
Datenquelle
Datenobjekt
Daten-
element
Daten-
element
Datenobjekt
Spalte
Attribut
Tabelle
Klasse
OLE DB
-Datenbank
LDAP-Quelle
Datenquelle
Eigenschaft
Eigenschaft
Profil-
definition

Siehe auch

Datenquellenpartitionen

Beispieldatenquellen

Profildefinitionen

Hinzufügen einer neuen Datenquelle

Verwalten von Datenquellen


Datenquellenpartitionen

Mit der Profilressource erstellen Sie partitionierte Datenquellen. Commerce Server 2000 unterstützt die Partitionierung von Datenquellen, um Sitelasten von über 10 Millionen Benutzern zu ermöglichen. Die Partitionierung ist ein effektives Mittel zum Skalieren und gleichmäßigen Verteilen der Datenbanktransaktionslast, die bei großen Benutzerzahlen auftritt. Jede Partition einer Datenquelle kann eine Verbindung zu einer Datenbank oder einer LDAP-Quelle (Lightweight Directory Access Protocol) herstellen. Bei partitionierten Datenquellen wird im Hinblick auf die Leistung und die Reaktionszeiten der einzelnen Datenbanken ein besseres Ergebnis erzielt, als bei der Speicherung aller mit einer Profildefinition gesammelten Daten in einer einzigen Datenbank möglich wäre.

Zuordnen zu mehreren Datenbanken

Benutzerdefinierte Attribute

Ändern von Partitionen

Hashschlüssel

Zuordnen zu mehreren Datenbanken

Wenn Sie eine partitionierte Datenquelle zum Zuordnen einer Profildefinition zu mehreren OLE DB-Datenbanken bzw. LDAP-Quellen verwenden, müssen die Datenspeichervorrichtungen (d. h. die OLE DB-Datenbanken bzw. LDAP-Quellen) über identische Schemas verfügen. Wenn Sie z. B. eine partitionierte Datenquelle erstellen, die eine Profildefinition drei Datenbanken zuordnet, müssen die Tabellendefinitionen der drei Datenbanken identisch sein. Bei Commerce Server-Datenquellen werden insgesamt maximal 128 Partitionen unterstützt.

Benutzerdefinierte Attribute

Sie können zu Datenquellenpartitionen benutzerdefinierte Attribute hinzufügen. Benutzerdefinierte Attribute sind anwendungsspezifisch. In der Regel werden die Attribute, die für alle Profildefinitionen oder Datenspeicher gelten, in der Tabelle ClassDef oder SourceDef gespeichert. Es kann jedoch bestimmte Attribute geben, die nur für bestimmte, ausgewählte Datenquellenobjekte gelten. Sie können z. B. ein benutzerdefiniertes Attribut erstellen, um die Sortierreihenfolge von Datenquellen oder Partitionen von Datenquellen beizubehalten, oder um eine Übereinstimmung mit anderen Objekten wie z. B. Element- und Quellendefinitionsobjekten zu gewährleisten. Benutzerdefinierte Attribute für Datenquellen stehen nur in der Profilressource zur Verfügung.

Ändern von Partitionen

Wenn Sie einer Datenquelle eine Partition hinzugefügt haben, können Sie die Partition ändern, aber nicht entfernen. Wenn Sie die Partitionierung einer Datenquelle entfernen möchten, müssen Sie eine neue Datenquelle definieren und dann die alte Datenquelle löschen. Wenn Sie eine Datenquelle partitionieren, müssen Sie eine Partition als Standardpartition kennzeichnen.

Hashschlüssel

Ein Hashschlüssel ist ein eindeutiger Schlüssel, der zur Verbindung von Daten verwendet wird, die aus einer einzigen Quelle (in diesem Fall aus einer Profildefinition) stammen, aber physisch in mehreren Datenbanken gespeichert sind. Datenquellen verwenden Hashschlüssel zum Partitionieren von Daten über mehrere Datenbanken hinweg. Sie verwenden die Profilressource (oder das Modul "Profil-Designer" in Commerce Server Business Desk) zur Auswahl einer Profileigenschaft, die als Hashschlüssel für eine Profildefinition verwendet werden soll.

Wenn Sie keine Profildefinition als Hashschlüssel definieren, werden alle mit einer Profildefinition gesammelten Daten in der Datenbank gespeichert, die der Standardpartition zugewiesen ist. Wenn Sie einen Hashschlüssel einmal definiert haben, können Sie ihn nicht neu definieren. Informationen zum Definieren von Hashschlüsseln finden Sie unter Hinzufügen von Eigenschaften zu Profildefinitionen.

Siehe auch

Beispieldatenquellen

Profildefinitionen

Hinzufügen einer neuen Datenquelle

Verwalten von Datenquellen


Profildefinitionen

Mit der Profilressource erstellen Sie neue Profildefinitionen. Ein Profil ist eine einzelne Instanz einer Profildefinition, die die von der Profildefinition gesammelten Daten enthält. Wenn ein Benutzer in Ihrer Website z. B. Daten in eine Benutzerprofildefinition eingibt, erstellt Commerce Server 2000 ein Profil für den Benutzer, auf das der Businessmanager in Commerce Server Business Desk zugreifen kann.

Sie können die Profilressource verwenden, um Eigenschaften zu einer Profildefinition hinzuzufügen, die die Art der von der Profildefinition zu sammelnden Daten festlegen. Sie können außerdem die Attribute der Eigenschaften der Profildefinition festlegen. Businessmanager können diese Vorgänge auch über das Modul "Profil-Designer" in Business Desk ausführen.

Verknüpfen von Profilen

Zuordnen von Profileigenschaften zu Speicherorten

Komponenten von Profildefinitionen

Verknüpfen von Profilen

Mit der Profilressource können Sie Profile verknüpfen. Sie verknüpfen Profile, um die mit Profildefinitionen gesammelten Daten zu erweitern. Ein Beispiel: Sie möchten von den Benutzern, die Produkte über Ihre Website erwerben, mehrere Adressen erheben, z. B. eine Rechnungsadresse und eine Lieferadresse. Dazu könnten Sie für jede zu erhebende Adresse in der Profildefinition Benutzerobjekt Eigenschaften (wie z. B. Vorname, Nachname, Straße, Ort und Postleitzahl) hinzufügen.

Sie können mehrere Adressen jedoch auch auf einfachere Weise erheben, indem Sie für jede Adresse der Profildefinition Benutzerobjekt eine einzige Eigenschaft hinzufügen und diese Eigenschaft dann verwenden, um Adressenprofile mit Benutzerprofilen zu verknüpfen. Fügen Sie beispielsweise der Profildefinition Benutzerobjekt eine Eigenschaft mit dem Namen Rechnungsadresse hinzu. Definieren Sie den Eigenschaftstyp von Rechnungsadresse als Profil. Wählen Sie anschließend die Profildefinition Adresse als Typenreferenz für die Eigenschaft Rechnungsadresse aus.

Wenn ein Benutzer eine Rechnungsadresse in Ihrer Website eingibt, wird die Rechnungsadresse in einem Adressenprofil gespeichert. Das Adressenprofil wird unter einem eindeutigen Namen gespeichert. Der eindeutige Name des Adressenprofils wird als Zeichenfolge in der Eigenschaft Rechnungsadresse des Benutzerprofils gespeichert. Da das Benutzerprofil den eindeutigen Namen des Adressenprofils enthält, können die Daten im Benutzerprofil und im Adressenprofil in Ihrer Website und in Berichten zusammen präsentiert werden. Anweisungen zum Verknüpfen von Profildefinitionen finden Sie unter Hinzufügen von Profildefinitionen zu anderen Profildefinitionen.

Zuordnen von Profileigenschaften zu Speicherorten

Profileigenschaften verwenden Datenelemente, um die von Benutzern Ihrer Website eingegebenen Daten dem entsprechenden Speicherort zuzuordnen. Wenn z. B. ein Benutzer einen Vornamen für die Eigenschaft Vorname der Profildefinition Benutzerobjekt eingibt, wird der Name in der Datenbankspalte gespeichert, die durch das Datenelement für die Eigenschaft Vorname angegeben wird.

Wenn eine Profildefinition mit der Profilressource erstellt wurde, können Businessmanager in Business Desk die Eigenschaften in der Profildefinition ändern und die in einzelnen Benutzerprofilen zur Verfügung stehenden Daten verwalten.

Komponenten von Profildefinitionen

Profildefinitionen enthalten Eigenschaften, Eigenschaftsgruppen und Attribute.

Eigenschaften

Durch Eigenschaften werden die Daten definiert, die von einer Profildefinition gesammelt werden. So ist Vorname z. B. eine Eigenschaft der Profildefinition Adresse. Sie können Profileigenschaften in Form der in der folgenden Tabelle aufgeführten Eigenschaftstypen definieren.

Eigenschaftstyp | Beschreibung
Zeichenfolge | Speichert bis zu 4.000 Unicode-Zeichen. Eigenschaften des Typs Zeichenfolge werden Datenelementen des Typs Zeichenfolge zugeordnet.
Lange Zeichenfolge | Speichert bis zu 2 hoch 17 (2^17) Unicode-Zeichen. Eigenschaften des Typs Lange Zeichenfolge werden Datenelementen des Typs Zeichenfolge zugeordnet.
Zahl | Speichert Ganzzahlen. Die maximale Länge für Eigenschaften des Typs Zahl wird durch den Datenspeicher bestimmt. Eigenschaften des Typs Zahl werden Datenelementen des Typs Zahl zugeordnet.
Dezimal | Speichert Gleitkommazahlen. Die maximale Länge für Eigenschaften des Typs Dezimal wird durch den Datenspeicher bestimmt. Eigenschaften des Typs Dezimal werden Datenelementen des Typs Zahl zugeordnet.
Boolesch | Speichert einen von zwei Werten (z. B. Wahr/Falsch, Ja/Nein oder 1/0). Eigenschaften des Typs Boolesch werden Datenelementen des Typs Boolesch zugeordnet.
Binärwert | Speichert binären Inhalt, in der Hauptsache für programmtechnische Zwecke, bis zu einer Größe von 4 KB (Kilobyte). Eigenschaften des Typs Binärwert werden Datenelementen des Typs Binärwert zugeordnet.
Langer Binärwert | Speichert Inhalt wie z. B. Kalkulationstabellen, Dokumente, Grafiken und Audioclips bis zu einer Größe von 128 KB. Eigenschaften des Typs Langer Binärwert werden Datenelementen des Typs Binärwert zugeordnet.
Datum/Uhrzeit | Speichert zusammengesetzte Werte für Datum und Uhrzeit. Das Format und die maximale Länge werden durch den Datenspeicher bestimmt. Eigenschaften des Typs Datum/Uhrzeit werden Datenelementen des Typs Datum/Uhrzeit zugeordnet.
Datum | Enthält Werte für Datumsangaben. Das Format und die maximale Länge werden durch den Datenspeicher bestimmt. Eigenschaften des Typs Datum werden Datenelementen des Typs Datum/Uhrzeit zugeordnet.
Uhrzeit | Enthält Werte für Uhrzeitangaben in Stunden, Minuten, Sekunden und Millisekunden. Das Format und die maximale Länge werden durch den Datenspeicher bestimmt. Eigenschaften des Typs Uhrzeit werden Datenelementen des Typs Datum/Uhrzeit zugeordnet.
Währung | Speichert Zahlen im Währungsformat. Das Format und die maximale Länge werden durch den Datenspeicher bestimmt. Eigenschaften des Typs Währung werden Datenelementen des Typs Währung zugeordnet.
Kennwort | Speichert Text. Die Profilressource behandelt die Eigenschaft Kennwort wie eine Eigenschaft des Typs Zeichenfolge. In Business Desk werden die in Eigenschaften des Typs Kennwort gespeicherten Werte als Sternchen (*) angezeigt. Eigenschaften des Typs Kennwort werden Datenelementen des Typs Zeichenfolge zugeordnet und verfügen über eine Länge von bis zu 255 Unicode-Zeichen.
Sitebegriff | Speichert gültige Werte aus der Liste der Begriffsnamen, die mit dem entsprechenden Sitebegriff verknüpft sind. Eigenschaften des Typs Sitebegriff werden Datenelementen des Typs Zeichenfolge zugeordnet und verfügen über eine Länge von bis zu 255 Unicode-Zeichen.
Profil | Speichert Werte, die dem Wert des Primärschlüssels einer bestimmten Instanz des verknüpften Profils entsprechen. Eigenschaften des Typs Profil werden Datenelementen des Typs Zeichenfolge zugeordnet und verfügen über eine Länge von bis zu 255 Unicode-Zeichen.

Der Eigenschaftstyp muss dem Datentyp des Datenelements entsprechen, dem er zugeordnet ist. So wird z. B. eine Eigenschaft des Typs Zeichenfolge mit einem Datenelement des Typs Zeichenfolge einer Spalte des Typs Zeichenfolge im Datenspeicher zugeordnet. Jede Eigenschaft verfügt über Attribute, durch die die speziellen Merkmale dieser Eigenschaft definiert werden.

Eigenschaftsgruppen

Eigenschaftsgruppen sind logische Gruppierungen von Profileigenschaften. Sie verwenden Eigenschaftsgruppen, um verwandte Eigenschaften im Profil-Designer-Fenster in Gruppen zusammenzufassen.

Attribute

Attribute sind spezielle Merkmale, die für eine Eigenschaft oder Eigenschaftsgruppe festgelegt werden. Die Eigenschaft Vorname verfügt z. B. über die Profileigenschaftsattribute Name, Angezeigter Name, Beschreibung und Typ. Es gibt zwei spezielle Attributtypen:

  • Erweiterte Attribute. Verwenden Sie die in der folgenden Tabelle aufgeführten erweiterten Attribute, um festzulegen, wie Profileigenschaften von Ihren Anwendungen verwendet werden. Das Attribut Exportiert bestimmt z. B., ob eine Eigenschaft in das Datawarehouse von Commerce Server importiert wird.
    Attribut | Beschreibung
    Aktiv | Gibt an, ob diese Eigenschaft in Business Desk angezeigt wird.
    Daten zuordnen | Identifiziert das Datenelement, das diese Eigenschaft zur Zuordnung zur Datenbankspalte bzw. zum LDAP-Attribut verwendet.
    Schlüsseltyp Für jede Profildefinition ist eine Primärschlüsseleigenschaft und eine Verbindungsschlüsseleigenschaft erforderlich. Alternativ kann auch eine Eigenschaft als dualer (d. h. als Primär- und Verbindungs-) Schlüssel fungieren. Sie können vier Schlüsseltypen zuweisen:
    • Eindeutiger Schlüssel. Gibt an, dass der Wert dieser Eigenschaft für alle Elemente eindeutig ist. Als eindeutige Schlüssel eingerichtete Eigenschaften sind in der Liste Eigenschaften durch ein spezielles Symbol für eindeutige Schlüssel gekennzeichnet.

    • Primärschlüssel. Identifiziert das Profil. Der Wert dieser Eigenschaft muss für jedes Profil eindeutig sein. Sie ordnen als Primärschlüssel eingerichtete Eigenschaften eindeutigen Feldern in der Datenbank oder LDAP-Quelle zu. Als Primärschlüssel eingerichtete Eigenschaften sind in der Liste Eigenschaften durch ein spezielles Symbol für Primärschlüssel gekennzeichnet.

    • Verbindungsschlüssel. Setzt die Profildefinition zu mehreren Datenobjekten in Beziehung. Hiermit ordnen Sie die Eigenschaften der Profildefinition den Datenelementen aus verschiedenen Datenobjekten zu. Wenn Sie die Profildefinition mehreren Datenobjekten zuordnen, muss der Verbindungsschlüssel einem Datenelement aus jedem Datenobjekt zugeordnet werden. Dadurch werden die von der Eigenschaft gesammelten Daten (zugewiesen als Verbindungsschlüssel) an den durch die Datenelemente repräsentierten Speicherorten dauerhaft gespeichert. Als Verbindungsschlüssel eingerichtete Eigenschaften sind in der Liste Eigenschaften durch ein spezielles Symbol für Verbindungsschlüssel gekennzeichnet.

    • Dualer (Primär- und Verbindungs-) Schlüssel. Bietet eine eindeutige Identifizierung des Profils und ordnet die Profildefinition mehreren Datenobjekten zu. Als duale Schlüssel eingerichtete Eigenschaften sind in der Liste Eigenschaften durch ein spezielles Symbol für duale Schlüssel gekennzeichnet.
    Erforderlich | Legt fest, dass diese Eigenschaft in der Website und in Business Desk erforderlich ist. Dieses Attribut wird jedoch von der Profilressource nicht erzwungen. Wenn Sie einen Schlüsseltyp ausgewählt haben, ist dieses Attribut schreibgeschützt.
    Exportiert | Legt fest, dass diese Eigenschaft in das Datawarehouse importiert wird. Nur zugeordnete Eigenschaften können exportiert werden. Der Export von mehrwertigen Eigenschaften mit dem Eigenschaftstyp Boolesch sowie von Eigenschaften des Typs Binärwert, Lange Zeichenfolge und Kennwort ist nicht möglich.
    Laden in den Zwischenspeicher verzögern | Gibt an, dass diese Eigenschaft beim Abrufen des Profils zuerst nicht geladen wird. Die Eigenschaft wird erst geladen, wenn speziell auf sie zugegriffen wird.
    Mehrwertig | Ermöglicht das Sammeln von mehreren Werten, die mit dieser Eigenschaft verknüpft sind. Mehrfachwerte werden nicht von allen Datentypen und Datenspeichern unterstützt.
    Suche aktivieren | Gibt an, dass diese Eigenschaft im zugrunde liegenden Datenspeicher indiziert ist und mit der Funktion Suchen nach durchsucht werden kann. Attribute des Typs Suche aktivieren werden indizierten Feldern in der Datenbank bzw. in der LDAP-Quelle zugeordnet.
    RDN | Identifiziert den RDN (Relative Distinguished Name) für einen Verzeichnisspeicher. Legen Sie diesen Wert fest, wenn die Eigenschaft einem Attribut des Typs RDN einer LDAP-Klasse im zugrunde liegenden Speicher zugeordnet ist.
    Hashschlüssel | Gibt an, dass diese Eigenschaft zum Verteilen von Profilinstanzen auf mehrere Datenquellenpartitionen verwendet wird. Bei nicht partitionierten Datenquellen ist diese Eigenschaft schreibgeschützt. Zum Abrufen des Profils müssen Sie eine Abfrage nach diesem Schlüssel durchführen.

  • Benutzerdefinierte Attribute. Benutzerdefinierte Attribute von Profileigenschaften sind Platzhalter zum Speichern von anwendungsspezifischen, benutzerdefinierten Informationen. Diese Attribut/Wert-Paare müssen vom Typ Zeichenfolge sein. Die maximal zulässige Länge des Attributnamens oder des Wertes beträgt 127 Unicode-Zeichen. Sie können z. B. ein benutzerdefiniertes Attribut erstellen, durch das gesteuert wird, wie eine Eigenschaft auf einer Webseite angezeigt wird.

    Wenn Sie eine Lösungssite entpacken, fügt Commerce Server die in der folgenden Tabelle aufgeführten benutzerdefinierten Attribute hinzu.

    Attribut | Beschreibung
    sAnonymousAccess | Ermöglicht Benutzern Zugriff auf die Eigenschaft im Kundenservice. Dieses Attribut ist nicht in Commerce Server implementiert.
    sUserAccess | Ermöglicht registrierten Benutzern Zugriff auf die Eigenschaft im Kundenservice. Wenn Sie den Attributwert auf 0 einstellen, wird die Eigenschaft für registrierte Benutzer ausgeblendet. Wenn Sie den Attributwert auf 1 einstellen, wird die Eigenschaft für registrierte Benutzer angezeigt. Wenn Sie den Attributwert auf 2 einstellen, wird die Eigenschaft für registrierte Benutzer angezeigt und kann darüber hinaus von diesen Benutzern auch bearbeitet werden.
    sDelegatedAdminAccess | Ermöglicht delegierten Administratoren Zugriff auf die Eigenschaft im Kundenservice und im Partnerservice. Wenn Sie den Attributwert auf 0 einstellen, wird die Eigenschaft für delegierte Administratoren ausgeblendet. Wenn Sie den Attributwert auf 1 einstellen, wird die Eigenschaft für delegierte Administratoren angezeigt. Wenn Sie den Attributwert auf 2 einstellen, wird die Eigenschaft für delegierte Administratoren angezeigt und kann darüber hinaus von diesen Administratoren auch bearbeitet werden.
    sSiteAdminAccess | Ermöglicht Siteentwicklern Zugriff auf die Eigenschaft in Business Desk. Dieses Attribut ist nicht in Commerce Server 2000 implementiert.
    SearchOptions | Legt fest, ob im Kundenservice und im Partnerservice nach der Profileigenschaft gesucht werden kann. Wenn Sie den Attributwert auf ALL einstellen, kann sowohl im normalen als auch im erweiterten Suchmodus nach der Eigenschaft gesucht werden. Wenn Sie den Attributwert auf ADVANCED einstellen, kann nur im erweiterten Suchmodus nach der Eigenschaft gesucht werden. Wenn Sie den Attributwert auf NONE einstellen, wird die Eigenschaft bei Suchvorgängen ausgeschlossen.
    ShowInList | Legt fest, ob die Eigenschaft in der Benutzersuchergebnisliste im Partnerservice angezeigt wird. Wenn Sie den Attributwert auf 1 einstellen, wird die Eigenschaft angezeigt. Wenn Sie den Attributwert auf 0 einstellen, wird die Eigenschaft ausgeblendet.
    sFeatureID | Legt die Siteszenarien fest, bei denen die Eigenschaft im Kundenservice und im Partnerservice angezeigt wird. Wenn Sie den Attributwert auf 2 einstellen, wird die Eigenschaft nur dann angezeigt, wenn die Site die Optionen für delegierte Administratoren unterstützt. Wenn Sie den Attributwert auf 3 einstellen, wird die Eigenschaft nur dann angezeigt, wenn die Site Active Directory verwendet. Wenn Sie den Attributwert auf 0 einstellen, wird die Eigenschaft unabhängig vom Szenario immer angezeigt.
    DWMembername | Legt den Namen des Datawarehouse-Datenelements fest, dem die Eigenschaft zugeordnet wird.

Der Profil-Designer steht sowohl in der Profilressource als auch in Business Desk zur Verfügung. Informationen zum Verwenden des Moduls "Profil-Designer" in Business Desk finden Sie unter Business Desk-Benutzer.

Siehe auch

Beispielprofildefinitionen

Hinzufügen einer neuen Datenquelle

Hinzufügen eines neuen Datenobjekts

Hinzufügen einer neuen Profildefinition

Hinzufügen von Eigenschaften zu Profildefinitionen


Sitebegriffe

Mit Sitebegriffen beschränken Sie Benutzereingaben auf eine Liste mit bestimmten Werten. Zum Erstellen und Verwalten von Sitebegriffen verwenden Sie das Sitebegriffs-Editor-Fenster in der Profilressource. Businessmanager können Sitebegriffe im Modul "Sitebegriffs-Editor" in Commerce Server Business Desk erstellen und verwalten.

Sie können eine Profileigenschaft als Sitebegriff definieren, um Benutzereingaben für diese Eigenschaft auf die im Sitebegriff aufgelisteten Werte zu beschränken. Ein Beispiel: Sie definieren eine Eigenschaft mit dem Namen Lieblingsfarbe und dem Typ Sitebegriff. Dann erstellen Sie den Sitebegriff Lieblingsfarbe mit den Werten Blau, Grün, Weiß und Lila. Wenn Sie Benutzer bei der Registrierung in Ihrer Website fragen, was ihre Lieblingsfarbe ist, stehen die Farben zur Auswahl, die im Sitebegriff für die Eigenschaft Lieblingsfarbe aufgelistet sind. Auf diese Weise beschränken Sie die Werte, die für die Benutzer zur Auswahl stehen. Dadurch können Sie Aktivitäten einfacher auf Benutzer abzielen, die dieselbe Lieblingsfarbe haben. Informationen zu Sitebegriffen finden Sie unter Profile. Anweisungen zur Verwendung des Moduls "Sitebegriffs-Editor" in Business Desk finden Sie unter Sitebegriffs-Editor.

Siehe auch

Profile

Sitebegriffs-Editor

Beispielsitebegriffe

Hinzufügen von Sitebegriffen

Verwalten von Sitebegriffen


Beispieldatenquellen

Wenn Sie eine Lösungssite entpacken, fügt Commerce Server 2000 der Profilressource eine Beispieldatenquelle mit dem Namen Profildienst_SQLQuelle hinzu. Die Datenquelle Profildienst_SQLQuelle stellt Ihnen die Beispieldatenobjekte Adresse, Pauschalbestellungen, Organisation und Benutzerobjekt zur Verfügung.

Adresse

Pauschalbestellungen

Organisation

Benutzerobjekt

Adresse

In der folgenden Tabelle sind die Datenelemente aufgeführt, die im Datenobjekt Adresse zur Verfügung stehen.

Name | Datentyp
g_address_id | Zeichenfolge
g_id | Zeichenfolge
i_address_type | Zahl
u_address_name | Zeichenfolge
u_last_name | Zeichenfolge
u_first_name | Zeichenfolge
u_description | Zeichenfolge
u_address_line1 | Zeichenfolge
u_address_line2 | Zeichenfolge
u_city | Zeichenfolge
u_region_name | Zeichenfolge
u_region_code | Zeichenfolge
u_postal_code | Zeichenfolge
u_country_name | Zeichenfolge
u_country_code | Zeichenfolge
u_tel_number | Zeichenfolge
u_tel_extension | Zeichenfolge
i_locale | Zahl
u_user_id_changed_by | Zeichenfolge
d_date_last_changed | Datum/Uhrzeit
d_date_created | Datum/Uhrzeit

Pauschalbestellungen

In der folgenden Tabelle sind die Datenelemente aufgeführt, die im Datenobjekt Pauschalbestellungen zur Verfügung stehen.

Name | Datentyp
g_org_id | Zeichenfolge
g_po_id | Zeichenfolge
u_po_number | Zeichenfolge
u_description | Zeichenfolge
g_user_id_changed_by | Zeichenfolge
d_date_last_changed | Datum/Uhrzeit
d_date_created | Datum/Uhrzeit

Organisation

In der folgenden Tabelle sind die Datenelemente aufgeführt, die im Datenobjekt Organisation zur Verfügung stehen.

Name | Datentyp
g_org_id | Zeichenfolge
u_name | Zeichenfolge
u_trading_partner_number | Zeichenfolge
g_user_id_admin_contact | Zeichenfolge
g_user_id_receiver | Zeichenfolge
u_org_catalog_set | Zeichenfolge
g_user_id_changed_by | Zeichenfolge
g_user_purchasing_manager | Zeichenfolge
d_date_last_changed | Datum/Uhrzeit
d_date_created | Datum/Uhrzeit

Benutzerobjekt

In der folgenden Tabelle sind die Datenelemente aufgeführt, die im Datenobjekt Benutzerobjekt zur Verfügung stehen.

Name | Datentyp
u_logon_name | Zeichenfolge
g_org_id | Zeichenfolge
g_user_id | Zeichenfolge
u_user_title | Zeichenfolge
i_user_type | Zahl
u_last_name | Zeichenfolge
u_first_name | Zeichenfolge
u_email_address | Zeichenfolge
u_tel_number | Zeichenfolge
u_tel_extension | Zeichenfolge
u_fax_number | Zeichenfolge
u_fax_extension | Zeichenfolge
u_user_security_password | Zeichenfolge
g_user_id_changed_by | Zeichenfolge
i_account_status | Zahl
u_user_catalog_set | Zeichenfolge
d_date_registered | Datum/Uhrzeit
u_campaign_history | Zeichenfolge
i_partner_desk_role | Zahl
d_date_last_changed | Datum/Uhrzeit
d_date_created | Datum/Uhrzeit
u_pref1 | Zeichenfolge
u_pref2 | Zeichenfolge
u_pref3 | Zeichenfolge
u_pref4 | Zeichenfolge
u_pref5 | Zeichenfolge

Anmerkung

  • Mit den u_pref-Datenelementen können Sie der Profildefinition Benutzerobjekt Eigenschaften hinzufügen, ohne die Datenbank zu erweitern. Sie können diese Datenelemente anpassen.

Die Datenquelle Profildienst_SQLQuelle wird Beispielprofildefinitionen zugeordnet, die standardmäßig zur Profilressource und zu Commerce Server Business Desk hinzugefügt werden. Informationen zu den Beispielprofildefinitionen finden Sie unter Beispielprofildefinitionen.

Siehe auch

Profildefinitionen

Beispielprofildefinitionen

Hinzufügen einer neuen Datenquelle

Hinzufügen eines neuen Datenobjekts

Hinzufügen eines neuen Datenelements

Verwalten von Datenquellen


Beispielprofildefinitionen

Wenn Sie eine Lösungssite entpacken, fügt Commerce Server 2000 die Beispielprofildefinitionen Adresse, Pauschalbestellungen, Organisation, Benutzerobjekt und Zielgruppenadressierungs-Kontext hinzu.

Adresse

Pauschalbestellungen

Organisation

Benutzerobjekt

Zielgruppenadressierungs-Kontext

Adresse

In der folgenden Tabelle sind die Eigenschaften aufgeführt, die in der Profildefinition Adresse zur Verfügung stehen, und die Datenelemente im Datenobjekt Adresse, denen die Eigenschaften zugeordnet sind.

Eigenschaft | Datenelement
Adressen-ID | g_address_id
ID | g_id
Nachname | u_last_name
Vorname | u_first_name
Adressenname | u_address_name
Adresstyp | i_address_type
Beschreibung | u_description
Adresszeile 1 | u_address_line1
Adresszeile 2 | u_address_line2
Ort | u_city
Kennzahl für Bundesland/Kanton | u_region_code
Name des Bundeslandes/Kantons | u_region_name
PLZ | u_postal_code
Landes-/Regionalkennzahl | u_country_code
Land/Region | u_country_name
Rufnummer | u_tel_number
Durchwahl | u_tel_extension
Gebietsschema-ID | i_locale
Geändert von | u_user_id_changed_by
Zuletzt geändert am | d_date_last_changed
Erstellt am | d_date_created

Pauschalbestellungen

In der folgenden Tabelle sind die Eigenschaften aufgeführt, die in der Profildefinition Pauschalbestellungen zur Verfügung stehen, und die Datenelemente im Datenobjekt Pauschalbestellungen, denen die Eigenschaften zugeordnet sind.

Eigenschaft | Datenelement
Auftrags-ID | g_po_id
Organisations-ID | g_org_id
Auftragsnummer | u_po_number
Beschreibung | u_description
Geändert von | g_user_id_changed_by
Zuletzt geändert am | d_date_last_changed
Erstellt am | d_date_created

Organisation

In der folgenden Tabelle sind die Eigenschaften aufgeführt, die in der Profildefinition Organisation zur Verfügung stehen, und die Datenelemente im Datenobjekt Organisation, denen die Eigenschaften zugeordnet sind.

Eigenschaft | Datenelement
Organisations-ID | g_org_id
Name | u_name
Nummer des Handelspartners | u_trading_partner_number
Administrativer Kontakt | u_user_id_admin_contact
Empfänger | g_user_id_receiver
Organisationskatalogsatz | u_org_catalog_set
Geändert von | g_user_id_changed_by
Einkaufs-Manager | g_user_id_purchasing_manager
Zuletzt geändert am | d_date_last_changed
Erstellt am | d_date_created

Benutzerobjekt

In der folgenden Tabelle sind die Eigenschaften aufgeführt, die in der Profildefinition Benutzerobjekt zur Verfügung stehen, und die Datenelemente im Datenobjekt Benutzerobjekt, denen die Eigenschaften zugeordnet sind.

Eigenschaft | Datenelement
Benutzer-ID | g_user_id
Anmeldename | u_logon_name
Benutzerkennwort | u_user_security_password
E-Mail | u_email_address
Benutzertyp | i_user_type
Benutzertitel | u_user_title
Nachname | u_last_name
Vorname | u_first_name
Rufnummer | u_tel_number
Durchwahl | u_tel_extension
Faxnummer | u_fax_number
Faxdurchwahl | u_fax_extension
Geändert von | g_user_id_changed_by
Organisations-ID | g_org_id
Kontostatus | i_account_status
Benutzerkatalogsatz | u_user_catalog_set
Registriert am | d_date_registered
Kampagnenverlauf | u_campaign_history
Flags für die Partnerservicerolle | i_partner_desk_role
Zuletzt geändert am | d_date_last_changed
Erstellt am | d_date_created

Zielgruppenadressierungs-Kontext

Die Profildefinition Zielgruppenadressierungs-Kontext enthält eine Eigenschaft, Seitengruppe, die nicht zugeordnet wird.

Siehe auch

Datenquellen

Hinzufügen einer neuen Datenquelle

Hinzufügen eines neuen Datenobjekts

Hinzufügen einer neuen Profildefinition

Hinzufügen von Eigenschaften zu Profildefinitionen

Verwalten von Profildefinitionen


Beispielsitebegriffe

Wenn Sie die Handelslösungssite entpacken, fügt Commerce Server 2000 der Profilressource fünf Beispielsitebegriffe hinzu. Diese Sitebegriffe können weder gelöscht noch geändert werden. In der folgenden Tabelle sind die Sitebegriffe aufgeführt, die beim Entpacken der Handelslösungssite zur Verfügung stehen.

Sitebegriff | Begriffe
Kontostatus | Aktives Konto Inaktives Konto
Tage | Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag
Monate | Januar Februar März April Mai Juni Juli August September Oktober November Dezember
Benutzerrolle | Administrator Normaler Benutzer
Benutzertyp | Gastbenutzer Registrierter Benutzer

Siehe auch

Hinzufügen von Sitebegriffen

Verwalten von Sitebegriffen


Konfigurieren der Profilressource

Mit Commerce Server-Manager können Sie die Verbindungszeichenfolge der Profilressource ändern. Die Verbindungszeichenfolge der Profilressource wird beim Entpacken festgelegt.

So ändern Sie die Verbindungszeichenfolge der Profilressource

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, klicken Sie mit der rechten Maustaste auf Profile, und klicken Sie dann auf Eigenschaften.

  2. Markieren Sie im Dialogfeld Eigenschaften von Profile (<Sitename>) auf der Registerkarte Verbindungszeichenfolgen die zu ändernde Verbindungszeichenfolge, und klicken Sie dann auf Ändern.

  3. Nehmen Sie im Dialogfeld Datenverknüpfungseigenschaften auf der Registerkarte Verbindung die folgenden Einstellungen vor:
    Option | Aktion
    Geben Sie einen Servernamen ein, oder wählen Sie einen aus | Wählen Sie in der Dropdownliste einen Servernamen aus, oder geben Sie den Pfad des Servers ein, auf dem sich die Datenbank befindet, auf die Sie zugreifen möchten.
    Aktualisieren | Klicken Sie auf diese Option, um die Serverliste zu aktualisieren.
    Integrierte Sicherheit von Windows NT verwenden | Verwenden Sie diese Option nicht. Commerce Server bietet keine Unterstützung für die Windows NT-Authentifizierung.
    Spezifischen Benutzernamen und Kennwort verwenden | Wählen Sie diese Option aus, um einen Benutzernamen und ein Kennwort zur Authentifizierung Ihrer Anmeldeinformationen gegenüber der Datenquelle anzugeben.
    Benutzername | Geben Sie die Benutzer-ID ein, die bei der Anmeldung bei der Datenquelle zur Authentifizierung verwendet werden soll.
    Kennwort | Geben Sie das Kennwort ein, das bei der Anmeldung bei der Datenquelle zur Authentifizierung verwendet werden soll.
    Leeres Kennwort | Wählen Sie diese Option aus, um die Rückgabe eines leeren Kennworts in der Verbindungszeichenfolge durch den Provider zu ermöglichen.
    Speichern des Kennworts zulassen | Wählen Sie diese Option aus, um das Speichern des Kennworts mit der Verbindungszeichenfolge zuzulassen. Ob das Kennwort mit der Verbindungszeichenfolge gespeichert wird, ist von der Funktionsweise der aufrufenden Anwendung abhängig. Wenn das Kennwort gespeichert wird, wird es nicht maskiert und nicht verschlüsselt zurückgegeben und gespeichert.
    Wählen Sie die Datenbank auf dem Server aus | Wählen Sie diese Option aus, um den Datenbanknamen einzugeben, dem Sie die Datenquelle zuordnen, oder wählen Sie den Datenbanknamen in der Dropdownliste aus.
    Datenbankdatei als Datenbanknamen anfügen | Verwenden Sie diese Option nicht. Commerce Server bietet keine Unterstützung für SQL Server, Version 6.5 oder frühere Versionen.
    Folgenden Dateinamen verwenden | Verwenden Sie diese Option nicht. Commerce Server bietet keine Unterstützung für SQL Server, Version 6.5 oder frühere Versionen.
    Verbindung testen | Klicken Sie auf diese Option, um eine Verbindung zur angegebenen Datenquelle herzustellen. Wenn die Verbindung fehlschlägt, stellen Sie sicher, dass die Einstellungen korrekt sind. Verbindungsfehler können durch Tippfehler und Nichtbeachtung der Groß-/Kleinschreibung verursacht werden.

  4. Klicken Sie auf OK, um wieder zum Dialogfeld Eigenschaften von Profile (<Sitename>) zu gelangen.

  5. Klicken Sie auf Übernehmen, um die vorgenommenen Änderungen zu übernehmen.

Die an der Verbindungszeichenfolge vorgenommenen Änderungen werden auf die Profilressource angewendet.

Anmerkung

  • Wenn eine einzige, beliebige Zeichenfolge geändert wird, werden alle Verbindungszeichenfolgen in der Profilressource aktualisiert.

Siehe auch

Informationen zur Profilressource


Hinzufügen einer neuen Datenquelle

Mit der Profilressource fügen Sie neue Datenquellen zum Speichern von Profildaten hinzu. Mit Profildatenquellen ordnen Sie Profildaten Ihren Datenspeichern zu. Bei Datenspeichern kann es sich um OLE DB-Datenbanken oder um LDAP-Quellen handeln.

Mit Datenquellen können Sie Profildefinitionen Datenbanken oder LDAP-Quellen zuordnen. Sie können die Datenquelle partitionieren, um die Profildefinitionen mehreren Datenspeichern zuzuordnen. Sie müssen eine Datenbank oder LDAP-Quelle erstellen, bevor Sie eine Datenquelle erstellen können. Die Profilressource nimmt keine Änderungen an dem zugrunde liegenden Datenspeicher vor. Sie müssen etwaige Schemaänderungen direkt in der Datenbank bzw. im LDAP-Speicher vornehmen.

Wichtig

  • Einige der im Dialogfeld Datenverknüpfungseigenschaften aufgeführten OLE DB-Treiber sind nicht zur Verwendung mit der Profilressource geeignet. Die folgenden Treiber sollten nicht verwendet werden:
    • Microsoft OLE DB Provider für DTS-Pakete

    • Microsoft OLE DB Provider für Indexdienst

    • Microsoft OLE DB Provider für Internet Publishing

    • Microsoft OLE DB für einfache Pakete

    • Microsoft OLE DB Provider für Microsoft Site Server-Suche

    • Microsoft OLE DB Provider für Commerce Server

    Wenn Sie einen dieser Treiber im Dialogfeld Datenverknüpfungseigenschaften auswählen, wird möglicherweise eine Fehlermeldung von Microsoft Datenverknüpfung angezeigt, die besagt, dass der Provider nicht mehr verfügbar ist.

So fügen Sie eine neue SQL Server-Datenquelle hinzu

So fügen Sie eine neue Datenquelle des Typs "LDAPv3-kompatible Quelle" hinzu

So fügen Sie Datenquellenpartitionen benutzerdefinierte Attribute hinzu

So fügen Sie eine neue SQL Server-Datenquelle hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile und Profilkatalog, klicken Sie dann mit der rechten Maustaste auf Datenquellen, und klicken Sie schließlich auf Neue Datenquelle.

  2. Nehmen Sie im Dialogfeld Neue Datenquelle die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie den programmtechnischen Namen der Datenquelle ein. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Geben Sie den Namen ein, der für die Datenquelle angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung für die Datenquelle ein. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.

  3. Klicken Sie auf Weiter.

  4. Wählen Sie im Dialogfeld Datenquelle in der Dropdownliste Quellentyp den Eintrag OLEDB-ANSI_Provider aus, und klicken Sie auf Weiter.

  5. Wählen Sie im Dialogfeld Partitionen die Option Partitionierte Datenquelle aus, um die Datenquelle zu partitionieren, und klicken Sie anschließend auf Hinzufügen.

  6. Klicken Sie im Dialogfeld Partition auf Bearbeiten.

  7. Wählen Sie im Dialogfeld Datenverknüpfungseigenschaften auf der Registerkarte Provider den Provider Microsoft OLE DB Provider für SQL Server für Ihre Datenquelle aus, und klicken Sie anschließend auf Weiter.

  8. Nehmen Sie im Dialogfeld Datenverknüpfungseigenschaften auf der Registerkarte Verbindung die folgenden Einstellungen vor:
    Option | Aktion
    Geben Sie einen Servernamen ein, oder wählen Sie einen aus | Wählen Sie in der Dropdownliste einen Servernamen aus, oder geben Sie den Pfad des Servers ein, auf dem sich die Datenbank befindet, auf die Sie zugreifen möchten.
    Aktualisieren | Klicken Sie auf diese Option, um die Serverliste zu aktualisieren.
    Integrierte Sicherheit von Windows NT verwenden | Verwenden Sie diese Option nicht. Commerce Server bietet keine Unterstützung für die Windows NT-Authentifizierung.
    Spezifischen Benutzernamen und Kennwort verwenden | Wählen Sie diese Option aus, um einen Benutzernamen und ein Kennwort zur Authentifizierung Ihrer Anmeldeinformationen gegenüber der Datenquelle anzugeben.
    Benutzername | Geben Sie die Benutzer-ID ein, die bei der Anmeldung bei der Datenquelle zur Authentifizierung verwendet werden soll.
    Kennwort | Geben Sie das Kennwort ein, das bei der Anmeldung bei der Datenquelle zur Authentifizierung verwendet werden soll.
    Leeres Kennwort | Wählen Sie diese Option aus, um die Rückgabe eines leeren Kennworts in der Verbindungszeichenfolge durch den Provider zu ermöglichen.
    Speichern des Kennworts zulassen | Wählen Sie diese Option aus, um das Speichern des Kennworts mit der Verbindungszeichenfolge zuzulassen. Ob das Kennwort mit der Verbindungszeichenfolge gespeichert wird, ist von der Funktionsweise der aufrufenden Anwendung abhängig. Wenn das Kennwort gespeichert wird, wird es nicht maskiert und nicht verschlüsselt zurückgegeben und gespeichert.
    Wählen Sie die Datenbank auf dem Server aus | Wählen Sie diese Option aus, um den Datenbanknamen einzugeben, dem Sie die Datenquelle zuordnen, oder wählen Sie den Datenbanknamen in der Dropdownliste aus.
    Datenbankdatei als Datenbanknamen anfügen | Verwenden Sie diese Option nicht. Commerce Server bietet keine Unterstützung für SQL Server, Version 6.5 oder frühere Versionen.
    Folgenden Dateinamen verwenden | Verwenden Sie diese Option nicht. Commerce Server bietet keine Unterstützung für SQL Server, Version 6.5 oder frühere Versionen.
    Verbindung testen | Klicken Sie auf diese Option, um versuchsweise eine Verbindung zur angegebenen Datenquelle herzustellen. Wenn die Verbindung fehlschlägt, stellen Sie sicher, dass die Einstellungen korrekt sind. Verbindungsfehler können durch Tippfehler und Nichtbeachtung der Groß-/Kleinschreibung verursacht werden.

  9. Klicken Sie auf OK, um wieder zum Dialogfeld Partition zu gelangen.

  10. Klicken Sie auf Fertig stellen, um die Datenquelle zu speichern und zu Commerce Server-Manager zurückzukehren.

Die Datenquelle wird gespeichert. Sie können ihr Partitionen, benutzerdefinierte Attribute und Datenobjekte hinzufügen.

So fügen Sie eine neue Datenquelle des Typs "LDAPv3-kompatible Quelle" hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile und Profilkatalog, klicken Sie dann mit der rechten Maustaste auf Datenquellen, und klicken Sie schließlich auf Neue Datenquelle.

  2. Nehmen Sie im Dialogfeld Neue Datenquelle die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie den programmtechnischen Namen der Datenquelle ein. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Geben Sie den Namen ein, der für die Datenquelle angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung für die Datenquelle ein. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.

  3. Klicken Sie auf Weiter.

  4. Wählen Sie im Dialogfeld Datenquelle in der Dropdownliste Quellentyp den Eintrag LDAPv3-kompatible Quelle aus, und klicken Sie auf Weiter.

  5. Wählen Sie im Dialogfeld Partitionen die Option Partitionierte Datenquelle aus, um die Datenquelle zu partitionieren, und klicken Sie anschließend auf Hinzufügen.

  6. Klicken Sie im Dialogfeld Partition auf Bearbeiten.

  7. Nehmen Sie im Dialogfeld LDAP-Verbindungszeichenfolge die folgenden Einstellungen vor:
    Option | Aktion
    Server | Geben Sie den Namen des Servers ein, auf dem sich die LDAP-Quelle befindet.
    Anschluss | Geben Sie den Anschlussnamen ein. Der Standardanschluss ist Anschluss 389.

  8. Klicken Sie auf OK, um wieder zum Dialogfeld Partition zu gelangen.

  9. Nehmen Sie im Dialogfeld Partition die folgenden Einstellungen vor:
    Option | Aktion
    Standardpartition | Wählen Sie diese Option aus, um diese Partition als Standardpartition einzurichten.
    Benutzername | Geben Sie den Benutzernamen ein, den Sie zum Zugriff auf die LDAP-Quelle verwenden. Wenn Sie einen Active Directory-Server verwenden, geben Sie den Benutzernamen im Format domäne\benutzername ein.
    Kennwort | Geben Sie das Kennwort ein, das Sie zum Zugriff auf die LDAP-Quelle verwenden.

  10. Klicken Sie auf Weiter, um das Dialogfeld Systemattribute zu öffnen.

  11. Nehmen Sie im Dialogfeld Systemattribute die folgenden Einstellungen vor:
    Option | Aktion
    Übergeordneter URL | Geben Sie den Speicherort in der LDAP-Verzeichnisstruktur an, an dem Ihre Daten gespeichert werden sollen.
    Dieselben Informationen für alle Benutzer verwenden | Wählen Sie diese Option aus, um festzulegen, dass die Profilressource beim Binden an LDAP-Quellen immer dieselben Informationen verwenden soll. Wenn diese Option nicht gewählt wird, verwendet die Profilressource die Informationen des aktuellen Benutzers.
    Einfache Bindung zulassen | Wählen Sie diese Option aus, um das Kennwort im Klartext zu übertragen. Diese Option ist weniger sicher, ist jedoch für einige Verzeichnisdienste erforderlich.
    Dynamischer Container | Wählen Sie diese Option aus, um eine Verbindung zu einem dynamischen Speicher wie z. B. ILS (Internet Locator Service) herzustellen.
    Einzelebene | Wählen Sie diese Option aus, um den Standardsuchbereich auf das aktuelle Verzeichnis einzustellen.
    Unterstruktur | Wählen Sie diese Option aus, um den Standardsuchbereich auf das aktuelle Verzeichnis einschließlich Unterverzeichnissen einzustellen.
    Domänenname | Geben Sie den Domänennamen des Servers ein, wenn Sie Active Directory verwenden.
    Erkennen | Klicken Sie auf diese Option, um den Domänennamen suchen zu lassen.

  12. Klicken Sie auf Weiter.

  13. Klicken Sie auf OK, um wieder zum Dialogfeld Partition zu gelangen.

  14. Klicken Sie auf Fertig stellen, um die Datenquelle zu speichern und zu Commerce Server-Manager zurückzukehren.

Die Datenquelle wird gespeichert. Sie können ihr Partitionen, benutzerdefinierte Attribute und Datenobjekte hinzufügen.

So fügen Sie Datenquellenpartitionen benutzerdefinierte Attribute hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Datenquellen, klicken Sie mit der rechten Maustaste auf die Datenquelle, die die Partition enthält, für die Sie ein benutzerdefiniertes Attribut hinzufügen möchten, und klicken Sie anschließend auf Eigenschaften.

  2. Wählen Sie im Dialogfeld Eigenschaften auf der Registerkarte Partitionen die Partition aus, für die Sie ein benutzerdefiniertes Attribut hinzufügen möchten, und klicken Sie auf Bearbeiten.

  3. Klicken Sie im Dialogfeld Partitionen auf der Registerkarte Benutzerdefinierte Attribute auf Neu, um der Datenquelle Attribute hinzuzufügen.

  4. Nehmen Sie im Dialogfeld Benutzerdefiniertes Attribut die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie einen programmtechnischen Namen für das Attribut ein. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Geben Sie den Namen ein, der für das Attribut angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung des Attributs ein. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.
    Wert | Geben Sie einen Wert für das Attribut ein.

  5. Klicken Sie auf OK, um das Attribut zu speichern.

  6. Klicken Sie auf OK, um die Partitionsinformationen zu speichern.

  7. Klicken Sie auf Fertig stellen, um zu Commerce Server-Manager zurückzukehren.

Die Profildefinition wird mit dem benutzerdefinierten Attribut gespeichert.

Siehe auch

Informationen zur Profilressource

Hinzufügen eines neuen Datenobjekts

Hinzufügen eines neuen Datenelements

Verwalten von Datenquellen


Hinzufügen eines neuen Datenobjekts

Mit der Profilressource fügen Sie Datenobjekte zu Datenquellen hinzu. Sie wählen die Tabelle in der Datenbank aus (bzw. die Klasse in der LDAP-Quelle), die die Spalte enthält, in der Sie die für eine Eigenschaft in einer Profildefinition gesammelten Daten speichern möchten.

Bevor Sie die Profilressource zum Erstellen eines Datenobjekts verwenden können, müssen Sie eine Datenquelle erstellen. Die Profilressource nimmt keine Änderungen an dem zugrunde liegenden Datenspeicher vor. Sie müssen etwaige Änderungen direkt in der Datenbank bzw. im LDAP-Speicher vornehmen.

So fügen Sie ein neues Datenobjekt hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog, Datenquellen und die Datenquelle, der Sie ein Datenobjekt hinzufügen möchten, klicken Sie mit der rechten Maustaste auf Datenobjekte, und klicken Sie anschließend auf Neues Datenobjekt.

  2. Nehmen Sie im Dialogfeld Neues Datenobjekt die folgenden Einstellungen vor:
    Option | Aktion
    Objektname | Wählen Sie das Datenobjekt in der Dropdownliste aus. Dabei muss es sich um den Namen einer Tabelle oder einer LDAP-Klasse im zugrunde liegenden Datenspeicher handeln.
    Angezeigter Name | Geben Sie den Namen ein, der für das Datenobjekt angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung für das Datenobjekt ein. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.

  3. Klicken Sie auf OK.

Das Datenobjekt wird gespeichert. Sie können ihm Datenelemente hinzufügen und es verwenden, um eine Profildefinition einer Datenbankspalte bzw. einer LDAP-Klasse zuzuordnen. Sie müssen Datenelemente hinzufügen, mit denen Profileigenschaften zugeordnet werden.

Siehe auch

Informationen zur Profilressource

Hinzufügen einer neuen Datenquelle

Hinzufügen eines neuen Datenelements

Verwalten von Datenquellen


Hinzufügen eines neuen Datenelements

Mit der Profilressource fügen Sie Datenelemente zu Datenobjekten hinzu, indem Sie in einer offen gelegten Tabelle der Datenbank die Spalte (bzw. in einer offen gelegten Klasse der LDAP-Quelle das Attribut) wählen, in der bzw. dem die für eine Eigenschaft in einer Profildefinition gesammelten Daten gespeichert werden sollen.

Wenn Sie eine Eigenschaft in einer Profildefinition definieren, ordnen Sie die Eigenschaft mit dem Datenelement der Spalte in der Datenbanktabelle (bzw. dem Attribut in der LDAP-Klasse) zu, die bzw. das sie offen legt. Wenn Benutzer Daten in eine Eigenschaft in einer Profildefinition in Ihrer Website eingeben, werden die von den Benutzern eingegebenen Daten in der vorgesehenen Datenbankspalte bzw. im vorgesehenen LDAP-Attribut gespeichert. Die Profilressource nimmt keine Änderungen an dem zugrunde liegenden Datenspeicher vor. Sie müssen etwaige Änderungen direkt in der Datenbank bzw. im LDAP-Speicher vornehmen.

So fügen Sie ein Datenelement hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog, Datenquellen und die Datenquelle, die das Datenobjekt enthält, dem Sie ein Datenelement hinzufügen möchten, erweitern Sie Datenobjekte, klicken Sie mit der rechten Maustaste auf das Datenobjekt, dem Sie das Datenelement hinzufügen möchten, und klicken Sie anschließend auf Neues Datenelement.

  2. Nehmen Sie im Dialogfeld Neues Datenelement die folgenden Einstellungen vor:
    Option | Aktion
    Elementname Wählen Sie den Namen eines verfügbaren Datenelements in der Liste aus. Nicht verfügbare Datenelemente wurden bereits einem Datenobjekt hinzugefügt und werden abgeblendet dargestellt. Die Datenelemente in der Liste haben dieselben Namen wie die Spalten oder LDAP-Attribute im zugrunde liegenden Datenspeicher, denen sie zugeordnet sind.

    Wenn Sie weitere Datenelemente hinzufügen möchten (oder wenn die Liste keine verfügbaren Datenelemente enthält), müssen Sie im zugrunde liegenden Datenspeicher eine neue Spalte bzw. ein neues Attribut erstellen. Der Name muss dem Namen der Spalte bzw. des Attributs entsprechen, der bzw. dem das Datenelement zugeordnet ist. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Geben Sie den Namen ein, der in der Anwendung für das Datenelement angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung für das Datenelement ein. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.
    Typ Geben Sie den Datentyp des Datenelements ein. Der Datentyp muss der Eigenschaft entsprechen, die Sie dem Datenelement zuordnen möchten. Die folgenden Datentypen werden unterstützt:
    • Binärwert

    • Boolesch

    • Währung

    • Datum/Uhrzeit

    • Zahl

    • Zeichenfolge
    Mehrwertig | Wählen Sie diese Option aus, um das Sammeln von mehreren Werten zu ermöglichen, die mit dem Datenelement verknüpft sind.
    Erforderlich | Legt fest, dass diese Eigenschaft in der Website und in Business Desk erforderlich ist. Dieses Attribut wird jedoch von der Profilressource nicht erzwungen.
    Indiziert | Wählen Sie diese Option aus, wenn die Daten für dieses Datenelement indiziert werden sollen.
    Primärschlüssel | Wählen Sie diese Option aus, um das Datenelement als Primärschlüssel einzurichten. Sie müssen in jedem Datenobjekt ein Datenelement als Primärschlüssel einrichten.

  3. Klicken Sie auf Hinzufügen. Das Datenelement wird in der Datenelementliste im Dialogfeld Neues Datenelement angezeigt.

  4. Klicken Sie auf Fertig stellen.

Das Datenelement wird im Datenelementfenster angezeigt.

Siehe auch

Informationen zur Profilressource

Konfigurieren der Profilressource

Hinzufügen einer neuen Profildefinition

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Datenquellen


Hinzufügen einer neuen Profildefinition

Mit der Profilressource erstellen Sie neue Profildefinitionen. Sie können z. B. vom Businessmanager gebeten werden, eine neue Profildefinition zu erstellen, um zusätzliche Daten in Ihrer Website und in Commerce Server Business Desk zur Verfügung zu stellen. Sie können eine Profildefinition erstellen, die automatisch einem Datenobjekt zugeordnet wird. Sie können auch eine Profildefinition erstellen, die nicht einem Datenobjekt zugeordnet wird. Mit Profildefinitionen definieren Sie die Daten, die Sie über die Benutzer sammeln, die Ihre Website besuchen.

Sie können benutzerdefinierte Attribute für Profildefinitionen erstellen. Sie können z. B. ein benutzerdefiniertes Attribut mit dem Namen defaultParentURL erstellen, das bestimmt, wo Profile im zugrunde liegenden LDAP-Speicher gespeichert werden. Benutzerdefinierte Attribute von Profileigenschaften sind Platzhalter zum Speichern von anwendungsspezifischen Informationen. Diese Attribut/Wert-Paare müssen vom Typ Zeichenfolge sein. Benutzerdefinierte Attribute für Profildefinitionen stehen nur in der Profilressource zur Verfügung.

So fügen Sie eine neue Profildefinition hinzu, die einem Datenobjekt zugeordnet wird

So fügen Sie eine neue Profildefinition hinzu, die nicht einem Datenobjekt zugeordnet wird

So fügen Sie Profildefinitionen benutzerdefinierte Attribute hinzu

So fügen Sie eine neue Profildefinition hinzu, die einem Datenobjekt zugeordnet wird

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog, Datenquellen und die Datenquelle, die das Datenobjekt enthält, dem Sie die neue Profildefinition zuordnen möchten. Erweitern Sie dann Datenobjekte, klicken Sie mit der rechten Maustaste auf das Datenobjekt, dem Sie die neue Profildefinition zuordnen möchten, wählen Sie Neu, und klicken Sie anschließend auf Neues Profil.

  2. Nehmen Sie im Dialogfeld Neue Profildefinition die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie einen programmtechnischen Namen für die neue Profildefinition ein. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Geben Sie den Namen ein, der für die neue Profildefinition angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung für die neue Profildefinition ein. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.

  3. Klicken Sie auf OK, um das Dialogfeld zu schließen.

  4. Klicken Sie auf Fertig stellen.

Die neue Profildefinition wird in Commerce Server-Manager in der Liste der verfügbaren Profildefinitionen angezeigt. Die neue Profildefinition enthält die Eigenschaften, die den Datenelementen des Datenobjekts zugeordnet sind, aus dem Sie die Profildefinition erstellt haben.

So fügen Sie eine Profildefinition hinzu, die nicht einem Datenobjekt zugeordnet wird

  1. Erweitern Sie nacheinander Commerce Server-Manager, Profile und Profilkatalog, klicken Sie dann mit der rechten Maustaste auf Profildefinitionen, und klicken Sie schließlich auf Neues Profil.

  2. Nehmen Sie im Dialogfeld Neue Profildefinition die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie einen programmtechnischen Namen für die neue Profildefinition ein. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Geben Sie den Namen ein, der für die neue Profildefinition angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung für die neue Profildefinition ein. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.

  3. Klicken Sie auf OK, um das Dialogfeld zu schließen.

  4. Klicken Sie auf Fertig stellen.

Die neue Profildefinition wird in Commerce Server-Manager in der Liste der verfügbaren Profildefinitionen angezeigt. Die neue Profildefinition enthält keine Eigenschaften und ist daher keiner Datenquelle zugeordnet. Sie müssen der neuen Profildefinition Eigenschaften hinzufügen.

So fügen Sie Profildefinitionen benutzerdefinierte Attribute hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, klicken Sie mit der rechten Maustaste auf die Profildefinition, der Sie ein benutzerdefiniertes Attribut hinzufügen möchten, und klicken Sie anschließend auf Eigenschaften.

  2. Klicken Sie im Dialogfeld Eigenschaften auf der Registerkarte Benutzerdefinierte Attribute auf Neu, um das Dialogfeld Benutzerdefiniertes Attribut anzeigen zu lassen.

  3. Nehmen Sie im Dialogfeld Benutzerdefiniertes Attribut die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie einen programmtechnischen Namen für das neue Attribut ein. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Geben Sie den Namen ein, der für das Attribut angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung des Attributs ein. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.
    Wert | Geben Sie den Wert des Attributs ein.

  4. Klicken Sie auf OK.

  5. Klicken Sie auf OK, um zu Commerce Server-Manager zurückzukehren.

Die Profildefinition wird mit dem neuen benutzerdefinierten Attribut gespeichert.

Siehe auch

Informationen zur Profilressource

Hinzufügen einer neuen Datenquelle

Hinzufügen von Eigenschaften zu Profildefinitionen

Hinzufügen von Sitebegriffen

Verwalten von Profildefinitionen


Hinzufügen von Eigenschaften zu Profildefinitionen

Mit der Profilressource fügen Sie Profildefinitionen Eigenschaften hinzu. Eigenschaften bestimmen, welche Daten mit der Profildefinition gesammelt werden. Wenn Sie z. B. eine Profildefinition des Typs Adresse erstellen, fügen Sie ihr eine Eigenschaft mit dem Namen Ort hinzu. (Sie können Profildefinitionen auch Eigenschaften hinzufügen, indem Sie das Modul "Profil-Designer" in Commerce Server Business Desk verwenden. Informationen zum Verwenden des Moduls "Profil-Designer" finden Sie unter Business Desk-Benutzer.)

Sie können Eigenschaftsgruppen erstellen, um die Eigenschaften zu organisieren. Wenn Sie einer Profildefinition des Typs Benutzer z. B. 50 Eigenschaften hinzufügen, die vier verschiedenen Kategorien angehören (z. B. Lebensstil, Meinung, Ausbildung und Vorlieben), können Sie für jede der vier Kategorien eine Eigenschaftsgruppe erstellen und die Eigenschaften, die den einzelnen Kategorien angehören, in die entsprechende Eigenschaftsgruppe einordnen. In der Profilressource können Sie festlegen, ob die Eigenschaften für die einzelnen Eigenschaftsgruppen ein- oder ausgeblendet werden sollen.

Die Profilressource versieht jede Eigenschaft mit Attributen, in denen spezielle Merkmale der Eigenschaft gespeichert werden, z. B. der Eigenschaftsname (Ort) und der Eigenschaftstyp (Zeichenfolge). Zusätzlich zu den von der Profilressource zur Verfügung gestellten Eigenschaftsattributen können Sie auch benutzerdefinierte Attribute für Eigenschaften definieren. Sie können z. B. ein benutzerdefiniertes Attribut erstellen, durch das gesteuert wird, wie eine Eigenschaft in einer Website verwendet wird.

So fügen Sie einer Profildefinition eine neue Eigenschaft hinzu

So fügen Sie einer Profildefinition eine neue Eigenschaftsgruppe hinzu

So fügen Sie einer Eigenschaft ein benutzerdefiniertes Attribut hinzu

So fügen Sie einer Profildefinition eine neue Eigenschaft hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, und klicken Sie dann auf die Profildefinition, der Sie eine Eigenschaft hinzufügen möchten.

  2. Wählen Sie im Profil-Designer-Fenster in der Liste Eigenschaften die Eigenschaftsgruppe aus, mit der Sie die hinzugefügte Eigenschaft verknüpfen möchten, und klicken Sie auf Hinzufügen.

  3. Wählen Sie im Dialogfeld Hinzufügen die Option Neue Eigenschaft hinzufügen aus, und klicken Sie dann auf OK.

  4. Nehmen Sie im Profil-Designer-Fenster im Abschnitt Attribute die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie den programmtechnischen Namen der Eigenschaft ein. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Geben Sie den Namen ein, der in Business Desk angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung der Eigenschaft ein. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.
    Typ | Wählen Sie in der Dropdownliste den gewünschten Eigenschaftstyp aus. Der Standardeigenschaftstyp ist Zeichenfolge.
    Typverweis | Ist für den Sitebegriff und die Profiltypen erforderlich. Klicken Sie auf die Schaltfläche mit den Auslassungspunkten [...], um den Sitebegriff bzw. das Profil auszuwählen, der bzw. das der Eigenschaftsdefinition hinzugefügt werden soll. Diese Funktion steht nur zur Verfügung, wenn Sie Sitebegriff bzw. Profil für den Eigenschaftstyp ausgewählt haben.

  5. Klicken Sie im Profil-Designer-Fenster im Abschnitt Erweiterte Attribute auf Aktiv, um anzugeben, dass diese Eigenschaft in Business Desk verfügbar sein soll. Inaktive Eigenschaften werden in Business Desk nicht angezeigt.

  6. Klicken Sie im Feld Daten zuordnen auf die Schaltfläche mit den Auslassungspunkten [...], um das Dialogfeld Datenquellenauswahl zu öffnen.

  7. Erweitern Sie im Dialogfeld Datenquellenauswahl die Datenquelle, die das Datenobjekt mit dem Datenelement enthält, dem Sie die Eigenschaft zuordnen möchten.

  8. Erweitern Sie das Datenobjekt, das das Datenelement enthält, dem Sie die Eigenschaft zuordnen möchten, wählen Sie das Datenelement aus, und klicken Sie dann auf OK.

  9. Nehmen Sie im Profil-Designer-Fenster im Abschnitt Erweiterte Attribute die folgenden Einstellungen vor:
    Option | Aktion
    Schlüsseltyp | Wählen Sie in der Dropdownliste einen Schlüsseltyp aus. Für jede Profildefinition ist eine Primärschlüsseleigenschaft und eine Verbindungsschlüsseleigenschaft erforderlich. Alternativ kann auch eine Eigenschaft als dualer (d. h. als Primär- und Verbindungs-) Schlüssel fungieren.
    Erforderlich | Legt fest, dass diese Eigenschaft in der Website und in Business Desk erforderlich ist. Dieses Attribut wird jedoch von der Profilressource nicht erzwungen. Wenn Sie einen Schlüsseltyp ausgewählt haben, ist dieses Attribut schreibgeschützt.
    Exportiert | Wählen Sie diese Option aus, um festzulegen, dass diese Eigenschaft in das Datawarehouse importiert wird. Nur zugeordnete Eigenschaften können exportiert werden. Der Export von mehrwertigen Eigenschaften mit dem Eigenschaftstyp Boolesch sowie von Eigenschaften des Typs Binärwert, Lange Zeichenfolge und Kennwort ist nicht möglich.
    Laden in den Zwischenspeicher verzögern | Wählen Sie diese Option aus, um festzulegen, dass diese Eigenschaft beim Abrufen des Profils zuerst nicht geladen wird. Die Eigenschaft wird erst geladen, wenn speziell auf sie zugegriffen wird.
    Mehrwertig | Wählen Sie diese Option aus, um das Sammeln von mehreren Werten zu ermöglichen, die mit der Eigenschaft verknüpft sind. Wenn Sie einen Schlüsseltyp für die Eigenschaft ausgewählt haben, ist dieser Wert nicht verfügbar.
    Suche aktivieren | Wählen Sie diese Option aus, um festzulegen, dass diese Eigenschaft im zugrunde liegenden Datenspeicher indiziert ist und mit der Funktion Suchen nach durchsucht werden kann.
    RDN | Geben Sie den RDN (Relative Distinguished Name) für einen Verzeichnisspeicher ein. Legen Sie diesen Wert fest, wenn die Eigenschaft einem Attribut des Typs RDN einer LDAP-Klasse im zugrunde liegenden Speicher zugeordnet ist.
    Hashschlüssel | Dieser Wert ist schreibgeschützt. Er gibt an, dass diese Eigenschaft zum Verteilen von Profilinstanzen auf mehrere Partitionen verwendet wird.

  10. Klicken Sie auf Übernehmen.

  11. Klicken Sie zum Speichern der Profildefinition auf der Symbolleiste auf [image].

Die Profildefinition wird mit der neuen Eigenschaft gespeichert.

So fügen Sie einer Profildefinition eine neue Eigenschaftsgruppe hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, und klicken Sie dann auf die Profildefinition, der Sie eine Eigenschaftsgruppe hinzufügen möchten.

  2. Klicken Sie im Profil-Designer-Fenster auf Hinzufügen.

  3. Wählen Sie im Dialogfeld Hinzufügen die Option Neue Gruppe hinzufügen aus, und klicken Sie dann auf OK.

  4. Nehmen Sie im Profil-Designer-Fenster im Abschnitt Attribute die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie den programmtechnischen Namen für die Eigenschaftsgruppe ein. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Geben Sie den Namen ein, der in Business Desk angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung der Eigenschaft ein. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.

  5. Klicken Sie auf Übernehmen.

  6. Klicken Sie zum Speichern der Profildefinition auf der Symbolleiste auf [image].

Die Profildefinition wird mit der neuen Eigenschaftsgruppe gespeichert. Sie können Eigenschaften in die Gruppe verschieben oder der Gruppe neue Eigenschaften hinzufügen.

So fügen Sie einer Eigenschaft ein benutzerdefiniertes Attribut hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, und klicken Sie dann auf die Profildefinition, die die Eigenschaft enthält, der Sie ein benutzerdefiniertes Attribut hinzufügen möchten.

  2. Wählen Sie im Profil-Designer-Fenster in der Liste Eigenschaften die Eigenschaft aus, der Sie ein benutzerdefiniertes Attribut hinzufügen möchten.

  3. Klicken Sie im Profil-Designer-Fenster im Abschnitt Benutzerdefinierte Attribute auf Neu.

  4. Nehmen Sie im Profil-Designer-Fenster im Abschnitt Benutzerdefinierte Attribute die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie einen programmtechnischen Namen für das benutzerdefinierte Attribut ein. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Geben Sie den Namen ein, der für das Attribut angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung des Attributs ein. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.
    Wert | Geben Sie den Wert des Attributs ein.

  5. Klicken Sie auf Annehmen und anschließend auf Übernehmen.

  6. Klicken Sie zum Speichern der Profildefinition auf der Symbolleiste auf Speichern.

Die Profildefinition wird mit dem benutzerdefinierten Attribut gespeichert.

Siehe auch

Profildefinitionen

Hinzufügen eines neuen Datenelements

Hinzufügen einer neuen Profildefinition

Hinzufügen von Profildefinitionen zu anderen Profildefinitionen

Hinzufügen von Sitebegriffen


Überprüfen von Profildefinitionen

Mit der Profilressource können Sie überprüfen, ob die zum Zuordnen der Profildefinitionen verwendeten Datenelemente gültig sind. Durch das Überprüfen der Profildefinitionen stellen Sie sicher, dass die mit den Definitionen in der Website gesammelten Daten in vorhandenen Datenbankspalten bzw. LDAP-Attributen gespeichert werden.

Anmerkung

  • Die Überprüfungsroutinen versuchen für jede Eigenschaft in der Profildefinition, Daten zu schreiben und diese Daten anschließend zu lesen. Die Überprüfungsroutinen sind nicht von ggf. im zugrunde liegenden Datenspeicher vorhandenen Beschränkungen betroffen. Diese Routinen versuchen daher möglicherweise, Daten zu schreiben, die eine Beschränkung verletzen. In diesem Fall erhalten Sie eine Überprüfungswarnmeldung. Sie sollten die in der Warnmeldung enthaltenen Beschreibungen sorgfältig untersuchen, um festzustellen, ob das Profil gültig ist.

So überprüfen Sie eine Profildefinition

So überprüfen Sie alle Profildefinitionen in einer Site

So überprüfen Sie eine Profildefinition

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, klicken Sie mit der rechten Maustaste auf die Profildefinition, die Sie überprüfen möchten, und klicken Sie dann auf Dieses Profil überprüfen.

    Wenn die Profildefinition gültig ist, wird das Dialogfeld Gültiges Profil angezeigt. Klicken Sie auf OK.

    Wenn die Profildefinition ungültig ist, wird das Dialogfeld Ungültiges Profil angezeigt.

  2. Um den Überprüfungsvorgang fortzusetzen, klicken Sie auf Ja und dann auf OK, um das Dialogfeld Ungültiges Profil zu schließen.

    Um den Überprüfungsvorgang zu beenden, klicken Sie auf Nein und dann auf OK, um das Dialogfeld Ungültiges Profil zu schließen.

So überprüfen Sie alle Profildefinitionen in einer Site

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile und Profilkatalog, und klicken Sie dann mit der rechten Maustaste auf Profildefinitionen.

  2. Klicken Sie auf Alle Profile überprüfen.

    Wenn alle Profildefinitionen gültig sind, wird das Dialogfeld Gültiges Profil angezeigt. Klicken Sie auf OK.

    Wenn eine Profildefinition ungültig ist, wird das Dialogfeld Ungültiges Profil angezeigt.

  3. Um den Überprüfungsvorgang fortzusetzen (und die ungültige Profildefinition zu überspringen), klicken Sie auf Ja und dann auf OK, um das Dialogfeld Ungültiges Profil zu schließen.

    Um den Überprüfungsvorgang zu beenden, klicken Sie auf Nein und dann auf OK, um das Dialogfeld Ungültiges Profil zu schließen.

Siehe auch

Hinzufügen einer neuen Profildefinition

Hinzufügen eines neuen Datenelements

Hinzufügen von Eigenschaften zu Profildefinitionen

Verwalten von Profildefinitionen

Verwalten von Profileigenschaften


Hinzufügen von Profildefinitionen zu anderen Profildefinitionen

Mit der Profilressource können Sie Profile verknüpfen. Sie können diesen Vorgang auch durchführen, indem Sie das Modul "Profil-Designer" in Commerce Server Business Desk verwenden. Weitere Informationen finden Sie unter Hinzufügen von Profildefinitionen zu anderen Profildefinitionen.

Sie können der Profildefinition Benutzerobjekt z. B. drei Eigenschaften hinzufügen und diese zum Verweisen auf drei Instanzen der Profildefinition Adresse verwenden (z. B. Rechnungs-, Liefer- und Privatadresse). Dadurch können Sie die Profildefinition Adresse zum Sammeln von Benutzeradresseninformationen in Ihrer Website verwenden, während der Name des Adressenprofils für den Benutzer im Benutzerprofil gespeichert wird. Auf diese Weise können Sie die Daten in den Profilen in Ihrer Website und in Berichten zusammen präsentieren.

So fügen Sie einer Profildefinition eine andere Profildefinition hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, und klicken Sie dann auf die Profildefinition, der Sie eine andere Profildefinition hinzufügen möchten.

  2. Erweitern Sie im Profil-Designer-Fenster in der Liste Eigenschaften die Eigenschaftsgruppe, der Sie die neue Eigenschaft hinzufügen möchten, und klicken Sie auf Hinzufügen.

  3. Wählen Sie im Dialogfeld Hinzufügen – Webseite die Option Neue Eigenschaft hinzufügen aus, und klicken Sie dann auf OK.

  4. Nehmen Sie im Profil-Designer-Fenster im Abschnitt Attribute die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie den programmtechnischen Namen der Eigenschaft ein. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Geben Sie den Namen ein, der in Business Desk angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung der Eigenschaft ein. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.
    Typ | Wählen Sie in der Dropdownliste Typ den Eintrag Profil aus.
    Typverweis | Klicken Sie auf die Schaltfläche mit den Auslassungspunkten [...], um das Dialogfeld Profilauswahl zu öffnen. Erweitern Sie Profilkatalog in der Liste Ein Profil auswählen, und wählen Sie dann die Profildefinition aus, die Sie der Eigenschaft hinzufügen möchten.

  5. Klicken Sie auf OK und anschließend auf Übernehmen.

    Die Profildefinition wird der Eigenschaft zugewiesen.

  6. Klicken Sie zum Speichern der Profildefinition auf der Symbolleiste auf Speichern.

Die Profildefinition wird einschließlich der Eigenschaftsänderung gespeichert.

Siehe auch

Profildefinitionen

Hinzufügen von Eigenschaften zu Profildefinitionen

Hinzufügen von Sitebegriffen

Profile Objects (englisches Thema)

Profile Schema (englisches Thema)


Hinzufügen von Sitebegriffen

Sie können mit der Profilressource neue Sitebegriffe zu Commerce Server 2000 hinzufügen. Sie können diesen Vorgang auch durchführen, indem Sie das Modul "Sitebegriffs-Editor" in Commerce Server Business Desk verwenden. Weitere Informationen erhalten Sie unter Hinzufügen von Sitebegriffen.

Wenn Sie Commerce Server einen neuen Sitebegriff hinzufügen, definieren Sie Werte für den Sitebegriff, die als Begriffe bezeichnet werden. Mit Sitebegriffen lassen Sie bestimmte Werte für eine Profileigenschaft auflisten. Wenn Sie einen Sitebegriff erstellt haben, können Sie ihn als Wert einer Profileigenschaft zuweisen. Ein Beispiel: Sie erstellen den Sitebegriff Lieblingsfarbe mit den Werten Blau, Grün und Lila. Dann definieren Sie die Profileigenschaft Lieblingsfarbe mit dem Typ Sitebegriff und weisen ihr den Sitebegriff Lieblingsfarbe zu. Wenn Benutzer eine Farbe für die Eigenschaft Lieblingsfarbe auswählen, sind sie auf die zur Auswahl stehenden Optionen im Sitebegriff Lieblingsfarbe beschränkt. Zum Hinzufügen neuer Sitebegriffe verwenden Sie das Sitebegriffs-Editor-Fenster in der Profilressource.

Um an Sitebegriffen vorgenommene Änderungen speichern zu können, müssen Sie Zugriff auf die Protokolldatei im Ordner Profile haben. Auch der Businessmanager muss Zugriff auf die Protokolldatei im Ordner Profile haben, um im Modul "Sitebegriffs-Editor" vorgenommene Änderungen speichern zu können.

Sie können Sitebegriffsgruppen erstellen, um die Sitebegriffe im Sitebegriffs-Editor-Fenster besser zu organisieren. So könnten Sie z. B. zusätzlich zum Sitebegriff Lieblingsfarbe die folgenden Sitebegriffe mit den entsprechenden Werten erstellen und sie in einer Sitebegriffsgruppe mit Benutzerpräferenzen zusammenfassen:

  • Marke (Markenprodukte, Hausmarken)

  • Qualität (niedrigster Preis, höchste Qualität)

  • Kaufmodus (Online, Versand, Geschäft)

So fügen Sie einen Sitebegriff hinzu

So fügen Sie eine Sitebegriffsgruppe hinzu

So fügen Sie einen Sitebegriff hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile und Profilkatalog, und klicken Sie dann auf Sitebegriffe.

  2. Wählen Sie im Sitebegriffs-Editor-Fenster in der Liste Sitebegriffstruktur die Sitebegriffsgruppe aus, in der Sie den neuen Sitebegriff erstellen möchten, und klicken Sie dann auf Hinzufügen.

  3. Wählen Sie im Dialogfeld Hinzufügen die Option Neuen Sitebegriff hinzufügen aus, und klicken Sie dann auf OK.

  4. Nehmen Sie im Sitebegriffs-Editor-Fenster im Abschnitt Sitebegriffsattribute die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie den programmtechnischen Namen des Sitebegriffs ein. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Geben Sie den Namen ein, der für den Sitebegriff angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung des Sitebegriffs ein. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.

  5. Um dem Sitebegriff einen Wert hinzuzufügen, klicken Sie im Abschnitt Begriffe auf Neu, und nehmen Sie dann die folgenden Einstellungen vor:
    Option | Aktion
    Begriffsname | Geben Sie den programmtechnischen Namen des ersten Begriffs ein. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Geben Sie den Namen ein, der für den Begriff angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.

  6. Um den Begriff anzunehmen, klicken Sie auf Annehmen.

  7. Um dem Sitebegriff einen weiteren Begriff hinzuzufügen, klicken Sie auf Neu, geben Sie den Begriffsnamen und den angezeigten Namen für den neuen Begriff ein, und klicken Sie dann nacheinander auf Annehmen und auf Übernehmen.

  8. Klicken Sie zum Speichern der Sitebegriffe auf der Symbolleiste auf Speichern.

Die Begriffe werden mit dem von Ihnen erstellten neuen Sitebegriff gespeichert.

So fügen Sie eine Sitebegriffsgruppe hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile und Profilkatalog, und klicken Sie dann auf Sitebegriffe.

  2. Klicken Sie im Sitebegriffs-Editor-Fenster in der Liste Sitebegriffstruktur auf Hinzufügen.

  3. Wählen Sie im Dialogfeld Hinzufügen die Option Neue Gruppe hinzufügen aus, und klicken Sie dann auf OK.

  4. Nehmen Sie im Sitebegriffs-Editor-Fenster im Abschnitt Sitebegriffsattribute die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie den programmtechnischen Namen der Sitebegriffsgruppe ein. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Geben Sie den Namen ein, der für die Sitebegriffsgruppe angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung der Sitebegriffsgruppe ein. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.

  5. Klicken Sie auf Übernehmen.

  6. Klicken Sie zum Speichern der Sitebegriffsgruppe auf der Symbolleiste auf Speichern.

Siehe auch

Informationen zur Profilressource

Hinzufügen von Sitebegriffen zu Profildefinitionen

Verwalten von Sitebegriffen


Hinzufügen von Sitebegriffen zu Profildefinitionen

Mit der Profilressource können Sie Profildefinitionen Sitebegriffe hinzufügen. Sie können diesen Vorgang auch durchführen, indem Sie das Modul "Profil-Designer" in Commerce Server Business Desk verwenden. Weitere Informationen finden Sie unter Hinzufügen von Sitebegriffen zu Profildefinitionen.

Wenn Sie einer Profileigenschaft einen Sitebegriff hinzufügen, erhalten Benutzer in Ihrer Website eine Dropdownliste mit den Sitebegriffswerten für die Eigenschaft. Die Auswahl, die von Benutzern in der Sitebegriffs-Dropdownliste in Ihrer Website vorgenommen wird, wird im Profil für den betreffenden Benutzer mit dem Typ Zeichenfolge gespeichert.

So fügen Sie einer Profildefinition einen Sitebegriff hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, und klicken Sie dann auf die Profildefinition, der Sie einen Sitebegriff hinzufügen möchten.

  2. Erweitern Sie im Profil-Designer-Fenster in der Liste Eigenschaften die Eigenschaftsgruppe, die die gewünschte Eigenschaft enthält, und wählen Sie dann die Eigenschaft aus, der Sie den Sitebegriff hinzufügen möchten.

  3. Wählen Sie im Profil-Designer-Fenster im Abschnitt Attribute die Option Sitebegriff in der Dropdownliste Typ aus.

  4. Klicken Sie im Feld Typverweis auf die Schaltfläche mit den Auslassungspunkten [...].

  5. Erweitern Sie im Dialogfeld Sitebegriffsauswahl in der Liste Wählen Sie einen Sitebegriff aus die Sitebegriffsgruppe, die den Sitebegriff enthält, den Sie der Eigenschaft zuweisen möchten, und wählen Sie den Sitebegriff aus.

  6. Klicken Sie auf OK und anschließend auf Übernehmen.

    Der Sitebegriff wird der Eigenschaft zugewiesen.

  7. Klicken Sie zum Speichern der Profildefinition auf der Symbolleiste auf Speichern.

Die Profildefinition wird einschließlich der Eigenschaftsänderung gespeichert.

Siehe auch

Informationen zur Profilressource

Hinzufügen von Eigenschaften zu Profildefinitionen

Hinzufügen von Sitebegriffen

Verwalten von Sitebegriffen


Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Ein Vorteil der Verwendung von Active Directory zum Speichern von Benutzerprofildaten liegt darin, dass dadurch eine sicherere und genauere Benutzerauthentifizierung ermöglicht wird. Es empfiehlt sich, nur nicht flüchtige Daten in Active Directory zu speichern und zur Speicherung von häufig aktualisierten Daten SQL Server zu verwenden.

Im Beispiel in diesem Abschnitt wird erläutert, wie Sie eine Benutzerprofildefinition erstellen können, die Daten sowohl in einer SQL Server-Datenbank als auch in einer Active Directory-Datenbank speichert. Dieses Beispiel soll lediglich den Vorgang verdeutlichen und stellt keine Beschreibung eines realen Profils dar, das Sie verwenden sollten. Sie sollten Ihre Profildefinitionen basierend auf Ihren Unternehmensanforderungen entwerfen.

In diesem Beispiel wird davon ausgegangen, dass Sie Active Directory-Domänencontroller für Ihre Commerce Server 2000-Site installiert und konfiguriert haben.

Informationen zur Vorbereitung auf Active Directory finden Sie unter Vorbereitung auf die Active Directory-Integration.

Dieser Abschnitt beinhaltet folgende Themen:

  • Schritt 1: Erstellen der Datenquelle "Profildienst_ADQuelle"

  • Schritt 2: Hinzufügen des AD-Benutzerobjekts

  • Schritt 3: Hinzufügen von Datenelementen zum AD-Benutzerobjekt

  • Schritt 4: Erstellen der Profildefinition "AD_SQL_Benutzer"

  • Schritt 5: Hinzufügen von Eigenschaftsgruppen zu "AD_SQL_Benutzer"

  • Schritt 6: Hinzufügen von SQL Server-Eigenschaften zu "AD_SQL_Benutzer"


Schritt 1: Erstellen der Datenquelle "Profildienst_ADQuelle"

So fügen Sie eine neue Datenquelle des Typs "LDAPv3-kompatible Quelle" hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile und Profilkatalog, klicken Sie dann mit der rechten Maustaste auf Datenquellen, und klicken Sie schließlich auf Neue Datenquelle.

  2. Nehmen Sie im Dialogfeld Neue Datenquelle die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie UPM_ADSource ein.
    Angezeigter Name | Geben Sie Profildienst_ADQuelle ein.
    Beschreibung | Geben Sie Active Directory-Datenquelle ein.

    In der folgenden Abbildung wird das Dialogfeld Neue Datenquelle dargestellt.

    Neue Datenquelle (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  3. Klicken Sie auf Weiter.

  4. Wählen Sie im Dialogfeld Datenquelle in der Dropdownliste Quellentyp den Eintrag LDAPv3-kompatible Quelle aus, und klicken Sie auf Weiter.

  5. Stellen Sie im Dialogfeld Partitionen sicher, dass das Kontrollkästchen Partitionierte Datenquelle nicht aktiviert ist, und klicken Sie anschließend auf Hinzufügen.

  6. Klicken Sie im Dialogfeld Partition auf Bearbeiten.

  7. Nehmen Sie im Dialogfeld LDAP-Verbindungszeichenfolge die folgenden Einstellungen vor:
    Option | Aktion
    Server | Geben Sie den Namen des Active Directory-Domänencontrollers ein. In diesem Beispiel lautet der Name MSCS01.
    Anschluss | Lassen Sie dieses Feld leer (es sei denn, Sie verwenden einen anderen Wert als 389).

  8. Klicken Sie auf OK.

  9. Stellen Sie im Dialogfeld Partition sicher, dass das Kontrollkästchen Standardpartition nicht aktiviert ist. In der folgenden Abbildung wird das Dialogfeld Partition dargestellt.

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  10. Nehmen Sie im Dialogfeld Partition die folgenden Einstellungen vor:
    Option | Aktion
    Benutzername | Geben Sie Ihre Microsoft Windows-Domäne und den Benutzernamen für die Active Directory-Domäne ein. Nehmen Sie die Eingabe im Format domäne\benutzername vor.
    Kennwort | Geben Sie Ihr Kennwort für die Windows-Domäne ein.

  11. Klicken Sie auf Weiter.

  12. Nehmen Sie im Dialogfeld Systemattribute die folgenden Einstellungen vor:
    Option | Aktion
    Übergeordneter URL | Geben Sie den Speicherort auf dem Active Directory-Server ein, an dem Ihre Active Directory-Daten im Verhältnis zum Stammverzeichnis gespeichert werden sollen.
    Domänenname | Geben Sie den Domänennamen des Active Directory-Servers ein.

Anmerkung

  • Nehmen Sie keine Änderungen an den Standardeinstellungen der anderen Optionen im Dialogfeld vor.

  • Es empfiehlt sich jedoch gegebenenfalls, die Option Dieselben Informationen für alle Benutzer verwenden zu wählen. Durch diese Option wird die Profilressource gezwungen, die von Ihnen in Schritt 6 eingegebenen Informationen bei jeder Kommunikation mit dem Active Directory-Server zu verwenden. Wenn Sie diese Option nicht wählen, verwendet die Profilressource die Informationen des Prozesses, in dem sie momentan ausgeführt wird.

    In der folgenden Abbildung wird das Dialogfeld Systemattribute dargestellt.

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  13. Klicken Sie auf Weiter.

  14. Klicken Sie im Dialogfeld Benutzerdefinierte Attribute auf Fertig stellen.

  15. Klicken Sie im Dialogfeld Partitionen auf Fertig stellen.

Die Partition Profildienst_ADQuelle wird in Commerce Server-Manager als neuer Knoten unter Datenquellen angezeigt.


Schritt 2: Hinzufügen des AD-Benutzerobjekts

Sie erstellen ein Profildatenobjekt, um der Active Directory-Benutzerklasse eine Profileigenschaft zuzuordnen.

So fügen Sie ein neues Datenobjekt hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog, Datenquellen und die Datenquelle Profildienst_ADQuelle, die Sie im vorherigen Schritt erstellt haben, klicken Sie mit der rechten Maustaste auf Datenobjekte, und klicken Sie anschließend auf Neues Datenobjekt.

  2. Nehmen Sie im Dialogfeld Neues Datenobjekt die folgenden Einstellungen vor:
    Option | Aktion
    Objektname | Wählen Sie Benutzer aus. Dabei handelt es sich um die Active Directory-Benutzerklasse.
    Angezeigter Name | Geben Sie AD-Benutzerobjekt ein.

    In der folgenden Abbildung wird das Dialogfeld Neues Datenobjekt dargestellt.

    Neues Datenobjekt (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  3. Klicken Sie auf OK.

Das Datenobjekt AD-Benutzerobjekt wird der Datenquelle Profildienst_ADQuelle hinzugefügt.


Schritt 3: Hinzufügen von Datenelementen zum AD-Benutzerobjekt

Sie erstellen ein Profildatenelement, um ein Profileigenschaftsattribut einer Spalte in einer Tabelle in der Datenbank zuzuordnen, der Sie die Datenquelle zugeordnet haben. In diesem Beispiel fügen Sie dem im vorherigen Schritt erstellten Datenobjekt AD-Benutzerobjekt neun Datenelemente hinzu. Diese Datenelemente beziehen sich auf den Benutzernamen, das Benutzerkennwort und den allgemeinen Namen.

So fügen Sie Datenelemente hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog, Datenquellen und Profildienst_ADQuelle, klicken Sie mit der rechten Maustaste auf AD-Benutzerobjekt, und klicken Sie schließlich auf Neues Datenelement.

  2. Nehmen Sie im Dialogfeld Neues Datenelement die folgenden Einstellungen vor:
    Option | Aktion
    Elementname | Wählen Sie cn aus.
    Angezeigter Name | Geben Sie Allgemeiner Name ein.

    In der folgenden Abbildung wird das Dialogfeld Neues Datenelement dargestellt.

    Neues Datenelement (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  3. Klicken Sie auf Hinzufügen.

    Standardmäßig ist das Datenelement cn als Erforderlich, Indiziert und Primärschlüssel gekennzeichnet.

  4. Wiederholen Sie diesen Vorgang, um die folgenden Datenelemente hinzuzufügen:
    Elementname | Angezeigter Name | Typ
    GivenName | Vorname | Zeichenfolge
    Initials | Initialen | Zeichenfolge
    sn | Nachname | Zeichenfolge
    StreetAddress | Straße | Zeichenfolge
    l | Ort | Zeichenfolge
    St | Bundesland/Kanton | Zeichenfolge
    PostalCode | PLZ | Zeichenfolge
    co | Land/Region | Zeichenfolge

  5. Klicken Sie auf Abschließen.

Wenn Sie diese Datenelemente hinzugefügt haben, sollte Ihr Bildschirm in etwa wie in der folgenden Abbildung dargestellt aussehen.

Active Directory-Benutzerobjekt (Bildschirm)

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.


Schritt 4: Erstellen der Profildefinition "AD_SQL_Benutzer"

Sie verwenden das Datenobjekt AD-Benutzerobjekt, um Ihre benutzerdefinierte Profildefinition zu erstellen. Mit dieser Profildefinition werden Benutzerprofilinformationen gesammelt. Die meisten der Eigenschaften werden einer SQL Server-Datenbank zugeordnet. Der Benutzername und das Kennwort werden Active Directory zugeordnet.

Sie erstellen dieses Profil mit mehreren Quellen, indem Sie die gewünschten Eigenschaften auswählen und sie Datenelementen aus verschiedenen Datenquellen zuordnen.

So erstellen Sie eine neue Profildefinition

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog, Datenquellen, Profildienst_ADQuelle und Datenobjekte, klicken Sie mit der rechten Maustaste auf AD-Benutzerobjekt, zeigen Sie auf Neu, und klicken Sie schließlich auf Neues Profil.

  2. Nehmen Sie im Dialogfeld Neue Profildefinition die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie AD_SQL_User ein.
    Angezeigter Name | Geben Sie AD_SQL_Benutzer ein.
    Beschreibung | Geben Sie Folgendes ein: Benutzerprofildefinition, die AD- und SQL-Quellen verwendet.

    In der folgenden Abbildung wird das Dialogfeld Neue Profildefinition dargestellt.

    Neue Profildefinition (Dialogfeld)

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  3. Klicken Sie auf Weiter.

  4. Klicken Sie im Dialogfeld Benutzerdefinierte Attribute auf Fertig stellen. (In diesem Beispiel werden keine benutzerdefinierten Attribute erstellt.)

Die neue Profildefinition wird in Commerce Server-Manager in der Liste der verfügbaren Profildefinitionen angezeigt.


Schritt 5: Hinzufügen von Eigenschaftsgruppen zu "AD_SQL_Benutzer"

Um die Profildefinition leichter lesbar zu machen, können Sie separate Gruppen für die Active Directory- und die SQL Server-Eigenschaften erstellen. Bevor Sie der Profildefinition AD_SQL_Benutzer die SQL Server-Eigenschaften hinzufügen, müssen Sie die Datengruppen erstellen.

So fügen Sie einem Profil Datengruppen hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, und klicken Sie dann mit der rechten Maustaste auf AD_SQL_Benutzer. Im rechten Fensterbereich wird das Profil-Designer-Fenster angezeigt.

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  2. Klicken Sie auf Hinzufügen.

  3. Wählen Sie im Dialogfeld Hinzufügen – Webseite die Option Neue Gruppe hinzufügen aus, und klicken Sie dann auf OK.

  4. Nehmen Sie im Abschnitt Attribute die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie ADGroup ein.
    Angezeigter Name | Geben Sie Active Directory ein.

    In der folgenden Abbildung wird der Abschnitt Attribute dargestellt.

    AD_SQL_Benutzer, Profildefinition mit neuer Eigenschaftsgruppe

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  5. Klicken Sie auf Übernehmen.

  6. Wählen Sie in der Liste Eigenschaften die soeben erstellte Gruppe Active Directory aus, und klicken Sie dann auf die Schaltfläche mit dem nach oben weisenden Pfeil im unteren Bereich des Dialogfelds. Klicken Sie wiederholt auf die Schaltfläche, bis sich die Gruppe Active Directory über allen anderen Eigenschaften an erster Stelle in der Liste Eigenschaften befindet.

  7. Klicken Sie auf den Richtungspfeil links neben Active Directory, sodass dieser nach unten weist. Dadurch wird der Knoten erweitert, und die Gruppe wird auf das Annehmen von Eigenschaften vorbereitet.

  8. Klicken Sie auf die erste Eigenschaft unter Active Directory. Wenn Sie die Anweisungen genau befolgt haben, handelt es sich dabei um die Eigenschaft Allgemeiner Name.

  9. Klicken Sie dann auf die Schaltfläche mit dem nach oben weisenden Pfeil im unteren Bereich des Dialogfelds. Der Eigenschaftsname wird unter Active Directory eingerückt angezeigt. Dadurch wird die Eigenschaft in die Gruppe Active Directory eingefügt.

  10. Wählen Sie für alle übrigen Eigenschaften jeweils den Namen der Eigenschaft aus, und klicken Sie dann auf die Schaltfläche mit dem nach oben weisenden Pfeil. Wenn alle Eigenschaften in die Gruppe eingefügt wurden, sollte die Liste Eigenschaften ungefähr wie in der folgenden Abbildung dargestellt aussehen.
    AD_SQL_Benutzer, Profildefinition mit erweiterten Attributen

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  11. Um der Eigenschaftsdefinition die SQL Server-Gruppe hinzuzufügen, klicken Sie auf die Schaltfläche Hinzufügen.

  12. Nehmen Sie im Abschnitt Attribute die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie SQLGroup ein.
    Angezeigter Name | Geben Sie SQL Server ein.

    Der Abschnitt Attribute sollte in etwa wie in der folgenden Abbildung dargestellt aussehen.

    AD_SQL_Benutzer, Profildefinition mit Eigenschaften

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  13. Klicken Sie auf Übernehmen.

  14. Um den Namen der Gruppe SQL Server nach links zu verschieben, klicken Sie auf die Schaltfläche mit dem nach unten weisenden Pfeil im unteren Bereich des Dialogfelds.

Die von Ihnen hinzugefügten Eigenschaften sind in den neuen Eigenschaftsgruppen zusammengefasst.


Schritt 6: Hinzufügen von SQL Server-Eigenschaften zu "AD_SQL_Benutzer"

Sie haben eine Profildefinition mit dem Namen AD_SQL_Benutzer erstellt, die über zwei Eigenschaftsgruppen verfügt: Active Directory und SQL Server. Sie haben bereits die Active Directory-Eigenschaften hinzugefügt. Nun müssen Sie die SQL Server-Eigenschaften hinzufügen.

So fügen Sie der Profildefinition "AD_SQL_Benutzer" SQL Server-Benutzerobjekteigenschaften hinzu

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, und klicken Sie dann mit der rechten Maustaste auf AD_SQL_Benutzer.

  2. Klicken Sie im Profildefinitionsfenster in der Liste Eigenschaften auf Allgemeiner Name. Die Eigenschaftsattribute werden auf der rechten Seite angezeigt.

  3. Nehmen Sie im Abschnitt Erweiterte Attribute die folgenden Einstellungen vor:
    Option | Aktion
    Schlüsseltyp | Wählen Sie Dualer (Primär- und Verbindungs-) Schlüssel. Beim Verwenden von mehreren Datenquellen in einer Profildefinition muss ein Verbindungsschlüssel erstellt werden, der beiden Quellen zugeordnet wird.
    Daten zuordnen | Klicken Sie auf die Schaltfläche mit den Auslassungspunkten [...]. Erweitern Sie im Dialogfeld Datenquellenauswahl nacheinander Profildienst_ADQuelle und AD_SQL_Benutzer. Wählen Sie erst Profildienst_ADQuelle und dann Benutzerobjekt aus.

  4. Halten Sie die STRG-Taste gedrückt, und wählen Sie sowohl u_logon_name (unter Benutzerobjekt) als auch cn (unter AD_SQL_Benutzer) aus. Klicken Sie dann auf OK, um das Dialogfeld Datenquellenauswahl zu schließen.

    Beide Eigenschaften werden im Feld Daten zuordnen angezeigt.

  5. Aktivieren Sie im Abschnitt Erweiterte Attribute das Feld RDN, und klicken Sie auf Übernehmen.

    Hier werden die Verbindungsschlüsseleigenschaften als RDN (Relative Distinguished Name) für das Profil bezeichnet. Der RDN muss vorhanden sein, damit Sie ein gültiges Profil erstellen können, das einer LDAPv3-Quelle wie z. B. Active Directory zugeordnet werden kann. (Dies ist für OLE DB-Quellen wie z. B. SQL Server nicht erforderlich.)

  6. Klicken Sie in der Liste Eigenschaften auf den Richtungspfeil links neben SQL Server und dann auf Hinzufügen.

  7. Wählen Sie im Dialogfeld Hinzufügen – Webseite die Option Neue Eigenschaft hinzufügen aus, und klicken Sie dann auf OK.

  8. Wählen Sie in der Liste Eigenschaften den Eintrag Neue Eigenschaft 1 aus.

    Fügen Sie der Profildefinition AD_SQL_Benutzer die Eigenschaften in der folgenden Tabelle für neue Eigenschaften hinzu.

    Name | Angezeigter Name | Typ | Daten zuordnen
    u_user_security_password | Kennwort | Zeichenfolge | u_user_security_password
    i_account_status | Kontostatus | Zahl | i_account_status
    u_user_catalog_set | Katalogsatz | Zeichenfolge | u_user_catalog_set
    d_data_registered | Registriert am | Datum/Uhrzeit | d_date_registered
    i_partner_desk_role | Partnerservicerolle | Zahl | i_partner_desk_role
    d_date_last_changed | Zuletzt geändert am | Datum/Uhrzeit | d_date_last_changed

  9. Nehmen Sie im Abschnitt Attribute die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie den programmtechnischen Namen der Eigenschaft aus der Spalte Name in der vorherigen Tabelle ein.
    Angezeigter Name | Geben Sie den angezeigten Namen der Eigenschaft aus der Spalte Angezeigter Name in der vorherigen Tabelle ein.
    Typ | Wählen Sie in der Dropdownliste den Eigenschaftstyp der Eigenschaft aus der Spalte Typ in der vorherigen Tabelle aus.

  10. Klicken Sie im Abschnitt Erweiterte Attribute auf die Schaltfläche mit den Auslassungspunkten [...] für Daten zuordnen. Navigieren Sie zum SQL Server-Benutzerobjekt, und wählen Sie das Datenelement für die Eigenschaft aus der Spalte Daten zuordnen in der vorigen Tabelle aus.

  11. Klicken Sie auf Übernehmen, um die von Ihnen an der Eigenschaft vorgenommenen Änderungen zu übernehmen.

  12. Wiederholen Sie die Schritte 7 bis 12, bis Sie alle Eigenschaften in der Tabelle für neue Eigenschaften hinzugefügt haben. Das Eigenschafts-Designer-Fenster sollte in etwa wie in der folgenden Abbildung dargestellt aussehen.
    AD_SQL_Benutzer, Profildefinition mit neuer Eigenschaftsgruppe

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  13. Klicken Sie zum Speichern der Profildefinition auf der Symbolleiste auf [image].

Wenn Sie die Profildefinition AD_SQL_Benutzer in Ihrer Website verwenden würden, würden die Daten sowohl in einer SQL Server-Datenbank als auch in einer Active Directory-Datenbank gespeichert.

Siehe auch

Informationen zur Profilressource

Hinzufügen einer neuen Datenquelle

Hinzufügen einer neuen Profildefinition

Verwalten von Datenquellen

Verwalten von Profildefinitionen


Verwalten von Datenquellen

Mit der Profilressource können Sie die von Ihnen erstellten Datenquellen ändern. So können Sie z. B. Datenobjekte und Datenelemente bearbeiten oder veraltete Datenobjekte und Datenelemente löschen, wenn Sie Änderungen im Datenspeicher vorgenommen haben, dem Ihre Profileigenschaften zugeordnet sind. Sie können auch die alte Datenquelle löschen, wenn Sie eine neue Datenquelle erstellen. Sie können Datenquellen, Datenobjekte und Datenelemente ändern und löschen.

Beim Ändern Ihrer Datenquellen gelten die folgenden Einschränkungen:

  • Sie können Partitionen nur zu Datenquellen hinzufügen, die noch nie partitioniert wurden. Sie müssen einer Quelle Partitionen zuweisen, bevor Sie sie zum Speichern von Daten verwenden. Wenn Sie eine Quelle partitionieren, die Daten enthält, gehen die vorhandenen Daten verloren.

  • Datenquellenpartitionen können nicht gelöscht, aber geändert werden. Seien Sie vorsichtig beim Ändern der Partitionen einer Datenquelle, die Daten enthält. Änderungen können in diesem Fall zu Datenverlust oder -beschädigung führen.

  • Wenn Sie eine Datenquelle löschen, können Sie sie nicht wiederherstellen. Alle mit der Datenquelle verknüpften Datenobjekte und Datenelemente werden ebenfalls gelöscht. Sie müssen die Profildefinitionen, die den gelöschten Datenelementen zugeordnet sind, dem Datenspeicher mit vorhandenen Datenelementen neu zuordnen.

  • Wenn Sie ein Datenobjekt löschen, können Sie es nicht wiederherstellen. Alle mit dem gelöschten Datenobjekt verknüpften Datenelemente werden ebenfalls gelöscht. Sie müssen die Profildefinitionen, die den gelöschten Datenelementen zugeordnet sind, dem Datenspeicher mit vorhandenen Datenelementen neu zuordnen.

  • Wenn Sie ein Datenelement löschen, können Sie es nicht wiederherstellen. Sie müssen die Profildefinitionen, die dem gelöschten Datenelement zugeordnet sind, dem Datenspeicher mit einem vorhandenen Datenelement neu zuordnen.

So ändern Sie die Eigenschaften einer Datenquelle

So löschen Sie eine Datenquelle

So ändern Sie den angezeigten Namen und die Beschreibung eines Datenobjekts

So löschen Sie ein Datenobjekt

So ändern Sie den angezeigten Namen und die Beschreibung eines Datenelements

So löschen Sie ein Datenelement

So ändern Sie die Eigenschaften einer Datenquelle

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Datenquellen, klicken Sie mit der rechten Maustaste auf die Datenquelle, die Sie ändern möchten, und klicken Sie anschließend auf Eigenschaften.

  2. Nehmen Sie im Dialogfeld <Datenquelle>-Eigenschaften auf der Registerkarte Allgemein die folgenden Einstellungen vor:
    Option | Aktion
    Angezeigter Name | Bearbeiten Sie den Namen der Datenquelle. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Bearbeiten Sie die Beschreibung der Datenquelle. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.

  3. Klicken Sie auf OK, um Ihre Änderungen zu speichern und zu Commerce Server-Manager zurückzukehren.

Die Datenquelle wird einschließlich der Änderungen gespeichert. Sie können die Verbindungszeichenfolge einer vorhandenen Partition ändern oder eine neue Partition hinzufügen, die vom selben Typ wie die Datenquelle ist (LDAP oder OLE DB). Informationen zum Hinzufügen einer neuen Partition bzw. zum Bearbeiten einer vorhandenen Partition bei OLE DB-ANSI-Providern finden Sie unter So fügen Sie eine neue SQL Server-Datenquelle hinzu. Informationen zum Hinzufügen einer neuen Partition bzw. zum Bearbeiten einer vorhandenen Partition bei LDAPv3-kompatiblen Quellen finden Sie unter So fügen Sie eine neue Datenquelle des Typs "LDAPv3-kompatible Quelle" hinzu.

So löschen Sie eine Datenquelle

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Datenquellen, klicken Sie mit der rechten Maustaste auf die Datenquelle, die Sie löschen möchten, und klicken Sie anschließend auf Löschen.

  2. Klicken Sie im Bestätigungsdialogfeld Datenquelle löschen? auf Ja.

Die Datenquelle sowie alle zugehörigen Datenobjekte und Datenelemente werden gelöscht.

So ändern Sie den angezeigten Namen und die Beschreibung eines Datenobjekts

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog, Datenquellen und die Datenquelle, die das Datenobjekt enthält, das Sie ändern möchten, erweitern Sie Datenobjekte, klicken Sie mit der rechten Maustaste auf das Datenobjekt, das Sie ändern möchten, und klicken Sie anschließend auf Eigenschaften.

  2. Nehmen Sie im Dialogfeld <Datenobjekt>-Eigenschaften auf der Registerkarte Identität die folgenden Einstellungen vor:
    Option | Aktion
    Angezeigter Name | Bearbeiten Sie den Namen des Datenobjekts. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Bearbeiten Sie die Beschreibung des Datenobjekts. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.

  3. Klicken Sie auf OK.

Der angezeigte Name und die Beschreibung des Datenobjekts werden geändert.

Anmerkung

  • Sie können den angezeigten Namen eines Datenobjekts ändern. Der programmtechnische Name eines Datenobjekts kann jedoch nicht geändert werden.

So löschen Sie ein Datenobjekt

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog, Datenquellen und die Datenquelle, die das Datenobjekt enthält, das Sie löschen möchten, erweitern Sie Datenobjekte, klicken Sie mit der rechten Maustaste auf das Datenobjekt, das Sie löschen möchten, und klicken Sie anschließend auf Löschen.

  2. Klicken Sie im Bestätigungsdialogfeld Datenobjekt löschen? auf Ja.

Das Datenobjekt wird aus der Datenquelle gelöscht.

Vorsicht

  • Wenn Sie ein Datenobjekt löschen, können Sie es nicht wiederherstellen.

So ändern Sie den angezeigten Namen und die Beschreibung eines Datenelements

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog, Datenquellen und die Datenquelle, die das Datenobjekt mit dem Datenelement enthält, das Sie ändern möchten, erweitern Sie Datenobjekte, und klicken Sie dann auf das Datenobjekt mit dem Datenelement, das Sie ändern möchten.

  2. Klicken Sie in der Liste mit den Datenelementen mit der rechten Maustaste auf das Datenelement, das Sie ändern möchten, und klicken Sie dann auf Eigenschaften.

  3. Nehmen Sie im Dialogfeld <Datenelement>-Eigenschaften auf der Registerkarte Allgemein die folgenden Einstellungen vor:
    Option | Aktion
    Angezeigter Name | Bearbeiten Sie den Namen des Datenelements. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Bearbeiten Sie die Beschreibung des Datenelements. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.

  4. Klicken Sie auf OK.

Anmerkung

  • Sie können den angezeigten Namen eines Datenelements ändern. Der programmtechnische Name eines Datenelements kann jedoch nicht geändert werden.

So löschen Sie ein Datenelement

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog, Datenquellen und die Datenquelle, die das Datenobjekt mit dem Datenelement enthält, das Sie löschen möchten, erweitern Sie Datenobjekte, und klicken Sie dann auf das Datenobjekt mit dem Datenelement, das Sie löschen möchten.

  2. Klicken Sie in der Liste mit den Datenelementen mit der rechten Maustaste auf das Datenelement, das Sie löschen möchten, und klicken Sie dann auf Löschen.

  3. Klicken Sie im Bestätigungsdialogfeld Datenelement löschen? auf Ja.

Das Datenelement wird aus der Datenquelle gelöscht.

Vorsicht

  • Wenn Sie ein Datenelement löschen, können Sie es nicht wiederherstellen.

Siehe auch

Informationen zur Profilressource

Hinzufügen einer neuen Datenquelle

Hinzufügen eines neuen Datenobjekts

Hinzufügen eines neuen Datenelements

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen


Verwalten von Profildefinitionen

Mit der Profilressource können Sie den angezeigten Namen und die Beschreibung von Profildefinitionen ändern sowie Profildefinitionen benutzerdefinierte Attribute hinzufügen. Um eine neue Profildefinition zu erstellen, können Sie eine vorhandene Profildefinition kopieren und im Profil-Designer-Fenster den Namen und die Attribute der neuen Profildefinition ändern.

Commerce Server 2000 bietet Ihnen verschiedene Profildefinitionen, die beim Entpacken der leeren Lösungssite zur Verfügung gestellt werden. Sie können diese Profildefinitionen kopieren, um neue Profildefinitionen zu erstellen, die Ihren speziellen Anforderungen gerecht werden. Sie können auch Profildefinitionen löschen, die Ihren Anforderungen nicht mehr entsprechen, und Sie können benutzerdefinierte Attribute aus Profildefinitionen löschen. Wenn Sie ein benutzerdefiniertes Attribut löschen, können Sie es nicht wiederherstellen. Falls Sie ein benutzerdefiniertes Attribut versehentlich löschen, müssen Sie es neu erstellen.

So ändern Sie eine Profildefinition

So kopieren Sie eine Profildefinition

So löschen Sie eine Profildefinition

So löschen Sie benutzerdefinierte Attribute aus Profildefinitionen

So ändern Sie eine Profildefinition

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, klicken Sie mit der rechten Maustaste auf die Profildefinition, die Sie ändern möchten, und klicken Sie dann auf Eigenschaften.

  2. Nehmen Sie im Dialogfeld Eigenschaften auf der Registerkarte Allgemein die folgenden Einstellungen vor:
    Option | Aktion
    Angezeigter Name | Ändern Sie den Namen der Profildefinition. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Ändern Sie die Beschreibung der Profildefinition. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.

  3. Nehmen Sie im Dialogfeld Eigenschaften auf der Registerkarte Benutzerdefinierte Attribute die folgenden Einstellungen vor:
    Option | Aktion
    Neu | Klicken Sie auf diese Option, um das Dialogfeld Benutzerdefiniertes Attribut zu öffnen und ein neues benutzerdefiniertes Attribut hinzuzufügen.
    Bearbeiten | Klicken Sie auf diese Option, um das Dialogfeld Benutzerdefiniertes Attribut zu öffnen und das angegebene benutzerdefinierte Attribut zu bearbeiten.
    Löschen | Klicken Sie auf diese Option, um das ausgewählte benutzerdefinierte Attribut zu löschen.

  4. Nehmen Sie im Dialogfeld Benutzerdefinierte Attribute die folgenden Einstellungen vor:
    Option | Aktion
    Angezeigter Name | Geben Sie den Namen ein, der angezeigt werden soll, oder ändern Sie den Namen für das Attribut. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung des Attributs ein, oder ändern Sie die Beschreibung. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.
    Wert | Geben Sie den Wert des Attributs ein, oder ändern Sie den Wert.

Anmerkung

  • Sie können den angezeigten Namen einer Profildefinition ändern. Der programmtechnische Name einer Profildefinition kann jedoch nicht geändert werden.
  5. Um die Änderungen zu speichern und zum Dialogfeld Eigenschaften zurückzukehren, klicken Sie auf OK.

  6. Um Ihre Änderungen zu speichern und zu Commerce Server-Manager zurückzukehren, klicken Sie erst auf Übernehmen und dann auf OK.

Die Profildefinition wird einschließlich der Änderungen gespeichert.

So kopieren Sie eine Profildefinition

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, klicken Sie mit der rechten Maustaste auf das Profil, das Sie kopieren möchten, und klicken Sie dann auf Eine Kopie dieses Profils erstellen.

  2. Nehmen Sie im Dialogfeld Profildefinition kopieren die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie einen programmtechnischen Namen für die Profildefinition ein. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Geben Sie den Namen ein, der für die Profildefinition angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung für die Profildefinition ein. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.

  3. Klicken Sie auf Weiter.

  4. Klicken Sie im Dialogfeld Benutzerdefinierte Attribute auf Neu.

  5. Nehmen Sie im Dialogfeld Benutzerdefiniertes Attribut die folgenden Einstellungen vor:
    Option | Aktion
    Name | Geben Sie einen programmtechnischen Namen für das Attribut ein. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Geben Sie den Namen ein, der für das Attribut angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Geben Sie eine Beschreibung des Attributs ein. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.
    Wert | Geben Sie den Wert des Attributs ein.

  6. Klicken Sie auf OK, um die Profildefinition zu speichern.

  7. Klicken Sie auf Fertig stellen, um die Profildefinition zu speichern und zu Commerce Server-Manager zurückzukehren.

Die neue Profildefinition wird gespeichert.

So löschen Sie eine Profildefinition

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, klicken Sie mit der rechten Maustaste auf die Profildefinition, die Sie löschen möchten, und klicken Sie dann auf Löschen.

  2. Klicken Sie im Bestätigungsdialogfeld Profil löschen? auf Ja.

Die Profildefinition wird aus der Profilressource gelöscht.

Vorsicht

  • Wenn Sie eine Profildefinition versehentlich löschen, müssen Sie sie neu erstellen. Wenn Sie eine Profildefinition löschen, können Sie sie nicht wiederherstellen.

So löschen Sie benutzerdefinierte Attribute aus Profildefinitionen

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, klicken Sie mit der rechten Maustaste auf die Profildefinition, aus der Sie ein benutzerdefiniertes Attribut löschen möchten, und klicken Sie anschließend auf Eigenschaften.

  2. Wählen Sie im Dialogfeld Eigenschaften auf der Registerkarte Benutzerdefinierte Attribute das zu löschende Attribut aus, und klicken Sie auf Löschen.

Das benutzerdefinierte Attribut wird aus der Profildefinition gelöscht.

Siehe auch

Informationen zur Profilressource

Hinzufügen einer neuen Profildefinition


Verwalten von Profileigenschaften

Mit der Profilressource können Sie Profileigenschaften ändern, um die Daten zu aktualisieren, die Sie über Ihre Website sammeln möchten. Ein Beispiel: Sie erstellen eine Profildefinition mit einer Eigenschaft, die Sie zum Sammeln von Daten über die Bundesländer bzw. Kantone verwenden, in denen die Besucher Ihrer Website leben. Wenn Sie die mit dieser Profileigenschaft gesammelten Daten anzeigen lassen, stellen Sie fest, dass eine Eigenschaft mit dem Typ Zeichenfolge zum Sammeln von nützlichen Standortdaten über Ihre Benutzer nicht optimal ist. Sie können die Attribute der Eigenschaft im Profil-Designer-Fenster ändern, sodass mit der Eigenschaft nützlichere Daten gesammelt werden.

Sie können Eigenschaften und Eigenschaftsgruppen löschen, wenn Sie sie in einer Profildefinition nicht benötigen. Dies ist z. B. der Fall, wenn Sie einer Profildefinition sieben Eigenschaften hinzufügen und dann feststellen, dass sie in Ihrer Website nur sechs davon benötigen. Wenn Sie eine Eigenschaftsgruppe löschen, werden alle Eigenschaften in dieser Gruppe ebenfalls gelöscht.

Sie können Eigenschaften und Eigenschaftsgruppen in der Liste Eigenschaften zur besseren Organisation nach unten oder nach oben verschieben. Ein Beispiel: Sie haben einer Eigenschaftsdefinition drei Eigenschaftsgruppen hinzugefügt. Sie können die vorhandenen Eigenschaften in der Liste Eigenschaften nach oben oder nach unten verschieben, bis sie sich in der Eigenschaftsgruppe befinden, die Sie für sie erstellt haben.

Sie können von einer Eigenschaft aus beliebige benutzerdefinierte Attribute bearbeiten oder löschen. Sie können ein benutzerdefiniertes Attribut bearbeiten, wenn Sie den angezeigten Namen, die Beschreibung oder den Wert des Attributs anpassen müssen. Wenn Sie ein benutzerdefiniertes Attribut versehentlich löschen, müssen Sie es neu erstellen. Wenn Sie ein benutzerdefiniertes Attribut löschen, können Sie es nicht wiederherstellen.

So ändern Sie eine Profileigenschaft

So organisieren Sie Profileigenschaften

So löschen Sie Eigenschaften aus Profildefinitionen

So ändern Sie benutzerdefinierte Attribute von Profileigenschaften

So löschen Sie benutzerdefinierte Attribute aus Profileigenschaften

So ändern Sie eine Profileigenschaft

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, und klicken Sie dann auf die Profildefinition, die die Eigenschaft enthält, die Sie ändern möchten.

  2. Erweitern Sie in der Liste Eigenschaften die Eigenschaftsgruppe, die die zu ändernde Eigenschaft enthält, und klicken Sie dann auf die Eigenschaft, die Sie ändern möchten.

    Sie können auch auf die zu ändernde Eigenschaftsgruppe klicken.

  3. Nehmen Sie im Profil-Designer-Fenster im Abschnitt Attribute die folgenden Einstellungen vor:
    Option | Aktion
    Angezeigter Name | Bearbeiten Sie den Namen, der in Commerce Server Business Desk angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Bearbeiten Sie die Beschreibung der Eigenschaft. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.
    Typ | Wählen Sie den Eigenschaftstyp aus. Der Standardeigenschaftstyp ist Zeichenfolge. Der Eigenschaftstyp dieses Attributs muss dem Typ des Datenelements entsprechen, dem das Attribut zugeordnet ist.
    Typverweis | Klicken Sie auf die Schaltfläche mit den Auslassungspunkten [...], um den Sitebegriff bzw. das Profil auszuwählen, der bzw. das der Eigenschaftsdefinition hinzugefügt werden soll. Diese Funktion steht nur zur Verfügung, wenn Sie den Typ Sitebegriff bzw. Profil ausgewählt haben.

  4. Klicken Sie im Profil-Designer-Fenster im Abschnitt Erweiterte Attribute auf Aktiv, wenn diese Eigenschaft in Business Desk verfügbar sein soll. Inaktive Eigenschaften werden in Business Desk nicht angezeigt.

  5. Klicken Sie im Feld Daten zuordnen auf die Schaltfläche mit den Auslassungspunkten [...], um das Dialogfeld Datenquellenauswahl zu öffnen, und wählen Sie dann das Datenelement aus, dem die Eigenschaft zugeordnet werden soll.

  6. Erweitern Sie im Dialogfeld Datenquellenauswahl die Datenquelle, die das Datenobjekt mit dem Datenelement enthält, dem Sie die Eigenschaft zuordnen möchten.

  7. Erweitern Sie das Datenobjekt, das das Datenelement enthält, dem Sie die Eigenschaft zuordnen möchten, und wählen Sie das Datenelement aus.

  8. Klicken Sie auf OK.

  9. Nehmen Sie im Profil-Designer-Fenster im Abschnitt Erweiterte Attribute die folgenden Einstellungen vor:
    Option | Aktion
    Schlüsseltyp | Wählen Sie in der Dropdownliste einen Schlüsseltyp aus. Für jede Profildefinition ist eine Primärschlüsseleigenschaft und eine Verbindungsschlüsseleigenschaft erforderlich. Alternativ kann auch eine Eigenschaft als dualer (d. h. als Primär- und Verbindungs-) Schlüssel fungieren.
    Erforderlich | Legt fest, dass diese Eigenschaft in der Website und in Business Desk erforderlich ist. Dieses Attribut wird jedoch von der Profilressource nicht erzwungen. Wenn Sie einen Schlüsseltyp ausgewählt haben, ist dieses Attribut schreibgeschützt.
    Exportiert | Wählen Sie diese Option aus, um festzulegen, dass diese Eigenschaft in das Datawarehouse von Commerce Server importiert wird. Nur zugeordnete Eigenschaften können exportiert werden. Der Export von mehrwertigen Eigenschaften mit dem Eigenschaftstyp Boolesch sowie von Eigenschaften des Typs Binärwert, Lange Zeichenfolge und Kennwort ist nicht möglich.
    Laden in den Zwischenspeicher verzögern | Wählen Sie diese Option aus, um festzulegen, dass diese Eigenschaft beim Abrufen des Profils zuerst nicht geladen wird. Die Eigenschaft wird erst geladen, wenn auf sie zugegriffen wird.
    Mehrwertig | Wählen Sie diese Option aus, um das Sammeln von mehreren Werten zu ermöglichen, die mit der Eigenschaft verknüpft sind. Wenn Sie einen Schlüsseltyp für die Eigenschaft ausgewählt haben, ist dieser Wert nicht verfügbar.
    Suche aktivieren | Wählen Sie diese Option aus, um festzulegen, dass diese Eigenschaft im zugrunde liegenden Datenspeicher indiziert ist und mit der Funktion Suchen nach durchsucht werden kann.
    RDN | Geben Sie den RDN (Relative Distinguished Name) für einen Verzeichnisspeicher ein. Legen Sie diesen Wert fest, wenn die Eigenschaft einem Attribut des Typs RDN einer LDAP-Klasse im zugrunde liegenden Speicher zugeordnet ist.
    Hashschlüssel | Wählen Sie diese Option aus, um festzulegen, dass diese Eigenschaft zum Verteilen von Profilinstanzen auf mehrere Datenquellenpartitionen verwendet wird. Bei nicht partitionierten Datenquellen ist diese Eigenschaft schreibgeschützt. Zum Abrufen von Profilen müssen Sie eine Abfrage nach diesem Schlüssel durchführen.

  10. Klicken Sie auf Übernehmen.

  11. Klicken Sie zum Speichern der Profildefinition auf der Symbolleiste auf [image].

Die Profildefinition wird einschließlich der Änderungen gespeichert.

So organisieren Sie Profileigenschaften

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, und klicken Sie dann auf die Profildefinition, die die Eigenschaften enthält, die Sie organisieren möchten.

  2. Wählen Sie in der Liste Eigenschaften die zu verschiebende Eigenschaft oder Eigenschaftsgruppe aus, und verwenden Sie dann die Schaltfläche mit dem nach unten weisenden Pfeil oder die Schaltfläche mit dem nach oben weisenden Pfeil, um die Eigenschaft oder Eigenschaftsgruppe in der Liste nach unten oder nach oben zu bewegen.

  3. Klicken Sie zum Speichern der Profildefinition auf der Symbolleiste auf Speichern .

Die Profildefinition wird einschließlich der Änderungen gespeichert, die Sie an der Reihenfolge der Eigenschaften und Eigenschaftsgruppen vorgenommen haben.

So löschen Sie Eigenschaften aus Profildefinitionen

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, und klicken Sie dann auf die Profildefinition, aus der Sie eine Eigenschaft löschen möchten.

  2. Wählen Sie in der Liste Eigenschaften die Eigenschaft oder Eigenschaftsgruppe aus, die Sie löschen möchten, und klicken Sie dann auf Entfernen.

  3. Klicken Sie im Bestätigungsdialogfeld Löschen? auf OK.

  4. Klicken Sie zum Speichern der Profildefinition auf der Symbolleiste auf Speichern.

Die Profildefinition wird gespeichert. Die gelöschte Eigenschaft oder Eigenschaftsgruppe ist nicht mehr darin enthalten.

So ändern Sie benutzerdefinierte Attribute von Profileigenschaften

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, und klicken Sie dann auf die Profildefinition, die die Eigenschaft enthält, in der Sie ein benutzerdefiniertes Attribut ändern möchten.

  2. Wählen Sie in der Liste Eigenschaften die Eigenschaft aus, die das benutzerdefinierte Attribut enthält, das Sie ändern möchten.

  3. Klicken Sie im Profil-Designer-Fenster im Abschnitt Benutzerdefinierte Attribute auf Bearbeiten.

  4. Nehmen Sie im Profil-Designer-Fenster im Abschnitt Benutzerdefinierte Attribute die folgenden Einstellungen vor:
    Option | Aktion
    Name | Bearbeiten Sie den programmtechnischen Namen des Attributs. Der Name darf höchstens 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Leerzeichen dürfen in dem Namen nicht enthalten sein.
    Angezeigter Name | Bearbeiten Sie den Namen, der für das Attribut angezeigt werden soll. Der angezeigte Name darf höchstens 127 Unicode-Zeichen enthalten.
    Beschreibung | Bearbeiten Sie die Beschreibung des Attributs. Die Beschreibung darf höchstens 127 Unicode-Zeichen enthalten.
    Wert | Bearbeiten Sie den Wert des Attributs.

  5. Klicken Sie auf Annehmen und anschließend auf Übernehmen.

  6. Klicken Sie zum Speichern der Profildefinition auf der Symbolleiste auf Speichern.

Die Profildefinition wird einschließlich der Änderungen gespeichert.

So löschen Sie benutzerdefinierte Attribute aus Profileigenschaften

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile, Profilkatalog und Profildefinitionen, und klicken Sie dann auf die Profildefinition, die die Eigenschaft enthält, aus der Sie ein benutzerdefiniertes Attribut löschen möchten.

  2. Wählen Sie in der Liste Eigenschaften die Eigenschaft aus, die das benutzerdefinierte Attribut enthält, das Sie löschen möchten.

  3. Wählen Sie im Profil-Designer-Fenster im Abschnitt Benutzerdefinierte Attribute das zu löschende benutzerdefinierte Attribut aus, und klicken Sie auf Entfernen.

    Das benutzerdefinierte Attribut wird aus der Profileigenschaft gelöscht.

  4. Klicken Sie auf Übernehmen.

  5. Klicken Sie zum Speichern der Profildefinition auf der Symbolleiste auf Speichern.

Die Profildefinition wird einschließlich der Änderungen gespeichert.

Vorsicht

  • Wenn Sie ein benutzerdefiniertes Attribut löschen, können Sie es nicht wiederherstellen.

Siehe auch

Informationen zur Profilressource

Hinzufügen von Eigenschaften zu Profildefinitionen


Verwalten von Sitebegriffen

Mit der Profilressource können Sie Sitebegriffe nach Bedarf ändern oder löschen. Sie können z. B. einen Sitebegriff mit dem Namen Lieblingsfarbe erstellen und dann die darin aufgeführten Farben zur besseren Abstimmung mit Ihrem Inventar je nach Jahreszeit ändern.

So ändern Sie einen Sitebegriff

So löschen Sie einen Sitebegriff

So ändern Sie einen Sitebegriff

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile und Profilkatalog, und klicken Sie dann auf Sitebegriffe.

  2. Erweitern Sie in der Liste Sitebegriffstruktur die Sitebegriffsgruppe, die den Sitebegriff enthält, den Sie ändern möchten.

  3. Ändern Sie im Profil-Designer-Fenster die Attribute und Begriffe des Sitebegriffs wie erforderlich, klicken Sie auf Annehmen und dann auf Übernehmen.

  4. Klicken Sie zum Speichern des Sitebegriffs auf der Symbolleiste auf Speichern.

Der Sitebegriff wird einschließlich der Änderungen gespeichert.

So löschen Sie einen Sitebegriff

  1. Erweitern Sie nacheinander Commerce Server-Manager, Globale Ressourcen, Profile und Profilkatalog, und klicken Sie dann auf Sitebegriffe.

  2. Erweitern Sie in der Liste Sitebegriffstruktur die Sitebegriffsgruppe, die den Sitebegriff enthält, den Sie löschen möchten, wählen Sie den Sitebegriff aus, und klicken Sie auf Entfernen.

  3. Klicken Sie im Bestätigungsdialogfeld Löschen? auf OK.

    Der Sitebegriff wird gelöscht.

  4. Klicken Sie auf Annehmen und anschließend auf Übernehmen.

  5. Klicken Sie zum Speichern der Änderungen auf der Symbolleiste auf Speichern.

Der Sitebegriff wird einschließlich der Änderungen gespeichert.

Siehe auch

Informationen zur Profilressource

Hinzufügen von Sitebegriffen

Hinzufügen von Sitebegriffen zu Profildefinitionen


Verwenden von BizTalk Server und Commerce Server

Wenn Sie Microsoft BizTalk Server 2000 mit der Microsoft Commerce Server 2000-Installation integrieren, können Sie mit Herstellern den Empfang von Produktkatalogen vereinbaren und so Aufträge für Produkte ausführen, die in Ihrer Site angeboten werden. Auch wenn die Installation von BizTalk Server nicht unbedingt für beide Seiten, Sie und Ihre Lieferanten, erforderlich ist, enthält der folgende Abschnitt Informationen über das Einrichten von BizTalk Server-Systemen für beide Seiten.

Es wird empfohlen, Commerce Server und BizTalk Server auf demselben Computer zu installieren. Sie können BizTalk Server jedoch auch auf einem anderen Computer installieren, beispielsweise mithilfe von Message Queuing.

Dieser Abschnitt beinhaltet folgende Themen:

  • Informationen zu BizTalk Server. Beschreibt die Komponenten von Commerce Server, die mit BizTalk Server arbeiten, und verschafft einen Überblick über die für Aufträge und Katalogaustausch erforderlichen Schritte.

  • Konfigurieren von Commerce Server für die Zusammenarbeit mit BizTalk Server. Erläutert die Konfiguration von Commerce Server für die Integration mit BizTalk Server.

  • Einrichten des Quellservers. Erläutert das Einrichten von Quell- und Absenderorganisationen für den Austausch von Katalogen und Aufträgen.

  • Einrichten des Zielservers. Erläutert die Konfiguration der Ziel- und Empfängerorganisationen in BizTalk Server.

  • Einrichten von Katalogen für BizTalk Server. Erläutert die Konfiguration von BizTalk Server für den Katalogaustausch.

Weitere Informationen zur Integration von BizTalk Server und Commerce Server finden Sie unter Integrating with BizTalk Server (englisches Thema). Zusätzliche Informationen enthält die Dokumentation zu Microsoft BizTalk Server 2000 und das Commerce Server 2000 Resource Kit.

Programmierbeispiele finden Sie in den Hilfethemen zur BizTalk Server 2000-Schnittstelle in der Onlinehilfe zu BizTalk Server. Hier finden Sie unter anderem Beispiele für das Aufteilen der Aufträge nach Lieferanten, für das Umwandeln von Aufträgen in Extensible Markup Language (XML) und den Einsatz von BizTalk Server-Komponenten für das Senden von Aufträgen an BizTalk Server.


Informationen zu BizTalk Server

BizTalk Server 2000 verfügt über ein Gateway, das Geschäftsdokumente zwischen Ihrem Unternehmen und den Partnerunternehmen (Herstellern) überträgt. Wenn in Ihrem Unternehmen mit BizTalk Server gearbeitet wird, können Sie Kataloge, Aufträge, Dokumente und andere in elektronischer Form vorliegende Formulare mit Ihren Geschäftspartnern austauschen. BizTalk Server verwaltet die Konvertierung und Verschlüsselung von Daten, digitale Signaturen und die Dokumentüberwachung für die verschiedensten Übertragungsmechanismen.

Sie können BizTalk Server und Commerce Server gemeinsam einsetzen, um Aufträge zu verarbeiten, die in Ihrer Commerce Server-Website erteilt wurden. Angenommen, Sie vertreiben Computerhardware in Ihrer Site. Die Hardware wird teilweise in ihrem Unternehmen produziert, die übrigen Teile erhalten Sie von Handelspartnern. Mit BizTalk Server können Sie mit jedem Handelspartner, der Hardware zuliefert, die in Ihrer Website vertrieben wird, eine separate Vereinbarung treffen. Wenn ein Benutzer in Ihrer Website einen Auftrag für ein Produkt erteilt, das Sie von einem Handelspartner beziehen, wird dieser Auftrag von Commerce Server verarbeitet und an BizTalk Server weitergeleitet. Anschließend wird der Auftrag von BizTalk Server an den entsprechenden Handelspartner weitergegeben, damit der Auftrag ausgeführt werden kann.

Kataloge für mehrere Hersteller

Hersteller-ID

Verwenden von BizTalk Server zum Austauschen von Katalogen

Senden von Aufträgen an BizTalk Server

Verarbeiten von Auftragseingängen

Kataloge für mehrere Hersteller

Bevor Sie mit BizTalk Server Aufträge an Ihre Handelspartner übertragen können, müssen Sie zunächst die Kataloge der Handelspartner ordnen, deren Produkte in Ihrer Website angezeigt werden. Jeder Handelspartner kann Ihnen einen oder mehrere Produktkataloge zur Verfügung stellen. Je nachdem, wie Sie Ihre Site einrichten, können die Kataloge als einzelner Katalog oder als mehrere Kataloge in Ihrer Website präsentiert werden. Die Pflege mehrerer Kataloge ist beispielsweise hilfreich, wenn Sie mit dem Angebot verschiedener Kataloginhalte unterschiedliche Zielgruppen erreichen möchten, wie beispielsweise die oberste Geschäftsführungsebene auf der einen und Hobbyisten auf der anderen Seite.

Sie erhalten die Kataloge der Hersteller per E-Mail oder über BizTalk Server, anschließend importieren Sie diese mithilfe des Moduls "Katalog-Editor" in Commerce Server Business Desk in die Commerce Server-Katalogdatenbank. Informationen zum Importieren von Katalogen finden Sie unter Importieren von Katalogen.

Hersteller-ID

Wenn Sie einen Vertrag mit einem Hersteller abschließen und einrichten, ist die Hersteller-ID automatisch in Commerce Server verfügbar. Bei der Hersteller-ID handelt es sich um den Organisationsnamen des Herstellers, der beim Erstellen einer Zielorganisation auf dem Quellserver festgelegt wird. Weitere Informationen finden Sie unter Erstellen von Quell- und Zielorganisationen auf dem Quellserver.

Die Hersteller-ID wird von Commerce Server in Business Desk angezeigt. Es werden diejenigen Handelspartner (Organisationen) aufgeführt, die den gleichen Dokumententyp wie Ihre Organisation unterstützen, und somit über ein kompatibles Dokumentenrouting verfügen. In diesem Fall kann Business Desk zur Verknüpfung von Hersteller-ID und Katalog verwendet werden.

Dabei können mehrere Kataloge mit dem entsprechenden Hersteller verknüpft werden. Ein Hersteller kann auch auf Produktebene bestimmt werden, dann muss die Datei _additem.asp ebenfalls angepasst werden, sofern Sie bei der Entwicklung mit der Lösungssite für Einzelhandel arbeiten.

Wenn ein Hersteller als Standard eingerichtet wird, wird die eigene Site von Commerce Server als Hersteller eingestuft. Anweisungen zum Hinzufügen der Hersteller-ID zu einem Katalog finden Sie unter Einrichten von Katalogen für BizTalk Server.

Anmerkung

  • Bestellt ein Benutzer ein Produkt Ihrer Website, muss dieses Produkt im Katalog der Zielorganisation vorhanden sein. Ist dies nicht der Fall, kann BizTalk Server den Auftrag nicht auf dem Zielserver verarbeiten. Das Ereignisprotokoll des Zielservers enthält dann eine entsprechende Fehlermeldung.

Verwenden von BizTalk Server zum Austauschen von Katalogen

mithilfe von BizTalk Server haben Sie die Möglichkeit, die von Commerce Server verwendeten Kataloge mit Ihren Handelspartnern auszutauschen. Nachdem der Katalog in ein XML-Dokument (Extensible Markup Language) konvertiert wurde, wird die entsprechende XML-Katalogdatei von BizTalk Server in einem gemeinsamen Ordner auf dem Zielcomputer gespeichert, auf dem auch Commerce Server installiert ist. Ist der Zielcomputer Teil eines lokalen Netzwerks (LAN), ist die Installation von BizTalk Server auf dem Zielcomputer nicht erforderlich. Falls Sie den Katalog mithilfe von HTTP übertragen möchten, muss BizTalk Server auf dem Zielcomputer installiert sein.

Nachdem der XML-Katalog auf dem Zielcomputer gespeichert wurde, importieren Sie den Katalog mithilfe von Business Desk aus dem gemeinsamen Ordner des Zielcomputers und veröffentlichen den Katalog anschließend in Ihrer Website. Sie können den neu importierten Katalog gegebenenfalls mit Katalog-Editor in Business Desk bearbeiten und entsprechende Änderungen vornehmen. Informationen zum Importieren von Katalogen finden Sie unter Importieren von Katalogen.

Sie können BizTalk Server so einrichten, dass ein eingehender Katalog automatisch in Commerce Server integriert wird.

In der folgenden Abbildung wird die Verarbeitung einer XML-Katalogdatei dargestellt.

Bearbeitung von Katalogen mit BizTalk Server
Legt das XML-Dokument in einem freigegebenen Ordner ab
Commerce Server-Site
BizTalk Server
Empfängt das XML-Dokument
Veröffentlichen in der Website
Commerce Server-Datenbank für Kataloge
Importieren der XML-Katalogdatei mithilfe von Business Desk
XML-Dokument vom Hersteller

Senden von Aufträgen an BizTalk Server

In der folgenden Abbildung wird die Verarbeitung eines Auftrags in Commerce Server und die anschließende Übertragung an BizTalk Server dargestellt.

Bestellverarbeitung in Commerce Server und Weitergabe an BizTalk Server
Commerce Server-Daten-
bank für Bestellungen
Hersteller-
bestellformular
Benutzer erteilt den Auftrag und checkt aus
Herstellernamen hinzufügen
Business Desk
Website
Abschlusspipeline
BizTalk Server sendet XML-Dokument an Hersteller
XMLTransforms konvertiert Bestellformular mithilfe des Schemas in XML-Dokument
Bestellungsteiler erstellt eine Liste der Hersteller-IDs und hängt diese an das Bestellformular an.
Commerce Server-Datenbank für Kataloge

Zur Erstellung und Verarbeitung eines Auftrags führt der Benutzer die folgenden Schritte aus:

  1. Der Benutzer legt Artikel in seinen Warenkorb.

    Commerce Server recherchiert in der Commerce Server-Datenbank den Namen des Herstellers für die ausgewählten Produkte.

  2. Der Benutzer fährt bis zum Auftragsabschluss fort, und die Commerce Server-Auftragsabschlusspipeline verarbeitet den Auftrag dann.

    Der Bestellungsteiler legt für jeden Einzelposten (Produkt) des Auftrags fest, ob das Produkt von Ihrem Unternehmen oder von einem Vertragspartner geliefert wird. Darüber hinaus erstellt die Komponente eine Liste der Hersteller und fügt diese dem Auftragsformular bei.

  3. Commerce Server legt fest, ob die Einstellung für die Eigenschaft BizTalk-Optionen (in der Ressource für die Anwendungsstandardkonfiguration) auf den Wert 1 gesetzt wird.

    Wird für die Eigenschaft BizTalk-Optionen die Einstellung mit dem Wert 1 vorgenommen, bündelt Commerce Server anhand der Herstellerliste die Einzelposten für den einzelnen Hersteller.

  4. Commerce Server konvertiert das Auftragsformular in eines oder mehrere XML-Dokumente, die dann an BizTalk Server übertragen werden.

    Beim Konvertieren des Auftragsformulars (unter Verwendung des XMLTransforms-Prozesses) wird ein XML-Dokument für jeden Hersteller erstellt.

    Zur Auftragskonvertierung verwendet Commerce Server das mit der Site verknüpfte Schema POSchema.xml. Wenn Sie dem Auftragsformular eines oder mehrere Felder hinzufügen, werden die neuen Felder des XML-Dokuments, das an BizTalk Server übertragen wird, standardmäßig nicht eingeschlossen. Um die neuen Felder dem Auftragsformular hinzuzufügen, muss POSchema.xml, eine Datei im XDR-Format (auf XML-Daten reduziertes Dateiformat), bearbeitet und die XML-Datei mit dem Dokument in BizTalk Server erneut verknüpft werden. Darüber hinaus muss auch die XML-Datei an BizTalk Server übertragen und erneut verknüpft werden. Sie können POSchema.xml mithilfe von BizTalk-Editor bearbeiten.

  5. Commerce Server überträgt die XML-Dokumente an BizTalk Server.

Verarbeiten von Auftragseingängen

Für die Übermittlung von Aufträgen an BizTalk Server stehen je nach Bedarf verschiedene Möglichkeiten zur Verfügung. Aufträge können anhand von Zuordnung oder anhand einer Vielzahl von Protokollen übermittelt werden. Alternativ kann Ihr Handelspartner eine Commerce Server-Site oder eine andere Site erstellen, um die übermittelten Aufträge zu empfangen.

Wenn Sie sich für die Möglichkeit entscheiden, eine Commerce Server-Site beim Handelspartner für den Empfang von Aufträgen einzurichten, können Sie die Site unter Verwendung der Datei _recvpo.asp einrichten, mit deren Hilfe XML-Dokumente von BizTalk Server empfangen werden können. Empfängt _recvpo.asp ein XML-Dokument, wird der XMLTransforms-Prozess gestartet und das XML-Dokument in ein Auftragsformular zurückkonvertiert. Commerce Server führt eine Pipeline für das Auftragsformular aus. Nach der Verarbeitung des Auftrags in der Pipeline wird der Auftrag in der Commerce Server-Datenbank gespeichert. Mit _recvpo.asp können Sie Commerce Server-Objekte für die Umleitung des XML-Dokuments auf Ihr Auftragsverwaltungssystem verwenden.

In der folgenden Abbildung wird die Versendung eines XML-Dokuments von BizTalk Server und die Verarbeitung über die Commerce Server-Site des Herstellers dargestellt.

Weitergabe eines XML-Dokuments von BizTalk Server und Verarbeitung durch Commerce Server
Commerce Server-Site des Herstellers
Order Processing Pipeline
Verarbeitet die Bestellung
Wandelt das XML-Dokument in
ein Bestellformular um
XMLTransforms
_recvpo.asp
BizTalk Server des Herstellers
ReceiveStandard.asp
XML-Dokument von Ihrem
BizTalk Server

Sie können Commerce Server ebenfalls für die Verarbeitung von Auftragsformularen und deren Versendung an eine Warteschlange einrichten und anschließend entweder Ihre BizTalk Server-Anwendung oder die BizTalk Server-Anwendung des Herstellers für die Abfrage der Warteschlange einrichten. Wenn Sie sich für diese Konfiguration entscheiden, können Sie BizTalk Server und Commerce Server auf verschiedenen Computern installieren. In der folgenden Abbildung wird diese Konfiguration dargestellt.

Verwendungsmöglichkeiten von BizTalk Server und Message Queuing
-Warteschl. f. unzustellb. Nachr.
-Empfängerwarte-
schlange
Message
Queuing
-Sendewarteschlange
Bestellformular
Abrufwarteschlange
Commerce
Server
BizTalk
Server
Schreibt Antwort in Empfängerwarteschlange oder Warteschlange für unzustellbare Nachrichten

Siehe auch

Integrating with BizTalk Server (englisches Thema)

Programmierreferenz

Splitter (englisches Thema)


Konfigurieren von Commerce Server für die Zusammenarbeit mit BizTalk Server

Mithilfe der Ressource für Anwendungsstandardkonfiguration stellen Sie die Eigenschaften ein, die Commerce Server und BizTalk Server eine Zusammenarbeit ermöglichen.

So konfigurieren Sie Commerce Server für die Zusammenarbeit mit BizTalk Server

  1. Klicken Sie auf Start, zeigen Sie auf Programme, dann auf Microsoft Commerce Server, und klicken Sie auf Commerce Server-Manager.

  2. Erweitern Sie nacheinander Commerce Server-Manager, E-Commerce-Sites und dann die Site, die Sie mit BizTalk Server verwenden möchten (z. B. Retail), und erweitern Sie abschließend Siteressourcen.

  3. Klicken Sie im linken Fensterbereich mit der rechten Maustaste auf Anwendungsstandardkonfiguration, und klicken Sie dann auf Eigenschaften.

  4. Nehmen Sie auf der Registerkarte Eigenschaften im Dialogfeld Eigenschaften von Anwendungsstandardkonfiguration die folgenden Einstellungen vor:
    Option | Aktion
    BizTalk-Katalogdokumenttyp | Geben Sie den Dokumentdefinitionsnamen ein, den BizTalk Server für Kataloge benötigt (z. B. Katalogübergabedok).
    BizTalk-Optionen | Geben Sie die Zahl 1 ein, um die Zusammenarbeit mit BizTalk Server für den Dokumentenaustausch zu aktivieren; geben Sie die Zahl 0 ein, um die Zusammenarbeit zu deaktivieren.
    BizTalk-Auftragsdokumenttyp | Geben Sie den Dokumentdefinitionsnamen ein, den BizTalk Server für Aufträge benötigt (z. B. Auftrag).
    BizTalk-Quellorganisationsqualifizierer | Geben Sie den Aliasqualifizierer dieser Site in BizTalk Server ein (z. B. EigeneFirma).
    Wert des BizTalk-Quellorganisationsqualifizierer | Geben Sie den Aliaswert dieser Site in BizTalk Server ein (z. B. Absender).
    BizTalk-Sendetyp | Geben Sie die Zahl 1 ein, um Dokumente asynchron an BizTalk Server zu senden.

  5. Wenn BizTalk Server und Commerce Server nicht auf demselben Computer installiert sind, klicken Sie auf der Registerkarte Verbindungszeichenfolgen auf Ändern. Legen Sie im Dialogfeld Datenverknüpfungseigenschaften die Verbindungszeichenfolge für BizTalk Server fest.

  6. Klicken Sie auf OK.

Anmerkung

  • Nach dem Ändern eines Eigenschaftswertes in Commerce Server-Manager müssen Sie die Anwendung aus dem Arbeitsspeicher auf jedem Webserver entfernen, damit die Änderung wirksam werden kann. Anweisungen finden Sie unter Entfernen einer Anwendung aus dem Arbeitsspeicher.

Siehe auch

Einrichten des Quellservers

Einrichten des Zielservers

Einrichten von Katalogen für BizTalk Server


Einrichten des Quellservers

Um eine Konfiguration für die Mitteilungsübermittlung zwischen zwei Organisationen einzurichten, müssen Sie Quellserver und Zielserver einrichten. Sie können beispielsweise ihren BizTalk-Server als Quellserver und den BizTalk-Server des Herstellers als Zielserver einrichten.

Führen Sie die in diesem Abschnitt beschriebenen Schritte durch, um den Austausch von Aufträgen auf dem Quellserver einzurichten. Anweisungen zum Einrichten des Zielservers finden Sie unter Einrichten des Zielservers.

Dieser Abschnitt beinhaltet folgende Themen:

  • Beispiel: Konfigurieren des Quellservers für den Austausch von Katalogen

  • Beispiel: Konfigurieren des Quellservers für den Austausch von Aufträgen

  • Kopieren und Importieren von erforderlichen Dateien für den Quellserver

  • Erstellen von Quell- und Zielorganisationen auf dem Quellserver

  • Erstellen von Dokumentdefinitionen auf dem Quellserver

  • Erstellen von Umschlägen auf dem Quellserver

  • Erstellen eines Messagingports auf dem Quellserver

  • Erstellen eines Kanals auf dem Quellserver


Beispiel: Konfigurieren des Quellservers für den Austausch von Katalogen

Die folgenden Tabellen enthalten Beispielwerte der Eigenschaften von Anwendungsstandardkonfiguration und BizTalk Server, die für die Konfiguration des Quellservers zum Austausch von Katalogen erforderlich sind.

Beispielwerte für die Eigenschaften der Anwendungsstandardkonfiguration

Eigenschaft | Wert
BizTalk-Katalogdokumenttyp | Katalogübergabedok
BizTalk-Optionen | 1
BizTalk-Quellorganisationsqualifizierer | EigenerFirmenkatalog
Wert des BizTalk-Quellorganisationsqualifizierer | Katalogabsender
BizTalk-Sendetyp | 1

Beispielwerte für die Eigenschaften einer Quellorganisation

Eigenschaft | Wert
Organisationsname | EigeneOrganisation
Kundenname | EigenerFirmenkatalog
Qualifizierer | EigenerFirmenkatalog
Wert | Katalogabsender
Anwendungsname | Kataloganwendung

Beispielwerte für die Eigenschaften einer Zielorganisation

Eigenschaft | Wert
Organisationsname | Katalogziel
Kundenname | EigenerFirmenkatalog
Qualifizierer | EigenerFirmenkatalog
Wert | Katalogempfänger

Beispielwerte für Dokumenteigenschaften

Eigenschaft | Wert
Dokumentname | Katalogübergabedok
Dokumentspezifikation | .../Microsoft/CatalogXMLSchema.xml

Beispielwerte für das Zuweisen eines Messagingports zu einer Organisation

Eigenschaft | Wert
Anschlussname | CatalogPortToDestination
Dateiadresse | Laufwerk: <Zielservername>\<gemeinsamer Ordner>\CatalogSend.xml Setzen Sie für <Zielservername> einen gültigen Zielserver ein. Setzen Sie für <gemeinsamer Ordner> einen gültigen gemeinsamen Ordner ein.

Beispielwerte für das Zuweisen eines Kanals aus einer Anwendung

Eigenschaft | Wert
Name | CatalogChannelToSource
Quellanwendungsname | Kataloganwendung
Organisationskennzeichen | BizTalkKatalog/Katalogabsender (Standard)
Eingehendes Dokument | Katalogübergabedok
Ausgehendes Dokument | Katalogübergabedok
Erweiterte Eigenschaften | Klicken Sie auf Erweitert und dann auf Eigenschaften. Richten Sie im Dialogfeld Erweiterte Eigenschaften den voll gekennzeichneten Benutzer und das Kennwort ein, und wählen Sie dann den zu überschreibenden Aktionstyp aus.

Siehe auch

Konfigurieren von Commerce Server für die Zusammenarbeit mit BizTalk Server

Einrichten des Quellservers

Einrichten des Zielservers

Einrichten von Katalogen für BizTalk Server


Beispiel: Konfigurieren des Quellservers für den Austausch von Aufträgen

Die folgenden Tabellen enthalten Beispielwerte für die Anwendungsstandardkonfiguration und BizTalk Server, die für die Konfiguration des Quellservers zum Austausch von Aufträgen erforderlich sind.

Beispielwerte für die Eigenschaften der Anwendungsstandardkonfiguration

Eigenschaft | Wert
BizTalk-Optionen | 1
BizTalk-Auftragsdokumenttyp | Auftrag
BizTalk-Quellorganisationsqualifizierer | EigeneFirma
Wert des BizTalk-Quellorganisationsqualifizierer | Absender
BizTalk-Sendetyp | 1

Beispielwerte für die Eigenschaften einer Quellorganisation

Eigenschaft | Wert
Organisationsname | EigeneOrganisation
Kundenname | EigeneFirma
Qualifizierer | EigeneFirma
Wert | Absender
Anwendungsname | Auftragsanwendung

Beispielwerte für die Eigenschaften einer Zielorganisation

Eigenschaft | Wert
Organisationsname | Ziel
Kundenname | EigeneFirma
Qualifizierer | EigeneFirma
Wert | Empfänger

Beispielwerte für Dokumenteigenschaften

Eigenschaft | Wert
Dokumentname | Auftrag
Dokumentspezifikation | .../Microsoft/POSchema.xml

Beispielwerte für Umschlagseigenschaften

Eigenschaft | Wert
Umschlagsname | Auftragsumschlag

Beispielwerte für das Zuweisen eines Messagingports zu einer Organisation

Eigenschaft | Wert
Anschlussname | OutPortToDestination
HTTP-Adresse | http://<Zielservername>/Retail/ReceiveStandard.asp Setzen Sie für <Zielservername> einen gültigen Zielserver ein.
Umschlag | Auftragsumschlag
Umschlagsbezeichner | EigeneFirma/Empfänger (Standard)

Beispielwerte für das Zuweisen eines Kanals aus einer Anwendung

Eigenschaft | Wert
Name | OutChannelToDestination
Quellanwendungsname | Auftragsanwendung
Organisationskennzeichen | BizTalk/Absender (Standard)
Eingehendes Dokument | Auftrag
Ausgehendes Dokument | Auftrag

Siehe auch

Konfigurieren von Commerce Server für die Zusammenarbeit mit BizTalk Server

Einrichten des Quellservers

Einrichten des Zielservers

Beispiel: Konfigurieren des Quellservers für den Austausch von Katalogen

Beispiel: Konfigurieren des Zielservers für den Austausch von Aufträgen

Einrichten von Katalogen für BizTalk Server


Kopieren und Importieren von erforderlichen Dateien für den Quellserver

Sowohl Quell- als auch Zielserver müssen die gleichen XML-Dateien POSchema.xml und CatalogXMLSchema.xml verwenden.

Anmerkung

  • Darüber hinaus müssen sie über die gleichen Produktkataloge verfügen. Andernfalls schlägt die Übertragung des Auftrags fehl. Informationen über das Einrichten der Kataloge finden Sie unter Einrichten von Katalogen für BizTalk Server.

So kopieren Sie POSchema.xml auf den Quellserver

So importieren Sie CatalogXMLSchema.xml in BizTalk-Editor

So kopieren Sie "POSchema.xml" auf den Quellserver

  • Kopieren Sie die Datei POSchema.xml, die sich in dem Pfad <Laufwerk:>\inetpub\wwwroot\<Sitename> befindet, in den Pfad <Laufwerk:>\Programme\Microsoft BizTalk Server\BizTalkServerRepository\DocSpecs\Microsoft.

So importieren Sie "CatalogXMLSchema.xml" in BizTalk-Editor

  1. Öffnen Sie BizTalk-Editor. Klicken Sie auf Start, zeigen Sie nacheinander auf Programme und Microsoft BizTalk Server 2000, und klicken Sie dann auf BizTalk-Editor.

  2. Klicken Sie in BizTalk-Editor im Menü Extras auf Importieren.

  3. Wählen Sie XDR-Schema aus, und klicken Sie anschließend auf OK.

  4. Navigieren Sie im Dialogfeld XDR-Schema exportieren im Feld Suchen in zum Pfad <Laufwerk>:\Programme\Microsoft Commerce Server 2000, wählen Sie CatalogXMLSchema.xml aus, klicken Sie dann auf Öffnen.

  5. Klicken Sie im Menü Datei auf In WebDAV speichern.

  6. Nehmen Sie im Dialogfeld In WebDAV speichern im Feld Dateiname die Eingabe CatalogXMLSchema.xml vor, und klicken Sie dann auf Speichern.

  7. Beenden Sie BizTalk-Editor.

Die Datei CatalogXMLSchema.xml wird in BizTalk-Editor importiert und im WebDAV-Repository (Distributed Authoring and Versioning) gespeichert. Bei der Datei handelt es sich um eine Spezifikation, die nun über die entsprechende Kopfzeileninformation und Struktur für den Katalogaustausch verfügt.

Siehe auch

Kopieren von erforderlichen Dateien für den Zielserver

Einrichten von Katalogen für BizTalk Server


Erstellen von Quell- und Zielorganisationen auf dem Quellserver

Bei dem Quell-BizTalk-Server handelt es sich um den Lieferanten. Eine Organisation kann als Quelle oder Ziel in einem Messagingport, einer Verteilerliste oder einem Kanal dienen. Sie repräsentiert einen externen Handelspartner, das eigene Unternehmen oder eine Geschäftseinheit innerhalb der Unternehmensstruktur eines Handelspartners oder des eigenen Unternehmens. Jede Organisation verfügt über eindeutige Bezeichner, mit denen sie für BizTalk Server 2000 und andere Handelspartner identifizierbar ist.

Auf dem Quellserver muss sowohl eine Quell- als auch eine Zielorganisation eingerichtet werden. Bei einer Quellorganisation handelt es sich um die Organisation eines Handelspartners, die in einem Kanal als Dokumentenquelle festgelegt wurde. Bei einer Zielorganisation handelt es sich um die Organisation eines Handelspartners, die in einem Messagingport als Dokumentenziel festgelegt wurde.

So erstellen Sie eine Quellorganisation auf dem Quellserver

So erstellen Sie eine Zielorganisation auf dem Quellserver

So erstellen Sie eine Quellorganisation auf dem Quellserver

  1. Klicken Sie auf dem als Quellserver eingesetzten BizTalk-Server auf Start, zeigen Sie nacheinander auf Programme und auf Microsoft BizTalk Server 2000, und klicken Sie dann auf BizTalk-Messaging-Manager.

  2. Aktivieren Sie im BizTalk-Messaging-Manager im Dialogfeld Konfigurationsoptionen das Kontrollkästchen Dieses Dialogfeld nicht mehr anzeigen, und klicken Sie auf OK. Klicken Sie auf Abbrechen, um das Dialogfeld zu schließen.

  3. Klicken Sie im linken Ausschnitt von BizTalk-Messaging-Manager im Bereich Nach anderen Elementen suchen auf Organisationen, klicken Sie dann auf Jetzt suchen, um die Liste der verfügbaren Organisationen anzuzeigen.

  4. Doppelklicken Sie in der Liste der verfügbaren Organisationen auf Eigene Organisation.

  5. Klicken Sie im Dialogfeld Organisationseigenschaften auf der Registerkarte Bezeichner auf Hinzufügen.

  6. Überprüfen Sie im Dialogfeld Neuer Bezeichner, ob die Option Benutzerdefiniert aktiviert ist, und geben Sie dann EigeneFirma ein.

  7. Geben Sie im Feld Qualifizierer die Zeichenfolge für EigeneFirma ein.

  8. Geben Sie im Feld Wert den Namen des Absenders (z. B. Absender) ein.

Dabei muss es sich um den Wert handeln, der in Commerce Server in das Dialogfeld Eigenschaften von Anwendungsstandardkonfiguration im Feld Wert des BizTalk-Quellorganisationsqualifizierer eingegeben wurde. Stimmen die Werte nicht überein, schlägt die Übertragung des Auftrags fehl, ohne dass eine Fehlermeldung angezeigt wird.

Informationen zum Einrichten der Eigenschaften für die Anwendungsstandardkonfiguration erhalten Sie unter Konfigurieren von Commerce Server für die Zusammenarbeit mit BizTalk Server.

  9. Aktivieren Sie das Kontrollkästchen Als Standard festlegen, um den Absender als Standardorganisation festzulegen (z. B. Absender), und klicken Sie anschließend auf OK.

Die Standardorganisation muss vor dem Erstellen des Messagingports festgelegt werden. Sie kann entweder als Quell- oder als Zielorganisation für einen neuen Messagingport dienen. Sie haben die Möglichkeit, jederzeit eine andere Standardorganisation zu bestimmen und können so Messagingports erstellen, die eine neue Standardorganisation verwenden.

  10. Klicken Sie auf der Registerkarte Anwendungen auf Hinzufügen, geben Sie im Dialogfeld Neue Anwendung den Anwendungsnamen (z. B. Auftragsanwendung für Aufträge und Katalogübergabedok für Katalogübergaben) ein, und klicken Sie dann auf OK.

  11. Klicken Sie im Dialogfeld Neue Anwendung auf OK.

  12. Klicken Sie im Dialogfeld Organisationseigenschaften auf OK.

Die Quellorganisation und der Absender auf dem Quell-BizTalk-Server werden erstellt. Bei der Quellorganisation handelt es sich beispielsweise um Eigene Organisation und beim Absender um Absender. Der Absender wurde als Standardorganisation festgelegt.

So erstellen Sie eine Zielorganisation auf dem Quellserver

  1. Zeigen Sie im BizTalk-Messaging-Manager im Menü Datei auf Neu, und klicken Sie dann auf Organisation.

  2. Geben Sie im Dialogfeld Neue Organisation auf der Registerkarte Allgemein den Namen der Zielorganisation (z. B. ZielOrg) ein.

Der hier eingegebene Name wird bei der Verknüpfung von Hersteller und Katalog in Commerce Server Business Desk angezeigt. Der Name wird ebenfalls in einer Liste mit verfügbaren Herstellern aufgeführt, aus der Sie den gewünschten Hersteller auswählen können.

  3. Geben Sie alle notwendigen Kommentare zur Zielorganisation im Feld Kommentare ein.

  4. Klicken Sie auf der Registerkarte Bezeichner auf Hinzufügen.

  5. Überprüfen Sie im Dialogfeld Neuer Bezeichner, ob die Option Benutzerdefiniert aktiviert ist, und geben Sie dann EigeneFirma ein.

  6. Geben Sie im Feld Qualifizierer die Zeichenfolge für EigeneFirma ein.

  7. Geben Sie im Feld Wert den Namen des Empfängers (z. B. Empfänger) ein, und klicken Sie dann auf OK.

  8. Klicken Sie im Dialogfeld Neue Organisation auf OK.

Auf dem Quell-BizTalk-Server werden die Zielorganisation und der Empfänger erstellt. Die Zielorganisation lautet beispielsweise Ziel und der Empfänger Empfänger.

Siehe auch

Konfigurieren von Commerce Server für die Zusammenarbeit mit BizTalk Server

Erstellen von Dokumentdefinitionen auf dem Quellserver


Erstellen von Dokumentdefinitionen auf dem Quellserver

Bei einer Dokumentdefinition handelt es sich um ein Geschäftsdokument in einem Messagingport, einem Kanal oder einer Verteilerliste. Die Dokumentdefinition weist auf die Spezifikation hin, die das Dokument definiert. Eine Dokumentdefinition kann mit einer beliebigen Zahl von Messagingports, Kanälen und Verteilerlisten verknüpft werden.

So erstellen Sie eine Dokumentdefinition mit einer verknüpften XML-Datei

  1. Klicken Sie auf dem als Quellserver eingesetzten BizTalk-Server auf Start, zeigen Sie nacheinander auf Programme und auf Microsoft BizTalk Server 2000, und klicken Sie dann auf BizTalk-Messaging-Manager.

  2. Zeigen Sie im BizTalk-Messaging-Manager im Menü Datei auf Neu, und klicken Sie dann auf Dokumentdefinition.

  3. Geben Sie im Dialogfeld Neue Dokumentdefinition im Feld Dokumentdefinitionsname den Namen für die Dokumentdefinition ein (z. B. Auftrag oder Katalogübergabedok).

Der Dokumentdefinitionsname muss mit dem Namen übereinstimmen, der in Commerce Server im Dialogfeld Eigenschaften von Anwendungsstandardkonfiguration im Feld BizTalk-Auftragsdokumenttyp eingegebenen wurde. Stimmen die Werte nicht überein, schlägt die Übertragung des Auftrags fehl.

Informationen zum Einrichten der Eigenschaften für die Anwendungsstandardkonfiguration erhalten Sie unter Konfigurieren von Commerce Server für die Zusammenarbeit mit BizTalk Server.

  4. Aktivieren Sie das Kontrollkästchen Dokumentspezifikation, und klicken Sie anschließend auf Durchsuchen.

  5. Doppelklicken Sie im Dialogfeld Dokumentspezifikation aus dem WebDAV-Repository auswählen auf den Ordner Microsoft.

  6. Wählen Sie die XML-Datei (z. B. POSchema.xml) aus, und klicken Sie dann auf Öffnen.

  7. Klicken Sie im Dialogfeld Neue Dokumentdefinition auf OK.

Der Auftrag wird mit einer verknüpften benutzerdefinierten Datei im XML-Format erstellt.

Siehe auch

Konfigurieren von Commerce Server für die Zusammenarbeit mit BizTalk Server

Erstellen von Umschlägen auf dem Quellserver


Erstellen von Umschlägen auf dem Quellserver

Ein Umschlag enthält eine Kopfzeile und gegebenenfalls eine Fußzeile, mit denen elektronische Geschäftsdaten für die Übertragung an eine Zielorganisation vorangestellt bzw. eingekapselt werden. BizTalk Server 2000 verwendet die in einem Messagingport festgelegten Umschlagseigenschaften, um das Umschlagsformat zur Vorbereitung von Dokumenten für die Datenübertragung zu bestimmen.

So erstellen Sie einen Umschlag für den Quellserver

  1. Klicken Sie auf dem als Quellserver eingesetzten BizTalk-Server auf Start, zeigen Sie nacheinander auf Programme und auf Microsoft BizTalk Server 2000, und klicken Sie dann auf BizTalk-Messaging-Manager.

  2. Zeigen Sie im BizTalk-Messaging-Manager im Menü Datei auf Neu, und klicken Sie dann auf Umschlag.

  3. Geben Sie im Dialogfeld Neuer Umschlag im Feld Umschlagsname den Namen des Umschlags ein (z. B. Auftragsumschlag), und klicken Sie dann auf OK.

Wenn Sie den erstellten Umschlag nicht mit einer benutzerdefinierten XML-Datei (Extensible Markup Language) verknüpfen, erfolgt die Zuweisung der Standard-XML-Datei.

Siehe auch

Konfigurieren von Commerce Server für die Zusammenarbeit mit BizTalk Server

Erstellen eines Messagingports auf dem Quellserver


Erstellen eines Messagingports auf dem Quellserver

Als Messagingport wird ein Regelsatz bezeichnet, den Sie mithilfe von BizTalk-Messaging-Manager konfigurieren, und mit dem Sie die Kuvertierung, die Sicherung und die Übertragung von Dokumenten an eine bestimmte Zielorganisation steuern können. Die Dokumente, die ein Port überträgt, stammen aus der Quelle, die in einem verknüpften Kanal festgelegt wurde. Bei einem Kanal handelt es sich um einen Satz von Eigenschaften, mit dem Sie BizTalk Server die Regeln für die Verarbeitung eines eingegangenen Dokuments mitteilen.

Im Messagingport bestimmen Sie die Zielorganisation oder die Zielanwendung für die Dokumente.

So erstellen Sie einen Messagingport auf dem Quellserver

  1. Klicken Sie auf dem als Quellserver eingesetzten BizTalk-Server auf Start, zeigen Sie nacheinander auf Programme und auf Microsoft BizTalk Server 2000, und klicken Sie dann auf BizTalk-Messaging-Manager.

  2. Zeigen Sie im BizTalk-Messaging-Manager im Menü Datei auf Neu, danach auf Messagingport, und klicken Sie dann auf Zu einer Organisation.

  3. Geben Sie im Assistenten zum Hinzufügen eines neuen Messagingports im Fenster Allgemeine Informationen im Feld Name den Namen des Ports (z. B. OutPortToDestination) ein, und klicken Sie dann auf Weiter.

  4. Wählen Sie im Fenster Zielorganisation die Option Organisation aus, und klicken Sie dann rechts neben dem Feld Name auf Durchsuchen.

  5. Wählen Sie im Dialogfeld Organisation auswählen eine Zielorganisation aus (z. B. DestinationOrg), und klicken Sie anschließend auf OK.

  6. Klicken Sie rechts neben dem Feld Adresse auf Durchsuchen.

  7. Wählen Sie im Dialogfeld Primärer Transport im Feld Transporttyp in der Dropdownliste HTTP aus.

  8. Geben Sie im Feld Adresse den Pfad http://<Zielservername>/<Sitename>/ReceiveStandard.asp ein, und klicken Sie dann auf OK.

Hierbei handelt es sich um den URL des Herstellers, an den die Aufträge weitergeleitet werden.

  9. Klicken Sie auf Weiter.

  10. Wählen Sie im Fenster Umschlagsinformationen im Feld Umschlagsinformationen in der Dropdownliste die Option Auftragsumschlag aus, und klicken Sie dann auf Weiter.

  11. Überprüfen Sie im Fenster Sicherheitsinformationen, ob das Kontrollkästchen Kanal für diesen Messagingport erstellen aktiviert ist.

  12. Wählen Sie im Feld Kanaltyp in der Dropdownliste die Option Von einer Anwendung aus, und klicken Sie dann auf Fertig stellen.

  13. Klicken Sie im Fenster Allgemeine Informationen auf Abbrechen.

Der Messagingport zwischen Ihrer Quellorganisation und der Zielorganisation wird erstellt.

Siehe auch

Erstellen eines Kanals auf dem Quellserver


Erstellen eines Kanals auf dem Quellserver

Bei einem Kanal handelt es sich um einen Satz von Eigenschaften, mit dem Sie BizTalk Server 2000 die Regeln für die Verarbeitung eines eingegangenen Dokuments mitteilen. Nach der Verarbeitung des Dokuments wird dieses zur Übertragung an das angegebene Ziel an den zugehörigen Messagingport oder die zugehörige Verteilerliste weitergeleitet. Sie können einen oder mehrere Kanäle für einen Messagingport oder eine Verteilerliste erstellen.

So erstellen Sie einen Kanal auf dem Quellserver

  1. Klicken Sie auf dem als Quellserver eingesetzten BizTalk-Server auf Start, zeigen Sie nacheinander auf Programme und auf Microsoft BizTalk Server 2000, und klicken Sie dann auf BizTalk-Messaging-Manager.

  2. Klicken Sie im linken Fensterausschnitt des BizTalk-Messaging-Managers im Bereich Nach anderen Elementen suchen auf die Verknüpfung Messagingports, und klicken Sie dann auf Jetzt suchen.

  3. Wählen Sie den Messagingport aus, mit dem der Kanal verknüpft wird (z. B. OutPortToDestination).

  4. Zeigen Sie im Menü Datei nacheinander auf Neu und auf Kanal, und klicken Sie dann auf Von einer Anwendung.

  5. Geben Sie im Assistenten zum Hinzufügen eines neuen Kanals im Fenster Allgemeine Informationen im Feld Name den Namen des Kanals (z. B. OutChannelToDestination) ein, und klicken Sie dann auf Weiter.

  6. Überprüfen Sie im Fenster Quellanwendung, ob die Option Anwendung ausgewählt ist.

  7. Wählen Sie in der Dropdownliste im Feld Name den Namen der Anwendung aus (z. B. Auftragsanwendung für einen Auftrag und Katalogübergabedok für eine Katalogübergabe).

  8. Überprüfen Sie im Feld Organisationskennzeichen, ob <Quellorganisation>/ <Bezeichnerwert> (Standard) als Bezeichner ausgewählt ist (z. B. EigeneFirma/Absender (Standard), und klicken Sie dann auf Weiter.

  9. Klicken Sie im Fenster Eingehendes Dokument auf der rechten Seite des Feldes Definitionsname des eingehenden Dokuments auf Durchsuchen.

  10. Wählen Sie im Dialogfeld Dokumentdefinition auswählen die Dokumentdefinition aus (beispielsweise Auftrag), und klicken Sie dann auf OK.

  11. Klicken Sie im Fenster Eingehendes Dokument auf Weiter.

  12. Klicken Sie im Fenster Ausgehendes Dokument auf der rechten Seite des Feldes Definitionsname des ausgehenden Dokuments auf Durchsuchen.

  13. Wählen Sie im Dialogfeld Dokumentdefinition auswählen die Dokumentdefinition aus (beispielsweise Auftrag), und klicken Sie dann auf OK.

  14. Klicken Sie im Fenster Ausgehendes Dokument auf Weiter.

  15. Klicken Sie im Fenster Dokumentprotokollierung auf Weiter.

  16. Klicken Sie im Fenster Erweiterte Konfiguration auf Erweitert.

  17. Klicken Sie im Dialogfeld Überschreiben von Standards für Messagingports auf Eigenschaften.

  18. Geben Sie im Dialogfeld Eigenschaften von BizTalk SendHTTPX im Feld Benutzername den voll qualifizierten Benutzer ein, z. B. REDMOND\<Benutzername>.

  19. Geben Sie im Feld Kennwort das Benutzerkennwort ein, und klicken Sie dann auf OK.

  20. Klicken Sie im Dialogfeld Überschreiben von Standards für Messagingports auf OK.

  21. Klicken Sie im Fenster Erweiterte Konfiguration auf Fertig stellen.

Für den Messagingport, den Sie unter So erstellen Sie einen Messagingport auf dem Quellserver erstellt haben, wird ein von der eigenen Organisation ausgehender Kanal erstellt.

Siehe auch

Einrichten des Zielservers


Einrichten des Zielservers

Um einen Messagingport zwischen zwei Organisationen einzurichten, müssen Sie den Quellserver und den Zielserver einrichten. Eine Möglichkeit besteht darin, Ihren BizTalk-Server als Quellserver und den BizTalk-Server des Herstellers als Zielserver einzurichten.

Beachten Sie die in diesem Abschnitt beschriebenen Schritte, um den Austausch von Aufträgen auf dem Zielserver einzurichten. Anweisungen zur Einrichtung des Quellservers erhalten Sie unter Einrichten des Quellservers.

Dieser Abschnitt beinhaltet folgende Themen:

  • Beispiel: Konfigurieren des Zielservers für den Austausch von Aufträgen

  • Kopieren von erforderlichen Dateien für den Zielserver

  • Erstellen von Dokumentdefinitionen auf dem Zielserver

  • Erstellen eines Messagingports auf dem Zielserver

  • Erstellen eines Kanals auf dem Zielserver


Beispiel: Konfigurieren des Zielservers für den Austausch von Aufträgen

Die folgenden Tabellen enthalten Beispielwerte für BizTalk Server, die für die Konfiguration des Zielservers zum Austausch von Aufträgen erforderlich sind.

Beispielwerte für die Eigenschaften einer Zielorganisation

Eigenschaft | Wert
Organisationsname | EigeneOrganisation
Kundenname | EigeneFirma
Qualifizierer | EigeneFirma
Bezeichnerwert | Empfänger
Anwendungsname | Auftragsanwendung

Beispielwerte für die Eigenschaften einer Quellorganisation

Eigenschaft | Wert
Organisationsname | Quelle
Kundenname | EigeneFirma
Qualifizierer | EigeneFirma
Bezeichnerwert | Absender

Beispielwerte für Dokumenteigenschaften

Eigenschaft | Wert
Dokumentname | Auftrag
Dokumentspezifikation | .../Microsoft/POSchema.xml

Beispielwerte für das Zuweisen eines Messagingport zu einer Anwendung

Eigenschaft | Wert
Anschlussname | InPortFromSource
Anwendungsname | Auftragsanwendung
HTTP-Adresse | http://<Zielservername>/Retail/_recvpo.asp Setzen Sie für <Zielservername> einen gültigen Zielserver ein.
Umschlag | Auftragsumschlag
Umschlagsbezeichner | EigeneFirma/Empfänger (Standard)

Beispielwerte für das Zuweisen eines Kanals von einer Organisation

Eigenschaft | Wert
Name | InChannelFromSource
Quellanwendungsname | Auftragsanwendung
Organisationskennzeichen | EigeneFirma/Absender (Standard)
Eingehendes Dokument | Auftrag
Ausgehednes Dokument | Auftrag

Siehe auch

Konfigurieren von Commerce Server für die Zusammenarbeit mit BizTalk Server

Einrichten des Quellservers

Einrichten des Zielservers

Einrichten von Katalogen für BizTalk Server

Beispiel: Konfigurieren des Quellservers für den Austausch von Katalogen


Kopieren von erforderlichen Dateien für den Zielserver

Sowohl Quell- als auch Zielserver müssen über die dieselbe XML-Datei POSchema.xml verfügen.

Anmerkung

  • Darüber hinaus müssen sie über die gleichen Produktkataloge verfügen. Andernfalls schlägt die Übertragung des Auftrags fehl. Informationen zum Einrichten der Kataloge finden Sie unter Einrichten von Katalogen für BizTalk Server.

So kopieren Sie die Datei "ReceiveStandard.asp" auf den Zielserver

  • Kopieren Sie die Datei ReceiveStandard.asp, die sich im Pfad <Laufwerk:>\Programme\Microsoft BizTalk Server\SDK\Samples befindet, in den Pfad <Laufwerk:>\inetpub\wwwroot\<Sitename>.

So kopieren Sie die Datei "POSchema.xml" auf den Zielserver

  • Kopieren Sie die Datei POSchema.xml, die sich im Pfad <Laufwerk:>\inetpub\wwwroot\<Sitename> befindet, in den Pfad <Laufwerk:>\Programme\Microsoft BizTalk Server\BizTalkServerRepository\DocSpecs\Microsoft.

Siehe auch

Kopieren von erforderlichen Dateien für den Quellserver

Einrichten von Katalogen für BizTalk Server


Erstellen einer Zielorganisation auf dem Zielserver

Bei dem Ziel-BizTalk-Server handelt es sich um den Hersteller. Eine Organisation kann als Quelle oder Ziel in einem Messagingport, einer Verteilerliste oder einem Kanal dienen. Sie repräsentiert einen externen Handelspartner, das eigene Unternehmen oder eine Geschäftseinheit innerhalb der Unternehmensstruktur eines Handelspartners oder des eigenen Unternehmens. Jede Organisation verfügt über eindeutige Bezeichner, mit denen sie für BizTalk Server 2000 und andere Handelspartner identifizierbar ist.

Verwenden Sie die Datei ReceiveStandard.asp, die mit BizTalk Server geliefert wird, um die Standardauthentifizierung zu unterstützen. mithilfe der Datei ReceiveStandard.asp werden Informationen zusammengetragen und an BizTalk Server gesendet. Um eine sichere Website zu implementieren, müssen Sie ReceiveStandard.asp mit den entsprechenden Privilegien ausstatten.

Auf dem Zielserver muss sowohl eine Quell- als auch eine Zielorganisation eingerichtet werden.

So richten Sie Privilegien für "ReceiveStandard.asp" ein

So erstellen Sie eine Zielorganisation auf dem Zielserver

So erstellen Sie eine Quellorganisation

So richten Sie Privilegien für die Datei "ReceiveStandard.asp" ein

  1. Klicken Sie auf Start, zeigen Sie nacheinander auf Programme und auf Verwaltungstools, und klicken Sie dann auf Internetdienste-Manager.

  2. Erweitern Sie nacheinander <Servername> und Standardwebsite, wählen Sie die Site (z. B. Retail) aus, und klicken Sie dann mit der rechten Maustaste auf ReceiveStandard.asp.

  3. Klicken Sie auf der Registerkarte Dateisicherheit im Abschnitt Steuerung des anonymen Zugriffs und der Authentizifierung auf Bearbeiten.

  4. Klicken Sie im Dialogfeld Authentifizierungsmethoden im Abschnitt Anonyme Anmeldung auf Bearbeiten.

  5. Geben Sie im Dialogfeld Anonymes Benutzerkonto im Feld Benutzername den Windows-Benutzernamen des Kontos ein, das für den Zugriff auf den Computer verwendet wird. Geben Sie im Feld Kennwort das Windows-Benutzerkennwort für das Konto ein.

  6. Klicken Sie im Dialogfeld Anonymes Benutzerkonto auf OK.

  7. Klicken Sie im Dialogfeld Authentifizierungsmethoden auf OK.

  8. Klicken Sie im Dialogfeld Eigenschaften von ReceiveStandard.asp auf OK.

  9. Beenden Sie den Internetdienste-Manager.

ReceiveStandard.asp ist für den gesicherten Betrieb eingerichtet. Der Zugriff auf die Site ist gesperrt, sodass der Empfänger eines Auftrags oder eines Katalogs das Benutzerkonto und das Kennwort für das Konto benötigt.

So erstellen Sie eine Zielorganisation auf dem Zielserver

  1. Klicken Sie auf dem als Zielserver eingesetzten BizTalk-Server auf Start, zeigen Sie nacheinander auf Programme und auf Microsoft BizTalk Server 2000, und klicken Sie dann auf BizTalk-Messaging-Manager.

  2. Klicken Sie im BizTalk-Messaging-Manager im Dialogfeld Konfigurationsoptionen auf Abbrechen, um das Dialogfeld zu schließen.

  3. Klicken Sie im linken Ausschnitt im Bereich Nach anderen Elementen suchen auf Organisationen, und klicken Sie dann auf Jetzt suchen, um die Liste der verfügbaren Organisationen anzuzeigen.

  4. Doppelklicken Sie in der Liste der verfügbaren Organisationen auf Eigene Organisation.

  5. Klicken Sie im Dialogfeld Organisationseigenschaften auf der Registerkarte Bezeichner auf Hinzufügen.

  6. Überprüfen Sie im Dialogfeld Neuer Bezeichner, ob die Option Benutzerdefiniert aktiviert ist, und geben Sie dann EigeneFirma ein.

  7. Geben Sie im Feld Qualifizierer die Zeichenfolge für EigeneFirma ein.

  8. Geben Sie im Feld Wert den Namen der Quellorganisation (z. B. Empfänger) ein.

  9. Aktivieren Sie das Kontrollkästchen Als Standard festlegen, um die Quellorganisation als Standardorganisation festzulegen, und klicken Sie anschließend auf OK.

Die Standardorganisation muss vor dem Erstellen des Messagingports festgelegt werden. Sie kann entweder als Quell- oder als Zielorganisation für jeden neuen Messagingport dienen. Sie haben die Möglichkeit, jederzeit eine andere Standardorganisation zu bestimmen und können so Messagingports erstellen, die die neue Standardorganisation verwenden.

  10. Klicken Sie auf der Registerkarte Anwendungen auf Hinzufügen.

  11. Geben Sie im Dialogfeld Neue Anwendung den Anwendungsnamen (z. B. Auftragsanwendung) ein, und klicken Sie dann auf OK.

  12. Klicken Sie im Dialogfeld Neue Organisation auf OK.

Die Quellorganisation des Zielservers wird als Standardorganisation erstellt und festgelegt.

So erstellen Sie eine Quellorganisation

  1. Zeigen Sie im BizTalk-Messaging-Manager im Menü Datei auf Neu, und klicken Sie dann auf Organisation.

  2. Geben Sie im Dialogfeld Neue Organisation auf der Registerkarte Allgemein im Feld Organisationsname den Namen der Zielorganisation (z. B. Quelle) ein.

  3. Geben Sie alle notwendigen Kommentare zur Zielorganisation im Feld Kommentare ein.

  4. Klicken Sie auf der Registerkarte Bezeichner auf Hinzufügen.

  5. Wählen Sie im Feld Neuer Bezeichner die Option Benutzerdefiniert aus, und geben Sie dann EigeneFirma ein.

  6. Geben Sie im Feld Qualifizierer die Zeichenfolge für EigeneFirma ein.

  7. Geben Sie im Feld Wert den Namen des Empfängers (z. B. Absender) ein, und klicken Sie dann auf OK.

  8. Klicken Sie im Dialogfeld Neue Organisation auf OK.

Die Zielorganisation wird erstellt.

Siehe auch

Erstellen von Dokumentdefinitionen auf dem Zielserver


Erstellen von Dokumentdefinitionen auf dem Zielserver

Eine Dokumentdefinition steht für ein Geschäftsdokument in einem Messagingport, einem Kanal oder einer Verteilerliste. Die Dokumentdefinition weist auf die Spezifikation hin, die das Dokument definiert. Eine Dokumentdefinition kann mit einer beliebigen Zahl von Messagingports, Kanälen und Verteilerlisten verknüpft werden.

Bei dem Ziel-BizTalk-Server handelt es sich um den Hersteller.

So erstellen Sie eine Dokumentdefinition mit einer verknüpften XML-Datei

  1. Klicken Sie auf dem als Zielserver eingesetzten BizTalk-Server auf Start, zeigen Sie nacheinander auf Programme und auf Microsoft BizTalk Server 2000, und klicken Sie dann auf BizTalk-Messaging-Manager.

  2. Zeigen Sie im BizTalk-Messaging-Manager im Menü Datei auf Neu, und klicken Sie dann auf Dokumentdefinition.

  3. Geben Sie im Dialogfeld Neue Dokumentdefinition im Feld Dokumentdefinitionsname den Namen für die Dokumentdefinition ein (z. B. Auftrag).

  4. Wählen Sie das Dialogfeld Dokumentspezifikation aus, und klicken Sie anschließend auf Durchsuchen.

  5. Doppelklicken Sie im Dialogfeld Dokumentspezifikation aus dem WebDAV-Repository auswählen auf den Ordner Microsoft.

  6. Wählen Sie eine XML-Datei (z. B. POSchema.xml) aus, und klicken Sie auf Öffnen.

  7. Klicken Sie im Dialogfeld Neue Dokumentdefinition auf OK.

Der Auftrag wird mithilfe einer verknüpften benutzerdefinierten Datei im XML-Format erstellt.

Siehe auch

Erstellen eines Messagingports auf dem Zielserver


Erstellen eines Messagingports auf dem Zielserver

Bei dem Ziel-BizTalk-Server handelt es sich um den Hersteller.

So erstellen Sie einen Messagingport auf dem Zielserver

  1. Klicken Sie auf dem als Zielserver eingesetzten BizTalk-Server auf Start, zeigen Sie nacheinander auf Programme und auf Microsoft BizTalk Server 2000, und klicken Sie dann auf BizTalk-Messaging-Manager.

  2. Zeigen Sie im BizTalk-Messaging-Manager im Menü Datei auf Neu, danach auf Messagingport, und klicken Sie dann auf Zu einer Anwendung.

  3. Geben Sie im Assistenten zum Hinzufügen eines neuen Messagingports im Fenster Allgemeine Informationen im Feld Name den Namen des Ports (z. B. OnPortFromSource) ein, und klicken Sie dann auf Weiter.

  4. Wählen Sie im Fenster Zielanwendung die Option Anwendung aus, und wählen Sie dann in der Dropdownliste im Feld Name den Namen der Anwendung (z. B. Auftragsanwendung) aus.

  5. Klicken Sie im Abschnitt Primärer Transport rechts neben dem Feld Adresse auf Durchsuchen.

  6. Wählen Sie im Dialogfeld Primärer Transport im Feld Transporttyp in der Dropdownliste die Option HTTP aus.

  7. Geben Sie im Feld Adresse den Pfad http://<Zielservername>/<Sitename>/_recvpo.asp, und klicken Sie auf OK.

  8. Klicken Sie auf Weiter.

  9. Im Fenster Umschlagsinformationen muss das Feld Umschlagsinformationen leer sein, da die Standard-XML-Datei verwendet wird.

  10. Klicken Sie auf Weiter.

  11. Überprüfen Sie im Fenster Sicherheitsinformationen, ob das Kontrollkästchen Kanal für diesen Messagingport erstellen aktiviert ist.

  12. Wählen Sie im Feld Kanaltyp in der Dropdownliste die Option Von einer Anwendung aus, und klicken Sie dann auf Fertig stellen.

  13. Klicken Sie im Fenster Allgemeine Informationen auf Abbrechen.

Der Messagingport zwischen der eigenen Organisation und der Zielorganisation wird erstellt.

Siehe auch

Erstellen eines Kanals auf dem Zielserver


Erstellen eines Kanals auf dem Zielserver

Bei einem Kanal handelt es sich um einen Satz von Eigenschaften, mit dem Sie BizTalk Server 2000 die Regeln für die Verarbeitung eines eingegangenen Dokuments mitteilen. Nach der Verarbeitung des Dokuments wird dieses zur Übertragung an das angegebene Ziel an den zugehörigen Messagingport oder die zugehörige Verteilerliste weitergeleitet. Sie können einen oder mehrere Kanäle für einen Messagingport oder eine Verteilerliste erstellen.

Bei dem Ziel-BizTalk-Server handelt es sich um den Hersteller.

So erstellen Sie einen Kanal auf dem Zielserver

  1. Klicken Sie auf dem als Zielserver eingesetzten BizTalk-Server auf Start, zeigen Sie nacheinander auf Programme und auf Microsoft BizTalk Server 2000, und klicken Sie dann auf BizTalk-Messaging-Manager.

  2. Klicken Sie im linken Fensterausschnitt des BizTalk-Messaging-Managers im Bereich Nach anderen Elementen suchen auf die Verknüpfung Messagingports, und klicken Sie dann auf Jetzt suchen.

  3. Wählen Sie den Messagingport aus, mit dem der Kanal verknüpft wird (z. B. SubmitPort).

  4. Zeigen Sie im Menü Datei nacheinander auf Neu und auf Kanal, und klicken Sie dann auf Von einer Organisation.

  5. Geben Sie im Assistenten zum Hinzufügen eines neuen Kanals im Fenster Allgemeine Informationen im Feld Name den Namen des Kanals (z. B. InChannelFromSource) ein, und klicken Sie dann auf Weiter.

  6. Überprüfen Sie im Fenster Quellorganisation, ob die Option Organisation ausgewählt ist.

  7. Klicken Sie rechts neben dem Feld Name auf Durchsuchen.

  8. Wählen Sie im Dialogfeld Organisation auswählen die Zielorganisation aus (z. B. EigenerLieferant), und klicken Sie anschließend auf OK.

  9. Überprüfen Sie im Feld Organisationskennzeichen, ob <Quellorganisation>/ <Bezeichnerwert> (Standard) als Bezeichner ausgewählt ist, und klicken Sie dann auf Weiter.

  10. Klicken Sie im Fenster Eingehendes Dokument auf der rechten Seite des Feldes Definitionsname des eingehenden Dokuments auf Durchsuchen.

  11. Wählen Sie im Dialogfeld Dokumentdefinition auswählen die Dokumentdefinition aus (beispielsweise Auftrag), und klicken Sie dann auf OK.

  12. Klicken Sie im Fenster Eingehendes Dokument auf Weiter.

  13. Klicken Sie im Fenster Ausgehendes Dokument auf der rechten Seite des Feldes Definitionsname des ausgehenden Dokuments auf Durchsuchen.

  14. Wählen Sie im Dialogfeld Dokumentdefinition auswählen die Dokumentdefinition aus (beispielsweise Auftrag), und klicken Sie dann auf OK.

  15. Klicken Sie im Fenster Ausgehendes Dokument auf Weiter.

  16. Klicken Sie im Fenster Dokumentprotokollierung auf Weiter.

  17. Klicken Sie im Fenster Erweiterte Konfiguration auf Fertig stellen.

Der Kanal zwischen der Quell-/Absenderorganisation und dem Messagingport wird erstellt.


Einrichten von Katalogen für BizTalk Server

Wenn Sie einen Vertrag mit einem Hersteller einrichten, wird die Hersteller-ID in Commerce Server verfügbar. Bei der Hersteller-ID handelt es sich um den Organisationsnamen des Herstellers, der beim Erstellen einer Zielorganisation auf dem Quellserver festgelegt wird. Weitere Informationen finden Sie unter Erstellen von Quell- und Zielorganisationen auf dem Quellserver.

Die Hersteller-ID wird von Commerce Server in Commerce Server Business Desk angezeigt. Es werden diejenigen Handelspartner (Organisationen) aufgeführt, die den gleichen Dokumententyp wie Ihre Organisation unterstützen, und somit über ein kompatibles Dokumentenrouting verfügen. In diesem Fall können Sie Business Desk zur Verknüpfung von Hersteller-ID und Katalog verwenden.

Dabei können mehrere Kataloge mit dem entsprechenden Hersteller verknüpft werden. Sie können den Hersteller auch auf der Produktebene festlegen, in diesem Fall muss jedoch auch die Datei _additem.asp angepasst werden.

Wenn Sie einen Hersteller als Standard einrichten, wird Ihre eigene Site von Commerce Server als Hersteller eingestuft.

Anmerkung

  • Bestellt ein Benutzer ein Produkt Ihrer Website, muss dieses Produkt im Katalog der Zielorganisation vorhanden sein. Ist dies nicht der Fall, kann BizTalk Server den Auftrag nicht von Ihrer Site an den Hersteller gesendet werden. Das Ereignisprotokoll enthält dann eine entsprechende Fehlermeldung.

So verknüpfen Sie einen Katalog mit einem Hersteller

  1. Klicken Sie in Commerce Server Business Desk in Kataloge auf Katalog-Editor.

  2. Wählen Sie im Fenster Kataloge den Katalog, dem Sie die Hersteller-ID hinzufügen möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  3. Klicken Sie in Katalog-Editor im Fenster <Katalogname> im Feld Hersteller-ID auf die Auslassungszeichen [...], um eine Liste mit den Herstelleridentifikationen anzuzeigen. Wählen Sie die für diesen Katalog entsprechende Herstelleridentifikation aus.

    Die Liste der Hersteller wird in Commerce Server automatisch dann aktualisiert, wenn Sie einen neuen Vertrag, den Sie mit einem Hersteller abgeschlossen haben, mithilfe von BizTalk Server erstellen.

  4. Um die Änderung zu speichern und zurück zum Fenster Kataloge zu gelangen, klicken Sie auf der Symbolleiste auf Speichern und zurück.

Siehe auch

Beispiel: Konfigurieren des Quellservers für den Austausch von Katalogen

Erstellen eines neuen Katalogs

Senden eines Katalogs an einen Handelspartner


Überwachen von Commerce Server-Sites

Microsoft Windows 2000 Server und Commerce Server 2000 bieten eine Reihe von Überwachungstools, mit denen Systemadministratoren die Leistung von Commerce Server-Sites überwachen können. Die unter Windows 2000 Server und in Commerce Server zur Verfügung stehenden Tools dienen der Analyse der Siteverwendung. Anhand der Analyseergebnisse können Sie die Leistung Ihrer Website optimieren und Platz für Wachstum schaffen.

Am Anfang der Siteüberwachung stehen stets die Planung und Konfiguration der Überwachungstools. Nach Erstellung eines Überwachungsplans finden Sie unter Optimieren von Commerce Server weitere Informationen zum Optimieren der Leistung Ihrer Sites.

Für das Verständnis dieses Dokuments sind Kenntnisse der Ereignisanzeige und des Systemmonitors unabdingbar. Weitere Informationen zur Ereignisanzeige und zum Systemmonitor finden Sie in der Hilfe zu Windows 2000 Server.

Dieser Abschnitt beinhaltet folgende Themen:

  • Informationen zur Überwachung von Sites. Beschreibt die einsetzbaren Überwachungstools.

  • Einrichten der Überwachungskonfiguration. Beschreibt die Planung und Konfigurierung der Überwachungstools.

  • Überwachen von Produktionsservern. Beschreibt Möglichkeiten zur Überwachung von Produktionsservern.

  • Verwenden von Tools zur Leistungsüberwachung. Beschreibt die zur Überwachung der Serverleistung verfügbaren Tools.

  • Verwenden des Snap-Ins für die Ereignisanzeige. Beschreibt die Verwendung des Snap-Ins für die Ereignisanzeige sowie die verschiedenen Arten von Ereignisprotokollen und Windows 2000-Ereignissen.

  • Indikatoren zur Leistungsüberwachung. Beschreibt die Leistungsindikatoren und erläutert deren Einrichtung. Führt die Indikatoren auf, die in Commerce Server bereitgestellt werden.


Informationen zur Überwachung von Sites

Commerce Server-Sites können Sie mit dem Systemmonitor unter Microsoft Windows 2000, mit "Leistungsprotokolle und Warnungen" und ähnlichen Tools überwachen. Auf diese Weise können Sie möglicherweise im System auftretende Engpässe vorhersagen. (Ein Engpass entsteht durch eine Hardware- bzw. Softwarekomponente, die an der obersten Kapazitätsgrenze arbeitet.)

Bei der Überwachung eines unter Windows 2000 Server arbeitenden Systems wird das Verhalten der Objekte des Systems beobachtet. Windows 2000 verwendet Objekte, um Systemressourcen zu identifizieren und zu manipulieren. Des Weiteren enthält Windows 2000 Objekte, die für einzelne Prozesse, Abschnitte aus freigegebenem Speicher und physische Geräte stehen.

Das Windows 2000-Leistungstool besteht aus zwei Teilen, und zwar dem Systemmonitor einerseits und "Leistungsprotokolle und Warnungen" andererseits. Der Systemmonitor erfasst Daten zur Objektaktivität, zum Objektbedarf und zu dem Speicherplatz, den die Objekte belegen. Des Weiteren gruppiert der Systemmonitor Indikatoren nach Objekttyp. Für Prozesse, den Arbeitsspeicher, den Cache, die Festplatte und andere Objekttypen, die statistische Informationen erzeugen, ist eine eigene Gruppe von Indikatoren vorhanden.

Commerce Server bietet über 200 erweiterbare Indikatoren als Tools zur Überwachung. Bei erweiterbaren Indikatoren handelt es sich um Indikatoren zur Leistungsüberwachung, die im Lieferumfang anderer Anwendungen als Windows 2000 enthalten sind bzw. die Sie selbst anhand der Informationen im Windows 2000 Software Developer Kit (SDK) erstellen können.

Zur Optimierung der Siteleistung müssen Sie genau wissen, welche Indikatoren vom System verwendet werden, was genau gemessen wird und auf welche Art und Weise die Messung erfolgt. Diese Informationen benötigen Sie insbesondere dann, wenn Sie unerwartete Daten bzw. inkonsistente Ergebnisse erhalten. Weitere Informationen zu Überwachungskonfigurationen finden Sie unter Einrichten der Überwachungskonfiguration in der Hilfe zu Windows 2000 Server.

Siehe auch

Commerce Server-Leistungsindikatoren

Einrichten der Leistungsindikatoren


Einrichten der Überwachungskonfiguration

Bevor Sie mit der Überwachung von Sites beginnen, sorgen Sie dafür, dass eine ausreichende Kapazität vorhanden ist, und konfigurieren Sie die Überwachungstools, um den Überwachungsaufwand gering zu halten. Es empfiehlt sich, Überwachungskonfigurationen einzurichten, die mit dem Systemmonitor in der Microsoft Management Console (MMC) gespeichert und auf andere Computer kopiert werden können. Mithilfe einer Überwachungskonfiguration können Sie Data Center-Probleme hervorheben und sich ein Bild vom Datenfluss im System machen. Des Weiteren können Sie anhand einer derartigen Konfiguration Problemen mit der Sitesoftware auf den Grund gehen und erkennen, wie die Software miteinander interagiert.

Beachten Sie bei der Planung der Konfiguration die folgenden Hinweise:

  • Konfigurieren Sie "Leistungsprotokolle und Warnungen" so, dass Daten für die empfohlenen Indikatoren in regelmäßigen Abständen gemeldet werden, beispielsweise alle 10 bis 15 Minuten.

  • Heben Sie die Protokolle über einen längeren Zeitraum auf.

  • Speichern Sie die Daten in einer Datenbank, und führen Sie eine Abfrage aus, um die Daten zu analysieren und eine Bewertung der Gesamtleistung, eine Trendanalyse und eine Kapazitätsplanung vornehmen zu können.

Kapazitätsplanung

Begrenzen des Überwachungsaufwands

Kapazitätsplanung

Bei Kapazitätsplanung handelt es sich um den Vorgang des Planens von Anwendungs-, Hardware- und Netzwerkanforderungen zur Unterstützung des erwarteten Datenverkehrs in einer Website und zur Erzielung der für die Site festgesetzten Leistung. Die Kapazität ermitteln Sie, indem Sie die Anzahl der Besucher Ihrer Website bestimmen, die Anforderungen ermitteln, die jeder Benutzer an den Server stellt, und daraus dann die Voraussetzungen berechnen, die der Computer (CPU, RAM, Speicherplatz, Bandbreite und Verwendung und Netzwerkbandbreite) erfüllen muss, damit derzeitige und zukünftige Verwendungsebenen unterstützt werden können.

Zur Sicherstellung der erforderlichen Kapazität müssen Sie den Bedarf an Computerhardware berechnen, damit die Belastung, die abertausend Benutzer auf Ihre Site ausüben, getragen werden kann. Anhand dieser Berechnungen können Sie Schwachstellen ermitteln, aufgrund derer es zu Leistungsabfällen kommen kann. Schwachstellen können Sie ausmerzen, indem Sie zusätzliche Hardware installieren bzw. dynamische Seiten oder andere CPU-intensive Tools neu entwerfen.

Begrenzen des Überwachungsaufwands

  • Commerce Server-Leistungsindikatoren und -tools gewährleisten einen minimalen Leistungsaufwand. Große Dateien und von Protokolldateien eingenommener Speicherplatz wirken sich natürlich auf die Arbeit von Leistungstools aus und haben somit ihren Anteil am Gesamtaufwand.

  • Durch eine Vergrößerung des Aktualisierungsintervalls lassen sich Dateigrößen und die damit verbundene Speicherplatzbelegung reduzieren. Außerdem ist es möglich, Daten auf einem anderen als dem überwachten Datenträger zu protokollieren. Eine häufige Protokollierung führt auch zu erhöhtem Bedarf an Datenträger-E/A.

Zunehmender Überwachungsaufwand

  • Falls der Überwachungsaufwand Anlass zu Bedenken gibt, führen Sie zur Überwachung der Site lediglich "Leistungsprotokolle und Warnungen" aus, und verwenden Sie kein Systemmonitordiagramm. Möglicherweise werden Sie feststellen, dass unter jeder der folgenden Bedingungen der Aufwand steigt:
    • Ausführen des Systemmonitors in der Diagrammansicht.

    • Auswählen einer anderen als der Standardoption (aktueller Wert) für eine Berichtansicht.

    • Häufiges Ziehen von Datenstichproben (in Intervallen von weniger als drei Sekunden).

Überwachungsempfehlungen

Beachten Sie vor dem Starten des Systemmonitors bzw. vor dem Ausführen von "Leistungsprotokolle und Warnungen" auf dem zur Überwachung verwendeten Computer die folgende Hinweise zu Diagnosezwecken:

  • Beenden Sie sämtliche Bildschirmschonerprogramme.

  • Beenden Sie sämtliche Dienste, die für die Überwachung nicht benötigt werden.

  • Führen Sie den Systemmonitor von einem Remotecomputer aus. Dadurch lässt sich der größte Teil der CPU- und E/A-Kosten auf den Remotecomputer verlagern.

  • Vergrößern Sie die Auslagerungsdatei auf die Größe des physischen Arbeitsspeichers plus 100 MB.

  • Verwenden Sie ein privates Verwaltungsnetzwerk. Während der Remoteprotokollierung kann häufiges Aktualisieren aufgrund der Netzwerkübertragung zu Leistungseinbußen führen. Dieses Problem lässt sich durch die Verwendung eines privaten Verwaltungsnetzwerks lösen, wobei in der Regel eine weitere Netzwerkschnittstellenkarte (NIC) zum Einsatz kommt. Dadurch lässt sich ebenfalls das Ziehen von Stichproben aus Datenauflistungen einschränken. Wenn Sie bislang z. B. alle drei Sekunden Stichproben von Daten ziehen, sollten Sie die Intervalle auf 5 Sekunden erhöhen. Des Weiteren können Sie zwei Netzwerkschnittstellen/Computer einsetzen, sodass jedes Netzwerksegment unterschiedliche Vorgänge ausführt. Dabei kann ein Computer z. B. für das Aktualisieren von News und der andere für das Aktualisieren von Transaktionen im Aktienhandel zuständig sein.

Zusätzliche Informationen

Im Folgenden finden Sie zusätzliche Informationen zur Verwendung von Leistungstools mit minimalem Aufwand:

  • Analysieren von Leistungsdaten und Erstellen eines Leistungsbasisplans. Überprüfen Sie protokollierte Daten anhand von Diagrammen. Verwenden Sie dazu die Systemmonitoranzeige, oder exportieren Sie die Daten, und drucken Sie sie. Detaillierte Informationen zu bestimmten Leistungsindikatoren finden Sie unter Commerce Server-Leistungsindikatoren.

  • Einstellen von Warnungen. Stellen Sie die Warnungen entsprechend den Leistungsindikatorwerten ein, die gemäß der Bewertung des Basisplans zulässige Grenzen überschreiten.

  • Reduzieren von Indikatoren. Reduzieren Sie die Anzahl der Leistungsindikatoren auf die tatsächlich benötigte Anzahl. Eine Liste empfohlener Indikatoren finden Sie unter Hardwareleistungsindikatoren und Commerce Server-Leistungsindikatoren.

  • Planen. Überwachen Sie zur Kapazitätsplanung die Trends, und fügen Sie ggf. Komponenten hinzu bzw. aktualisieren Sie diese. Verwalten Sie die protokollierten Daten in einer Datenbank, und achten Sie auf Änderungen, um Änderungen in Ressourceanforderungen feststellen zu können. Sobald Sie Änderungen in der Aktivität bzw. den Ressourcenanforderungen beobachten, können Sie auch feststellen, an welcher Stelle zusätzliche Ressourcen zum Einsatz kommen müssen.

Siehe auch

Optimieren von Commerce Server


Überwachen von Produktionsservern

Wenn Sie eine Webfarm mit Computern verwalten, auf denen Commerce Server 2000 ausgeführt wird, können Sie die Systemleistung anhand des Systemmonitors unter Windows 2000 oder ähnlichen Tools überwachen und so eventuell auftretende Engpässe vorhersagen. Um die Produktionsserver effizient zu überwachen, führen Sie Kalibrierungstests aus, aktualisieren Sie Verwendungsprofile und überwachen Sie die Leistungsindikatoren für Commerce Server.

Ausführen von Kalibrierungstests

Aktualisieren von Verwendungsprofilen

Überwachen von Commerce Server-Leistungsindikatoren

Ausführen von Kalibrierungstests

Ein RAID-Array von Compaq oder ein ähnliches Datenträgersubsystem zeichnet sich je nach vorhandener Hardware durch sehr unterschiedliche Leistungsmerkmale aus. Es ist zu empfehlen, das Subsystem zu kalibrieren, damit die folgenden Elemente festgelegt werden können:

  • Maximale Anzahl der physischen Lesevorgänge pro Sekunde

  • Maximale Anzahl der physischen Schreibvorgänge pro Sekunde

  • Maximale Anzahl der Bytes pro Sekunde

Moderne Datenträgersubsysteme verfügen über Komplexitätsebenen. Bei Systemen mit einer Festplatte oder einfachen SCSI-Lösungen bietet der Indikator Zeit (%) eine exakte Widerspiegelung der Kapazität des Datenträgers. Bei komplexeren Konfigurationen mit mehreren Datenträgern kann die Warteschlangenlänge des Datenträgers sich an die Anzahl der aktiven Spindeln im Array anpassen, bevor einzelne Elemente tatsächlich auf die Übertragung warten.

Bei den neuesten LVD- oder Fiberkanaldatenträgersystemen sind die Probleme komplexerer Natur. Bei diesen Highendsystemen sollten Sie die Leistung und Kapazität mithilfe der im Lieferumfang enthaltenen Tools überwachen. Für den Systembus des Servers und die SCSI- bzw. Fiberkanalschnittstelle gilt außerdem eine maximale Bandbreitenbeschränkung. Der Gesamtdatenträgerdurchsatz sollte mit diesen Beschränkungen verglichen werden.

Aktualisieren von Verwendungsprofilen

Bei einem Verwendungsprofil handelt es sich um ein statistisches Modell einer durchschnittlichen interaktiven Benutzung und der maximalen Anzahl gleichzeitiger Benutzer, die die Site zu Spitzenzeiten unterstützen muss. Einen sehr wichtigen Bestandteil der Siteüberwachung stellt das Überwachen von Benutzern dar, um feststellen zu können, ob sich das Benutzerverhalten geändert hat. Auch die Beobachtung exponentieller Trends in der Benutzeraktivität ist äußerst wichtig. Noch wichtiger ist es jedoch, diese Daten an Entwickler, Tester und Kapazitätsplaner weiterzuleiten, damit diese zukünftige Hardware- und Softwareanforderungen einplanen können.

Zum Aktualisieren und Überwachen des Benutzerverhaltens verwenden Sie Leistungsindikatoren der Benutzerprofilverwaltung.

Überwachen von Commerce Server-Leistungsindikatoren

Überprüfen Sie die Liste der Commerce Server-Leistungsindikatoren. Fügen Sie zunächst dem Systemmonitor die Indikatoren aus dieser Liste hinzu. Weitere Indikatoren können Sie zu einem späteren Zeitpunkt hinzufügen. In der folgenden Abbildung wird der Systemmonitor mit hinzugefügten Leistungsindikatoren der Katalog- und Benutzerprofilverwaltung dargestellt.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Siehe auch

Verwenden von Tools zur Leistungsüberwachung

Hardwareleistungsindikatoren

Commerce Server-Leistungsindikatoren


Verwenden von Tools zur Leistungsüberwachung

Das Windows 2000-Leistungstool besteht aus zwei Teilen, und zwar dem Systemmonitor einerseits und "Leistungsprotokolle und Warnungen" andererseits. Mit dem Systemmonitor haben Sie die Möglichkeit, Echtzeitinformationen zum Arbeitsspeicher, zur Festplatte, zum Prozessor, zum Netzwerk und anderen Aktivitäten in Form von Diagrammen, Histogrammen oder Berichten zusammenzutragen und anzuzeigen. Mithilfe von "Leistungsprotokolle und Warnungen" können Sie Protokolle konfigurieren, mit denen Sie dann Leistungsdaten aufzeichnen und Systemwarnungen einstellen, die Sie darüber in Kenntnis setzen, wenn sich der Wert eines bestimmten Indikators ober- bzw. unterhalb eines festgelegten Grenzwerts bewegt. Dieser Abschnitt enthält Informationen zum Systemmonitor. (Informationen zur Verwendung von "Leistungsprotokolle und Warnungen" erhalten Sie, indem Sie Commerce Server-Manager öffnen, mit der rechten Maustaste auf Leistungsprotokolle und Warnungen klicken, und dann auf Hilfe klicken.)

Dieser Abschnitt beinhaltet folgende Themen:

  • Systemmonitor

  • Weitere Tools zur Leistungsüberwachung

Weitere Informationen zum Leistungstool finden Sie in der Hilfe zu Windows 2000 Server.


Systemmonitor

Mit dem Systemmonitor messen Sie die Leistung Ihres eigenen Computers oder anderer Computer in einem Netzwerk. Der Systemmonitor verwendet zur Datennachverfolgung eine Reihe von Indikatoren. Zu den Daten, die nachverfolgt werden, zählen u. a. die Anzahl der Prozesse, die auf Festplattenzugriffszeit warten, die Anzahl der pro Sekunde übertragenen Netzwerkpakete und der Prozentsatz der Prozessorauslastung. Anhand dieser Daten können Sie Diagramme erstellen, Warnungen setzen und Berichte formatieren, um die Systemleistung zu messen und zu optimieren. Es ist möglich, die Daten anzuzeigen, während sie zusammengetragen werden. Alternativ können die Daten auch für eine spätere Verwendung und zum Vergleich in Protokolldateien gespeichert werden. Sie können auch beide Optionen gleichzeitig wählen.

Siehe auch

Commerce Server-Leistungsindikatoren


Weitere Tools zur Leistungsüberwachung

Zum Überwachen von Commerce Server 2000-Sites stehen Ihnen die verschiedenen Tools für die Überwachung von Servern und Ressourcen zur Verfügung, die im Lieferumfang von Microsoft Windows 2000 Server und Microsoft Visual Studio enthalten sind.

Health Monitor

IPSec-Monitor (Internet Protocol Security)

Microsoft Web Application Stress

Netzwerkmonitor

SQL Server Profiler

Visual Studio Analyzer

Health Monitor

Bei Health Monitor handelt es sich um einen Dienst unter Microsoft Application Center 2000. Health Monitor zeigt Ereignisse und Schwellenwertüberschreitungen an. Dazu wird auf jedem überwachten Server ein Agent ausgeführt, und die Werte werden in WMI (Windows Machine Interface) nachverfolgt. Weitere Informationen zu Application Center finden Sie in der Hilfe zu Microsoft Application Center 2000.

IPSec-Monitor (Internet Protocol Security)

Unter Windows 2000 steht der IPSec-Monitor (Internet Protocol Security) zur Verfügung, mit dessen Hilfe überprüft werden kann, ob eine sichere Kommunikation erfolgreich ist. Dazu werden die aktiven Sicherheitszuordnungen auf lokalen bzw. Remotecomputern angezeigt. So kann beispielsweise mithilfe des IPSec-Monitors festgestellt werden, ob Fehler bei der Authentifizierung bzw. der Sicherheitszuordnung einem bestimmten Muster folgen, was möglicherweise auf nicht kompatible Einstellungen für Sicherheitsrichtlinien hinweist.

Microsoft Web Application Stress

Bei Microsoft Web Application Stress (WAS) handelt es sich um ein von Webtestern entwickeltes Simulationstool, das Situationen, in denen mehrere Browser Seiten von einer Webanwendung anfordern, realistisch simuliert. Microsoft hat das Tool benutzerfreundlich gestaltet und zu diesem Zweck einige komplizierte Aspekte des Testens von Webservern verdeckt. Dies macht das Tool interessant für jeden, der Leistungsdaten über eine Website sammeln möchte.

Das Tool vereinigt in sich zahlreiche der besten Funktionen, die im Laufe der Jahre in WAS entwickelt wurden, ebenso wie einige neue Funktionen. Außerdem deckt die aktuelle Version die am meisten benötigten Funktionen für Belastungstests von dreistufigen, personalisierten ASP-Websites ab, die unter Windows 2000 ausgeführt werden.

Netzwerkmonitor

Bei dem Netzwerkmonitor (Netmon.exe) handelt es sich um ein Verwaltungstool unter Windows 2000, mit dem Sie den Netzwerkverkehr nachverfolgen können. Außerdem können Sie Netzwerkmonitor zum Aufzeichnen von Netzwerkverkehr verwenden und diesen dann anzeigen und analysieren. Sie können Netzwerkmonitor beispielsweise für die Analyse von Daten einsetzen, die zu einem früheren Zeitpunkt mithilfe von benutzerdefinierten Methoden erfasst wurden. Des Weiteren dient das Tool zur Extraktion von Daten aus festgelegten Protokollparsern und zur Analyse von Echtzeit-Datenverkehr im Netzwerk.

Netzwerkmonitor ist ein nützliches Tool zur Erfassung von Paketen zwischen Browsern, Webservern und SQL Server. Das Tool stellt wertvolle Zeitinformationen ebenso wie Informationen zu Paketgröße und Netzwerklast und viele andere statistische Daten zur Verfügung, die für die Verwaltung der Systemleistung von Bedeutung sein können. Das Tool wird nicht standardmäßig installiert. Um es zu installieren, klicken Sie in der Systemsteuerung auf Software.

SQL Server Profiler

Bei SQL Server Profiler handelt es sich um ein Tool, mit dem sich Microsoft SQL Server-Ereignisse von einem Server zusammentragen lassen. Die Ereignisse werden in einer Ablaufverfolgungsdatei gespeichert, die Sie zu einem späteren Zeitpunkt analysieren oder zur Wiederholung einer bestimmten Reihe von Schritten bei der Problemdiagnose verwenden können. SQL Server Profiler kann für die folgenden Aufgaben eingesetzt werden:

  • Schrittweises Bearbeiten von problematischen Abfragen, um die Ursache des Problems zu finden.

  • Suchen und Diagnostizieren von langsam ausgeführten Abfragen.

  • Erfassen der Reihe von SQL-Anweisungen, die zu einem Problem führen. Mithilfe der gespeicherten Ablaufverfolgung kann das Problem auf einem Testserver repliziert und diagnostiziert werden.

  • Überwachen der Leistung von SQL Server zur Optimierung der Datenbankleistung.

Visual Studio Analyzer

Bei Visual Studio Analyzer handelt es sich um ein Tool in Microsoft Visual Studio 6.0 Enterprise Edition, das Sie zur Leistungsanalyse, zur Lokalisierung von Seitenfehlern und zum Verständnis der Struktur verteilter Anwendungen verwenden können. Visual Studio Analyzer können Sie für Anwendungen und Systeme verwenden, die mit beliebigen Visual Studio-Tools erstellt wurden.

Einige Microsoft-Technologien, wie beispielsweise Component Object Model (COM), ActiveX Data Objects (ADO) und COM+ bieten die Möglichkeit, Informationen für Visual Studio Analyzer bereitzustellen. Wenn in den von Ihnen verwendeten Anwendungen eine beliebige der genannten Technologien zum Einsatz kommt, können Sie über diese Anwendung detaillierte Informationen von Visual Studio Analyzer erhalten. Darüber hinaus können Sie Ihre eigenen Anwendungen so anpassen, dass sie Informationen für Visual Studio Analyzer bereitstellen.


Verwenden des Snap-Ins für die Ereignisanzeige

Commerce Server 2000 erzeugt in dem Snap-In für die Ereignisanzeige Ereignisse. Anhand dieser Ereignisse können Systemadministratoren überprüfen, ob Commerce Server die gewünschte Leistung erbringt. In der Ereignisanzeige werden Informations-, Warnungs- und Fehlerereignisse nachverfolgt. Die Protokolle in der Ereignisanzeige stellen einen Überwachungseintrag für sämtliche Commerce Server- und Microsoft Windows-Ereignisse bereit. Dieser Eintrag enthält auch solche Prozesse wie Anmelde- und Verbindungszeiten.

Windows 2000 zeichnet Ereignisse in drei Typen von Protokollen auf:

  • Anwendungsprotokoll. Enthält nach Anwendung bzw. Programm protokollierte Ereignisse. So zeichnet z. B. ein Datenbankprogramm einen Dateifehler im Anwendungsprotokoll auf. Der Siteentwickler entscheidet, welche Ereignisse aufgezeichnet werden. Anhand dieses Protokolls können Sie den Import bzw. Export von Katalogen überprüfen.

  • Systemprotokoll. Enthält die von den Windows 2000-Systemkomponenten protokollierten Ereignisse. So wird z. B. ein während des Starts nicht geladener Treiber im Systemprotokoll aufgezeichnet. Windows 2000 gibt vor, welche Ereignistypen von Systemkomponenten protokolliert werden.

  • Sicherheitsprotokoll. Zeichnet Sicherheitsereignisse auf, z. B. gültige und ungültige Kennworteingaben, sowie Ereignisse mit Bezug auf die Ressourcenausnutzung, z. B. das Erstellen, Öffnen und Löschen von Dateien. Der Systemadministrator hat die Möglichkeiten festzulegen, welche Ereignisse im Sicherheitsprotokoll aufgezeichnet werden. Wenn Sie z. B. die Anmeldeüberwachung aktiviert haben, werden sämtliche Kennworteingaben im Sicherheitsprotokoll aufgezeichnet.

Dieser Abschnitt beinhaltet folgende Themen:

  • Windows-Ereignisse


Windows-Ereignisse

Im Ereignisprotokolldienst werden Windows-Ereignisse einerseits und Leistungsprotokolle und Warnungen andererseits aufgezeichnet. Beim Starten von Windows 2000 wird auch automatisch der Ereignisprotokolldienst gestartet. Sämtliche Benutzer haben die Möglichkeit, Anwendungs- und Systemprotokolle anzuzeigen. Zugriff auf Sicherheitsprotokolle haben jedoch nur Systemadministratoren.

Die Sicherheitsprotokollierung ist standardmäßig deaktiviert. Mit Gruppenrichtlinie kann die Sicherheitsprotokollierung aktiviert werden. Der Systemadministrator kann auch in der Registrierung Überwachungsrichtlinien einstellen, durch die dann das System angehalten wird, sobald das Sicherheitsprotokoll voll ist.

In der Ereignisanzeige werden die folgenden Ereignistypen angezeigt:

  • Fehler. Ein schwer wiegendes Problem, wie z. B. Datenverlust oder der Ausfall von Funktionen. So wird beispielsweise ein Fehler protokolliert, wenn ein Dienst beim Start nicht geladen wird.

  • Warnung. Ein Ereignis, das nicht unbedingt von Bedeutung sein muss, das aber auf ein möglicherweise bevorstehendes Problem hinweist. Eine Warnung wird z. B. protokolliert, wenn der Speicherplatz knapp wird.

  • Information. Hierbei handelt es sich um ein Ereignis, das die fehlerlose Funktion einer Anwendung, eines Treibers bzw. eines Dienstes beschreibt. So wird z. B. beim erfolgreichen Laden eines Netzwerktreibers ein Informationsereignis protokolliert.

  • Erfolgsüberwachung. Hierbei handelt es sich einen überwachten Sicherheitszugriffsversuch, der erfolgreich verläuft. So wird z. B. der erfolgreiche Versuch eines Benutzers, sich beim System anzumelden, als Erfolgsüberwachungsereignis protokolliert.

  • Fehlerüberwachung. Hierbei handelt es sich einen überwachten Sicherheitszugriffsversuch, der fehlschlägt. Unternimmt ein Benutzer z. B. den Versuch, auf ein Netzwerklaufwerk zuzugreifen, und schlägt dieser Versuch fehl, wird er als Fehlerüberwachungsereignis protokolliert.

In der folgenden Abbildung wird dargestellt, wie die Ereignisanzeige mit einer Auswahl an Ereignissen und Warnungen angezeigt wird.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.


Indikatoren zur Leistungsüberwachung

Der Systemmonitor verwendet "Leistungsprotokolle und Warnungen" zum Zusammentragen von Daten, die als Leistungsindikatoren bezeichnet werden. Bei einem Leistungsindikator handelt es sich um ein Datenelement, das mit einem Leistungsobjekt verknüpft ist. Der Systemmonitor gibt für jeden ausgewählten Indikator einen Wert an, der einem bestimmten, für das Leistungsobjekt festgelegten Leistungsaspekt entspricht.

Mithilfe von Leistungsindikatoren können Sie bestimmte Aspekte der Arbeit in der Site überwachen, die von einem System oder Dienst ausgeführt wird. Im Systemmonitor werden die Indikatoren nach Objekttyp gruppiert. Für Commerce Server-Prozesse, den Arbeitsspeicher, den Cache, die Festplatte und andere Objekttypen, die statistische Informationen erzeugen, ist eine eigene Gruppe von Indikatoren vorhanden. Weitere Informationen zu "Leistungsprotokolle und Warnungen" finden Sie in der Hilfe zu Windows 2000 Server.

Dieser Abschnitt beinhaltet folgende Themen:

  • Einrichten der Leistungsindikatoren

  • Hardwareleistungsindikatoren

  • Commerce Server-Leistungsindikatoren

  • Überwachen der Vorhersageressource


Einrichten der Leistungsindikatoren

Zum Einrichten der Leistungsindikatoren verwenden Sie den Systemmonitor.

So richten Sie Leistungsindikatoren ein

  1. Klicken Sie auf Start, zeigen Sie auf Programme, dann auf Microsoft Commerce Server, und klicken Sie auf Commerce Server-Manager.

  2. Klicken Sie auf Systemmonitor, um die Leistungskonsole zu öffnen.

  3. Klicken Sie in der Leistungskonsole auf der Symbolleiste Systemmonitor auf das Additionszeichen (+), um dem Server Leistungsindikatoren hinzuzufügen.

  4. Nehmen Sie im Dialogfeld Leistungsindikatoren hinzufügen die folgenden Einstellungen vor:
    Option | Aktion
    Leistungsindikatoren des lokalen Computers verwenden | Wählen Sie diese Option aus, wenn die ausgewählten Indikatoren für jeden Computer verwendet werden sollen, auf dem die Leistungskonsole ausgeführt wird.
    Leistungsindikatoren dieses Computers verwenden | Wählen Sie diese Option aus, wenn die ausgewählten Indikatoren für einen bestimmten Computer im Netzwerk verwendet werden sollen.
    Datenobjekt | Wählen Sie das Leistungsobjekt aus, für das dieser Indikator gilt. So werden beispielsweise die Leistungsindikatoren der Vorhersageressource unter dem CS2000: Marketing und Katalog-Leistungsobjekt aufgeführt.
    Alle Leistungsindikatoren | Wählen Sie diese Option aus, um sämtliche Indikatoren für das ausgewählte Leistungsobjekt einzubeziehen.
    Leistungsindikatoren wählen | Wählen Sie diese Option aus, um individuelle Indikatoren für das ausgewählte Leistungsobjekt festzulegen.
    Alle Instanzen | Wählen Sie diese Option aus, um sämtliche Instanzen für den ausgewählten Indikator anzuzeigen.
    Instanzen wählen | Wählen Sie diese Option aus, um festzulegen, dass der Systemmonitor sämtliche in der Liste ausgewählten Instanzen verwenden soll.

  5. Bei Bedarf können Sie auf Erklären klicken, um ein Dropdownfeld zu öffnen, das Erläuterungen zu den einzelnen Leistungsindikatoren enthält.

  6. Klicken Sie auf Hinzufügen, um alle ausgewählten Indikatoren hinzuzufügen, und klicken Sie dann auf Schließen.

Die von Ihnen ausgewählten Leistungsindikatoren werden nun angezeigt und in der Leistungskonsole des Systemmonitors ausgeführt. In der folgenden Abbildung wird das Dialogfeld Leistungsindikatoren hinzufügen mit den Leistungsindikatoren für das CS2000: Pipelines-Objekt dargestellt.

Leistungsindikatoren hinzufügen (Dialogfeld)

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.


Hardwareleistungsindikatoren

In der folgenden Tabelle werden die zu überwachenden Hardwareleistungsindikatoren beschrieben. Diese Indikatoren befinden sich im Systemmonitor unter Microsoft Windows 2000. Es empfiehlt sich, jeden Server Ihres Data Centers mithilfe von Leistungsindikatoren zu überwachen und die Ergebnisse im Überblick zu betrachten. Die Indikatoren der System- und Arbeitsspeicher-Objekte können zur Überwachung der Kapazität verwendet werden.

Leistungsobjekt | Name des Leistungsindikators | Beschreibung
Netzwerksegment | Empfangene Bytes/Sekunde Gesendete Bytes/Sekunde | Wenn eine Netzwerkkarte ihre maximale Leistungsfähigkeit erreicht, muss eine weitere Netzwerkkarte hinzugefügt werden. Wenn der Wert die Kapazitätsgrenze des Netzwerks erreicht, ist unter Umständen eine höhere Netzwerkbandbreite erforderlich.
Inetinfo Instance (im Prozess-Objekt) | Virtuelle Größe | Überwachen Sie diesen Indikator auf einen Arbeitsspeicherverlust oder Situationen, in denen die Größe zur Auslastung des maximal verfügbaren RAM führt. Mit diesem Leistungsindikator werden die virtuellen Speicherreservierungen ermittelt.
 | Arbeitsseiten | Sollte im mittleren Auslastungsbereich der verfügbaren Hardwarekapazität liegen, d. h. weniger als den physischen RAM benötigen.
Arbeitsspeicher | Verfügbare Bytes | Sollte mehr als 4 MB betragen.
 | Seiten/Sekunde | Sollte weniger als eine Seite pro Sekunde betragen. Wenn der Systemspeicher erschöpft ist, handelt es sich hierbei um den deutlichsten Hinweis auf das Problem.
Physikalischer Datenträger | Schreibvorgänge/s Lesevorgänge/s | Diese beiden Indikatoren sollten zusammen weit unterhalb der maximalen Kapazitätsgrenze des Datenträgers liegen.
 | Zeit (%) | Die Zeitdauer in Prozent, die das ausgewählte Laufwerk benötigt, um Lese- oder Schreibanforderungen zu bedienen.
SQL Server | E/A-Transaktionen/Sekunde | Gibt die tatsächliche Aktivität des SQL Server-Computers an.
 | Kompilierungen/Sekunde Neukompilierungen/Sekunde | Gibt die Effektivität der von SQL Server ausgeführten Abfragen an. In der Reduzierung dieses Werts liegt die wichtigste Möglichkeit, die CPU auf dem SQL Server-Computer zu entlasten.
System | Kontextänderungen/s | Wenn dieser Wert bei mehr als 5.000 Kontextänderungen pro CPU liegt, muss ein weiterer Server zur horizontalen Skalierung des Systems hinzugefügt werden.
 | Gesamtprozessorzeit | Die Spitzenauslastung kann bei 100 % liegen, konstant sollte die Kapazitätsgrenze des Prozessors jedoch nicht überschritten werden. Sämtliche Serverelemente können horizontal skaliert werden.
Web | Verbindungen insgesamt | Die Anzahl der aktiven TCP-Verbindungen (Transmission Control Protocol) zum Server.
 | Get-Anforderungen/Sekunde | Die Anzahl der HTTP-Anforderungen (Hypertext Transfer Protocol), die der Server erhält. Hierbei handelt es sich um den primären Leistungsindikator für den Datenverkehr in einer Website.
 | Nicht-anonyme Benutzer/Sekunde | Verfolgt die Anzahl der Anforderungen authentifizierter Benutzer in einer Site.
Active Server Pages | Anforderungen/Sekunde | Gibt an, wie viele Anforderungen pro Sekunde von ASP verarbeitet werden. Es werden sowohl erfolgreiche als auch fehlgeschlagene Anforderungen berücksichtigt.
 | Ausgeführte Anforderungen | Die durchschnittliche Anzahl an Anforderungen, die in der Beispielperiode ausgeführt werden. Internet-Informationsdienste (IIS) 5.0 verfügt über zahlreiche Threads, die Anforderungen gleichzeitig ausführen können.
 | Wartezeit für Anforderungen | Sollte gegen 0 gehen (weniger als 100 Millisekunden), da es sich hierbei um den Zeitraum handelt, den eine Anforderung bis zur Verarbeitung in der Warteschlange verbleibt. Die Auftragsabschlusstransaktionen der Benutzer sollen schließlich zügig bearbeitet werden.
 | Anforderungen in Warteschlange | Nennenswerte Wartezeiten sollten grundsätzlich nicht anfallen, außer in Spitzenzeiten.

Empfangene Bytes/Sekunde

Vergleichen Sie den Indikator Empfangene Bytes/Sekunde mit der gesamten Bandbreite der Netzwerkkarte, um festzustellen, ob die Netzwerkverbindung einen Engpass verursacht. Um über freie Kapazitäten in Spitzenzeiten zu verfügen, sollte die Auslastung der Kapazität in der Regel 50 % nicht übersteigen. Wenn dieser Prozentsatz sehr nah an der Kapazitätsgrenze der Verbindung liegt und Prozessor und Arbeitsspeicher nur mäßig ausgelastet sind, liegt das Problem möglicherweise in der Verbindung.

Ausgeführte Anforderungen

Wenn der Leistungsindikator Ausgeführte Anforderungen immer einen Wert über eins (1) anzeigt, kann ein Problem in einer ASP-Seite oder einem ASP-Objekt vorliegen, das zum Blockieren einer Anforderung führt. Ist der Wert nie größer als eins, auch in Spitzenzeiten nicht, ist möglicherweise das ASP-Bugging in der Site noch aktiviert.


Commerce Server-Leistungsindikatoren

In der folgenden Tabelle sind die in Commerce Server 2000 verfügbaren Leistungsindikatoren aufgeführt. Es empfiehlt sich, diese Leistungsindikatoren im Systemmonitor auszuführen. Dieser befindet sich im Konsolenstamm von Commerce Server-Manager.

Leistungsobjekt | Name des Leistungsindikators | Beschreibung
CS2000: Benutzerprofilverwaltung | AuthMgr: Anonyme Tickets/s | Die Anzahl der Tickets bzw. der Eigenschaft/Wert-Paare, die für anonyme Benutzer pro Sekunde in einer bestimmten Commerce-Site eingestellt werden.
 | Fehlgeschlagene Authentifizierungsüberprüfungen/s | Die Anzahl der fehlgeschlagenen Authentifizierungsüberprüfungen pro Sekunde in einer bestimmten Commerce-Site.
 | AuthMgr: Erfolgreiche Authentifizierungsüberprüfungen/s | Die Anzahl der erfolgreichen Authentifizierungsüberprüfungen pro Sekunde in einer bestimmten Commerce-Site.
 | AuthMgr: Authentifizierungs-Manager-Objekte/s | Die Anzahl der Authentifizierungs-Manager-Objekte, die pro Sekunde in einer bestimmten Commerce-Site erstellt werden.
 | AuthMgr: Authentifizierungstickets/s | Die Anzahl der Authentifizierungstickets pro Sekunde in einer bestimmten Commerce-Site.
 | AuthMgr: Custom-Eigenschaften/s | Die Anzahl der in einer bestimmten Commerce-Site pro Sekunde eingestellten Custom-Eigenschaften.
 | AuthMgr: Get_Custom-Eigenschaften/s | Die Anzahl der pro Sekunde in einer bestimmten Commerce-Site eingestellten Get_Custom-Eigenschaften. Der Leistungsindikator GetProperty() ruft die Werte für Custom-Eigenschaften vom Benutzercookie ab.
 | AuthMgr: Anonyme Tickets gesamt | Die Gesamtanzahl der Tickets bzw. der Eigenschaft/Wert-Paare, die für anonyme Benutzer in einer bestimmten Commerce-Site eingestellt werden.
 | AuthMgr: Fehlgeschlagene Authentifizierungsüberprüfungen gesamt | Die Gesamtanzahl der fehlgeschlagenen Authentifizierungsüberprüfungen in einer bestimmten Commerce-Site.
 | AuthMgr: Erfolgreiche Authentifizierungsüberprüfungen gesamt | Die Gesamtanzahl der erfolgreichen Authentifizierungsüberprüfungen in einer bestimmten Commerce-Site.
 | AuthMgr: Erstellte AuthMgr-Objekte insgesamt | Die Gesamtanzahl der Authentifizierungs-Manager-Objekte, die in einer bestimmten Commerce-Site erstellt werden.
 | AuthMgr: Authentifizierungstickets gesamt | Die Gesamtanzahl der Authentifizierungstickets in einer Commerce-Site.
 | AuthMgr: Custom-Eigenschaften gesamt | Die Gesamtanzahl der Custom-Eigenschaften, die in einer bestimmten Commerce-Site eingestellt werden.
 | AuthMgr: Get_Custom-Eigenschaften gesamt | Die Gesamtanzahl der Get_Custom-Eigenschaften, die in einer bestimmten Commerce-Site eingestellt werden.
 | AuthFilter: Tokencacheeinträge (gesamt) | Die Gesamtanzahl der Tokencacheeinträge im Windows-Authentifizierungsmodus.
 | AuthFilter: Tokencachegröße (Bytes) | Die Tokencachegröße in Bytes im Windows-Authentifizierungsmodus.
 | AuthFilter: Tokencacheeinträge (Aktiv) | Die aktuelle Anzahl der aktiven Tokencacheeinträge im Windows-Authentifizierungsmodus.
 | AuthFilter: Windows-Authentifizierungscachezugriffe | Die Gesamtanzahl der Kennwortcachezugriffe im Windows-Authentifizierungsmodus.
 | AuthFilter: Windows-Authentifizierungscachezugriffe/s | Die Anzahl der Kennwortcachezugriffe im Windows-Authentifizierungsmodus pro Sekunde.
 | AuthFilter: Windows-Authentifizierungscachefehler | Die Gesamtanzahl der Kennwortcachefehler im Windows-Authentifizierungsmodus.
 | AuthFilter: Windows-Authentifizierungscachefehler/s | Die Anzahl der Kennwortcachefehler im Windows-Authentifizierungsmodus pro Sekunde.
 | AuthFilter: Erfolgreiche Windows-Authentifizierungsüberprüfungen gesamt | Die Gesamtanzahl der erfolgreichen Windows-Authentifizierungsüberprüfungen mithilfe des ISAPI-Filters (Internet Server Application Program Interface). Gibt an, wie oft der Filter insgesamt die Anmeldeinformationen an Internet-Informationsdienste (IIS) 5.0 überträgt und diese erfolgreich zurückgegeben werden.
 | AuthFilter: Erfolgreiche Windows-Authentifizierungsüberprüfungen/Sekunde | Die Anzahl der erfolgreichen Windows-Authentifizierungsüberprüfungen pro Sekunde.
 | AuthFilter: Fehlgeschlagene Windows-Authentifizierungsüberprüfungen gesamt | Die Gesamtanzahl der fehlgeschlagenen Windows-Authentifizierungsüberprüfungen.
 | AuthFilter: Fehlgeschlagene Windows-Authentifizierungsüberprüfungen/Sekunde | Die Anzahl der fehlgeschlagenen Windows-Authentifizierungsüberprüfungen pro Sekunde.
 | AuthFilter: Autocookies gesamt | Die Gesamtanzahl der generierten Autocookies.
 | AuthFilter: Autocookies/s | Die Anzahl der generierten Autocookies pro Sekunde.
 | AuthFilter: Fehlgeschlagene Anforderungen gesamt | Die Anzahl der Fehlversuche, die entweder durch einen Vollfiltercache verursacht wurden oder weil nach dem Auftreten eines Fehlers durch einen Filter auf eine Fehlerseite umgeleitet wurde.
 | UPM: Objektlesezugriffe | Die Gesamtanzahl der abgerufenen Profilobjekte.
 | UPM: Objektlesezugriffe/s | Die Anzahl der abgerufenen Profilobjekte pro Sekunde.
 | UPM: Objekterstellungen | Die Gesamtanzahl der erstellten Profilobjekte.
 | UPM: Objekterstellungen/s | Die Anzahl der erstellten Profilobjekte pro Sekunde.
 | UPM: Objektlöschungen | Die Gesamtanzahl der gelöschten Profilobjekte.
 | UPM: Objektlöschungen/s | Die Anzahl der gelöschten Profilobjekte pro Sekunde.
 | UPM: Objektänderungen | Die Gesamtanzahl der geänderten Profilobjekte.
 | UPM: Objektänderungen/s | Die Anzahl der geänderten Profilobjekte pro Sekunde.
 | UPM: Cacheobjekte | Die Gesamtanzahl der Cacheobjekte.
 | UPM: Cachezugriffsrate/Sekunde | Die Anzahl der Cachezugriffe pro Sekunde.
 | UPM: Cachefehlerrate/Sekunde | Die Anzahl der Cachefehlzugriffe pro Sekunde.
 | UPM: Hintergrundthreadstatus | Der Wert für diesen Indikator lautet entweder 1 (Ein) oder 0 (Aus) und zeigt an, ob der Hintergrundthread derzeit aktiv ist.
 | UPM: Anzahl der Cacheleerungen | Gibt an, wie oft der Vordergrundthread Einträge aus dem Profilobjektcache löscht, um einen freien Speicherblock zu finden.
 | UPM: Exportierte DTS-Datensätze/s | Die Anzahl der exportierten DTS-Datensätze (Data Transaction Services) pro Sekunde.
 | UPM: Exportierte DTS-Datensätze | Die Gesamtanzahl der exportierten DTS-Datensätze.
 | UPM: DTS-Exportfehler | Die Gesamtanzahl der DTS-Fehler, die beim Export auftreten. Hierbei handelt es sich um die Gesamtsumme der Anzahl nicht übereinstimmender Felder und Objekte, die nicht vom Datawarehouse aufgezeichnet werden konnten.
Katalog | Katalogabfragen/s | Die Anzahl der im Katalogsystem ausgeführten Abfragen pro Sekunde. Zum Aufzeichnen der Werte für die Leistungsindikatoren werden Abfrage und Freitextsuche verwendet. Die Aufzeichnung der Leistungsindikatoren ist ausschließlich über diese beiden Methoden möglich.
Datawarehouse und Analyse | CatImport: Kataloge gesamt | Gesamtanzahl der während dieses DTS-Importtasks importierten Kataloge.
 | CatImport: Kategorien gesamt | Gesamtanzahl der während dieses DTS-Importtasks importierten Kategorien.
 | CatImport: Produkte gesamt | Gesamtanzahl der während dieses DTS-Importtasks importierten Produkte.
 | UImport: Freie Zugriffspuffer | Die Anzahl der derzeit verfügbaren freien Zugriffspuffer.
 | UImport: Verwendete Zugriffspuffer | Die Anzahl der derzeit ausgelasteten Zugriffspuffer.
 | UImport: Zugriffe/Sekunde | Gibt an, wie viele Zugriffe pro Sekunde der Importtask verarbeitet.
 | UImport: Aktueller Besuch | Die Gesamtanzahl der aktiven Besuche, die während der Verarbeitung der Protokolle aufgezeichnet werden.
 | UImport: E-Commerce-Ereignisse | Die Gesamtanzahl der Commerce Server-Ereignisse für den Importtask.
 | UImport: Decodierte Cookies | Die Gesamtanzahl UPM-dekodierter Cookies, die bei der Ausführung dieses Importtasks aufgetreten sind.
 | UImport: Abfragezeichenfolgen | Die Gesamtanzahl der Abfragezeichenfolgen, die bei der Ausführung dieses Importtasks verarbeitet wurden.
 | Aufgelöste IPs gesamt | Die Gesamtanzahl der beim DTS-IP-Auflösungstask aufgelösten IP-Adressen.
 | Nicht aufgelöste IPs gesamt | Die Gesamtanzahl der beim DTS-IP-Auflösungstask nicht aufgelösten IP-Adressen.
 | Provider: SetColumns gesamt | Gibt an, wie oft SetColumns() insgesamt aufgerufen wurde.
 | Provider: Zeilencommits/Sekunde | Die Anzahl der pro Sekunde gespeicherten Zeilen.
CS2000: Marketing und Katalog | DML: Direktsendungsfehler/s | Die Anzahl der von Direct Mailer zurückgegebenen Fehler pro Sekunde.
 | DML: Ausgeführte Direktsendungsaufträge | Die Gesamtanzahl der derzeit ausgeführten Direct Mailer-Aufträge.
 | DML: E-Mail-Nachrichten gesendet/s | Die Anzahl sämtlicher von Direct Mailer-Aufträgen gesendeten E-Mail-Nachrichten pro Sekunde.
 | DML: Direktsendungsfehler gesamt | Die Gesamtanzahl der von sämtlichen Direct Mailer-Aufträgen zurückgegebenen Fehler.
 | DML: Gesendete Nachrichten gesamt | Die Gesamtanzahl der E-Mail-Nachrichten, die von sämtlichen Direct Mailer-Aufträgen gesendet wurden.
 | EEE: Bewertungen/s | Die Anzahl der pro Sekunde bewerteten Ausdrücke.
 | EEE: Gesamtanzahl | Die Gesamtanzahl der zurzeit im Ausdruckscache befindlichen Ausdrücke.
 | EEE: Eigenschaftscachezugriffe | Die Gesamtanzahl der Eigenschaftscachezugriffe seit dem Systemstart.
 | EEE: Eigenschaftslesezugriffe | Die Gesamtanzahl der seit dem Systemstart von der Ausdrucksbewertung gelesenen Eigenschaften.
 | EEE: Eigenschaftslesezugriffe/s | Die Anzahl der von der Ausdrucksbewertung pro Sekunde gelesenen Eigenschaften.
 | EEE: Ergebniscachezugriffe | Die Gesamtanzahl der Cachezugriffe seit dem Systemstart.
 | EEE: Bewertungsfehler gesamt | Die Gesamtanzahl der zurückgegebenen Bewertungsfehler.
 | EEE: Auswertungen gesamt | Die Gesamtanzahl der seit dem Systemstart zurückgegebenen Bewertungen, einschließlich sowohl der erfolgreichen als auch der fehlerhaften Bewertungen.
 | LRUCache: Cachegröße | Die Gesamtanzahl der Einträge im Cache. Der Cache kann um 10 % über die vom Benutzer festgelegte Größe hinaus anwachsen. In diesem Fall erfolgt eine Leerung, die den Cache auf die vorab festgelegte Größe zurückführt. LRUCache-Leistungsindikatoren werden nach Site und nicht nach dem einzelnen Cache gruppiert.
 | LRUCache: Leerungen/s | Die Anzahl der Elemente, die pro Sekunde aus dem Cache gelöscht werden, um neue Elemente im Cache aufzunehmen. Es werden vom LRU-Alogrithmus gelöschte Elemente und manuell gelöschte Elemente aufgezeichnet.
 | LRUCache: Zugriffe/s | Die Anzahl der Cachezugriffe pro Sekunde für den Cache.
 | LRUCache: Fehler/s | Die Anzahl der Cachefehlzugriffe pro Sekunde für den Cache.
 | Vorhersagedienst: Modellladungen gesamt | Die Anzahl der geladenen Modelle seit dem letzten Neustart des Dienstes.
 | Vorhersagedienst: Durchschn. Clientvorhersagezeit | Die durchschnittliche Zeitdauer bis zur Rückgabe der Vorhersage.
 | Vorhersagedienst: Clientmodellladungen aus Datei | Gibt an, wie oft ein Analysemodell aus einer Datei geladen wird.
 | Vorhersagedienst: Clientvorhersagen gesamt | Die Gesamtanzahl der Vorhersagen.
CS2000: Pipelines | Durchschnittliche Ausführungszeit | Die durchschnittliche Ausführungszeit für die betreffende Pipelinekomponente in Mikrosekunden.
 | Gesamtanzahl von Fehlern | Die Gesamtanzahl von Fehlern auf Fehlerebene 3, die durch die betreffende Pipelinekomponente (PIPEERRORLEV_FAIL) oder FAILED HRESULT zurückgegeben wurde.
 | Fehler pro Sekunde | Die Anzahl der durch die betreffende Pipelinekomponente erzeugten Fehler pro Sekunde.
 | Ausführungen gesamt | Die Gesamtanzahl von Ausführungen der betreffenden Pipelinekomponente.
 | Ausführungen pro Sekunde | Die Anzahl von Ausführungen durch die betreffende Pipelinekomponente pro Sekunde.
 | Warnungen gesamt | Die Gesamtanzahl von Warnungen auf Fehlerebene 2, die von der betreffenden Pipelinekomponente (PIPEERRORLEV_WARN) zurückgegeben wurde.
 | Warnungen pro Sekunde | Die Anzahl der von der Pipelinekomponente pro Sekunde zurückgegebenen Warnungen.

Anmerkungen

  • Für das Data Warehouse and Analysis-Objekt werden die Datawarehouse-Leistungsindikatoren lediglich beim Importieren von Datengruppen wie beispielsweise DTS-Tasks, Benutzer und Kataloge verwendet. Aus diesem Grund müssen die Datawarehouse-Leistungsindikatoren als anonyme Server eingerichtet werden.

  • Für das CS2000: Pipelines-Objekt ist eine Instanz jedes Pipelineindikators für die gesamte Pipeline vorhanden.

Fehlgeschlagene Authentifizierungsüberprüfungen/s

Der Indikator Fehlgeschlagene Authentifizierungsüberprüfungen/s bezeichnet die Anzahl der fehlgeschlagenen Authentifizierungsüberprüfungen pro Sekunde. Der Wert dieses Indikators erhöht sich, wenn die IsAuthenticated()-Funktion fehlschlägt. Dies kann der Fall sein, wenn kein Authentifizierungsticket im Cookie vorhanden bzw. das im Cookie vorhandene Authentifizierungsticket abgelaufen ist.

AuthFilter: Tokencachegröße

Der Leistungsindikator Tokencachegröße bezeichnet die Anzahl der im Filtercache gespeicherten Benutzertoken. Diese Anzahl kann im SiteConfig-Objekt in der Microsoft Management Console (MMC) geändert werden. Eine Änderung nehmen Sie dann vor, wenn der Server über ausreichend RAM verfügt und die Site häufig innerhalb eines kurzen Zeitraums von zahlreichen verschiedenen Benutzern aufgerufen wird.

Katalogabfragen/s

Der Leistungsindikator Katalogabfragen/s bezeichnet die Anzahl der Abfragen pro Sekunde über das CS2000: Marketing und Katalog-Objekt auf einem Server. Diese Abfragen umfassen sämtliche Abfragen im Zusammenhang mit Kategorien und Produkten ebenso wie die Freitextsuche. Sie können die Abfragen im Produktkatalogsystem reduzieren, indem Sie einen Produktcache oder einen Suchcache zur Verbesserung der Leistung verwenden. Die Freitextsuche kann ebenfalls mit dem Microsoft Leistungsindikator Suchabfragen/Sekunde verfolgt werden.

Bei der Anzahl der Katalogabfragen handelt es sich um die Anzahl ohne Zwischenspeicherungen. Wenn die Anzahl hoch ist, sollte der Anwendungscode geändert werden, um einen lokalen Mechanismus für das Zwischenspeichern nutzen zu können, wie beispielsweise den Leistungsindikator LRUCache.

DML: Ausgeführte Direktsendungsaufträge

Der Leistungsindikator Ausgeführte Direktsendungsaufträge ermittelt die Zahl der gleichzeitigen Aufträge. Bei diesem Dienst gibt es keine spezielle Synchronisierungsmethode. Eine größere Zahl an gleichzeitigen Aufträgen kann, muss aber nicht, zu einem höheren Durchsatz führen.


Überwachen der Vorhersageressource

Sie können Leistungsindikatoren einsetzen, um die Leistung der Vorhersageressource zu überwachen. Die Vorhersageressource verfügt über vier Leistungsindikatoren. Mit dem Leistungsindikator Durchschn. Clientvorhersagezeit können Sie ermitteln, wie schnell die Vorhersagen erfolgen. Die drei anderen Leistungsindikatoren ermitteln, wie oft bestimmte Vorgänge für das PredictorClient-Objekt aufgerufen werden.

Die Leistungsindikatoren für die Vorhersageressource sind lediglich auf Computern verfügbar, auf denen das PredictorClient-Objekt verwendet wird, wie dies beispielsweise bei Webservern der Fall ist. Jeder Leistungsindikator erfasst Werte pro Site, sodass bei mehreren aktiven Instanzen des PredictorClient-Objekts in einer einzelnen Site die Gesamtanzahl der Leistungsindikatoren als Gesamtsumme für die komplette Site dient.

In der folgenden Tabelle werden die in der Vorhersageressource verfügbaren Leistungsindikatoren aufgeführt.

Leistungsindikator | Beschreibung
Durchschn. Clientvorhersagezeit | Verwenden Sie diesen Leistungsindikator, um die durchschnittlich benötigte Zeit für die Rückgabe einer Vorhersage zu ermitteln. Sie erhalten eine Schätzung darüber, wie viel Zeit bei jedem Aufruf des PredictorClient-Objekts verstreicht. Eine andere Möglichkeit besteht in der Verwendung dieses Leistungsindikators ohne Einfügen eines Zeitcodes in der ASP-Seite. Dieser Leistungsindikator kann auch eingesetzt werden, um zu testen, wie sich die Anforderung weiterer Vorhersagen (durch Erhöhung des Wertes für das lMaxPredictions-Objekt) auf die Leistung auswirkt. Sie können auch die Leistung der Predict-Methode im PredictorClient-Objekt für verschiedene Modelle vergleichen. Dieser Leistungsindikator misst in Millisekunden.
Clientmodellladungen aus Datei | Verwenden Sie diesen Leistungsindikator, um zu ermitteln, wie oft ein Analysemodell mithilfe der LoadModelFromFile-Methode aus einer Datei geladen wird.
Clientmodellladungen aus Datenbank gesamt | Verwenden Sie diesen Leistungsindikator, um zu ermitteln, wie oft insgesamt ein Analysemodell mithilfe der LoadModelFromDB-Methode aus einer Datenbank geladen wird.
Clientvorhersagen gesamt | Verwenden Sie diesen Leistungsindikator, um die Gesamtanzahl der Clientvorhersagen zu ermitteln. Mit diesem Leistungsindikator können Sie nachvollziehen, wie oft die Predict-Methode im PredictorClient-Objekt aufgerufen wird.

Siehe auch

Commerce Server-Leistungsindikatoren

Hardwareleistungsindikatoren


Optimieren von Commerce Server

Mit der Analyse und Optimierung der Systemleistung von Microsoft Commerce Server 2000 stellen Sie sicher, dass Ihre Website die erforderlichen Ebenen des Internetverkehrs bewältigen kann. Zur Optimierung des Systems analysieren Sie zunächst das aktuelle System und die aktuellen Transaktionen und ermitteln dann, wie viele Benutzer gleichzeitig in normalen und in Spitzenzeiten auf die Site zugreifen. Im Anschluss daran können Sie zur Leistungsoptimierung entsprechende Änderungen am System vornehmen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Analysieren des aktuellen Systems. Beschreibt, wie Sie eine Analyse des Systems vornehmen und die Sitekapazität verbessern.

  • Verwenden der Transaktionskostenanalyse (TCA). Beschreibt, wie Sie die Kosten verschiedener Arten von Webtransaktionen in Ihrer Site ermitteln, um die Leistung zu steigern.

  • Verwalten der Leistung. Beschreibt Methoden zur Leistungsoptimierung von Commerce Server.

  • Problembehandlung in Bezug auf die Leistung. Führt allgemeine Probleme auf, die bei der Verwendung von Commerce Server-Optimierungstools auftreten können. Führt darüber hinaus weitere Ressourcen für die Problembehandlung anderer Bereiche von Commerce Server auf.

  • Weitere Informationen zur Optimierung. Führt online und in gedruckter Form vorliegende Ressourcen sowie Tools zur Optimierung von Commerce Server auf.


Analysieren des aktuellen Systems

Mit einer Analyse der aktuellen Systemkonfiguration verschaffen Sie sich einen besseren Überblick über die Auswirkungen der Systemkonfiguration auf die Gesamtsystemleistung. Nach Abschluss der Siteanalyse können Sie die gesammelten Informationen für die Optimierung und Skalierung sämtlicher Bereiche Ihrer Site verwenden. Sie können beispielsweise die Konfiguration ändern, die Funktionsweise der Software ändern oder die Hardware verbessern.

Beim Optimieren und Skalieren der Site müssen unter Umständen Änderungen an der aktuellen Konfiguration vorgenommen werden. Um die Auswirkungen einer Konfigurationsänderung auf die Leistung genau einschätzen zu können, müssen Sie die aktuelle Systemkonfiguration kennen. Bei der Analyse der Basiskonfiguration Ihres Systems sollten die folgenden Aspekte berücksichtigt werden:

  • Hardware: Nehmen Sie eine Bestandsaufnahme der Konfiguration der einzelnen Computer einschließlich der Platinen, der Peripheriegeräte (ohne Maus und Tastatur) sowie der Netzwerkgeräte vor. Erstellen Sie ein Systemdiagramm, in dem die logische Verknüpfung der Teile und deren Funktionen dargestellt werden. Geben Sie beispielsweise an, ob ein Server als Webserver oder als Datenbankserver dient. In der folgenden Abbildung sehen Sie ein Beispiel für ein Hardwarediagramm.
Seagate ST32272A 2,2-GB-Laufwerk Seagate ST38422A 8,6-GB-Laufwerk
Seagate ST32272A 2,2-GB-Laufwerk Seagate ST38422A 8,6-GB-Laufwerk
2 LDAP-Server
2x PII 400, 512 MB 100-MB-NIC
Compaq
RAID Array 3000
SQL Server
4x Xeon 400, 512 MB 100-MB-NIC
Seagate ST32272A
2,2-GB-Laufwerk
Webserver
2xPII 400, 512 MB 2x100-MB-NIC
NLB
Windows 2000
Internet
Client
NLB
NLB
100 Base T
T1-Verbindung
Webserver
2xPII 400, 512 MB 2x100-MB-NIC

  • Software. Dokumentieren Sie die Software, die auf den einzelnen Computern installiert ist, sowie deren Interaktion mit Software auf anderen Computern. Schließen Sie bei der Dokumentation der auf den einzelnen Computern installierten Software folgende Punkte ein:
    • Buildnummern

    • Logische Schnittstelle zwischen Anwendungen. Wenn beispielsweise eine Anwendung Daten aus einer Datenbanktabelle abruft, beschreiben Sie diese Beziehung.

    • Service Packs

    • Setup-Optionen, die bei der Softwareinstallation verwendet wurden.

    • Systemeinstellungen, wie z. B. die Konfiguration des virtuellen Speichers.

    Erstellen Sie zusätzlich zur Beschreibung der Softwarekonfiguration ein Softwarediagramm. In der folgenden Abbildung sehen Sie ein Beispiel für ein Softwarediagramm.

NLB
3 Suchserver
Internet Explorer 5.5 Windows 2000
Commerce Server 2000
2 LDAP-Server Internet Explorer 5.5 Commerce Server 2000 Windows 2000
Windows 2000
SQL Server 2000
3 Einkaufsserver
Internet Explorer 5.5
Windows 2000
Commerce Server 2000
Windows 2000
Internet
Client
NLB
NLB
100 Base T
T1-Verbindung

  • Inhalt. Beschreiben Sie die Inhalte, die den einzelnen Servertypen seit der Installation von Commerce Server 2000 hinzugefügt wurden. Es empfiehlt sich beispielsweise, jede einzelne Datei und die Verzeichnisstruktur zu dokumentieren, in der die Dateien auf Webservern und Datenbankservern gespeichert werden. Darüber hinaus müssen Dokumentinformationen festgehalten werden, so z. B. Einstellungen für Berechtigungen, Informationen zum Dateisystem, zu Datenbankskripts, Konfigurationsdateien, Datendateien usw.

  • Lastenausgleich. Dokumentieren Sie sämtliche Orte, an denen Sie den Netzwerklastenausgleich (NLB) verwenden. Haben Sie Ihre Site beispielsweise mithilfe von NLB oder Hardwarelastenausgleich über mehrere Server skaliert?


Verwenden der Transaktionskostenanalyse (TCA)

Bei der Transaktionskostenanalyse (TCA) handelt es sich um eine Methode zur Messung der Sitekapazität. Mithilfe der TCA werden die Leistungskosten einer Transaktion, die Sitekapazität hinsichtlich der Bewältigung des Datenverkehrs sowie die Kosten, die bei der Ausführung verschiedener Transaktionstypen in der Site entstehen, ermittelt. Die mit der TCA ermittelten Ergebnisse in Bezug auf die Sitekapazität dienen dazu, die Leistungsfähigkeit der einzelnen Systemkomponenten zu erhöhen. Darüber hinaus besteht die Möglichkeit, Servertransaktionen miteinander zu vergleichen, um festzustellen, welche Transaktionen das System am stärksten beanspruchen.

Der Begriff Transaktion in Transaktionskostenanalyse bezieht sich auf die Arbeitsleistung eines oder mehrerer Server (Webserver, Server der mittleren Ebene und SQL Server-Computer) zur Ausführung einer Benutzeranforderung. So kann es sich bei einer Transaktion beispielsweise um die Anforderung eines Benutzers für eine Produktbeschreibungsseite, die in einer Datenbank gespeichert ist, ebenso wie um eine Anforderung zum Hinzufügen eines Artikels zu einem Warenkorb handeln. Der Begriff bezieht sich nicht auf E-Commerce-Transaktionen, in denen Geld ausgetauscht wird.

Analysieren des Datenverkehrs

Erstellen eines Verwendungsprofils

Messen der Sitekapazität

Erhöhen der Websitekapazität

Erhöhen der Kapazität der mittleren Ebene

Erhöhen der Datenbankkapazität

Analysieren des Datenverkehrs

Nachdem Sie das aktuelle System analysiert und die Hardware und Software dokumentiert haben, müssen Sie ermitteln, wie viele Benutzer die Site in der Regel gleichzeitig nutzen. Diese Daten entnehmen Sie üblicherweise folgenden Quellen:

  • Marktanalyse. Hierbei handelt es sich um die Analyse einer neuen Site. Sie können eine Marktanalyse in Auftrag geben, um den zu erwartenden Datenverkehr in der Site zum Zeitpunkt der Bereitstellung und im Anschluss daran einschätzen zu können. Eine solche Analyse können Sie dann als Grundlage für Ihre TCA heranziehen.

  • Siteverwendungsanalyse. Hierbei handelt es sich um die Analyse einer bereits vorhandenen Site. Analysieren Sie die Webserver-Protokolldateien, um die Anzahl der Sitezugriffe zu einem beliebigen Zeitpunkt zu ermitteln. Zudem ist die Analyse von Verwendungstrends sinnvoll. Diese gibt Aufschluss darüber, ob die Zahl der Zugriffe auf bestimmte Bereiche der Site im Laufe der Zeit gestiegen oder rückläufig ist. Orientieren Sie sich bei der Berechnung der gleichzeitigen Benutzerzugriffe, die Ihre Site derzeit unterstützt, eher an Spitzenzeiten als an Zeiten mit normalen Zugriffszahlen.

Erstellen eines Verwendungsprofils

Nachdem Sie nun wissen, wie viele Benutzer auf Ihre Site zugreifen, müssen Sie die Zugriffsweise ermitteln, sodass Sie einschätzen können, wie groß die Auslastung Ihres Systems bei einem typischen Benutzer ist. Zu diesem Zweck erstellen Sie zunächst ein Verwendungsprofil, sodass Sie über eine Grundlage verfügen, mit der Sie dann weiterarbeiten können.

Zum Erstellen eines Verwendungsprofils müssen Sie die Verwendungsprotokolldateien Ihrer Site analysieren. Anhand von Protokolldateien, die über einen längeren Zeitraum gesammelt werden (mindestens eine Woche), können Sie einen aussagefähigen Durchschnittswert ermitteln. Legen Sie zunächst fest, welche Vorgänge ein Benutzer ausführen kann, beispielsweise Durchsuchen, Suchen usw. Erfassen Sie dann die folgenden Daten:

  • Anzahl der Sitebenutzer

  • Anzahl der Zugriffe auf die einzelnen Seiten (welche Seiten besucht wurden)

  • Verweildauer auf den einzelnen Seiten

  • Länge der Sitzungen

  • Zeiten, in denen die meiste Aktivität stattfindet

Anhand der Anzahl der Besuche der einzelnen Seiten können Sie typische Benutzervorgänge in Ihrer Site ermitteln. In der folgenden Tabelle wird ein Verwendungsprofil mit typischen Einkäufervorgängen bei einem E-Commerce-Einzelhändler dargestellt.

Einkäufervorgang | Vorgänge pro Sitzung | Vorgänge pro Sekunde (Trankaktionshäufigkeit) | Anteil in Prozent
Artikel hinzufügen | 0,24 | 0,00033 | 2,00
Artikel hinzufügen + Auftragsabschluss | 0,02 | 0,00003 | 0,17
Artikel hinzufügen + Löschen | 0,04 | 0,00006 | 0,33
Warenkorb | 0,75 | 0,00104 | 6,25
Standard (Homepage) | 1,00 | 0,00139 | 8,33
Auflisten | 2,50 | 0,00347 | 20,83
Suchen | 0,75 | 0,00104 | 6,25
Neu | 0,25 | 0,00035 | 2,08
Produkt | 4,20 | 0,000583 | 35,00
Suchen | 1,25 | 0,00174 | 10,42
Willkommen | 1,00 | 0,00139 | 8,33

Messen der Sitekapazität

Die folgende Tabelle enthält drei Ebenen von Servern, die Sie bei der Ermittlung der Sitekapazität berücksichtigen müssen.

Ebene | Servertyp
Obere Ebene | Webserver
Mittlere Ebene | Geschäfts- oder andere Anwendungsserver, Inhaltsserver
Untere Ebene | Datenbankserver

Erhöhen der Websitekapazität

Nachdem Sie die Systemkapazität ermittelt haben, stellen Sie möglicherweise fest, dass das aktuelle System den derzeitigen Datenverkehr in der Website nicht bewältigen kann. Oder Sie befürchten, dass ein bevorstehender Anstieg des Datenverkehrs aufgrund einer neuen Marketinginitiative oder ein saisonbedingter Anstieg wie zum Schulbeginn nach den Ferien oder zu Weihnachten Sie vor Kapazitätsprobleme stellen wird.

Um Leistungseinbußen zu vermeiden, müssen Sie Ihre Webserver probeweise der erwarteten Datenverkehrslast aussetzen. Auf diese Weise können Sie genau ermitteln, an welcher Stelle die Server skaliert werden müssen, damit das erwartete Datenverkehrsaufkommen bewältigt werden kann. (Auch die Durchführung von Berechnungen, um die Anzahl der erforderlichen zusätzlichen Server zu ermitteln, kann ein gangbarer Weg sein, sofern die Kapazitätsprobleme auf eine Ebene beschränkt sind.) Mit dem Systemmonitor können Sie die Leistungsindikatorwerte für verschiedene Serverobjekte überwachen. Sie können die speziellen Leistungsindikatoren von Commerce Server verwenden, um die für Ihr Unternehmen bedeutsamen Serverobjekte anzuzeigen. Weitere Informationen zum Systemmonitor finden Sie in der Hilfe zu Windows 2000 Server.

Um die Kapazität zu steigern, müssen Sie zunächst feststellen, welche Ressourcen erschöpft sind. Auch die Durchführung einer genauen TCA trägt zur Steigerung der Kapazität bei. Sie können die Webserver auf vertikaler Ebene skalieren, indem Sie die Kapazität von Arbeitsspeicher, CPU oder Netzwerk erhöhen. Eine andere Möglichkeit zur Steigerung der Kapazität der Webserver besteht darin, dem Cluster mit Lastenausgleich weitere Server hinzuzufügen. In jedem Fall ist ein tief reichendes Verständnis der Kapazität der gesamten Webfarm eine wesentliche Voraussetzung für jede Entscheidung zur Skalierung einer einzelnen Komponente.

Siehe auch

Verwenden der Transaktionskostenanalyse (TCA)

Commerce Server-Leistungsindikatoren

Erhöhen der Kapazität der mittleren Ebene

Sie können Server der mittleren Ebene für eine Reihe von Zwecken einsetzen, beispielsweise für das Ausführen von Programmen oder das Speichern von Inhalten. Um die Leistung der mittleren Ebene zu bewerten, müssen Sie die folgenden Leistungsindikatoren überwachen:

  • Arbeitsspeicher

  • System

  • Physikalischer Datenträger

Wenn die Werte der genannten Indikatoren unzureichend sind, sollten Sie eine Skalierung auf dieser Ebene vornehmen. Wenn Sie beispielsweise den Indikator Empfangene Bytes/Sekunde überwachen, müssen Sie diesen Indikator mit der gesamten Bandbreite der Netzwerkkarte vergleichen, um festzustellen, ob die Netzwerkverbindung einen Engpass verursacht. Es empfiehlt sich, maximal 50 % der vorhandenen Kapazität zu nutzen, um Spitzen im Besucherdatenverkehr bewältigen zu können. Wenn dieser Prozentsatz sehr nah an der Kapazitätsgrenze der Verbindung liegt und Prozessor und Arbeitsspeicher nur mäßig ausgelastet sind, liegt das Problem möglicherweise in der Verbindung.

Mithilfe des Netzwerklastenausgleichs (NLB) werden verschiedene Computer integriert, auf denen Serverprogramme mit dem TCP/IP-Netzwerkprotokoll ausgeführt werden. Sie können NLB bei einer Gruppe von Terminalservern verwenden, um die Leistung eines einzelnen Terminalservers zu skalieren, indem dessen Clientanforderungen auf mehrere Server verteilt werden. Es gibt jedoch Grenzen bei der Verwendung des Lastenausgleichs bei Terminalservern. Der Grund dafür liegt darin, dass einzelne Benutzer Verbindungen zu verschiedenen Terminalservern innerhalb einer Gruppe herstellen können oder Benutzersitzungen möglicherweise bei der Umverteilung auf einen anderen Terminalserver abgebrochen werden. Damit die Terminaldienste mit dem Lastenausgleich genutzt werden können, müssen Sie sicherstellen, dass die Benutzer immer auf Benutzerinformationen und -einstellungen zugreifen können.

Es kann auch sinnvoll sein, Dokumentation zu Leistungsproblemen, die speziell bei den von Ihnen auf der mittleren Ebene eingesetzten Technologien auftreten, einzubeziehen, um Wege zur Steigerung der Kapazität auf der mittleren Ebene zu finden. Zum Beispiel enthält die Hilfe zu Windows 2000 Server Informationen zum Einsatz des Netzwerklastenausgleichs (NLB), um den Zugriff auf zusätzliche Server zu ermöglichen und so die Kapazität zu steigern.

Weitere Informationen zu NLB finden Sie unter Netzwerklastenausgleich und Terminaldienste und Komponentendienste (COM+) in der Hilfe zu Windows 2000 Server.

Erhöhen der Datenbankkapazität

Um die Kapazität der Datenbank zu erhöhen, müssen Sie zunächst die folgenden Leistungsindikatoren überwachen:

  • Arbeitsspeicher

  • System

  • Physikalischer Datenträger

  • SQL Server

Nachdem Sie diese Indikatoren überwacht haben, können Sie besser entscheiden, ob Sie den Arbeitsspeicher erweitern oder physischen Speicherplatz oder weitere Server hinzufügen müssen. Die Kapazität der Datenbank können Sie durch Hinzufügen eines weiteren Servers erhöhen. Es ist einfacher, einen neuen Server hinzuzufügen, als eine Anwendung, die nicht exklusiv auf einem Datenbankserver installiert ist, auf einem neuen Server zu installieren. Oftmals ist das Erhöhen der Kapazität jedoch nicht lediglich eine Frage von zusätzlichen Servern. Überprüfen Sie die Dokumentation zu Ihrer Datenbankanwendung auf Richtlinien für das Skalieren der Datenbank.


Verwalten der Leistung

Die Leistungsverwaltung Ihrer Commerce Server 2000-Site besteht weitestgehend aus dem Erkennen und Beheben von Engpässen. Ein Engpass entsteht durch eine Hardware- bzw. Softwarekomponente, die an der obersten Kapazitätsgrenze arbeitet. Wenn sich die Auslastung der obersten Kapazitätsgrenze nähert, führt der Engpass zu einer Beeinträchtigung des Arbeitsflusses im System. Mithilfe von Leistungstools können Sie feststellen, welche Hardware- oder Softwarekomponente den Engpass verursacht hat. Dann können Sie die betreffende Hardwarekomponente verbessern, eine Änderung der Konfiguration vornehmen oder die Software optimieren, um die Gesamtleistung zu steigern.

Bei der Leistung handelt es sich lediglich um einen möglichen Faktor, der bei der Optimierung der Commerce Server-Site von Bedeutung sein kann. Weitere wichtige Faktoren sind die problemlose Entwicklung und Wartung, die Time-to-Market, die Verfügbarkeit guter Programmierungstools sowie firmeninternes Fachpersonal für die Siteentwicklung. Bei der Leistungsoptimierung kann jeder der genannten Faktoren eine Rolle spielen.

Der Webentwicklung liegt immer ein Geschäftsfall zugrunde, aufgrund dessen bestimmte Prioritäten gesetzt werden müssen. So kann beispielsweise in Abhängigkeit von den Projektzielen eine bestimmte Programmiersprache oder Datenzugriffstechnologie erforderlich sein. Derartige Entscheidungen wirken sich immer bis zu einem gewissen Grad auf die Leistung aus. Die Festlegung des für Ihre Website erforderlichen Leistungsgrades ist von entscheidender Bedeutung, wobei die Siteentwicklung und -verwaltung dann auf das Erreichen dieses Leistungsgrades ausgerichtet ist.

Websites werden oftmals auf mehreren physischen Ebenen ausgeführt, wobei jede Ebene über eigene Hardware, Systemsoftware und Anwendungssoftware verfügt. Daraus können sich vielfältige Probleme in Bezug auf die Leistung von Webanwendungen ergeben, nämlich Probleme mit Hardwarekomponenten (Clientcomputern, Webservern, Datenbankservern, Netzwerk), mit Systemsoftware (Betriebssystemen, Netzwerksoftware, Systemdiensten), Clientanwendungen, Browsern, logischen Datenbanken, physischen Datenbanken, Datenzugriff usw.

Anhand der folgenden Fragen können Sie Ihre Ziele für die Leistungsoptimierung festlegen:

  • Genügt die Leistung der Site den aktuellen und zukünftigen Zielen?

  • Ist davon auszugehen, dass die aktuelle Konfiguration zu einem Engpass führen wird?

  • Für wie viele Benutzer ist die Site ausgelegt?

Nur bei regelmäßiger Überwachung der Leistung können Sie sichergehen, dass die Site die formulierten Leistungsziele erfüllt. Darüber hinaus kann jede Leistungsminderung, die aus einer Änderung resultiert, bei einer regelmäßigen Leistungsüberwachung frühzeitig erkannt werden. Sie können zur Erfassung von Leistungsdaten vorhandene Systemprogramme verwenden, den Site-Monitor Berichte über seine eigene Leistung erstellen lassen oder spezielle Clientanwendungen zur Steuerung des Systems erstellen.

Wenn Sie die Leistung optimieren möchten, müssen Sie zunächst ermitteln, ob die Systemleistung Ihren Zielen genügt. Genügt die Leistung Ihren Zielen nicht, identifizieren Sie den Engpass, und beheben Sie diesen. Anschließend wiederholen Sie diesen Vorgang, bis das Leistungsziel erreicht ist. Sie können die Leistung stetig weiter erhöhen, wenn die Siteleistung jedoch die Vorgaben erfüllt, ist eine zusätzliche Optimierung grundsätzlich nicht wirtschaftlich.

Dieser Abschnitt beinhaltet folgende Themen:

  • Optimieren des Systems

  • Überwachen und Verwalten von Protokollen

  • Überwachen von Leistungsindikatoren

Siehe auch

Überwachen von Commerce Server-Sites


Optimieren des Systems

Zur Pflege einer Website gehört auch, dass das System stets optimiert wird, um maximale Leistung zu gewährleisten. Lesen Sie regelmäßig in den aktuellen Optimierungsrichtlinien für die von Ihnen eingesetzte Technologie nach, um sicherzustellen, dass Ihre Computersysteme so effektiv wie möglich arbeiten. Informationen zur Systemoptimierung finden Sie im Commerce Server 2000 Resource Kit.


Überwachen und Verwalten von Protokollen

Mit der regelmäßigen Überwachung der Systemprotokolle können Sie schwer wiegenden Fehlern vorbeugen, und Sie sind auf unerwartete Anstiege der Serveraktivität vorbereitet.

  • Überprüfen Sie mindestens zweimal täglich mithilfe der Ereignisanzeige die Ereignisaktivität, und informieren Sie die zuständigen Personen über jegliche Unregelmäßigkeiten.

  • Analysieren Sie mindestens einmal pro Woche die Protokolle von Internet-Informationsdienste (IIS) 5.0 im Hinblick auf Änderungen der Benutzerzugriffstrends. Stellen Sie sicher, dass der in der Website anfallende Datenverkehr innerhalb der Systembeschränkungen liegt. Es kann auch sinnvoll sein, die Webseiten oder das Produktangebot auf Grundlage der Trendanalyse neu zu konfigurieren.

  • Erstellen Sie in regelmäßigen Abständen Sicherungskopien der Datenbankprotokolle, und schneiden Sie die Protokolle regelmäßig ab. Bevor Sie Datenbankprotokolle löschen, sollten Sie sie auf ein externes Speichermedium kopieren, beispielsweise auf ein Bandlaufwerk.

  • Ziehen Sie einen externen Analyseagenten, wie z. B. Keynote Systems, hinzu, um die Seitenwartezeit Ihrer Site von zahlreichen Remotestandorten aus zu überwachen.

Siehe auch

Überwachen von Commerce Server-Sites

Systemmonitor

Verwenden des Snap-Ins für die Ereignisanzeige


Überwachen von Leistungsindikatoren

Mithilfe von Leistungsindikatoren können Sie bestimmte Aspekte der Arbeit überwachen, die auf dem System ausgeführt wird. Im Systemmonitor werden die Indikatoren nach Objekttyp gruppiert. Für Commerce Server-Prozesse, den Arbeitsspeicher, den Cache, die Festplatte und andere Objekttypen, die statistische Informationen erzeugen, ist eine eigene Gruppe von Indikatoren vorhanden. Weitere Informationen zu Commerce Server-Leistungsindikatoren und deren Verwendung finden Sie unter Überwachen von Commerce Server-Sites. Weitere Informationen zum Systemmonitor finden Sie in der Hilfe zu Windows 2000 Server.

Siehe auch

Überwachen von Commerce Server-Sites

Hardwareleistungsindikatoren

Commerce Server-Leistungsindikatoren

Einrichten der Leistungsindikatoren


Problembehandlung in Bezug auf die Leistung

In diesem Hilfethema werden Methoden zur Problembehandlung bei Commerce Server und zur Verbesserung der Systemleistung beschrieben.

Dieser Abschnitt beinhaltet folgende Themen:

  • Beenden nicht erforderlicher Anwendungen

  • Überwachen von Produktionsservern

  • Verwenden von konsistenten Serverkonfigurationen

  • Testtipps

  • Migrieren von Site Server

  • Optimieren von Windows 2000-Servern

  • Suchen spezifischer Leistungsprobleme

  • Verwenden des Arbeitsspeichers

  • Überwachen der wichtigsten Leistungsindikatoren

  • Deaktivieren der Profilerstellung für anonyme Benutzer

  • Ändern der Einstellungen auf der IIS-Registerkarte "Leistung"

  • Deaktivieren von Meldungen zur Debug-Ablaufverfolgung


Beenden nicht erforderlicher Anwendungen

Installieren Sie nur Anwendungen, die für die Ausführung der primären Funktionen des Servers erforderlich sind. Auch wenn eine Anwendung nur vorübergehend installiert und anschließend wieder deinstalliert wird, kann dies zu Problemen führen, wenn sich auf dem Server eine inkompatible DLL (Dynamic Link Library) befindet. Es empfiehlt sich, sämtliche nicht benötigten Anwendungen zu beenden.


Überwachen von Produktionsservern

Zur Überwachung der Produktionsserver Ihrer Webfarm empfiehlt sich die Verwendung eines separaten Servers, der von den Laufzeitdiensten unabhängig ist. Die Überwachung der Server von einem separaten Server aus ist wichtig, weil auf diese Weise die Leistung und der Betrieb der Produktionsserver nicht durch den Überwachungsvorgang beeinträchtigt werden. Wenn Sie einen separaten Server verwenden, können Sie sich ein genaueres Bild über die tatsächliche Leistung der Produktionsserver machen.

Darüber hinaus sollte die Überwachung des Benutzerdatenverkehrs in einem separaten administrativen Netzwerk erfolgen, das unabhängig von dem Netzwerk ist, das den tatsächlichen Datenverkehr verarbeiten muss. Der Systemmonitor und andere Überwachungstools können die Daten von zahlreichen Servern in einer Gesamtansicht zusammenführen. Des Weiteren wird die Datenträger-E/A auf den Web- und Datenbankservern reduziert, was für die Protokollierung dieser Informationen erforderlich ist.


Verwenden von konsistenten Serverkonfigurationen

Server, die dieselbe Funktion haben, sollten auch über dieselbe Softwarekonfigurationen verfügen. So sollte beispielsweise auf sämtlichen Webservern die Softwarekonfiguration übereinstimmen. (Eine Übereinstimmung mit der Konfiguration der Datenbankserver ist jedoch nicht erforderlich.) Eine übereinstimmende Softwarekonfiguration bietet folgende Vorteile:

  • Identische und vorhersehbare Leistung – vorausgesetzt, die Hardware ist ebenfalls entsprechend gewählt.

  • Das Aktualisieren der Software gelingt problemloser.

  • Jegliche Verbesserung, die an einem Server vorgenommen wird, wirkt sich auch auf alle anderen Server aus.


Testtipps

Bevor Sie zur Leistungssteigerung Änderungen an der Produktionssite vornehmen, führen Sie stets in einer Testumgebung einen Praxistest mit der Produktionskonfiguration durch. Das Durchführen von Modultests oder Tests auf Entwicklungssystemen führt nicht zu denselben Ergebnissen wie das Testen der vollständigen Konfiguration bei normalem bzw. maximalem Datenverkehr. Nehmen Sie Änderungen an der Produktionskonfiguration nur dann vor, wenn Sie diese einem vollständigen Test unterzogen haben. Beachten Sie beim Durchführen von Tests die folgenden Grundregeln:

  • Testen Sie jede einzelne Webseite, um sicherzustellen, dass der Inhalt korrekt ist, die Links funktionieren, die gewünschten Ergebnisse zurückgegeben werden und die Leistung Ihren Erwartungen entspricht.

  • Testen Sie das System unter Bedingungen des Datenverkehrs zu Spitzenzeiten, um sicherzustellen, dass es den maximalen Datenverkehr, der im System anfällt, bewältigen kann. Nehmen Sie Tools wie Microsoft Web Application Stress (WAS) und den Systemmonitor zur Hilfe.

  • Überprüfen Sie die Antwortzeit, indem Sie die komplexesten Webseiten bei normalem Datenverkehr aufrufen und gleichzeitig von einem Remotestandort aus mit unterschiedlichen Verbindungsgeschwindigkeiten auf die Website zugreifen.


Migrieren von Site Server

Wenn Ihre Website auf Site Server 3.0 Commerce Edition (SSCE) basiert, müssen Sie genau planen, wie Sie die Anwendung migrieren. Sie können Site Server auf der Plattform Microsoft Windows 2000 unter Verwendung von Site Server 3.0 Commerce Edition, Service Pack 4 einsetzen. Eine detaillierte schrittweise Anleitung zum Migrieren von Site Server 3.0 oder Site Server 3.0 Commerce Edition zu Commerce Server 2000 finden Sie im Commerce Server 2000 Resource Kit. Dieses Resource Kit enthält außerdem Tools, die Sie zur Durchführung der Migration verwenden können.

Informationen, die Ihnen bei der Vorbereitung der Migration helfen können, finden Sie unter Migrieren von Site Server 3.0.


Optimieren von Windows 2000-Servern

Zum Optimieren von Microsoft Windows 2000-Servern nehmen Sie die folgenden Änderungen vor:

  • Wenn Sie zusätzliche Komponenten installiert haben, wie beispielsweise Chatdienste, Bulletinboardsysteme (BBS) oder andere nicht erforderliche Komponenten, deinstallieren Sie diese gemäß den entsprechenden Anweisungen zur Deinstallation.

  • Ändern Sie die Leistung der Vorder- und Hintergrundprogramme. Weitere Informationen finden Sie im folgenden Abschnitt So ändern Sie die Leistung für Hintergrunddienste.

  • Maximieren Sie den Durchsatz für Netzwerkanwendungen. Weitere Informationen finden Sie im folgenden Abschnitt So maximieren Sie den Durchsatz für Netzwerkanwendungen.

So ändern Sie die Leistung für Hintergrunddienste

  1. Klicken Sie auf dem Windows 2000-Desktop mit der rechten Maustaste auf Arbeitsplatz, und wählen Sie Eigenschaften aus.

  2. Klicken Sie auf die Registerkarte Erweitert, und klicken Sie dann auf die Schaltfläche Leistungsoptionen.

  3. Klicken Sie unter Reaktionsgeschwindigkeit der Anwendung auf Hintergrunddienste.

  4. Klicken Sie auf OK und anschließend noch einmal auf OK.

So maximieren Sie den Durchsatz für Netzwerkanwendungen

  1. Klicken Sie auf dem Windows 2000-Desktop mit der rechten Maustaste auf Netzwerkumgebung, und wählen Sie Eigenschaften aus.

  2. Klicken Sie mit der rechten Maustaste auf LAN-Verbindung, und wählen Sie Eigenschaften aus.

  3. Wählen Sie unter Aktivierte Komponenten werden von dieser Verbindung verwendet die Option Datei- und Druckerfreigabe für Microsoft-Netzwerke aus.

  4. Klicken Sie auf die Schaltfläche Eigenschaften, und wählen Sie Datendurchsatz für Netzwerkanwendungen maximieren aus.

  5. Klicken Sie auf OK und anschließend noch einmal auf OK.

Beachten Sie auch Folgendes:

  • Commerce Server 2000 und Active Server Pages (ASP) neigen dazu, die CPU-Ressourcen zu erschöpfen.

  • SQL Server erschöpft in der Regel zunächst die Arbeitsspeicher- oder Datenträgerressourcen.

  • Hypertext Transfer Protocol (HTTP) belegt die meisten Netzwerkressourcen.


Suchen spezifischer Leistungsprobleme

Systemdurchsatzprobleme treten in der Regel dann auf, wenn der Bedarf an Ressourcen das Angebot übersteigt. Um Leistungsproblemen auf den Grund zu gehen, ermitteln Sie zunächst, wie Benutzer, Commerce Server 2000 und das Betriebssystem mit den einzelnen Ressourcen interagieren. Sie können viel über ein System erfahren, wenn Sie nachvollziehen, wie verschiedene Anwendungen den Arbeitsspeicher nutzen.

Erstellen Sie zu diesem Zweck zunächst in der Planungsphase der Websitearchitektur detaillierte Erfolgskriterien für gleichzeitige Benutzer. Ermitteln Sie anhand von Erfahrungen aus der Vergangenheit oder einer Benutzeranalyse ein Verwendungsprofil für einen typischen Benutzerbesuch. Das Verwendungsprofil muss Informationen zur Downloadgröße, zum Durchsatz und zur Sollwartezeit für die einzelnen Seiten enthalten.

Siteentwickler sollten die erstellten ASP-Seiten mithilfe eines Tools zur Belastungssimulation, wie beispielsweise Microsoft Web Application Stress (WAS), testen und die Ergebnisse mit den Zielvorgaben vergleichen. Wenn diese Seiten den Zielvorgaben für die Einzelserverkonfiguration entsprechen, sollten Sie einen Meilenstein für das Testen verteilter Server planen, der der Data Center-Konfiguration näher kommt. Insbesondere müssen sich Clientsimulator, Webserver und Back-End-Systeme auf verschiedenen Computern befinden. Webserver und Back-End-Systeme müssen SMP-Server (symmetrische Multiprozessorverarbeitung) sein, wenn sie als solche im Data Center eingesetzt werden sollen.

Im nächsten Schritt versuchen Sie, die Wartezeit bei Seitenanforderungen zu reduzieren. Den ersten Anhaltspunkt zur Leistungssteigerung stellen Anforderungen an die SQL Server-Computer dar. Das im Lieferumfang von Microsoft SQL Server 2000 enthaltene Tool SQL Server Profiler verfügt über einen Assistenten, der Indizes für die Optimierung der Datenbank empfiehlt. Dieses Tool kann zum Testen häufiger Seitenvorgänge sehr hilfreich sein. Wenn Sie mit einem Microsoft Active Directory-Server arbeiten, kann es auch sinnvoll sein, dessen Aktivität zu überwachen. Die NTDS-Objektleistungsindikatoren auf dem Active Directory-Server helfen Ihnen, die Nutzung dieser Serverkomponente zu ermitteln.

Wenn der Datenzugriff nun für Sie verständlich ist, wenden Sie sich der Seitenlogik zu. Es gibt eine Reihe von Tipps für die Optimierung, die sich speziell auf die ASP-Programmierung (Active Server Pages) beziehen. Wenn die beschriebenen Schritte ordnungsgemäß befolgt werden, kann auf jeder ASP-Seite eine bedeutende Steigerung des Durchsatzes erzielt werden.

Wenn die Seitenwartezeit aufgrund zu vieler Zugriffsversuche zu lang ist, können Sie das LRUCache-Objekt in Commerce Server verwenden. Mithilfe dieses Objekts können zeitaufwendige Datenaufrufe reduziert werden, indem das dargestellte HTML-Fragment beibehalten wird und so die Abfrage auf dem Back-End-Server eliminiert werden kann.

Bei kleinen Leistungs- und Durchsatzproblemen schließlich können Sie es mit einer Optimierung der Registrierungseinstellung von Internet-Informationsdienste (IIS) 5.0 und Microsoft Windows 2000 versuchen. Beachten Sie dabei aber, dass Sie mit diesen Änderungen nicht dieselbe Leistungssteigerung erzielen wie mit dem Ändern des Algorithmus bzw. der Zugriffsmethoden im Sitecode. Sie können beispielsweise die Leistung des IIS-Servers optimieren, indem Sie die Einstellungen auf der IIS-Registerkarte Leistung auf Mehr als 100.000 ändern und sicherstellen, dass ASP-Debuggen nicht aktiviert ist.

Siehe auch

Ändern der Einstellungen auf der IIS-Registerkarte "Leistung"

Commerce Server-Leistungsindikatoren

Weitere Tools zur Leistungsüberwachung


Verwenden des Arbeitsspeichers

Die Arbeitsspeicherverwendung ist der vielleicht wichtigste Faktor im Hinblick auf die Systemleistung. Wenn der Speicherbedarf das Angebot übersteigt, verschiebt Microsoft Windows 2000 Server Code- und Datenblöcke, so genannte Seiten, aus dem RAM (Random Access Memory) auf die Festplatte, um Speicher für einen Prozess freizugeben. Diese Auslagerung ist in bestimmten Maße akzeptabel, da sie es Windows 2000 Server ermöglicht, mehr Speicherplatz zu nutzen, als tatsächlich im physischen Speicher (RAM) zu Verfügung steht. Konstante Auslagerung wirkt sich jedoch negativ auf die Systemleistung aus.

Wenn Sie Windows 2000 Server starten, wird automatisch eine Auslagerungsdatei (Pagefile.sys) im System erstellt. Windows 2000 Server verwendet die Auslagerungsdatei, um virtuellen Speicher zur Verfügung zu stellen. Die empfohlene Größe der Auslagerungsdatei entspricht der Größe des im System verfügbaren RAM plus 12 MB. Allerdings hängt die Größe der Datei auch vom freien Speicherplatz auf der Festplatte zum Zeitpunkt der Dateierstellung ab. Informationen zur Skalierbarkeit finden Sie im Commerce Server 2000 Resource Kit.


Überwachen der wichtigsten Leistungsindikatoren

Systemengpässe können Sie durch die Überwachung der wichtigsten Leistungsindikatoren während Spitzenzeiten aufdecken. Informationen zu den zu überwachenden Commerce Server-Leistungsindikatoren finden Sie unter Commerce Server-Leistungsindikatoren.

Siehe auch

Einrichten der Leistungsindikatoren


Deaktivieren der Profilerstellung für anonyme Benutzer

Commerce Server 2000 ermöglicht eine problemlose Profilerstellung für Gastbenutzer. Allerdings kann es bei sehr großen Websites kostspielig sein, sämtliche Gastbenutzer zu erfassen. Wägen Sie daher vor der Implementierung dieses Features sorgfältig den Nutzen, den Sie aus der Erstellung von Cookies und eindeutigen Instanzen in Ihrer Datenbank und auf den Microsoft Active Directory-Servern ziehen können, gegen die entstehenden Kosten ab. Viele der Vorteile, die dieses Feature bietet, können auch durch eine sorgfältigere Analyse der Commerce Server-Berichte erzielt werden.

Siehe auch

Commerce Server-Berichte


Ändern der Einstellungen auf der IIS-Registerkarte "Leistung"

Sie können die Leistung steigern, indem Sie die Einstellungen auf der Registerkarte Leistung von Internet-Informationsdienste (IIS) 5.0 ändern.

So ändern Sie die Einstellungen auf der IIS-Registerkarte "Leistung"

  6. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Verwaltung, und klicken Sie dann auf Internetdienste-Manager.

  7. Erweitern Sie im Fenster Internet-Informationsdienste die Knoten auf den folgenden Pfad: Internet-Informationsdienste/<Servername>/Standardwebsite.

  8. Klicken Sie mit der rechten Maustaste auf Standardwebsite, und wählen Sie dann Eigenschaften aus.

  9. Klicken Sie auf die Registerkarte Leistung.

  10. Verschieben Sie den Schieberegler für Leistungsoptimierung nach rechts auf Mehr als 100.000, und klicken Sie dann auf OK.


Deaktivieren von Meldungen zur Debug-Ablaufverfolgung

Sie können eine einfache Änderung zur Verbesserung der Leistung vornehmen, indem Sie sicherstellen, dass Meldungen zur Debug-Ablaufverfolgung im Produktionssystem deaktiviert sind. Die Ablaufverfolgung kann bei manchen Szenarien zu einem Absinken des Durchsatzes um 10 bis 15 % führen.

So deaktivieren Sie Meldungen zur Debug-Ablaufverfolgung

  1. Klicken Sie auf Start und anschließend auf Ausführen.

  2. Geben Sie im Dialogfeld Ausführen im Feld Öffnen die Zeichenfolge Regtrace.exe ein, und klicken Sie dann auf OK.

  3. Wählen Sie im Dialogfeld für Ablaufverfolgungseinstellungen die Registerkarte Traces aus, deaktivieren Sie sämtliche Kontrollkästchen für alle Ebenen der Ablaufverfolgung, und klicken Sie dann auf OK.

Anmerkung

  • Es genügt nicht, lediglich No Tracing auf der Registerkarte Output auszuwählen. Sie müssen zunächst die Kontrollkästchen für alle Ebenen der Ablaufverfolgung deaktivieren.

Siehe auch

Verwenden von "regtrace.exe" mit einem Debugger

Tools zur Leistungsoptimierung


Weitere Informationen zur Optimierung

Es stehen Ihnen noch weitere Ressourcen zur Verfügung, die Unterstützung bei der Optimierung der Leistung und Kapazität Ihrer Commerce Server 2000-Site bieten.

Dieser Abschnitt beinhaltet folgende Themen:

  • Tools zur Leistungsoptimierung

  • Webbasierte Informationen

  • Buchpublikationen


Tools zur Leistungsoptimierung

Microsoft bietet eine Reihe von Tools zum Optimieren und Testen der Leistung an. Einige dieser Tools sind in Microsoft Windows 2000 und Internet-Informationsdienste (IIS) 5.0 integriert, andere befinden sich auf der Begleit-CD des Windows 2000 Server Resource Kits, und wieder andere sind in der Website von Microsoft (www.microsoft.com) erhältlich. So ist der Systemmonitor beispielsweise in Windows 2000 integriert und von wesentlicher Bedeutung für die Überwachung nahezu sämtlicher Aspekte der Serverleistung.

Im folgenden Abschnitt werden die Tools zur Leistungsoptimierung und der Zugriff auf diese kurz beschrieben.

  • Microsoft Web Application Stress. Hierbei handelt es sich um ein von Webtestern entwickeltes Simulationstool, das Situationen, in denen mehrere Browser Seiten von einer Webanwendung anfordern, realistisch simuliert. Microsoft hat das Tool benutzerfreundlich gestaltet und zu diesem Zweck einige komplizierte Aspekte des Testens von Webservern verdeckt. Dies macht das Tool interessant für jeden, der Leistungsdaten über eine Website sammeln möchte. Das Tool vereinigt in sich zahlreiche der besten Funktionen, die im Laufe der Jahre entwickelt wurden, ebenso wie einige neue Funktionen. Die aktuelle Version deckt die am meisten benötigten Funktionen für Belastungstests von dreistufigen, personalisierten ASP-Websites ab, die unter Microsoft Windows 2000 ausgeführt werden.

    Zum Downloaden von WAS besuchen Sie http://webtool.rte.microsoft.com.

  • Netzwerkmonitor. Hierbei handelt es sich um ein Tool, das den Netzwerkverkehr zur Anzeige und Analyse erfasst. Sie können Netzwerkmonitor beispielsweise für die Analyse von Daten einsetzen, die zu einem früheren Zeitpunkt mithilfe von benutzerdefinierten Methoden erfasst wurden. Des Weiteren dient das Tool zur Extraktion von Daten aus festgelegten Protokollparsern und zur Analyse von Echtzeit-Datenverkehr im Netzwerk. Bei Netzwerkmonitor handelt es sich um ein nützliches Tool zur Erfassung von Paketen zwischen Browsern, Webservern und SQL Server. Das Tool stellt wertvolle Zeitinformationen ebenso wie Informationen zu Paketgröße und Netzwerklast und viele andere statistische Daten zur Verfügung, die für die Verwaltung der Systemleistung von Bedeutung sein können.

  • SQL Server Profiler. Hierbei handelt es sich um ein Tool, das SQL Server-Ereignisse auf einem Server erfasst. Die Ereignisse werden in einer Ablaufverfolgungsdatei gespeichert, die Sie zu einem späteren Zeitpunkt analysieren oder zur Wiederholung einer bestimmten Reihe von Schritten bei der Problemdiagnose verwenden können. SQL Server Profiler kann für die folgenden Aufgaben eingesetzt werden:
    • Schrittweises Bearbeiten von problematischen Abfragen, um die Ursache des Problems zu finden.

    • Suchen und Diagnostizieren von langsam ausgeführten Abfragen.

    • Erfassen der Reihe von SQL-Anweisungen, die zu einem Problem führen. Mithilfe der gespeicherten Ablaufverfolgung kann das Problem auf einem Testserver repliziert und diagnostiziert werden.

    • Überwachen der Leistung von SQL Server zur Optimierung der Arbeitsauslastung.
  • Systemmonitor. Hierbei handelt es sich um ein Tool, das Sie zum Erfassen und Anzeigen umfangreicher Daten verwenden können, die Aufschluss über die Verwendung von Hardwareressourcen und die Aktivität der Systemdienste geben. Der Systemmonitor kann für die folgenden Aufgaben eingesetzt werden:
    • Erfassen und Anzeigen von Echtzeit-Leistungsdaten auf einem lokalen Computer oder von mehreren Remotecomputern.

    • Anzeigen von Daten, die entweder aktuell gesammelt werden oder zu einem früheren Zeitpunkt erfasst wurden, in einem Leistungsindikatorenprotokoll.

    • Darstellen von Daten in Form einer druckfähigen Diagramm-, Histogramm- oder Berichtansicht.

    • Integrieren von Funktionen des Systemmonitors in Microsoft Word oder andere Anwendungen der Microsoft Office-Produktfamilie mithilfe der Automatisierung.

    • Erstellen von HTML-Seiten aus Leistungsansichten.

    • Erstellen wiederverwendbarer Überwachungskonfigurationen, die mithilfe der Microsoft Management Console (MMC) auf anderen Computern installiert werden können.
  • Visual Studio Analyzer. Hierbei handelt es sich um ein Tool, das Sie zur Leistungsanalyse, zur Lokalisierung von Fehlern und zum Verständnis der Struktur verteilter Anwendungen verwenden können. Visual Studio Analyzer können Sie für Anwendungen und Systeme verwenden, die mit beliebigen Visual Studio-Tools erstellt wurden. Einige Microsoft-Technologien, wie beispielsweise Component Object Model (COM), Microsoft ActiveX Data Objects (ADO) und COM+ bieten die Möglichkeit, Informationen für Visual Studio Analyzer bereitzustellen. Wenn in den von Ihnen verwendeten Anwendungen eine beliebige der genannten Technologien zum Einsatz kommt, können Sie über diese Anwendung detaillierte Informationen von Visual Studio Analyzer erhalten. Darüber hinaus können Sie Ihre eigenen Anwendungen so anpassen, dass sie Informationen für Visual Studio Analyzer bereitstellen.

  • Prozess- und Threadstatus ("Pstat.exe"). Hierbei handelt es sich um ein Tool, das den Status sämtlicher Prozesse und Threads anzeigt, die gerade ausgeführt werden. Sie finden dieses Tool auf der Begleit-CD des Windows 2000 Server Resource Kits.

  • Process Tree (Ptree.exe). Hierbei handelt es sich um ein Tool, mit dem Sie den Prozessvererbungsbaum abfragen und Prozesse auf lokalen oder Remotecomputern löschen können. Sie finden dieses Tool auf der Begleit-CD des Windows 2000 Server Resource Kits.

  • HTTP-Überwachung. Hierbei handelt es sich um ein Tool, mit dem Sie die HTTP-Aktivität auf Ihren Servern überwachen können. Des Weiteren weist das Tool Sie auf mengenmäßige Veränderungen der Aktivität hin. Sie finden dieses Tool auf der Begleit-CD des Windows 2000 Server Resource Kits.

  • NetStat. Hierbei handelt es sich um ein Befehlszeilentool, das Informationen zu den aktuellen Netzwerkverbindungen auf dem Server erfasst. Sie finden NetStat auf der Begleit-CD des Windows 2000 Server Resource Kits.

Siehe auch

Commerce Server-Leistungsindikatoren

Einrichten der Leistungsindikatoren


Webbasierte Informationen

Die folgende Tabelle enthält Beschreibungen zu Dokumentationen im Web, die Ihnen bei der Optimierung der Leistung und Kapazität Ihrer Commerce Server 2000-Site nützliche Hilfestellung geben.

Titel | Beschreibung
Microsoft Developer Network (MSDN) | Enthält Informationen zu Commerce Server 2000 und anderen Microsoft .NET Enterprise Servers. Die Informationen in dieser Site werden regelmäßig aktualisiert. Klicken Sie auf Search MSDN, und geben Sie Commerce Server 2000 ein, um verwandte Dokumente und Whitepapers aufzurufen. www.msdn.microsoft.com
The Art and Science of Web Server Tuning with Internet Information Services 5.0 | Hierbei handelt es sich um ein Whitepaper in englischer Sprache, dass sich mit Problemen und Lösungsansätzen im Hinblick auf die Optimierung von Webservern bei Ausführung von Internet-Informationsdienste (IIS) 5.0 unter Windows 2000 Server befasst. Erläutert werden die Bedeutung des Überwachens und Testens sowie potenzielle Probleme, die bei Hardware, Software oder Tools auftreten können. Ein Abschnitt beschäftigt sich mit neuen bzw. geänderten Einstellungen und Features in IIS und Windows 2000. Des Weiteren enthält das Whitepaper eine Reihe von Anhängen mit nützlichen Tipps, Registrierungs- und Metabasiseinstellungen sowie eine Liste weiterer Ressourcen zur Referenz. Das Dokument wurde zwar speziell für IIS 5.0 verfasst, jedoch sind zahlreiche Hinweise ebenso hilfreich für Administratoren von IIS 4.0. www.microsoft.com/windows2000/library/operations/web/tuning.asp
Commerce Server Software Development Kit (SDK) | Enthält technische Informationen für Entwickler, die Programme bzw. intelligente Webseiten erstellen, die mit der Schnittstelle für Anwendungsprogrammierung (API) von Commerce Server integriert werden müssen. Das SDK enthält Richtlinien für Programmierer und Verweise auf verschiedene Commerce Server- und Commerce-Technologien. Des Weiteren umfasst es Beispiele und Headerdateien zur Erstellung eigener Programme.
TechNet | Enthält technische Informationen und Tools zum Planen, Entwickeln, Bereitstellen und Verwalten von E-Commerce-Websites. Informationen zu Commerce Server erhalten Sie, wenn Sie auf der linken Bildschirmseite im Menü Navigate by Product den Eintrag Commerce Server auswählen. www.microsoft.com/technet/
Newsgroups | In den Peer-to-Peer-Newsgroups können Sie sich mit anderen Administratoren, Entwicklern und Microsoft Most Valuable Professionals (MVPs) über Commerce Server austauschen. Microsoft überwacht den Inhalt dieser Newsgruppen bzw. Sites nicht und unterstützt diese auch nicht. www.microsoft.com/commerceserver/support/NewsGrps.htm
Microsoft Support | Enthält eine Liste mit Supportoptionen, die für Commerce Server erhältlich sind. www.microsoft.com/commerceserver/support/
Microsoft-Serversite | Hier finden IT-Fachleute, Entwickler und Internetspezialisten umfangreiche Angaben zu sämtlichen Serverprodukten von Microsoft. www.microsoft.com/servers/


Buchpublikationen

Das Buch Commerce Server 2000 Resource Kit umfasst technische Informationen und Tools zum Planen, Entwickeln, Bereitstellen und Verwalten von E-Commerce-Websites. Es ist erhältlich bei Microsoft Press.


Referenz zur Benutzeroberfläche

Dieser Abschnitt enthält die kontextbezogenen Hilfethemen für die Ressourcen von Commerce Server-Manager und Commerce Server Site Packager. Sie können diese Themen aufrufen, indem Sie in den Dialogfeldern des Commerce Server-Managers die Taste F1 drücken oder auf Hilfe klicken.

Dieser Abschnitt beinhaltet folgende Themen:

  • Hilfe zur Benutzeroberfläche des Datawarehouse . Enthält die Hilfe zu Dialogfeldelementen des Datawarehouse.

  • Hilfe zur Benutzeroberfläche von DTS-Tasks . Enthält die Hilfe zu Dialogfeldelementen für die DTS-Tasks von Commerce Server.

  • Hilfe zur Benutzeroberfläche der Vorhersageressource . Enthält die Hilfe zu Dialogfeldelementen der Vorhersageressource.

  • Hilfe zur Benutzeroberfläche der Profilressource . Enthält die Hilfe zu Dialogfeldelementen der Profilressource.

  • Hilfe zur Benutzeroberfläche von Site Packager . Enthält die Hilfe zu Dialogfeldelementen für Commerce Server Site Packager.


Hilfe zur Benutzeroberfläche des Datawarehouse

Dieser Abschnitt enthält die kontextbezogenen Hilfethemen für die Datawarehouse-Ressource von Commerce Server. Sie können diese Themen aufrufen, indem Sie in den Dialogfeldern der Datawarehouse-Ressource auf Hilfe klicken.

Dieser Abschnitt beinhaltet folgende Themen:

  • Eigenschaften von Datawarehouse, Registerkarte "Verbindung"

  • Eigenschaften von Datawarehouse, Registerkarte "Uhrzeit"


Eigenschaften von Datawarehouse, Registerkarte "Verbindung"

In der folgenden Tabelle finden Sie eine Beschreibung der im Dialogfeld Eigenschaften von Datawarehouse auf der Registerkarte Verbindung verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
SQL Server-Authentifizierung | Verwenden eines vorgegebenen Benutzernamens und Kennworts zur Authentifizierung der Anmeldeinformationen.
Benutzer-ID | Eingeben der Benutzer-ID, die bei der Anmeldung zur Authentifizierung verwendet wird.
Kennwort | Eingeben des Kennworts, das bei der Anmeldung zur Authentifizierung verwendet wird.
Server | Anzeigen des Namens des verbundenen Servers.
Datenbank | Anzeigen des Namens der verbundenen Datenbank.
OLAP-Servereigenschaften: Server | Anzeigen des Namens des verbundenen OLAP-Servers.
OLAP-Servereigenschaften: Datenbank | Anzeigen des Namens der verbundenen OLAP-Datenbank.

Siehe auch

Konfigurieren der Datawarehouse-Ressource


Eigenschaften von Datawarehouse, Registerkarte "Uhrzeit"

In der folgenden Tabelle finden Sie eine Beschreibung der im Dialogfeld Eigenschaften von Datawarehouse auf der Registerkarte Uhrzeit verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Zeitzone anpassen an | Auswählen einer Zeitzone aus der Dropdownliste.
Erster Tag der Woche | Auswählen des Anfangstags der Woche aus der Dropdownliste.

Siehe auch

Konfigurieren der Datawarehouse-Ressource


Hilfe zu Dialogfeldelementen von DTS-Task

Dieser Abschnitt enthält die kontextbezogenen Hilfethemen für die Tasks der Data Transformation Services (DTS) von Commerce Server. Sie können diese Themen aufrufen, indem Sie in den Dialogfeldern der Commerce Server-DTS-Tasks auf Hilfe klicken.

Dieser Abschnitt beinhaltet folgende Themen:

  • Importieren von Webserverprotokollen

  • Erweiterte Webprotokollimport-Eigenschaften, Registerkarte "Ausgeschlossen"

  • Ausgeschlossen

  • Erweiterte Webprotokollimport-Eigenschaften, Registerkarte "Rückschlüsse"

  • Erweiterte Webprotokollimport-Eigenschaften, Registerkarte "Abfragezeichenfolgen"

  • Abfragezeichenfolgen

  • Erweiterte Webprotokollimport-Eigenschaften, Registerkarte "Standarddat."

  • Erweiterte Webprotokollimport-Eigenschaften, Registerkarte "Protokolldat."

  • Katalogimporteigenschaften

  • Transaktionsimporteigenschaften, Registerkarte "Allgemein"

  • Transaktionsimporteigenschaften, Registerkarte "Importoptionen"

  • Löschtask

  • Eigenschaften der IP-Auflösung

  • Kampagnenimporteigenschaften

  • Benutzerimporteigenschaften

  • Eigenschaften von DW-Synchronisierung

  • Vorbereiten von Berichtseigenschaften

  • Webserver-Protokolldateien


Importieren von Webserverprotokollen

Die folgende Tabelle enthält die Dialogfeld Webserverprotokolle importieren verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Beschreibung | Eingeben einer Beschreibung für den Importtask.
Sitename | Auswählen der Website in der Dropdownliste, die das zu importierende Webserverprotokoll enthält.
Anwendung | Klicken Sie hierauf, um die Liste der Protokolldateien nach Anwendungen zu sortieren.
Computer | Klicken Sie hierauf, um die Liste der Protokolldateien nach Computern zu sortieren.
IIS-Website | Klicken Sie hierauf, um die Liste der Protokolldateien nach IIS-Websites zu sortieren.
Protokolldateipfad | Klicken Sie hierauf, um die Liste der Protokolldateien nach Protokolldateipfaden zu sortieren.
Protokolldateipfad | Eingeben des Pfades der zu importierenden Webprotokolldatei oder Suchen des Pfades der Protokolldatei durch Klicken auf die Auslassungschaltfläche [...].
Protokolldateien anzeigen | Klicken Sie hierauf, um das Dialogfeld Webserver-Protokolldateien zu öffnen. Wählen Sie die zu importierenden Webprotokolldateien in der Liste Webserver-Protokolldateien aus, und klicken Sie anschließend auf OK, um zum Dialogfeld Webserverprotokolle importieren zurückzukehren.
Alle Protokolldateien seit dem letzten Import importieren | Auswählen dieser Option, um alle Protokolldateien, die seit dem letzten Importvorgang erstellt wurden, zu importieren.
Protokolldat. basier. auf dem Datums-/Uhrzeitbereich importieren | Auswählen dieser Option, um nur die zwischen dem(r) Startdatum/-uhrzeit und dem(r) Enddatum/-uhrzeit erstellten Protokolldateien zu importieren.
Anfangsdatum/-uhrzeit | Eingeben des Datums und der Uhrzeit, ab der Protokolldateien importiert werden sollen. Diese Option ist nur verfügbar, wenn die Option Protokolldat. basier. auf dem Datums-/Uhrzeitbereich importieren aktiviert wurde.
Beendigungsdatum/-uhrzeit | Eingeben des Datums und Uhrzeit, bis zu der die Protokolldateien importiert werden sollen. Diese Option ist nur verfügbar, wenn die Option Protokolldat. basier. auf dem Datums-/Uhrzeitbereich importieren aktiviert wurde.
Erweitert | Klicken Sie hierauf, um das Dialogfeld Erweiterte Webprotokollimport-Eigenschaften zu öffnen.

Siehe auch

Importieren von Daten aus Webprotokolldateien

Konfigurieren von Webprotokollimport-Eigenschaften

Datawarehouse-Komponenten

Konfigurieren der Datawarehouse-Ressource


Erweiterte Webprotokollimport-Eigenschaften, Registerkarte "Ausgeschlossen"

Die folgende Tabelle enthält die im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften der Registerkarte Ausgeschlossen verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Filterausschlusskriterien Auswählen eines Ausschlusstyps in der Dropdownliste, um nur diese Art von Ausschluss anzuzeigen. Es gibt folgende Ausschlusstypen:
  • Hosts

  • Dateitypen

  • Dateiausdrücke

  • Suchmaschinen

Weitere Informationen zu Ausschlusskategorien finden Sie unter dem Thema Ausgeschlossen.
Standardsuchmaschinenliste für die Ausschlusskriterien einschließen | Auswählen dieser Option, um die Standardsuchmaschinenliste in das Ausschlusskriterium aufzunehmen.
Ausschlusstyp | Klicken Sie hierauf, um die Ausschlussliste nach dem Ausschlusstyp zu sortieren.
Ausschließen | Klicken Sie hierauf, um die Ausschlussliste nach dem Kriterium für den Ausschlusstyp zu sortieren.
Anwendung | Klicken Sie hierauf, um die Ausschlussliste nach Anwendungen zu sortieren.
Hinzufügen | Klicken Sie hierauf, um das Dialogfeld Ausgeschlossen zu öffnen und einen neuen Ausschluss hinzuzufügen.
Entfernen | Klicken Sie hierauf, um den ausgewählten Ausschluss zu entfernen.
Eigenschaften | Klicken Sie hierauf, um das Dialogfeld Ausgeschlossen zu öffnen, welches die Eigenschaften des ausgewählten Ausschlusses anzeigt.

Siehe auch

Ausgeschlossen

Konfigurieren von Webprotokollimport-Eigenschaften

Datawarehouse-Komponenten


Ausgeschlossen

Die folgende Tabelle enthält die im Dialogfeld Ausgeschlossen verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Markieren der Ausschlusskategorie Auswählen des hinzuzufügenden Importausschlusstyps in der Dropdownliste. Folgende Datentypen können ausgeschlossen werden:
  • Hosts

  • Dateitypen

  • Dateiausdrücke

  • Suchmaschinen

Weitere Informationen zu Ausschlusskategorien finden Sie unter Ausgeschlossen.
Name | Eingeben eines Namens, nach dem Commerce Server die Protokolldateien durchsuchen soll. Der Name darf keine Leerzeichen enthalten.
Alle Anwendungen in einer Site | Auswählen dieser Option, um die Daten aller Anwendungen innerhalb einer Site auszuschließen.
Ausgewählte Anwendungen in einer Site | Mithilfe dieser Option kann angegeben werden, von welchen Anwendungen einer Site die Daten ausgeschlossen werden sollen.
Alle auswählen | Auswählen dieser Option, um die Daten aller aufgeführten Anwendungen auszuschließen.
Auswahl aufheben | Auswählen dieser Option, um die Auswahl aller aufgeführten Anwendungen aufzuheben.

Siehe auch

Ausgeschlossen

Konfigurieren von Webprotokollimport-Eigenschaften

Datawarehouse-Komponenten


Erweiterte Webprotokollimport-Eigenschaften, Registerkarte "Rückschlüsse"

Die folgende Tabelle enthält die im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften auf der Registerkarte Rückschlüsse verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Erlaubte Anzahl von Minuten für die Leerlaufzeit, bevor Besuche beendet werden | Angeben, wieviele Minuten Leerlauf verstreichen dürfen, bevor ein Besuch als beendet betrachtet wird. Die Standardzeit beträgt 30 Minuten.
Verwenden von Commerce Server-Identifizierungscookies für Rückschlüsse | Auswählen dieser Option, um die Identifizierungscookies von Commerce Server zur Unterscheidung einzelner Benutzer zu verwenden.
Verwenden von Benutzernamen für Rückschlüsse | Auswählen dieser Option, um Benutzernamen zur Unterscheidung einzelner Benutzer zu verwenden.
Verwenden von benutzerdefinierten Cookiebezeichner | Auswählen dieser Option, um zur Unterscheidung einzelner Benutzer benutzerdefinierte Cookies zu verwenden.
Eingeben eines neuen benutzerdefinierten Cookiebezeichners | Eingeben des Bezeichners des benutzerdefinierten Cookies, der verwendet werden soll.
Hinzufügen | Klicken Sie hierauf, um den neuen Bezeichner des benutzerdefinierten Cookies zur Rückschlussliste hinzuzufügen.
Entfernen | Klicken Sie hierauf, um die markierte Zeile aus der Rückschlussliste zu entfernen.

Siehe auch

Rückschlüsse

Konfigurieren von Webprotokollimport-Eigenschaften

Datawarehouse-Komponenten


Erweiterte Webprotokollimport-Eigenschaften, Registerkarte "Abfragezeichenfolgen"

Die folgende Tabelle enthält die im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften auf der Registerkarte Abfragezeichenfolgen verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Speichern der Abfragezeichenfolge mit URI | Auswählen dieser Option, um die Abfragezeichenfolge mit einem Uniform Ressource Identifier (URI) zu speichern.
Abfragezeichenfolge | Klicken Sie hierauf, um die Liste nach den Namen der Abfragezeichenfolgen zu sortieren.
Anwendung | Klicken Sie hierauf, um die Liste nach den Anwendungsnamen zu sortieren.
Hinzufügen | Klicken Sie hierauf, um das Dialogfeld Abfragezeichenfolgen zu öffnen, in dem Sie eine neue Abfragezeichenfolge hinzufügen können.
Entfernen | Klicken Sie hierauf, um die festgelegte Abfragezeichenfolge zu löschen.
Eigenschaften | Klicken Sie hierauf, um das Dialogfeld Abfragezeichenfolgen zu öffnen, in dem Sie die angegebene Abfragezeichenfolge bearbeiten können.

Siehe auch

Abfragezeichenfolgen

Konfigurieren von Webprotokollimport-Eigenschaften

Datawarehouse-Komponenten


Abfragezeichenfolgen

Die folgende Tabelle enthält die im Dialogfeld Abfragezeichenfolgen verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Name | Eingeben eines Namens für die Abfragezeichenfolge.
Alle Anwendungen in einer Site | Auswählen dieser Option, um die Abfragezeichenfolge von allen Anwendungen innerhalb einer Site zu importieren.
Ausgewählte Anwendungen in einer Site | Mithilfe dieser Option können Sie angeben, für welche Anwendungen einer Site die Abfragezeichenfolge importiert werden soll.
Datentyp auswählen | Auswählen des Datentyps für die Abfrage in der Dropdownliste. Folgende Datentypen stehen zur Verfügung: Zeichenfolge (Standard), Ganze Zahl, Datum/Uhrzeit und Real.
Mehrwertiger Datentyp | Auswählen dieser Option, um bei der Abfrage einen Datentyp mit mehreren Werten zu verwenden.

Siehe auch

Abfragezeichenfolgen

Konfigurieren von Webprotokollimport-Eigenschaften


Erweiterte Webprotokollimport-Eigenschaften, Registerkarte "Standarddat."

Die folgende Tabelle enthält die im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften auf der Registerkarte Standarddat. verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Oberstes Verzeichnis von Dateisystempfaden entfernen | Auswählen dieser Option, um die Zeichenfolgen der Dateinamen ohne die Verzeichnisse der obersten Ebene anzuzeigen.
Verzeichnisindexdatei | Eingeben des Namens der Datei, die als Verzeichnisindex dienen soll.
Hinzufügen | Klicken Sie hierauf, um die neue Verzeichnisindexdatei zur Standarddateiliste hinzuzufügen.
Entfernen | Klicken Sie hierauf, um die ausgewählte Verzeichnisindexdatei aus der Standarddateiliste zu entfernen.

Siehe auch

Standarddateien

Konfigurieren von Webprotokollimport-Eigenschaften


Erweiterte Webprotokollimport-Eigenschaften, Registerkarte "Protokolldat."

Die folgende Tabelle enthält die im Dialogfeld Erweiterte Webprotokollimport-Eigenschaften auf der Registerkarte Protokolldat. verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Anzahl der Minuten, die Datensätze überlappen müssen | Angeben der Minutenzahl, um die sich die Datensätze überlappen müssen. Die Standardzeit beträgt 30 Minuten.
Wenn Überlappung festgestellt wird Auswählen der Aktion, die ausgelöst werden soll, wenn eine Überlappung erkannt wird:
  • Alle Datensätze importieren. Importiert alle Anforderungen, einschließlich der sich überlappenden Anforderungen.

  • Import beenden. Importiert die Protokolldatei nicht, wenn sich überlappende Anforderungen erkannt werden.

  • Alle Importe beenden. Hält alle Importe an, wenn sich überlappende Anforderungen erkannt werden.

  • Datensätze verwerfen und Vorgang fortsetzen (Standardeinstellung). Alle sich überlappenden Anforderungen werden verworfen. Nur die verbleibenden Anforderungen werden importiert.
Nach Abschluss des Imports Auswählen einer Option, die festlegt, was mit den nach Abschluss des Importvorgangs noch offenen Besuchen geschehen soll.
  • Offene Besuche für den nächsten Import speichern (Standardeinstellung). Rekonstruiert den aktuellen Besuch, als ob es sich um eine einzige, nahtlose Protokolldatei handelte. Diese Option benötigt etwas mehr Zeit, da die offenen Besuche bei jedem neuen Import aus dem Cache abgerufen werden müssen. Die Protokolldateien müssen in chronologischer Reihenfolge importiert werden, damit diese Option korrekt ausgeführt wird.

  • Commit offener Besuche in die Datenbank ausführen. Beim Öffnen und Schließen der Protokolldatei ist der Besuchszähler höher, da Besuche, die sich über diese beiden Zeitspannen erstrecken, doppelt gezählt werden.

  • Offene Besuche verwerfen. Der Berichtszähler ist beim Schließen der Protokolldatei niedriger, da noch offene Besuche verworfen werden.
Cache löschen | Klicken Sie hierauf, um den Cache mit den gespeicherten Daten zu leeren.

Siehe auch

Protokolldateien

Zeitliche Überlappungen

Rotation von Protokolldateien

Konfigurieren der Importeigenschaften von Webprotokolldateien


Katalogimporteigenschaften

Die folgende Tabelle enthält die im Dialogfeld Katalogimporteigenschaften verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Beschreibung | Eingeben einer Beschreibung für diesen Importtask.
Sitename | Auswählen einer Site in der Dropdownliste, welche das zu importierende Webserverprotokoll enthält.
Inkrementelles Laden | Auswählen dieser Option, um nur neue Katalogdaten zu importieren. (Basierend auf einem früher erfolgten Import.)
Vollständiges Laden | Auswählen dieser Option, um alle Katalogdaten zu importieren.

Siehe auch

Importieren von Katalogdaten

Datawarehouse-Komponenten


Transaktionsimporteigenschaften, Registerkarte "Allgemein"

Die folgende Tabelle enthält die im Dialogfeld Transaktionsimporteigenschaften auf der Registerkarte Allgemein verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Beschreibung | Eingeben einer Beschreibung für diesen Importtask.
Sitename | Auswählen der Site in der Dropdownliste, welche die zu importierenden Daten enthält.
Inkrementelles Laden | Auswählen dieser Option, um nur neue Transaktionsdaten zu importieren. (Basierend auf einem früher erfolgten Import.)
Vollständiges Laden | Auswählen dieser Option, um alle Transaktionsdaten zu importieren.

Siehe auch

Importieren von Transaktionsdaten

Datawarehouse-Komponenten


Transaktionsimporteigenschaften, Registerkarte "Importoptionen"

Die folgende Tabelle enthält die im Dialogfeld Transaktionsimporteigenschaften auf der Registerkarte Importoptionen verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Transaktionskategorie Auswählen der Transaktionskategorie für die zu importierenden Dimensionen in der Dropdownliste mit den folgenden Kategorien:
  • KopfzeileBestellformular

  • EinzelpostenBestellformular

  • Bestellgruppenadressen

  • Bestellgruppe
Verfügbare Dimensionen | Auswählen der hinzuzufügenden Dimension in der Liste.
Zu importierende Dimensionen | Auflisten der zu importierenden Dimensionen des angegebenen Transaktionstyps.
Hinzufügen | Klicken Sie hierauf, um die im Feld Verfügbare Dimensionen ausgewählte Dimension in das Feld Zu importierende Dimensionen zu verschieben.
Entfernen | Klicken Sie hierauf, um die ausgewählten Dimensionen aus dem Feld Zu importierende Dimensionen zu entfernen.

Siehe auch

Importieren von Transaktionsdaten

Datawarehouse-Komponenten


Löschtask

Die folgende Tabelle enthält die im Dialogfeld Löschtask verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Beschreibung | Eingeben einer Beschreibung für den Löschtask.
Sitename | Auswählen der Site in der Dropdownliste, für die die Daten der Webprotokolldatei gelöscht werden sollen.
Löschtyp auswählen Auswählen des Löschtyps in der Dropdownliste.
  • Alle. Alle Daten im Datawarehouse werden gelöscht (Detaildaten und Zusammenfassungen).

  • Webprotokollimporte. Löscht die Daten der angegebenen Webprotokolldateien.
Alle Daten löschen | Auswählen dieser Option, um sowohl die Detaildaten als auch die Zusammenfassungen der ausgewählten Importe von Webprotokolldateien zu löschen.
Detaildaten löschen | Auswählen dieser Option, um nur die Detaildaten der ausgewählten Importe von Webprotokolldateien zu löschen.
Task-ID | Aktivieren der Kontrollkästchen in dieser Spalte, um die zu löschenden Webprotokolldateien festzulegen. Klicken Sie auf die Spaltenüberschrift, um die Webprotokolldatei nach Task-IDs zu sortieren.
Taskbeschreibung | Klicken Sie auf die Spaltenüberschrift, um die Webprotokolldatei nach Beschreibungen zu sortieren.
Status | Klicken Sie auf die Spaltenüberschrift, um die Webprotokolldatei nach Statusinformationen zu sortieren.
Anfangszeit | Klicken Sie auf die Spaltenüberschrift, um die Webprotokolldatei nach den Startdaten zu sortieren.
Detailstufe | Klicken Sie auf die Spaltenüberschrift, um die Liste der Webprotokolldateien nach Detailstufen zu sortieren.

Siehe auch

Löschen von Daten aus dem Datawarehouse


Eigenschaften der IP-Auflösung

Die folgende Tabelle enthält die im Dialogfeld Eigenschaften der IP-Auflösung verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Beschreibung | Eingeben einer Beschreibung für den Task.
Sitename | Auswählen einer Site in der Dropdownliste, für die eine Auflösung der IP-Adressen durchgeführt wird.
Inkrementelle Suche | Auswählen dieser Option, um nur IP-Adressen aufzulösen, die noch nicht aufgelöst wurden.
Vollständige Suche | Auswählen dieser Option, um alle IP-Adressen aufzulösen.
Lokaler Domänenname | Eingeben des lokalen Domänennamens des DNS-Servers (Domain Name Server), der als primärer Server für die Auflösung der IP-Adressen verwendet wird.
Anzahl der Tage für die Zwisch.-speich. des Ergebnisses | Eingeben der Anzahl von Tagen, an denen die aufgelösten IP-Adressen gespeichert werden sollen. Die Standardspeicherzeit beträgt 30 Tage. Durch Erhöhen der Standardeinstellung erfolgt die Auflösung der IP-Adressen schneller. Es kann jedoch sein, dass Änderungen von Domänennamen nicht erfasst werden.
Anzahl der Sekunden bis zum Timeout | Eingeben der Suchdauer auf dem DNS-Server in Sekunden, bevor eine IP-Adresse als nicht auflösbar gekennzeichnet wird. Die Standardeinstellung ist 30 Sekunden. Durch Erhöhen der Standardeinstellung können mehr IP-Adressen aufgelöst werden, der Vorgang wird jedoch mehr Zeit in Anspruch nehmen.
Anzahl der im Stapel zu behaltend. Suchanforderungen | Eingeben der Anzahl an IP-Adressen, die in einem Vorgang auf Ihren DNS-Server übertragen werden sollen. Die Standardeinstellung ist 150. Es kann eine Zahl zwischen 10 und 99.999 gewählt werden.

Siehe auch

Auflösen von IP-Adressen


Kampagnenimporteigenschaften

Die folgende Tabelle enthält die im Dialogfeld Kampagnenimporteigenschaften verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Beschreibung | Eingeben einer Beschreibung für diesen Importtask.
Sitename | Auswählen der Site in der Dropdownliste, welche die zu importierenden Daten enthält.

Siehe auch

Importieren von Kampagnendaten

Datawarehouse-Komponenten


Benutzerimporteigenschaften

Die folgende Tabelle enthält die im Dialogfeld Benutzerimporteigenschaften verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Beschreibung | Eingeben einer Beschreibung für diesen Importtask.
Sitename | Auswählen der Site in der Dropdownliste, welche die zu importierenden Daten enthält.
Abfrageintervall (Min.) | Eingeben des Zeitintervalls für den Import. Die Benutzerdaten werden in bestimmten Intervallen importiert, um ein Blockieren der Datenbanktabelle zu verhindern. Eine Website mit 10.000 Benutzern würde die Benutzerdaten beispielsweise in Intervallen von 15 Minuten importieren.
Importanfangsdatum | Auswählen eines Datums im Dropdownkalender, an dem der Import beginnen soll.
Inkrementelles Laden | Auswählen dieser Option, um nur neue Benutzer zu importieren. (Basierend auf einem früher erfolgten Import).
Vollständiges Laden | Auswählen dieser Option, um alle Benutzerdaten zu importieren.

Siehe auch

Importieren von Benuterzprofildaten

Datawarehouse-Komponenten


Eigenschaften von DW-Synchronisierung

Die folgende Tabelle enthält die im Dialogfeld Eigenschaften von DW-Synchronisierung verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Beschreibung | Eingeben einer Beschreibung für diesen Importtask.
Sitename | Auswählen der Site in der Dropdownliste, welche die zu importierenden Daten enthält.

Siehe auch

Synchronisieren der Sitekonfiguration mit dem Datawarehouse


Berichtseigenschaften vorbereiten

Die folgende Tabelle enthält die im Dialogfeld Berichtseigenschaften vorbereiten verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Beschreibung | Eingeben einer Beschreibung für diesen Importtask.
Sitename | Auswählen der Site in der Dropdownliste, welche die in den Analyseberichten zu verwendenden Daten enthält.
Inkrementell | Auswählen dieser Option, um eine inkrementelle Cubeverarbeitung durchzuführen.
Vollständig | Auswählen dieser Option, um eine vollständige Cubeverarbeitung durchzuführen.

Siehe auch

Vorbereiten der Berichterstellung


Webserver-Protokolldateien

Die folgende Tabelle enthält die im Dialogfeld Webserver-Protokolldateien verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Anwendung | Aktivieren Sie das Kontrollkästchen in dieser Spalte neben dem Sitenamen der zu importierenden Protokolldatei.

Siehe auch

Importieren von Daten aus Webprotokolldateien


Hilfe zur Benutzeroberfläche der Vorhersageressource

Dieser Abschnitt enthält die kontextbezogenen Hilfethemen für die Vorhersageressource von Commerce Server. Sie können diese Themen von der Benutzeroberfläche der Vorhersageressource aus aufrufen, indem Sie in den Dialogfeldern der Vorhersageressource auf Hilfe klicken.

Dieser Abschnitt beinhaltet folgende Themen:

  • Eigenschaften von Vorhersage auf "Servername", Registerkarte "Allgemein"

  • Modellerstellungseigenschaften


Eigenschaften von Vorhersage auf Servername, Registerkarte "Allgemein"

Die folgende Tabelle enthält die im Dialogfeld Eigenschaften von Vorhersage auf Servername auf der Registerkarte Allgemein verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Name | Anzeigen des Namens der Vorhersageressource.
Hostname | Anzeigen des Namens für den Server, auf dem die Vorhersageressource installiert ist.
Zuletzt gestartet | Anzeigen von Datum und Uhrzeit des letzten Starts der Vorhersageressource.

Siehe auch

Informationen zur Vorhersageressource


Modellerstellungseigenschaften

Die folgende Tabelle enthält die im Dialogfeld Modellerstellungseigenschaften verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Name | Eingeben eines Namens für das Analysemodell.
Erstellungspriorität
  • Auswählen der Erstellungspriorität, die diese Analysemodell haben soll. Der Standardeinstellung ist Normal (dies ist die Erstellungspriorität für den jeweiligen Erstellungsthread) Folgende Möglichkeiten stehen zur Auswahl:
    • Niedrigste

    • Unter Normal

    • Normal

    • Über Normal

    • Höchste
Modelltyp Auswählen eines Typs für das zu erstellende Analysemodell. Folgende Möglichkeiten stehen zur Auswahl:
  • Vorhersage. Wählen Sie diese Option aus, um ein Vorhersagemodell zu erstellen, das Empfehlungen auf Ihrer Site liefert.

  • Segment. Wählen Sie diese Option aus, um ein Segmentmodell zu erstellen, mit dessen Hilfe Benutzersegmente im Segment-Viewer-Modul von Commerce Server Business Desk angezeigt werden.
Stichprobengröße Eingeben der Anzahl der Fälle, die für das Erstellen des Analysemodells verwendet werden sollen.

Der Standardwert kann bei Bedarf geändert werden. Er beträgt –1 (alle Daten) oder 20.000 Fälle, je nachdem, welches der niedrigere Wert ist.

Gemessene Genauigkeit des Stichprobenanteils Eingeben des Anteils an Stichprobendaten, die verwendet werden sollen, um die Genauigkeit des Modells automatisch zu bewerten. Verwenden Sie hierfür eine Zahl zwischen 0,0 und 1,0.

Wenn Sie z. B. 0,0 als Wert für die gemessene Genauigkeit des Anteils eingeben, wird das Modell nicht bewertet. Wenn Sie 0,4 eingeben, werden 40 Prozent der Stichprobendaten verwendet, um das Modell zu bewerten (die verbleibenden 60 Prozent werden zum Erstellen des Modells verwendet).

Gemessene maximale Vorhersagegenauigkeit | Eingeben der maximalen Anzahl an Empfehlungen, die in Ihrer Site dargestellt werden sollen (wird zum Errechnen der Empfehlungsbewertung verwendet). Die Standardeinstellung ist 10 Attribute.
Eingabeattributanteil | Eingeben des Anteils an Attributen, die als Eingabe für die Vorhersagen verwendet werden sollen, als eine Zahl zwischen 0,0 und 1,0. Wenn Sie z. B. einen Eingabeattributanteil von 0,05 angeben, werden die aussagekräftigsten 5 Prozent der Eingabeattribute ausgewählt. Der Standardwert ist 1,0. Es werden alle Attribute als Eingaben für die Vorhersage berücksichtigt. Werte unter 1,0 werden dann empfohlen, wenn die Attributanzahl sehr groß ist, wie z. B. bei Produktempfehlungen für einen Katalog mit mehr als 1.000 Produkten.
Ausgabeattributanteil | Eingeben des Anteils an Attributen, die vorhergesagt werden sollen, als eine Zahl zwischen 0,0 und 1,0. Wenn beispielsweise ein Ausgabeattributanteil von 0,05 eingegeben wird, werden Bäume für die aussagekräftigsten 5 Prozent der Attribute erstellt. (Wenn die Ausgabeattribute Produkte sind, werden Strukturen für die 5 Prozent von Produkten ausgegeben, die am beliebtesten sind.) Der Standardwert ist 1,0. Bei diesem Wert werden für alle Attribute Strukturen erstellt. Werte unter 1,0 werden dann empfohlen, wenn die Attributanzahl sehr groß ist, wie z. B. bei Produktempfehlungen für einen Katalog mit mehr als 1.000 Produkten.
Anzahl der Segmente | Eingeben der Höchstzahl an Segmenten für die Unterteilung der Benutzer. Dies ist ein erster Hinweis für den Algorithmus, der möglicherweise weniger signifikante Segmente findet, als dieser Wert angibt. Dieser Wert ist nur dann verfügbar, wenn Sie ein Segmentmodell erstellen.
Puffergröße | Eingeben der Größe des Puffers, der für das Lesen der Fälle während der Segmentierung verwendet werden soll. Die Standardeinstellung ist 1.000.000 Byte. Die Puffergröße kann sich auf die Erstellungszeit und die Qualität des Modells auswirken. Wenn das Modell beispielsweise zahlreiche Attribute enthält, sollten Sie eine große Puffergröße wählen. Die maximale Puffergröße der Vorhersageressource wird durch die Systemressourcen des ausführenden Computers begrenzt. Dieser Wert ist nur dann verfügbar, wenn Sie ein Segmentmodell erstellen.

Siehe auch

Informationen zur Vorhersageressource

Tipps zum Umgang mit der Vorhersageressource

Effektivität des Analysemodells


Hilfe zu Dialogfeldelementen von Site Packager

Dieser Abschnitt enthält die kontextbezogenen Hilfethemen für Site Packager von Commerce Server. Sie können diese Themen aufrufen, indem Sie in den Dialogfeldern von Site Packager auf Hilfe klicken.

Dieser Abschnitt beinhaltet folgende Themen:

  • Willkommen

  • Packen

  • Entpacken

  • Schnelles Entpacken

  • Entpackmethode

  • Sitename

  • Auswählen von Ressourcen

  • Globale Ressourcenzeiger

  • Datenbank-Verbindungszeichenfolgen

  • Auswählen von Anwendungen

  • Auswählen von IIS-Websites und virtuellen Verzeichnissen

  • Master-Datenbank

  • Neue Datenbank

  • Eigenschaften von Datawarehouse

  • Profilsystem

  • Profilsystem: Active Directory-Datenquelle

  • Profilsystem: OLEDB-Datenquelle

  • Abschließen des Entpackens

  • Auswählen der Site

  • Profilsystem

  • Profilsystem


Willkommen

Die folgende Tabelle enthält die im Dialogfeld Willkommen verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Aus Paketdatei entpacken | Auswählen dieser Option, um eine Commerce Server-Anwendung auf einem Webserver zu installieren.
Vorhandene Site packen | Auswählen dieser Option, um das Paket einer Commerce Server-Anwendung zu erstellen, sodass sie auf einen anderen Webserver verschoben werden kann.

Siehe auch

Entpacken einer Site


Packen

Die folgende Tabelle enthält die im Dialogfeld Packen verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Zu packende Site | Auswählen des IIS-Namens (Internet Information Server) der zu packenden Site.
Zu erstellende Paketdatei | Eingeben eines Namens für die zu erstellende Paketdatei.

Siehe auch

Packen einer Site


Entpacken

Die folgende Tabelle enthält die im Dialogfeld Entpacken verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Zu entpackende Datei | Auswählen des Namens der zu entpackenden Paketdatei.
Schnelles Entpacken | Festlegen, dass alle Anwendungen dieser Site auf einem lokalen Computer sowie alle Datenbanken auf einem einzelnen lokalen oder Remotecomputer schnell installiert werden sollen.
Benutzerdefiniertes Entpacken | Festlegen, dass Site Packager Sie zur Auswahl aller Einstellungen zum Entpacken Ihrer Site auffordern soll. Sie können festlegen, welche Anwendungen installiert werden sollen und wie die Datenbanken zu konfigurieren sind.


Schnelles Entpacken

Die folgende Tabelle enthält die im Dialogfeld Schnelles Entpacken verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Sitename | Eingeben des Namens, den die Site erhalten soll. Dies ist der Name des virtuellen Verzeichnisses der Site.
IIS-Website | Auswählen des Namens der IIS-Website (Internet Information Server), auf der sich Ihre Site befinden wird. Diese Website muss bereits vorhanden sein. Zur Erstellung einer neuen IIS-Website kann das IIS-Snap-In verwendet werden.
SQL Server-Computer | Eingeben des Namens des SQL Server-Computers, auf dem sich die Sitedatenbanken befinden.
SQL-Benutzername | Eingeben des Benutzernamens der Person, die über die Anmeldeprivilegien für den SQL Server-Computer verfügt. Der Anmeldename muss zu einer der folgenden SQL Server-Rollen gehören: sysadmin oder dbcreator. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.
SQL-Kennwort | Eingeben des Kennwortes desjenigen Benutzers, der über die Anmeldeprivilegien für den SQL Server-Computer verfügt. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.

Siehe auch

Entpacken einer Site


Entpackmethode

Die folgende Tabelle enthält die im Dialogfeld Entpackmethode verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Neue Site erstellen | Auswählen dieser Option, um eine neue Website zu erstellen.
Einer vorhandenen Site Ressourcen des Pakets hinzufügen | Auswählen dieser Option, um Ressourcen, wie z. B. Direct Mailer oder Predictor, zu einer vorhandenen Commerce Server-Site hinzuzufügen.
Einer vorhandenen Site eine Anwendung des Pakets hinzufügen | Auswählen dieser Option, um eine Anwendung, wie z. B. Business Desk, zu einer vorhandenen Site hinzuzufügen.
Einer vorhandenen Anwendung in einer vorhandenen Site einen Webserver hinzufügen | Auswählen dieser Option, um Anwendungen auf einem Webserver zu installieren, der auf einem anderen Server verwaltet wird. Diese Option fügt Ihrer Site einen neuen Webserver hinzu. Die Verwaltungstools von Commerce Server werden jedoch nicht auf dem neuen Webserver mitinstalliert.

Siehe auch

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern


Sitename

Die folgende Tabelle enthält die im Dialogfeld Sitename verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Sitename | Eingeben des Namens der zu erstellenden Site.
Vorhandene Sites | Anzeigen einer Liste der vorhandenen Sites. Beim Erstellen einer neuen Site kann kein Name aus dieser Liste gewählt werden.

Anmerkungen

  • Verzichten Sie beim Eingeben des Sitenamens auf Sonderzeichen (wie #, @, % und ') und Tastenkombinationen (wie ALT+Zahl), um Fehler beim Entpacken zu vermeiden. Der Sitename wird an Ihre Datenbanknamen angehängt, jedoch können diese Namen durch Sonderzeichen oder Tastenkombinationen beschädigt werden.

  • Achten Sie darauf, dass der Sitename nicht mehr als 256 Single-Byte-Zeichen oder 128 Double-Byte-Zeichen umfasst.

  • Nennen Sie die Site nicht Commerce. Dies ist ein für die OLAP-Datenbank reservierter Name. Wenn Sie Ihre Site Commerce nennen, kann dies beim nächsten Entpacken einer Site zum Verlust Ihrer OLAP-Datenbank führen.

Siehe auch

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern


Auswählen von Ressourcen

Die folgende Tabelle enthält die im Dialogfeld Ressourcen auswählen verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Zu entpackende Ressourcen | Festlegen, welche Ressourcen entpackt werden sollen. Wenn sich die Ressource in dieser Liste befindet, werden ihre Einstellungen und ihr Schema entpackt.
Hinzufügen | Verschieben der in der Liste Verfügbare Ressourcen ausgewählten Elemente in die Liste Zu entpackende Ressourcen.
Alle hinzufügen | Verschieben aller in der Liste Verfügbare Ressourcen ausgewählten Elemente in die Liste Zu entpackende Ressourcen.
Entfernen | Verschieben der in der Liste Zu entpackende Ressourcen ausgewählten Elemente in die Liste Verfügbare Ressourcen.
Alle entfernen | Verschieben aller in der Liste Zu entpackende Ressourcen ausgewählten Elemente in die Liste Verfügbare Ressourcen.

Anmerkung

  • Die Ressourcen Site-CS-Authentifizierung und Profile müssen gemeinsam installiert werden. Sie sind nur funktionsfähig, wenn beide installiert sind.

Siehe auch

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern


Globale Ressourcenzeiger

Die folgende Tabelle enthält die im Dialogfeld Globale Ressourcenzeiger verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Globale Ressourcenzeiger | Auswählen des globalen, zu konfigurierenden Ressourcenzeigers. Die Spalte Zuordnungen zu globaler Ressource zeigt an, ob lokal eine neue globale Ressource erstellt wird bzw. wo sich die globale Ressource befindet.
Vorhandene globale Ressourcen | Auswählen des Speicherorts der globalen Ressource, die dieser Computer verwenden soll. In der Liste werden die globalen Ressourcen angezeigt, die bei der Installation von Commerce Server erstellt wurden.

Siehe auch

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern


Datenbank-Verbindungszeichenfolgen

Die folgende Tabelle enthält die im Dialogfeld Datenbank-Verbindungszeichenfolgen verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Ressource | Auswählen der Ressource, für die eine Aktion durchgeführt werden soll, z. B. das Ändern eines Datenbankservers.
Ändern | Festlegen eines anderen Servers oder einer anderen Datenbank für die Ressource.
Standardeinstellungen | Zurücksetzen der Verbindungszeichenfolgen auf die Standardeinstellungen, die aus zwei lokal gespeicherten Datenbanken bestehen (eine für Datawarehouse und eine zweite für die anderen Ressourcen).
Kopieren | Kopieren der ausgewählten Ressourcen in die Zwischenablage.
Einfügen | Einfügen der Ressourcen aus der Zwischenablage.
Neue Datenbank | Erstellen einer neuen Datenbank für die ausgewählte(n) Ressource(n). Verwenden Sie diesen Befehl, wenn Sie die Datenbank auf einen anderen Computer verlegen oder ihr einen anderen Namen geben möchten.

Siehe auch

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern


Auswählen von Anwendungen

Die folgende Tabelle enthält die im Dialogfeld Anwendungen auswählen verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Anwendungen im Paket | Festlegen, welche Anwendungen entpackt werden sollen. Deaktivieren Sie die Kontrollkästchen der Anwendungen, die Sie nicht installieren möchten.

Siehe auch

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern


Auswählen von IIS-Websites und virtuellen Verzeichnissen

Die folgende Tabelle enthält die im Dialogfeld Wählen Sie die IIS-Websites und die virtuellen Verzeichnisse aus verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Anwendung | Auswählen der Anwendung, für die eine Aktion durchgeführt werden soll.
IIS-Website | Auswählen einer vorhandenen IIS-Website, des Speicherortes Ihrer Site auf dem Server.
Websites aktualisieren | Auswählen dieser Option, um die Liste der verfügbaren IIS-Websites zu aktualisieren. Wählen Sie diese Option, um eine neue IIS-Website zu erstellen, während dieses Dialogfeld angezeigt wird.
Virtuelles IIS-Verzeichnis | Festlegen des Namens des IIS-Virtuellen Verzeichnisses Ihrer Site. Dieser Name wird im URL-Pfad der Site angezeigt.

Anmerkung

  • Verzichten Sie in der IIS-Website und den Namen der virtuellen Verzeichnisse auf Sonderzeichen (wie #, @, % und '), um IIS-Fehler zu vermeiden.

  • Site Packager unterstützt nicht das Entpacken von Sites auf Remotecomputern.

  • Site Packager platziert Ihre Anwendungen in verschiedenen Unterordnern innerhalb der von Ihnen angegebenen IIS-Website sowie in den physischen Ordnern, auf die die IIS-Website verweist. Diese Unterordner werden mit dem Namen des virtuellen Verzeichnisses versehen, den Sie für jede Anwendung angeben. Standardmäßig sind diese virtuellen Verzeichnisnamen dieselben wie die Anwendungsnamen.

Siehe auch

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern


Master-Datenbank

Die folgende Tabelle enthält die im Dialogfeld Master-Datenbank verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
SQL-Benutzername | Eingeben des Benutzernamens der Person, die über die Anmeldeprivilegien für den SQL Server-Computer verfügt. Wenn Sie eine neue Datenbank erstellen möchten, müssen Sie einen Anmeldenamen verwenden, der zu einer der folgenden SQL Server-Rollen gehört: sysadmin oder dbcreator. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.
SQL-Kennwort | Eingeben des Kennwortes des Benutzers, der über die Anmeldeprivilegien für den SQL Server-Computer verfügt. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.
Verbindung testen | Testen der Verbindung von diesem Computer zu dem Datenbankserver, der oben im Dialogfeld angegeben ist.


Neue Datenbank

Die folgende Tabelle enthält die im Dialogfeld Neue Datenbank verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
SQL Server-Computer | Eingeben des Namens des SQL Server-Clusters.
Datenbankname | Eingeben des Namens für die Datawarehouse-Datenbank.
SQL-Benutzername | Beim Erstellen einer neuen Datenbank muss ein Anmeldename verwendet werden, der zu einer der folgenden SQL Server-Rollen gehört: sysadmin oder dbcreator. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.
SQL-Kennwort | Eingeben des Kennwortes für die SQL Server-Anmeldung. Verzichten Sie auf Sonderzeichen (wie #, @, % und '), um OLAP-Fehler zu vermeiden.
Datenbank erstellen | Klicken Sie hierauf, um die neue Datenbank auf dem angegebenen Server zu erstellen.

Siehe auch

Beispiel A: Installation auf einer Clusterkonfiguration mit vier Computern


Eigenschaften von Datawarehouse

Die folgende Tabelle enthält die im Dialogfeld Eigenschaften von Datawarehouse verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Name | Eingeben des Namens für die globale Datawarehouse-Ressource.
Server | Eingeben des Namens des SQL Analysis- (OLAP-) Computers.
Datenbank | Eingeben des Namens der SQL Analysis- (OLAP-) Datenbank.
Verbindung testen | Testen der Verbindung zwischen diesem Computer und dem Server, auf dem sich Datawarehouse befindet.
Ressource überspringen | Überspringen der Konfiguration des lokalen Zeigers auf eine globale Datawarehouse-Ressource.

Siehe auch

Sichern der Site


Profilsystem

Die folgende Tabelle enthält die im Dialogfeld Profilsystem verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Profilschemadefinition (*.xml) | Eingeben der Profilschemadefinition, die in Ihre Site importiert werden soll.
Sitebegriffsdefinition (*.xml) | Eingeben der Sitebegriffsdefinition, die importiert werden soll.
Ausdrucksdefinition (*.xml) | Eingeben der Ausdrucksdefinition, die importiert werden soll.

Siehe auch

Entpacken einer Site


Profilsystem: Active Directory-Datenquelle

Die folgende Tabelle enthält die im Dialogfeld Profilsystem: Active Directory-Datenquelle verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Domäne | Eingeben der Windows-Domäne, die Ihre Site enthält.
Benutzername | Eingeben eines gültigen Benutzernamens für die Windows-Domäne. Der Benutzername muss in einem der folgenden Formate angegeben werden: Domäne\Benutzername Benutzername@Domäne
Kennwort | Eingeben des Domänenkennwortes für den angegebenen Benutzer.
Übergeordneter URL | Eingeben des Speicherortes für die Daten in den Verzeichnispfad.
Einfache Bindung verwenden | Auswählen dieser Option, um das Kennwort in Klartext zu senden. Diese Option ist nicht sehr sicher, wird jedoch von einigen Verzeichnisdiensten gefordert.
Ausführbares Skript | Ausführen von Visual Basic-Skripts zur Erstellung von Objekten in der Verzeichnisstruktur der Site.
Verbindung testen | Testen der Gültigkeit der Verbindung zum Domänencontroller.


Profilsystem: OLEDB-Datenquelle

Die folgende Tabelle enthält die im Dialogfeld Profilsystem: OLEDB-Datenquelle verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Ändern | Ändern der Verbindungszeichenfolge des Profilsystems.
Schemadefinitionsskripts | Eingeben des Speicherortes der Schemadefinitionsskripts.
Datenauffüllungsskripts | Eingeben des Speicherortes der Datenauffüllungsskripts.


Abschließen des Entpackens

Die folgende Tabelle enthält die im Dialogfeld Das Entpacken ist abgeschlossen verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Ausgewählte Anwendung anzeigen | Ausführen der im Feld Beim Entpacken erstellte IIS-Anwendungen ausgewählten Anwendung.
Protokolldatei anzeigen | Öffnen der Protokolldatei von Site Packager, welche alle während der Ausführung von Site Packager auftretenden Ereignisse anführt. Diese Informationen sind nützlich, wenn Fehler aufgetreten sind.
Fertig stellen | Schließen von Site Packager.


Auswählen der Site

Die folgende Tabelle enthält die im Dialogfeld Site auswählen verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Vorhandene Sites | Eingeben des Namens der Site, die Sie ändern möchten.

Siehe auch

Entpacken einer Site


Profilsystem

Die folgende Tabelle enthält die im Dialogfeld Profilsystem verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Profilschemadefinition | Eingeben der Profilschemadefinition, die in Ihre Site importiert werden soll.
Sitebegriffsdefinition | Eingeben der Sitebegriffsdefinition, die importiert werden soll.
Ausdrucksdefinition | Eingeben der Ausdrucksdefinition, die importiert werden soll.


Profilsystem

Die folgende Tabelle enthält die im Dialogfeld Profilsystem verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Verbindungszeichenfolge für das Profilsystem | Eingeben der Dateien, die in den OLEDB-Datenspeicher importiert werden sollen. Klicken Sie auf Ändern, um eine andere Datenbank anzugeben.
Schemadefinitionsskripts (*.sql, *.vbs) | Eingeben der Schemadefinitionsskripts, die in Ihre Site importiert werden sollen.
Datenauffüllungsskripts (*.sql) | Eingeben der Datenauffüllungsskripts, die in Ihre Site importiert werden sollen.


Hilfe zu Dialogfeldelementen der Profilressource

Dieser Abschnitt enthält die kontextbezogenen Hilfethemen für die Profilressource von Commerce Server. Sie können diese Themen von der Benutzeroberfläche der Profilressource aus aufrufen, indem Sie in den Dialogfeldern der Profilressource auf Hilfe klicken.

Dieser Abschnitt beinhaltet folgende Themen:

  • Eigenschaften von "Profilkatalog", Registerkarte "Allgemein"

  • Eigenschaften von "Profildefinition", Registerkarte "Allgemein"

  • Eigenschaften von "Profildefinition", Registerkarte "Benutzerdefiniertes Attribut"

  • Benutzerdefinierte Attribute

  • Neue Datenquelle

  • Datenquelle

  • Partitionen

  • Partition

  • Systemattribute

  • LDAP-Verbindungszeichenfolge

  • Neues Datenobjekt

  • Neues Datenelement

  • Eigenschaften von "Datenelement", Registerkarte "Allgemein"

  • Eigenschaften von "Datenelement", Registerkarte "Eigenschaften"

  • Eigenschaften von "Datenobjekt", Registerkarte "Identität"

  • Neue Profildefinition

  • Benutzerdefiniertes Attribut

  • Eigenschaften von "Datenquelle", Registerkarte "Allgemein"

  • Eigenschaften von "Datenquelle", Registerkarte "Datenquelle"

  • Eigenschaften von "Datenquelle", Registerkarte "Partitionen"


Eigenschaften von Profilkatalog, Registerkarte "Allgemein"

Die folgende Tabelle enthält die im Dialogfeld Eigenschaften von Profilkatalog auf der Registerkarte Allgemein verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Name | Anzeigen des programmtechnischen Profilkatalognamens.
Angezeigter Name | Bearbeiten des angezeigten Profilkatalognamens. Der angezeigte Name kann aus maximal 127 Unicode-Zeichen bestehen.
Beschreibung | Bearbeiten der Beschreibung des Profilkatalogs. Die Beschreibung kann aus maximal 127 Unicode-Zeichen bestehen.

Siehe auch

Profildefinitionen

Beispiele für Profildefinitionen

Hinzufügen von Eigenschaften zu Profildefinitionen

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Profildefinitionen


Eigenschaften von Profildefinition, Registerkarte "Allgemein"

Die folgende Tabelle enthält die im Dialogfeld Eigenschaften von Profildefinition auf der Registerkarte Allgemein verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Name | Anzeigen des programmtechnischen Namens der bearbeiteten Profildefinition.
Angezeigter Name | Bearbeiten des angezeigten Profilnamens. Der angezeigte Name kann aus maximal 127 Unicode-Zeichen bestehen.
Beschreibung | Bearbeiten der Profilbeschreibung. Die Beschreibung kann aus maximal 127 Unicode-Zeichen bestehen.

Siehe auch

Profildefinitionen

Beispiele für Profildefinitionen

Hinzufügen von Eigenschaften zu Profildefinitionen

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Profildefinitionen


Eigenschaften von Profildefinition, Registerkarte "Benutzerdefiniertes Attribut"

Die folgende Tabelle enthält die im Dialogfeld Eigenschaften von Profildefinition auf der Registerkarte Benutzerdefinierte Attribute verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Neu | Klicken Sie hierauf, um das Dialogfeld Benutzerdefiniertes Attribut zu öffnen und ein neues benutzerdefiniertes Attribut zu erstellen.
Bearbeiten | Klicken Sie hierauf, um das Dialogfeld Benutzerdefiniertes Attribut zu öffnen und das ausgewählte benutzerdefinierte Attribut zu bearbeiten.
Löschen | Klicken Sie hierauf, um das ausgewählte benutzerdefinierte Attribut zu löschen.

Siehe auch

Profildefinitionen

Beispiele für Profildefinitionen

Hinzufügen von Eigenschaften zu Profildefinitionen

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Profildefinitionen


Benutzerdefinierte Attribute

Die folgende Tabelle enthält die im Dialogfeld Benutzerdefinierte Attribute verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Neu | Klicken Sie hierauf, um das Dialogfeld Benutzerdefiniertes Attribut zu öffnen und ein neues benutzerdefiniertes Attribut zu erstellen.
Bearbeiten | Klicken Sie hierauf, um das Dialogfeld Benutzerdefiniertes Attribut zu öffnen und das ausgewählte benutzerdefinierte Attribut zu bearbeiten.
Löschen | Klicken Sie hierauf, um das ausgewählte benutzerdefinierte Attribut zu löschen.

Siehe auch

Profildefinitionen

Beispiele für Profildefinitionen

Hinzufügen von Eigenschaften zu Profildefinitionen

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Profildefinitionen


Neue Datenquelle

Die folgende Tabelle enthält die im Dialogfeld Neue Datenquelle verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Name | Eingeben des programmtechnischen Namens der Datenquelle. Der Name kann bis zu 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Die Verwendung von Leerzeichen ist nicht zulässig.
Angezeigter Name | Eingeben des angezeigten Namens der Datenquelle. Der angezeigte Name kann aus maximal 127 Unicode-Zeichen bestehen.
Beschreibung | Eingeben einer kurzen Beschreibung für die Datenquelle. Die Beschreibung kann aus maximal 127 Unicode-Zeichen bestehen.

Siehe auch

Datenquelle

Datenquellenpartitionen

Hinzufügen einer neuen Datenquelle

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Datenquellen


Datenquelle

Die folgende Tabelle enthält die im Dialogfeld Datenquelle verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Quellentyp | Auswählen des Quellentyps: LDAPv3-kompatible Quelle oder OLEDB-ANSI-Provider.

Siehe auch

Datenquellen

Datenquellenpartitionen

Hinzufügen einer neuen Datenquelle

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Datenquellen


Partitionen

Die folgende Tabelle enthält die im Dialogfeld Partitionen verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Partitionierte Datenquelle | Aktivieren Sie diese Option, um für die Datenquelle mehrere Partitionen zu erstellen.
Anzahl der Partitionen | Anzeigen der Anzahl bestehender Partitionen für diese Datenquelle.
Hinzufügen | Klicken Sie hierauf, um das Dialogfeld Partition zu öffnen und eine neue Partition zu erstellen.
Bearbeiten | Klicken Sie hierauf, um das Dialogfeld Partition zu öffnen und die ausgewählte Partition zu bearbeiten.

Siehe auch

Datenquellen

Datenquellenpartitionen

Hinzufügen einer neuen Datenquelle

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Datenquellen


Partition

Die folgende Tabelle enthält die im Dialogfeld Partition verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Bearbeiten | Klicken Sie hierauf, um das Dialogfeld LDAP-Verbindungszeichenfolge zu öffnen, wenn im Dialogfeld Datenquelle als Datenquelle LDAPv3-kompatible Quelle ausgewählt wurde. Klicken Sie hierauf, um das Dialogfeld Datenverknüpfungseigenschaften zu öffnen, wenn im Dialogfeld Datenquelle als Datenquelle OLEDB-ANSI-Provider ausgewählt wurde.
Testen | Klicken Sie hierauf, um die Verbindungszeichenfolge zu testen.
Partitionsname | Eingeben eines programmtechnischen Namens für diese Partition. Der Partitionsname kann bis zu 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Die Verwendung von Leerzeichen ist nicht zulässig.
Standardpartition | Einrichten dieser Partition als Standardpartition.
LDAPv3-Bindungsinformationen: Benutzername | Eingeben des Benutzernamens für die LDAP-Quelle.
LDAPv3-Bindungsinformationen: Kennwort | Eingeben des Kennworts für die LDAP-Quelle.

Siehe auch

Datenquellen

Datenquellenpartitionen

Hinzufügen einer neuen Datenquelle

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Datenquellen


Systemattribute

Die folgende Tabelle enthält die im Dialogfeld Systemattribute verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Übergeordneter URL | Eingeben des Speicherorts im Verzeichnispfad, an dem neue Objekte erstellt werden sollen. Der Pfad wird relativ zum Stammverzeichnis angegeben.
Dieselben Informationen für alle Benutzer verwenden | Erzwingen, dass der Profildienst die Anmeldeinformationen für diese Partition für alle Verbindungen verwendet.
Einfache Bindung zulassen | Erzwingen, dass der Profildienst Kennwörter als Klartext sendet.
Dynamischer Container | Verbinden mit einem dynamischen Speicher, z. B. Internet Locator Service (ILS).
Einzelebene | Durchsuchen des Verzeichnisses.
Unterstruktur | Durchsuchen untergeordneter Verzeichnisse.
Domänenname | Eingeben des Domänennamens für den Active Directory-Server. Bei Quellen, die nicht aus Active Directory stammen, verwenden Sie den Computernamen.
Erkennen | Klicken Sie hierauf, um den Domänennamen für den Active Directory-Server zu ermitteln.

Siehe auch

Datenquellen

Datenquellenpartitionen

Hinzufügen einer neuen Datenquelle

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Datenquellen


LDAP-Verbindungszeichenfolge

Die folgende Tabelle enthält die im Dialogfeld LDAP-Verbindungszeichenfolge verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Server | Eingeben des Servernamens, auf dem die LDAP-Quelle gespeichert ist.
Anschluss | Eingeben des Anschlussnamens. Der Standardanschluss ist 389.

Verbindungszeichenfolge

 Anzeigen der Verbindungszeichenfolge.

Siehe auch

Datenquellen

Datenquellenpartitionen

Hinzufügen einer neuen Datenquelle

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Datenquellen


Neues Datenobjekt

Die folgende Tabelle enthält die im Dialogfeld Neues Datenobjekt verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Objektname | Wählen Sie in der Dropdownliste das Datenobjekt aus, das eine Tabelle oder LDAP-Klasse im zu Grunde liegenden Datenspeicher bezeichnet.
Angezeigter Name | Eingeben des Namens, der für das Datenobjekt angezeigt werden soll. Der angezeigte Name kann aus maximal 127 Unicode-Zeichen bestehen.
Beschreibung | Eingeben einer Beschreibung für das Datenobjekt. Die Beschreibung kann aus maximal 127 Unicode-Zeichen bestehen.
Elemente im Objekt | Anzeigen der Datenelemente des ausgewählten Datenobjekts.

Siehe auch

Datenquellen

Hinzufügen einer neuen Datenquelle

Hinzufügen einer neuen Datenquelle

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Datenquellen


Neues Datenelement

Die folgende Tabelle enthält die im Dialogfeld Neues Datenelement verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Elementname | Wählen Sie in der Liste einen Namen für das neue Datenelement aus. Der Name des neuen Datenelements muss für das Datenobjekt eindeutig sein. Das Datenelement muss mit dem Namen einer Spalte oder eines LDAP-Attributs im zu Grunde liegenden Datenspeicher übereinstimmen. Der Name kann bis zu 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Die Verwendung von Leerzeichen ist nicht zulässig.
Angezeigter Name | Eingeben des Namens, der in der Anwendung für das Datenelement angezeigt werden soll. Der angezeigte Name kann aus maximal 127 Unicode-Zeichen bestehen.
Beschreibung | Eingeben einer kurzen Beschreibung für das Datenelement. Die Beschreibung kann aus maximal 127 Unicode-Zeichen bestehen.
Typ Eingeben des Datentyps für das Datenelement. Folgende Datentypen werden unterstützt:
  • Binärwert

  • Boolesch

  • Währung

  • Datum/Uhrzeit

  • Zahl

  • Zeichenfolge
Mehrwertig | Aktivieren Sie das Kontrollkästchen, um die Verknüpfung mehrerer Werte mit diesem Datenelement zuzulassen.
Erforderlich | Aktivieren Sie das Kontrollkästchen, wenn das Datenelement obligatorisch ist. Andernfalls ist das Datenelement optional.
Indiziert | Aktivieren Sie das Kontrollkästchen, wenn die Daten dieses Datenelements indiziert werden sollen.
Primärschlüssel | Aktivieren Sie das Kontrollkästchen, um diesem Datenelement den Primärschlüssel zuzuweisen. Sie müssen in jedem Datenobjekt ein Datenelement als Primärschlüssel festlegen.
Hinzufügen | Klicken Sie hierauf, um das neue Datenelement der Liste der Datenelemente hinzuzufügen.
Abschließen | Klicken Sie hierauf, um das Dialogfeld Neues Datenelement zu schließen und den Detailbereich von Commerce Server Manager zu aktualisieren.

Siehe auch

Datenquellen

Hinzufügen einer neuen Datenquelle

Hinzufügen von Eigenschaften zu Profildefinitionen

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Datenquellen


Eigenschaften von Datenelement, Registerkarte "Allgemein"

Die folgende Tabelle enthält die im Dialogfeld Eigenschaften von Datenelement auf der Registerkarte Allgemein verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Name | Anzeigen des programmtechnischen Datenelementnamens. Diesen Namen können Sie nicht ändern.
Angezeigter Name | Bearbeiten des Namens, der für das Datenelement angezeigt werden soll. Der angezeigte Name kann aus maximal 127 Unicode-Zeichen bestehen.
Beschreibung | Bearbeiten der Beschreibung des Datenelements. Die Beschreibung kann aus maximal 127 Unicode-Zeichen bestehen.

Siehe auch

Datenquellen

Hinzufügen einer neuen Datenquelle

Hinzufügen von Eigenschaften zu Profildefinitionen

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Datenquellen


Eigenschaften von Datenelement, Registerkarte "Eigenschaften"

Die folgende Tabelle enthält die im Dialogfeld Eigenschaften von Datenelement auf der Registerkarte Eigenschaften verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Typ | Auswählen eines neuen Datentyps für das Datenelement in der Dropdownliste.
Mehrwertig | Aktivieren Sie das Kontrollkästchen, wenn die Datenbankspalte (oder das LDAP-Attribut), der das Datenelement zugeordnet ist, mehrwertig ist.
Erforderlich | Aktivieren Sie das Kontrollkästchen, wenn die Datenbankspalte (oder das LDAP-Attribut), der das Datenelement zugeordnet ist, erforderlich ist.
Indiziert | Aktivieren Sie das Kontrollkästchen, wenn die Datenbankspalte (oder das LDAP-Attribut), der das Datenelement zugeordnet ist, indiziert ist.
Primärschlüssel | Aktivieren Sie das Kontrollkästchen, wenn die Datenbankspalte (oder das LDAP-Attribut), der das Datenelement zugeordnet ist, ein Primärschlüssel ist.

Siehe auch

Datenquellen

Hinzufügen einer neuen Datenquelle

Hinzufügen von Eigenschaften zu Profildefinitionen

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Datenquellen


Eigenschaften von Datenelement, Registerkarte "Identität"

Die folgende Tabelle enthält die im Dialogfeld Eigenschaften von Datenelement auf der Registerkarte Identität verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Name | Anzeigen des programmtechnischen Datenelementnamens.
Angezeigter Name | Bearbeiten des angezeigten Datenobjektnamens. Der angezeigte Name kann aus maximal 127 Unicode-Zeichen bestehen.
Beschreibung | Bearbeiten der Datenobjektbeschreibung. Die Beschreibung kann aus maximal 127 Unicode-Zeichen bestehen.

Siehe auch

Datenquellen

Hinzufügen einer neuen Datenquelle

Hinzufügen von Eigenschaften zu Profildefinitionen

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Datenquellen


Neue Profildefinition

Die folgende Tabelle enthält die im Dialogfeld Neue Profildefinition verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Name | Eingeben eines programmtechnischen Namens für das neue Profil. Der Name kann bis zu 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Die Verwendung von Leerzeichen ist nicht zulässig.
Angezeigter Name | Eingeben des Namens, der für das neue Profil angezeigt werden soll. Der angezeigte Name kann aus maximal 127 Unicode-Zeichen bestehen.
Beschreibung | Eingeben einer Beschreibung für das neue Profil. Die Beschreibung kann aus maximal 127 Unicode-Zeichen bestehen.

Siehe auch

Profildefinitionen

Beispiele für Profildefinitionen

Hinzufügen von Eigenschaften zu Profildefinitionen

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Profildefinitionen


Benutzerdefiniertes Attribut

Die folgende Tabelle enthält die im Dialogfeld Benutzerdefiniertes Attribut verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Name | Eingeben eines programmtechnischen Namens für das Attribut. Der Name kann bis zu 127 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Die Verwendung von Leerzeichen ist nicht zulässig.
Angezeigter Name | Eingeben des Namens, der für das neue Attribut angezeigt werden soll. Der angezeigte Name kann aus maximal 127 Unicode-Zeichen bestehen.
Beschreibung | Eingeben einer kurzen Beschreibung für das Attribut. Die Beschreibung kann aus maximal 127 Unicode-Zeichen bestehen.
Wert | Eingeben des Wertes, der dem Attribut zugewiesen werden soll.

Siehe auch

Profildefinitionen

Beispiele für Profildefinitionen

Hinzufügen von Eigenschaften zu Profildefinitionen

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Profildefinitionen


Eigenschaften von Datenquelle, Registerkarte "Allgemein"

Die folgende Tabelle enthält die im Dialogfeld Eigenschaften von Datenquelle auf der Registerkarte Allgemein verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Name | Anzeigen des Datenquellennamens.
Angezeigter Name | Bearbeiten des Namens, der für die Datenquelle angezeigt wird. Der angezeigte Name kann aus maximal 127 Unicode-Zeichen bestehen.
Beschreibung | Bearbeiten der Datenquellenbeschreibung. Die Beschreibung kann aus maximal 127 Unicode-Zeichen bestehen.

Siehe auch

Datenquellen

Datenquellenpartitionen

Hinzufügen einer neuen Datenquelle

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Datenquellen


Eigenschaften von Datenquelle, Registerkarte "Datenquelle"

Die folgende Tabelle enthält die im Dialogfeld Eigenschaften von Datenquelle auf der Registerkarte Datenquelle verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Quellentyp | Auswählen des Quellentyps: LDAPv3-kompatible Quelle oder OLEDB-ANSI-Provider.

Siehe auch

Datenquellen

Datenquellenpartitionen

Hinzufügen einer neuen Datenquelle

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Datenquellen


Eigenschaften von Datenquelle, Registerkarte "Partitionen"

Die folgende Tabelle enthält die im Dialogfeld Eigenschaften von Datenquelle auf der Registerkarte Partitionen verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Partitionierte Datenquelle | Erstellen mehrerer Partitionen für diese Datenquelle.
Anzahl der Partitionen | Anzeigen der Anzahl bestehender Partitionen für diese Datenquelle.
Hinzufügen | Klicken Sie hierauf, um das Dialogfeld Partition zu öffnen und eine neue Partition zu erstellen.
Bearbeiten | Klicken Sie hierauf, um das Dialogfeld Partition zu öffnen und die ausgewählte Partition zu bearbeiten.

Siehe auch

Datenquellen

Datenquellenpartitionen

Hinzufügen einer neuen Datenquelle

Beispiel: Erstellen einer Profildefinition mit zwei Datenquellen

Verwalten von Datenquellen


Arbeiten mit Business Desk

In diesem Abschnitt wird beschrieben, wie Sie Websites mithilfe von Commerce Server Business Desk verwalten können. Die Informationen sind in erster Linie für Businessmanager relevant, zu deren Aufgaben das Auswählen und Aktualisieren von Siteinhalten, das Ändern der Anzeigen für wichtige Kunden, das Aktualisieren von Katalogen und das Veröffentlichen der entsprechenden Änderungen gehören. Darüber hinaus sind sie für die Ausführung von Berichten verantwortlich, die Aufschluss darüber geben, wie sich die Änderungen auf die Produktivität der Website auswirken.

Dieser Abschnitt beinhaltet folgende Themen:

  • Erste Schritte mit Business Desk. Beschreibt die Komponenten von Business Desk sowie das Anpassen und Konfigurieren von Business Desk und erläutert erste Schritte bei der Verwendung des Produkts.

  • Business Desk-Lernprogramm. Erläutert die Einsatzmöglichkeiten von Business Desk zur Ausführung von Schlüsselaufgaben bei der Verwaltung von B2C- und B2B-Websites.

  • Business Desk-Analyse. Erläutert das Einrichten und Ausführen von Berichten, die zum Analysieren der Aktivitäten in der Website verwendet werden können.

  • Business Desk-Kampagnen. Erläutert das Erstellen und Verwalten verschiedener Kampagnentypen (Anzeigen, Preisnachlässe und Direktsendungen), um verschiedene Benutzergruppen zu erreichen, eine stärkere Präsenz des Unternehmens auf dem Markt zu erzielen und den Absatz zu steigern.

  • Business Desk-Kataloge. Erläutert das Erstellen eines Katalogschemas und das Erstellen und Verwalten eines Katalogs.

  • Business Desk-Aufträge. Erläutert die Überprüfung des Bestellstatus sowie die Verwaltung von Bestellvorlagen und Warenkörben. Beschreibt auch den Genehmigungsvorgang für Bestellungen. Erläutert darüber hinaus das Hinzufügen, Ändern und Löschen verschiedener Datencodetypen.

  • Business Desk-Benutzer. Erläutert das Hinzufügen von neuen registrierten Benutzern und Organisationen, von Eigenschaften und Profildefinitionen sowie von Sitebegriffen.

  • Problembehandlung in Business Desk. Erläutert das Suchen und Beheben allgemeiner Probleme, die bei der Arbeit mit Business Desk auftreten können.


Erste Schritte mit Business Desk

Dieser Abschnitt enthält wichtige Informationen für Benutzer, die Commerce Server Business Desk erstmals verwenden.

Dieser Abschnitt beinhaltet folgende Themen:

  • Business Desk: Übersicht

  • Business Desk: Grundlagen

  • Der erste Schritt

  • Allgemeine Aufgaben

  • Beispiel: Ein geschlossenes System

  • Verwenden der Business Desk-Onlinehilfe

  • Wenn Sie weitere Hilfe benötigen


Business Desk: Übersicht

Commerce Server Business Desk ist ein webbasiertes Siteverwaltungstool, das im Lieferumfang von Microsoft Commerce Server 2000 enthalten ist. Business Desk dient als Host für die Geschäftsmanagementmodule, mit deren Hilfe Sie Ihre Sites konfigurieren, verwalten und analysieren können. Mit Business Desk-Modulen lassen sich beispielsweise die Preise in Ihren Katalogen aktualisieren und neue Angebote durch Zielgruppenadressierung an bestimmte Benutzer richten. Anschließend können Sie Berichte ausführen, die den Einfluss dieser Änderungen auf die Produktivität der Site messen.

Business Desk besteht aus zwei Teilen: der Business Desk-Anwendung und dem Business Desk-Client.

  • Business Desk-Anwendung. Diese Anwendung ist das Managementtool, das Sie zum Konfigurieren, Verwalten und Analysieren Ihrer Site einsetzen. Nach der Installation von Commerce Server können Sie eine Lösungssite entpacken, über die sich eine Business Desk-Anwendung installieren lässt. Auf Business Desk kann von einem beliebigen Computer mit Microsoft Internet Explorer 5.5 zugegriffen werden. So erhalten Sie sicheren Remotezugriff.

  • Business Desk-Client. Dies ist die Clientsoftware, die Sie auf einem lokalen Computer installieren. Der Client stellt die Oberfläche für den Zugriff auf die Business Desk-Anwendung bereit. Beim ersten Zugriff auf eine Business Desk-Anwendung (über einen URL) wird der Business Desk Client gedownloadet und auf Ihrem Computer installiert. Für den Computer, auf dem der Business Desk-Client ausgeführt werden soll, empfiehlt sich eine schnelle Verbindung zur Business Desk-Anwendung.
Business Desk-
Client
Business Desk-
Client
Business Desk-
Client
Commerce Server-Datacenter
Business Desk-
Anwendung
Eigene
Website
New York
Tokio
Chicago
New York
Das Internet
Abbildung des Zugriffs eines Business Desk-Clients auf die Business Desk-Anwendung

Dieser Abschnitt beinhaltet folgende Themen:

  • Business Desk-Komponenten

  • Aktualisieren der Website mit Business Desk

  • Verwenden von BizTalk Server

  • Commerce Server-Konfiguration und Business Desk


Business Desk-Komponenten

Mithilfe der Module, den Hauptkomponenten von Commerce Server Business Desk, können Sie die unterschiedlichen Aspekte Ihrer Site verwalten. Die folgende Tabelle zeigt die Business Desk-Module und die Kategorien, in denen sie enthalten sind, und beschreibt die Tasks, die mit ihrer Hilfe ausgeführt werden können.

Kategorie | Beschreibung
Analyse Berichte Abgeschlossene Berichte Segment-Viewer | Ausführen von Berichten über die Siteaktivität, Überprüfen der Site und Durchführen von Vorhersageanalysen. Die Analysemodule enthalten einen umfangreichen Satz an Berichten, die unterschiedliche Aspekte Ihrer Site berücksichtigen.
Kampagnen Kampagnenausdrücke Kampagnen-Manager Listen-Manager Zielgruppe Referenztabellen Kampagnen veröffentlichen | Erstellen und Planen von Marketingkampagnen. Hinzufügen von Kundeninformationen und Verwalten von Kampagnen und Kampagnenartikeln. Beispiele für Kampagnenartikel sind Werbebanner, Direktsendungsaufgaben und Preisnachlässe auf Produkte. Jeder Kampagnenartikel kann auf bestimmte Benutzer ausgerichtet werden, sodass eine hochgradig personalisierte Site erstellt wird.
Kataloge Katalog-Designer Katalog-Editor Katalogsätze | Importieren und Erstellen von Katalogen, Hinzufügen von Produkten und Festlegen von Preisen. Erstellen von benutzerdefinierten Katalogen mit Sonderpreisen, die nur bestimmten Benutzern angeboten werden, z. B. Mitgliedern eines Clubs.
Bestellungen Warenkorb-Manager Datencodes Bestellstatus Transaktionen veröffentlichen Versandarten Steuersätze | Durchsuchen der Commerce Server-Datenbank nach vorhandenen Bestellinformationen. Hinzufügen, Bestätigen oder Löschen der Bestellinformationen. Hinzufügen, Löschen oder Ändern von Versandkosten und Steuersätzen.
Benutzer Benutzer Organisationen Profil-Designer Sitebegriffs-Editor Profile veröffentlichen | Erstellen und Ändern von Benutzern, Organisationen und Profilen. Erstellen und Ändern von Sitebegriffen.

Siehe auch

Aktualisieren der Website mit Business Desk

Commerce Server-Konfiguration und Business Desk

Verwenden von BizTalk Server

Business Desk: Grundlagen

Der erste Schritt


Aktualisieren Ihrer Website mit Business Desk

Die folgende Abbildung zeigt, wie Sie Ihre Website mithilfe der Business Desk-Module von Commerce Server aktualisieren können. So werden Sitedaten z. B. erst aus Ihrer Website abgerufen und in Datawarehouse importiert. Anschließend können Sie Analyseberichte ausführen. Mithilfe der Kampagnenmodule können Sie Anzeigen, Preisnachlässe und Promotions erstellen und anzeigen. Verwenden Sie die Katalogmodule, um die Informationen in Ihrem Katalog zu aktualisieren. Die Auftragsmodule verwenden Sie, um Benutzerbestellungen zu verfolgen. Mithilfe der Benutzermodule können Sie Benutzerkennwörter zurücksetzen, andere Benutzerprofilinformationen ändern sowie festlegen, welche Profildaten gesammelt werden sollen.

Die folgende Abbildung zeigt, wie Sie mithilfe von Business Desk Client auch von einem Remotecomputer auf die Business Desk-Anwendung zugreifen können, um eine Website zu aktualisieren.

Aktualisierung der Website mithilfe von Business Desk-Modulen
Benutzer
Bestellungen
Kampagnen
Bestellungen
Profile
Commerce Server-
Datawarehouse
Benutzer
registrieren
Business Desk
Commerce Server-Datenbanken
Eigene Website
Kataloge anzeigen
Kataloge
Kataloge
Kampagnen
Analyse
Aktivität
aufzeichnen
Bestellungen
annehmen
Anzeigen
anzeigen

Siehe auch

Business Desk-Komponenten

Commerce Server-Konfiguration und Business Desk

Verwenden von BizTalk Server

Business Desk: Grundlagen

Der erste Schritt


Verwenden von BizTalk Server

BizTalk Server 2000 bietet Ihnen ein Gateway für den Versand von Geschäftsdokumenten zwischen Ihrem Unternehmen und Ihren Handelspartnern (im Folgenden als Hersteller bezeichnet). Wenn Ihr Unternehmen beispielsweise BizTalk Server verwendet, können Sie Kataloge, Bestellungen, Dokumente und andere elektronische Formulare mit Ihren Handelspartnern austauschen. BizTalk Server verwaltet die Datenkonvertierung, die Verschlüsselung, die digitalen Signaturen und die Dokumentenüberwachungsdienste für viele verschiedene Transportmechanismen. BizTalk Server verwaltet die Datenkonvertierung, die Verschlüsselung, die digitalen Signaturen und die Dokumentenüberwachungsdienste für viele verschiedene Transportmechanismen.

Sie können BizTalk Server gemeinsam mit Commerce Server verwenden, um die Bestellungen zu bearbeiten, die Benutzer auf Ihrer Commerce Server-Website platzieren. Sie verkaufen in Ihrer Site beispielsweise Computerhardware. Ihr Unternehmen stellt einen Teil dieser Hardware her, ein anderer Teil wird von Ihren Handelspartnern geliefert. Mithilfe von BizTalk Server können Sie eine Handelsvereinbarung für jeden Handelspartner, der die in Ihrer Site verkaufte Hardware bereitstellt, entwickeln. Wenn ein Benutzer Ihre Site besucht und einen Auftrag für ein Produkt erteilt, das ein Handelspartner von Ihnen liefert, bearbeitet Commerce Server den Auftrag und sendet ihn an BizTalk Server. Dann leitet BizTalk Server den Auftrag zur Ausführung direkt an Ihren Handelspartner weiter.

Kataloge von mehreren Herstellern

Hersteller-ID

Kataloge von mehreren Herstellern

Bevor Sie BizTalk Server zum Weiterleiten von Bestellungen an Ihre Handelspartner verwenden können, müssen Sie zuerst die Kataloge der Lieferanten organisieren, deren Produkte in Ihrer Site erscheinen sollen. Jeder einzelne Ihrer Handelspartner kann Ihnen einen oder mehrere Kataloge mit seinen Produkten schicken. Abhängig von der Konfiguration Ihrer Site können Sie diese Kataloge in Ihrer Website als einen einzigen oder als verschiedene Kataloge anbieten.

Über E-Mail oder BizTalk Server sendet Ihnen der Hersteller die Kataloge, welche Sie anschließend mithilfe des Business Desk-Moduls "Katalog-Editor" in Ihre Commerce Server-Datenbank importieren. Informationen über das Importieren von Katalogen finden Sie unter Importieren eines Katalogs.

Hersteller-ID

Wenn Sie mit einem Hersteller eine Vereinbarung treffen, wird die Hersteller-ID automatisch für Commerce Server verfügbar gemacht. Die Hersteller-ID wird in Commerce Server Business Desk angezeigt. Darüber hinaus werden die Handelspartner (Organisationen) angezeigt, die denselben Dokumenttyp wie Ihre Organisation unterstützen, und die über eine kompatible Dokumentenweiterleitung verfügen. Anschließend kann mithilfe von Business Desk die Hersteller-ID mit dem Katalog verbunden werden.

Es können auch mehrere Kataloge mit einem Hersteller verbunden werden. Es ist ebenso möglich, Hersteller auf Produktebene anzugeben. Hierzu muss jedoch eine Seite Ihrer Site vom Siteentwickler entsprechend angepasst werden (_additem.asp).

Wenn Sie einem Hersteller den Namen "Standard" geben, erkennt Commerce Server Ihre eigene Site als Hersteller. Informationen zur Angabe der Hersteller-ID für einen Katalog finden Sie unter Erstellen eines neuen Katalogs.

Anmerkung

  • Wenn ein Benutzer einen Artikel von Ihrer Website bestellt, muss dieser Artikel im Katalog der Zielorganisation vorhanden sein. Wenn die Zielorganisation diesen Artikel nicht in ihrem Katalog führt, ist BizTalk Server nicht in der Lage, den Auftrag von Ihrer Site an den Hersteller zu senden. BizTalk Server schreibt daraufhin eine Fehlermeldung in das Ereignisprotokoll.

Ihr Systemadministrator ist für die Einrichtung von BizTalk Server und die Vereinbarungen mit den Handelspartnern verantwortlich. Für weitere Informationen setzen Sie sich mit Ihrem Systemadministrator in Verbindung.

Siehe auch

Senden eines Katalogs an einen Handelspartner

Importieren eines Katalogs

Erstellen eines neuen Katalogs


Commerce Server-Konfiguration und Business Desk

Commerce Server Business Desk befindet sich auf einem Webserver, der Commerce Server ausführt, in der gleichen Weise, wie eine Website sich auf einem Webserver befindet. Ihr Siteentwickler und/oder Systemadministrator ist für das Konfigurieren von Business Desk entsprechend Ihrer Geschäftsbedürfnisse verantwortlich und muss sicherstellen, dass Sie auf die Daten, die Sie zum Analysieren und Aktualisieren Ihrer Website benötigen, zugreifen können.

Der Systemadministrator konfiguriert und wartet Business Desk mithilfe von Commerce Server-Manager. Commerce Server-Manager ist keine webbasierte, sondern eine Windows-basierte Anwendung. Daher können Sie nicht von einem Remotecomputer aus auf Commerce Server-Manager zugreifen.

Die folgende Tabelle enthält einige der Tasks, die Ihr Systemadministrator zur Konfiguration von Commerce Server ausführt. Wenn Sie zu diesen Tasks oder anderen Sitefunktionen Fragen haben, wenden Sie sich an Ihren Systemadministrator.

Kategorie Aufgaben des Systemadministrators
Analyse
  • Falls nötig, Zuweisen von bestimmten SQL Server-Datenbankrollen für Business Desk-Benutzer. Einige Benutzer können dann Berichte lesen und speichern, während andere Benutzer diese Berichte nur lesen können.

  • Importieren von Sitedaten in Datawarehouse, sodass Berichte ausgeführt werden können.

  • Erstellen neuer Segmentmodelle, sodass eine Segmentanalyse durchgeführt werden kann.
Kampagnen
  • Festlegen, wann und mit welcher Häufigkeit Artikel von Anzeigen- und Preisnachlasskampagnen in der Produktionssite aktualisiert werden.

  • Liefern der erforderlichen Verbindungszeichenfolge und SQL-Abfrage für die Erstellung von Listen direkt aus der SQL-Datenbank.
Kataloge
  • Festlegen, wann und mit welcher Häufigkeit Katalogaktualisierungen in der Produktionssite durchgeführt werden.

  • Erstellen eines freigegebenen Ordners (\\server\CommerceCatalogs) zum Importieren und Exportieren der Kataloge.

  • Konvertieren externer Kataloge im CSV- (trennzeichengetrennt) oder XML-(Extensible Markup Language)-Format, sodass die Kataloge importiert werden können.

  • Einstellen der folgenden Commerce Server-Eigenschaften:
    • Die Sprache (Gebietsschema) für diese Site (1031 = Deutsch, 1033 = Englisch, 1034 = Spanisch, 1036 = Französisch, 1041 = Japanisch).

    • Das Gebietsschema für das Formatieren der Basiswährung.

    • Optionen für eine Alternativwährung, um das gleichzeitige Anzeigen zweier Währungen zu aktivieren.

    • Die Maßeinheiten für Gewichte zur Berechnung der Produktversandkosten (z. B. Kilogramm oder Pfund).

    • Die Optionen zur BizTalk Server-Integration, die das Senden und Empfangen der Kataloge von Handelspartnern ermöglicht.
Bestellungen
  • Definieren der Zahlungsarten, die von der Site unterstützt werden: Kreditkarte, Kontoabrechnung oder beides.
Benutzer
  • Hinzufügen von Profildefinitionen.

  • Hinzufügen von Datenquellen, die steuern, wo die Profildaten gespeichert werden.

  • Einstellen der folgenden Commerce Server-Eigenschaften:
    • Siteregistrierungsoptionen, die Ihren Benutzern die Registrierung in Ihrer Site ermöglichen.

    • Sitedatenschutz-Optionen, die Profilinformationen von Gastbenutzern sammeln.

    • Adressbuchoptionen, die der Site die Unterstützung von Adressbuchoptionen ermöglichen.

    • Anmeldeoptionen, die festlegen, wann Benutzer sich in der Site anmelden müssen: Anmeldung beim Betreten der Site; optionale Anmeldung beim Betreten der Site; Aufforderung zur Anmeldung zum Zeitpunkt des Kaufs; Anmeldung optional zu jedem beliebigen Zeitpunkt.

    • Die Häufigkeit, mit der Benutzer aufgefordert werden, ihren Benutzernamen und ihr Kennwort einzugeben, bevor eine Meldung angezeigt wird, dass sie sich an den Kundenservice wenden sollen.

Siehe auch

Aktualisieren der Website mit Business Desk

Business Desk-Komponenten

Verwenden von BizTalk Server

Business Desk: Grundlagen

Der erste Schritt


Business Desk: Grundlagen

Da Commerce Server Business Desk eine webbasierte Anwendung ist, unterscheidet es sich in mancherlei Weise von anderen PC-basierten Microsoft-Anwendungen, wie Microsoft Word und Microsoft Excel. So navigieren Sie z. B. durch Business Desk, indem Sie in einem Menü auf der linken Seite Optionen (Module) auswählen. Dieser Aufbau entspricht dem zahlreicher Webseiten.

Dieser Abschnitt beinhaltet folgende Themen:

  • Navigieren in Business Desk

  • Verwenden von Symbolleistenschaltflächen

  • Sichern von Business Desk-Modulen

  • Anpassen von Business Desk

  • Importieren und Exportieren von Daten

  • Verwenden von Tastenkombinationen


Navigieren in Business Desk

Jedes Modul in Commerce Server Business Desk hat eine eigene, eindeutige Funktion. Dennoch wurden alle Module mit ähnlichen Navigationsfunktionen ausgestattet, um das Suchen und Ordnen von Informationen zu erleichtern. Wenn Sie sich mit den grundlegenden Tasks eines Moduls vertraut gemacht haben, können Sie dieses Wissen im Umgang mit den anderen Modulen anwenden. Dieser Abschnitt beschreibt das Layout der Bildschirme von Business Desk und erläutert, wie Sie von einer Kategorie zum Modul und weiter zum Bildschirm navigieren.

Der Navigationsbereich

Der Inhaltsbereich

Symbolleistenschaltflächen

Der Navigationsbereich

Die linke Seite des Commerce Server Business Desk-Bildschirms wird Navigationsbereich genannt. In diesem Bereich können Sie Kategorien auswählen und Module öffnen. Wenn Sie auf den Namen einer Kategorie klicken, wird diese erweitert, und in einer Liste unterhalb der Kategorie werden die Modulnamen angezeigt. Klicken Sie erneut auf den Kategorienamen, um die Modulnamen wieder auszublenden.

Die Position des Pfeils links neben dem Kategorienamen gibt an, ob die Kategorie erweitert oder ausgeblendet werden kann. Ein nach rechts zeigender Pfeil deutet an, dass die Liste erweitert werden kann. Ein nach links zeigender Pfeil deutet an, dass die Liste bereits erweitert wurde.

Die folgende Abbildung zeigt den Navigationsbereich. Die Kategorie Bestellungen wurde erweitert und die Modulliste wird angezeigt.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Anmerkung

Wenn Sie die Eigenschaften eines Elements aus der Liste anzeigen, wird der Navigationsbereich ausgeblendet. Wenn Sie z. B. in der vorherigen Abbildung die Eigenschaften von Code #1 – Warenkorb anzeigen, wird ein neuer Bildschirm geöffnet und der Navigationsbereich ist nicht mehr sichtbar. Mit den Symbolleistenschaltflächen Zurück und Speichern und zurück kehren Sie zum Hauptbildschirm mit dem Navigationsbereich zurück.

Der Inhaltsbereich

Die rechte Seite des Business Desk-Bildschirms wird Inhaltsbereich genannt. Darin können Sie Sitedaten anzeigen und Informationen bearbeiten. Wenn Sie im Navigationsbereich auf einen Modulnamen klicken, wird im Inhaltsbereich eine Liste angezeigt, die alle aktuellen Informationen zu diesem Modul enthält.

Wenn Sie beispielsweise die Kategorie Bestellungen öffnen, und anschließend auf den Modulnamen Datencodes klicken, wird im Inhaltsbereich der Bildschirm Datencodes: Bestellstatuscodes angezeigt. In diesem Bildschirm können Sie die Datencodes für Bestellstatus, Land und Bundesland/Kanton anzeigen, hinzufügen und löschen.

Symbolleistenschaltflächen

Die Symbolleiste befindet sich am oberen Rand des Inhaltsbereichs und enthält Schaltflächen für die Standardaufgaben. Sie können beispielsweise auf eine Symbolleistenschaltfläche klicken, um ein Element hinzuzufügen, zu kopieren oder zu löschen. Jede Symbolleistenschaltfläche zeigt eine aussagekräftige Grafik der Aktion, die sie ausführt. Wenn Sie eine Beschreibung dieser Aktion anzeigen möchten, lassen Sie den Mauszeiger eine Weile über der Schaltfläche ruhen, bevor Sie darauf klicken. Im Abschnitt Verwenden der Symbolleistenschaltflächen finden Sie eine Liste aller verfügbaren Schaltflächen sowie eine Beschreibung der jeweils durchführbaren Funktionen.

Befehlsschaltflächen tragen die Beschriftung des Befehls, den sie ausführen. Sie dienen zur Ausführung bestimmter Tasks im Inhaltsbereich. Durch Klicken auf die Schaltfläche Alle auswählen werden beispielsweise alle Elemente in einer Ergebnisliste markiert.

Siehe auch

Verwenden von Symbolleistenschaltflächen

Verwenden von Tastenkombinationen

Verwenden der Business Desk-Onlinehilfe


Verwenden von Symbolleistenschaltflächen

Jede Symbolleistenschaltfläche dient zur Ausführung einer Standardaktion in einem der Bildschirme von Commerce Server Business Desk. Nicht alle Symbolleistenschaltflächen sind in allen Bildschirmen verfügbar. Die folgende Tabelle führt die Symbolleistenschaltflächen auf und beschreibt kurz ihre jeweilige Funktion.

Symbolleistenschaltfläche | Beschreibung
Archivieren Archivieren | Speichert den ausgewählten Artikel in Business Desk-Archiven.
Zurück Zurück | Schließt den Bearbeitungsbildschirm und kehrt zum vorherigen Bildschirm zurück.
Abbrechen Abbrechen | Bricht die aktuelle Operation ab.
Kopieren Kopieren | Öffnet die Detailinformation zum ausgewählten Artikel und kopiert den Artikel, um einen neuen Artikel mit ähnlichen Eigenschaften zu erstellen.
Löschen Löschen | Löscht die/den ausgewählten Artikel.
Exportieren Exportieren | Exportiert Informationen.
Suchen Suchen | Öffnet den Suchbereich.
Mit Menü suchen Mit Menü suchen | Öffnet eine Dropdownliste, in der ein zu durchsuchender Artikeltyp ausgewählt werden kann.
Hilfe Hilfe | Öffnet die Business Desk-Hilfe für das aktuelle Modul. Hier können dann weitere Hilfethemen angezeigt werden.
Import Import | Importiert eine Informationsgruppe.
Hinzufügen Neu | Fügt einen neuen Artikel hinzu.
Öffnen Öffnen | Öffnet den ausgewählten Artikel.
Berichtsvorschau Vorschau | Zeigt den ausgewählten Bericht in dem Format an, in welchem er gedruckt wird.
Drucken Drucken | Druckt den ausgewählten Bericht. Diese Schaltfläche ist nur in den Analysemodulen verfügbar.
Katalog veröffentlichen Veröffentlichen | Veröffentlicht einen Katalog auf einer Handelssite. Diese Schaltfläche ist nur im Katalog-Editor-Modul verfügbar.
Wiederherstellen Wiederherstellen | Stellt einen gelöschten Kampagnenartikel wieder her. Diese Schaltfläche ist nur im Kampagnen-Manager-Modul verfügbar.
Ausführen Ausführen | Führt den ausgewählten Bericht aus. Diese Schaltfläche ist nur in den Analysemodulen verfügbar.
Speichern Speichern | Speichert die/den hinzugefügte/n oder geänderte/n Eigenschaft oder Artikel.
Speichern und neu erstellen Speichern und neu erstellen | Speichert hinzugefügte oder geänderte Eigenschaften bzw. Artikel, und öffnet eine neue Seite, um einen neuen Artikel zu erstellen.
Speichern und zurück Speichern und zurück | Speichert hinzugefügte oder geänderte Eigenschaften oder Artikel, und kehrt zum Hauptmodulbildschirm zurück.
Senden Senden | Sendet einen Katalog an einen Handelspartner durch Microsoft BizTalk Server. Diese Schaltfläche ist nur im Katalog-Editor-Modul verfügbar und nur dann aktiviert, wenn BizTalk Server installiert ist.
Ansicht Ansicht | Wählt den anzuzeigenden Artikeltyp aus.

Siehe auch

Navigieren in Business Desk

Verwenden von Tastenkombinationen

Verwenden der Business Desk-Onlinehilfe


Sichern von Business Desk-Modulen

Commerce Server Business Desk bietet eine auf Rollen basierende Sicherheit: Die Benutzer von Business Desk können nur die Module anzeigen und verwalten, für die sie autorisiert sind. Wenn eine Benutzergruppe beispielsweise das Katalog-Designer-Modul nicht verwendet, können Sie verhindern, dass dieses Modul im Navigationsbereich angezeigt wird, wenn diese Benutzer auf Business Desk zugreifen. Da der Siteentwickler festlegt, wer auf ein Modul zugreifen darf, können Benutzer Module, für die sie keine Berechtigungen besitzen, gar nicht sehen.

Die Möglichkeit, den Zugriff auf bestimmte Module in Business Desk zu beschränken, dient nicht dazu, böswillige Sicherheitsverletzungen zu verhindern. Es soll vielmehr verhindert werden, dass Benutzern Business Desk-Module angezeigt werden, die überhaupt nicht in ihren Verantwortungsbereich gehören.

Wenn Sie Sicherheitsfunktionen implementieren möchten, wenden Sie sich an Ihren Systemadministrator. Zur Sicherung eines Business Desk-Moduls, muss der Systemadministrator die Windows-Zugriffssteuerungslisten (ACLs) in den ASP-Dateien (Active Server Pages) des Moduls einrichten. Weitere Informationen erhalten Sie unter "Sicherheit" im Abschnitt "Business Desk-Architektur" der Commerce Server 2000-Hilfe.

Anmerkungen

  • Wenn Sie eines der folgenden Module sichern, werden standardmäßig alle Module gesichert: "Profile veröffentlichen", "Kampagnen veröffentlichen" und "Transaktionen veröffentlichen".

  • Durch diese Funktion wird der Zugriff auf bestimmte Daten in Business Desk nicht eingeschränkt. Wenn Sie den Zugriff auf die für Benutzer sichtbaren Daten in Business Desk einschränken möchten, wenden Sie sich an Ihren Systemadministrator oder Siteentwickler, um in Commerce Server Sicherheitsfunktionen auf Datenbankebene implementieren zu lassen. Wenn beispielsweise ein bestimmter Business Desk-Benutzer lediglich einen bestimmten Katalog bearbeiten soll, kann Ihr Siteentwickler die entsprechende Sicherheitsfunktion implementieren.

  • Wenn ein Benutzer mittels einer nicht authentifizierten Sitzung über das Internet auf Business Desk zugreift, fordert Internet Explorer ihn zur Eingabe seines Benutzernamens, Kennworts und Domänennamens auf. Dies dient seiner Authentifizierung für die Business Desk-Anwendung.

Siehe auch

Business Desk-Komponenten

Anpassen von Business Desk


Anpassen von Business Desk

Siteentwickler und Systemadministratoren können Commerce Server Business Desk Ihren geschäftlichen Bedürfnissen anpassen. Ein Siteentwickler kann beispielsweise Funktionen hinzufügen oder entfernen, Business Desk in eine vorhandene Anwendung integrieren, oder die Ausführungsreihenfolge bestimmter Funktionen von Business Desk ändern.

Die folgende Tabelle beschreibt verschiedene Bereiche, in welchen Sie die Anpassung mit Ihrem Systemadministrator oder Siteentwickler koordinieren können.

Business Desk-Komponente Anpassung und Koordination
Analyse: Berichtsmodul
  • Ihr Siteentwickler kann Ihren geschäftlichen Bedürfnissen entsprechend neue oder benutzerdefinierte Berichte erstellen. Ebenso können Sie benutzerdefinierte Berichte erstellen, die auf vorhandenen dynamischen Berichten des Berichtsmoduls von Business Desk basieren.

  • Der Systemadministrator ist für das regelmäßige Importieren von Daten in Datawarehouse verantwortlich. Nachdem die Daten in Datawarehouse importiert wurden, können Sie Berichte ausführen und diese mit den Daten vergleichen und analysieren.

  • Der Systemadministrator kann festlegen, welche Daten aus den Webprotokolldateien in Datawarehouse importiert werden. Er kann Benutzer- und Besuchsdefinitionen einrichten, die sich auf die Ergebnisse der ausgeführten Berichte auswirken.
Analyse: Segment-Viewer-Modul
  • Der Systemadministrator verwendet die Vorhersageressource in Commerce Server-Manager, um Modellkonfigurationen zu erstellen. Mithilfe der Modellkonfigurationen erstellt der Systemadministrator Vorhersage- und Segmentmodelle von den Daten in Datawarehouse. Sie können die Segmentmodelle im Segment-Viewer-Modul in Business Desk anzeigen. Der Systemadministrator zeigt die Vorhersagemodelle mithilfe des Vorhersagemodell-Viewers an.
Benutzer: Profil-Designer-Modul
  • Der Systemadministrator erstellt mithilfe von Commerce Server-Manager Profildefinitionen, und fügt Datenquellen, Datenobjekte und Datenelemente hinzu, um die Struktur der Commerce Server-Datenbank der Profildefinition anzupassen. Wenn Sie Business Desk verwenden, um einer Profildefinition eine Profileigenschaft hinzuzufügen, wählen Sie das Datenelement aus, das der neuen Profileigenschaft an der Stelle in der Commerce Server-Datenbank zugeordnet ist, an der die von der Profileigenschaft gesammelten Daten gespeichert werden.
Allgemeine Systemeinstellungen
  • Der Systemadministrator konfiguriert die Systemeinstellungen, wie Maßeinheiten, Währungs- und Zahlungsoptionen, die Websiteregistrierung und die Sicherheitsoptionen. Sie müssen jede Änderung an diesen Optionen und Einstellungen mit dem Systemadministrator absprechen.

Siehe auch

Business Desk-Komponenten

Commerce Server-Konfiguration und Business Desk

Der erste Schritt

Wenn Sie weitere Hilfe benötigen


Importieren und Exportieren von Daten

Verwenden Sie Commerce Server Business Desk, um Kataloge, Adressen- und Benutzerlisten zu importieren und exportieren. Die folgende Tabelle beschreibt die Daten, die importiert oder exportiert werden können.

Modul | Importierte oder exportierte Daten
Katalog-Editor | Kataloge. Sie können Kataloge im CSV- (trennzeichengetrennt) oder XML-(Extensible Markup Language)-Format aus und in externe Quellen importieren oder exportieren. Informationen über das Importieren und Exportieren von Katalogen finden Sie unter Importieren eines Katalogs und Exportieren eines Katalogs. Katalogeigenschaften. Verwenden Sie den Katalog-Designer, um festzulegen, welche Katalogeigenschaften importiert und in Datawarehouse gespeichert werden sollen. Nachdem Ihr Systemadministrator die Katalogeigenschaften in Datawarehouse importiert hat, können Sie Berichte über sie ausführen.
Listen-Manager | Benutzer- und Adressenlisten. Sie können statische oder dynamische Benutzer- und Adressenlisten aus dem Listen-Manager-Modul importieren oder exportieren. Informationen über das Importieren und Exportieren von Listen finden Sie unter Importieren und Exportieren von Listen.
Profil-Designer | Profileigenschaften. Mit Profil-Designer können Sie festlegen, welche Profileigenschaften in Datawarehouse importiert und dort gespeichert werden sollen. Nachdem Ihr Systemadministrator die Profileigenschaften in Datawarehouse importiert hat, können Sie Berichte über sie ausführen.
Berichte | Beim Ausführen eines dynamischen Berichts können Sie diesen nach Microsoft Excel exportieren und als Excel-Kalkulationstabelle speichern. Statische Berichte können in den Listen-Manager exportiert werden. Nach dem Export eines statischen Berichts in den Listen-Manager können Sie die Liste in Direct Mailer importieren, um sie, sofern sie sofern E-Mail-Adressen enthält, in einer Direktsendungskampagne zu verwenden. Falls die Liste Informationen zu Benutzerprofilen enthält, kann sie auch in das Benutzermodul importiert werden, um die Profile der Benutzer in der Liste zu aktualisieren.

Siehe auch

Importieren eines Katalogs

Exportieren eines Katalogs

Importieren und Exportieren von Listen

Wenn Sie weitere Hilfe benötigen


Verwenden von Tastenkombinationen

In Commerce Server Business Desk haben können Sie mithilfe von Tastenkombinationen dieselben Funktionen zur Navigation und Bearbeitung aufrufen, wie mit der Maus. Diese Tastenkombinationen ermöglichen die Ausführung aller in Business Desk verfügbaren Funktionen.

Die Tastenkombinationen werden in diesem Abschnitt beschrieben. Zusätzlich enthält er Tipps zum Navigieren in Business Desk mithilfe der Tastatur.

Tabstopps

Tabelle mit Tastenkombinationen

Tabstopps

Wenn Sie beginnen, sich mithilfe der Tabulatortaste durch den Bildschirm Willkommen bei Business Desk zu bewegen, ist das aktive Element der Navigationsbereich. Das aktuell aktive Element wird durch eine gepunktete Linie um das entsprechende Bildschirmelement herum angezeigt.

Wenn Sie sich außerhalb des Navigationsbereichs bewegen, wechselt das aktive Element zur Symbolleiste und dann weiter zum Inhaltsbereich. Sofern sie in eine Liste mit Artikeln kommen, müssen Sie sich innerhalb der Liste mit den Pfeiltasten weiterbewegen. Mithilfe der EINGABETASTE oder der LEERTASTE können Sie Ihre Auswahl treffen.

  • In einem Dropdownmenü (einem Menü, neben dem ein nach unten zeigender Pfeil steht) treffen Sie Ihre Auswahl mithilfe der Pfeiltasten und drücken dann die EINGABETASTE.

  • Das Öffnen von Dropdownmenüs erfolgt mit der LEERTASTE.

  • Wenn Sie eine Schaltfläche verwenden müssen, drücken Sie TAB so lange, bis die Schaltfläche aktiviert ist. Drücken Sie dann die EINGABETASTE.

  • Wenn Sie sich zu einem Element zurückbewegen möchten, drücken Sie UMSCHALT+TAB.

So öffnen Sie ein Business Desk-Modul

So greifen Sie mithilfe der Tastatur auf Symbolleistenschaltflächen zu

So öffnen Sie Elementeigenschaften mithilfe der Tastatur

So öffnen Sie ein Business Desk-Modul

  1. Bewegen Sie sich im Navigationsbereich mithilfe der Tabulatortaste zu der Kategorie, die das Business Desk-Modul enthält, mit dem Sie arbeiten möchten, und drücken Sie anschließend die EINGABETASTE.

  2. Gehen Sie zum Namen des Moduls, mit dem Sie arbeiten möchten, und drücken Sie anschließend die EINGABETASTE.

Das ausgewählte Modul wird geöffnet.

So greifen Sie mithilfe der Tastatur auf Symbolleistenschaltflächen zu

  1. Bewegen Sie sich im Navigationsbereich mithilfe der Tabulatortaste zu der Kategorie, die die Elemente enthält, welche Sie hinzufügen oder bearbeiten möchten, und drücken Sie anschließend die EINGABETASTE.

  2. Gehen Sie zum Namen des Moduls, mit dem Sie arbeiten möchten, und drücken Sie anschließend die EINGABETASTE.

  3. Wechseln Sie mithilfe der TAB-Taste zu der Symbolleistenschaltfläche, die Sie verwenden möchten, und drücken Sie anschließend die EINGABETASTE.

Nun können Sie mithilfe der geöffneten Schaltflächenfunktion Änderungen oder Hinzufügungen vornehmen.

  4. Drücken Sie ALT+S, um Ihre Hinzufügungen oder Änderungen zu speichern.

Anmerkungen

  • Wenn Sie in ein Feld mit einer Dropdownliste gelangen, müssen Sie die EINGABETASTE drücken, um in der Liste eine Auswahl zu treffen. Mithilfe der NACH-OBEN- oder NACH-UNTEN-TASTE wählen Sie die gewünschte Option aus. Drücken Sie anschließend die EINGABETASTE.

  • Wenn Sie ein Feld zurückgehen möchten, drücken Sie UMSCHALT+TAB.

Manchen Bildschirmelementen wurden dieselben Tastenkombinationen zugeordnet. Beispielsweise gilt die Tastenkombination ALT+O sowohl für das Bestellmodul im Navigationsbereich als auch für die Symbolleistenschaltfläche Öffnen. In diesem Fall wird mit der entsprechenden Tastenkombination zunächst das erste Bildschirmelement aktiviert, beim zweiten Betätigen der Tasten wird das nächste Element aktiviert und so weiter.

So öffnen Sie Elementeigenschaften mithilfe der Tastatur

  1. Bewegen Sie sich im Navigationsbereich mithilfe der Tabulatortaste zu der Kategorie, welche die Artikel enthält, mit denen Sie arbeiten möchten, und drücken Sie anschließend die EINGABETASTE.

  2. Gehen Sie zu dem Modul mit dem Sie arbeiten möchten, und drücken Sie anschließend die EINGABETASTE. Das ausgewählte Modul wird geöffnet.

  3. Gehen Sie im Inhaltsbereich in die Artikelliste, und verwenden Sie die NACH-OBEN- oder NACH-UNTEN-TASTE, um den gewünschten Artikel zu markieren.

  4. Drücken Sie die EINGABETASTE. Der Artikel ist nun markiert.

  5. Wechseln Sie mithilfe der TAB-Taste zur Symbolleistenschaltfläche Öffnen, und drücken Sie die EINGABETASTE.

  6. Die Eigenschaften des betreffenden Artikels werden angezeigt, sodass Sie sie ausführlich anzeigen oder ändern können.

Tabelle mit Tastenkombinationen

Business Desk ermöglicht das Navigieren ohne Maus mithilfe von Tastenkombinationen. Die folgende Tabelle enthält die Tastenkombinationen, die in Business Desk häufig verwendet werden. Ebenso können Sie prüfen, welche Tastenkombination für eine Symbolleistenschaltfläche verfügbar ist, indem Sie den Mauszeiger für kurze Zeit über diese Schaltfläche halten. Hiermit blenden Sie die QuickInfo für diese Schaltfläche ein.

Aktion | Tastenkombination
Öffnen | ALT+O
Suchen | ALT+F
Neu | ALT+N
Speichern | ALT+S
Speichern und zurück | ALT+K
Speichern und neu erstellen | ALT+N
Löschen | ALT+D
Kopieren | ALT+C
Eigenschaften anzeigen | ALT+V
Hilfe öffnen | ALT+?
Zurück | ALT+B
Bericht ausführen | ALT+R
Exportieren | ALT+E
Importieren | ALT+I

Siehe auch

Verwenden von Symbolleistenschaltflächen

Verwenden der Business Desk-Onlinehilfe

Navigieren in Business Desk

Wenn Sie weitere Hilfe benötigen


Der erste Schritt

Ehe Sie Ihre Website zu Geschäftszwecken öffnen können, müssen Sie oder Ihr Siteentwickler mithilfe von Commerce Server Business Desk die folgenden Aufgaben ausführen:

  1. Erstellen eines Katalogs. Sie können einen vorhandenen Katalog importieren oder ein Katalogschema erstellen.
    • Importieren eines Katalogs. Den Namen und Speicherort des Katalogs, den Sie importieren möchten, erfahren Sie von Ihrem Systemadministrator. Sie benötigen den vollständigen Pfadnamen des Katalogs auf dem zentralen Commerce Server-Computer. Der Pfad könnte z. B. folgendermaßen aussehen: C:\Commerce Server\Catalogs\SportsCatalog.xml.

    • Erstellen eines Katalogschemas. Wenn kein Katalog für den Import zur Verfügung steht, müssen Sie ein Katalogschema erstellen. Es wird empfohlen, vor der Erstellung eines Katalogschemas die Organisation des Katalogs sorgfältig zu planen.
  2. Preisberechnung von Produkten.

  3. Veröffentlichen des Katalogs in Ihrer Site.

  4. Anpassen der Versandarten. Geben Sie an, auf welche Weise Commerce Server die Versandkosten berechnen soll: nach Produktgewicht, nach gekaufter Menge oder nach dem Gesamtbetrag des Einkaufs.

Nachdem Sie diese Schritte ausgeführt haben, können Sie mit Ihrer Website Geschäfte machen. Darüber hinaus empfehlen wir Ihnen jedoch, auch die folgenden Schritte auszuführen, um sich mit der Konfiguration von Business Desk für Ihre Site vertraut zu machen.

Führen Sie in der Kategorie Kampagnen folgende Aufgabe aus:

  • Einrichten der Referenztabellen. In den Referenztabellen werden die Branchencodes, Seitengruppen und Inhaltsgrößen gespeichert. Commerce Server liefert mehrere gebräuchliche Branchencodes und Inhaltsgrößen.

Führen Sie in der Kategorie Analyse folgende Aufgaben aus:

  1. Überprüfen Sie die vorhandenen Berichte, um sicherzustellen, dass sie Ihre Anforderungen erfüllen. Eine Liste der in Commerce Server enthaltenen Berichte finden Sie unter Commerce Server-Berichte. Wenn Sie weitere Berichte benötigen, können Sie selbst benutzerdefinierte Berichte erstellen oder sich an Ihren Siteentwickler wenden. Informationen zur Erstellung neuer Berichte erhalten Sie unter Erstellen eines neuen dynamischen Berichts.

  2. Legen Sie in Zusammenarbeit mit Ihrem Systemadministrator fest, wann Daten in Datawarehouse importiert werden. Bevor Sie Berichte ausführen können, muss der Systemadministrator die Daten in Datawarehouse importieren.

  3. Der Systemadministrator entscheidet auch, wann Segmentmodelle erstellt werden. Ehe Sie Segmentmodelle anzeigen können, müssen diese vom Systemadministrator erstellt werden.

Führen Sie in der Kategorie Benutzer folgende Aufgaben aus:

  1. Überprüfen Sie die vorhandenen Profildefinitionen, um sicherzustellen, dass sie Ihre Anforderungen erfüllen. Eine Liste der in Commerce Server enthaltenen Profildefinitionen finden Sie unter Beispielprofildefinitionen. Wenn Sie weitere Profildefinitionen hinzufügen möchten, wenden Sie sich an Ihren Systemadministrator. Informationen zum Hinzufügen von Eigenschaften zu Profildefinitionen finden Sie unter Hinzufügen von Eigenschaften zu Profildefinitionen.

  2. Überprüfen Sie die vorhandenen Sitebegriffe, um sicherzustellen, dass sie Ihren Anforderungen entsprechen. Informationen zum Hinzufügen von Sitebegriffen erhalten Sie unter Hinzufügen eines Sitebegriffs.


Häufige Aufgaben

Sobald Ihre Site geöffnet ist, müssen Sie möglicherweise häufig die folgenden Aufgaben ausführen:

  • Zurücksetzen eines Benutzerkennworts

  • Suchen und Sortieren von Bestellungen

  • Preisberechnung von Produkten

  • Preisnachlässe für Produkte anwenden

  • Zielgruppenadressierung einer Anzeige oder eines Preisnachlasses

  • Ausführen von Berichten

  • Exportieren eines statischen Berichts

  • Hinzufügen einer Organisation

  • Hinzufügen eines Sitebegriffs


Beispiel: Ein geschlossenes System

Mithilfe von Commerce Server Business Desk können Sie Ihre Geschäfte analysieren und die Site anhand der Analyseergebnisse so gestalten, dass sie für die Benutzer effektiver und relevanter wird. Benutzer, die Ihrer Site zunehmend mehr Bedeutung zumessen und ihren Nutzen und ihre Vorzüge schätzen lernen, werden auch mehr und mehr Loyalität für Ihr Unternehmen entwickeln und häufiger zu Ihrer Site zurückkehren. Dieses "geschlossene System", das die Erhebung von Benutzerdaten, die Analyse dieser Daten und die anschließende Lieferung von Information an Benutzer, die Ihren Zielkriterien entsprechen, umfasst, hat direkte Auswirkungen auf Ihr Internetgeschäft, indem es zufällige Surfer zu Käufern und diese Käufer wiederum zu regelmäßigen Benutzern der Site macht.

Commerce Server bietet Ihnen unterschiedliche Möglichkeiten, die Siteaktivitäten zu analysieren und die Site anschließend anzupassen. Die folgenden Beispielprozeduren stellen ein mögliches Szenario für ein geschlossenes System dar: Anpassen der Benutzerprofildaten, Analysieren der Benutzerinformationen und anschließend Erstellen einer Direktsendungskampagne für die Benutzer, die Ihren Zielkriterien entsprechen.

Schritt 1: Hinzufügen von Eigenschaften zu Profildefinitionen

Schritt 2: Veröffentlichen der Profiländerungen in Ihrer Website

Schritt 3: Hinzufügen eines Benutzers mit einer neuen Eigenschaft

Schritt 4: Ausführen eines statischen Berichts

Schritt 5: Exportieren eines statischen Berichts in eine Liste

Schritt 6: Erstellen einer Direktsendungskampagne

Schritt 1: Hinzufügen von Eigenschaften zu Profildefinitionen

Mithilfe des Profil-Designer-Moduls geben Sie an, welche Daten von den Benutzern erhoben werden. Hierzu werden zu den Benutzerprofildefinitionen Eigenschaften hinzugefügt. Sie können z. B. eine Eigenschaft wie "Lieblingsfarbe" hinzufügen und diese Eigenschaft verwenden, um Benutzer zu identifizieren, die Blau bevorzugen, und ihnen gezielt blaue Produkte anzubieten.

So fügen Sie eine neue Eigenschaft zu einem Benutzerprofil hinzu

  1. Klicken Sie im Menü Benutzer auf Profil-Designer.

  2. Wählen Sie im Bildschirm Profile die Profildefinition Benutzerobjekt aus, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Markieren Sie im Bildschirm Profil in der Liste Eigenschaften den Eintrag Allgemeine Informationen. Klicken Sie anschließend auf Hinzufügen.

  4. Markieren Sie im Dialogfeld Hinzufügen die Option Neue Eigenschaft hinzufügen, und klicken Sie anschließend auf OK.

  5. Führen Sie im Bereich Attribute folgende Schritte aus:
    Option/Funktion | Aufgaben
    Name | Eingeben des Eigenschaftsnamens, z. B. Lieblingsfarbe.
    Angezeigter Name | Eingeben des für die Eigenschaft angezeigten Namens, z. B. Bevorzugte Farbe.

  6. Führen Sie im Bereich Erweiterte Attribute folgende Schritte aus:
    Option/Funktion | Aufgaben
    Aktiv | Vergewissen Sie sich, dass die Option Ja aktiviert ist.
    Daten zuordnen Klicken Sie im Feld Daten zuordnen auf die Auslassungsschaltfläche […], um das Dialogfeld Datenquellenauswahl zu öffnen.

    Wählen Sie im Dialogfeld Datenquellenauswahl die Option Profildienst_SQLQuelle aus, und wählen Sie anschließend Benutzerobjekt aus. Scrollen Sie dann nach unten, und wählen Sie Benutzerdefinierte Eigenschaft 1 aus.

    Wenn die Eigenschaft keiner Datenquelle zugeordnet wird, kann sie im Benutzer- bzw. Organisationsmodul nicht bearbeitet werden.

  7. Klicken Sie auf OK und anschließend auf Übernehmen.

  8. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Eigenschaft zu speichern und zum Bildschirm Profil-Designer zurückzukehren.

Die neue Eigenschaft wird zur Profildefinition hinzugefügt. Veröffentlichen Sie nun die Profiländerungen in Ihrer Website.

Schritt 2: Veröffentlichen der Profiländerungen in Ihrer Website

Nachdem Sie eine Eigenschaft zu einer Profildefinition hinzugefügt haben, veröffentlichen Sie mithilfe des Profilveröffentlichungsmoduls die Änderungen in Ihrer Website.

So veröffentlichen Sie Ihre Profiländerungen

  1. Klicken Sie im Menü Benutzer auf Profile veröffentlichen.

  2. Markieren Sie im Bildschirm Profile veröffentlichen die Site, und klicken Sie anschließend auf der Symbolleiste auf Profiländerungen veröffentlichen und Cache aktualisieren.

Die Profiländerungen werden aktualisiert und sind in der Website verfügbar. Jetzt können Sie einen Benutzer mit dem neuen Profil hinzufügen.

Schritt 3: Hinzufügen eines Benutzers mit einer neuen Eigenschaft

Verwenden Sie das Benutzermodul, um Benutzerprofilinformationen für registrierte Benutzer hinzuzufügen. In diesem Schritt geben Sie die Benutzerprofilinformation ein, einschließlich der Eigenschaft "Lieblingsfarbe", die Sie in Schritt 1 hinzugefügt haben.

So fügen Sie einen Benutzer mit dem neuen Profil hinzu

  1. Klicken Sie im Menü Benutzer auf Benutzer.

  2. Klicken Sie im Bildschirm Verwaltung registrierter Benutzer auf der Symbolleiste auf Hinzufügen.

  3. Führen Sie im Bildschirm Neuer Benutzer im Bereich Allgemeine Informationen folgende Schritte aus:
    Option/Funktion | Aufgaben
    Anmeldename | Eingeben eines Anmeldenamens für den neuen Benutzer.
    Benutzerkennwort | Eingeben eines Kennworts für den neuen Benutzer.
    E-Mail | Eingeben einer E-Mail-Adresse für den neuen Benutzer.
    Nachname | Eingeben eines Nachnamens für den neuen Benutzer.
    Vorname | Eingeben eines Vornamens für den neuen Benutzer.
    Lieblingsfarbe | Eingeben von Blau.

  4. Klicken Sie auf Speichern und zurück, um den neuen Benutzer zu speichern und zum Bildschirm Benutzer zurückzukehren.

Der Benutzer wird zur Commerce Server-Datenbank hinzugefügt. Nun können Sie den Benutzer anhand seiner Profilinformationen gezielt ansprechen.

Schritt 4: Ausführen eines statischen Berichts

Nachdem die Daten mit den Informationen zur Benutzer- und Serveraktivität in Datawarehouse übertragen wurden, importiert der Systemadministrator die Informationen in Microsoft SQL Server Enterprise Manager. Nach dem Import der Protokolldateien verwenden Sie die Analysemodule zur Analyse der Benutzerdaten. Hierzu führen Sie Berichte aus, die die Eigenschaften und das bisherige Verhalten der Benutzer zeigen. Anschließend können Sie die Site aktualisieren, um diesen Benutzern gezielt Produkte anzubieten oder Anzeigen für sie darzustellen. Beispiel: Sie können den Bericht "Eigenschaften von registriertem Benutzer" ausführen, die Informationen im Bericht analysieren und anschließend nur diejenigen Benutzer auswählen, für die Sie eine Direktsendungskampagne ausführen möchten.

So führen Sie einen statischen Bericht aus

  1. Klicken Sie im Menü Analyse auf Berichte.

  2. Wählen Sie in der Liste der verfügbaren Berichte Eigenschaften von registriertem Benutzer aus, und klicken Sie dann auf der Symbolleiste auf Ausführen.

  3. Führen Sie im Dialogfeld Bericht ausführen im Bereich Sitename folgende Schritte aus:
    Option/Funktion | Aufgaben
    Operand | Wählen Sie in der Dropdownliste einen Operanden aus (Alle, Ist gleich, Ist ungleich, Wie, Nicht wie), um zu entscheiden, für welche Site der Bericht ausgeführt wird.
    Parameterwert | Eingeben des Namens der Site ein, für die der Bericht ausgeführt werden soll.

  4. Führen Sie im Dialogfeld Bericht ausführen im Bereich Anzahl von Benutzern folgende Schritte aus:
    Option/Funktion | Aufgaben
    Auswählen Wählen Sie in der Dropdownliste einen Parameter für die Anzahl der Benutzer aus, die der Bericht umfassen soll:
    • Alle. Alle Benutzer in der Commerce Server-Datenbank, die die Abfragekriterien erfüllen.

    • Oben. Die Obergrenze für die Anzahl der Benutzer in der Commerce Server-Datenbank, die die Abfragekriterien erfüllen. Geben Sie im Feld Parameterwert die Anzahl der Hauptbenutzer ein.

    • Verschieden. Ein bestimmter Benutzer in der Commerce Server-Datenbank, der die Abfragekriterien erfüllt.
    Parameterwert | Eingeben der Anzahl der Hauptbenutzer, die der Bericht zurückgeben soll.

  5. Klicken Sie auf OK.

Der statische Bericht wird ausgeführt und kann anschließend im Abgeschlossene Berichte-Modul angezeigt werden. Darüber hinaus kann er als Liste in Listen-Manager exportiert und für das gezielte Ansprechen von Benutzern in einer Direktsendungskampagne verwendet werden.

Schritt 5: Exportieren eines statischen Berichts in eine Liste

Die Daten aus statischen Berichten können in Direktsendungskampagnen eingesetzt werden. Mithilfe der Adressenlisten in Listen-Manager kann gezielt für bestimmte Benutzer eine Direktsendungskampagne erstellt werden.

So exportieren Sie einen statischen Bericht

  1. Klicken Sie im Menü Analyse auf Berichte.

  2. Wählen Sie in der Liste Berichte den statischen Bericht aus, der die gewünschten Daten enthält (beispielsweise Eigenschaften von registriertem Benutzer), und klicken Sie dann auf der Symbolleiste auf Exportieren.

  3. Führen Sie im Dialogfeld Bericht ausführen im Bereich Sitename folgende Schritte aus:
    Option/Funktion | Aufgaben
    Operand | Wählen Sie in der Dropdownliste einen Operanden aus (Alle, Ist gleich, Ist ungleich, Wie, Nicht wie), um zu entscheiden, für welche Site der Bericht ausgeführt wird.
    Parameterwert | Eingeben des Namens der Site ein, für die der Bericht ausgeführt werden soll.

  4. Führen Sie im Dialogfeld Bericht ausführen im Bereich Anzahl von Benutzern folgende Schritte aus:
    Option/Funktion | Aufgaben
    Auswählen Wählen Sie in der Dropdownliste einen Parameter für die Anzahl der Benutzer aus, die der Bericht umfassen soll:
    • Alle. Alle Benutzer in der Commerce Server-Datenbank, die die Abfragekriterien erfüllen.

    • Oben. Die Obergrenze für die Anzahl der Benutzer in der Commerce Server-Datenbank, die die Abfragekriterien erfüllen. Geben Sie im Feld Parameterwert die Anzahl der Hauptbenutzer ein.

    • Verschieden. Ein bestimmter Benutzer in der Commerce Server-Datenbank, der die Abfragekriterien erfüllt.
    Parameterwert | Eingeben der Anzahl der Hauptbenutzer, die der Bericht zurückgeben soll.

  5. Klicken Sie auf OK.

  6. Führen Sie im Dialogfeld Bericht als Liste exportieren folgende Schritte aus:
    Option/Funktion | Aufgaben
    Statisch | Vergewissen Sie sich, dass die Option Statisch aktiviert ist.
    Listenname | Eingeben eines eindeutigen Namens für die Liste.

  7. Klicken Sie auf OK.

Der statische Bericht wird als Liste in Listen-Manager exportiert. Sie können die Liste nun zur Erstellung einer Direktsendungskampagne verwenden.

Schritt 6: Erstellen einer Direktsendungskampagne

Direktsendungskampagnen sind eine Möglichkeit, die Benutzer zum Betrachten Ihrer Anzeigen zu bewegen. Mithilfe der Kampagnenmodule können Sie Direktsendungskampagnen erstellen und diese unter Verwendung der Adressenlisten in Listen-Manager gezielt an bestimmte Benutzer senden. Die Adressenlisten werden verwendet, um Direktsendungsaufträge auszuführen und die Benutzer gezielter und damit erfolgreicher anzusprechen.

Das folgende Verfahren setzt voraus, dass Sie bereits einen Kunden und eine Kampagne erstellt haben.

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Markieren Sie im Bildschirm Kampagnen-Manager die Kampagne, für die Sie eine Direktsendungskampagne erstellen möchten, und klicken Sie auf der Symbolleiste auf Hinzufügen. Wählen Sie dann in der Dropdownliste den Eintrag Neue Direktsendung aus.

  3. Führen Sie im Bildschirm Direktsendungseigenschaften im Bereich Direktsendungsartikel folgende Schritte aus:
    Option/Funktion | Aufgaben
    Direktsendungsname | Eingeben eines Namens für den Direktsendungsauftrag.
    Nachricht von E-Mail-Adresse | Eingeben der Adresse, von der die Direktsendung verschickt wird.
    Antwort an E-Mail-Adresse Eingeben der Adresse, an die der Empfänger seine Antwort richten soll, falls sie sich von der Standardadresse unterscheidet.

    Dieses Feld enthält als Vorgabe die Adresse, von der die Direktsendung verschickt wird.
    Betreff | Eingeben des Betreffs für den Direktsendungsauftrag ein.
    Dateipfad oder URL, der den Nachrichtentext enthält | Eingeben des Dateipfades oder des URLs, der für die Anzeige der Direktsendungsnachricht verwendet wird.
    Anlage Eingeben des Dateipfades und des Namens der Anlage, die zusammen mit der Nachricht versendet wird.

    Wenn keine Anlage versendet wird, lassen Sie dieses Kontrollkästchen deaktiviert.
    Adressenliste | Auswählen der Adressenliste, die für diese Direktsendungskampagne verwendet wird, in der Dropdownliste (z. B. Eigenschaften von registriertem Benutzer).
    Personalisierung Wählen Sie in der Dropdownliste Ja oder Nein aus.
    • Ja – aktiviert die Personalisierung für die Direktsendungskampagne.

    • Nein – deaktiviert die Personalisierung für die Direktsendungskampagne.
    Mailformat Auswählen des Formats dieser E-Mail.

    Es stehen folgende Optionen zur Verfügung:

    • Text – Formatiert die E-Mail im ASCII-Format.

    • MHTML – Formatiert die E-Mail in mehrsprachigem HTML.

    • MIME – Formatiert die E-Mail mit Multipurpose Internet Mail Extensions.
    Kommentare (nicht Teil der Nachricht) | Eingeben von ggf. erforderlichen Kommentaren, die sich auf diesen Direktsendungsauftrag beziehen.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Direktsendungskampagne zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Die Direktsendungskampagne wird zum Kampagnen-Manager hinzugefügt, und die Nachricht wird an alle Benutzer der angegebenen Adressenliste gesendet. Damit ist das System geschlossen.


Verwenden der Business Desk-Onlinehilfe

Klicken Sie auf Hilfe, um von Commerce Server Business Desk auf die Onlinehilfe zuzugreifen. Die Hilfeinformationen werden für alle Bildschirme und Aufgaben angezeigt, bei denen Sie Unterstützung benötigen.

Business Desk bietet Hilfe sowohl zu Dialogfeldern als auch zu Aufgaben an. Die Dialogfeldhilfe beschreibt, welche Eingaben in den einzelnen Textfeldern zu machen sind. Die Aufgabenhilfe führt Sie schrittweise durch eine bestimmte Aufgabe. Für Systemadministratoren und Siteentwickler ist darüber hinaus eine spezielle Dokumentation im Lieferumfang von Commerce Server 2000 enthalten.

Drucken von Hilfethemen

Registerkarte "Inhalt"

Registerkarte "Index"

Registerkarte "Suchen"

Glossarbegriffe

Drucken von Hilfethemen

  • Klicken Sie mit der rechten Maustaste auf das Thema, das Sie drucken möchten. Klicken Sie dann auf Drucken.

  • Wenn Sie ein Popupthema drucken möchten, klicken Sie mit der rechten Maustaste auf das Popupfenster, und klicken Sie dann auf Drucken.

  • Um alle Themen eines Buches zu drucken, markieren Sie auf der Registerkarte Inhalt das entsprechende Buch . Klicken Sie auf der Hilfesymbolleiste erst auf Optionen, klicken Sie dann auf Drucken und schließlich auf Ausgewähltes Thema mit allen Unterthemen drucken.

Anmerkung

  • Große Abbildungen werden möglicherweise unvollständig ausgedruckt. Wenn eine Abbildung sehr groß ist, ragt der Code bzw. die Abbildung möglicherweise rechts über den Seitenrand hinaus und wird nicht gedruckt.

Registerkarte "Inhalt"

Klicken Sie im Navigationsbereich der Business Desk-Hilfe auf die Registerkarte Inhalt, um das Inhaltsverzeichnis der Business Desk-Hilfe anzuzeigen. Klicken Sie auf den Namen eines Hilfethemas, um es anzuzeigen, oder auf das Pluszeichen (+) neben einem Hilfethema, um es zu erweitern. Das Thema wird auf der rechten Seite des Hilfefensters im Inhaltsbereich angezeigt.

Klicken Sie auf [image], um das aktuelle Thema oder das aktuelle Thema mit allen Unterthemen zu drucken. Sie können auch auf die Schaltfläche Aktualisieren klicken, um das Inhaltsverzeichnis mit dem Inhaltsbereich auf der rechten Seite zu synchronisieren. Nach einer Suche muss das Inhaltsverzeichnis mit dem Inhaltsbereich synchronisiert werden.

Registerkarte "Index"

Klicken Sie auf die Registerkarte Index, um den Onlineindex für Business Desk anzuzeigen.

So durchsuchen Sie den Index nach einem bestimmten Wort

  1. Klicken Sie im Fenster Business Desk-Dokumentation auf die Registerkarte Index.

  2. Geben Sie im Feld Zu suchendes Schlüsselwort ein Schlüsselwort oder einen Satz ein, nach dem gesucht werden soll. Der Index zeigt automatisch den Treffer im Index an, der dem gesuchten Wort am nächsten kommt

  3. Haben Sie einen Treffer gefunden, klicken Sie auf Anzeigen, um das Feld Gefundene Themen zu öffnen. Hier werden alle Themen angezeigt, die das gesuchte Stichwort enthalten.

  4. Markieren Sie das entsprechende Thema, und klicken Sie auf Anzeigen, um die gewünschten Informationen zu erhalten. Das Thema wird im Inhaltsbereich angezeigt.

Registerkarte "Suchen"

Klicken Sie auf die Registerkarte Suchen, um die Business Desk-Hilfe nach bestimmten Schlüsselwörtern oder Sätzen zu durchsuchen.

So suchen Sie nach einem Schlüsselwort oder einem bestimmten Satz

  1. Klicken Sie im Fenster Business Desk-Dokumentation auf die Registerkarte Suchen.

  2. Geben Sie im Feld Suchen nach ein Schlüsselwort oder einen Satz ein, und klicken Sie anschließend auf Suchen. Die Liste mit Suchergebnissen wird im Inhaltsbereich angezeigt.

    Im Feld Suchtyp auswählen können Sie einen bestimmten Suchtyp auswählen. Standardmäßig wird exakt nach dem von Ihnen eingegebenen Satz gesucht. Folgende Möglichkeiten stehen zur Auswahl:

    Suchtyp

            Beschreibung

    Genauer Ausdruck

            Sucht nach der exakten Wortfolge, die Sie eingegeben haben. Wenn Sie beispielsweise Business Desk eingeben, gibt die Suche nur Themen zurück, die die Zeichenfolge "Business Desk" enthalten.

    Standardsuche

            Sucht nach allen Formen der eingegebenen Wörter. Wenn Sie beispielsweise Business Desk eingeben, gibt die Suche alle Themen, die das Wort "Business", und alle Themen, die das Wort "Desk" enthalten, zurück.

  3. Klicken Sie auf den Titel des gewünschten Themas, um es anzuzeigen.

Das Thema wird im Inhaltsbereich angezeigt.

Glossarbegriffe

Wenn ein Business Desk-Hilfethema im Inhaltsbereich angezeigt wird, sehen Sie möglicherweise einige grün markierte Wörter. Wenn Sie diese Wörter anklicken, erhalten Sie eine Definition des jeweiligen Begriffs. Eine alphabetische Liste dieser Begriffe wird am Ende des Inhaltsverzeichnisses von Business Desk unter Glossar angezeigt.


Wenn Sie weitere Hilfe benötigen

Wenn Sie beim Verwenden oder Anpassen von Commerce Server Business Desk an Ihre jeweiligen Anforderungen zusätzliche Hilfe benötigen, wenden Sie sich an Ihren Systemadministrator oder Siteentwickler. Die folgende Tabelle listet die Aufgaben auf, die von den jeweiligen Personen ausgeführt werden.

Funktion Aufgaben
Systemadministrator
  • Erstellen eines freigegebenen Ordners für den Import und Export von Katalogen

  • Konvertieren externer Kataloge in XML- oder CSV-Dateien für den Import

  • Einrichten von Handelspartnern für den Austausch von Katalogen mit BizTalk Server

  • Importieren von Daten in Datawarehouse, sodass Berichte ausgeführt werden können

  • Erstellen von Segmentmodellen zur Anzeige der Segmente mit Segment-Viewer

  • Hinzufügen neuer Profildefinitionen und Datenquellen zur Erhebung zusätzlicher Profildaten

  • Sichern der Business Desk-Module

  • Planen von Direktsendungsaufträgen

  • Problembehandlung in Business Desk

  • Problembehandlung der Websiteumgebung
Siteentwickler
  • Integrieren der Website in vorhandene Systeme

  • Anpassen der einzelnen Business Desk-Funktionen

  • Hinzufügen neuer Module zu Business Desk

  • Hinzufügen verkaufsrelevanter Funktionen (z. B. Cross-Selling- und Up-Selling-Artikel) zu Ihrer Site

  • Aktivieren von Webseiten für das Darstellen von Anzeigen, sodass bestimmte Seitengruppen angesprochen werden können

  • Erstellen benutzerdefinierter Berichte

  • Erweitern des Datawarehouse


Business Desk-Lernprogramm

Microsoft Commerce Server 2000 bietet eine umfassende Toolsammlung, mit deren Hilfe Sie E-Commerce-Anwendungen für das Web erstellen können. Die folgenden Lernprogramme enthalten schrittweise Anleitungen für den Einsatz von Commerce Server bei der Verwaltung Ihrer Websites:

  • Business-To-Consumer-Lernprogramm

  • Business-To-Business-Lernprogramm

Mithilfe der in Commerce Server Business Desk enthaltenen Module können Sie unterschiedliche Aspekte Ihrer Website verwalten.


Business-To-Consumer-Lernprogramm

Das Business-To-Consumer-Lernprogramm (Retail) von Business Desk bietet leicht verständliche Anleitungen für die Anwendung von Commerce Server beim Importieren und Erstellen von Katalogen, beim Verwalten von Benutzerprofilen und Erstellen von Anzeigenkampagnen, bei der Zielgruppenadressierung von Sitebenutzern, beim Analysieren der Siteverwendung und beim Ausführen von Berichten.

Das Retail-Lernprogramm enthält folgende Lektionen für die Retail-Lösungssite. Den Speicherort Ihrer Retail-Lösungssite erfahren Sie von Ihrem Systemadministrator. Die Lektionen sollten in der folgenden Reihenfolge ausgeführt werden. Jede Lektion baut auf den vorhergehenden Lektionen auf:

  • Hinzufügen einer Versandart und eines Steuersatzes

  • Erstellen eines Katalogs

  • Erstellen eines Sitebegriffs

  • Hinzufügen eines Benutzers mit einem neuen Profil

  • Importieren eines Katalogs und Durchführen von Freitext- und Drilldownsuchen

  • Erstellen einer Anzeigenkampagne

  • Erstellen eines Zielausdrucks

  • Erstellen einer Preisnachlasskampagne

  • Importieren einer Protokolldatei

  • Ausführen eines dynamischen Berichts

  • Ausführen eines statischen Berichts

  • Exportieren eines statischen Berichts

  • Erstellen einer Direktsendungskampagne


Hinzufügen einer Versandart und eines Steuersatzes

Die Auftragsmodule von Commerce Server Business Desk ermöglichen das Anzeigen von Informationen zum Auftragsstatus, das Hinzufügen und Ändern von Versandarten sowie das Einrichten von Steuersätzen für unterschiedliche Länder, Bundesländer und Regionen.

In dieser Lektion werden Sie eine Versandart hinzufügen, Versandkosten nach Zwischensumme hinzufügen und bearbeiten sowie einen Steuersatz für den Bundesstaat Washington einrichten.

So fügen Sie eine Versandart hinzu

  1. Öffnen Sie Retail Business Desk entweder über das Menü Start oder vom Desktop aus.

  2. Klicken Sie im Menü Bestellungen auf Versandarten.

  3. Klicken Sie im Bildschirm Versandarten auf der Symbolleiste auf Hinzufügen. Wählen Sie anschließend in der Dropdownliste die Option Gebühr nach Zwischensumme aus.

  4. Führen Sie im Bildschirm Nach Zwischensumme berechnen - Neu im Bereich Versandarteigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie den Namen Vigor Airlines ein.
    Beschreibung | Geben Sie Wir versenden alles ein.
    Aktiviert | Stellen Sie sicher, dass das Kontrollkästchen Versandart aktiviert aktiviert ist.

  5. Klicken Sie im Bereich Tarife auf Neu, und führen Sie anschließend folgende Schritte aus:
    Option/Funktion | Zweck
    Preis bis zu | Geben Sie die Zahl 10 ein.
    Versandkosten | Geben Sie die Zahl 5 ein.

  6. Klicken Sie auf Annehmen.

  7. Wenn Sie weitere Versandkosten hinzufügen möchten, klicken Sie auf Neu und führen anschließend folgende Schritte aus:
    Option/Funktion | Zweck
    Preis bis zu | Geben Sie die Zahl 20 ein.
    Versandkosten | Geben Sie die Zahl 10 ein.

  8. Klicken Sie auf Annehmen.

  9. Führen Sie nun folgende Schritte aus, um die Versandkosten über 20 hinzuzufügen:
    Option/Funktion | Zweck
    Preis bis zu | Doppelklicken Sie auf über 20.
    Versandkosten | Geben Sie die Zahl 15 ein.

  10. Klicken Sie auf Annehmen.

Die neuen Versandkosten werden nach der Zwischensumme berechnet.

So bearbeiten Sie die Versandkosten

  1. Führen Sie im Bildschirm Nach Zwischensumme berechnen - Neu im Bereich Tarife folgende Schritte aus:
    Option/Funktion | Zweck
    Preis bis zu | Wählen Sie 20, und klicken Sie anschließend auf Bearbeiten.
    Versandkosten | Klicken Sie auf den Bereich hinter der 10, und ändern Sie die Versandkosten in 10,50.

  2. Klicken Sie auf Annehmen.

  3. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die neuen Versandkosten zu speichern und zum Bildschirm Versandarten zurückzukehren.

Die Versandkosten werden gespeichert und bei allen Käufen in der Retail-Site nach der Zwischensumme errechnet.

So fügen Sie einen Steuersatz hinzu

  1. Klicken Sie im Menü Bestellungen auf Steuersätze.

  2. Klicken Sie im Bildschirm Steuer auf Neu, und führen Sie anschließend folgende Schritte aus:
    Option/Funktion | Zweck
    Land/Region | Wählen Sie in der Dropdownliste Vereinigte Staaten von Amerika aus.
    Bundesland/Kanton | Wählen Sie in der Dropdownliste Washington aus.
    Steuersatz (%) | Geben Sie die Zahl 10 ein.

  3. Klicken Sie auf Annehmen.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den neuen Steuersatz zu speichern und zum Bildschirm Willkommen bei Business Desk zurückzukehren.

Der Steuersatz wird gespeichert und auf alle Käufe angewendet, die an eine Adresse im US-Bundesstaat Washington versendet werden.


Erstellen eines Katalogs

Mithilfe der Katalogmodule können Sie Produktdaten hinzufügen und aktualisieren sowie Produktkataloge erstellen. Ein Katalog besteht aus zwei Hauptteilen: dem Katalogschema und den Katalogdaten. Zur Erstellung eines Katalogs erstellen Sie zuerst das Katalogschema und fügen anschließend die Katalogdaten hinzu. Das Katalogschema definiert die Struktur des Katalogs, während die Katalogdaten den Inhalt liefern.

Die Katalogdaten sind in folgende hierarchische Gruppen eingeteilt:

  • Kategorien sind Container für Produkte oder Unterkategorien. Jede Kategorie stellt eine einzelne Instanz einer Kategoriedefinition dar.

  • Produkte sind die Elemente, die in einem Katalog zum Verkauf angeboten werden. Jedes Produkt ist eine bestimmte Instanz einer Produktdefinition. Eine Gruppe eng verwandter Produkte wird als Produktfamilie bezeichnet.

  • Produkte werden mittels einer Kombination von Eigenschaftsdefinitionen beschrieben. Wenn Sie beispielsweise eine Produktdefinition namens Hemden haben, die die Eigenschaften Farbe, Länge und Größe enthält, wird für jede Kombination aus Farbe, Länge und Größe, die Sie in Ihrem Katalog anbieten möchten, ein eigenes Produkt erstellt.

  • Produktvarianten sind bestimmte Artikel, die gemeinsam mit anderen, verwandten Varianten ein Produkt bilden.

In dieser Lektion werden Sie mithilfe des Katalog-Designer-Moduls eine Eigenschaft und Produktdefinitionen erstellen und neue Produkte zu einem Katalog hinzufügen. Eigenschaftsdefinitionen bestimmen die Eigenschaften zur Beschreibung der Produkte in Ihrem Katalog, Produktdefinitionen definieren einen bestimmten Produkttyp.

So erstellen Sie Eigenschaftsdefinitionen

  1. Klicken Sie im Menü Kataloge auf Katalog-Designer.

  2. Klicken Sie im Bildschirm Katalog-Designer: Kategoriedefinitionen auf Ansicht. Wählen Sie dann aus der Dropdownliste die Option Eigenschaftsdefinitionen.

  3. Klicken Sie im Bildschirm Katalog-Designer: Eigenschaftsdefinitionen auf Hinzufügen. Wählen Sie dann aus der Dropdownliste die Option Text.

  4. Führen Sie im Bildschirm Eigenschaftsdefinition: Neu (Text) folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie MeinTitel ein.
    Angezeigter Name | Geben Sie Mein Titel ein.
    In Produktliste anzeigen | Wählen Sie Ja aus, um die Eigenschaftsdefinition in der Produktliste anzuzeigen.

  5. Klicken Sie auf der Symbolleiste auf Speichern und neue Eigenschaftsdefinition erstellen, um die neue Eigenschaftsdefinition zu speichern und eine weitere zu erstellen.

  6. Wählen Sie im Dialogfeld Neue Eigenschaftsdefinition in der Dropdownliste Typ die Option Text aus, und klicken Sie anschließend auf Weiter.

  7. Führen Sie im Bildschirm Eigenschaftsdefinition: Neu (Text) folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie MeinAutor ein.
    Angezeigter Name | Geben Sie Mein Autor ein.

  8. Klicken Sie auf der Symbolleiste auf Speichern und neue Eigenschaftsdefinition erstellen, um die neue Eigenschaftsdefinition zu speichern und eine weitere zu erstellen.

  9. Wählen Sie im Dialogfeld Neue Eigenschaftsdefinition in der Dropdownliste Typ die Option Text, und klicken Sie anschließend auf Weiter.

  10. Führen Sie im Bildschirm Eigenschaftsdefinition: Neu (Text) folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie MeineISBN ein.
    Angezeigter Name | Aktivieren Sie das Kontrollkästchen Ja.
    Freitextsuche aktivieren | Deaktivieren Sie das Kontrollkästchen Ja.
    Mittels Drilldownsuche auffindbar | Deaktivieren Sie das Kontrollkästchen Ja.
    Minimallänge | Geben Sie die Zahl 10 ein.
    Maximallänge | Geben Sie die Zahl 20 ein.
    In Datawarehouse exportieren | Aktivieren Sie das Kontrollkästchen Ja.

  11. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die neue Eigenschaftsdefinition zu speichern und zum Bildschirm Katalog-Designer: Eigenschaftsdefinitionen zurückzukehren.

Die neuen Eigenschaftsdefinitionen werden gespeichert. Nun können Sie Ihre Produktdefinitionen hinzufügen.

So fügen Sie eine Produktdefinition hinzu

  1. Klicken Sie im Bildschirm Katalog-Designer: Eigenschaftsdefinitionen auf Ansicht. Wählen Sie dann aus der Dropdownliste die Option Produktdefinitionen.

  2. Klicken Sie im Bildschirm Katalog-Designer: Produktdefinitionen auf der Symbolleiste auf Hinzufügen.

  3. Geben Sie im Bildschirm Produktdefinition: Neu im Bereich Produktdefinitionseigenschaften im Feld Name den Namen MeinBuch ein.

  4. Führen Sie im Bereich Produkteigenschaften im Feld Verfügbare Eigenschaften einen Bildlauf nach unten durch, um MeinAutor, MeineISBN und MeinTitel anzuzeigen. Halten Sie die STRG-Taste gedrückt, klicken Sie auf MeinAutor, MeineISBN und MeinTitel. Lassen Sie anschließend STRG wieder los.

  5. Klicken Sie auf Hinzufügen.

Die ausgewählten Eigenschaften werden in das Feld Zugewiesene Eigenschaften verschoben.

  6. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die neuen Produktdefinitionen zu speichern und zum Bildschirm Katalog-Designer: Produktdefinitionen zurückzukehren.

Die Produktdefinition MeinBuch wird im Feld Name angezeigt.

  7. Doppelklicken Sie auf die Produktdefinition MeinBuch.

Unterhalb dieser Produktdefinition werden nun zusätzlich zu den Produkteigenschaften Name und Gewichtung die Produkteigenschaften MeinAutor, MeineISBN und MeinTitel angezeigt.

So fügen Sie einen neuen Katalog hinzu

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Klicken Sie im Bildschirm Kataloge auf der Symbolleiste auf Hinzufügen, und wählen Sie anschließend in der Dropdownliste die Option Neuer Katalog.

  3. Führen Sie im Bildschirm Katalog: Neu im Bereich Katalogeigenschaften die folgenden Schritte durch:
    Option/Funktion | Zweck
    Name | Geben Sie MeineBücher ein.
    Eindeutige Produkt-ID | Wählen Sie in der Dropdownliste MeineISBN aus.
    Eindeutige Produktvarianten-ID | Wählen Sie in der Dropdownliste MeineISBN aus.

  4. Klicken Sie auf der Symbolleiste auf Speichern, um die Katalogeigenschaften zu speichern.

Die Katalogeigenschaften werden mit dem neuen Katalog gespeichert.

So fügen Sie basierend auf der Abteilungskategoriedefinition eine neue Kategorie hinzu

  1. Klicken Sie im Bereich Kategorien auf Neu.

  2. Wählen Sie im Dialogfeld Neue Kategorie die Kategorie Abteilung aus, und klicken Sie anschließend auf Weiter.

  3. Führen Sie im Bereich Kategorieeigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie Businessbücher ein.
    Beschreibung | Geben Sie Neue Businesstitel ein.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die neue Kategorie zu speichern und zum Bildschirm Katalog – MeineBücher zurückzukehren.

    Die Kategorie Businessbücher wird basierend auf der Kategoriedefinition Abteilung erstellt.

  5. Klicken Sie auf der Symbolleiste auf Zurück, um zum Bildschirm Kataloge zurückzukehren.

Der Katalog MeineBücher wird nun im Feld Name angezeigt. Jetzt können Sie neue Produkte zu diesem Katalog hinzufügen.

So fügen Sie ein neues Produkt zum Katalog hinzu

  1. Wählen Sie im Bildschirm Kataloge den Katalog MeineBücher aus, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  2. Klicken Sie im Bereich Produkte auf Neu.

  3. Wählen Sie im Dialogfeld Neues Produkt das Produkt MeinBuch aus, und klicken Sie anschließend auf OK.

  4. Führen Sie im Bereich Produkteigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    MeineISBN | Geben Sie 1-2345-6789-0 ein.
    Beschreibung | Geben Sie Bills neueste Gedanken ein.
    Name | Geben Sie Digitales Business. Wettbewerb im Informationszeitalter ein.
    MeinAutor | Geben Sie Bill Gates ein.
    MeinTitel | Geben Sie Digitales Business. Wettbewerb im Informationszeitalter ein.
    Preis | Geben Sie 19.99 ein.

  5. Wählen Sie im Bereich Zugewiesene Kategorien im Feld Verfügbare Kategorien die Kategorie Businessbücher aus.

  6. Klicken Sie auf Hinzufügen.

Das neue Buch wird der Kategorie Businessbücher zugewiesen.

  7. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um das neue Produkt im Katalog zu speichern und zum Bildschirm Katalog – MeineBücher zurückzukehren.

Das neue Produkt – das Buch Digitales Business. Wettbewerb im Informationszeitalter – wird im Katalog gespeichert. Sie können nun weitere Produkte hinzufügen.

So fügen Sie ein weiteres Produkt zum Katalog hinzu

  1. Klicken Sie im Bereich Produkte auf Neu.

  2. Wählen Sie im Dialogfeld Neues Produkt die Option MeinBuch aus, und klicken Sie anschließend auf OK.

  3. Führen Sie im Bereich Produkteigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    MeineISBN | Geben Sie 2-3452-8892-9 ein.
    Beschreibung | Geben Sie Bills erstes Buch ein.
    Name | Geben Sie The Road Ahead ein.
    MeinAuthor | Geben Sie Bill Gates ein.
    MeinTitel | Geben Sie The Road Ahead ein.
    Preis | Geben Sie 29.99 ein.

  4. Wählen Sie im Bereich Zugewiesene Kategorien im Feld Verfügbare Kategorien die Kategorie Businessbücher aus.

  5. Klicken Sie auf Hinzufügen.

  6. Klicken Sie im Bereich Produktbeziehungen auf Neu, und führen Sie anschließend folgende Schritte aus:
    Option/Funktion | Zweck
    Beziehung | Geben Sie Andere Bücher von Bill Gates ein.
    Artikel | Klicken Sie auf die Auslassungsschaltfläche […], um das Dialogfeld Produktauswahl zu öffnen.

  7. Führen Sie im Dialogfeld Produktauswahl folgende Schritte aus:
    Option/Funktion | Zweck
    Kategorien | Wählen Sie die Kategorie Businessbücher aus.
    Produkte in Kategorie | Wählen Sie die MeineISBN-Nummer 1-2345-6789-0, (Digitales Business. Wettbewerb im Informationszeitalter).

  8. Klicken Sie auf OK, und klicken Sie dann im Bereich Produktbeziehungen auf Annehmen.

Die Beziehung zu dem Buch Digitales Business. Wettbewerb im Informationszeitalter wird hergestellt.

  9. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um das neue Produkt im Katalog zu speichern und zum Bildschirm Katalog – MeineBücher zurückzukehren.

  10. Klicken Sie auf der Symbolleiste auf Zurück, um zum Bildschirm Kataloge zurückzukehren.

Das neue Produkt – das Buch The Road Ahead – wird im Katalog gespeichert. Das neue Produkt wird nun in der Retail-Site in der Kategorie Businessbücher angezeigt.

Überprüfen der Site

So überprüfen Sie die Änderungen in der Retail-Site

  1. Geben Sie in der Adressenzeile von Internet Explorer http://Computername/retail ein, um die Retail-Site zu öffnen.

  2. Klicken Sie im linken Bereich unter der Option Anmeldung auf Neuer Benutzer, und führen Sie anschließend folgende Schritte aus:
    Option/Funktion | Zweck
    Benutzername | Geben Sie den Namen Hans Muster ein.
    Kennwort | Geben Sie kennwort ein.
    Kennwort bestätigen | Geben Sie kennwort ein.

  3. Klicken Sie auf Absenden.

  4. Klicken Sie auf die Kategorie Businessbücher, wählen Sie das Buch Digitales Business. Wettbewerb im Informationszeitalter, und klicken Sie anschließend auf Zum Warenkorb hinzufügen.

  5. Klicken Sie in der Kopfzeile des Bildschirms auf Warenkorb, und klicken Sie anschließend auf Auschecken.

    Der Text Das Adressbuch ist leer wird angezeigt.

  6. Um eine Versandadresse hinzuzufügen, klicken Sie auf das Feld Klicken Sie hier, um eine Adresse hinzuzufügen, und führen Sie anschließend folgende Schritte aus:
    Option/Funktion | Zweck
    Adressenname | Geben Sie Hans ein.
    Nachname | Geben Sie den Namen Muster ein.
    Vorname | Geben Sie Hans ein.
    Adresszeile 1 | Geben Sie One Microsoft Way ein.
    Ort | Geben Sie Redmond ein.
    Bundesland/Kanton | Geben Sie WA ein.
    Postleitzahl | Geben Sie 98052 ein.
    Land/Region | Wählen Sie in der Dropdownliste Vereinigte Staaten von Amerika aus.

  7. Klicken Sie auf Absenden.

  8. Wenn Ihre Rechnungsadresse mit der Versandadresse übereinstimmt, aktivieren Sie im Bildschirm Versandadresse das Kontrollkästchen Meine Rechnungsadresse stimmt mit der Versandadresse überein und klicken dann auf Adresse auswählen. Wenn Sie eine andere Rechnungsadresse eingeben möchten, deaktivieren Sie Meine Rechnungsadresse stimmt mit der Versandadresse überein und klicken auf Adresse auswählen. Fügen Sie im folgenden Bildschirm die gewünschte Adresse hinzu, aktivieren Sie das Optionsfeld neben der Adresse, und klicken Sie dann auf Adresse auswählen.

  9. Klicken Sie im Bildschirm Versandoptionen auf Auschecken.

  10. Vergewissern Sie sich, dass der Steuersatz 10 Prozent der Auftragszwischensumme beträgt und dass sich die Versandkosten auf $10,50 belaufen. Klicken Sie anschließend auf Auschecken.

  11. Führen Sie im Bildschirm Kreditkarte folgende Schritte aus:
    Option/Funktion | Zweck
    Name auf Karte | Überprüfen Sie, dass Hans Muster als Name auf der Karte steht.
    Kartennummer | Geben Sie die Kartennummer 4111-1111-1111-1111 ein.
    Typ | Wählen Sie in der Dropdownliste die Option VISA aus.
    Ablaufmonat | Wählen Sie in der Dropdownliste die Option Juli aus.
    Ablaufjahr | Wählen Sie in der Dropdownliste die Option 2003 aus.

  12. Klicken Sie auf Absenden, um den Auftrag zu bestätigen.

Der Bildschirm Bestellbestätigung erscheint, in dem der Link zur Bestellnummer aktiviert ist.

So überprüfen Sie, ob das Produktprofil dem hinzugefügten Artikel entspricht

  1. Klicken Sie im linken Bereich unterhalb von Kundenservice auf Bestellungen. Klicken Sie anschließend auf Elementdetails anzeigen.

  2. Überprüfen Sie im Bildschirm Bestelldetails die folgenden Einzelposten:
    Feld | Beschreibung
    Name | Digitales Business. Wettbewerb im Informationszeitalter.
    Beschreibung | Bills neueste Gedanken.
    Produkt-ID | 1-2345-6789-0.
    Menge | 1.
    Einzelpreis | 19,99.

  3. Klicken Sie im linken Bereich unterhalb von Kundenservice auf Profil.

    Das Profil entspricht den Informationen, die Sie zuvor für den Benutzer Hans Muster eingegeben haben. Sie können die Benutzerdetails bearbeiten und anschließend auf Speichern klicken, um das Benutzerprofil zu speichern.

  4. Schließen Sie das Browserfenster.


Erstellen eines Sitebegriffs

Mithilfe des Sitebegriffs-Editor-Moduls können Sie dauerhaft gültige Werte für Ihre Site eingeben. Sitebegriffe bieten eine einfache Möglichkeit, die Werte, die innerhalb Ihrer Site verwendet werden, zu standardisieren. Mit Sitebegriffen können Sie zielgerichtet Katalogprodukte, Inhalte und Anzeigen auf bestimmte Benutzer ausrichten.

In dieser Lektion werden Sie die Sitebegriffe Männlich und Weiblich hinzufügen. Sind die Sitebegriffe einmal erstellt, kann ein Benutzerprofil eingerichtet werden, das diese Sitebegriffe enthält. So haben Sie später die Möglichkeit, Benutzer, die diesem Profil entsprechen, gezielt mit bestimmten Anzeigen anzusprechen.

So erstellen Sie einen Sitebegriff

  1. Klicken Sie im Menü Benutzer auf die Option Sitebegriffs-Editor.

  2. Klicken Sie im Bildschirm Sitebegriffs-Editor auf Hinzufügen.

  3. Wählen Sie im Dialogfeld Hinzufügen die Option Neue Gruppe hinzufügen, und klicken Sie anschließend auf OK.

  4. Führen Sie im Bereich Attribute folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie PersoenlicheInfo ein.
    Angezeigter Name | Geben Sie Persönliche Informationen ein.

  5. Klicken Sie auf Übernehmen.

  6. Wählen Sie in der Liste Sitebegriffstruktur den Eintrag Persönliche Informationen, und klicken Sie anschließend auf Hinzufügen.

  7. Wählen Sie im Dialogfeld Hinzufügen die Option Neuen Sitebegriff hinzufügen, und klicken Sie anschließend auf OK.

  8. Führen Sie im Bereich Sitebegriffsattribute folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie Geschlecht ein.
    Angezeigter Name | Geben Sie Geschlecht ein.

  9. Klicken Sie im Bereich Begriffe auf Neu, und führen Sie anschließend folgende Schritte aus:
    Option/Funktion | Zweck
    Begriffsname | Geben Sie Maennlich ein.
    Angezeigter Name | Geben Sie Männlich ein.

  10. Klicken Sie auf Annehmen.

  11. Klicken Sie im Bereich Begriffe auf Neu, und führen Sie anschließend folgende Schritte aus:
    Option/Funktion | Zweck
    Begriffsname | Geben Sie Weiblich ein.
    Angezeigter Name | Geben Sie Weiblich ein.

  12. Klicken Sie auf Annehmen und anschließend auf Übernehmen.

  13. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Sitebegriffe zu speichern und zum Bildschirm Willkommen bei Business Desk zurückzukehren.

Die Sitebegriffe Männlich und Weiblich werden gespeichert und können nun zu einem Benutzerprofil hinzugefügt werden.

So fügen Sie einen Sitebegriff zu einem Benutzerprofil hinzu

  1. Klicken Sie im Menü Benutzer auf Profil-Designer.

  2. Wählen Sie im Bildschirm Profile im Feld Name die Option Benutzerobjekt aus, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Profil: Benutzerobjekt in der Liste Eigenschaften den Eintrag Allgemeine Informationen aus. Klicken Sie anschließend auf Hinzufügen.

  4. Wählen Sie im Dialogfeld Hinzufügen die Option Neue Eigenschaft hinzufügen aus, und klicken Sie anschließend auf OK.

  5. Führen Sie im Bereich Attribute folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie Geschlecht ein.
    Angezeigter Name | Geben Sie Geschlecht ein.
    Typ | Wählen Sie in der Dropdownliste die Option Sitebegriff aus.
    Typverweis | Klicken Sie auf die Auslassungsschaltfläche […], wählen Sie Persönliche Informationen, und wählen Sie anschließend die Option Geschlecht aus.

  6. Klicken Sie auf OK.

  7. Führen Sie im Bereich Erweiterte Attribute folgende Schritte aus:
    Option/Funktion | Zweck
    Aktiv | Überprüfen Sie, ob das Kontrollkästchen Ja aktiviert ist.
    Daten zuordnen | Klicken Sie auf die Auslassungsschaltfläche […], um das Dialogfeld Datenquellenauswahl zu öffnen.

  8. Wählen Sie im Dialogfeld Datenquellenauswahl die Option Profildienst_SQLQuelle. Wählen Sie anschließend Benutzerobjekt, führen Sie einen Bildlauf nach unten durch, und wählen Sie dann Benutzerdefinierte Eigenschaft1 (STRING) aus.

  9. Klicken Sie auf OK.

  10. Führen Sie im Bereich Benutzerdefinierte Attribute folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Wählen Sie sUserAccess aus, und klicken Sie anschließend auf Bearbeiten.
    Wert | Ändern Sie den Wert in 1.

  11. Klicken Sie auf Annehmen und anschließend auf Übernehmen.

  12. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den Sitebegriff mit dem Benutzerprofil zu speichern und zum Bildschirm Profile zurückzukehren.

Nachdem Sie eine Eigenschaft zu einer Profildefinition hinzugefügt haben, veröffentlichen Sie die Änderungen in Ihrer Website.

So veröffentlichen Sie Profiländerungen in Ihrer Website

  1. Klicken Sie im Menü Benutzer auf Profile veröffentlichen.

  2. Wählen Sie im Bildschirm Profile veröffentlichen die Site aus, deren Änderungen Sie veröffentlichen möchten. Klicken Sie anschließend auf der Symbolleiste auf Veröffentlichen.

Die Profiländerungen werden aktualisiert und sind in der Website verfügbar.


Hinzufügen eines Benutzers mit einem neuen Profil

Verwenden Sie das Benutzermodul, um registrierte Benutzer zu verwalten – also Benutzer Ihrer Website, die in der Site erkannt werden, weil sie ein Formular zur Onlineregistrierung ausgefüllt oder in Ihrer Site ein Benutzerkonto eingerichtet haben.

In dieser Lektion werden Sie mithilfe der neuen, in der vorherigen Lektion erstellten Sitebegriffe Männlich und Weiblich zwei neue Benutzer hinzufügen.

So erstellen Sie einen männlichen Benutzer

  1. Klicken Sie im Menü Benutzer auf Benutzer.

  2. Klicken Sie im Bildschirm Benutzer auf der Symbolleiste auf Hinzufügen.

  3. Führen Sie im Bildschirm Neuer Benutzer im Bereich Allgemeine Informationen folgende Schritte aus:
    Option/Funktion | Zweck
    Anmeldename | Geben Sie JörgBenutzer ein.
    Benutzerkennwort | Geben Sie kennwort ein.
    E-Mail | Geben Sie Joerg.Benutzer@Microsoft.com ein.
    Nachname | Geben Sie Benutzer ein.
    Vorname | Geben Sie Jörg ein.
    Geschlecht | Wählen Sie in der Dropdownliste die Option Männlich aus.

  4. Klicken Sie auf der Symbolleiste auf Speichern und neuen Benutzer erstellen, um den männlichen Benutzer zu speichern und einen neuen Benutzer zu erstellen.

Der männliche Benutzer wird gespeichert. Sie können nun einen weiteren neuen Benutzer hinzufügen.

So erstellen Sie einen weiblichen Benutzer

  1. Führen Sie im Bereich Allgemeine Informationen folgende Schritte aus:
    Option/Funktion | Zweck
    Anmeldenamen | Geben Sie JanineBenutzer ein.
    Benutzerkennwort | Geben Sie kennwort ein.
    E-Mail | Geben Sie Janine.Benutzer@Microsoft.com ein.
    Nachname | Geben Sie Benutzer ein.
    Vorname | Geben Sie Janine ein.
    Geschlecht | Wählen Sie in der Dropdownliste die Option Weiblich aus.

  2. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den weiblichen Benutzer zu speichern und zum Bildschirm Benutzer zurückzukehren.

Der männliche und weibliche Benutzer wurden mit den neuen Sitebegriffen Männlich und Weiblich gespeichert.

Überprüfen der Site

So überprüfen Sie die Änderungen in der Retail-Site

  1. Geben Sie in der Adressenzeile von Internet Explorer http://Computername/retail ein, um die Retail-Site zu öffnen.

  2. Klicken Sie im Bildschirm Retail auf Klicken Sie hier, um sich als Gast anzumelden.

  3. Klicken Sie im linken Bereich unterhalb von Anmeldung auf Anmeldung.

  4. Führen Sie im Bildschirm Anmeldung folgende Schritte aus:
    Option/Funktion | Zweck
    Benutzername | Geben Sie JörgBenutzer ein.
    Kennwort | Geben Sie kennwort ein.

  5. Klicken Sie auf Absenden.

  6. Klicken Sie im linken Bereich unterhalb von Kundenservice auf Profil.

  7. Stellen Sie sicher, dass der neu erstellte Sitebegriff Geschlecht unter Allgemeine Informationen angezeigt wird.

  8. Schließen Sie das Browserfenster.


Importieren eines Katalogs und Durchführen von Freitext- und Drilldownsuchen

Verwenden Sie das Katalog-Editor-Modul, um mit Kategorien und Katalogen zu arbeiten. Sie können Kategorien und Kataloge erstellen, ändern und löschen. Mithilfe des Katalog-Editor-Moduls lassen sich auch Kataloge importieren. Sie haben die Möglichkeit, einen Katalog entweder aus einer XML-(Extensible Markup Language)- oder einer CSV-Datei (trennzeichengetrennt) zu importieren.

In dieser Lektion werden Sie eine XML-Katalogdatei importieren. Anschließend werden Sie die Site besuchen und sowohl eine Freitextsuche als auch eine Drilldownsuche ausführen, um die Produkte, Produktfamilien und Produktfamilien mit Varianten anzuzeigen, die über die mit Ihren Suchkriterien übereinstimmenden, auffindbaren Eigenschaften verfügen. Wenn Sie ein Produkt gefunden haben, das mit Ihren Suchkriterien übereinstimmt, werden Sie es zu Ihrem Warenkorb hinzufügen.

So kopieren Sie XML-Katalogdateien in den Ordner "Catalogs"

  1. Kopieren Sie die Datei Hardwarefull.xml im Ordner \Tutorial im Stammverzeichnis der CD-ROM in den Ordner Laufwerk:\Inetpub\wwwroot\RetailBizDesk\Catalogs.

  2. Kopieren Sie die Datei Booksfull.xml im Ordner \Tutorial im Stammverzeichnis der CD-ROM in den Ordner Laufwerk:\Inetpub\wwwroot\RetailBizDesk\Catalogs.

So importieren Sie die Katalogdatei "Hardwarefull.xml"

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Klicken Sie im Bildschirm Katalog-Editor auf der Symbolleiste auf Importieren, und wählen Sie dann in der Dropdownliste XML-Datei importieren aus.

  3. Führen Sie im Dialogfeld XML-Katalog importieren folgende Schritte aus:
    Option/Funktion | Zweck
    Dateiname | Geben Sie Laufwerk:\Inetpub\wwwroot\RetailBizDesk\Catalogs\hardwarefull.xml ein.
    Vorhandene Daten im Katalog löschen | Stellen Sie sicher, dass dieses Kontrollkästchen deaktiviert ist.

  4. Klicken Sie auf OK.

  5. Klicken Sie im Dialogfeld Business Desk: XML-Katalog importieren auf OK.

Der Katalog Hardware wurde importiert und ist nun in der Retail-Site verfügbar.

Anmerkung

  • Der Katalog wird noch nicht im Katalog-Editor im Feld Name angezeigt.

So importieren Sie die Katalogdatei "Booksfull.xml"

  1. Klicken Sie im Bildschirm Katalog-Editor auf der Symbolleiste auf Importieren, und wählen Sie dann in der Dropdownliste XML-Datei importieren aus.

  2. Führen Sie im Dialogfeld XML-Katalog importieren folgende Schritte aus:
    Option/Funktion | Zweck
    Dateiname | Geben Sie Laufwerk:\Inetpub\wwwroot\RetailBizDesk\Catalogs\Booksfull.xml ein.
    Vorhandene Daten im Katalog löschen | Stellen Sie sicher, dass dieses Kontrollkästchen deaktiviert ist.

  3. Klicken Sie auf OK.

  4. Klicken Sie im Dialogfeld Business Desk: XML-Katalog importieren auf OK.

Der Bücherkatalog wird importiert und ist nun in der Retail-Site verfügbar.

Anmerkung

  • Der Katalog wird noch nicht im Katalog-Editor im Feld Name angezeigt.

    Verwenden Sie das Katalog-Editor-Modul, um den Katalog zu aktualisieren und in Ihrer Website zu veröffentlichen. Jedesmal, wenn Sie Änderungen im Katalog vorgenommen haben, müssen Sie ihn aktualisieren und in der Website veröffentlichen. Dadurch stellen Sie sicher, dass die Änderungen auch in Ihrer Website eingetragen werden.

So aktualisieren und veröffentlichen Sie den Katalog

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Klicken Sie im Bildschirm Katalog-Editor auf der Symbolleiste auf Katalog veröffentlichen.

Der Katalog wird aktualisiert und in der Website veröffentlicht.

So führen Sie eine Freitextsuche durch

  1. Geben Sie in der Adressenzeile von Internet Explorer http://Computername/retail ein, um die Retail-Site zu öffnen.

  2. Geben Sie im Feld Produktsuche den Suchbegriff Buch ein, und klicken Sie anschließend auf Suchen.

    Der Bildschirm Suchergebnisse erscheint, in dem die Elemente angezeigt werden, die den Suchkriterien entsprechen. Dazu gehören:

    • Produkte mit einer Variante, die eine auffindbare Eigenschaft besitzt, welche den Suchkriterien entspricht.

    • Eine Produktfamilie, die das Buch The Road Ahead enthält, das den Suchkriterien entspricht.

    • Eine Produktkategorie, die Beschreibungen von auffindbaren Eigenschaften besitzt, welche den Suchkriterien entsprechen.

So führen Sie eine Drilldownsuche durch

  1. Klicken Sie auf den Suchlink Erweitert.

    Der Bildschirm Erweiterte Suche wird geöffnet, der die Kataloge Hardware und Bücher enthält.

  2. Klicken Sie im Katalog Hardware auf Mäuse.

    Es erscheint die Nachricht Anzahl bislang gefundener Übereinstimmungen: 24.

  3. Wenn Sie Ihre Suchkriterien im Bildschirm Erweiterte Suche einschränken möchten, führen Sie folgende Schritte aus:
    Option/Funktion | Zweck
    Bildlaufrad | Wählen Sie J (für Ja) aus.
    Bs | Wählen Sie 32-Bit-Win aus.
    Kabellos | Wählen Sie J (für Ja) aus.

  4. Klicken Sie auf Suchen.

    Es erscheint die Nachricht Anzahl zurückgelieferter Übereinstimmungen: 1.

Die Suchkriterien haben das Ergebnis auf einen einzigen Treffer eingeschränkt, die Microsoft® Cordless Wheel Mouse.

So zeigen Sie Produktvarianten an

  1. Klicken Sie auf Microsoft® Cordless Wheel Mouse.

    Führen Sie in der Variantenliste einen Bildlauf nach unten durch. Das Produkt wird in zwei Varianten angezeigt. Sie können nun wählen, welche der beiden Varianten Sie zum Warenkorb hinzufügen möchten.

  2. Wählen Sie die zweite Variante (Farbe: Weiß, SKU: C5700001w, Listenpreis DM44.95).

  3. Klicken Sie auf Zum Warenkorb hinzufügen, und klicken Sie anschließend in der Kopfzeile des Bildschirms auf Warenkorb.

  4. Klicken Sie auf Auschecken.

  5. Führen Sie im Formular Versandadresse folgende Schritte aus:
    Option/Funktion | Zweck
    Nachname | Geben Sie Jones ein.
    Vorname | Geben Sie Amy ein.
    Adresszeile 1 | Geben Sie One Microsoft Way ein.
    Ort | Geben Sie Redmond ein.
    Bundesland/Kanton | Geben Sie WA ein.
    Postleitzahl | Geben Sie 98052 ein.
    Land/Region | Wählen Sie in der Dropdownliste Vereinigte Staaten von Amerika aus.

  6. Klicken Sie auf Absenden.

  7. Klicken Sie im Bildschirm Versandoptionen auf Auschecken.

  8. Klicken Sie im Bildschirm Bestellzusammenfassung auf Auschecken.

  9. Führen Sie im Bildschirm Kreditkarte folgende Schritte aus:
    Option/Funktion | Zweck
    Kartennummer | Geben Sie die Kartennummer 4111-1111-1111-1111 ein.
    Typ | Wählen Sie in der Dropdownliste die Option VISA aus.
    Ablaufmonat | Wählen Sie in der Dropdownliste die Option März aus.
    Ablaufjahr | Wählen Sie aus dem Dropdownkalender die Option 2003 aus.

  10. Klicken Sie auf Absenden.

    Der Bildschirm Bestellbestätigung mit der Bestellnummer wird angezeigt.

  11. Schließen Sie das Browserfenster.


Erstellen einer Anzeigenkampagne

Verwenden Sie die Kampagnenmodule von Commerce Server Business Desk zur Erstellung und Planung von Marketingkampagnen. Sie können Anzeigen-, Direktsendungs- und Preisnachlasskampagnen erstellen. Mit den Kampagnenmodulen können Sie unterschiedliche Arten von Kampagnen für verschiedene Kunden verwalten. Sie können in Kampagnen auch das Referenztabellenmodul verwenden, um Ihre Branchencodes einzurichten. Branchencodes ermöglichen Ihnen die Identifizierung von mit Anzeigen- oder Preisnachlasskampagnen verbundenen Branchen. Dies verhindert, dass in derselben Website zwei Anzeigen- oder Preisnachlasskampagnen von Kunden aus derselben Branche erscheinen.

In dieser Lektion werden Sie einen Branchencode für Bücher hinzufügen. Sie werden anschließend einen neuen Kampagnenkunden und eine neue Anzeigenkampagne mit dem Namen "Bills Bücher" hinzufügen.

So fügen Sie einen Branchencode zu den Referenztabellen hinzu

  11. Klicken Sie im Menü Kampagnen auf Referenztabellen.

  12. Klicken Sie im Bildschirm Referenztabellen auf den Bereich Branchencodes und anschließend auf Neu.

  13. Geben Sie im Feld Branchencode den Wert Bücher ein.

  14. Klicken Sie auf Annehmen.

  15. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den neuen Branchencode zu speichern, und um zum Bildschirm Willkommen bei Business Desk zurückzukehren.

Der neue Branchencode wird gespeichert. Sie können nun verhindern, dass in derselben Website zwei Anzeigenkampagnen unterschiedliche Bücher promoten.

So fügen Sie einen Kampagnenkunden hinzu

  11. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  12. Klicken Sie im Bildschirm Kampagnen-Manager auf der Symbolleiste auf Hinzufügen, und wählen Sie anschließend in der Dropdownliste Neue(r) Kunde/Kundin aus.

  13. Führen Sie im Bildschirm Kampagnen-Manager - Neu (Kunde) im Bereich Kundeneigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie Lucerne Publishing ein.
    Typ | Wählen Sie in der Dropdownliste die Option Werbungstreibender aus.
    Branche | Wählen Sie in der Dropdownliste die Option Bücher aus.

  14. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den neuen Kunden zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Der neue Kunde wird gespeichert und erscheint im Bildschirm Kampagnen-Manager. Sie können nun eine neue Kampagne hinzufügen.

So fügen Sie eine Kampagne hinzu

  1. Wählen Sie im Bildschirm Kampagnen-Manager den Kundennamen Lucerne Publishing aus.

  2. Klicken Sie im Bildschirm Kampagnen-Manager auf der Symbolleiste auf Hinzufügen, und wählen Sie dann in der Dropdownliste Neue Kampagne aus.

  3. Führen Sie im Bereich Kampagneneigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Kampagnenname | Geben Sie Bills Bücher ein.
    Anfangsdatum | Wählen Sie aus dem Dropdownkalender das Datum von gestern aus.
    Beendigungsdatum | Wählen Sie aus dem Dropdownkalender ein Datum aus dem nächsten Monat.
    Status | Wählen Sie in der Dropdownliste die Option Aktiv aus.

  4. Führen Sie im Bereich Werbungs-/Kampagnenzielfestlegung folgende Schritte aus:
    Option/Funktion | Zweck
    Zielsetzung von | Wählen Sie in der Dropdownliste die Option Werbeartikel aus.
    Geplant von | Wählen Sie in der Dropdownliste die Option Anforderungen.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Kampagne zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Die Kampagne "Bills Bücher" wird gespeichert, und ihre Zielfestlegung ist die Werbeartikelebene. Sie können nun eine neue Anzeige erstellen und die Benutzer als Zielgruppe auswählen, bei denen die Anzeige angezeigt werden soll.


Erstellen eines Zielausdrucks

Verwenden Sie das Modul "Kampagnenausdrücke", um die Benutzergruppe zu definieren, die Sie als Ziel der Kampagne auswählen möchten. Sie können eine Anzeigen-, Direktsendungs- oder Preisnachlasskampagne gezielt für diese Gruppe erstellen.

In dieser Lektion werden Sie eine Anzeigenkampagne erstellen, die alle männlichen Kunden als Zielgruppe wählt. Sie haben die Geschlechtseigenschaft in der Lektion "Erstellen eines Sitebegriffs" festgelegt, sodass Sie die Geschlechtsprofileigenschaft nun für die Zielgruppenadressierung der Anzeige verwenden können.

Anmerkung

  • In dieser Lektion ist ein Bild aus dem Ordner der Retail-Site erforderlich, um die Anzeige anzeigen zu können.

So kopieren Sie Bilddateien in Ihre Site

  • Kopieren Sie die Bilddatei im Ordner \Tutorial im Stammverzeichnis der CD-ROM in den Ordner Laufwerk:\Inetpub\wwwroot\Retail\Images.

So erstellen Sie einen Zielausdruck

  1. Klicken Sie im Menü Kampagnen auf Kampagnenausdrücke.

  2. Klicken Sie im Bildschirm Kampagnenausdrücke: Zielausdrücke auf der Symbolleiste auf Hinzufügen.

  3. Führen Sie im Dialogfeld Zielausdruck folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie MaennlicheBenutzer ein, und klicken Sie anschließend auf Neu.
    Das Ziel basiert auf den folgenden Bedingungen
    • Erstes Feld - Wählen Sie in der Dropdownliste die Option Benutzerobjekt aus, wählen Sie Allgemeine Informationen, und anschließend Geschlecht aus.

    • Zweites Feld - Wählen Sie in der Dropdownliste die Option ist gleich aus.

    • Drittes Feld - Klicken Sie auf die Auslassungsschaltfläche […], wählen Sie das Sitebegriffstoken Männlich aus, und klicken Sie anschließend auf OK.

  4. Klicken Sie auf Anwenden.

  5. Klicken Sie auf Speichern, um den Ausdruck zu speichern.

Der Ausdruck wurde gespeichert und die Anzeige auf männliche Benutzer ausgerichtet.

So erstellen Sie eine Zielgruppe

  1. Klicken Sie im Menü Kampagnen auf Zielgruppe.

  2. Klicken Sie im Bildschirm Zielgruppe auf der Symbolleiste auf Hinzufügen.

  3. Führen Sie im Bildschirm Neue Zielgruppe: Neu folgende Schritte aus:
    Option/Funktion | Zweck
    Zielgruppenname | Geben Sie MännlicheGruppe ein, und klicken Sie anschließend auf Neu.
    Ausdruck | Wählen Sie in der Dropdownliste die Option MännlicheBenutzer aus.
    Aktion | Wählen Sie in der Dropdownliste die Option Erforderlich aus.

  4. Klicken Sie auf Annehmen.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Zielgruppe zu speichern und zum Bildschirm Zielgruppe zurückzukehren.

Die Zielgruppe wurde mithilfe des Zielausdrucks MännlicheBenutzer erstellt.

So erstellen Sie eine neue Anzeige

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Klicken Sie im Bildschirm Kampagnen-Manager auf die Pfeiltaste neben der Kampagne Lucerne Publishing, und wählen Sie anschließend Bills Bücher aus.

  3. Klicken Sie im Bildschirm Kampagnen-Manager auf der Symbolleiste auf Hinzufügen, und wählen Sie in der Dropdownliste anschließend Neue Anzeige aus.

  4. Führen Sie im Bildschirm Kampagnen-Manager - Lucerne Publishing - Bills Bücher - Neu (Anzeige) im Bereich Anzeigeneigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Anzeigenname | Geben Sie ZielMänner ein.
    Status | Wählen Sie in der Dropdownliste die Option Aktiv aus.
    Typ | Wählen Sie in der Dropdownliste die Option Bezahlte Anzeige aus.
    Anforderungen | Geben Sie 1000 ein.
    Anzeigelimit | Wählen Sie in der Dropdownliste die Option Keine aus.
    Branche | Wählen Sie in der Dropdownliste die Option Bücher aus.

  5. Führen Sie im Bereich Anzeigenziel folgende Schritte aus:
    Option/Funktion | Zweck
    Seitengruppen | Aktivieren Sie unbedingt das Kontrollkästchen Auf allen Seitengruppen anzeigen, damit die Anzeige auf allen Webseiten der Retail-Site erscheint.
    Zielgruppen: Verfügbar | Wählen Sie MännlicheGruppe, und klicken Sie anschließend auf Hinzufügen, um die Gruppe in das Feld Zugewiesen zu verschieben.

  6. Führen Sie einen Bildlauf nach unten durch, und führen Sie im Bereich Anzeigendarstellung folgende Schritte aus:
    Option/Funktion | Zweck
    Größe | Wählen Sie in der Dropdownliste die Option Ganzes Banner aus.
    Typ | Wählen Sie in der Dropdownliste die Option Bild aus.
    Bild-URL | Geben Sie folgenden URL ein: http://Computername/Retail/Images/MSPress.gif.
    Ziel-URL | Geben Sie http://MSPress.Microsoft.com ein.

Die Anzeige ist nun definiert. Jetzt können Sie die Anzeige in der Vorschau betrachten, bevor Sie sie in die Produktion senden.

So zeigen Sie die Anzeige in der Vorschau an

  1. Klicken Sie im Bereich Anzeigendarstellung auf Vorschau.

  2. Wählen Sie im Dialogfeld Vorschau die Option Ja, um das Kampagnenelement zu speichern.

    Im Anzeigebereich unterhalb der Schaltfläche Vorschau wird eine Kopie der Anzeige angezeigt.

  3. Klicken Sie auf der Symbolleiste auf Zurück, um zum Bildschirm Kampagnen-Manager zurückzukehren.

So überprüfen Sie den Status der zielgerichteten Anzeige

  1. Klicken Sie im Bildschirm Kampagnen-Manager auf der Symbolleiste auf Suchen.

  2. Wählen Sie im Bildschirm Suchen im Feld Status die Option Alle in der Dropdownliste.

  3. Klicken Sie auf Suchen.

  4. Klicken Sie in der Liste Gefilterte Ansicht auf den Pfeil neben Lucerne Publishing. Klicken Sie anschließend auf den Pfeil neben Bills Bücher, um sicherzustellen, dass die zielgerichtete Anzeige erscheint.

Der Status der zielgerichteten Anzeige ist aktiv.

So aktualisieren Sie eine Kampagne in der Website

  1. Klicken Sie im Menü Kampagnen auf Kampagnen veröffentlichen.

  2. Wählen Sie im Bildschirm Kampagnen veröffentlichen in der Liste Produktionsartikel die Option advertising.

  3. Klicken Sie auf der Symbolleiste auf Katalog veröffentlichen, um die Kampagne zu aktualisieren.

Die Anzeigenkampagne wird aktualisiert und kann nun gezielt die männlichen Benutzer der Retail-Site ansprechen.

Überprüfen der Site

So überprüfen Sie die Änderungen in der Retail-Site

  1. Geben Sie in der Adressenzeile von Internet Explorer http://Computername/retail ein, um die Retail-Site zu öffnen.

  2. Klicken Sie unterhalb von Anmeldung auf Anmeldung, und führen Sie anschließend folgende Schritte aus:
    Option/Funktion | Zweck
    Benutzername | Geben Sie JanineBenutzer ein.
    Kennwort | Geben Sie kennwort ein.

  3. Klicken Sie auf Absenden.

    Die Anzeige erscheint diesmal nicht in der Retail-Site, da ihre Zielgruppe ja männliche Benutzer sind.

  4. Schließen Sie das Browserfenster.

  5. Geben Sie in der Adressenzeile von Internet Explorer http://Computername/Retail ein, um die Retail-Site erneut zu öffnen.

  6. Klicken Sie unterhalb von Anmeldung auf Anmeldung, und führen Sie anschließend folgende Schritte aus:
    Option/Funktion | Zweck
    Benutzername | Geben Sie JörgBenutzer ein.
    Kennwort | Geben Sie kennwort ein.

  7. Klicken Sie auf Absenden.

    Die Anzeige erscheint nun in der Retail-Site, da ihre Zielgruppe männliche Benutzer sind.

  8. Schließen Sie das Browserfenster.


Erstellen einer Preisnachlasskampagne

Nachdem Sie eine Kampagne erstellt haben, können Sie mithilfe des Kampagnen-Manager-Moduls einen Preisnachlass erstellen. Sie können das Produkt festlegen, auf das der Preisnachlass angewendet wird, den Betrag für den Preisnachlass angeben und bestimmen, wie viele Artikel ein Benutzer kaufen muss, bevor er den angegebenen Preisnachlass erhält.

In dieser Lektion werden Sie eine siteübergreifende Preisnachlasskampagne erstellen, die allen Benutzern einen Preisnachlass von 20 Prozent anbietet.

So erstellen Sie einen Preisnachlasskampagnenartikel

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Klicken Sie im Bildschirm Kampagnen-Manager auf den Pfeil neben Lucerne Publishing, wählen Sie Bills Bücher, klicken Sie auf der Symbolleiste auf Hinzufügen, und wählen Sie anschließend in der Dropdownliste die Option Neuer Preisnachlass.

  3. Führen Sie im Bildschirm Kampagnen-Manager - Lucerne Publishing - Bills Bücher - Neu (Preisnachlass) im Bereich Preisnachlasseigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Preisnachlassname | Geben Sie 20% siteübergreifender Preisnachlass ein.
    Status | Wählen Sie in der Dropdownliste die Option Aktiv aus.
    Anfangsdatum | Wählen Sie im Dropdownkalender das heutige Datum aus.
    Beendigungsdatum | Wählen Sie im Dropdownkalender das Datum zwei Monate ab dem heutigen Tag aus.

  4. Führen Sie anschließend im Bereich Preisnachlassdefinition folgende Schritte aus:
    Option/Funktion | Zweck
    Kaufen: Alles | Aktivieren Sie dieses Kontrollkästchen, um den Preisnachlass auf alle Produkte anzuwenden.
    Abrufen
    • Erstes Feld – Stellen Sie sicher, dass für die betreffende Anzahl von Artikeln die Option Unbegr. aktiviert ist.

    • Zweites Feld - Wählen Sie in der Dropdownliste die Option [Jedes Produkt] aus.

    • Drittes Feld - Wählen Sie in der Dropdownliste die Option Prozent (%) aus.

    • Viertes Feld – Geben Sie die Zahl 20 ein.

  5. Führen Sie im Bereich Preisnachlassanzeige folgende Schritte aus:
    Option/Funktion | Zweck
    Warenkorbanzeige | Geben Sie 20% Preisnachlass gilt ein.
    Inhaltsgröße | Wählen Sie in der Dropdownliste die Option Halbes Banner aus.
    Inhaltstyp | Wählen Sie die Option Bild aus.
    Bild-URL | Geben Sie folgenden URL ein: http://Computername/Retail/Images/MSPress.gif.
    Ziel-URL | Geben Sie http://MSPress.Microsoft.com ein.

  6. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den Preisnachlass zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

In der Retail-Site wird nun auf alle Produkte ein Preisnachlass von 20 Prozent gewährt.

So senden Sie die Preisnachlasskampagne zur Produktion

  1. Klicken Sie im Menü Kampagnen auf Kampagnen veröffentlichen.

  2. Wählen Sie im Bildschirm Kampagnen veröffentlichen die Preisnachlassoption (discounts), und klicken Sie dann auf der Symbolleiste auf Katalog veröffentlichen.

Die Preisnachlasskampagne wird zur Produktion gesendet.

Überprüfen der Site

So überprüfen Sie die Änderungen in der Retail-Site

  1. Geben Sie in der Adressenzeile von Internet Explorer http://Computername/Retail ein, um die Retail-Site zu öffnen.

  2. Klicken Sie im linken Bereich unter der Option Anmeldung auf Anmeldung, und führen Sie anschließend folgende Schritte aus:
    Option/Funktion | Zweck
    Benutzername | Geben Sie JörgBenutzer ein.
    Kennwort | Geben Sie kennwort ein.

  3. Klicken Sie auf Absenden.

  4. Klicken Sie auf die Kategorie Meine Bücher auf Businessbücher, und wählen Sie das Buch Digitales Business. Wettbewerb im Informationszeitalter.

Der Preis für das Buch beträgt $ 19,99.

  5. Klicken Sie auf die Option Zum Warenkorb hinzufügen.

  6. Klicken Sie in der Kopfzeile des Bildschirms auf Warenkorb.

    Auf den Endpreis wird ein Preisnachlass von $ 4,00 gewährt. Dies entspricht einem Nachlass von 20 Prozent auf den Einzelpreis.

  7. Schließen Sie das Browserfenster.


Importieren einer Protokolldatei

Sie haben die Möglichkeit, Protokolldateien mit Daten zur Benutzer- und Serveraktivität für Ihre Site in das Datawarehouse zu importieren und Berichte über die importierten Daten auszuführen. Vor dem Import der Protokolldateien müssen Sie die Site auswählen, von welcher die Protokolldateien importiert werden sollen. Darüber hinaus müssen Sie angeben, welche Protokolldateien Sie importieren möchten.

Nachdem die Ereignisdaten der Webprotokolle in das Datawarehouse importiert wurden, können Sie einen DTS-Task (Data Transformation Service) ausführen, um die Beschreibungsdaten der Kampagnenartikel zu laden (z. B. Preisnachlassname). Anschließend lässt sich damit ein Bericht erstellen.

In dieser Lektion werden Sie eine Protokolldatei in das Datawarehouse importieren und den Prozess ausführen, mit dem ein DTS-Task importiert wird. Für den Import eines Siteprotokolls ist Microsoft SQL Server Enterprise Manager erforderlich.

Anmerkung

  • Normalerweise werden die Aufgaben dieser Lektion vom Systemadministrator ausgeführt.

So synchronisieren Sie das Datawarehouse mit Ihrer Anwendung

  1. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft SQL Server. Klicken Sie anschließend auf Enterprise Manager.

  2. Erweitern Sie im linken Bereich Microsoft SQL Server>SQL Server-Gruppe >(Servername)>Data Transformation Services, und wählen Sie Lokale Pakete.

  3. Klicken Sie im Menü Aktion auf Neues Paket.

    Das Fenster DTS-Paket <Neues Paket> erscheint.

  4. Klicken Sie im Menü Task auf Konfigurationssynchronisation (Commerce Server).

  5. Wählen Sie im Dialogfeld Eigenschaften von DW-Synchronisierung im Feld Sitename die Option Retail aus der Dropdownliste aus, und klicken Sie anschließend auf OK.

So importieren Sie die Webprotokolldateien

  1. Klicken Sie im Menü Task auf Import von Webserverprotokollen (Commerce Server).

  2. Wählen Sie im Dialogfeld Webserverprotokolle importieren im Feld Sitename die Option Retail aus der Dropdownliste aus. Wählen Sie unter Anwendung die Anwendung retail, retailBizDesk aus.

  3. Geben Sie im Feld Protokolldateipfad den Pfad Laufwerk:\Winnt\System32\LogFiles\W3svc1 ein, und klicken Sie anschließend auf OK.

So importieren Sie die Benutzerprofildaten

  1. Klicken Sie im Menü Task auf Import von Benutzerprofildaten (Commerce Server).

  2. Wählen Sie im Dialogfeld Benutzerimporteigenschaften im Feld Sitename die Option Retail in der Dropdownliste, und klicken Sie anschließend auf OK.

So füllen Sie die OLAP-Cubes mit den Importdaten

  1. Klicken Sie im Menü Task auf Berichtsvorbereitung (Commerce Server).

  2. Vergewissern Sie sich, dass im Dialogfeld Berichtseigenschaften vorbereiten im Feld Sitename die Option Retail aktiviert ist, und klicken Sie anschließend auf OK.

So führen Sie die vier DTS-Tasks aus

  1. Wählen Sie das Symbol Konfigurationssynchronisation, das im Fenster DTS-Paket <Neues Paket> angezeigt wird, halten Sie die UMSCHALTTASTE gedrückt, und klicken Sie anschließend auf das Symbol Berichtsvorbereitung.

    Alle vier Symbole für die Commerce Server DTS-Tasks werden ausgewählt.

  2. Klicken Sie im Menü Workflow auf Bei Beendigung.

  3. Klicken Sie im Menü Paket auf Ausführen.

    In einem Fortschrittsdialogfeld wird die Ausführung der Tasks angezeigt.

  4. Nach der erfolgreichen Taskausführung wird das Dialogfeld Paketausführungsergebnisse angezeigt. Klicken Sie auf OK.

  5. Schließen Sie das Fenster DTS <Neues Paket>, ohne das Paket zu speichern.

  6. Schließen Sie SQL Server Enterprise Manager.

Die Daten werden in das Datawarehouse importiert.


Ausführen eines dynamischen Berichts

Commerce Server 2000 bietet ungefähr 50 Standardberichte, die Sie verwenden können, sobald Sie eine Verbindung zu einer Datenquelle herstellen. Sie können sowohl dynamische als auch statische Berichte im Berichtsmodul ausführen oder die automatische und regelmäßige Ausführung von Berichten planen. Dynamische Berichte werden in Sekundenschnelle ausgeführt und erscheinen unmittelbar in einem eigenen Fenster als PivotTable.

In dieser Lektion richten Sie Ihre Internetoptionen so ein, dass der Zugriff auf Datenquellen über Domänen hinweg aktiviert wird. Anschließend führen Sie einen dynamischen Zusammenfassungsbericht über die täglichen Siteverwendung aus.

So greifen Sie über Domänen hinweg auf Datenquellen zu

  1. Klicken Sie in Internet Explorer auf Extras, und klicken Sie anschließend auf Internetoptionen.

  2. Führen Sie auf der Registerkarte Sicherheit folgende Schritte aus:
    Option/Funktion | Zweck
    Stufe anpassen | Klicken Sie hierauf, um die Optionen der Sicherheitseinstellungen anzuzeigen.
    Verschiedenes>Auf Datenquellen über Domänengrenzen hinweg zugreifen | Wählen Sie Aktivieren aus.
    Subframes zwischen verschiedenen Domänen bewegen | Wählen Sie Aktivieren aus.

  3. Klicken Sie im Dialogfeld Internetoptionen auf OK.

  4. Klicken Sie im Bestätigungsdialogfeld auf Ja, und klicken Sie im Dialogfeld Internetoptionen erneut auf OK.

  5. Schließen Sie das Browserfenster.

So führen Sie den Zusammenfassungsbericht zur täglichen Verwendung aus

  1. Klicken Sie im Menü Analyse auf Berichte.

  2. Klicken Sie im Bildschirm Berichte auf der Symbolleiste auf Suchen.

  3. Führen Sie im Bildschirm Suchen folgende Schritte aus:
    Option/Funktion | Zweck
    Suchen nach | Wählen Sie in der Dropdownliste die Option Name aus.
    Name | Geben Sie Zusammenfassung der Verwendung ein.

  4. Klicken Sie auf Suchen.

  5. Wählen Sie im Bildschirm Suchen den Bericht Zusammenfassung der Verwendung pro Wochentag aus, und klicken Sie anschließend auf der Symbolleiste auf Bericht ausführen.

Der Bericht wird in einem neuen Fenster als PivotTable angezeigt.

So speichern Sie den Bericht

  1. Klicken Sie im PivotTable-Fenster auf das Symbol Bericht speichern.

  2. Geben Sie im Feld Berichtsname den Namen Tägliche Verwendungszusammenfassung ein, und klicken Sie anschließend auf OK.

  3. Schließen Sie das Browserfenster.


Ausführen eines statischen Berichts

Statische Berichte werden im Berichtsmodul ausgeführt. Die Ausführung von statischen Berichten kann einige Zeit in Anspruch nehmen. Während der Ausführung eines statischen Berichts steht das Berichtsmodul jedoch für die Ausführung weiterer Berichte zur Verfügung. Im Abgeschlossene Berichte-Modul können Sie den Status des ausgeführten Berichts überprüfen und den Bericht nach seiner Fertigstellung anzeigen.

In dieser Lektion werden Sie einen statischen Bericht ausführen und ihn anschließend im Abgeschlossene Berichte-Modul anzeigen.

So führen Sie einen statischen Bericht aus

  1. Klicken Sie im Menü Analyse auf Berichte.

  2. Klicken Sie im Bildschirm Berichte auf der Symbolleiste auf Suchen.

  3. Führen Sie im Bildschirm Suchen folgende Schritte aus:
    Option/Funktion | Zweck
    Suchen nach | Wählen Sie in der Dropdownliste die Option Name aus.
    Name | Geben Sie Eigenschaften von registriertem Benutzer ein, und klicken Sie anschließend auf Suchen.
    Namensliste | Wählen Sie Eigenschaften von registriertem Benutzer.

  4. Klicken Sie auf der Symbolleiste auf Bericht ausführen.

  5. Klicken Sie im Dialogfeld Bericht ausführen auf OK, um die Standardeinstellungen zu übernehmen.

Der Bericht wird ausgeführt und erscheint nun im Abgeschlossene Berichte-Modul.

So zeigen Sie den abgeschlossenen Bericht an

  1. Klicken Sie im Menü Analyse auf Abgeschlossene Berichte.

  2. Wählen Sie im Bildschirm Abgeschlossene Berichte im Listenfeld Name die Option Eigenschaften von registriertem Benutzer aus.

  3. Klicken Sie auf Öffnen, um den Bericht zu öffnen.

    Der Bericht "Eigenschaften von registriertem Benutzer" wird angezeigt.

  4. Schließen Sie das Browserfenster.


Exportieren eines statischen Berichts

Das Listen-Manager-Modul ermöglicht die Erstellung und Verwaltung von Sitebenutzerlisten. Nach dem Import einer Liste in Listen-Manager können Sie eine Adressenliste erstellen. Mit dieser Liste lassen sich in Direct Mailer Nachrichten erstellen und an ausgewählte Empfänger der Liste versenden.

In dieser Lektion exportieren Sie den Bericht "Eigenschaften von registriertem Benutzer" in den Listen-Manager. Sie werden jedoch keine Direktsendungen verschicken.

So exportieren Sie einen statischen Bericht in den Listen-Manager

  1. Klicken Sie im Menü Analyse auf Berichte.

  2. Klicken Sie im Bildschirm Berichte auf der Symbolleiste auf Suchen.

  3. Führen Sie im Bildschirm Suchen folgende Schritte aus:
    Option/Funktion | Zweck
    Suchen nach | Wählen Sie in der Dropdownliste die Option Name aus.
    Name | Geben Sie Eigenschaften von registriertem Benutzer ein, und klicken Sie anschließend auf Suchen.
    Namensliste | Wählen Sie Eigenschaften von registriertem Benutzer aus.

  4. Klicken Sie auf Exportieren, um den Bericht zu exportieren.

  5. Klicken Sie im Dialogfeld Bericht ausführen auf OK, um die Standardeinstellungen zu übernehmen.

  6. Führen Sie im Dialogfeld Bericht als Liste exportieren folgende Schritte aus:
    Option/Funktion | Zweck
    Listentyp | Wählen Sie die Option Statisch aus.
    Listenname | Geben Sie Benutzereigenschaften ein.

  7. Klicken Sie auf OK.

Die Benutzereigenschaftenliste wird nun im Listen-Manager-Modul unter Kampagnen angezeigt. Mithilfe der Liste lässt sich nun eine Direktsendungskampagne erstellen.


Erstellen einer Direktsendungskampagne

Direktsendungskampagnen sind eine Möglichkeit, die Benutzer zum Betrachten Ihrer Anzeigen zu bewegen. Mithilfe der Adressenlisten in Listen-Manager kann eine Direktsendungskampagne zielgerichtet für bestimmte Benutzer erstellt werden. Mit diesen Listen lassen sich Direktsendungsaufträge ausführen, die zur erfolgreichen Zielgruppenadressierung Ihrer Benutzer durch Anzeigen eingesetzt werden können.

In dieser Lektion erstellen Sie eine Direktsendungskampagne. Diese basiert auf der Liste Benutzereigenschaften, die Sie in der vorherigen Lektion aus dem statischen Bericht in den Listen-Manager exportiert haben.

So erstellen Sie eine Direktsendungskampagne

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Doppelklicken Sie im Bildschirm Kampagnen-Manager auf Lucerne Publishing, und wählen Sie anschließend die Kampagne Bills Bücher aus.

  3. Klicken Sie auf der Symbolleiste auf Hinzufügen, und wählen Sie anschließend in der Dropdownliste die Option Neue Direktsendung aus.

  4. Führen Sie im Bildschirm Direktsendungseigenschaften im Bereich Direktsendungsartikel folgende Schritte aus:
    Option/Funktion | Zweck
    Direktsendungsname | Geben Sie ZielMail ein.
    Nachricht von E-Mail-Adresse | Geben Sie als Absender WebMaster@BooksGalore ein.
    Betreff | Geben Sie Gute Neuigkeiten für unsere Kunden ein.
    Dateipfad oder URL, der den Nachrichtentext enthält | Geben Sie http://www.Microsoft.com ein.
    Adressenliste | Wählen Sie in der Dropdownliste die Option Benutzereigenschaften aus.
    Direktsendung für Benutzer personalisieren | Deaktivieren sie das Kontrollkästchen.
    Mailformat | Wählen Sie in der Dropdownliste die Option MHTML aus.

  5. Führen Sie im Bildschirm Mailzeitplan folgende Schritte aus:
    Option/Funktion | Zweck
    Anfangsdatum | Geben Sie das heutige Datum ein.
    Anfangszeit Wählen Sie die nächste volle Stunde aus.

    Wenn es jetzt beispielsweise 11:45 ist, wählen Sie 12:00 aus.
    Versandintervall | Stellen Sie sicher, dass Einmalig angezeigt wird.

  6. Wählen Sie im Bereich Test im Feld Testliste aus der Dropdownliste den Eintrag Benutzereigenschaften aus.

  7. Klicken Sie auf Testnachricht versenden.

  8. Klicken Sie im Meldungsdialogfeld auf OK.

  9. Klicken Sie auf Speichern und zurück, um die Direktsendungskampagne zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Die Direktsendungskampagne wird zum Kampagnen-Manager hinzugefügt.

Überprüfen der Site

So überprüfen Sie, ob die Testsendung gesendet wurde

  • Navigieren Sie auf Ihrem lokalen Computer zum Verzeichnis DML_drop. Gehen Sie im Windows Explorer zur Datei Laufwerksbuchstabe:\Programme\Microsoft Commerce Server\DML_drop.

Die EML-Datei, die die Direktsendungsnachricht enthält, wird angezeigt.

So zeigen Sie die Testnachricht an

  1. Doppelklicken Sie auf die EML-Datei.

  2. Überprüfen Sie folgende Punkte:
    Element | Enthält
    Von: WebMaster@BooksGalore.com
    An: Ihre E-Mail-Adresse
    Betreff: Gute Neuigkeiten für unsere Kunden
    Nachrichtentextfeld | Homepage von Microsoft.com

Anmerkung

  • Wiederholen Sie die Schritte 1 bis 3 zur festgelegten Startzeit, um zu überprüfen, ob die geplante Mail gesendet wurde.


Business-To-Business-Lernprogramm

Das Business-To-Business-Lernprogramm (SupplierAD) von Business Desk enthält leicht verständliche Anleitungen für die Verwendung von Commerce Server-Funktionen zum Importieren von Katalogen, zum Hinzufügen von Handelspartnern zu Ihrer Site, zum Hinzufügen von Benutzern und zur Verwaltung von Profilen.

Das SupplierAD-Lernprogramm enthält die unten aufgeführten Lektionen für die SupplierAD-Lösungssite. Den Speicherort Ihrer SupplierAD-Lösungssite erfahren Sie von Ihrem Systemadministrator. Die Lektionen sollten in der folgenden Reihenfolge ausgeführt werden. Jede Lektion baut auf den vorhergehenden Lektionen auf:

  • Hinzufügen einer Versandart

  • Importieren eines Katalogs

  • Erstellen eines Katalogsatzes

  • Erstellen einer Organisation

  • Erstellen eines Benutzers

  • Erstellen eines Sitebegriffs

  • Hinzufügen eines Benutzers mit einem neuen Profil


Hinzufügen einer Versandart

Die Auftragsmodule von Commerce Server Business Desk ermöglichen die Anzeige von Informationen zum Auftragsstatus, das Hinzufügen und Ändern von Versandarten sowie das Einrichten von Steuersätzen für unterschiedliche Länder, Bundesländer und Regionen.

In dieser Lektion werden Sie Versandkosten nach Zwischensumme hinzufügen.

So fügen Sie Versandkosten hinzu

  1. Öffnen Sie SupplierAD Business Desk entweder über das Menü Start oder vom Desktop aus.

  2. Klicken Sie im Menü Bestellungen auf Versandarten.

  3. Klicken Sie im Bildschirm Versandarten auf der Symbolleiste auf Hinzufügen, und wählen Sie anschließend in der Dropdownliste die Option Gebühr nach Zwischensumme aus.

  4. Führen Sie im Bildschirm Nach Zwischensumme berechnen - Neu im Bereich Versandarteigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie Vigor Airlines ein.
    Beschreibung | Geben Sie Wir versenden alles ein.
    Aktiviert | Stellen Sie sicher, dass das Kontrollkästchen Versandart aktiviert aktiviert ist.

  5. Klicken Sie im Bereich Tarife auf Neu, und führen Sie anschließend folgende Schritte aus:
    Option/Funktion | Zweck
    Preis bis zu | Geben Sie 10 ein.
    Versandkosten | Geben Sie 5 ein.

  6. Klicken Sie auf Annehmen, und klicken Sie anschließend auf Neu, um weitere Versandkosten hinzuzufügen.

  7. Führen Sie im Bereich Tarife folgende Schritte aus:
    Option/Funktion | Zweck
    Preis bis zu | Geben Sie 20 ein.
    Versandkosten | Geben Sie 10 ein.

  8. Klicken Sie auf Annehmen.

  9. Führen Sie im Bereich Tarife folgende Schritte aus:
    Option/Funktion | Zweck
    Preis bis zu | Doppelklicken Sie auf über 20.
    Versandkosten | Geben Sie 15 ein.

  10. Klicken Sie auf Annehmen, um die Versandkosten für über 20 hinzuzufügen.

  11. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Versandkosten zu speichern und zum Bildschirm Versandarten zurückzukehren.

Die Versandkosten werden gespeichert und bei allen Käufen in der Website angewendet.


Importieren eines Katalogs

Verwenden Sie das Katalog-Editor-Modul, um mit Kategorien und Katalogen zu arbeiten. Sie können Kategorien und Kataloge erstellen, ändern und löschen. Sie können mithilfe des Katalog-Editors auch Kataloge importieren. Sie können einen Katalog entweder aus einer XML-(Extensible Markup Language)- oder einer CSV-Datei (trennzeichengetrennt) importieren.

In dieser Lektion werden Sie eine XML-Katalogdatei importieren.

So kopieren Sie XML-Katalogdateien in den Ordner "Catalogs"

  1. Kopieren Sie die Datei Hardwarefull.xml im Ordner \Tutorial im Stammverzeichnis der CD-ROM in den Ordner Laufwerk:\Inetpub\wwwroot\SupplierADBizDesk\Catalogs.

So importieren Sie eine XML-Katalogdatei

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Klicken Sie im Bildschirm Katalog-Editor auf der Symbolleiste auf Importieren, und wählen Sie dann in der Dropdownliste XML-Datei importieren aus.

  3. Führen Sie im Dialogfeld XML-Katalog importieren folgende Schritte aus:
    Option/Funktion | Zweck
    Dateiname | Geben Sie Laufwerk:\Inetpub\wwwroot\SupplierADBizDesk\Catalogs\Hardwarefull.xml ein.
    Vorhandene Daten im Katalog löschen | Stellen Sie sicher, dass dieses Kontrollkästchen nicht aktiviert ist.

  4. Klicken Sie auf OK.

Der Hardwarekatalog wurde importiert und ist nun in der SupplierAD-Site verfügbar.

Anmerkung

  • Der Katalog erscheint noch nicht im Katalog-Editor im Feld Name.

    Verwenden Sie das Katalog-Editor-Modul, um den Katalog zu aktualisieren und in Ihrer Website zu veröffentlichen. Jedesmal, wenn Sie Änderungen im Katalog vorgenommen haben, müssen Sie ihn aktualisieren und in der Website veröffentlichen, um sicherzustellen, dass die Änderungen auch in der Website eingetragen werden.

So aktualisieren und veröffentlichen Sie den Katalog

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Klicken Sie im Bildschirm Katalog-Editor auf der Symbolleiste auf Katalog veröffentlichen.

Der Katalog wird aktualisiert und in der Website veröffentlicht.


Erstellen eines Katalogsatzes

Katalogsätze sind eine Untermenge Ihrer Produktkataloge. Sie können mithilfe des Katalogsätze-Moduls von Commerce Server Business Desk Katalogsätze erstellen und sie anschließend einem bestimmten Benutzer oder einer durch ein Benutzerprofil gebildeten Benutzergruppe zuweisen.

In dieser Lektion werden Sie einen Katalogsatz mit dem Namen WWSpecial erstellen.

So erstellen Sie einen Katalogsatz

  1. Klicken Sie im Menü Kataloge auf Katalogsätze.

  2. Klicken Sie im Bildschirm Katalogsätze auf der Symbolleiste auf Hinzufügen und führen Sie folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie WWSpecial ein.
    Beschreibung | Geben Sie Spezialkatalogsatz für weltweite Importeure ein.
    Verfügbare Kataloge | Wählen Sie Hardware aus.

  3. Klicken Sie auf Hinzufügen, um den Katalog Hardware in das Feld Zugewiesene Kataloge zu verschieben.

  4. Klicken Sie auf Speichern und zurück, um den Katalogsatz zu speichern und zum Bildschirm Katalogsätze zurückzukehren.

Der Katalogsatz WWWSpecial wird mit dem Hardwarekatalog gespeichert.


Erstellen einer Organisation

Verwenden Sie das Organisationsmodul, um Organisationen zu erstellen oder zu ändern. Sie können dieses Modul auch verwenden, um Handelspartner zu Ihrer Site hinzuzufügen und Informationen über die Partner anzugeben, wie den Namen des wichtigsten Ansprechpartners, die Adresse, die Telefonnummer, den Auftragsbestätigungsprozess, die Kostenstelle und Preisnachlässe.

In dieser Lektion werden Sie eine Organisation mit dem Namen Weltweite Importeure hinzufügen.

So fügen Sie eine Organisation hinzu

  1. Klicken Sie im Menü Benutzer auf Organisationen.

  2. Klicken Sie im Bildschirm Organisationen auf der Symbolleiste auf Hinzufügen.

  3. Führen Sie im Bildschirm Neue Organisation im Bereich Allgemeine Informationen folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie Weltweite Importeure ein.
    Nummer des Handelspartners | Geben Sie 02 ein.
    Organisationskatalogsatz | Wählen Sie in der Dropdownliste WWSpecial aus.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die neue Organisation mit dem Katalogsatz WWSpecial zu speichern und zum Bildschirm Organisationen zurückzukehren.

Die Organisation Weltweite Importeure wird gespeichert. Für das Unternehmen Weltweite Importeure wird nun in der SupplierAD-Site der Katalogsatz WWSpecial angezeigt.


Erstellen eines Benutzers

Verwenden Sie das Benutzermodul, um registrierte Benutzer zu verwalten - solche Benutzer Ihrer Website, die Ihrer Site bekannt sind, da sie das Formular zur Onlineregistrierung ausgefüllt oder in Ihrer Site ein Benutzerkonto eingerichtet haben.

In dieser Lektion werden Sie drei neue Benutzer für das Unternehmen Weltweite Importeure hinzufügen: einen Administrator, einen delegierten Administrator und einen Benutzer, der kein Administrator ist.

So erstellen Sie einen Administrator

  1. Klicken Sie im Menü Benutzer auf Benutzer.

  2. Klicken Sie im Bildschirm Benutzer auf der Symbolleiste auf Hinzufügen.

  3. Führen Sie im Bildschirm Neuer Benutzer im Bereich Allgemeine Informationen folgende Schritte aus:
    Option/Funktion | Zweck
    Anmeldename | Geben Sie JörgBenutzer ein.
    Benutzerkennwort | Geben Sie kennwort ein.
    E-Mail | Geben Sie Joerg.Benutzer@WWImporteure.com ein.
    Nachname | Geben Sie Benutzer ein.
    Vorname | Geben Sie den Namen Jörg ein.

  4. Führen Sie im Bereich Kontoinformationen folgende Schritte aus:
    Option/Funktion | Zweck
    Organisations-ID | Klicken Sie auf die Auslassungsschaltfläche […], um das Dialogfeld zur Organisationsauswahl zu öffnen.

  5. Führen Sie im Dialogfeld zur Organisationsauswahl folgende Schritte aus:
    Option/Funktion | Zweck
    Name (Suchen) Geben Sie Weltweite Importeure ein und klicken Sie anschließend auf Suchen.

    Weltweite Importeure erscheint im Namensfeld.
    Namensliste | Wählen Sie Weltweite Importeure aus.

  6. Klicken Sie auf OK.

  7. Wählen Sie im Bereich Kontoinformationen im Feld Kontostatus in der Dropdownliste Aktives Konto.

  8. Wählen Sie im Bereich Business Desk im Feld Flags für die Partnerservicerolle aus der Dropdownliste die Option Administrator aus.

  9. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den neuen Benutzer zu speichern und zum Bildschirm Benutzer zurückzukehren.

Der neue Benutzer wird in der Organisation Weltweite Importeure gespeichert.

So erstellen Sie einen delegierten Administrator

  1. Geben Sie in der Adressenzeile von Internet Explorer http://Computername/SupplierAD ein, um die SupplierAD-Site zu öffnen.

  2. Führen Sie im Bildschirm Anmeldung der SupplierAD-Site folgende Schritte aus:
    Option/Funktion | Zweck
    Benutzername | Geben Sie JörgBenutzer ein.
    Kennwort | Geben Sie kennwort ein.

  3. Klicken Sie auf OK.

    Im linken Bereich erscheint Partnerservice.

  4. Klicken Sie im linken Bereich unter Partnerservice auf Benutzer. Klicken Sie anschließend über der Benutzerinformation auf Neu.

  5. Wählen Sie im Bereich Kontoinformationen in der Dropdownliste Kontostatus die Option Aktiv aus.

  6. Wählen Sie im Bereich Business Desk in der Dropdownliste Flags für die Partnerservicerolle den Eintrag Delegierter Administrator aus.

  7. Führen Sie im Bereich Allgemeine Informationen folgende Schritte aus:
    Option/Funktion | Zweck
    Anmeldename | Geben Sie BettinaBenutzer ein.
    Kennwort | Geben Sie kennwort ein.
    E-Mail | Geben Sie Bettina.Benutzer@WWImporteure.com ein.
    Nachname | Geben Sie Benutzer ein.
    Vorname | Geben Sie Bettina ein.

  8. Klicken Sie auf Speichern und anschließend auf Schließen.

    Bettina Benutzer wurde als delegierter Administrator gespeichert.

  9. Schließen Sie das Browserfenster.

So erstellen Sie einen Benutzer, der kein Administrator ist

  1. Geben Sie in der Adressenzeile von Internet Explorer http://Computername/SupplierAD ein, um die SupplierAD-Site zu öffnen.

  2. Führen Sie im Bildschirm Anmeldung der SupplierAD-Site folgende Schritte aus:
    Option/Funktion | Zweck
    Benutzername | Geben Sie BettinaBenutzer ein.
    Kennwort | Geben Sie kennwort ein.

  3. Klicken Sie auf Absenden.

  4. Klicken Sie im linken Bereich unter Partnerservice auf Benutzer und anschließend auf Neu.

  5. Wählen Sie im Bereich Kontoinformationen in der Dropdownliste Kontostatus die Option Aktiv aus.

  6. Wählen Sie im Bereich Business Desk in der Dropdownliste Flags für die Partnerservicerolle den Eintrag Benutzer aus.

  7. Führen Sie im Bereich Allgemeine Informationen folgende Schritte aus:
    Option/Funktion | Zweck
    Anmeldename | Geben Sie BertholdBenutzer ein.
    Kennwort | Geben Sie kennwort ein.
    E-Mail | Geben Sie Berthold.Benutzer@WWImporteure.com ein.
    Nachname | Geben Sie Benutzer ein.
    Vorname | Geben Sie Berthold ein.

  8. Klicken Sie auf Speichern und anschließend auf Schließen.

    Berthold Benutzer wird als einfacher Benutzer gespeichert, der keine Administratorprivilegien besitzt.

  9. Schließen Sie das Browserfenster.

Überprüfen der Site

So vergewissern Sie sich, dass Berthold Benutzer KEIN delegierter Administrator ist

  1. Geben Sie in der Adressenzeile von Internet Explorer http://Computername/SupplierAD ein, um die SupplierAD-Site zu öffnen.

  2. Führen Sie im Bildschirm Anmeldung der SupplierAD-Site folgende Schritte aus:
    Option/Funktion | Zweck
    Benutzername | Geben Sie BertholdBenutzer ein.
    Kennwort | Geben Sie kennwort ein.

  3. Klicken Sie auf Absenden.

    Es werden keine Partnerservices aufgeführt.

  4. Klicken Sie auf die Kategorie Tastaturen.

    Anmerkung

    • Da nur ein Katalog verfügbar ist, zeigt die Site nicht den Katalognamen an, sondern die enthaltenen Kategorien.
  5. Klicken Sie auf Microsoft® Internet Keyboard Pro, führen Sie einen Bildlauf nach unten durch, und geben Sie im Feld Menge die Zahl 5 ein. Klicken Sie anschließend auf Zum Warenkorb hinzufügen.
    Der Gesamtpreis umfasst die Menge von fünf Tastaturen im Warenkorb.

  6. Schließen Sie das Browserfenster.

So vergewissern Sie sich, dass der Warenkorb in Business Desk vorhanden ist

  1. Klicken Sie im Menü Bestellungen auf Warenkorb-Manager.

  2. Wählen Sie im Bildschirm Warenkorb-Manager im Bildschirm Suchen in der Dropdownliste Suchen nach die Option Alle Warenkörbe aus.

  3. Klicken Sie auf Suchen.

Im Bildschirm Suchen wird die Bestellung von Berthold Benutzer angezeigt.


Erstellen eines Sitebegriffs

Mithilfe des Sitebegriffs-Editor-Moduls können Sie dauerhaft gültige Werte für Ihre Site eingeben. Sitebegriffe bieten eine einfache Möglichkeit, die Werte, die innerhalb Ihrer Site verwendet werden, zu standardisieren. Mit Sitebegriffen können Sie zielgerichtet Katalogprodukte, Inhalte und Anzeigen auf bestimmte Benutzer ausrichten.

In dieser Lektion fügen Sie die Sitebegriffe Line und Personal hinzu. Sind die Sitebegriffe einmal erstellt, kann ein Benutzerprofil eingerichtet werden, das diese Sitebegriffe enthält. So lassen sich später Sitebenutzer, die diesem Profil entsprechen, zielgerichtet mit bestimmten Anzeigen adressieren.

So erstellen Sie einen Sitebegriff

  1. Klicken Sie im Menü Benutzer auf die Option Sitebegriffs-Editor.

  2. Klicken Sie im Bildschirm Sitebegriffs-Editor auf Hinzufügen.

  3. Wählen Sie im Dialogfeld Hinzufügen die Option Neue Gruppe hinzufügen aus, und klicken Sie anschließend auf OK.

  4. Führen Sie im Bereich Attribute folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie Firmeninfo ein.
    Angezeigter Name | Geben Sie Firmeninformationen ein.

  5. Klicken Sie auf Übernehmen.

  6. Wählen Sie im Feld Sitebegriffstruktur den Eintrag Firmeninformationen aus, und klicken Sie anschließend auf Hinzufügen.

  7. Wählen Sie im Dialogfeld Hinzufügen die Option Neuen Sitebegriff hinzufügen aus, und klicken Sie anschließend auf OK.

  8. Führen Sie im Bereich Sitebegriffsattribute folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie Jobrolle ein.
    Angezeigter Name | Geben Sie Jobrolle ein.

  9. Klicken Sie im Bereich Begriffe auf Neu, und führen Sie anschließend folgende Schritte aus:
    Option/Funktion | Zweck
    Begriffsname | Geben Sie Line ein.
    Angezeigter Name | Geben Sie Line ein.

  10. Klicken Sie auf Annehmen, und klicken Sie anschließend auf Neu, um einen neuen Sitebegriff hinzuzufügen.

  11. Führen Sie im Bereich Begriffe folgende Schritte aus:
    Option/Funktion | Zweck
    Begriffsname | Geben Sie Personal ein.
    Angezeigter Name | Geben Sie Personal ein.

  12. Klicken Sie auf Annehmen und anschließend auf Übernehmen.

  13. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die neuen Sitebegriffe zu speichern und zum Bildschirm Sitebegriffe zurückzukehren.

Die neuen Sitebegriffe werden gespeichert und können nun zu einem Benutzerprofil hinzugefügt werden.

So fügen Sie einen Sitebegriff zu einem Benutzerprofil hinzu

  1. Klicken Sie im Menü Benutzer auf Profil-Designer.

  2. Wählen Sie im Bildschirm Profile in der Liste Name die Option Benutzerobjekt aus, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Profil: Benutzerobjekt in der Liste Eigenschaften den Eintrag Allgemeine Informationen aus.

  4. Klicken Sie auf Hinzufügen.

  5. Wählen Sie im Dialogfeld Hinzufügen die Option Neue Gruppe hinzufügen aus.

  6. Klicken Sie auf OK.

  7. Führen Sie im Bildschirm Profil: Benutzerobjekt im Bereich Attribute folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie Firmeninfo ein.
    Angezeigter Name | Geben Sie Jobrolle ein.

  8. Klicken Sie auf Übernehmen, und klicken Sie anschließend auf Hinzufügen.

  9. Klicken Sie im Dialogfeld Hinzufügen auf Neue Eigenschaft hinzufügen, und klicken Sie anschließend auf OK.

  10. Führen Sie im Bildschirm Profil: Benutzerobjekt im Bereich Attribute folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie Jobrolle ein.
    Angezeigter Name | Geben Sie Jobrolle ein.
    Typ | Wählen Sie in der Dropdownliste die Option Sitebegriff aus.
    Typverweis | Klicken Sie auf die Auslassungsschaltfläche […], und wählen Sie zunächst Firmeninformationen und anschließend Jobrolle aus.

  11. Klicken Sie auf OK.

  12. Führen Sie im Bereich Erweiterte Attribute folgende Schritte aus:
    Option/Funktion | Zweck
    Aktiv | Vergewissen Sie sich, dass die Option Ja aktiviert ist.
    Daten zuordnen | Klicken Sie auf die Auslassungsschaltfläche […], um das Dialogfeld Datenquellenauswahl zu öffnen.

  13. Wählen Sie im Dialogfeld Datenquellenauswahl die Option Profildienst_SQLQuelle, und wählen Sie anschließend Benutzerobjekt aus. Führen Sie einen Bildlauf nach unten durch, und wählen Sie Benutzerdefinierte Eigenschaft1 (ZEICHENFOLGE) aus.

  14. Klicken Sie auf OK und anschließend auf Übernehmen.

  15. Klicken Sie auf Speichern und zurück, um die Attribute mit dem Benutzerprofil zu speichern und zum Bildschirm Profile zurückzukehren.

Das Benutzerprofil wird mit den Sitebegriffen zur Jobrolle gespeichert.

So aktualisieren Sie das Benutzerprofil

  1. Klicken Sie im Bildschirm Benutzer auf Profile veröffentlichen.

  2. Wählen Sie im Bildschirm Profile veröffentlichen die Anwendung SupplierAD aus, und klicken Sie anschließend auf der Symbolleiste auf Veröffentlichen.

Das Benutzerprofil wird aktualisiert. Nun können Sie zielgerichtet die Benutzer Ihrer Site ansprechen, die diesem Benutzerprofil entsprechen.


Hinzufügen eines Benutzers mit einem neuen Profil

Verwenden Sie das Benutzermodul, um registrierte Benutzer zu verwalten – solche Benutzer Ihrer Website, die Ihrer Site bekannt sind, da sie das Formular zur Onlineregistrierung ausgefüllt oder in Ihrer Site ein Benutzerkonto eingerichtet haben.

In dieser Lektion werden Sie zwei neue Benutzer hinzufügen, die den beiden neuen Sitebegriffen aus der vorherigen Lektion (Line und Personal) entsprechen.

So erstellen Sie den Line-Benutzer

  1. Klicken Sie im Menü Benutzer auf Benutzer.

  2. Klicken Sie im Bildschirm Benutzer auf der Symbolleiste auf Hinzufügen.

  3. Führen Sie im Bildschirm Neue Benutzer des Bereichs Allgemeine Informationen folgende Schritte aus:
    Option/Funktion | Zweck
    Anmeldename | Geben Sie JensBenutzer ein.
    Benutzerkennwort | Geben Sie kennwort ein.
    E-Mail | Geben Sie Jens.Benutzer@WWImporteure.com ein.
    Nachname | Geben Sie Benutzer ein.
    Vorname | Geben Sie Jens ein.
    Jobrolle | Klicken Sie auf Jobrolle, und wählen Sie dann in der Dropdownliste die Option Line aus.

  4. Führen Sie im Bereich Kontoinformationen folgende Schritte aus:
    Option/Funktion | Zweck
    Organisation-ID | Klicken Sie auf die Auslassungsschaltfläche […], um das Dialogfeld zur Organisationsauswahl zu öffnen. Wählen Sie Weltweite Importeure aus, und klicken Sie anschließend auf OK.
    Kontostatus | Wählen Sie in der Dropdownliste die Option Aktives Konto aus.

  5. Wählen Sie im Bereich Business Desk im Feld Flags für die Partnerservicerolle aus der Dropdownliste die Option Normaler Benutzer aus.

  6. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den Benutzer zu speichern und zum Bildschirm Benutzer zurückzukehren.

Jörg Benutzer wurde als Line-Benutzer für die Organisation Weltweite Importeure erstellt.

So erstellen Sie den Personal-Benutzer

  1. Klicken Sie im Menü Benutzer auf Benutzer.

  2. Klicken Sie im Bildschirm Benutzer auf der Symbolleiste auf Hinzufügen.

  3. Führen Sie im Bildschirm Neue Benutzer des Bereichs Allgemeine Informationen folgende Schritte aus:
    Option/Funktion | Zweck
    Anmeldename | Geben Sie JanineBenutzer ein.
    Benutzerkennwort | Geben Sie kennwort ein.
    E-Mail | Geben Sie Janine.Benutzer@WWImporteure.com ein.
    Nachname | Geben Sie Benutzer ein.
    Vorname | Geben Sie Janine ein.
    Jobrolle | Klicken Sie auf Jobrolle, und wählen Sie dann in der Dropdownliste die Option Personal aus.

  4. Führen Sie im Bereich Kontoinformationen folgende Schritte aus:
    Option/Funktion | Zweck
    Organisations-ID | Klicken Sie auf die Auslassungsschaltfläche […], um das Dialogfeld zur Organisationsauswahl zu öffnen. Wählen Sie Weltweite Importeure aus, und klicken Sie anschließend auf .
    Kontostatus | Wählen Sie in der Dropdownliste die Option Aktives Konto aus.

  5. Wählen Sie im Bereich Business Desk im Feld Flags für die Partnerservicerolle aus der Dropdownliste die Option Normaler Benutzer aus.

  6. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den Benutzer zu speichern und zum Bildschirm Benutzer zurückzukehren.

Janine Benutzer wurde als Personal-Benutzer für die Organisation Weltweite Importeure erstellt.


Business Desk-Analyse

Mithilfe der Analysemodule können Daten über die Aktivitäten von Besuchern einer Site analysiert werden. Sie können spezielle Informationen über registrierte Benutzer und auch das Benutzerverhalten von Besuchern der Site analysieren, z. B. wie viel Zeit sie auf einer bestimmten Seite zugebracht oder auf welche Links sie geklickt haben.

Sie können anhand von Berichten diese Daten überprüfen und Benutzersegmente anzeigen. Die in diesen Berichten und Segmenten enthaltenen Informationen können Ihnen dabei helfen, fundierte Entscheidungen über Preisgestaltung, Marketing, Werbung und andere Aspekte des Geschäftsbetriebs zu treffen.

Bevor Sie Analyseberichte ausführen oder mithilfe von Segmenten die Benutzeraktivitäten in Ihrer Website analysieren, muss Microsoft Commerce Server 2000 vom Systemadministrator installiert werden. Außerdem muss der Systemadministrator Webprotokoll-, Transaktions-, Kampagnen-, Benutzer- und Katalogdaten in das Datawarehouse importieren und den Prozess zur Berichtsvorbereitung ausführen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Workflow für die Berichtsverwaltung. Beschreibt die Arbeitsabläufe für das Ausführen, Ändern und Verwalten von Berichten.

  • Workflow für die Segmentanalyse. Beschreibt die Arbeitsabläufe für das Anzeigen und Verwalten von Segmenten und Segmentmodellen im Segment-Viewer-Modul.

  • Informationen zur Analyse. Beschreibt die Komponenten eines Berichts und gibt eine Übersicht über die verschiedenen Berichtsarten. Beschreibt das Segment-Viewer-Modul sowie dessen Verwendung für die Analyse von Aktivitäten in einer Site.

  • Commerce Server-Berichte. Beschreibt die von Commerce Server zur Verfügung gestellten Berichte und deren Eigenschaften und wie in Commerce Server-Berichten die Verarbeitungszeit berücksichtigt wird.

  • Einrichten von Business Analytics. Erläutert die zur Ausführung der Analysefunktionen von Commerce Server erforderlichen Schritte.

  • Suchen von Berichten. Erläutert, wie ein Bericht in der Berichtsliste gesucht wird.

  • Ausführen von Berichten. Erläutert, wie dynamische und statische Berichte ausgeführt werden.

  • Anzeigen von dynamischen Berichten. Erläutert, wie abgeschlossene dynamische Berichte angezeigt werden.

  • Anzeigen von statischen Berichten. Erläutert, wie statische Berichte im Modul "Abgeschlossene Berichte" geöffnet und angezeigt werden.

  • Drucken von Berichten. Erläutert, wie dynamische und statische Berichte vom Browserfenster aus gedruckt werden.

  • Exportieren eines dynamischen Berichts. Erläutert, wie ein dynamischer Bericht zu Microsoft Excel exportiert wird.

  • Exportieren eines statischen Berichts. Erläutert, wie ein statischer Bericht als Liste in das Listen-Manager-Modul exportiert wird.

  • Erstellen eines neuen dynamischen Berichts. Erläutert, wie ein dynamischer Bericht geändert und wie der geänderte Bericht als neuer dynamischer Bericht gespeichert wird.

  • Löschen von Berichten. Erläutert, wie benutzerdefinierte dynamische Berichtsdefinitionen und abgeschlossene statische Berichte gelöscht werden.

  • Anzeigen von Berichtseigenschaften. Erläutert, wie die Eigenschaften von Berichten angezeigt werden.

  • Analysieren von Benutzersegmenten. Erläutert, wie ein Segmentmodell geöffnet, ein Segment oder eine Segmentgruppe angezeigt, zwei Segmente oder Segmentgruppen miteinander verglichen und Segmentdaten in eine Liste exportiert werden.


Workflow für die Berichtsverwaltung

Die nachfolgende Abbildung illustriert ein Beispielszenario für das Ausführen, Ändern und Verwalten von Berichten.

Workflowdiagramm für die Berichtverwaltung
Berichte
Bericht ausführen
Dynamische Berichte anzeigen
Bericht ändern
Parameter konfigurieren

Änderungen speichern, um eine neue dynamische Berichtsdefinition zu erstellen

Statischen Bericht anzeigen
Abgeschlossene Berichte
Browserfenster
Neuen dynamischen Bericht ausführen
Berichte
Dynamisch
Statisch

Beispielszenario für die Ausführung dynamischer Berichte

  1. Führen Sie im Berichtsmodul einen dynamischen Bericht aus.

  2. Zeigen Sie den dynamischen Bericht im Browserfenster an.

  3. Ändern Sie den dynamischen Bericht im Browserfenster.

  4. Speichern Sie im Browserfenster den geänderten dynamischen Bericht als neue Berichtsdefinition.

  5. Führen Sie im Berichtsmodul den neuen dynamischen Bericht aus.

Beispielszenario für die Ausführung statischer Berichte

  1. Führen Sie im Berichtsmodul einen statischen Bericht aus.

  2. Konfigurieren Sie die Parameter des Berichts.

  3. Öffnen Sie im Modul "Abgeschlossene Berichte" den statischen Bericht, und zeigen Sie ihn im Browserfenster an.

  4. Exportieren Sie im Berichtsmodul einen statischen Bericht als Liste.

  5. Konfigurieren Sie die Parameter des Berichts.

  6. Konfigurieren Sie die Liste.

  7. Öffnen Sie im Listen-Manager-Modul die neue Liste.
    Workflow zum Exportieren eines statischen Berichts als Liste
    Berichte
    Einen statischen Bericht exportieren
    Parameter konfigurieren
    Liste konfigurieren
    Neue Liste anzeigen
    Listen-Manager

Beispielszenario für den Export statischer Berichte

  1. Exportieren Sie im Berichtsmodul einen statischen Bericht als Liste.

  2. Konfigurieren Sie die Parameter des Berichts.

  3. Konfigurieren Sie die Liste.

  4. Die neue Liste steht im Listen-Manager-Modul zur Verfügung.


Workflow für die Segmentanalyse

Die folgende Abbildung illustriert ein Beispielszenario für die Anzeige und Verwaltung von Segmenten und Segmentmodellen im Segment-Viewer.

Workflow für den Segment-Viewer
Segment-Viewer
Segmentmodell auswählen
Segmente analysieren und vergleichen
Segment umbenennen und speichern
Zusammenfassungsvergleichsbericht erstellen
Segment in den Listen-Manager exportieren

  1. Markieren Sie im Segment-Viewer-Modul ein Segmentmodell, das angezeigt und analysiert werden soll.

  2. Analysieren Sie das ausgewählte Segment bzw. die ausgewählte Segmentgruppe, um die definierenden Merkmale und die abweichenden Merkmale in Bezug auf andere Segmente oder Segmentgruppen zu bestimmen. Gehen Sie dabei so vor, dass Sie jeweils die Zusammenfassungen anzeigen und diese mit den Informationen anderer Segmente oder Segmentgruppen vergleichen.

  3. Falls notwendig, benennen Sie ein Segment oder eine Segmentgruppe um, damit die Zusammenfassung und die Vergleichsmerkmale sich bereits im Namen widerspiegeln.

  4. Erstellen Sie in Internet Explorer einen Zusammenfassungsbericht über die verglichenen Segmente, und drucken Sie dann diesen Bericht.

  5. Exportieren Sie ein Segment in das Listen-Manager-Modul, um eine Liste der Benutzer in dem Segment zur weiteren Analyse oder zur Verwaltung zu erstellen.

Siehe auch

Informationen zur Analyse


Informationen zur Analyse

Mithilfe des Analysemoduls werden Berichte über die im Datawarehouse gespeicherten Benutzer- und Sitedaten ausgeführt. Anhand der Ergebnisse dieser Berichte kann dann eine Geschäftsanalyse über die Performance einer Website vorgenommen werden. So können Sie z. B. Berichte ausführen, welche die Merkmale Ihrer Benutzer und deren bisheriges Verhalten darstellen, und dann Ihre Site aktualisieren, um diese Benutzer mit Anzeigen oder Produkten gezielt anzusprechen.

Neben der Ausführung von Analyseberichten können Sie auch mithilfe des Segment-Viewers bestimmte Benutzersegmente analysieren. Segmente sind Benutzergruppen mit ähnlichen Merkmalen oder Verhaltensweisen. Diese Segmente werden mithilfe des Segment-Viewer-Moduls analysiert, um bestimmte Merkmale oder Verhaltensweisen zu erkennen, wie beispielsweise Nutzungstrends. Sie können dann die Ergebnisse der Analyse dazu verwenden, um Marketingentscheidungen aufgrund von Ähnlichkeiten unter den Benutzern zu treffen.

Damit Berichte ausgeführt und Segmente analysiert werden können, müssen verschiedene Aufgaben vom Systemadministrator durchgeführt werden. Weitere Informationen finden Sie unter Einrichten von Business Analytics.

Dieser Abschnitt beinhaltet folgende Themen:

  • Berichtsdefinitionen

  • Dimensionen und Measures

  • Dynamische und statische Berichte

  • Benutzerdefinierte Berichte

  • Segmentanalyse


Berichtsdefinitionen

Eine Berichtsdefinition gibt die Struktur eines Berichts wieder und ist nicht mit dem abgeschlossenen Bericht gleichzusetzen. Wenn ein Bericht erneut ausgeführt wird, nachdem neue Daten in das Datawarehouse importiert wurden, enthält die zweite Version des Berichts aktualisierte Daten. Berichte liefern einen "Schnappschuss" der Daten im Datawarehouse.

Das Berichtsmodul enthält zwei Arten von Berichtsdefinitionen: eine Definition für dynamische Berichte und eine für statische Berichte. Informationen über dynamische und statische Berichte finden Sie unter Dynamische und statische Berichte.

Die Berichte im Berichtsmodul sind in die folgenden Kategorien aufgeteilt: Werbung, Produktverkäufe, Webverwendung, Benutzer, Besuche, Diagnose und Abfragezeichenfolgen. Informationen über die im Berichtsmodul verfügbaren Berichtsdefinitionen finden Sie unter Commerce Server-Berichte.

Sie haben die Möglichkeit, benutzerdefinierte dynamische Berichtsdefinitionen zu erstellen. Der Systemadministrator kann benutzerdefinierte dynamische und statische Berichtsdefinitionen erstellen. Sowohl dynamische als auch statische Berichte liefern nach ihrer Ausführung die jeweils festgelegten Ansichten von zusammengefassten Daten aus dem Datawarehouse. Informationen über benutzerdefinierte Berichte finden Sie unter Benutzerdefinierte Berichte.


Dimensionen und Measures

Die in einem Bericht zurückgegebenen Daten werden durch Dimensionen und Measures festgelegt, die in der Berichtsdefinition enthalten sind. Measures sind numerische Werte. Dimensionen sind Geschäftseinheiten, z. B. Farbe, Größe, Produkt oder Zeit. Durch die Kombination von Dimensionen und Measures stellen die Berichtsdefinitionen von Commerce Server mengen- und zeitabhängige Informationen zur Verfügung.

Wenn Sie einen statischen Bericht ausführen, können Sie die Parameter der zurückzugebenden Daten ändern. Sie können z. B. die Daten von nur 25 Benutzern anfordern, die etwas gekauft haben. Die Dimensionen und Measures im Bericht lassen sich jedoch nicht ändern.

Wenn Sie einen dynamischen Bericht aufrufen, wird eine Liste der verfügbaren Dimensionen und Measures in der Feldauswahl des Pivot-Steuerelements angezeigt. Die Dimensionen und Measures eines dynamischen Berichts lassen sich durch Hinzufügen, Entfernen und Ändern ihrer Ausrichtung sowie durch Änderung der im ausgeführten Bericht angezeigten Detailtiefe verändern. Wenn Sie einen abgeschlossenen dynamischen Bericht ändern, können Sie die Berichtsdefinition einschließlich der Änderungen als benutzerdefinierte dynamische Berichtsdefinition speichern.

Siehe auch

Dynamische und statische Berichte

Benutzerdefinierte Berichte

Commerce Server-Berichte


Dynamische und statische Berichte

Commerce Server bietet zwei Berichtsarten:

  • Dynamische Berichte. Sie werden zur Laufzeit erstellt. Bei jeder Ausführung eines dynamischen Berichts werden die neuesten Daten aus dem Datawarehouse zusammengestellt. Nur die Berichtsdefinition, die immer gleich bleibt, wird gespeichert.

  • Statische Berichte. Diese werden unmittelbar nach Anforderung ausgeführt und dann samt Daten im Modul "Abgeschlossene Berichte" gespeichert. Da statische SQL-Berichte asynchron ausgeführt werden, können Sie während der Ausführung mit Commerce Server Business Desk andere Aufgaben erledigen. Statische Berichte mit multidimensionalen Ausdrücken (Multidimensional Expression, MDX) werden nur synchron ausgeführt. Solange diese Berichte nicht abgeschlossen sind, lassen sich keine anderen Aufgaben mit Business Desk ausführen.

Anmerkung

  • Sie können feststellen, ob ein statischer Bericht auf MDX oder SQL basiert, indem Sie die Eigenschaften des Berichts anzeigen. Informationen über das Anzeigen von Berichtseigenschaften finden Sie unter Anzeigen von Berichtseigenschaften.

Features von dynamischen und statischen Berichten

Dynamische Berichte

PivotTables

PivotTable-Feldliste

Ausgeblendete Dimensionen

PivotCharts

Statische Berichte

Features von dynamischen und statischen Berichten

In der folgenden Tabelle werden die Unterschiede zwischen statischen und dynamischen Berichten aufgeführt.

Feature | Dynamischer Bericht | Statischer Bericht
Steuerung des Umfangs der Berichtsergebnisse | Der Umfang von Berichtsergebnissen wird durch Unterdrücken der Anzeige von Detaildaten gesteuert. | Der Umfang von Berichtsergebnissen wird durch Einschränken der in den Bericht einzubeziehenden Zeilen gesteuert.
Änderungen am Inhalt des Berichts | Mithilfe der PivotTable-Features können Dimensionen und Measures zu Berichtsergebnissen hinzugefügt bzw. aus ihnen entfernt werden. | Der Systemadministrator ändert statische Berichte programmatisch. Anleitungen über das Ändern von statischen Berichten finden Sie unter "Erstellen benutzerdefinierter Berichte" in der Hilfe zu Commerce Server 2000.
Export von Berichtsergebnissen direkt in den Listen-Manager | Die Ergebnisse eines dynamischen Berichts können nicht in den Listen-Manager exportiert werden. | Ein statischer Bericht kann als dynamische oder statische Liste in den Listen-Manager exportiert werden.
Export von Berichtsergebnissen in Microsoft Excel | Die Ergebnisse eines dynamischen Berichts können in Microsoft Excel exportiert werden. | Ein statischer Bericht kann nicht in Microsoft Excel exportiert werden.
Erstellung neuer Berichtsdefinitionen | Ein dynamischer Bericht kann geändert und als neue dynamische Berichtsdefinition gespeichert werden. | Der Systemadministrator kann statische Berichte programmatisch ändern. Anleitungen zum Ändern von statischen Berichten finden Sie unter "Erstellen benutzerdefinierter Berichte" in der Hilfe zu Commerce Server 2000.
Löschen von Berichtsdefinitionen | Benutzerdefinierte Definitionen dynamischer Berichte können gelöscht werden. Sie können jedoch nicht die Standarddefinitionen eines dynamischen Berichts löschen. | Benutzerdefinierte Definitionen statischer Berichte können gelöscht werden. Sie können jedoch nicht die Standarddefinitionen eines statischen Berichts löschen.
Speichern abgeschlossener Berichte | Abgeschlossene dynamische Berichte können nicht mit Daten in Business Desk gespeichert werden. | Abgeschlossene statische Berichte werden mit Daten im Modul "Abgeschlossene Berichte" solange gespeichert, bis sie gelöscht werden.
Anzeige von Berichtsergebnissen als Diagramm. | Abgeschlossene dynamische Berichte können als PivotCharts angezeigt werden. | Abgeschlossene statische Berichte können nicht als Diagramme angezeigt werden.

Dynamische Berichte

Wenn ein dynamischer Bericht abgeschlossen ist, wird er standardmäßig als PivotTable-oder PivotChart-Bericht in einem neuen Browserfenster von Internet Explorer angezeigt. PivotTables und PivotCharts lassen sich in jedem dynamischen Bericht anzeigen oder ausblenden. PivotTables enthalten Filter, Zeilen und Spalten mit den Berichtdetails. PivotCharts sind grafische Darstellungen der Berichtsdaten. Innerhalb der PivotTable können Datendetails angezeigt sowie Dimensionen und Measures verschoben werden, um eine unterschiedliche Perspektive der Daten zu erhalten.

Anmerkung

  • Um auf die Hilfe zur Microsoft PivotTable-Liste zugreifen zu können, muss Microsoft Office auf demselben Computer wie Business Desk installiert sein.

PivotTables

Sie haben die Möglichkeit, die PivotTable eines dynamischen Berichts zu ändern. Sie können Dimensionen als Zeilen oder Spalten hinzufügen oder entfernen oder Measures hinzufügen oder entfernen. Sie können die angezeigte Detailstufe erweitern oder reduzieren, und Sie können Filterdimensionen hinzufügen oder ändern. Wenn Sie die Änderungen vorgenommen haben, können Sie den geänderten Bericht als neue dynamische Berichtsdefinition speichern, die dann im Berichtsmodul zur Verfügung steht. Weitere Informationen über das Erstellen einer neuen dynamischen Berichtsdefinition finden Sie unter Erstellen eines neuen dynamischen Berichts.

In der folgenden Abbildung werden anhand des Berichts "Anzeigenreichweite und -häufigkeit pro Kampagnenartikel" die Bildschirmelemente einer PivotTable dargestellt.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

PivotTable-Feldliste

Dimensionen und Measures für eine PivotTable werden über die PivotTable-Feldliste hinzugefügt. Diese Feldliste erscheint, wenn der Bericht im Browserfenster angezeigt wird. Wird die Feldliste nicht automatisch angezeigt, klicken Sie auf die Schaltfläche PivotTable-Feldliste. Die Feldliste zeigt die Dimensionen und Measures an, die in einem Bericht eingefügt werden können. Dimensionen und Measures in Fettschrift gehören zur Standardansicht eines Berichts, die anderen stehen zur Verwendung im Bericht zur Verfügung. Sie können Dimensionen und Measures über Drag & Drop zu einem Bericht hinzufügen.

In der folgenden Abbildung werden die Bildschirmelemente einer PivotTable-Feldliste dargestellt.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Ausgeblendete Dimensionen

Dimensionen können erweitert und ausgeblendet werden, um die Detailstufe von Informationen in einem Bericht zu ändern. Ausgeblendete Dimensionen werden in der PivotTable mit einem Pluszeichen (+) links vom Dimensionsnamen dargestellt. Wenn eine Dimension ausgeblendet wird, zeigt die Summe im Bericht eine Rollup-Summe der Dimension insgesamt an. Durch Klicken auf das Pluszeichen neben einem Dimensionsnamen werden die einzelnen Elemente der Dimension angezeigt. Ausgeblendete Dimensionen werden auf der Ebene sortiert, auf der sie ausgeblendet sind.

Wenn die Dimensionen eines dynamischen Berichts, der Measures mit eindeutigen Zählungen enthält, ausgeblendet werden, ist die im Bericht angezeigte Summe nicht korrekt. So zeigt z. B. der Bericht "Anzeigenreichweite und -häufigkeit pro Tag" die Gesamtreichweite (Anzahl verschiedener Benutzer) und Häufigkeit (Anzahl verschiedener Besuche) pro Anzeigenkampagne und Tag an. Wenn eine Anzeigenkampagne ausgeblendet wird, ist die Anzahl der einzelnen Benutzer pro Tag keine genaue Gesamtsumme für die Anzeigenkampagne, weil ein Benutzer die Website an mehreren Tagen besucht haben könnte. Andere Berichte von Commerce Server mit eindeutigen Zählungen sind "Anzeigenreichweite und -häufigkeit pro Kampagne", "Anzeigenreichweite und -häufigkeit pro Kampagnenartikel", "Verschiedene Benutzer und Besuche pro Woche" und "Verschiedene Benutzer pro Tag".

PivotCharts

In dynamischen Berichten können PivotCharts angezeigt werden. Wenn Sie auf die Schaltfläche Diagramm einblenden klicken, wird der dynamische Bericht als einer von 15 Diagrammtypen angezeigt, die in Commerce Server zur Verfügung stehen. Jeder dynamische Bericht in Commerce Server hat ein Standarddiagrammformat, mit dem die Daten des Berichts optimal dargestellt werden. Sie können unter verschiedenen Diagrammformaten das auswählen, das Ihren Ansprüchen entspricht.

In der nachfolgenden Abbildung werden die Bildschirmelemente einer PivotChart im Bericht "Anzeigenplatzierung" dargestellt.

Beispiel für eine PivotChart

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Anmerkung

  • In PivotCharts wird nur das erste Measure angezeigt. Wenn Sie ein Diagramm mit einem anderen Measure anzeigen möchten, müssen Sie dieses Measure in der dem Diagramm zugrunde liegenden PivotTable an die erste Position (ganz links) verschieben.

In der folgenden Tabelle wird jedes Diagrammformat mit einer Beschreibung des jeweils angezeigten Datentyps aufgeführt. Weitere Informationen über das Anzeigen eines dynamischen Berichts als PivotChart finden Sie unter Anzeigen von dynamischen Berichten.

Diagrammformat | Angezeigte Daten
Balken: gruppiert | Zeigt Vergleiche zwischen Elementen.
Spalte: gruppiert | Zeigt Datenänderungen über einen Zeitraum oder vergleicht Elemente miteinander.
Linie | Zeigt Datentrends.
Linie: mit Datenpunkten | Zeigt Datentrends in gleichmäßigen Intervallen mit Markierungen zur Kennzeichnung der Intervalle.
Linie: glatt | Zeigt Datentrends in gleichmäßigen Intervallen, die geglättet sind, um geschätzte Daten zwischen den Intervallen darzustellen.
Linie: glatt, mit Datenpunkten | Zeigt Datentrends in gleichmäßigen Intervallen, mit Markierungen zur Kennzeichnung der Intervalle, die geglättet sind, um geschätzte Daten zwischen den Intervallen darzustellen.
Kreis | Zeigt die proportionale Größe der Elemente, aus denen eine einzelne Datenreihe besteht, gegenüber der Gesamtsumme der Elemente
Kreis: explodiert | Zeigt die proportionale Größe der Elemente, aus denen eine einzelne Datenreihe besteht, gegenüber der Gesamtsumme der Elemente, wobei ein bestimmtes Element hervorgehoben wird.
Fläche | Zeigt die Größenordnung einer Änderung in einem Zeitraum und die Beziehung von Datenteilen zum Ganzen.
Ring | Zeigt die Beziehung zwischen den Elementen und der jeweiligen Datenreihe, die sie bilden, wobei jeder Ring des Diagramms eine andere Datenreihe enthält.
Ring: explodiert | Zeigt die Beziehung zwischen Elementen und der jeweiligen Datenreihe, die sie bilden, wobei jeder Ring des Diagramms eine andere Datenreihe enthält und ein bestimmtes Element betont wird.
Netz: mit Linien | Zeigt einen Vergleich aggregierter Werte verschiedener Datenreihen, die als Punkte dargestellt werden, die von einem Mittelpunkt strahlenförmig ausgehen.
Netz: mit Linien und Datenpunkten | Zeigt einen Vergleich aggregierter Werte verschiedener Datenreihen, die als miteinander verbundene Punkte dargestellt werden, die von einem Mittelpunkt strahlenförmig ausgehen, wobei Markierungen die Werte kennzeichnen.
Netz: mit glatten Linien | Zeigt einen Vergleich aggregierter Werte verschiedener Datenreihen, die als miteinander verbundene Punkte dargestellt werden, die von einem Mittelpunkt strahlenförmig ausgehen und geglättet sind, um die geschätzten Daten zwischen den Intervallen darzustellen.
Netz: mit glatten Linien und Datenpunkten | Zeigt einen Vergleich aggregierter Werte verschiedener Datenreihen, die als miteinander verbundene Punkte dargestellt werden, die von einem Mittelpunkt strahlenförmig ausgehen und geglättet sind, um die geschätzten Daten zwischen den Intervallen darzustellen, wobei Markierungen die Werte kennzeichnen.

Statische Berichte

Abgeschlossene statische Berichte werden im Modul "Abgeschlossene Berichte" gespeichert. Mit statischen Berichten lassen sich sehr große Ergebnissätze erzeugen, wobei dies eine beträchtliche Zeit in Anspruch nehmen kann. Während der Bericht ausgeführt wird, wird der Berichtsstatus im Modul "Abgeschlossene Berichte" als Ausstehend gekennzeichnet. Ein abgeschlossener statischer Bericht wird als HTML-Dokument in einem neuen Browserfenster von Microsoft Internet Explorer geöffnet.

Die folgende Abbildung zeigt die Bildschirmelemente eines statischen Berichts.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Das Ergebnis eines statischen Berichts kann als statische oder dynamische Liste in das Listen-Manager-Modul in Kampagnen exportiert werden. Die statische Liste im Listen-Manager enthält dieselben Daten wie der statische Bericht zum Zeitpunkt der Ausführung; allerdings ist der aus einem statischen Bericht resultierende HTML-Bericht auf 1.000 Zeilen beschränkt. Sie können dagegen eine unbegrenzte Anzahl von Zeilen als Liste exportieren.

Eine dynamische Liste enthält einen Zeiger auf den statischen Bericht. Wenn Sie z. B. den Bericht "Neu registrierte Benutzer" exportieren, konfigurieren Sie mithilfe des Dialogfelds Bericht ausführen die Parameter des Berichts. Wenn Sie als Datum des Berichts Letzter Monat auswählen, werden die Daten vom vorangegangenen Monat als Liste exportiert.

Wenn der Bericht als dynamische Liste exportiert wird, werden Definition und Parameter des Berichts gespeichert. Immer wenn die dynamische Liste ausgeführt wird, liefert sie die Daten des Monats, die dem laufenden Monat vorangehen. Wenn die Liste also z. B. im Juli ausgeführt wird, werden die Daten vom Juni geliefert. Eine dynamische Liste ruft die neuesten Daten aus dem Datawarehouse ab, wenn die Liste im Listen-Manager aufgerufen wird. Wenn Sie die Liste jedoch im Juni als statische und nicht als dynamische Liste exportiert haben und dafür Letzter Monat ausgewählt haben, werden die Daten in der Liste immer für Mai sein, egal wann Sie die Liste öffnen.

Exportieren eines statischen Berichts in den Listen-Manager

Statische Liste:
Bei der statischen Berichts-
definition werden Daten aus dem Datawarehouse abgefragt

Commerce Server-Datawarehouse

Exportieren des
statischen Berichts

Daten, die beim Öffnen der Liste aus dem Datawarehouse abgefragt werden

Dynamische Liste

Definition der dynamischen Liste wird zum Listen-Manager hinzugefügt

Die statische Liste wird zum Listen-Manager hinzugefügt

Listen-Manager

Die Ergebnisse eines statischen Berichts werden anhand seiner Eigenschaften im Dialogfeld Bericht ausführen angepasst. Sie können jeden Parameter, auf dem der Bericht basiert, ändern oder einen neuen Wert für ihn eingeben. So können Sie beispielsweise den Bericht "Eigenschaften von registriertem Benutzer" auf die Anzeige der 25 zuletzt registrierten Benutzer beschränken. Wenn Sie einen Bericht ausführen, der einen Datumsparameter hat, können Sie ein absolutes Datum, einen Datumsbereich oder ein relatives Datum wie das letzte Jahr auswählen. Bei einem Bericht mit einem Ausdrucksparameter können Sie für die Ausführung aus einer umfassenden Sammlung von Operanden wählen, um den gewünschten Ausdruck zu erstellen.

Nach Ausführung eines statischen Berichts können dessen Ergebnisse im Browserfenster nicht mehr verändert werden. Sie können jedoch die Funktionen von Internet Explorer verwenden, um den Bericht zu drucken oder als Datei zu speichern, so wie Sie das mit jeder HTML-Datei tun können. Informationen über die Features von Internet Explorer finden Sie in der Hilfe zu Internet Explorer.

Siehe auch

Commerce Server-Berichte

Ausführen von Berichten

Exportieren eines dynamischen Berichts

Erstellen eines neuen dynamischen Berichts

Anzeigen von dynamischen Berichten

Exportieren eines statischen Berichts

Anzeigen von statischen Berichten


Benutzerdefinierte Berichte

Eine dynamische Berichtsdefinition kann geändert und als benutzerdefinierte Berichtsdefinition gespeichert werden, die dann zum Berichtsmodul hinzugefügt wird. Mit benutzerdefinierten dynamischen Berichtsdefinitionen wird eine neue Ansicht der Daten eines dynamischen Berichts erstellt. Sie können z. B. den Bericht "Verwendungstrends" ausführen, um für Ihre Site die Gesamtzahl der Anforderungen, Benutzer und Besuche pro Jahr abzurufen.

Wenn Sie weitere Details über Verwendungstrends sehen möchten, können Sie aus dem Bericht "Verwendungstrends" eine neue dynamische Berichtsdefinition erstellen. Damit lassen sich z. B. die Verwendungstrends nach Besuchertyp bzw. über verschiedene Zeiträume (Tag, Monat oder Quartal) hinweg anzeigen. Nach Speicherung des geänderten Berichts "Verwendungstrends" wird die neue Berichtsdefinition zum Berichtsmodul hinzugefügt. Aktualisieren Sie die Berichtsliste im Berichtsmodul, um die neue dynamische Berichtsdefinition anzuzeigen. Weitere Informationen über das Erstellen einer neuen dynamischen Berichtsdefinition finden Sie unter Erstellen eines neuen dynamischen Berichts.

Eine benutzerdefinierte dynamische Berichtsdefinition können Sie erstellen, indem Sie die PivotTable eines vorhandenen Berichts ändern und das Ergebnis als neue Berichtsdefinition speichern. Sie können die PivotTable eines vorhandenen Berichts ändern, indem Sie Filter hinzufügen oder entfernen, die angezeigten Daten sortieren, Measures hinzufügen, Felder verschieben, Detail- und Summendaten ändern sowie Spalten und Zeilen drehen oder anderweitig manipulieren. So können Sie z. B. im Bericht "Verwendungstrends" die Jahresdimensionen erweitern und die Trends pro Tag anzeigen. Sie können die Jahresdimensionen erweitern, die Jahres-, Quartals- und Tagesdimensionen entfernen und die Verwendungsdaten nur pro Monat anzeigen.

Der Systemadministrator kann benutzerdefinierte statische und dynamische Berichtsdefinitionen erstellen und sie direkt zur Datenbank hinzufügen, die vom Berichtsmodul verwendet wird. Informationen für Siteentwickler, die benutzerdefinierte Berichte erstellen, finden Sie unter Creating Custom Reports (englisches Thema). Informationen über das Planen der Erstellung von benutzerdefinierten Berichten finden Sie unter Planen des Business Analytics-Systems.

Siehe auch

Commerce Server-Berichte

Ausführen von Berichten

Erstellen eines neuen dynamischen Berichts


Segmentanalyse

Mithilfe des Segment-Viewer-Moduls wird eine Analyse der Segmentierung (oder Gruppierung) vorgenommen. In der Segmentierungsanalyse werden die Benutzer nach ihrem Verhalten in der Site und ihren Eigenschaften wie Alter und Geschlecht in Segmente eingeteilt. Benutzer im selben Segment haben ein ähnliches Verhalten oder ähnliche Eigenschaften. Datensätze, die in einem Segment angeordnet sind, weisen in der Regel untereinander mehr Ähnlichkeiten auf als mit Datensätzen in anderen Segmenten. Das Ergebnis des Segmentierungsprozesses ist ein Segmentmodell. Das Segmentmodell beschreibt die gemeinsamen Merkmale von Benutzern, die zu einem Segment oder einer Segmentgruppe gehören. Segmente und Segmentgruppen werden in Commerce Server-Manager durch Daten aus dem Datawarehouse erstellt.

Das Segment-Viewer-Modul wird dazu verwendet, ein einzelnes Segment zu untersuchen oder ein Segment mit einem anderen zu vergleichen. Mit ihm kann auch ein Zusammenfassungsbericht über alle Segmente erstellt werden.

Segmente und Segmentgruppen

Segmentmodelle

Segment-Viewer

Segmentberichte

Segmente und Segmentgruppen

Segmente sind Gruppierungen von Benutzern, die in der Site ein ähnliches Verhalten aufzeigen oder ähnliche Eigenschaften wie Alter und Geschlecht haben. Ein Segment besteht aus einer Zusammenfassung der Datenbankdatensätze, die ihm zugeordnet sind. Diese Zusammenfassung wird aus Eigenschaften im Datawarehouse abgeleitet, mit denen die Datenbanksätze gruppiert werden. Segmentgruppen sind Sammlungen ähnlicher Segmente oder anderer Segmentgruppen. Ähnliche Segmente und Segmentgruppen werden dann wiederum zusammengeführt, um Segmentgruppen auf höherer Ebene zu bilden. Dieser Prozess wird solange fortgesetzt, bis eine einzige Segmentgruppe auf höchster Ebene gebildet ist, die alle Benutzer umfasst.

Der Segment-Viewer stellt Segmente in hierarchischer Ordnung dar, wobei die Segmentgruppe auf höchster Ebene alle Benutzer zusammenfasst und die Segmente und Segmentgruppen auf den niedrigeren Ebenen immer kleinere Benutzerschichten zusammenfassen. Die im Segment-Viewer zusammengestellten Informationen dienen als Basis für die Personalisierung und Zielgruppenadressierung durch andere Module von Commerce Server Business Desk.

Die Segmentgruppen bilden eine Hierarchie, in der Trends analysiert und Beziehungen zwischen den Daten auf verschiedenen Ebenen der Segmenthierarchie offengelegt werden können. Durch die Gruppierung von Benutzern aufgrund von Ähnlichkeiten lassen sich neue Beziehungen erkennen. Diese neu erkannten Beziehungen können die Basis für Zielgruppenadressierungs- und Personalisierungsregeln werden.

Segmentmodelle

Ein Segmentmodell beschreibt die Merkmale von Benutzern, die zu einer Segmentgruppe oder zu einem Segment gehören. Segmentmodelle dienen dazu, Attributwerte zu entdecken und zu analysieren, mit denen die Besucher einer Site charakterisiert werden. Nehmen wir z. B. an, Sie haben ein Segmentmodell erstellt und entdecken dann ein Segment, das Benutzer charakterisiert, die ein beliebtes Fantasybuch für Kinder gekauft haben: weiblich, über 40, Einkommen höher als 100.000 DM pro Jahr, Ausbildungsgrad Hochschulabschluss oder höher. Nachdem Sie diese gemeinsamen Merkmale entdeckt haben, können Sie ähnliche Produkte Benutzern anbieten, die mit diesen Kriterien übereinstimmen. Zum Beispiel würden diese Benutzer vielleicht auch ein Tierbuch für Kinder kaufen.

Bei Bedarf kann der Systemadministrator Segmentmodelle erstellen, die auf Daten aus dem Datawarehouse von Commerce Server basieren. Wenn das neue Segmentmodell fertig ist, sollte der Systemadministrator Sie benachrichtigen, damit Sie im Segment-Viewer-Modul von Commerce Server Business Desk die aktualisierten Segmentmodellinformationen anzeigen können.

Segment-Viewer

Segmentgruppen und einzelne Segmente werden mithilfe des Segment-Viewers angezeigt, eines Datenanalysewerkzeugs für den Businessmanager. Mit diesem Modul können Sie Verwendungstrends erkennen und Marketingentscheidungen aufgrund von Ähnlichkeiten unter den Benutzern treffen.

Das Segment-Viewer-Modul erlaubt die Anzeige relevanter Informationen aus unterschiedlichen Segmenten und den kontrastierenden Vergleich ihrer Eigenschaften. Wenn Sie eine weitergehende Analyse und Klassifizierung der Segmente vornehmen möchten, können Sie im Listen-Manager Elemente einzelner Segmente in einer Liste speichern.

Nach dem Öffnen des Segment-Viewer-Moduls wird eine Liste der verfügbaren Segmentmodelle angezeigt. Wenn Sie ein Segmentmodell markieren und auf der Symbolleiste auf die Schaltfläche Modell öffnen klicken, wird der Segment-Viewer-Bildschirm angezeigt. Dieser Bildschirm ist in drei Bereiche unterteilt:

  • Eine hierarchische Ansicht der Segmente und Segmentgruppen des geöffneten Segmentmodells.

  • Eine Zusammenfassung der relevanten Eigenschaften des markierten Segments bzw. der markierten Segmentgruppe.

  • Ein Vergleich des markierten Segments mit einem anderen Segment oder einer anderen Segmentgruppe.

Wenn ein Segmentmodell zum ersten Mal im Segment-Viewer angezeigt wird, haben die Segmente und Segmentgruppen in der Segmentliste allgemeine Namen wie Segment1, Segment2 usw. Hinter dem Namen wird in Klammern der prozentuale Anteil an der Gesamtbenutzerzahl angegeben, der durch ein Segment oder eine Segmentgruppe repräsentiert wird. Die Segmentzusammenfassung wird rechts von der Segmentliste auf dem Bildschirm angezeigt.

Arbeitsbereich des Segment-Viewers

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Die Zusammenfassung des Segments oder der Segmentgruppe enthält eine Tabelle mit folgenden Spalten:

  • Eigenschaft/Wert-Paare. Diese beziehen sich aufeinander und fassen die Datensätze im ausgewählten Segment bzw. in der Segmentgruppe am besten zusammen. Wenn sich z. B. die Mehrheit der Datensätze in einem gegebenen Segment auf Personen beziehen, deren Beruf "Student" ist, wird in der Eigenschaftsspalte "Beruf" und in der Wertspalte "Student" angezeigt.

  • Ergebnis. Zeigt einen roten Balken an, dessen Länge wiedergibt, wie gut das als Suchbegriff verwendete Eigenschaft/Wert-Paar die im markierten Segment bzw. in der Segmentgruppe enthaltenen Datensätze zusammenfasst.

Segmentberichte

Mit dem Segment-Viewer kann ein Bericht erzeugt werden, in dem alle erstellten Segmentgruppen und Segmente zusammengefasst werden. Mit diesem Bericht können alle Segmente miteinander verglichen werden. Jedes Segment und jede Segmentgruppe hat Verknüpfungen zu den jeweiligen Detailinformationen; durch Klicken auf diese Verknüpfungen können Sie leicht zwischen den einzelnen Segmenten wechseln. Der Bericht wird in einem gesonderten Browserfenster angezeigt.

Siehe auch

Commerce Server-Berichte

Anzeigen eines Segmentmodells

Anzeigen eines Segmentberichts

Exportieren von Segmentdaten in den Listen-Manager


Commerce Server-Berichte

Commerce Server stellt eine Sammlung von 39 Berichtsdefinitionen zur Verfügung. Sie können dynamische Berichte ändern und daraus neue Berichte erstellen, die Sie dann im Berichtsmodul speichern können. Weitere Informationen über das Erstellen einer neuen dynamischen Berichtsdefinition finden Sie unter Erstellen eines neuen dynamischen Berichts. Außerdem kann ein Siteentwickler oder ein Systemadministrator bei Bedarf benutzerdefinierte Berichte erstellen.

Anmerkung

  • Der Systemadministrator muss verschiedene Aufgaben erledigen, bevor Berichte ausgeführt werden können. Weitere Informationen finden Sie unter Einrichten von Business Analytics.

Dieser Abschnitt beinhaltet folgende Themen:

  • Anzeigenberichte

  • Produktverkaufsberichte

  • Webverwendungsberichte

  • Benutzerberichte

  • Besuchsberichte

  • Diagnoseberichte

  • Abfragezeichenfolgeberichte

  • Berichtseigenschaften

  • Zeitangaben in Berichten


Anzeigenberichte

Das Berichtsmodul wird dazu verwendet, um Berichte zur Analyse von Anzeigendaten auszuführen.

Anzeigenplatzierung

Anzeigenreichweite und -häufigkeit pro Tag

Anzeigenreichweite und -häufigkeit pro Kampagnenartikel

Anzeigenreichweite und -häufigkeit pro Kampagne

Zusammenfassung der Kampagnenartikel

Zusammenfassung von Kampagnenereignissen

Anzeigenplatzierung (dynamisch)

Mit dem Bericht "Anzeigenplatzierung" lässt sich überprüfen, wie effektiv Anzeigen in einer Site platziert worden sind. Dieser Bericht zeigt eine Zusammenfassung der Kampagnenaktivitäten nach Position in der Site an. Es werden nur die Daten abgeschlossener Besuche zusammengestellt.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Ereignisanzahl | Kampagne Ereignisse Seitengruppe Site

Zurück zu den Anzeigenberichten

Anzeigenreichweite und -häufigkeit pro Tag (dynamisch)

Mit dem Bericht "Anzeigenreichweite und -häufigkeit pro Tag" kann das Benutzerverhalten in Bezug auf die Kampagnenartikel der Site untersucht werden. Dieser Bericht zeigt die Aktivitäten einzelner Benutzer pro Tag und Kampagnenartikel an. Es werden nur die Daten abgeschlossener Besuche zusammengestellt.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Ereignisse Häufigkeit Reichweite | Kampagne Datum Verschiedene Benutzer Ereignis Site

Zurück zu den Anzeigenberichten

Anzeigenreichweite und -häufigkeit pro Kampagnenartikel (dynamisch)

Mithilfe des Berichts "Anzeigenreichweite und -häufigkeit pro Kampagnenartikel" können Sie das Benutzerverhalten in Bezug auf Kampagnenartikel über einen bestimmten Zeitraum untersuchen. Dieser Bericht zeigt die Aktivitäten einzelner Benutzer pro Tag und Kampagnenartikel über einen bestimmten Zeitraum an. Es werden nur die Daten abgeschlossener Besuche zusammengestellt.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Ereignisse Häufigkeit Reichweite | Kampagne Kampagnenartikel Datum Verschiedene Benutzer Ereignis Site

Zurück zu den Anzeigenberichten

Anzeigenreichweite und -häufigkeit pro Kampagne (dynamisch)

Mit dem Bericht "Anzeigenreichweite und -häufigkeit pro Kampagne" ist es möglich, das Benutzerverhalten in Bezug auf Kampagnen zu untersuchen. Dieser Bericht zeigt die Aktivitäten einzelner Benutzer pro Tag und Kampagne über einen bestimmten Zeitraum an. Es werden nur die Daten abgeschlossener Besuche zusammengestellt.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Ereignisse Häufigkeit Reichweite | Kampagne Verschiedene Benutzer Ereignis Site

Zurück zu den Anzeigenberichten

Zusammenfassung der Kampagnenartikel (dynamisch)

Mit dem Bericht "Zusammenfassung der Kampagnenartikel" können Sie die Wirksamkeit von Kampagnen in Ihrer Site untersuchen. Dieser Bericht zeigt eine Zusammenfassung der Aktivitäten nach Kampagnenartikel in der Site an. Es werden nur die Daten abgeschlossener Besuche zusammengestellt.

Dieser Bericht zeigt eine Zusammenfassung der Kampagnenaktivitäten in der Site an. In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
% Durchklickrate Verbleibende Anzeigenanforderungen Klicks Reichweite Anforderungen Ertrag | Werbungstreibender Kampagne Kampagnenartikel Reichweite Site

Zurück zu den Anzeigenberichten

Zusammenfassung von Kampagnenereignissen (dynamisch)

Mit dem Bericht "Zusammenfassung von Kampagnenereignissen" lässt sich die Wirksamkeit von Kampagnen in einer Site untersuchen. Dieser Bericht zeigt eine Zusammenfassung der Kampagnenaktivitäten in der Site an. Es werden nur die Daten abgeschlossener Besuche zusammengestellt.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Ereignisanzahl | Werbungstreibender Ereignis Site

Zurück zu den Anzeigenberichten

Siehe auch

Informationen zur Analyse

Commerce Server-Berichte

Einrichten von Business Analytics.

Suchen von Berichten

Ausführen von Berichten

Anzeigen von dynamischen Berichten

Anzeigen von statischen Berichten

Drucken von Berichten


Produktverkaufsberichte

Mithilfe des Berichtsmoduls lassen sich Berichte zur Analyse von Produktverkäufen ausführen.

Käuferverhalten bis zum Kauf

Kundenverkäufe

Zusammenfassung der Kundenausgaben

Bestellereignisse

Produktverkäufe

Warenkorbereignisse

Käuferverhalten bis zum Kauf (dynamisch)

Mit dem Bericht "Käuferverhalten bis zum Kauf" lassen sich Besuchs- und Kaufmuster von Benutzern untersuchen. Dieser Bericht zeigt die Anzahl von Erstkäufern und regelmäßigen Käufern sowie die durchschnittliche Anzahl der Besuche pro Einkauf und Käufer an.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Verkaufsanzahl Besuchsanzahl Besucheranzahl Besuche pro Kauf | Käufertyp Site

Zurück zu den Produktverkaufsberichten

Kundenverkäufe (statisch)

Mithilfe des Berichts "Kundenverkäufe" lassen sich Details, Gesamtverkäufe und Gesamtbestellungen von Kunden anzeigen. Dieser Bericht kann in den Listen-Manager exportiert werden, und die in ihm enthaltenen Informationen können dazu verwendet werden, um Kunden mit Onlinekampagnen wie Direktsendungspromotions anzusprechen.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Bestellungen Verkäufe | E-Mail Vorname Nachname Benutzer-ID

Zurück zu den Produktverkaufsberichten

Zusammenfassung der Kundenausgaben (dynamisch)

Mit dem Bericht "Zusammenfassung der Kundenausgaben" lassen sich das Verkaufsvolumen und die Einnahmen pro Kunde untersuchen. Dieser Bericht zeigt die Verkaufsdaten bei registrierten Benutzern nach Anmeldenamen und bei Gästen nach Gastbenutzer-ID an.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Menge Einnahmen | Kunde Datum Produkte Site

Zurück zu den Produktverkaufsberichten

Bestellereignisse (dynamisch)

Mithilfe des Berichts "Bestellereignisse" werden Bestellereignisse untersucht, z. B. ein Benutzer, der auf die Schaltfläche Auschecken klickt, um die Bestellung abzuschließen. Dieser Bericht zeigt die Anzahl der Bestellereignisse an, die von registrierten Benutzern und Gästen pro Stunde durchgeführt werden.

Anmerkung

  • Die Dimension Kalenderwoche wird dazu verwendet, die Datumsdimensionen dieses Berichts zu berechnen. Bei Jahren, die mit einem Samstag beginnen, gibt die Dimension Kalenderwoche als letzte Woche im Jahr die Zahl 53 zurück.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Ereignisanzahl | Datum Ereignisse Uhrzeit Site Benutzertyp

Zurück zu den Produktverkaufsberichten

Produktverkäufe (dynamisch)

Mithilfe des Berichts "Produktverkäufe" können Sie das Volumen von Produktverkäufen und Einnahmen nach Datum untersuchen. Dieser Bericht zeigt die Gesamtmenge und die Gesamteinnahmen für jedes verkaufte Produkt an.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Menge Einnahmen | Datum Produkte Site

Zurück zu den Produktverkaufsberichten

Warenkorbereignisse (dynamisch)

Mit dem Bericht "Warenkorbereignisse" kann das Benutzerverhalten hinsichtlich der Warenkorbaktivitäten untersucht werden. Dieser Bericht listet Produkte auf und gibt an, wie oft sie zu Warenkörben hinzugefügt oder aus diesen entfernt wurden.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Anzahl | Datum Ereignisse Produkte Site

Zurück zu den Produktverkaufsberichten

Siehe auch

Informationen zur Analyse

Commerce Server-Berichte

Einrichten von Business Analytics

Suchen von Berichten

Ausführen von Berichten

Anzeigen von dynamischen Berichten

Anzeigen von statischen Berichten

Drucken von Berichten


Webverwendungsberichte

Mit dem Berichtsmodul lassen sich auch Berichte ausführen, mit denen die Siteverwendung, Verweiser-URLs und Datenanforderungen analysiert werden können.

Verzeichnisse

Eingangspfadanalyse

Topverweiser (Domänen) nach Anforderungen

Hauptsächlich angeforderte Seiten

Zusammenfassung der Verwendung pro Wochentag

Zusammenfassung der Verwendung nach Uhrzeit

Zusammenfassung der Verwendung pro Kalenderwoche

Verwendungstrends

Besuche pro Browser, Version und Betriebssystem

Verzeichnisse (dynamisch)

Mithilfe des Berichts "Verzeichnisse" können Sie ermitteln, welche der 5.000 URI-Verzeichnisebenen (Uniform Resource Identifier) am häufigsten besucht werden. Dieser Bericht zeigt die Aktivitäten auf den ersten sechs Ebenen der URI-Verzeichnisse an.

Anmerkung

  • Wenn Sie andere URI-Informationen sehen möchten als die 5.000 aktivsten URIs, z. B. die am wenigsten aktiven URIs, kann Ihr Systemadministrator die in der Sitedatenbank gespeicherte Prozedur CSDW_MakeAggRequestsByUri entsprechend bearbeiten.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Zugriffsanzahl | Datum Verzeichnisebene Ist-Anforderung Site

Zurück zu den Webverwendungsberichten

Eingangspfadanalyse (statisch)

Mit dem Bericht "Eingangspfadanalyse" ermitteln Sie die Haupteingangspfade, über die Besucher am häufigsten zu Ihrer Site gelangen. Dieser Bericht zeigt die ersten sechs Ebenen der Pfadverzeichnisse an.

Anmerkung

  • Der Bericht "Eingangspfadanalyse" führt eine intensive Analyse über die Art und Weise durch, wie Benutzer zu Ihrer Site gekommen sind. Diese Aufgabe stellt hohe Ressourcenanforderungen und kann sehr viel Zeit zur Fertigstellung benötigen.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Anzahl | URI 1 URI 2 URI 3 URI 4 URI 5 URI 6

Zurück zu den Webverwendungsberichten

Topverweiser (Domänen) nach Anforderungen (statisch)

Über den Bericht "Topverweiser (Domänen) nach Anforderungen" lassen sich die Sites ermitteln, von denen aus die Benutzer auf Ihre Site zugreifen. Dieser Bericht zeigt eine Liste der aktivsten Verweiserdomänen, die nach der Anzahl der Anforderungen sortiert ist.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Domäne | % Anforderungen Anforderungen

Zurück zu den Webverwendungsberichten

Hauptsächlich angeforderte Seiten (statisch)

Mit dem Bericht "Hauptsächlich angeforderte Seiten" lassen sich die am häufigsten angeforderten Seiten ermitteln. Dieser Bericht zeigt eine Liste der 5.000 aktivsten Seiten einschließlich Abfragezeichenfolgen an, sortiert nach der Anzahl der Anforderungen.

Anmerkung

  • Wenn Sie andere Informationen als die 5.000 aktivsten Seiten sehen möchten, z. B. die Seiten mit der geringsten Aktivität, kann Ihr Systemadministrator die gespeicherte Prozedur CSDW_MakeAggRequestsByUri entsprechend bearbeiten. Diese Prozedur ist im Datawarehouse unter "Gespeicherte Prozeduren" zu finden.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Domäne | % Anforderungen Anforderungen

Zurück zu den Webverwendungsberichten

Zusammenfassung der Verwendung pro Wochentag (dynamisch)

Über den Bericht "Zusammenfassung der Verwendung pro Wochentag" lässt sich eine PivotChart anzeigen, die die durchschnittliche Anzahl von Seitenanforderungen pro Wochentag darstellt.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Durchschn. Anforderungen pro Wochentag Durchschn. Besuche pro Wochentag | Datum Wochentag Site

Zurück zu den Webverwendungsberichten

Zusammenfassung der Verwendung nach Uhrzeit (dynamisch)

Über den Bericht "Zusammenfassung der Verwendung nach Uhrzeit" wird eine PivotChart angezeigt, die die durchschnittliche Anzahl von Seitenanforderungen nach Uhrzeit darstellt.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Durchschn. Anforderungen nach Uhrzeit Durchschn. Besuche nach Uhrzeit | Datum Uhrzeit Site

Zurück zu den Webverwendungsberichten

Zusammenfassung der Verwendung pro Kalenderwoche (dynamisch)

Über den Bericht "Zusammenfassung der Verwendung pro Kalenderwoche" wird eine PivotChart angezeigt, die die durchschnittliche Anzahl von Seitenanforderungen pro Kalenderwoche darstellt.

Anmerkung

  • Bei Jahren, die mit einem Samstag beginnen, gibt die Dimension Kalenderwoche als letzte Woche im Jahr die Zahl 53 zurück.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Durchschn. Anforderungen pro Kalenderwoche Durchschn. Besuche pro Kalenderwoche | Datum Site Kalenderwoche

Zurück zu den Webverwendungsberichten

Verwendungstrends (dynamisch)

Mithilfe des Berichts "Verwendungstrends" lässt sich eine Zusammenfassung der täglichen Seitenanforderungen, Benutzer und Besuche anzeigen.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Anforderungen Benutzer Besuche | Datum Site Benutzertyp

Zurück zu den Webverwendungsberichten

Besuche pro Browser, Version und Betriebssystem (dynamisch)

Mit dem Bericht "Besuche pro Browser, Version und Betriebssystem" können Sie ermitteln, welche Browser am häufigsten für einen Besuch Ihrer Site verwendet werden. Wenn Ihre Benutzer ältere Browser verwenden, sollten Sie bei Ihrem Sitedesign Features wie Frames oder Multimedia vermeiden. Dieser Bericht zeigt die Browser, Versionen und Betriebssysteme an, die von Benutzern für den Zugriff auf Ihre Site verwendet werden.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Besuche | Browser Datum Betriebssystem Site Version Besuchsanzahl

Zurück zu den Webverwendungsberichten

Siehe auch

Informationen zur Analyse

Commerce Server-Berichte

Einrichten von Business Analytics

Suchen von Berichten

Ausführen von Berichten

Anzeigen von dynamischen Berichten

Anzeigen von statischen Berichten

Drucken von Berichten


Benutzerberichte

Mit dem Berichtsmodul können Sie Berichte zur Analyse von Benutzerdaten ausführen.

Verschiedene Benutzer und Besuche pro Woche

Verschiedene Benutzer pro Tag

Neu registrierte Benutzer

Eigenschaften von registriertem Benutzer

Registrierte Benutzer nach Registrierungsdatum

Tage bis zur Registrierung

Benutzerregistrierungsrate

Benutzertrends

Verschiedene Benutzer und Besuche pro Woche (dynamisch)

Mithilfe des Berichts "Verschiedene Benutzer und Besuche pro Woche" können Sie feststellen, ob wenige Personen die Site oft oder viele Personen die Site nur einmal besuchen. Dieser Bericht zeigt die Anzahl verschiedener Benutzer der Site sowie die Häufigkeit der Besuche innerhalb einer bestimmten Woche an. Hierbei wird der Anzahl der verschiedenen Benutzer in Beziehung zur Zahl der Besuche eines jeden Benutzers gesetzt.

Wenn Sie die Datumsdimension reduzieren, wird die Anzahl der wöchentlichen verschiedenen Benutzer für den Zeitraum (Jahr) angezeigt. Dieser Bericht liefert nicht die Anzahl der Benutzerbesuche pro Jahr, weil die verschiedenen Besucher nur wöchentlich gezählt werden. Wenn z. B. ein Benutzer in einer bestimmten Woche an einem Mittwoch die Site besucht und dann wieder am Freitag der folgenden Woche innerhalb eines bestimmten Jahres, dann wird der Benutzer in beiden Wochen als verschiedener Benutzer gezählt. Die Anzahl der verschiedenen Benutzer für dieses Jahr ist zwei, obwohl beide Besuche durch denselben Benutzer stattgefunden haben.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Benutzer Besuche | Site Verschiedene Benutzer Benutzertyp Besuche Woche Jahr

Zurück zu den Benutzerberichten

Verschiedene Benutzer pro Tag (dynamisch)

Mit dem Bericht "Verschiedene Benutzer pro Tag" können Sie ermitteln, wie viele verschiedene Benutzer eine Site an einem bestimmten Tag besuchen. Wenn Sie die Datumsdimension reduzieren, wird die Anzahl der täglichen verschiedenen Benutzer für den Zeitraum (Woche oder Jahr) angezeigt. Dieser Bericht liefert nicht die Anzahl der verschiedenen Benutzerbesuche pro Woche oder Jahr, weil die verschiedenen Besucher nur täglich gezählt werden. Wenn z. B. ein Benutzer die Site an zwei Tagen innerhalb einer gegebenen Woche besucht, wird der Benutzer an beiden Tagen als verschiedener Benutzer gezählt, und die Anzahl der verschiedenen Benutzer in dieser Woche ist zwei, selbst wenn beide Besuche durch denselben Benutzer gemacht wurden.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Benutzer | Datum Site Benutzer Benutzertyp

Zurück zu den Benutzerberichten

Neu registrierte Benutzer (statisch)

Mithilfe des Berichts "Neu registrierte Benutzer" können Sie neu registrierte Benutzer identifizieren. Diese Daten können zur Erstellung spezieller Promotionkampagnen eingesetzt werden. Exportieren Sie diesen Bericht in den Listen-Manager, um neu registrierte Benutzer durch Onlinekampagnen wie Promotions mit Direktsendungen anzusprechen.

Informationen über das Exportieren von statischen Berichten finden Sie unter Exportieren eines statischen Berichts.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
In diesem Bericht gibt es keine Measures. | Registriert am Erstellt am E-Mail Vorname Nachname Benutzer-ID

Zurück zu den Benutzerberichten

Eigenschaften von registriertem Benutzer (statisch)

Mit dem Bericht "Eigenschaften von registriertem Benutzer" können Sie Informationen über registrierte Benutzer ermitteln. Diese Daten können zur Erstellung spezieller Promotionkampagnen eingesetzt werden. Exportieren Sie diesen Bericht in den Listen-Manager, um neu registrierte Benutzer durch Onlinekampagnen wie Promotions mit Direktsendungen anzusprechen.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
In diesem Bericht gibt es keine Measures. | Erstellt am Registriert am E-Mail Vorname Nachname Benutzer-ID

Zurück zu den Benutzerberichten

Registrierte Benutzer nach Registrierungsdatum (dynamisch)

Mit dem Bericht "Registrierte Benutzer nach Registrierungsdatum" lässt sich das Registrierungsverhalten der Benutzer überprüfen. Dieser Bericht zeigt den Verlauf der Benutzerregistrierungen für eine Site und für einen bestimmten Zeitraum (Jahr, Quartal, Monat, Tag) an.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Registrierte Benutzer | Datum Registrierte Benutzer Site-ID

Zurück zu den Benutzerberichten

Tage bis zur Registrierung (dynamisch)

Mit dem Bericht "Tage bis zur Registrierung" lässt sich die durchschnittliche Anzahl von Tagen ermitteln, die Gastbenutzer benötigen, bis sie sich in der Site registrieren.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Durchschnittlich vergangene Tage bis zur Registrierung | Durchschnittlich vergangene Tage Erstellt am Site

Zurück zu den Benutzerberichten

Benutzerregistrierungsrate (dynamisch)

Über den Bericht "Benutzerregistrierungsrate" können Sie bestimmen, wie viel Erfolg Sie dabei hatten, Gastbenutzer zur Registrierung in der Site zu bewegen. Der Bericht zeigt die Zeit an, die nach dem ersten Zugriff eines Benutzers auf die Site vergeht, bis er sich registriert.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Registrierte Benutzer | Vergangene Tage Registrierte Benutzer Site

Zurück zu den Benutzerberichten

Verwendungstrends (dynamisch)

Mit dem Bericht "Verwendungstrends" lässt sich ermitteln, wie erfolgreich Sie dabei gewesen sind, Benutzer zu wiederholten Besuchen zu bewegen. Dieser Bericht zeigt die Benutzertypen (neu und wiederholt) an, die Ihre Site besuchen, sortiert nach Datum an.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Neue Benutzer Wiederholen der Benutzer % Benutzer wiederholen Gesamtbenutzer | Datum Site Kalenderwoche

Zurück zu den Benutzerberichten

Siehe auch

Informationen zur Analyse

Commerce Server-Berichte

Einrichten von Business Analytics.

Suchen von Berichten

Ausführen von Berichten

Anzeigen von dynamischen Berichten

Anzeigen von statischen Berichten

Drucken von Berichten


Besuchsberichte

Mit dem Berichtsmodul lassen sich Berichte zur Analyse von Besuchsdaten ausführen.

Eingangsseiten

Ausgangsseiten

Allgemeine Aktivitätsstatistiken

Benutzerbesuchstrends

Eingangsseiten (dynamisch)

Über den Bericht "Eingangsseiten" können Sie die 5.000 Seiten der Site ermitteln, die wahrscheinlich von Benutzern zuerst besucht werden. Dieser Bericht zeigt die 5.000 am häufigsten besuchten URIs an, die zum Eintritt in die Site gedient haben, sowie die Häufigkeit der Verwendung der einzelnen URIs.

Anmerkung

  • Wenn Sie URIs sehen möchten, die andere Informationen als die der 5.000 am häufigsten verwendeten URIs bieten, z. B. die am wenigsten benutzten URIs, kann Ihr Systemadministrator die in der Sitedatenbank gespeicherte Prozedur CSDW_MakeAggRequestsByUri entsprechend bearbeiten.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Besuchsanzahl | Datum Site URI

Zurück zu den Besuchsberichten

Ausgangsseiten (dynamisch)

Mit dem Bericht "Ausgangsseiten" können Sie feststellen, von welchen Seiten die Benutzer am wahrscheinlichsten Ihre Site verlassen. Dieser Bericht zeigt die 5.000 am häufigsten besuchten URIs an, die zum Austritt aus der Site gedient haben, sowie die Häufigkeit der Verwendung der einzelnen URIs.

Anmerkung

  • Wenn Sie URIs sehen möchten, die andere Informationen als die der 5.000 am häufigsten verwendeten URIs bieten, z. B. die am wenigsten benutzten URIs, kann Ihr Systemadministrator die in der Sitedatenbank gespeicherte Prozedur CSDW_MakeAggRequestsByUri entsprechend bearbeiten.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Besuchsanzahl | Datum Site URI

Zurück zu den Besuchsberichten

Allgemeine Aktivitätsstatistiken (dynamisch)

Mit dem Bericht "Allgemeine Aktivitätsstatistiken" können Sie die Aktivitäten in Ihrer Site untersuchen. Dieser Bericht zeigt die durchschnittlichen Anforderungen pro Besuch, die durchschnittliche Besuchsdauer und die Anzahl der Anforderungen und Besuche über einen bestimmten Zeitraum an.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Durchschn. Dauer pro Besuch Durchschn. Anforderungen pro Besuch Anforderungen Besuche | Datum Site

Zurück zu den Besuchsberichten

Benutzerbesuchstrends (dynamisch)

Mithilfe des Berichts "Benutzerbesuchstrends" lässt sich die Anzahl der Sitebesuche über einen bestimmten Zeitraum ermitteln. Dieser Bericht zeigt die Gesamtzahl der Besuche sowie die Besuche registrierter und nicht registrierter Benutzern an.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Besuche | Datum Site Benutzertyp

Zurück zu den Besuchsberichten

Siehe auch

Informationen zur Analyse

Commerce Server-Berichte

Einrichten von Business Analytics.

Suchen von Berichten

Ausführen von Berichten

Anzeigen von dynamischen Berichten

Anzeigen von statischen Berichten

Drucken von Berichten


Diagnoseberichte

Mit dem Berichtsmodul führen Sie Berichte zur Analyse von Diagnosedaten aus.

Zusammenfassung der Bandbreite

Bandbreitentrends

Zugriffe nach HTTP-Status

Zugriffe nach Win32-Status

Zusammenfassung der Bandbreite (dynamisch)

Über den Bericht "Zusammenfassung der Bandbreite" wird eine PivotChart des wöchentlichen Bandbreitenverbrauchs einer Site angezeigt.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Bandbreite (MB) | Datum Site

Zurück zu den Diagnoseberichten

Bandbreitentrends (dynamisch)

Mit dem Bericht "Bandbreitentrends" können Sie den täglichen Bandbreitenverbrauch einer Site anzeigen.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Bandbreite (MB) | Datum Wochentag Site

Zurück zu den Diagnoseberichten

Zugriffe nach HTTP-Status (dynamisch)

Mit dem Bericht "Zugriffe nach HTTP-Status" können Sie Probleme, die Benutzer mit den 5.000 aktivsten Seiten einer Site haben könnten, ermitteln und diagnostizieren. Dieser Bericht zeigt die HTTP-Fehlermeldungen an, die den 5.000 aktivsten Seiten einer Website zugeordnet worden sind.

Anmerkung

  • Wenn Sie mehr als die 5.000 aktivsten Seiten sehen möchten, z. B. die Seiten mit der geringsten Aktivität, kann Ihr Systemadministrator die gespeicherte Prozedur CSDW_MakeAggRequestsByUri in der Sitedatenbank entsprechend bearbeiten.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Anzahl | Datum HTTP-Status Site URI

Zurück zu den Diagnoseberichten

Zugriffe nach Win32-Status (dynamisch)

Mithilfe des Berichts "Zugriffe nach Win32-Status" lassen sich Probleme, die Benutzer mit den 5.000 aktivsten Seiten einer Site haben könnten, ermitteln und diagnostizieren. Dieser Bericht zeigt die Win32-Fehlermeldungen an, die den 5.000 aktivsten Seiten einer Website zugeordnet worden sind.

Anmerkung

  • Wenn Sie mehr als die 5.000 aktivsten Seiten sehen möchten, z. B. die Seiten mit der geringsten Aktivität, kann Ihr Systemadministrator die gespeicherte Prozedur CSDW_MakeAggRequestsByUri in der Sitedatenbank entsprechend bearbeiten.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Anzahl | Datum Site Win32-Status

Zurück zu den Diagnoseberichten

Siehe auch

Informationen zur Analyse

Commerce Server-Berichte

Einrichten von Business Analytics.

Suchen von Berichten

Ausführen von Berichten

Anzeigen von dynamischen Berichten

Anzeigen von statischen Berichten

Drucken von Berichten


Abfragezeichenfolgeberichte

Mit dem Berichtsmodul können Sie Berichte zur Analyse von Abfragezeichenfolgedaten ausführen.

Abfragezeichenfolgen (mehrere Werte)

Abfragezeichenfolgen (einzelner Wert)

Abfragezeichenfolgen (mehrere Werte) (statisch)

Mit dem Bericht "Abfragezeichenfolgen (mehrere Werte)" lassen sich die Informationen ermitteln, die Benutzer in Ihrer Site gesucht haben. Dieser Bericht zeigt die Anzahl der Anforderungen von Abfragezeichenfolgen an, die Sie zur Analyse durch das System konfiguriert haben. Der Systemadministrator kann z. B. eine Abfragezeichenfolge mit mehreren Werten konfigurieren, um die Artikel zu ermitteln, an denen die Benutzer am meisten interessiert sind.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Anforderungen | Name Wert

Zurück zu den Abfragezeichenfolgeberichten

Abfragezeichenfolgen (einzelner Wert) (statisch)

Mit dem Bericht "Abfragezeichenfolgen (einzelner Wert)" lassen sich die Informationen ermitteln, die Benutzer in Ihrer Site gesucht haben. Dieser Bericht zeigt die Anzahl der Anforderungen von Abfragezeichenfolgen an, die Sie zur Analyse durch das System konfiguriert haben. Der Systemadministrator kann z. B. eine Abfragezeichenfolge mit einem einzelnen Werte konfigurieren, um die Häufigkeit zu ermitteln, in der die Benutzer eine bestimmte Suchzeichenfolge in der Site eingegeben haben. Mithilfe dieses Berichts können Sie dann die beliebtesten Suchzeichenfolgen in Ihrer Site analysieren.

In der folgenden Tabelle werden die im Bericht enthaltenen Measures und Dimensionen aufgelistet.

Measures | Dimensionen
Anforderungen | Name Wert

Zurück zu den Diagnoseberichten

Siehe auch

Informationen zur Analyse

Commerce Server-Berichte

Einrichten von Business Analytics.

Suchen von Berichten

Ausführen von Berichten

Anzeigen von dynamischen Berichten

Anzeigen von statischen Berichten

Drucken von Berichten


Berichtseigenschaften

Über die Berichtseigenschaften können Einzelheiten eines Berichts vor dessen Ausführung angezeigt werden. Die Anzeige einer Berichtsabfrage, die in den Eigenschaften des Berichts zur Verfügung steht, hilft bei der Feststellung, ob eine bestimmte Berichtsdefinition die gewünschten Daten liefern wird. Dies ist besonders wichtig vor der Ausführung eines statischen Berichts über einen großen Datensatz, wie beispielsweise beim Bericht "Eigenschaften von registriertem Benutzer" über 10.000.000 Benutzer. Die Verarbeitung von statischen Berichten, die über einen großen Datensatz ausgeführt werden, kann einige Zeit in Anspruch nehmen.

Die Berichtseigenschaften enthalten nützliche Informationen über den Bericht wie den Namen, die Beschreibung, den Typ, das Erstellungsdatum und die Abfrage, die dem Bericht zugrunde liegt. Die Berichtseigenschaften können nicht geändert werden. Informationen über das Anzeigen von Berichtseigenschaften finden Sie unter Anzeigen von Berichtseigenschaften.

In der nachfolgenden Tabelle werden die Eigenschaften beschrieben, die im Berichtsmodul angezeigt werden können.

Eigenschaft | Beschreibung
Name | Name des Berichts.
Beschreibung | Beschreibung des Berichts.
Berichtstyp | Typ des Berichts.
Erstellt am | Erstellungsdatum des Berichts.
Erstellt von | Name der Person, die den Bericht erstellt hat.
Geändert am | Datum der letzten Änderung an diesem Bericht.
Bearbeitet von | Name der Person, welche die letzte Änderung vorgenommen hat.
Abfrage | Abfrage in SQL (Structured Query Language) oder MDX (Multidimensional Expressions), die für den Bericht ausgeführt werden soll. Abfragen stehen nicht für dynamische OLAP-Berichte (OLAP oder Analytische Onlineverarbeitung) zur Verfügung.
Als Adressenliste exportieren? | Gibt an, ob die Daten aus diesem Bericht als Adressenliste in den Listen-Manager exportiert werden können.
Als Benutzerliste exportieren? | Gibt an, ob die Daten aus diesem Bericht als Benutzerliste in den Listen-Manager exportiert werden können.

Siehe auch

Informationen zur Analyse

Commerce Server-Berichte

Erstellen eines neuen dynamischen Berichts


Zeitangaben in Berichten

Alle Commerce Server-Berichte stellen Daten über das Benutzerverhalten in Abhängigkeit von der Zeit dar. Die Berichte über die wöchentlichen Aktivitäten verwenden immer den standardmäßigen Wochenbeginn (gewöhnlich Sonntag) der jeweiligen Sprachversion von SQL Server.


Einrichten von Business Analytics

Die Analysemodule werden zur Ausführung von Berichten und zur Anzeige von Segmentmodellen verwendet, um die Benutzeraktivität in Ihrer Website zu analysieren. Damit die Daten über die Benutzeraktivität für die Analyse zur Verfügung stehen, müssen mehrere Aufgaben ausgeführt werden. In der folgenden Abbildung werden die Abläufe dargestellt, die erforderlich sind, um die Daten für den analytischen Prozess von Commerce Server 2000 zur Verfügung zu stellen.

Segment-Viewer
Segmentmodelle anzeigen
Segmentmodelle erstellen
Commerce Server
installieren
Business Desk
installieren
Berichte
Berichte ausführen
Vorbereitungstask
für die Berichterstellung
Daten in das
Datawarehouse importieren
Datawarehouse
konfigurieren

So richten Sie Business Analytics ein

  1. Der Systemadministrator installiert Commerce Server. Anweisungen zur Installation von Commerce Server finden Sie unter http://support.microsoft.com/support/commerceserver/2000/install/default.asp.

  2. Der Business Desk Client von Commerce Server wird auf den Computern installiert, auf denen Business Analytics-Aufgaben ausgeführt werden sollen.

  3. Der Systemadministrator konfiguriert das Datawarehouse. Weitere Informationen über das Konfigurieren des Datawarehouse finden Sie unter "Konfigurieren der Datawarehouse-Ressourceeigenschaften" in der Hilfe zu Commerce Server 2000. Der Systemadministrator kann den Benutzern auch spezielle SQL Server-Datenbankrollen zuweisen, wodurch manche Benutzer Berichte lesen und speichern, während andere die Berichte nur lesen können. Weitere Informationen über das Erstellen dieser Rollen finden Sie unter "Einrichten von Datawarehouse-Berechtigungen" in der Hilfe zu Commerce Server 2000.

  4. Der Systemadministrator importiert die Daten über Benutzeraktivitäten in Form von Webprotokollen, Transaktions-, Benutzer-, Kampagnen- und Katalogdaten in das Datawarehouse. Informationen über das Importieren von Daten in das Datawarehouse finden Sie unter "Importieren von Daten in Datawarehouse" in der Hilfe zu Commerce Server 2000.

  5. Der Systemadministrator führt den Berichtvorbereitungsprozess aus, durch den die OLAP-Cubes mit den Daten in das Datawarehouse geladen werden. Die OLAP-Cubes werden beim Entpacken einer Site installiert. Die OLAP-Cubes organisieren und speichern die Daten so, dass das Abrufen durch die Analyseprozesse verbessert wird. Informationen über das Ausführen des Berichtvorbereitungsprozesses finden Sie unter "Vorbereiten der Berichtserstellung" in der Hilfe zu Commerce Server 2000.

Der Systemadministrator erstellt Segmentmodelle mit den Daten des Datawarehouse. Informationen über das Erstellen von Segmentmodellen finden Sie unter "Erstellen eines neuen Analysemodells" in der Hilfe zu Commerce Server 2000.

  6. Die Benutzeraktivitäten in einer Website werden durch Ausführen von Analyseberichten und Anzeige von Segmentmodellen analysiert. Informationen über die Ausführung von Berichten finden Sie unter Ausführen von Berichten. Informationen über die Anzeige von Segmentmodellen finden Sie unter Anzeigen eines Segmentmodells.

Siehe auch

Suchen von Berichten

Ausführen von Berichten

Anzeigen eines Segmentmodells


Suchen von Berichten

Mithilfe des Berichtsmoduls kann nach dynamischen und statischen Berichten gesucht werden.

Sie können die Berichtsliste nach einem bestimmten Bericht oder einer Gruppe von Berichten durchsuchen. Sie können über den Suchbereich eine Liste aller verfügbaren Berichte erhalten oder auch die Suche mithilfe der Berichtseigenschaften einschränken. Die Ergebnisliste enthält alle Berichte, die mit den Suchkriterien übereinstimmen. Die Liste enthält vier Spalten (Name, Kategorie, Erstellt durch und Typ), die den vier Berichtseigenschaften mit diesen Namen entsprechen. Die Ergebnisliste kann nach den Eigenschaften Name, Kategorie, Erstellt durch und Typ sortiert werden.

Bei der Suche nach Berichten über Name, Kategorie oder Ersteller liefert das Berichtsmodul alle Einträge, die mit der Suchzeichenfolge beginnen oder ganz übereinstimmen.

So zeigen Sie eine Liste aller verfügbaren Berichte an

So suchen Sie nach einem Bericht über seine Eigenschaften

So sortieren Sie die Berichtsliste

So zeigen Sie eine Liste aller verfügbaren Berichte an

  1. Klicken Sie im Menü Analyse auf der Symbolleiste auf Suchen.

  2. Wählen Sie in der Dropdownliste Suchen nach den Eintrag Alle Berichte aus, und klicken Sie dann auf Suchen.

Im Bildschirm Berichte wird eine Liste aller verfügbaren Berichte angezeigt.

So suchen Sie nach einem Bericht über seine Eigenschaften

  1. Klicken Sie im Menü Analyse auf der Symbolleiste auf Suchen.

  2. Wählen Sie in der Dropdownliste Suchen nach unter den folgenden Einträgen aus:
    Option/Funktion | Zweck
    Name | Suchen nach einem Bericht dieses Namens.
    Kategorie | Suchen nach einem Bericht über die Kategorie, in der dieser enthalten ist.
    Erstellt von | Suchen nach einem Bericht über seinen Ersteller.
    Typ | Suchen nach einem Bericht über seinen Typ (dynamisch oder statisch).
    Jede Information | Suchen nach einem Bericht nach einer beliebigen Kombination von Suchkriterien (Name, Kategorie, Erstellt von und Typ).
    Alle Berichte | Suchen nach allen verfügbaren Berichten.

  3. Geben Sie im daraufhin angezeigten Eigenschaftswertfeld den jeweiligen Wert der ausgewählten Eigenschaft(en) (Name, Kategorie, Erstellt von und Typ) ein, oder treffen Sie in der Liste eine Auswahl.

Wenn Sie die Option Jede Information gewählt haben, werden für vier Eigenschaften Textfelder angezeigt: Name, Kategorie, Erstellt von und Typ.

  4. Geben Sie im entsprechenden Eigenschaftswertfeld den Wert für eine oder mehr Eigenschaft ein, oder treffen Sie in der Liste eine Auswahl.

  5. Klicken Sie auf Suchen.

Im Bildschirm Berichte wird eine Liste aller Berichte angezeigt, die mit den Suchkriterien übereinstimmen.

So sortieren Sie die Berichtsliste

  • Klicken Sie im Menü Analyse auf Berichte, und führen Sie dann folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Sortieren nach Berichtsnamen. Standardmäßig werden die Berichte in aufsteigender alphabetischer Reihenfolge sortiert.
    Kategorie | Sortieren nach Berichtskategorie.
    Erstellt von | Sortieren nach dem Ersteller des Berichts.
    Typ | Sortieren nach Berichtstyp.

Siehe auch

Informationen zur Analyse

Commerce Server-Berichte

Ausführen von Berichten

Anzeigen von Berichtseigenschaften


Ausführen von Berichten

Mithilfe des Berichtsmoduls können dynamische und statische Berichte ausgeführt werden. Der Systemadministrator muss verschiedene Aufgaben erledigen, bevor Berichte ausgeführt werden können. So muss er beispielsweise regelmäßig Daten in das Datawarehouse importieren und den Berichtvorbereitungsprozess ausführen, um sicherzustellen, dass im Datawarehouse stets die aktuellsten Daten vorhanden sind. (Falls erforderlich, erhalten Sie vom Systemadministrator auch die entsprechenden Berechtigungen zum Speichern und Anzeigen eines Berichts.) Weitere Informationen finden Sie unter Einrichten von Business Analytics.

Anmerkung

  • Wenn das Berichtsmodul zum ersten Mal geöffnet wird, geht die Standardansicht von einer Suche nach allen Berichten aus. Die Berichtsliste kann durch Verwendung speziellerer Suchkriterien eingeschränkt werden.

So führen Sie einen dynamischen Bericht aus

So führen Sie einen statischen Bericht aus

So führen Sie einen dynamischen Bericht aus

  • Klicken Sie im Menü Analyse auf Berichte. Markieren Sie in der Liste der verfügbaren Berichte den dynamischen Bericht, den Sie ausführen möchten, und klicken Sie dann auf der Symbolleiste auf Bericht ausführen.

Der abgeschlossene dynamische Bericht wird in einem neuen Browserfenster als PivotTable angezeigt.

Anmerkungen

  • Wenn die PivotTable nicht zu sehen ist, klicken Sie auf Pivot einblenden.

  • Commerce Server 2000 unterstützt in dynamischen Berichten bis zu 250.000 Elemente pro Dimension. Wenn die Datenmenge für den Bericht 250.000 Elemente pro Dimension übersteigt, wird der Bericht im Browserfenster ohne Daten angezeigt.

So führen Sie einen statischen Bericht aus

  1. Klicken Sie im Menü Analyse auf Berichte. Markieren Sie in der Liste der verfügbaren Berichte den statischen Bericht, den Sie aufrufen möchten, und klicken Sie dann auf der Symbolleiste auf Bericht ausführen.

  2. Führen Sie im Dialogfeld Bericht ausführen im Bereich Sitename Folgendes aus:
    Option/Funktion | Zweck
    Operand | Markieren Sie in der Dropdownliste einen Operanden (Alle, Ist gleich, Ist ungleich, Wie, Nicht wie) um festzulegen, für welche Site der Bericht ausgeführt werden soll.
    Parameterwert | Dieses Feld enthält standardmäßig den aktuellen Sitenamen. Geben Sie ggf. den Namen einer anderen Site ein, für die Sie den Bericht ausführen möchten. Wenn der eingegebene Name mit keinem Commerce Server-Sitenamen übereinstimmt, schlägt der Bericht entweder fehl, oder er enthält keine Daten.

  3. Passen Sie im Dialogfeld Bericht ausführen die Parameter entsprechend Ihren Anforderungen an. Alle Berichtsparameter sind berichtsspezifisch.

    Anmerkung

    • Sie können die Berichtsabfrage, den Sitenamen, Feldnamen und die Parametertags für die Zahl der Benutzer und den Sitenamen anzeigen, indem Sie im Dialogfeld Bericht ausführen auf die Schaltfläche Erweitert klicken.
  4. Klicken Sie auf OK.

Der Bericht wird ausgeführt und steht nach seiner Fertigstellung im Modul "Abgeschlossene Berichte" für die Anzeige zur Verfügung.

Vorsicht

  • Wenn viele statische Berichte gleichzeitig ausgeführt werden, kann das die Verarbeitungszeiten verlängern oder sogar dazu führen, dass Business Desk nicht mehr reagiert.

Siehe auch

Informationen zur Analyse

Commerce Server-Berichte

Suchen von Berichten


Anzeigen von dynamischen Berichten

Ein abgeschlossener dynamischer Bericht wird in einem Browserfenster als PivotTable oder PivotChart angezeigt.

So zeigen Sie einen dynamischen Bericht als PivotChart an

So zeigen Sie einen dynamischen Bericht als PivotTable an

So zeigen Sie einen dynamischen Bericht als PivotChart an

  1. Klicken Sie im Menü Analyse auf Berichte, und wählen Sie dann den dynamischen Bericht, den Sie ausführen möchten.

  2. Um den dynamischen Bericht auszuführen, klicken Sie im Bildschirm Berichte auf der Symbolleiste auf Ausführen.

    Der abgeschlossene dynamische Bericht wird in einem neuen Browserfenster als PivotTable oder als PivotChart angezeigt.

    Anmerkung

    • Wenn Sie zum ersten Mal unter Commerce Server Business Desk einen dynamischen Bericht ausführen, werden Sie gefragt, ob auf dem Computer, der Business Desk ausführt, eine registrierte Kopie von Microsoft Office installiert ist. Wenn das nicht der Fall ist, können Sie dynamische Berichte nicht in Microsoft Excel exportieren, den Bericht ändern oder auf die Hilfe zur Microsoft PivotTable-Liste zugreifen. Sie können dann nur die Standardansicht der Daten im Bericht sehen.
  3. Führen Sie im Browserfenster Abgeschlossener Bericht folgende Schritte aus:
    Option/Funktion | Zweck
    Diagramm einblenden | Klicken Sie hierauf, um die PivotChart anzuzeigen. Klicken Sie erneut, um die PivotChart auszublenden.
    Legende einblenden | Klicken Sie hierauf, um eine Legende für die PivotChart anzuzeigen. Klicken Sie erneut, um die Legende auszublenden.
    Datenreihe umkehren | Klicken Sie hierauf, um die Art zu ändern, wie die Daten in der PivotChart dargestellt werden. Diese Schaltfläche hat denselben Effekt wie das Vertauschen der Zeilen- und Spaltendimensionen in der PivotChart.
    Dropdownliste "Diagrammtyp" | Auswählen eines neuen Diagrammtyps für die PivotChart aus der Dropdownliste.

So zeigen Sie einen dynamischen Bericht als PivotTable an

  1. Klicken Sie im Menü Analyse auf Berichte, und markieren Sie dann den dynamischen Bericht, den Sie ausführen möchten.

  2. Um den dynamischen Bericht auszuführen, klicken Sie im Bildschirm Berichte auf der Symbolleiste auf Ausführen.

    Der abgeschlossene dynamische Bericht wird in einem neuen Browserfenster als PivotTable oder als PivotChart angezeigt.

  3. Führen Sie im Browserfenster Abgeschlossener Bericht folgende Schritte aus:
    Option/Funktion | Zweck
    PivotTable einblenden | Klicken Sie hierauf, um die PivotTable anzuzeigen. Klicken Sie noch einmal hierauf, um die PivotTable auszublenden.
    Beschreibung einblenden | Klicken Sie hierauf, um die Beschreibung des Berichts anzuzeigen.


Anzeigen von statischen Berichten

Nach Ausführung eines statischen Berichts finden Sie den abgeschlossenen statischen Bericht in der Berichtsliste des Moduls "Abgeschlossene Berichte".

So überprüfen Sie den Status eines statischen Berichts

So suchen Sie nach abgeschlossenen statischen Berichten

So sortieren Sie die Liste der abgeschlossenen Berichte

So öffnen Sie einen statischen Bericht

So öffnen Sie mehrere statische Berichte

So schließen Sie einen statischen Bericht

So überprüfen Sie den Status eines statischen Berichts

  • Klicken Sie im Menü Analyse auf Abgeschlossene Berichte.

Der Status des Berichts wird in der Statusspalte der Berichtsliste angezeigt. Der Status hat einen der folgenden Werte:

  • Abgeschlossen. Der Bericht ist abgeschlossen. Sie können den Bericht jetzt öffnen, um ihn anzuzeigen.

  • Ausstehend. Der Bericht wird noch ausgeführt.

  • Fehler. Der Bericht wurde nicht erfolgreich abgeschlossen. Wenn ein Bericht fehlschlägt, löschen Sie ihn aus der Liste Abgeschlossene Berichte und rufen den Bericht erneut auf.

Anmerkung

  • Die Statusspalte im Modul "Abgeschlossene Berichte" wird nach der Status-ID in der Reihenfolge Abgeschlossen, Ausstehend und Fehler sortiert.

So suchen Sie nach abgeschlossenen statischen Berichten

  1. Klicken Sie im Menü Analyse auf Abgeschlossene Berichte und dann auf der Symbolleiste auf Suchen.

  2. Wählen Sie in der Dropdownliste Suchen nach: unter den folgenden Einträgen aus:
    Option/Funktion | Zweck
    Name | Suchen nach einem Bericht dieses Namens.
    Ausgeführt von | Suchen nach einem Bericht über den Namen der Person, die den Bericht ausgeführt hat.
    Ausgeführt am | Suchen nach einem Bericht über einen Datumsbereich, innerhalb dem der Bericht ausgeführt wurde.
    Status | Suchen nach einem Bericht über den Berichtsstatus (Abgeschlossen, Ausstehend oder Fehler).
    Jede Information | Suchen nach einem Bericht über eine beliebige Kombination von Suchkriterien (Name, Kategorie, Erstellt von und Typ).
    Alle Berichte | Suchen nach allen verfügbaren Berichten.

  3. Geben Sie im anschließend angezeigten Eigenschaftswertfeld den entsprechenden Wert der ausgewählten Kriterien (Name, Ausgeführt am, Ausgeführt von und Status) ein, oder treffen Sie in der Liste eine Auswahl. Klicken Sie danach auf Suchen.

Die Ergebnisliste enthält alle statischen Berichte, die mit den Suchkriterien übereinstimmen. Sie können die Berichtsliste sortieren, indem Sie auf einen beliebigen Spaltentitel klicken.

So sortieren Sie die Liste der abgeschlossenen Berichte

  • Klicken Sie im Menü Analyse auf Abgeschlossene Berichte, und führen Sie dann folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Sortieren nach Berichtsnamen.
    Ausgeführt am | Sortieren nach Ausführungszeit eines Berichts. Standardmäßig werden die Berichte in absteigender Reihenfolge nach ihrem Ausführungsdatum sortiert.
    Uhrzeit der Ausführung | Sortieren der Berichte nach Ausführungszeit.
    Ausgeführt von | Sortieren der Bericht nach dem Namen der Person, die den Bericht ausgeführt hat.
    Status | Sortieren nach Berichtsstatus (Abgeschlossen, Ausstehend oder Fehler).

Anmerkungen

  • Die Statusspalte im Modul "Abgeschlossene Berichte" wird nach den Werten Abgeschlossen, Ausstehend und Fehler sortiert.

  • Die Spalte Dauer der Ausführung sortiert die Berichte nach der Uhrzeit, zu der ein Bericht ausgeführt worden ist. Diese Spalte kann nur in Verbindung mit der Spalte Ausgeführt am zur Sortierung verwendet werden.

So öffnen Sie einen statischen Bericht

  1. Klicken Sie im Menü Analyse auf Abgeschlossene Berichte.

  2. Markieren Sie in der Berichtsliste den Bericht, den Sie öffnen möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

    Anmerkung

    • Sie können nur Berichte öffnen, die den Status Abgeschlossen haben.

Der statische Bericht wird in einem neuen Fenster als HTML-Dokument angezeigt.

So öffnen Sie mehrere statische Berichte

  1. Klicken Sie im Menü Analyse auf Abgeschlossene Berichte.

  2. Markieren Sie in der Liste der abgeschlossenen Berichte die zu öffnenden Berichte, und klicken Sie dann auf der Symbolleiste auf Öffnen.

Die statischen Berichte werden in einem neuen Fenster als HTML-Dokumente angezeigt.

Anmerkungen

  • Wenn Sie auf die Schaltfläche Alle auswählen klicken, um Berichte in der Liste zu markieren, können Sie diese nicht öffnen. Sie müssen jeden Bericht einzeln markieren, um alle Berichte in der Liste öffnen zu können.

  • Das Öffnen mehrerer statischer Berichte kann dazu führen, dass die Speichergrenzen des Webbrowsers überschritten werden und das Modul "Abgeschlossene Berichte" nicht mehr reagiert.

So schließen Sie einen statischen Bericht

  • Schließen Sie das Browserfenster, in dem der Bericht angezeigt wird.

Siehe auch

Drucken von Berichten

Exportieren eines dynamischen Berichts

Exportieren eines statischen Berichts


Drucken von Berichten

Die Berichte von Commerce Server 2000 sind für die Anzeige im Browserfenster ausgelegt. Sie können dynamische und statische Berichte über den Webbrowser drucken. Wenn Sie große Berichte drucken und anzeigen, werden Sie auf Größenbegrenzungen stoßen.

Wenn Sie die PivotTable eines dynamischen Berichts drucken, dann druckt der Webbrowser nur die Teile der PivotTable, die im Browserfenster sichtbar sind, ohne einen Bildlauf durchzuführen. Wenn Sie die Knoten der PivotTable erweitern, und die sich daraus ergebende Tabelle die Speichergrenzen des Browsers überschreitet, wird die PivotTable nicht gedruckt. Um eine große PivotTable vollständig zu drucken, exportieren Sie die Tabelle nach Microsoft Excel. Informationen über den Export einer PivotTable nach Microsoft Excel finden Sie unter Exportieren eines dynamischen Berichts. Informationen über das Drucken mit Excel finden Sie in der Excel-Hilfe.

Nach Ausführung eines statischen Berichts ist dessen Anzeige im Browserfenster auf 1.000 Zeilen begrenzt. Sie können einen großen statischen Bericht in den Listen-Manager exportieren, um alle Zeilen des Berichts anzuzeigen. Informationen über das Exportieren von Berichten in den Listen-Manager finden Sie unter Exportieren eines statischen Berichts.

So drucken Sie einen Bericht

  1. Klicken Sie im Menü Datei auf Drucken.

  2. Klicken Sie im Dialogfeld Drucken auf Drucken.

Der Bericht wird ausgedruckt.

Siehe auch

Exportieren eines dynamischen Berichts

Exportieren eines statischen Berichts


Exportieren eines dynamischen Berichts

Sie können mithilfe der PivotTable-Steuerelemente einen abgeschlossenen dynamischen Bericht in Microsoft Excel exportieren. Dieser lässt sich dann in Microsoft Excel speichern, ändern und drucken. Microsoft Excel muss auf dem Computer installiert sein, auf dem Sie den Bericht anzeigen.

So exportieren Sie einen dynamischen Bericht nach Microsoft Excel

  1. Klicken Sie im Menü Analyse auf Berichte. Markieren Sie in der Liste der verfügbaren Berichte den dynamischen Bericht, den Sie ausführen möchten, und klicken Sie dann auf der Symbolleiste auf Bericht ausführen.

    Der abgeschlossene dynamische Bericht wird in einem neuen Browserfenster als PivotTable angezeigt.

    Anmerkung

    • Wenn die PivotTable nicht zu sehen ist, klicken Sie auf Pivot einblenden.
  2. Um den Bericht in Microsoft Excel zu öffnen, klicken Sie im Bildschirm PivotTable auf der Symbolleiste PivotTable auf Exportieren nach Excel.

Der Bericht wird als Excel-Kalkulationstabelle angezeigt.

Siehe auch

Informationen zur Analyse

Commerce Server-Berichte

Ausführen von Berichten

Exportieren eines statischen Berichts

Exportieren eines Berichts in den Listen-Manager


Exportieren eines statischen Berichts

Die Daten eines statischen Berichts können vom Berichtsmodul in das Listen-Manager-Modul exportiert werden. Daten statischer Berichte, welche die Direktsendungseigenschaft haben, können in Direktsendungskampagnen verwendet werden. Im Benutzermodul können die Daten statischer Benutzerberichte, z. B. "Eigenschaften von registriertem Benutzer", gelesen und aktualisiert werden.

So exportieren Sie die Daten in eine Liste

  1. Klicken Sie im Menü Analyse auf Berichte.

  2. Markieren Sie in der Berichtsliste den statischen Bericht, der die zu exportierenden Daten enthält, und klicken Sie dann auf der Symbolleiste auf Exportieren.

  3. Passen Sie im Dialogfeld Bericht ausführen die Berichtsparameter entsprechend Ihren Anforderungen an. Alle Berichtsparameter sind berichtsspezifisch.

    Anmerkungen

    • Wenn der im Feld Sitename: Parameterwert eingegebene Name mit keinem Commerce Server-Sitenamen übereinstimmt, enthält der Bericht keine Daten.

    • Sie können die Berichtsabfrage, den Sitenamen, Feldnamen und die Parametertags für die Zahl der Benutzer und den Sitenamen anzeigen, indem Sie im Dialogfeld Bericht ausführen auf die Schaltfläche Erweitert klicken.
  4. Klicken Sie auf OK.

  5. Führen Sie im Dialogfeld Bericht als Liste exportieren folgende Schritte aus:
    Option/Funktion | Zweck
    Statisch | Exportieren einer statischen Liste.
    Dynamisch | Exportieren einer dynamischen Liste.
    Listenname | Eingeben eines eindeutigen Namens für die Liste.
    Berichtsname | Anzeigen des Namens des Berichts, aus dem die Liste erstellt wurde.

  6. Klicken Sie auf OK.

Der statische Bericht wird in das Listen-Manager-Modul als Liste exportiert.

Öffnen Sie das Listen-Manager-Modul, um zu überprüfen, ob die Daten als Liste exportiert wurden. Informationen über das Exportieren von Berichten in den Listen-Manager finden Sie unter Exportieren eines statischen Berichts.

Siehe auch

Informationen zur Analyse

Commerce Server-Berichte

Ausführen von Berichten

Exportieren eines dynamischen Berichts

Exportieren eines Berichts in den Listen-Manager


Erstellen eines neuen dynamischen Berichts

Mit dem Berichtsmodul lässt sich die PivotTable eines Berichts ändern und anschließend der geänderte Bericht als neue Berichtsdefinition speichern. Dieser neu gespeicherte Bericht steht dann in der Berichtsliste zur Verfügung. Informationen über die Erstellung von benutzerdefinierten Berichte für Siteentwickler finden Sie unter Creating Custom Reports (englisches Thema).

Anmerkung

  • PivotCharts können nicht gespeichert werden.

So fügen Sie Felder zu einer PivotTable hinzu

So zeigen Sie einen neuen Bericht in der Berichtsliste an

So aktualisieren Sie die Berichtsliste

So fügen Sie Felder zu einer PivotTable hinzu

  1. Klicken Sie im Bildschirm Analyse auf Berichte, und markieren Sie dann den dynamischen Bericht, den Sie ausführen möchten.

  2. Um den dynamischen Bericht auszuführen, klicken Sie im Bildschirm Berichte auf der Symbolleiste auf Ausführen.

    Der abgeschlossene Bericht wird in einem neuen Browserfenster als PivotTable angezeigt. Über der PivotTable wird die PivotTable-Feldliste angezeigt.

    Anmerkung

    • Wird die Feldliste beim Öffnen der Tabelle nicht automatisch angezeigt, klicken Sie auf der Symbolleiste PivotTable auf die Schaltfläche Feldliste anzeigen.
  3. Ziehen Sie Felder von der PivotTable-Feldliste in die PivotTable.

    Die Elemente in der Feldliste einer PivotTabelle unter Gesamtsummen sind Measures; die Elemente auf derselben Ebene wie Gesamtsummen sind Dimensionen. Measures können zum Datenbereich (d. h. zu den mittleren Zellen) der PivotTable hinzugefügt werden. Dimensionen lassen sich als Zeilen, Spalten oder Filter verwenden.

    Anstatt die Felder von der PivotTable-Feldliste per Drag & Drop zu verschieben, können Sie auch die Schaltfläche Hinzufügen zu ... am unteren Rand der PivotTable-Feldliste verwenden. Um Informationen über die Verwendung der Feldliste zu erhalten, klicken Sie auf der Symbolleiste PivotTable auf die Schaltfläche Hilfe.

  4. Klicken Sie im Fenster des abgeschlossenen Berichts oberhalb der PivotTable auf Speichern. Das Dialogfeld Bericht speichern — Webseite wird angezeigt.

  5. Führen Sie im diesem Dialogfeld folgende Schritte aus:
    Option/Funktion | Zweck
    Berichtsname | Eingeben des Namens für den neuen Bericht.
    Berichtsbeschreibung | Eingeben einer Beschreibung für den neuen Bericht.
    Lange Berichtsbeschreibung | Eingeben einer längeren Beschreibung des Berichts. Diese Beschreibung ist im Browserfenster über den PivotTable-Steuerelementen sichtbar, wenn Sie auf die Schaltfläche Beschreibung einblenden über den PivotTable-Steuerelementen klicken.

  6. Klicken Sie auf OK. Der neue Bericht wird gespeichert.

  7. Schließen Sie das Berichtsfenster, um zum Bildschirm Berichte zurückzukehren.

Weitere Informationen über das Arbeiten mit PivotTables erhalten Sie in der PivotTable-Hilfe. Diese Hilfe rufen Sie auf, indem Sie auf der PivotTable-Symbolleiste auf die Schaltfläche Hilfe klicken.

Wichtig

  • Wenn Sie einen neuen Bericht speichern, speichern Sie die Berichtsdefinition und nicht die Daten. Bei der nächsten Ausführung des Berichts enthält dieser dieselben Zeilen, Spalten und Filter, und die aktuellen Daten werden über Microsoft SQL Server 2000 Analysis Services (OLAP) gemäß den Angaben in der Berichtsdefinition abgefragt.

So zeigen Sie einen neuen Bericht in der Berichtsliste an

  1. Klicken Sie im Menü Analyse auf Berichte.

  2. Klicken Sie im Bildschirm Berichte auf der Symbolleiste auf Suchen. Überprüfen Sie, ob mit den derzeitigen Suchkriterien der Bericht gefunden werden kann, und klicken Sie dann auf Suchen.

So aktualisieren Sie die Berichtsliste

  1. Klicken Sie im Bildschirm Analyse auf der Symbolleiste auf Suchen.

  2. Wählen Sie im Feld Suchen nach den Eintrag Alle Berichte aus, und klicken Sie dann auf Suchen.

Eine neue Berichtsliste wird angezeigt, die alle Berichte enthält.

Siehe auch

Informationen zur Analyse

Commerce Server-Berichte


Löschen von Berichten

Benutzerdefinierte Berichtsdefinitionen können im Berichtsmodul gelöscht werden. Abgeschlossene statische Berichte lassen sich im Modul "Abgeschlossene Berichte" löschen. Die in Commerce Server enthaltenen Definitionen dynamischer oder statischer Berichte können jedoch nicht gelöscht werden. Hierbei handelt es sich um Systemberichte. Diese haben im Berichtsmodul in der Berichtslistenspalte Erstellt von den Wert "System".

Löschen von benutzerdefinierten Berichtsdefinitionen

Löschen von abgeschlossenen statischen Berichten

Löschen von benutzerdefinierten Berichtsdefinitionen

Benutzerdefinierte Berichtsdefinitionen lassen sich im Berichtsmodul löschen. Systemberichte können nicht gelöscht werden. Diese Berichte haben in der Spalte Erstellt von den Wert "System".

Vorsicht

  • Beim Löschen eines benutzerdefinierten Berichts im Berichtsmodul wird auch die Berichtsdefinition gelöscht, und der Bericht kann danach nicht mehr ausgeführt werden.

So löschen Sie einen benutzerdefinierten Bericht

  1. Klicken Sie im Menü Analyse auf Berichte, und markieren Sie dann den benutzerdefinierten Bericht, den Sie löschen möchten.

  2. Klicken Sie auf der Symbolleiste auf Löschen.

  3. Klicken Sie im Dialogfeld Berichte Löschen? zur Bestätigung auf Ja.

Die markierten benutzerdefinierten Berichte werden gelöscht. Die gelöschten Berichte werden nicht mehr in der Berichtsliste angezeigt.

Löschen von abgeschlossenen statischen Berichten

Abgeschlossene statische Berichte können im Modul "Abgeschlossene Berichte" gelöscht werden. Wenn im Modul "Abgeschlossene Berichte" ein statischer Bericht gelöscht wird, wird nur dieser abgeschlossene Bericht gelöscht. Die Berichtsdefinition verbleibt im Berichtsmodul.

Anmerkungen

  • Sie können einen fehlgeschlagenen Bericht auf dieselbe Weise löschen wie einen abgeschlossenen Bericht.

  • Wenn Sie eine Bericht aus der Berichtsliste löschen, der noch in Ausführung ist (Ausstehend), wird dadurch der Bericht nicht beendet. Der Bericht wird weiterhin ausgeführt.

So löschen Sie einen abgeschlossenen statischen Bericht

  1. Klicken Sie im Menü Analyse auf Abgeschlossene Berichte.

  2. Markieren Sie in der Berichtsliste die zu löschenden Berichte, und klicken Sie dann auf der Symbolleiste auf Löschen.

Die markierten statischen Berichte werden gelöscht. Die gelöschten Berichte werden nicht mehr in der Berichtsliste angezeigt.

Siehe auch

Informationen zur Analyse

Commerce Server-Berichte


Anzeigen von Berichtseigenschaften

Im Berichtsmodul können die Eigenschaften Name, Beschreibung, Berichtstyp, Erstellt am, Erstellt von, Geändert am, Geändert von, Abfrage, Als Adressenliste exportieren? und Als Benutzerliste exportieren? für statische und dynamische Berichte angezeigt werden. Über die Anzeige der Abfrageeigenschaft können Sie ermitteln, ob der Bericht die gewünschten Informationen liefern wird.

Es ist nicht möglich, die Berichtseigenschaften zu ändern. Wenn Sie keine Berichtsdefinition mit einer Abfrage finden können, die die gesuchten Daten liefert, können Sie eine dynamische Berichtsdefinition ändern und als neue dynamische Berichtsdefinition speichern. Ihr Systemadministrator kann auch entsprechend Ihren Anforderungen eine neue dynamische oder statische Berichtsdefinition erstellen. Weitere Informationen über das Ändern der Definition eines dynamischen Berichts zur Erstellung einer neuen Definition finden Sie unter Erstellen eines neuen dynamischen Berichts.

So zeigen Sie die Eigenschaften eines Berichts an

  • Klicken Sie im Menü Analyse auf Berichte. Markieren Sie in der Berichtsliste den Bericht, der die Eigenschaften enthält, die Sie anzeigen möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

Eine Liste der Berichtseigenschaften wird angezeigt.

Siehe auch

Informationen zur Analyse

Commerce Server-Berichte

Suchen von Berichten


Analysieren von Benutzersegmenten

Segmente sind Benutzergruppen mit gemeinsamen Merkmalen oder Verhaltensweisen. Segmente werden aus den Eigenschaften abgeleitet, die im Datawarehouse gespeichert sind. Das Segment-Viewer-Modul wird dazu verwendet, um Segmente und Segmentgruppen zu analysieren und dadurch bestimmte Merkmale oder Verhaltensweisen wie z. B. Verwendungstrends zu erkennen. Mithilfe der Analyseergebnisse lassen sich dann Marketingentscheidungen aufgrund von Ähnlichkeiten unter den Benutzern treffen.

Ein Segmentmodell ist eine Sammlung von Segmenten, die bei der Konstruktion des Segmentmodells erstellt werden. Segmentmodelle beschreiben die Merkmale von Benutzern, die zu den jeweiligen Segmenten und Segmentgruppen gehören. Mit Segmentmodellen werden Attributwerte gesucht und analysiert. Diese Attributwerte charakterisieren die Besucher Ihre Site.

Beispiel: Sie haben ein Segmentmodell erstellt und entdecken dann ein Segment, das Benutzer charakterisiert, die ein beliebtes Fantasybuch für Kinder gekauft haben: weiblich, über 40, Einkommen höher als 100.00 DM pro Jahr, Ausbildungsgrad Universität oder höher. Nachdem Sie diese gemeinsamen Merkmale entdeckt haben, können Sie ähnliche Produkte den Benutzern anbieten, die mit diesen Kriterien übereinstimmen. Zum Beispiel würden diese Benutzer vielleicht auch ein Tierbuch für Kinder kaufen.

Zur Anzeige von Segmentmodellen wird das Segment-Viewer-Modul von Commerce Server Business Desk eingesetzt. Die angezeigten Segmente und Segmentgruppen werden von Commerce Server allgemein benannt. Nachdem Sie deren Inhalte analysiert haben, sollten Sie diese so umbenennen, dass die Namen etwas aussagefähiger werden. Nach Umbenennung der Segmente können Sie diese miteinander vergleichen und dann einen Bericht erstellen, der diese Vergleiche aufzeigt. Sie können die Segmentdaten auch in das Listen-Manager-Modul von Business Desk exportieren, um etwa Adressenlisten zu erstellen oder um zu Zwecken der Zielgruppenadressierung Eigenschaften zu Benutzerprofilen hinzuzufügen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Anzeigen eines Segmentmodells

  • Vergleichen zweier Segmente oder Segmentgruppen

  • Umbenennen eines Segments oder einer Segmentgruppe

  • Anzeigen eines Segmentberichts

  • Exportieren von Segmentdaten in den Listen-Manager

Siehe auch

Segmentanalyse

Commerce Server-Berichte


Anzeigen eines Segmentmodells

Wenn ein Segmentmodell zum ersten Mal angezeigt wird, haben die Segmente und Segmentgruppen in der Segmenthierarchie allgemeine Namen wie Segment1, Segment2 usw. Hinter dem Namen wird in Klammern der Prozentanteil an der Gesamtbenutzerzahl angegeben, der durch ein Segment oder eine Segmentgruppe repräsentiert wird. Die Segmentzusammenfassung wird rechts von der Segmentliste auf dem Bildschirm angezeigt.

Arbeitsbereich des Segment-Viewers

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Die Zusammenfassung des Segments oder der Segmentgruppe enthält eine Tabelle mit folgenden Spalten:

  • Eigenschaft/Wert-Paare. Diese beziehen sich aufeinander und fassen die Datensätze im ausgewählten Segment bzw. in der Segmentgruppe am besten zusammen. Wenn z. B. die Mehrheit der Datensätze in einem gegebenen Segment sich auf Personen beziehen, deren Beruf "Student" ist, dann wird in der Eigenschaftsspalte "Beruf" und in der Wertspalte "Student" angezeigt.

  • Ergebnis. Zeigt einen roten Balken an, dessen Länge anzeigt, wie gut das als Suchbegriff verwendete Eigenschaft/Wert-Paar die im markierten Segment oder in der Segmentgruppe enthaltenen Datensätze zusammenfasst.

So zeigen Sie ein Segmentmodell an

  • Klicken Sie auf Segment-Viewer, markieren Sie das anzuzeigende Segmentmodell, und klicken Sie auf der Symbolleiste auf Modell öffnen.

Der Bildschirm Segment-Viewer wird angezeigt, auf dem die Segmentgruppe der obersten Ebene mit der Bezeichnung Auffüllung (100 %) sichtbar ist. Klicken Sie auf den Pfeil neben der Segmentgruppe auf oberster Ebene, um Segmente und Segmentgruppen von darunterliegenden Ebenen anzuzeigen.

Anmerkung

  • Sie können nur jeweils ein Segmentmodell gleichzeitig anzeigen.

Der Systemadministrator installiert Segmentmodelle im Commerce Server-Manager. Informationen über das Erstellen von Segmentmodellen finden Sie unter "Ausführen der Vorhersageressource" in der Hilfe zu Commerce Server 2000.

Siehe auch

Workflow für die Segmentanalyse

Segment-Viewer

Commerce Server-Berichte


Vergleichen zweier Segmente oder Segmentgruppen

Sie können mithilfe des Segment-Viewer-Moduls zwei Segmente bzw. Segmentgruppen miteinander vergleichen. So könnten Sie z. B. herausfinden, dass ein Segment sich auf Benutzer bezieht, die Ihre Site häufig besuchen, und ein anderes auf Benutzer, die Ihre Site in unregelmäßigen Abständen besuchen. Wenn Sie die Benutzergruppen miteinander vergleichen, können Sie herausfinden, welche Merkmale diese beiden Benutzergruppen voneinander unterscheiden.

Für Segmentvergleiche markieren Sie ein Segment und dann das Segment, mit dem Sie das erste vergleichen möchten. Der Vergleich wird in einer Tabelle mit den folgenden Spalten angezeigt:

  • Eigenschaft/Wert-Paare. Hier werden Eigenschaft/Wert-Paare angezeigt, die am besten auf die Unterschiede zwischen den Benutzern des markierten Segments bzw. der Segmentgruppe und den Benutzern im Vergleichssegment bzw. der Vergleichssegmentgruppe hinweisen.

  • Ausgewähltes Segment. Diese Spalte enthält einen gelben Balken, dessen Länge anzeigt, in welchem Ausmaß ein Datensatz mit dem entsprechenden Eigenschaft/Wert-Paar zum ausgewählten Segment bzw. der ausgewählten Segmentgruppe anstatt zum Vergleichssegment oder zur Vergleichssegmentgruppe gehört.

  • Zu vergleichendes Segment. Diese Spalte enthält einen blauen Balken, dessen Länge anzeigt, in welchem Ausmaß ein Datensatz mit dem entsprechenden Eigenschaft/Wert-Paar zum Vergleichssegment oder zur Vergleichssegmentgruppe oder anstatt zum ausgewählten Segment zur ausgewählten Segmentgruppe gehört.

So vergleichen Sie zwei Segmente oder Segmentgruppen

  1. Klicken Sie auf Segment-Viewer, markieren Sie das Segmentmodell, das die zu vergleichenden Segmente enthält, und klicken Sie auf der Symbolleiste auf Modell öffnen.

  2. Markieren Sie in der Segmenthierarchie das Segment oder die Segmentgruppe, die verglichen werden soll.

    Eine Zusammenfassung des ausgewählten Segments bzw. der ausgewählten Segmentgruppe wird im Bildschirm Segment-Viewer unter Zusammenfassung von Segmentname angezeigt.

  3. Wählen Sie im Feld Vergleich von <Segmentname> mit in der Dropdownliste das Segment bzw. die Segmentgruppe, mit der Sie das im vorhergehenden Schritt ausgewählte Segment vergleichen möchten.

Eine Zusammenfassung des Vergleichs wird im unteren Bereich des Bildschirms Segment-Viewer angezeigt. Die Eigenschaften werden in der Reihenfolge der relativen Zugehörigkeit zum ausgewählten Segment bzw. Vergleichssegment aufgelistet.


Umbenennen eines Segments oder einer Segmentgruppe

Wenn ein Segmentmodell zum ersten Mal geöffnet wird, haben die Segmente und Segmentgruppen allgemeine Namen wie Segment1, Segment2 usw. Diese allgemeinen Namen werden in der Segmenthierarchie aufgeführt. Die Gesamtmenge der Benutzer in allen Segmenten wird in der Segmenthierarchie als Auffüllung (100 %) aufgeführt.

Nachdem Sie ein Segment oder eine Segmentgruppe untersucht und anhand der Segmentzusammenfassung und des Vergleichs mit anderen Segmenten festgestellt haben, welche ihrer Merkmale von Bedeutung sind, können Sie aussagefähigere Namen vergeben. Bei der Auswahl eines neuen Namens für ein Segment bzw. eine Segmentgruppe müssen Sie einen Namen auswählen, der im Segmentmodell eindeutig ist.

So benennen Sie ein Segment oder eine Segmentgruppe um

  1. Klicken Sie auf Segment-Viewer, markieren Sie das Segmentmodell, das das umzubenennende Segment bzw. die umzubenennende Segmentgruppe enthält. Klicken Sie dann auf der Symbolleiste auf Modell öffnen.

  2. Erweitern Sie in der Segmenthierarchie die Segmentgruppe der obersten Ebene, bis Sie das umzubenennende Segment bzw. die umzubenennende Segmentgruppe, und markieren sie diese. Klicken Sie dann auf Umbenennen.

  3. Geben Sie im Dialogfeld Segment umbenennen einen neuen Namen für das Segment bzw. die Segmentgruppe ein, und klicken Sie dann auf OK.

    Der neue Name ersetzt den alten Namen in der Segmenthierarchie.

  4. Um weitere Segmente oder Segmentgruppen umzubenennen, wiederholen Sie Schritt 3.

  5. Wenn Sie alle Segmente und Segmentgruppen nach Wunsch umbenannt haben und bereit sind, die Änderungen am Segmentmodell zu speichern, klicken Sie auf der Symbolleiste auf Speichern.

Die neuen Namen werden gespeichert.

Anmerkung

  • Wenn Sie mehrere Namen einer großen Segmentgruppe ändern, kann es einige Zeit dauern, bis die Änderungen gespeichert sind.

Siehe auch

Commerce Server-Berichte


Anzeigen eines Segmentberichts

Mit dem Segment-Viewer kann ein Bericht erstellt werden, der eine Zusammenfassung aller erstellten Segmente und Segmentgruppen darstellt. Der Bericht wird in einem eigenen Fenster von Internet Explorer angezeigt. Anhand dieses Berichts können alle Segmente miteinander verglichen werden. Jedes Segment und jede Segmentgruppe hat Verknüpfungen zu den jeweiligen Detailinformationen. Durch Klicken auf diese Verknüpfungen können Sie leicht zwischen den einzelnen Segmenten wechseln.

So zeigen Sie einen Segmentbericht an

  1. Klicken Sie auf Segment-Viewer, markieren Sie das Segmentmodell, das Sie anzeigen möchten, und klicken Sie auf der Symbolleiste auf Modell öffnen.

  2. Markieren Sie in der Segmenthierarchie das Segment, über das Sie einen Bericht erstellen möchten, und klicken Sie dann auf der Symbolleiste auf Bericht starten.

Der Bericht wird in einem Fenster von Internet Explorer angezeigt.


Exportieren von Segmentdaten in den Listen-Manager

Nach Erstellung Ihrer Segmente können Sie eine Liste der Benutzer in diesen Segmenten zur weiteren Analyse und Verwaltung erstellen. Die Segmentdaten werden in den Listen-Manager von Commerce Server Business Desk exportiert.

So exportieren Sie Segmentdaten in den Listen-Manager

  1. Klicken Sie auf Segment-Viewer, und markieren Sie das Segmentmodell, das die zu exportierenden Daten enthält. Klicken Sie dann auf der Symbolleiste auf Modell öffnen.

  2. Markieren Sie in der Segmenthierarchie das Segment, das die zu exportierenden Daten enthält, und klicken Sie dann auf der Symbolleiste auf Segment in Liste exportieren.

  3. Führen Sie im Dialogfeld Segment in Liste exportieren folgende Schritte aus:
    Option/Funktion | Zweck
    Listennamen eingeben | Eingeben eines Namens für die Liste.
    Minimale Wahrscheinlichkeit | Eingeben eines Schwellenwerts für die Wahrscheinlichkeit einer Mitgliedschaft, den ein Benutzer überschreiten muss, um in eine Liste aufgenommen zu werden.

  4. Klicken Sie auf OK.

Nachdem Sie die Daten exportiert haben, zeigen Sie sie im Listen-Manager-Modul von Business Desk an. Wenn Sie eine vergleichsweise kleine Datenmenge exportieren, sollten die exportierten Daten beinahe augenblicklich im Listen-Manager angezeigt werden. Handelt es sich um eine große Datenmenge, kann es einige Minuten dauern, bis die Daten angezeigt werden. Weitere Informationen über das Exportieren von Berichten finden Sie unter Exportieren eines Berichts in den Listen-Manager.

Anmerkung

  • Wenn Sie Benutzerinformationen in eine Liste exportieren möchten, müssen Sie ein Segment markieren und keine Segmentgruppe. Wenn Sie eine Segmentgruppe markieren, wird die Schaltfläche Segment in Liste exportieren auf der Symbolleiste deaktiviert.


Business Desk-Kampagnen

Mithilfe der Kampagnenmodule können Sie Marketingkampagnen erstellen und verwalten. Kampagnenmodule stellen eine leicht handhabbare Schnittstelle bereit, welche Sie beim Erstellen und Verwalten von Kampagnenzeitplänen unterstützt. Der Kampagnenzeitplan wird verwendet, um die Art der Inhalte, die Benutzern angezeigt werden, sowie deren Auslieferungszeitpunkt zu ermitteln. Sie können Anzeigen-, Direktsendungs- und Preisnachlasskampagnen erstellen und anschließend den Zeitpunkt festlegen, zu dem die Inhalte einer bestimmten Benutzergruppe übermittelt werden sollen.

Darüber hinaus können Sie Kampagnenberichte erstellen, die es Ihnen ermöglichen, fundierte Entscheidungen über die Preisgestaltung, das Marketing und andere Aspekte Ihrer geschäftlichen Tätigkeit zu fällen. Durch die Analyse Ihrer Kampagnen können Sie Ihre erfolgreichsten Kampagnen auswählen und promoten.

Dieser Abschnitt beinhaltet folgende Themen:

  • Workflow für die Kampagnenverwaltung. Zeigt den Workflow für die Erstellung von Kampagnen, die Festlegung von Zielgruppen für Kampagnen und die Verwaltung von Kampagnen.

  • Informationen zu Kampagnen. Beschreibt Anzeigen, Preisnachlässe, Direktsendungen und die Verwendung der Kampagnenzielfestlegung. Erläutert das Erstellen von Zielausdrücken.

  • Einrichten der Referenztabellen. Erläutert, wie Inhaltsgrößen, Branchencodes und Seitengruppen für Ihr Geschäftsmodell eingerichtet werden.

  • Erstellen einer Kampagne. Erklärt, wie Sie Kundeninformationen festlegen, Kampagnen planen und hinzufügen, Kampagnenartikel erstellen, in der Vorschau anzeigen und in Produktion geben.

  • Veröffentlichen von Kampagnenänderungen in der Website. Erklärt, wie Sie Ihre Website mit Informationen aktualisieren können, die Sie mit Business Desk hinzugefügt haben.

  • Wechseln zwischen Kampagnenzielfestlegung und Werbeartikelzielfestlegung. Erläutert, wie Änderungen der Kampagnenzielfestlegung sich auf die Gewichtung der Anzeigen auswirken.

  • Hinzufügen eines Anzeigenkampagnenartikels. Erklärt, wie Sie Anzeigenkampagnenartikel hinzufügen, die Größe der Anzeige festlegen und sie auf Webseiten und Benutzergruppen abstimmen.

  • Hinzufügen eines Preisnachlasskampagnenartikels. Erläutert, wie Sie Preisnachlasskampagnen erstellen und verwalten.

  • Zielgruppenadressierung einer Anzeige oder eines Preisnachlasses. Erläutert den Zweck und die Verwendung von Ziel- und Katalogausdrücken und erklärt, wie Zielgruppen erstellt werden.

  • Hinzufügen eines Direktsendungskampagnenartikels. Erläutert die Erstellung und Verwendung von Sitebenutzerlisten.

  • Verwalten von Listen mit Benutzereinträgen. Erläutert die Verwendung des Listen-Managers bei der Erstellung und Verwaltung von Adressen- und Benutzerlisten.

  • Analysieren von Kampagnen. Erklärt, wie ein Kampagnenbericht ausgeführt und in den Listen-Manager exportiert wird.

  • Löschen und Wiederherstellen von Kampagnen. Beschreibt, wie Kampagnen gelöscht und wiederhergestellt werden.

  • Suchen nach Kampagnen. Erläutert, wie Sie die Suche nach Kampagnen mithilfe von Filterkriterien einschränken können.


Workflow für die Kampagnenverwaltung

Die folgende Darstellung zeigt ein Beispielszenario für das Erstellen, Verwalten und Analysieren von Kampagnen sowie für deren Zielgruppenadressierung.

Workflow für die Erstellung, Verwaltung, Analyse und Zielgruppenadressierung von Kampagnen
Referenztabellen
Kampagne analysieren
Kampagnen-Manager
Referenztabellen einrichten
Kampagne erstellen
Adressenliste importieren
Direktsendungskampagne erstellen
Analyse
Kampagnen-Manager
Zielgruppe für Kampagnenausdrücke
Zielfestlegung für Anzeige oder Preisnachlass
Listen-Manager

  1. Im Modul "Referenztabellen" können Sie die Inhaltsgrößen festlegen und anschließend Branchencodes und Seitengruppen hinzufügen. Diesen Schritt sollten Sie nur dann durchführen, wenn Sie die von Ihrem Siteentwickler bereitgestellten Tabellen ändern möchten.

  2. Im Modul "Kampagnen-Manager" erstellen Sie neue Kunden (z. B. Arbor Shoes) und Kampagnen (z. B. Sommerschlussverkauf). Anschließend fügen Sie einen Preisnachlasskampagnenartikel (z. B. Mitgliederrabatt) zu der Kampagne hinzu.

  3. Im Modul "Kampagnenausdrücke" erstellen Sie einen Zielausdruck, mit dem die Benutzer festgelegt werden, denen sie den Preisnachlass senden wollen.

  4. Im Modul "Kampagnen-Manager" führen Sie einen Bericht aus, mit dem Sie die Effizienz Ihrer Anzeigenkampagne überprüfen können.

  5. Im Listen-Manager-Modul importieren Sie den Kampagnenbericht in den Listen-Manager.

  6. Im Modul "Kampagnen-Manager" führen Sie mit der Liste einen Direktsendungsauftrag aus. Dies ermöglicht die erfolgreiche Zielgruppenadressierung der Benutzer.

Siehe auch

Informationen zu Kampagnen


Informationen zu Kampagnen

Mithilfe des Kampagnenmoduls können Sie Marketingkampagnen erstellen und verwalten und auf Zielgruppen abgestimmte Inhalte für Websites zur Verfügung stellen. Commerce Server stellt verschiedene Verfahren zur Übermittlung von Onlinekampagnen zur Verfügung. Sie können beispielsweise Anzeigen-, Preisnachlass- und Direktsendungskampagnen erstellen. Darüber hinaus können Sie mithilfe der Analyse Ihrer Kampagnen fundierte Entscheidungen zu Preisgestaltung, Marketing und anderen Aspekten Ihrer geschäftlichen Tätigkeit treffen. Nach der Analyse der Benutzerdaten können Sie Ihre Site aktualisieren, um die gewünschten Zielbenutzer noch besser erreichen zu können.

Die Kampagnenmodule sind so konzipiert, dass Sie problemlos mit Kundendaten arbeiten können und so die Wirksamkeit von Anzeigen, Preisnachlässen und Direktsendungen optimieren. Kampagnen bieten folgende Möglichkeiten:

  • Sie können Anzeigen oder Preisnachlässe auf Benutzer mit einem bestimmten Profil abstimmen. Sie können mithilfe des Profil-Designer-Moduls ein Benutzerprofil einrichten und es dann in die Kampagne integrieren. Bei jeder einzelnen Anzeigenseite können Sie entsprechend des Benutzerprofils festlegen, ob dem jeweiligen Benutzer auf dieser Seite zielgerichtete Inhalte angezeigt werden sollen oder nicht.

  • Führen Sie Kampagnen für Kunden durch, die in derselben Branche miteinander konkurrieren. Die konkurrierenden Anzeigen werden niemals auf derselben Seite gezeigt.

  • Berechnen Sie die Anzeigenpreise nach der Anzahl der Anzeigenanforderungen, die Ihre Kunden erhalten möchten.

Dieser Abschnitt beinhaltet folgende Themen:

  • Kampagnenstruktur

  • Kampagnenzielfestlegung

  • Referenztabellen

  • Anzeigen

  • Preisnachlässe

  • Direktsendungen

  • Benutzer- und Adressenlisten

  • Zielgruppenadressierung und Personalisierung

  • Kampagneneffektivität


Kampagnenstruktur

Eine Kampagne ist ein Marketingprogramm, das ein oder mehr Verträge bzw. Aufträge eines Kunden darstellt. So können Sie beispielsweise Kampagnen durchführen, um neue Produkte einzuführen, bestehende Benutzer weiter zu binden oder den Marktanteil zu erhöhen. Jede dieser Kampagnenarten kann mehrere der folgenden Kampagnenartikel enthalten: Anzeigen, Preisnachlässe und Direktsendungen.

Sie können das Kampagnen-Manager-Modul verwenden, um zunächst Kunden, dann Kampagnen und schließlich Kampagnenartikel zu erstellen und zu verwalten.

Die folgende Abbildung stellt die hierarchische Struktur des Kampagnen-Managers dar.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Kundendaten, wie z. B. die Rechnungsadresse, werden für alle Kampagnen dieses Kunden verwendet. Im Kampagnen-Manager-Modul können Sie alle Ihre Kunden in alphabetischer Reihenfolge anzeigen.

Alle Kampagnenartikel innerhalb einer Kampagne haben einen gemeinsamen Kunden- und Datumsbereich. Beispiel: Ein Werbungstreibender in der Reiserubrik einer Onlinezeitung verlangt innerhalb einer Woche 10.000 Anforderungen von Benutzern aus dem Nordwesten der USA. Der Werbungstreibende wird vielleicht zunächst drei verschiedene Anzeigen schalten, bis die 10.000 Anforderungen erreicht sind. Anschließend kann die Anzeige mit der höchsten Klickrate ausgewählt werden. Jede der Anzeigen stellt dabei einen Kampagnenartikel dar.


Kampagnenzielfestlegung

Bei der Kampagnenzielfestlegung wird die Anzahl der in einem bestimmten Zeitraum zu liefernden Anzeigen (das Ziel) festgelegt. Sie haben die Möglichkeit, das Ziel nach Anzeigenklicks oder -anforderungen festzulegen. Kampagnenziele lassen sich auf Kampagnen- oder auf Anzeigenebene festlegen.

  • Bei der Zielfestlegung auf Kampagnenebene werden die Ziele auf alle Kampagnenartikel (Anzeigen) der Kampagne angewendet. Dies geschieht durch eine gewichtete Verteilung der Gesamtzahl von Anforderungen.

    Angenommen, Sie legen für einen Kunden die Ziele auf Kampagnenebene fest. Der Kunde gibt zwei Anzeigen bei Ihnen auf und möchte 25.000 Anzeigenanforderungen erhalten. Auf Kampagnenebene wird nun festgelegt, dass eine Anzeige bei 60 % der Anzeigeanforderungen angezeigt wird und die andere Anzeige bei 40 %. Falls der Kunde nun die Anzahl der Anzeigenanforderungen ändert (z. B. auf 40.000), müssen Sie die Anforderungszahlen für die beiden Anzeigen nicht manuell ändern; eine Anzeige soll weiterhin in 60 %, die andere in 40 % Prozent der Fälle angezeigt werden.

  • Bei der Zielfestlegung auf Anzeigenebene werden die Ziele auf der Kampagnenartikelebene angewendet. Die Gesamtzahl der Anforderungen für die Kampagne entspricht dabei der Gesamtzahl der bestellten Anforderungen für die einzelnen Kampagnenartikel. Ein Kunde beauftragt z. B. 50.000 Anforderungen, die in einem Monat zu liefern sind. Der Anzeigenartikel soll also 50.000 Mal geliefert werden.

Sie können zwischen der Zielfestlegung auf Kampagnen- und auf Anzeigenebene wechseln. Beispiel: Ein Kunde bestellt zwei Anzeigenkampagnenartikel, die zu gleichen Teilen für eine Menge von 1000 Anzeigenanforderungen geschaltet werden sollen. Hierfür sind folgende Schritte durchzuführen:

  1. Sie fügen die Kampagnenartikel zu einer Kampagne hinzu und weisen jedem Artikel eine Gewichtung von 1 zu. Für jeden Artikel wurden 500 Anzeigenanforderungen bestellt.

  2. Später benötigt derselbe Kunde 500 weitere Anforderungen für die erste Anzeige. Sie öffnen die Kampagne, wechseln zur Zielfestlegung auf Anzeigenebene, wählen die erste Anzeige und erhöhen dann die Menge um 500.

    Die Bestellmenge für die erste Anzeige beträgt somit 1000, für die zweite Anzeige 500. Bei Kampagnen, die eine Zielfestlegung auf Anzeigenebene haben, wird die bestellte Gesamtmenge nicht angezeigt.

  3. Zum Schluss möchte der Kunde seinen Auftrag noch so umschichten, dass die erste Anzeige in einem Verhältnis von 3:1 zur zweiten Anzeige geschaltet wird. Sie wechseln also zur Zielfestlegung auf Kampagnenebene. Als Bestellmenge werden jetzt alle 1500 bestellten Anzeigenanforderungen angezeigt. Jetzt stimmen die Gewichtungen der einzelnen Anzeigen mit der bestellten Menge überein.

    Nun können Sie die Gewichtungen der einzelnen Anzeigen auf 3 bzw. 1 ändern. Commerce Server berechnet dann die neuen Mengen mit 1125 und 375.

In einer anderen Situation möchte der Kunde beispielsweise, dass die Kampagne mit einem Verhältnis von 2:1 geschaltet wird und dass die dritte Anzeige ebenfalls eine Gewichtung von 1 erhält. Wenn Sie eine Anzeige zu einer Kampagne hinzufügen, deren Zielfestlegung von der Anzeigen- auf die Kampagnenebene verlegt wurde und die Gewichtung bei 1 belassen, ohne die Gewichtung der anderen Anzeigen anzupassen, kann die Anzeigenlieferung nicht mehr stimmen. In diesem Fall sollten Sie den Kampagnen-Manager neu öffnen und allen Anzeigen neue Gewichtungen zuweisen. Überprüfen Sie anschließend die eigentlichen Berechnungen.

Siehe auch

Wechseln zwischen Kampagnenzielfestlegung und Werbeartikelzielfestlegung

Planen einer Kampagne


Referenztabellen

Mithilfe des Referenztabellenmoduls von Business Desk stellen Sie die Größe der in der Site angezeigten Inhalte ein, verwalten Seitengruppennamen und richten Branchencodes ein. Über diese Codes können Sie verhindern, dass zwei Anzeigen derselben Branche gleichzeitig auf derselben Seite angezeigt werden. Die Eigenschaften im Referenztabellenmodul stellen die Konsistenz der Anzeigeninhalte in Ihrer gesamte Site sicher.

  • Inhaltsgrößen geben die Größe der Inhalte (Anzeigen und Preisnachlässe) an. Commerce Server 2000 bietet eine Reihe standardmäßiger Inhaltsgrößen. Diese Inhaltsgrößen stammen aus einer Liste häufig verwendeter Größen, die vom Internet Advertising Bureau (IAB) genehmigt wurden. Inhaltsgrößen werden im Inhaltsgrößenbereich des Referenztabellenmoduls überprüft.

    Die in den Referenztabellen enthaltenen Inhaltsgrößen stehen zur Verfügung, wenn Sie die gewünschte Größe für die Inhalte eines Kampagnenartikels auswählen. Die vordefinierten Inhaltsgrößen lassen sich anzeigen, bearbeiten und löschen. Sie können aber auch eine neue Inhaltsgröße speziell für Ihre Bedürfnisse erstellen.

  • Branchencodes sind Codes für verschiedene Branchen, beispielsweise für die Automobil-, Luftfahrt- oder Getränkeindustrie. Mithilfe von Branchencodes identifizieren Sie die Branche, aus der eine Anzeige stammt. So können Sie verhindern, dass zwei Anzeigen von Konkurrenzunternehmen auf derselben Seite erscheinen. Branchencodes gelten nicht für Preisnachlässe.

    Sie können die Branchencodes aktualisieren – beispielsweise, um mit mehreren Getränkecodes (z. B. einem für Kaffee und einem für Milch) zu arbeiten. Dadurch können Anzeigen für verschiedene Getränketypen auf derselben Seite erscheinen. Eine Anzeige für Kaffee stellt ja kein Konkurrenzangebot für eine Anzeige für Milch dar. Über die Anzahl der Tabelleneinträge können Sie die Überwachung von Branchenkonflikten begrenzen.

    Commerce Server liefert eine Reihe gebräuchlicher Branchencodes, die Sie sofort verwenden können. Die in Anzeigen verwendeten Branchencodes werden im Referenztabellenmodul im Bereich Branchencodes überprüft. Die in den Referenztabellen enthaltenen Branchencodes stehen zur Verfügung, wenn Sie den Branchencode eines Kampagnenartikels auswählen. Dort haben Sie die Möglichkeit, eine Liste aller aktuellen Branchencodes anzuzeigen, neue Branchencodes hinzuzufügen und vorhandene zu bearbeiten bzw. zu löschen.

  • Seitengruppen sind eine Gruppe verwandter Webseiten, die durch einen bestimmten Seitengruppennamen gekennzeichnet sind und zur Zielgruppenadressierung von Anzeigen verwendet werden. Wenn Sie z. B. eine Onlinezeitung betreiben, können Sie eine Seitengruppe für den Sport, eine für den Leitartikel und eine weitere für Lokalnachrichten erstellen. Somit haben Sie die Möglichkeit, Anzeigen zielgerichtet nur auf Seiten bestimmter Seitengruppen anzuzeigen.

    Die Anzeigentarife für Ihre Kunden lassen sich auf Grundlage der Seitengruppe festlegen. So könnten Sie z. B. für Anzeigen, die auf Ihrer Homepage angezeigt werden, mehr als für Anzeigen auf anderen Seiten berechnen.

Anmerkung

  • Bevor eine Seitengruppe verwendet werden kann, muss der Siteentwickler die entsprechenden Seiten anzeigenfähig machen.

Siehe auch

Einrichten der Referenztabellen


Anzeigen

Commerce Server unterstützt zwei Arten von Anzeigen: bezahlte Anzeigen und Eigenwerbung.

  • Bezahlte Anzeigen sind Inhalte, die Commerce Server basierend auf einer bestimmten Lieferformel liefern muss. Diese wird als Bereitstellungsbedarf bezeichnet.

  • Eigenwerbung sind Inhalte, die dann geliefert werden, wenn bezahlte Anzeigen den festgelegten Bereitstellungsbedarfzeitplan vorzeitig erfüllt haben. Beispiel: Ein Kunde bestellt 1000 bezahlte Anzeigen, die über einen Zeitraum von vier Monaten geliefert werden sollen. In den ersten beiden Monaten allein wird die Anzeige jedoch bereits 850 Mal geliefert. Um den Bereitstellungsbedarfzeitplan wieder auszugleichen, wird Eigenwerbung geliefert.

    Eigenwerbung spielt eine große Rolle bei der reibungslosen Lieferung von bezahlten Anzeigen. Eigenwerbung wird auch dann angezeigt, wenn einer Anforderung keine bezahlten Anzeigen entsprechen. Eigenwerbung wird beispielsweise geliefert, falls alle bezahlten Anzeigen einem erforderlichen Ziel nicht entsprechen.

    Eigenwerbung kann auch dazu eingesetzt werden, Restbestände zu reduzierten Preisen zu verkaufen. Außerdem ist Eigenwerbung nützlich, wenn die Anzeigen in Ihrer Site keine speziellen Lieferziele haben, Sie die Anzeigen aber mit bestimmten Gewichtungen schalten möchten.

Bestandteile einer Anzeige

In Commerce Server bestehen Anzeigen aus vier Teilen:

  • Anzeigeneigenschaften umfassen den Namen der Anzeige, den Typ (bezahlte Anzeige oder Eigenwerbung), die Gewichtung bzw. die Anzahl der zu liefernden Anforderungen oder Klicks (bezahlte Anzeigen gegen Eigenwerbung), das Anzeigenlimit sowie den Branchencode der Anzeige.

  • Der Anzeigenzeitplan bestimmt das Anfangs-/Beendigungsdatum sowie die Anfangs-/Beendigungszeit. Sie können die Wochentage sowie die Tageszeiten auswählen, zu denen eine Anzeige angezeigt wird.

  • Das Anzeigenziel legt die Seiten fest, auf denen der Preisnachlass angezeigt wird, sowie die Zielgruppen, auf die er ausgerichtet ist.

  • Die Anzeigendarstellung bestimmt die Größe der Anzeige, ihren Typ (z. B. Bild, Text oder HTML) und ggf. das Bild und/oder den URL, auf das/den Benutzer klicken können, um zu einer anderen Seite (oder Website) zu gelangen. Anzeigen lassen sich als Bilder, Text, HTML, nicht anzuklickende Bilder, "Jetzt kaufen"-Anzeigen, Windows Media Services oder Vignetten anzeigen. (Eine Vignettenanzeige besteht aus einem Bild und Text, der daneben angezeigt wird.)

Zielgruppenadressierung von Anzeigen

Mit Commerce Server können Sie festlegen, wann, wo und wem eine Anzeige angezeigt wird. Bei der Erstellung einer Anzeige legen Sie Folgendes fest:

  • Anzeigelimit. Gibt an, wie oft eine Anzeige einem Benutzer innerhalb einer Sitzung gezeigt werden kann.

  • Gewichtung. Über die Gewichtung wird festgelegt, wie oft eine Anzeige im Verhältnis zu allen Kampagnenartikeln eines bestimmten Kunden angezeigt wird. In einer Kampagne gilt die Gewichtung nur für Anzeigen, deren Zielfestlegung auf Kampagnenebene liegt. Wenn die Zielfestlegung von Anzeigen auf Anzeigenartikelebene stattfindet, wird für bezahlte Anzeigen die Gewichtung nicht verwendet.

    Bei Eigenwerbung steht die Gewichtung im Verhältnis zu der übrigen Eigenwerbung für alle Kunden und Kampagnen. Bei bezahlten Anzeigen ist die Gewichtung relativ zu anderen bezahlten Anzeigen derselben Kampagne. Die Gewichtung eines einzelnen Kampagnenartikels hängt von der Gewichtung aller übrigen Kampagnenartikel ab.

    Beispiel: Sie möchten mit vier Anzeigen Farbe verkaufen. Sie weisen die Gewichtungen wie folgt zu:

    Anzeige | Gewichtung | Lieferanteil in Prozent
    Blaue Farbe | 1 | 10
    Grüne Farbe | 2 | 20
    Rote Farbe | 3 | 30
    Gelbe Farbe | 4 | 40
    Gesamtgewichtung | 10 | 100

    Die Gesamtgewichtung aller Anzeigen beträgt 10 (1+2+3+4 = 10). Die Anzeige für blaue Farbe hat eine Gewichtung von 1, sodass sie bei jeder zehnten Anforderung angezeigt wird.

    Bei bezahlten Anzeigen ist die Gewichtung das Verhältnis einer einzelnen Anzeige zur Summe aller Kampagnenartikel der betreffenden Kampagne. Bei Eigenwerbung ist die Gewichtung die Summe der Gewichtungen der übrigen Eigenwerbung in der Kampagne.

    Bei Anzeigen, deren Zielfestlegung auf der Kampagnenartikelebene stattfindet, hat die Gewichtung keinen Einfluss auf die Lieferung der Anzeige. Bei diesen Anzeigen legen Sie statt dessen direkt die Anzahl der Anforderungen bzw. Klicks fest, die geliefert werden sollen.

  • Seitengruppen. Eine Seitengruppe ist eine Gruppe verwandter Webseiten, die durch einen bestimmten Seitengruppennamen gekennzeichnet ist und zur Zielgruppenadressierung von Anzeigen verwendet wird. Wenn Sie z. B. eine Onlinezeitung betreiben, können Sie eine Seitengruppe für den Sport, eine für den Leitartikel und eine weitere für Lokalnachrichten erstellen. Somit haben Sie die Möglichkeit, Anzeigen zielgerichtet nur auf Seiten bestimmter Seitengruppen anzuzeigen.

    Seitengruppen werden mithilfe des Referenztabellenmoduls erstellt.

  • Zielgruppen. Eine Gruppe von Zielen, für die bestimmte Inhalte angezeigt werden. Sie können z. B. Anzeigen zielgerichtet bei Benutzern mit bestimmten Profileigenschaften anzeigen. Weitere Informationen über Ziele und Zielgruppen finden Sie unter Zielgruppenadressierung und Personalisierung.

Verarbeiten von Anzeigenkampagnenartikeln

Das Content Selection Framework (CSF) verarbeitet die Variablen, die Sie für eine Anzeige festlegen: Kampagnenzielfestlegung, Anzeigelimit, Anzeigenzeitplan, Gewichtung, Seiten- und Zielgruppen. Das CSF bestimmt bei jedem Besucher Ihrer Site, ob die Anzeige angezeigt werden soll oder nicht.

Das Content Selection Framework für Werbung setzt eine Formel namens Bereitstellungsbedarf ein, um Anzeigen einen Ausgangswert basierend auf ihrem Zeitplanstatus zu geben. Diese Formel berücksichtigt die Gesamtmenge der zu liefernden Inhalte sowie den Zeitraum, in dem diese Menge geliefert werden muss. Der Bereitstellungsbedarf wird durch das Content Selection Framework für jede Anzeigenanforderung nach deren Verarbeitung berechnet. Der Bereitstellungsbedarf gilt nur für bezahlte Anzeigen, nicht für Eigenwerbung.

Wenden Sie sich an Ihren Siteentwickler, wenn Sie wissen möchten, auf welcher Basis Ihre Anzeigen angezeigt werden. Commerce Server enthält das Tool TraceScores, mit dem Siteentwickler den Auswahlprozess nachverfolgen können. Mithilfe von TraceScores lässt sich genau nachvollziehen, wie der interne Content Selection-Prozess funktioniert.

Wenn Sie mehrere Kampagnen mit derselben Zielgruppe und Priorität gleichzeitig durchführen möchten, wählt das Content Selection Framework basierend auf dem Anzeigentyp die Anzeige aus, die angezeigt wird. Bei zwei Eigenwerbungsanzeigen wird eine davon nach dem Zufallsprinzip ausgewählt, wobei die Gewichtungen als relative Wahrscheinlichkeiten verwendet werden. Wenn es sich um bezahlte Anzeigen handelt, erfolgt die Auswahl aufgrund des errechneten Bereitstellungsbedarfs. (Diese Berechnung berücksichtigt Anfangsdatum, Beendigungsdatum, Anzahl der geplanten Ereignisse und die bisher gelieferten Ereignisse.) Der Wert kann u. a. durch den Verlaufsabzug geändert werden. Dieser nimmt bei Anzeigen, die erst kürzlich von einem Benutzer betrachtet wurden, einen Abzug vor. Wenn der Verlaufsabzug aktiviert ist, werden Anzeigen im Rotationsverfahren dargestellt.

Siehe auch

Hinzufügen eines Anzeigenkampagnenartikels


Preisnachlässe

Preisnachlässe können auf jeden Artikel im Katalog angewendet werden. Preisnachlässe lassen sich auf eine gesamte Bestellung (Bestellebenen-Preisnachlass) oder auf bestimmte Artikel der Bestellung (Artikelebenen-Preisnachlass) anwenden.

  • Bestellebenen-Preisnachlässe gelten für alle Produkte in einem Warenkorb. So ist z. B. Ohne Frachtkosten eine Art von Bestellebenen-Preisnachlass: Benutzer brauchen bei diesem Preisnachlass für alle Produkte in ihrem Warenkorb keine Frachtkosten zu bezahlen. Ohne Frachtkosten ist der einzige in Commerce Server enthaltene Bestellebenen-Preisnachlass. Falls Sie andere Preisnachlässe auf Bestellebene anbieten möchten (z. B. einen Preisnachlass in Höhe von 10 % für bevorzugte Benutzer), muss ein Siteentwickler benutzerdefinierte Änderungen an der Site vornehmen.

  • Artikelebenen-Preisnachlässe gelten für bestimmte Produkte in einem Warenkorb.

Wenn Sie einen Preisnachlass auf eine gesamte Bestellung gewähren, wird dieser Preisnachlass auf jeden Artikel einzeln angewendet. Auf einen Bestelleinzelposten mit der Menge 1 kann nur ein Preisnachlass angewendet werden. Auf denselben Posten mit der Menge 1 können nicht zwei Preisnachlässe angewendet werden.

Mithilfe von Commerce Server lassen sich die folgenden Preisnachlasstypen erstellen und anwenden:

  • "Klick erforderlich"-Preisnachlässe werden nur angewendet, wenn ein Benutzer auf den Preisnachlass-URL klickt. Dies kann ein Bild des Produkts sein, auf dem z. B. "Sparen Sie 10 %!" steht. Siteentwickler können diesen Preisnachlasstyp für andere Zwecke erweitern, z. B. für Coupons, die Kunden haben müssen, um den Preisnachlass zu erhalten.

  • Preisnachlässe mit Hebelwirkung sind an den Kauf anderer Produkte gebunden. Wenn Benutzer z. B. ein Telefon zum Warenkorb hinzufügen, können Sie ihnen beim Auschecken eine Freisprechanlage anbieten. Durch Hinzufügen des Artikels zum Warenkorb nehmen sie den Preisnachlass an. Sie haben auch die Möglichkeit, den Benutzern einen anderen Zubehörartikel zu einem reduzierten Preis anzubieten.

  • Prozentuelle Preisnachlässe reduzieren den Preis eines Produkts um einen bestimmten Prozentsatz statt um einen festen Geldbetrag. So können Sie z. B. einen Preisnachlass von 10 % auf Produkte geben und dann den Preis der Produkte bei Bedarf ändern. Wenn Sie den Preis der Produkte ändern, wird der Preisnachlass automatisch angepasst.

  • Festbetragspreisnachlässe reduzieren den Preis von Produkten um einen festen Betrag. So können Sie z. B. einen Preisnachlass in Höhe von DM 10,00 auf bestimmte Produkte geben. Auch wenn Sie den Preis der Produkte ändern, bleibt der Preisnachlass (DM 10,00) immer gleich.

  • "Happy Hour"-Preisnachlässe reduzieren den Preis von Produkten zu bestimmten Zeiten. Mithilfe von Ausdrücken, die die Eigenschaft Aktuelle Uhrzeit auswerten, können Sie Preisnachlässe so planen, dass sie zu bestimmten Zeiten angewendet werden. Beispiel: Wenn Aktuelle Uhrzeit > 17:00 Uhr und Aktuelle Uhrzeit < 21:00 Uhr, Preisnachlass von 10 % auf Produkt geben.

Diese Preisnachlässe können Sie auf einzelne oder alle Produkte in einer Kategorie anwenden, oder Sie können einen Ausdruck erstellen, mit dem nur Produkte einen Preisnachlass erhalten, die bestimmte Kriterien erfüllen (z. B. Preisnachlässe in Höhe von 10 % auf alle Artikel eines bestimmten Herstellers).

Preisnachlässe lassen sich z. B. für folgenden Szenarien erstellen:

  • Produktpreis ist größer als DM 40,00. Dies ist ein Preisnachlass-Bedingungsausdruck. Preisnachlass-Bedingungsausdrücke basieren auf einer Produkteigenschaft.

  • Benutzer kauft 2. Dies ist Teil eines erforderlichen Kriteriums für eine Preisnachlassbedingung.

  • Benutzer klickt auf einer Sportseite auf eine Preisnachlassanzeige. Dies ist der "Klick erforderlich"-Teil eines Preisnachlasses.

  • Benutzer ist registriert. Dies ist ein Ausdruck für die Preisnachlassberechtigung. Preisnachlass-Berechtigungsausdrücke basieren auf Benutzer- und Kontextprofilen.

Es ist nicht möglich, mehrere Preisnachlässe gleichzeitig auf ein Produkt anzuwenden. Ein Kunde kann nur einen Preisnachlass pro Produkt erhalten, bzw. eine Bedingung kann nur auf einen Preisnachlass angewendet werden. Nachdem ein Produkt als Bedingung oder Auszeichnung für einen Preisnachlass verwendet wurde, kann es nicht als Bedingung oder Auszeichnung für einen weiteren Preisnachlass verwendet werden.

Bestandteile eines Preisnachlasses

Ein Preisnachlasskampagnenartikel hat folgende Bestandteile: Preisnachlasseigenschaften, Preisnachlassdefinition, Preisnachlassziel und Preisnachlassanzeige. Mithilfe des Kampagnen-Manager-Moduls werden diese Komponenten bei der Erstellung des Preisnachlasses definiert.

  • Zu den Preisnachlasseigenschaften zählen Name, Priorität, Anfangs- und Beendigungsdatum des Preisnachlasses.

  • Die Preisnachlassdefinition gibt an, worauf der Nachlass gewährt wird, wie hoch er ist und für wen er gilt. Eine Preisnachlassdefinition besteht aus Folgendem:
    • Der Zielausdruck bestimmt, wofür der Preisnachlass gilt. Der Zielausdruck Buch_Preis > 20 z. B. wendet den Preisnachlass auf alle Bücher an, die diesem Kriterium entsprechen.

    • Eine Anforderung identifiziert den Benutzer und/oder Kontext, für den der Preisnachlass angezeigt wird. Beispiel: Sie können einer registrierten Benutzerin, die bei Ihrem letzten Besuch Waren im Wert von DM 100,00 gekauft hat, einen Preisnachlass anbieten. Eine andere Möglichkeit: Wenn ein Benutzer in Ihrer Site an einem bestimmten Tag einkauft oder eine bestimmte Seite anzeigt, erfüllt er die Kontextanforderungen und erhält einen Preisnachlass in Höhe von 10 %.

    • Eine Auszeichnung bestimmt, was Benutzer erhalten, z. B. einen Preisnachlass in Höhe von 10 % oder Versand ohne Frachtkosten. Eine Auszeichnungsbedingung muss wahr sein, damit der Preisnachlass angewendet wird. Die Auszeichnungsbedingung wird dabei für jeden Artikel im Bestellformular ausgewertet. Dabei kann es sich um einen Ausdruck handeln, der angibt, dass der Preisnachlass für einen bestimmten oder für alle Artikel gilt.
  • Das Preisnachlassanzeigenziel legt die Seiten fest, auf denen ein Preisnachlass angezeigt wird, sowie die Zielgruppen für den Preisnachlass.

  • Die Preisnachlassanzeige bestimmt, wie oft der Preisnachlass einem Benutzer angezeigt wird, das Bild und/oder den URL, auf das/den Benutzer für den Erhalt des Preisnachlasses klicken müssen, sowie die Preisnachlassinformationen, die im Warenkorb beim Auschecken angezeigt werden.

Preisnachlasspriorität

Jedem Preisnachlass wird eine Priorität zugeteilt, die bestimmt, wann er im Verhältnis zu anderen für ein Produkt geltenden Preisnachlässen angezeigt werden soll. (Anders als bei Anzeigen werden bei Preisnachlässen keine Gewichtungen verwendet, um die Lieferung zu bestimmen.) Beispiel: Sie erstellen drei Preisnachlässe und weisen jedem wie in der folgenden Tabelle gezeigt eine Priorität zu.

Preisnachlass | Priorität
10 % Preisnachlass für Telefone | 10
30 % Preisnachlass für bevorzugte Benutzer, die Telefone, Radios oder Computer kaufen | 20
Ohne Frachtkosten | 30

Wenn ein bevorzugter Benutzer in Ihrer Site u. a. ein Telefon kauft, gilt für das Telefon nur der Preisnachlass in Höhe von 10 %. Weder der Preisnachlass in Höhe von 30 % noch die Befreiung von den Frachtkosten werden auf den Kauf des Telefons angewendet, da diese Preisnachlässe eine geringere Priorität haben.

Falls zwei Preisnachlässe dieselbe Priorität aufweisen, kann u. U. der verwendete Datenbanktyp beeinflussen, welcher Preisnachlass gilt. Bei Preisnachlässen mit derselben Priorität kann das Ergebnis nicht mit Sicherheit vorhergesagt werden.

Preisnachlässe auf Basis von Bestellmenge oder -wert

Sie haben die Möglichkeit, Preisnachlässe auf Basis der Bestellmenge oder des Bestellwerts eines Benutzers anzuwenden. So können Sie z. B. einen Preisnachlass erstellen, der angewendet wird, wenn ein Benutzer drei Kisten Saft (Menge) kauft, oder einen Preisnachlass, der gilt, wenn ein Benutzer Saft für DM 40,00 kauft (Wert).

Pro Menge oder Wert kann ein Preisnachlass angewendet werden. Beispiel: Die Getränkeabteilung Ihres Onlinesupermarkts hat im Sommer folgendes Angebot: Beim Kauf einer Kiste Saft gibt es die zweite Kiste zum halben Preis. Der Onlinesupermarkt hat jedoch ein weiteres Angebot, das auf alle Getränkeprodukte einen Preisnachlass von 10 % gibt. Nehmen Sie an, dass Sie den Preisnachlässen Prioritäten wie in folgender Tabelle zuweisen.

Preisnachlass | Priorität
Beim Kauf einer Kiste Saft gibt es auf die zweite Kiste einen Preisnachlass von 50 %. | 10
10 % Preisnachlass auf alle Getränkeprodukte. | 20

Wenn ein Benutzer jetzt vier Kisten Saft kauft, werden die Preisnachlässe wie folgt angewendet:

  • Kiste 1: Kein Preisnachlass

  • Kiste 2: 50 % Preisnachlass

  • Kiste 3: 10 % Preisnachlass

  • Kiste 4: 50 % Preisnachlass, jedoch nur, falls der Preisnachlass "Eine Kiste kaufen, die zweite zum halben Preis" keiner Einschränkung unterliegt. Der Preisnachlass in Höhe von 50 % wird statt des Preisnachlasses in Höhe von 10 % angewendet, da er eine höhere Priorität hat.

Preisnachlassgrenzen

Sie haben die Möglichkeit, die Anzahl der Preisnachlässe zu begrenzen, die auf einen Warenkorb angewendet werden können. Wenn die Preisnachlassgrenze den Wert null (0) hat, unterliegen Preisnachlässe keiner Einschränkung: Ein Preisnachlass kann mehrmals angewendet werden – vorausgesetzt, dass die Bedingung für den Preisnachlass mehrmals im Warenkorb erfüllt wird. Die Preisnachlassgrenze ist auf den Warenkorb begrenzt und gilt nicht für mehrere Warenkörbe. Wenn ein Benutzer z. B. auscheckt, zurückkommt und dieselben Artikel kauft, erhält er erneut denselben Preisnachlass.

Verarbeiten von Preisnachlasskampagnenartikeln

Preisnachlasskampagnen werden durch die Inhaltsauswahl-Pipeline für Preisnachlässe und die Bestellpreisnachlass-Pipelinekomponente verarbeitet. Mithilfe der CSF-Pipeline für Preisnachlässe können Sie Benutzern den Preisnachlass anzeigen, der für sie am besten geeignet ist. Über die Bestellpreisnachlass-Komponente der Warenkorbpipeline werden Preisnachlässe auf den Warenkorb angewendet.

  • Die Inhaltsauswahl-Pipeline für Preisnachlässe überprüft Anfangs- und Beendigungsdaten der Preisnachlässe und passt dann die entsprechenden Ergebnisse in der Liste der möglichen Preisnachlässe an. So wird sichergestellt, dass die Preisnachlässe, die für den aktuellen Benutzer am relevantesten sind, die höchste Priorität erhalten.

  • Die Bestellpreisnachlass-Pipelinekomponente wendet zunächst die Anforderungen auf die verfügbaren Preisnachlässe an. Abhängig vom jeweiligen Preisnachlass werden zur Auswertung der Zielausdrücke Benutzer- bzw. Kontextprofilinformationen eingesetzt. Außerdem wird die Liste der Kampagnenartikel-IDs für jeden angeklickten Artikel überprüft, falls ein Preisnachlass einen Klick erfordert. Anschließend verarbeitet die Bestellpipeline die einzelnen Artikel, wobei die Bedingungen und Auszeichnungen getestet werden. Preisnachlässe werden von der höchsten zur niedrigsten Priorität angewendet. Falls zwei Preisnachlässe dieselbe Priorität haben, bestimmen andere Eigenschaften als die Priorität die Reihenfolge für die Anwendung der Preisnachlässe.

Siehe auch

Hinzufügen eines Preisnachlasskampagnenartikels

Zielgruppenadressierung einer Anzeige oder eines Preisnachlasses


Direktsendung

Direktsendungskampagnenartikel werden erstellt, um Anzeigen per E-Mail zielgerichtet an eine Benutzergruppe zu senden. Das Ziel ist, eine hohe Rückmeldungsquote auf die Direktsendungen zu erhalten. Sie können personalisierte E-Mail-Nachrichten von einer Webseite bzw. nicht personalisierte Nachrichten aus einer nichtformatierten Textdatei senden. In den Direktsendungsnachrichten, die Sie erstellen, können Anlagen wie z. B. Bilder, Preisnachlässe oder URLs enthalten sein. Der Direktsendungsdienst ist für den Massenversand von personalisierten E-Mail-Nachrichten an Millionen Benutzer ausgelegt.

Die Einrichtung einer Direktsendungskampagne erfolgt mithilfe des Kampagnen-Manager-Moduls von Business Desk. Direktsendungskampagnenartikel werden vom Direct Mailer-Dienst verarbeitet. Dies ist ein leistungsfähiges Modul, mit dem sehr schnell eine große Anzahl von E-Mails versendet werden kann.

So erstellen Sie einen Direktsendungskampagnenartikel:

  • Erstellen der Nachricht. Zur Erstellung personalisierter E-Mail-Nachrichten muss Ihr Siteentwickler zuerst Active Server Pages (ASP) mit dem personalisierten Text erstellen und diese zum Webserver hinzufügen. Vom Siteentwickler erhalten Sie dann den URL der ASP-Seiten. Zum Erstellen einer nicht personalisierten Nachricht können Sie einfach Text in eine nichtformatierte Datei eingeben, z. B. mithilfe von Editor.

  • Erstellen einer Empfängerliste. Mit den leistungsfähigen Analysetools von Commerce Server lässt sich eine Liste mit Empfängern für die Direktsendungskampagne erstellen. So können Sie z. B. mit dem Berichtsmodul von Business Desk einen Bericht unter Verwendung der Daten im Datawarehouse ausführen, um eine Liste bestimmter Benutzer zu erhalten. Die fertige Liste kann dann in den Listen-Manager exportiert werden. Unter Verwendung der Vorhersageressource ist es auch möglich, eine Liste von Benutzern in einem bestimmten Benutzersegment zu erstellen und diese Liste in den Listen-Manager zu exportieren. Nachdem eine Liste in den Listen-Manager exportiert wurde, steht sie für Direct Mailer zu Verfügung.

    Es ist nicht möglich, Zielgruppen zu verwenden, um Direktsendungen direkt an E-Mail-Adressen von Benutzern zu schicken.

  • Erstellen und Planen der Direktsendungskampagne. Im Kampagnen-Manager-Modul bestimmen Sie den Kampagnennamen, den Namen der Empfängerliste, Anfangszeit und -datum des Kampagnenartikels sowie den URL (für personalisierte Nachrichten) bzw. die statische Datei für den Nachrichtentext.

Weitere Informationen über das Hinzufügen von Direktsendungskampagnenartikeln finden Sie unter Hinzufügen eines Direktsendungskampagnenartikels.

Abonnementkündigungslisten

Direct Mailer unterstützt eine Funktion zur Abonnementkündigung. Bei Direktsendungsaufträgen, die als Teil eines Kampagnenartikels ausgeführt werden, können einzelne Empfänger ihr Abonnement des Direktsendungskampagnenartikels kündigen. Zum Lieferumfang der Commerce Server-Lösungssites gehört eine ASP-Seite zur Abonnementkündigung, mit deren Hilfe Sie eine Adressenliste anhand einer Abonnementkündigungsliste filtern können.

Auf der ASP-Seite für die Direct Mailer-Aufträge kann ein Siteentwickler Links zu einer opt-out.asp-Seite anbieten. Auf dieser Seite können Empfänger über den entsprechenden Link ihr Abonnement für die Site bzw. für den Direktsendungskampagnenartikel kündigen. Wenn ein Direct Mailer-Auftrag als Teil eines Kampagnenartikels ausgeführt wird, prüft Direct Mailer, ob eine Abonnementkündigungsliste auf Siteebene oder auf Kampagnenebene vorhanden ist. Falls eine dieser Listen vorhanden ist, wird sie von der ursprünglichen Adressenliste abgezogen. Die so erhaltene Liste fungiert dann als neue Adressenliste.

Verarbeiten von Direktsendungskampagnenartikeln

Direct Mailer führt die folgenden Aufgaben durch:

  • Verwalten von Direktsendungsaufträgen.

  • Erstellen personalisierter und nicht personalisierter Nachrichtentexte.

  • Formatieren von Kopfzeilen von E-Mail-Nachrichten.

  • Einstellen des Codepagewerts (Sprache) und Konvertieren von Nachrichtentexten in den richtigen Nachrichtentyp: MHTML (MIME Encapsulation of Aggregate HTML Documents), MIME (Multipurpose Internet Mail Extensions) oder Text.

  • Senden von E-Mail-Nachrichten an Empfänger.

Die Direct Mailer-Pipeline wird zur Verarbeitung von Empfängerlisten eingesetzt. Sie haben die Möglichkeit, neue Komponenten zur Pipeline hinzuzufügen, die Komponenten in branchenspezifische Systeme zu integrieren oder diese durch Komponenten von Drittanbietern zu ersetzen.

Siehe auch

Hinzufügen eines Direktsendungskampagnenartikels


Benutzer- und Adressenlisten

Mithilfe des Listen-Manager-Moduls von Commerce Server Business Desk können Sie Benutzer- und Adressenlisten in Business Desk importieren und exportieren.

  • Hinzufügen von Listen zum Listen-Manager. Sie haben die Möglichkeit, Commerce Server-Analyseberichte als Listen in den Listen-Manager zu exportieren. Sie können in anderen Anwendungen erstellte Listen in den Listen-Manager importieren. Beispiele solcher Anwendungen sind SQL Server (SQL-Tabellen), Editor (ASCII-Textdateien), Microsoft Excel (Kalkulationstabellen) oder Microsoft Outlook (PST-Dateien mit Adressenlisten).

    Wenn Sie z. B. über eine Adressenliste in Form einer Microsoft Excel-Kalkulationstabelle verfügen, können Sie diese mit dem Listen-Manager in Business Desk importieren und die Liste dann in einer Direktsendungskampagne verwenden. Wenn Sie eine Liste von Benutzern in einem Analysebericht identifizieren, können Sie die Berichtsergebnisse als Liste in den Listen-Manager importieren. Diese Liste kann ebenfalls in einer Direktsendungskampagne verwendet werden.

    Informationen über das Importieren von Listen in den Listen-Manager finden Sie unter Importieren und Exportieren von Listen. Informationen über das Exportieren von Commerce Server-Analyseberichten in den Listen-Manager finden Sie unter Exportieren eines statischen Berichts.

  • Verwenden von Listen aus dem Listen-Manager. Sie können Benutzerlisten aus dem Listen-Manager-Modul in das Benutzermodul importieren und dann die Benutzerprofile in der Liste aktualisieren. Sie führen beispielsweise den Bericht "Kundenverkäufe" von Commerce Server aus, um die Benutzer zu identifizieren, die die meisten Produkte kaufen. Exportieren Sie diesen Bericht anschließend als Liste in den Listen-Manager. Die Benutzerliste importieren Sie aus dem Listen-Manager-Modul in das Benutzermodul und aktualisieren dann die Benutzerprofile in der Liste. Dazu weisen Sie einer Profileigenschaft einen speziellen Wert in den Benutzerprofilen zu. Diesen Wert verwenden Sie zur Zielgruppenadressierung bestimmter Anzeigen oder Preisnachlasskampagnen an Benutzer, deren Profile Sie geändert haben. Informationen über das Importieren von Listen in das Benutzermodul finden Sie unter Importieren einer Liste von Benutzerprofilen. Informationen über das Ändern mehrerer Benutzerprofile finden Sie unter Bearbeiten mehrerer Benutzer.

    Sie haben auch die Möglichkeit, die Liste in eine andere Anwendung zu exportieren. So können Sie z. B. eine aus einem Analysebericht erstellte Liste in eine Microsoft Excel-Kalkulationstabelle exportieren. Informationen über das Exportieren von Listen in eine Datei finden Sie unter Importieren und Exportieren von Listen.

Adressenlisten

Adressenlisten enthalten E-Mail-Adressen im Zeilenformat für die Verwendung in einer Direktsendungskampagne. Jede Zeile in der Liste enthält einen einzigen Empfänger und besteht aus den folgenden Elementen im trennzeichengetrennten Format.

Element | Beschreibung
E-Mail-Adresse | Name oder Name@Domäne.
GUID | Global eindeutiger Bezeichner. Die Benutzer-ID, mit der die Inhalte in einer personalisierten E-Mail-Nachricht bereitgestellt werden.
Nachrichtenformat | Steuert den Nachrichtenformattyp, in den die Ergebnisse vom Collaboration Data Object (CDO) übersetzt werden. Beispiele sind Text, MHTML (MIME Encapsulation of Aggregate HTML Documents) oder MIME (Multipurpose Internet Mail Extensions).
Sprache | Der Codepagewert für die E-Mail-Nachricht.
URL | Ermöglicht es, einzelne URLs pro Benutzer an CDO zu übergeben.

Listen lassen sich mit einem beliebigen Text-Editor (z. B. Editor) erstellen. Adressenlisten können zu Business Desk hinzugefügt werden, indem Sie mit dem Listen-Manager-Modul ASCII-Textdateien, Dateien aus Microsoft Excel oder Microsoft Outlook bzw. Tabellen aus SQL Server-Datenbanken importieren. Informationen über das Erstellen einer Adressenliste mit Informationen aus einer PST-Datei von Microsoft Outlook finden Sie unter "Exportieren von Elementen in eine Datei oder in eine Persönliche Ordner-Datei" in der Onlinehilfe von Microsoft Outlook.

Informationen über das Importieren von Adressenlisten für eine Direktsendungskampagne finden Sie unter Importieren einer Adressenliste.

Benutzerlisten

Benutzerlisten enthalten Zeilen mit Benutzer-IDs und – optional – anderen Benutzerprofileigenschaften. Benutzerlisten lassen sich vom Listen-Manager-Modul in das Profil-Designer-Modul exportieren. Anschließend können Sie Massenaktualisierungen der Eigenschaften bestimmter Benutzer durchführen.

So können Sie z. B. eine Liste aus dem Segment-Viewer-Modul importieren und im Benutzerprofil für jeden Benutzer eine Eigenschaft festlegen, die die Zugehörigkeit zu einem bestimmten Segment anzeigt. Mit diesen Informationen können Sie dann Anzeigen und Preisnachlässe zielgerichtet für das jeweilige Benutzersegment erstellen.

Allgemeine Listen

Im Gegensatz zu Benutzer- und Adressenlisten unterliegen allgemeine Listen keinen inhaltlichen Beschränkungen. Damit Sie allgemeine Listen einsetzen können, muss Ihre Anwendung von einem Siteentwickler angepasst werden.

Allgemeine Listen können beliebige Elemente sowie Kopfzeilen enthalten, wie das folgende Beispiel zeigt:

ProduktID | Produktname | Einheit
1 | Socken | 100
2 | Shirts | 20

Mit allgemeinen Listen können Sie z. B. Produkteigenschaften festlegen. Führen Sie den Commerce Server-Bericht "Produktverkäufe" aus, um die beliebtesten Produkte (in Bezug auf die Verkäufe) in Ihrer Website zu ermitteln. Importieren Sie dann die Ergebnisse dieses Berichts mit dem Listen-Manager-Modul als Produktliste. Geben Sie anschließend über das Katalog-Editor-Modul diesen Produkten eine Eigenschaft, die sie als Verkaufsschlager ausweist. Mithilfe dieser Eigenschaft können Sie dann Zielausdrücke erstellen oder den Preis dieser Produkte um 5 % erhöhen.

Eine andere Verwendung von allgemeinen Listen ist der Versand von Coupons an treue Onlinekunden zur Einlösung in Ihrem wirklichem Geschäft. Führen Sie hierzu einen Bericht zur Analyse der Benutzerkäufe aus, exportieren Sie die Ergebnisse des Berichts als Liste mit den Postanschriften der Benutzer, und exportieren Sie diese Liste dann mit dem Listen-Manager in eine Adressetiketten-Anwendung.

Dynamische und statische Listen

Benutzerlisten, Adressenlisten und allgemeine Listen sind entweder dynamisch oder statisch.

  • Dynamische Listen werden zur Laufzeit erstellt – beispielsweise beim Exportieren einer Liste aus dem Listen-Manager zur Verwendung in einer Direktsendungskampagne. Der Listen-Manager sammelt bei jeder Anforderung der Liste die neuesten Daten im Datawarehouse. Nur die zur Erstellung der Liste benötigten Informationen werden in der Datenbank gespeichert, die vom Listen-Manager verwendet wird. Verwenden Sie dynamische Listen für häufig durchgeführte Direktsendungskampagnen oder für Adressenlisten, die oft aktualisiert werden müssen.

  • Statische Listen werden sofort auf Anforderung erstellt und dann in der vom Listen-Manager verwendeten Datenbank gespeichert. Verwenden Sie statische Listen für unregelmäßig durchgeführte Direktsendungskampagnen oder für Adressenlisten, die sich nicht so häufig ändern.

Siehe auch

Importieren und Exportieren von Listen

Importieren einer Liste von Benutzerprofilen

Verwalten von Listen mit Benutzereinträgen

Erstellen einer Adressenliste


Zielgruppenadressierung und Personalisierung

Bei der Zielgruppenadressierung und Personalisierung werden personalisierte Inhalte an einen oder mehrere Benutzer bzw. eine andere Geschäftseinheit mit einem Profil übertragen. Wenn Sie beispielsweise eine Sportwebsite betreiben, möchten Sie Informationen über Tennis nur an Tennisspieler bzw. Benutzer, die sich für Tennis interessieren, übermitteln. An diese Benutzer könnten Sie dann Ankündigungen über bevorstehende Tennisturniere sowie Anzeigen und Promotions für Tennisprodukte liefern.

Mit Commerce Server 2000 können Sie zwei Typen von Zielgruppenadressierung durchführen:

  • Ausdrucksbasierte Zielgruppenadressierung. Wird auch als explizite Zielgruppenadressierung bezeichnet. Diese Form der Zielgruppenadressierung wird eingesetzt, wenn Ihnen die Profileigenschaften der Benutzer bekannt sind, denen Sie Inhalte liefern, bzw. wenn Sie den Kontext und die zu liefernden Inhalte kennen. Mithilfe der Kampagnenmodule in Commerce Server Business Desk können diese Informationen definiert und Inhalte an den Benutzer übertragen werden.

  • Vorhersage. Wird auch als implizite Zielgruppenadressierung bezeichnet. Diese Art der Zielgruppenadressierung wird eingesetzt, wenn Ihnen nicht alle zur Zielgruppenadressierung des Benutzers benötigten Profileigenschaften bekannt sind bzw. wenn es keine speziellen Inhalte für die Übertragung gibt. Mithilfe der Vorhersageressource von Commerce Server können diese Informationen auf der Basis bestehender Benutzerdaten erraten werden. Somit können Sie Inhalte liefern, die für die einzelnen Benutzer von Interesse sind.

Sowohl die ausdrucksbasierte Zielgruppenadressierung als auch die Vorhersage erleichtern Ihnen die Übertragung von Inhalten, für die sich die Empfänger interessieren könnten. Benutzer kehren eher zu Ihrer Site zurück, wenn sie eine personalisierte Umgebung erwartet.

Verwenden von Zielgruppenadressierungsmethoden bei der Websiteverwaltung

Ausdrucksbasierte Zielgruppenadressierung

Der Ausdrucks-Generator

Verarbeiten von Ausdrücken

Verwenden von Zielgruppenadressierungsmethoden bei der Websiteverwaltung

Inhalte lassen sich zielgerichtet an jedes geschäftsbezogene Element mit einem Profil liefern. So können Sie z. B. die Zielgruppenadressierung von Inhalten an anonyme und registrierte Benutzer, Firmen oder Kontexte einsetzen. Begriffsinformationen über Profile finden Sie unter Profile.

Mit Business Desk liefern Sie Inhalte zielgerichtet an geschäftsbezogene Elemente. Sie können die folgenden Aktionen durchführen:

  • Erstellen Sie eine Direktsendungskampagne, die personalisierte Nachrichten an Benutzer übermittelt.

  • Liefern Sie Inhalte (z. B. Anzeigen) an Benutzer basierend auf bestimmten Benutzerprofileigenschaften. So können Sie z. B. Benutzern, die als Lieblingssport "Fahrrad fahren" angegeben haben, Anzeigen für Mountainbikes anzeigen.

  • Identifizieren Sie Gruppen von Webseiten, und erstellen Sie dann zielgerichtet Inhalte, die nur auf diesen Seiten angezeigt werden bzw. nur, wenn Benutzer mit bestimmten Eigenschaften auf diese Seiten zugreifen.

  • Zeigen Sie Inhalte auf einer Seite an, die auf den Eigenschaften von anderen Inhalten der Seite basieren. Beispiel: Wenn Ihre Website Nachrichten anbietet, können Sie den Inhalten Profile zuweisen, die bestimmen, ob die Eigenschaft "Wetter_Typ" den Wert "Heiß" oder "Kalt" hat. Wenn "Wetter_Typ = Heiß", können Sie Anzeigen für Klimaanlagen anzeigen.

  • Wenden Sie Preisnachlässe auf bestimmte Produkte in Ihrem Katalog an, basierend auf den Produkteigenschaften oder auf dem Benutzerprofil.

  • Bestimmen Sie, wann ein Preisnachlass angezeigt und wann er auf eine Bestellung angewendet werden soll. Sie können den Preisnachlass z. B. anwenden, wenn Benutzer einen Artikel in den Warenkorb legen oder wenn sie auschecken.

Ausdrucksbasierte Zielgruppenadressierung

Bei der ausdrucksbasierten Zielgruppenadressierung werden Ausdrücke erstellt. Diese Ausdrücke definieren die Benutzer oder Kontexte, an die Sie sich zielgerichtet wenden wollen, und die Inhalte, die Sie liefern möchten. Ein Ausdruck ist eine Bedingung, die unter Verwendung von Profilen ausgewertet wird. Dadurch wird bestimmt, ob Inhalt geliefert oder eine andere Aktion ausgeführt werden soll. Ein Beispiel eines solchen Ausdrucks ist Benutzer.Gesamtbesuche > 100. Wenn dieser Ausdruck als "Wahr" ausgewertet wird, werden dem Benutzer bestimmte Inhalte angezeigt.

Mithilfe der Kampagnenmodule in Business Desk können Sie Ausdrücke erstellen und diese mit einer Aktion verknüpfen, die nach der Bewertung des Ausdrucks ausgeführt wird. Es stehen zwei Arten von Ausdrücken zur Verfügung.

  • Zielausdrücke. Diese Ausdrücke identifizieren, wo, wann und wem Inhalte angezeigt werden sollen. Sie können z. B. Inhalte zielgerichtet bei Benutzern mit bestimmten Profileigenschaften anzeigen. Außerdem lassen sich Inhalte zielgerichtet in bestimmten Bereichen einer Website (sogenannten Seitengruppen) anzeigen. So können Sie beispielsweise einen Zielausdruck erstellen, durch den bestimmte Anzeigen nur auf Sportseiten angezeigt werden.

  • Katalogausdrücke. Diese Ausdrücke definieren die Katalogprodukte, auf die ein Preisnachlass angewendet werden kann. Ein Beispiel eines Katalogausdrucks ist Produkt.Preis = 20,00. Wenn dieser Ausdruck für ein bestimmtes Produkt als "Wahr" ausgewertet wird, wird beim Hinzufügen des Produkts in den Warenkorb ein Preisnachlass in Höhe von 10 % angewendet.

Nachdem Sie mehrere Zielausdrücke erstellt haben, können Sie diese in Form einer Zielgruppe kombinieren. Eine Zielgruppe ist eine Sammlung von Ausdrücken und Aktionen. So können Sie z. B. einen Ausdruck erstellen, mit dem bestimmte Inhalte bei Benutzern angezeigt werden, die die Site schon zehnmal besucht haben. Mit einem anderen Ausdruck zeigen Sie Benutzern, die ein Fußballtrikot gekauft haben, bestimmte andere Inhalte an. Diese beiden Ausdrücke können mit den Anweisungen AND oder OR in einer Zielgruppe kombiniert werden. Beispiel:

Wenn ein Benutzer die Site zehnmal besucht UND ein Fußballtrikot gekauft hat,

Anzeige für ein Fußballprodukt anzeigen.

Ausdrücke werden in einer Zielgruppe durch Angabe der Aktion kombiniert, die ausgeführt werden soll, wenn der Ausdruck als "Wahr" ausgewertet wird. Jede Aktion verfügt über zwei Multiplikatoren: Einer wird angewendet, wenn der Ausdruck wahr ist; der andere, wenn der Ausdruck falsch ist. Wenn der Multiplikator angewendet wird, erhält der Ausdruck ein Ergebnis. Dieses bestimmt, ob die Inhalte geliefert werden können. Sie können folgende Aktionen definieren:

  • Ziel. Wenn der Ausdruck als "Wahr" ausgewertet wird, wird der Ergebniswert erhöht. Dadurch erhöht sich auch die Wahrscheinlichkeit dafür, dass die Inhalte angezeigt werden. Falls der Ausdruck als "Falsch" ausgewertet wird, ändert sich der Ergebniswert nicht. In beiden Fällen können die Inhalte geliefert werden.

  • Erforderlich. Bei Auswertung des Ausdrucks als "Wahr" können die Inhalte geliefert werden. Wird der Ausdruck als "Falsch" ausgewertet, können die Inhalte nicht geliefert werden.

  • Ausschließen. Bei Auswertung des Ausdrucks als "Wahr" können die Inhalte nicht geliefert werden. Wird der Ausdruck dagegen als "Falsch" ausgewertet, können die Inhalte geliefert werden.

  • Sponsor. Bei Auswertung des Ausdrucks als "Wahr" können die Inhalte geliefert werden. Weitere Inhalte können nur geliefert werden, wenn es für diese einen Ausdruck mit einer Aktion = Sponsor gibt. (Sponsor besitzt nur einen Multiplikator.) Beispiel: Wenn Microsoft als Sponsor einer Anzeige auf einer Homepage auftritt, werden nur Microsoft-Anzeigen angezeigt. Wenn die Homepage jedoch weitere Sponsoren hat, können auch die Anzeigen dieser Firmen angezeigt werden.

Siteentwickler können die Werte der Multiplikatoren von Commerce Server verändern. Dies kann z. B. nützlich sein, wenn bestimmte Ausdrücke mit einem Aktionstyp eine höhere Priorität als Ausdrücke mit einem anderen Aktionstyp erhalten sollen.

Der Ausdrucks-Generator

Der Ausdrucks-Generator ist ein Feature von Commerce Server, mit dem Businessmanager Ausdrücke erstellen, bearbeiten und anzeigen können. Der Ausdrucks-Generator liefert die Benutzeroberfläche zur Erstellung von Ausdrücken. Er greift bei der Ausdruckserstellung auf die entsprechenden Eigenschaften zu und benennt und speichert den Ausdruck dann in den Commerce Server-Datenbanken.

Der Ausdrucks-Generator ist so ausgelegt, dass Siteentwickler seine Funktionalität und Benutzeroberfläche mühelos in andere Business Desk-Module einbetten können. Außerdem kann der Ausdrucks-Generator von Webanwendungen aufgerufen werden, die Ausdrücke verwenden und bearbeiten. Dies ermöglicht die Integration in andere Prozesse. So lässt sich z. B. die Funktionalität des Ausdrucks-Generators in einen bereits vorhandenen Content Management-Prozess integrieren. Dies wiederum ermöglicht die Zielgruppenadressierung von Inhalten an Benutzer.

So erstellen Sie Anwendungen, die den Ausdrucks-Generator verwenden:

  • Definieren von Profilen. In diesem Schritt definieren Sie die Profile, die vom Ausdruck verwendet werden sollen. Der Ausdrucks-Generator lädt anschließend diese Profildefinitionen, um den Ausdruck zu erstellen. Sie können auch einen Profileigenschaftenfilter angeben. Dieser schränkt die Eigenschaften im Profil ein, die den Benutzern des Ausdrucks-Generators zur Verfügung stehen.

  • Speichern von Ausdrücken. Hierbei können Sie den zu verwendenden Ausdrucks-/Profilspeicher angeben. Der Ausdrucks-Generator lädt und speichert dann Ausdrücke in dieser Datenbank.

  • Anzeigen von Meldungen bei Benutzern. Die Meldungen, die in der Benutzeroberfläche des Ausdrucks-Generators angezeigt werden, lassen sich an Ihre Bedürfnisse anpassen. Wenn beispielsweise der Standardtitel "Ausdruck erstellen" lautet, könnten Sie diesen Titel für Ihre Zwecke in "Anzeigenzielausdruck erstellen" ändern.

Beim Ausdrucks-Generator wird für die Benutzeroberfläche DHTML (Dynamic Hypertext Markup Language) eingesetzt. Die Stylesheets der Anwendung werden also auf die Benutzeroberfläche des Ausdrucks-Generators angewendet. Dadurch erhält Ihre Anwendung eine einheitliche Gestaltung.

Verarbeiten von Ausdrücken

Commerce Server führt verschiedene Schritte aus, um festzulegen, welche Inhalte einem Benutzer angezeigt werden. Folgende Komponenten werden während dieses Vorgangs verwendet:

  • ExpressionEval. Dieses Component Object Model (COM)-Objekt nimmt einen Ausdruck und Benutzerdaten als Eingabe und verarbeitet dann den Ausdruck. Die Auswertung ergibt, ob der Ausdruck "Wahr" oder "Falsch" ist.

  • Content Selection Framework (CSF). Dieses Framework auf Plattformebene enthält eine Reihe von Komponenten und Pipelines (die Inhaltsauswahl-Pipeline und die Ereignisverarbeitungs-Pipeline), die die als Ergebnis des Ausdrucks auszuführende Aktion bestimmen.

Die folgende Abbildung zeigt, wie Ziel- und Katalogausdrücke, Benutzer- und Kontextdaten in den Ausdrucks-Generator eingegeben werden und zu welchen Auswertungsergebnissen dies führt (Wahr, Falsch oder undefiniert). Das Ergebnis wird in CSF eingegeben, wo die auszuführende Aktion bestimmt wird.

Verarbeitung von Ausdrücken durch Ausdrucksbewertung und CSF
Zielausdruck
Katalogausdruck
Benutzerdaten

Kontextdaten
Ausdrucksbewertung
True, False oder nicht definiert
Content Selection Framework
Bestimmt die Aktion bei diesem Ergebnis

Siehe auch

Profile

Erstellen eines Zielausdrucks

Erstellen einer Zielgruppe


Kampagneneffektivität

In der folgenden Tabelle sind die in Commerce Server enthaltenen Berichte aufgeführt, die Sie zur Analyse der Effektivität eines Kampagnenartikels verwenden können.

Bericht | Beschreibung
Zusammenfassung der Kampagnenartikel | Anzeigen einer Zusammenfassung der Kampagnenaktivität in Ihrer Site. Dieser Bericht zeigt Informationen über die Anzahl und den Prozentsatz von Klicks sowie über die verbleibenden Anzeigenanforderungen an.
Anzeigenreichweite und -häufigkeit pro Tag | Analysieren des Verhaltens der verschiedenen Benutzer pro Tag, die mit Ihrer Kampagne interagieren. Dieser Bericht zeigt für einzelne Tage die Interaktionen der verschiedenen Benutzer mit Ihren Kampagnen an.
Anzeigenreichweite und -häufigkeit pro Kampagnenartikel | Analysieren der Interaktion der verschiedenen Benutzer mit Ihren Kampagnenartikeln. Dieser Bericht zeigt für den gesamten Zeitraum das Verhalten der verschiedenen Benutzer an, die mit Ihren Kampagnenartikeln interagieren.
Anzeigenreichweite und -häufigkeit pro Kampagne | Analysieren der Interaktion der verschiedenen Benutzer mit Ihren Kampagnen. Dieser Bericht zeigt für den gesamten Zeitraum das Verhalten der verschiedenen Benutzer an, die mit Ihren Kampagnen interagieren.
Zusammenfassung von Kampagnenereignissen | Analysieren der Effektivität von Kampagnen in Ihrer Site. Dieser Bericht zeigt eine Zusammenfassung der Kampagnenaktivität in Ihrer Site an.
Anzeigenplatzierung | Analysieren der Bereiche Ihrer Site, in denen Anzeigen am effektivsten sind. Dieser Bericht zeigt eine Zusammenfassung der Kampagnenaktivität nach Platzierung in Ihrer Site an.

Siehe auch

Commerce Server-Berichte

Ausführen von Berichten


Einrichten der Referenztabellen

Indem Sie Referenztabellen einrichten, können Sie Ihr Geschäftsmodell genau abbilden. In den Referenztabellen werden die gültigen Branchencodes, Seitengruppen und Inhaltsgrößen verwaltet. Wenn eine Seitengruppe, die von einem Kampagnenartikel verwendet wird, nicht durch die Seitengruppen in der Referenztabelle bestätigt wird, wird der Kampagnenartikel nicht in Produktion gegeben.

Im Referenztabellen-Modul können Sie Branchencodes, Seitengruppen und Inhaltsgrößen hinzufügen, die nicht standardmäßig im Lieferumfang von Commerce Server 2000 enthalten sind. Sie können in diesem Modul auch Branchencodes, Seitengruppen und Inhaltsgrößen löschen, die nicht mehr benötigt werden.

Festlegen von Inhaltsgrößen

Hinzufügen von Branchencodes

Hinzufügen von Seitengruppen

Festlegen von Inhaltsgrößen

Sie können die Inhaltsgröße von Kampagnenartikeln nach Bedarf festlegen. Commerce Server 2000 bietet eine Reihe standardmäßiger Inhaltsgrößen. Diese Inhaltsgrößen stammen aus einer Liste häufig verwendeter Größen, die vom Internet Advertising Bureau (IAB) genehmigt wurden. Sie werden im Referenztabellenmodul im Bereich Inhaltsgröße überprüft.

Die in den Referenztabellen enthaltenen Inhaltsgrößen stehen zur Verfügung, wenn Sie die gewünschte Größe für die Inhalte des Kampagnenartikels auswählen. Die vordefinierten Inhaltsgrößen lassen sich anzeigen, bearbeiten und löschen. Sie können aber auch eine neue Inhaltsgröße speziell für Ihre Bedürfnisse erstellen.

So legen Sie eine Inhaltsgröße fest

  1. Klicken Sie im Menü Kampagnen auf Referenztabellen.

  2. Klicken Sie auf dem Bildschirm Referenztabellen im Bereich Inhaltsgrößen auf Neu, und führen Sie dann folgende Schritte aus:
    Option/Funktion | Zweck
    Tag Geben Sie den Tagnamen ein.

    Bei einem Tag handelt es sich um einen Parameterwert, der an eine Inhaltsanforderung auf einer Seite weitergeleitet wird und festlegt, wie das Dokument oder ein Dokumentteil formatiert werden soll.
    Name | Geben Sie einen Namen für die neue Inhaltsgröße ein.
    Breite | Geben Sie die Breite der Inhaltsgröße in Pixel ein.
    Höhe | Geben Sie die Höhe der Inhaltsgröße in Pixel an.

  3. Klicken Sie auf Annehmen.

    Die neue Inhaltsgröße wird zu der Liste der Inhaltsgrößen hinzugefügt. Die Inhaltsgrößen werden in der Liste entsprechend der alphabetischen Reihenfolge der Tag-Attribute aufgeführt.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die neue Inhaltsgröße zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Die neue Inhaltsgröße wird nun gespeichert und ist verfügbar, wenn Sie Inhaltsgrößen für Kampagnenartikel auswählen.

Hinzufügen von Branchencodes

Mithilfe von Branchencodes können Branchen definiert werden, z. B. die Automobil-, Luftfahrt- und Getränkeindustrie. Mithilfe von Branchencodes identifizieren Sie die Branche, aus der eine Anzeige stammt. So können Sie verhindern, dass zwei Anzeigen von Konkurrenzunternehmen einer Branche auf derselben Seite erscheinen. Sie können Ihre Branchencodes aktualisieren, z. B. um mit mehr als einem Getränkecode (z. B. einem für Kaffee und einem für Milch) zu arbeiten. Dadurch können Anzeigen für verschiedene Getränketypen auf derselben Seite erscheinen.

Commerce Server liefert eine Reihe gebräuchlicher Branchencodes, die Sie sofort verwenden können. Die in Anzeigen verwendeten Branchencodes werden im Referenztabellenmodul im Bereich Branchencodes überprüft. Die in den Referenztabellen enthaltenen Branchencodes sind verfügbar, wenn Sie den Branchencode für einen Anzeigenkampagnenartikel auswählen. Im Referenztabellenmodul im Bereich Branchencode können Sie eine Liste aller aktuellen Branchencodes anzeigen, neue Branchencodes hinzufügen sowie bestehende Branchencodes bearbeiten bzw. löschen.

So erstellen Sie einen Branchencode

  1. Klicken Sie im Menü Kampagnen auf Referenztabellen.

  2. Klicken Sie auf dem Bildschirm Referenztabellen im Bereich Branchencode auf Neu, und führen Sie dann folgende Schritte aus:
    Option/Funktion | Zweck
    Branchencode | Geben Sie einen Namen für den neuen Branchencode ein.

  3. Klicken Sie auf Annehmen.

    Der neue Branchencode wird zu der Liste der Branchencodes an der entsprechenden alphabetischen Position hinzugefügt.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den neuen Branchencode zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Der neue Branchencode wird gespeichert und ist verfügbar, wenn Sie Branchencodes für Kampagnenartikel auswählen.

Hinzufügen von Seitengruppen

Mit Seitengruppen können Sie die Seiten einer Website festlegen, auf denen die Anzeigen angezeigt werden sollen. Mithilfe von Seitengruppen können Sie Anzeigen für bestimmte Zielgruppen auf einer speziellen oder auf allen Seiten Ihrer E-Commerce-Site platzieren. In einer Nachrichtensite kann es z. B. eine Seitengruppe für Sport geben, wo Anzeigen im Zusammenhang mit Sport angezeigt werden. Darüber hinaus können Sie Seitengruppen verwenden, um für verschiedene Werbungstreibende unterschiedliche Gebühren festzulegen. Seitengruppen werden im Referenztabellenmodul im Bereich Seitengruppen überprüft.

Die in den Referenztabellen enthaltenen Seitengruppen stehen zur Verfügung, wenn Sie die Seite auswählen, auf der Ihr Kampagnenartikel angezeigt werden soll. Wenn eine Seitengruppe, die von einem Kampagnenartikel verwendet wird, mit der Eigenschaft Seitengruppe überprüft ist, kann der Kampagnenartikel in Produktion gegeben werden. Im Referenztabellenmodul im Bereich Seitengruppe können Sie eine Liste mit den aktuellen Seitengruppen anzeigen, neue Seitengruppen hinzufügen sowie bestehende Seitengruppen bearbeiten bzw. löschen.

Anmerkung

  • Damit eine Anzeige auf einer Seitengruppe angezeigt werden kann, müssen die entsprechenden Seiten vom Siteentwickler für Anzeigen aktiviert werden. Weitere Informationen zum Aktivieren einer Seite für Anzeigen finden Sie im Anzeigen-Beispielsitelet im Commerce Server 2000 Software Development Kit.

So fügen Sie eine Seitengruppe hinzu

  1. Klicken Sie im Menü Kampagnen auf Referenztabellen.

  2. Klicken Sie auf dem Bildschirm Referenztabellen im Bereich Seitengruppen auf Neu, und führen Sie dann folgende Schritte aus:
    Option/Funktion | Zweck
    Seitengruppe | Geben Sie einen Namen für die neue Seitengruppe ein.
    Beschreibung | Geben Sie eine Beschreibung für die Seitengruppe ein.

  3. Klicken Sie auf Annehmen.

    Die neue Seitengruppe wird zu der Liste der Seitengruppen an der entsprechenden alphabetischen Position hinzugefügt.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die neue Seitengruppe zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Die neue Seitengruppe wird gespeichert und ist verfügbar, wenn Sie Seitengruppen für Kampagnenartikel auswählen.

Siehe auch

Referenztabellen

Zielgruppenadressierung einer Anzeige an eine Seitengruppe


Erstellen einer Kampagne

Mithilfe der Kampagnenmodule können Sie Kampagnenartikel erstellen und in Produktion geben. Sie müssen zunächst den Kunden zum Kampagnen-Manager-Modul hinzufügen, wenn Sie einen Kampagnenartikel erstellen möchten. Anschließend erstellen Sie im Kampagnen-Manager eine Kampagne für den Kunden, beispielsweise eine Kampagne zur Einführung einer neuen Marke. Mithilfe der Kampagnenzielfestlegung legen Sie einen Zeitplan für die Kampagne fest. Sie können den Kampagnenzeitplan auf Kampagnenebene oder auf Werbeartikelebene festlegen. Wenn Sie eine Kampagne erstellt haben, können Sie einen oder mehrere Kampagnenartikel erstellen und anschließend die Anzeigendarstellung festlegen. Nach der Festlegung der Anzeigendarstellung können Sie die Anzeige in der Vorschau anzeigen, bevor Sie sie in Produktion geben.

Die folgende Abbildung zeigt ein Beispielszenario für das Erstellen einer Kampagne, das Hinzufügen eines Kampagnenartikels und das Aufnehmen der Produktion des Kampagnenartikels.

Workflow zum Erstellen eines Kampagnenartikels und zu seiner Weitergabe an die Produktion
Kampagnen-Manager

Kampagnenartikel erstellen

Kundeninformationen hinzufügen
Kampagne hinzufügen
Vorschau auf den Kampagneartikel

Kampagnenänderungen in der Website veröffentlichen

Kampagne planen
Kampagnen veröffentlichen

  1. Erstellen Sie im Kampagnen-Manager-Modul einen neuen Kunden, z. B. Arbor Shoes.

  2. Erstellen Sie im Kampagnen-Manager-Modul eine neue Kampagne, z. B. Sommerschlussverkauf.

  3. Legen Sie für die Kampagne einen Zeitplan fest (z. B. über die Zielfestlegung auf Kampagnenebene).

  4. Erstellen Sie einen Anzeigenkampagnenartikel, beispielsweise Sandalen.

  5. Überprüfen Sie den Anzeigenkampagnenartikel in der Vorschau, bevor Sie ihn in Produktion geben.

  6. Aktualisieren Sie im Kampagnenveröffentlichungsmodul Ihre Site mit der neuen Anzeige.

Dieser Abschnitt beinhaltet folgende Themen:

  • Hinzufügen von Kundeninformationen

  • Hinzufügen einer Kampagne

  • Planen einer Kampagne

  • Erstellen eines Kampagnenartikels

  • Vorschau eines Kampagnenartikels


Hinzufügen von Kundeninformationen

Sie müssen zunächst Informationen über den Kunden hinzufügen, dem eine Kampagne zugeordnet ist, um eine Kampagne zu erstellen. Jedem Kunden können mehrere Kampagnen zugeordnet werden, die für verschiedene Marketingprogramme stehen. So kann ein Kunde beispielsweise einen Sommerschlussverkauf, eine Kampagne für ein neues Produkt und eine Preisnachlasskampagne für Frühjahrsmoden durchführen. Jede Kampagne kann über mehrere Kampagnenartikel wie Anzeigen, Preisnachlässe oder Promotions und Direktsendungen verfügen.

Mithilfe des Kampagnen-Manager-Moduls können Sie Kunden hinzufügen, Eigenschaften von Kunden ändern und Kunden löschen.

So erstellen Sie einen neuen Kunden

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Klicken Sie im Bildschirm Kampagnen-Manager auf der Symbolleiste auf Hinzufügen, und wählen Sie anschließend in der Dropdownliste Neue(r) Kunde/Kundin aus.

  3. Führen Sie auf dem Bildschirm Kampagnen-Manager - Neu (Kunde/Kundin) im Bereich Kundeneigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie den Kundennamen ein.
    Adresse | Geben Sie die Kundenadresse ein, einschließlich Straße, Stadt, Bundesland/Kanton, Postleitzahl und Land.
    Typ | Wählen Sie in der Dropdownliste die Art der Beziehung, die Sie mit der Firma haben, aus.
    URL | Geben Sie den dem Kunden zugeordneten URL ein.
    Branchencode Wählen Sie den auf den Kunden zutreffenden Branchencode aus.

    Branchencodes werden mithilfe des Referenztabellenmoduls erstellt. Weitere Informationen finden Sie unter Einrichten der Referenztabellen.

    Kommentare | Geben Sie ggf. erforderliche Kommentare zu dem Kunden ein.

  4. Führen Sie im Bereich Kontaktinformationen folgende Schritte aus:
    Option/Funktion | Zweck
    Kontakt | Geben Sie die Kontaktinformationen zu dem Kunden ein.
    E-Mail | Geben Sie die E-Mail-Adresse für diesen Kontakt ein.
    Rufnummer | Geben Sie die Rufnummer für diesen Kontakt ein.
    Fax | Geben Sie die Faxnummer für diesen Kontakt ein.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Kundeninformationen zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Die Kundeninformationen werden gespeichert. Sie können für den Kunden nun eine neue Kampagne hinzufügen.

Siehe auch

Workflow für die Kampagnenverwaltung

Informationen zu Kampagnen

Hinzufügen einer Kampagne

Einrichten der Referenztabellen


Hinzufügen einer Kampagne

Wenn Sie Kundeninformationen hinzugefügt haben, können Sie für den Kunden eine Kampagne hinzufügen. Jedem Kunden können mehrere Kampagnen zugeordnet werden. So kann ein Kunde z. B. eine Kampagne zur Einführung einer neuen Marke und eine Treuekampagne haben. Im Kampagnen-Manager-Modul können Sie Kampagnen hinzufügen, Kampagneneigenschaften anzeigen, Kampagnen für die Erstellung einer neuen Kampagne kopieren, Kampagneneigenschaften bearbeiten, für Kampagnen einen Zeitplan auf Werbeartikelebene erstellen oder eine Zielfestlegung auf Kampagnenebene durchführen, nach Kampagnen suchen sowie Kampagnen löschen und wiederherstellen.

So fügen Sie eine neue Kampagne hinzu

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie im Bildschirm Kampagnen-Manager den Kunden aus, für den Sie eine neue Kampagne erstellen möchten, und klicken Sie auf der Symbolleiste auf Hinzufügen. Wählen Sie dann in der Dropdownliste den Eintrag Neue Kampagne aus.

  3. Führen Sie auf dem Bildschirm Kampagnen-Manager – Kunde - Neu (Kampagne) im Bereich Kampagneneigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Kampagnenname | Geben Sie den Namen der neuen Kampagne ein.
    Anfangsdatum | Wählen Sie das Anfangsdatum der Kampagne im Dropdownkalender aus.
    Beendigungsdatum Wählen Sie das Beendigungsdatum der Kampagne im Dropdownkalender aus.

    Kampagnendaten werden als Standardwerte für Datumsangaben bei Kampagnenartikeln verwendet. Datumsangaben für Kampagnenartikel setzen jedoch Kampagnendaten außer Kraft. Das Datum eines Kampagnenartikels kann so festgelegt werden, dass es über das Kampagnendatum hinausgeht.
    Status | Wählen Sie den Kampagnenstatus in der Dropdownliste aus. Der Status kann entweder Aktiv oder Inaktiv sein.
    Kommentare | Geben Sie ggf. erforderliche Kommentare zu der Kampagne ein.

Die Kampagneneigenschaften werden nun erstellt. Informationen zum Festlegen des Kampagnenzeitplans auf Werbeartikelebene oder auf Kampagnenebene finden Sie unter Planen einer Kampagne.

Siehe auch

Workflow für die Kampagnenverwaltung

Informationen zu Kampagnen

Hinzufügen von Kundeninformationen


Planen einer Kampagne

Mithilfe der Kampagnenzielfestlegung legen Sie einen Zeitplan für eine Kampagne fest. Zeitpläne lassen sich auf Kampagnen- oder Werbeartikelebene festlegen. Wenn Sie bei der Erstellung einer neuen Kampagne die Zielfestlegung auf Kampagnenebene vornehmen, bestellen Sie die Gesamtsumme der Anforderungen für die gesamte Kampagne. Beispiel: Die Zielfestlegung wird auf Kampagnenebene durchgeführt, und der Kunde bestellt 25.000 Anzeigenanforderungen. Auf Kampagnenartikelebene wird nun festgelegt, dass eine Anzeige bei 60 % der Anzeigeanforderungen angezeigt wird und die andere Anzeige bei 40 %. Falls der Kunde nun die Anzahl der Anzeigenanforderungen ändert (z. B. auf 40.000), müssen Sie die Anforderungszahlen für die beiden Anzeigen nicht manuell ändern; eine Anzeige wird weiterhin in 60 %, die andere in 40 % Prozent der Fälle angezeigt. Wenn die Planung auf Anzeigenebene durchgeführt wird, stellen Sie das Anforderungsziel für jede einzelne Anzeige ein. Weitere Informationen zur Kampagnenzielfestlegung finden Sie unter Kampagnenzielfestlegung.

In einer Kampagne gilt die Gewichtung für Anzeigen, deren Zielfestlegung auf Kampagnenebene liegt. Bei Eigenwerbung steht die Gewichtung im Verhältnis zu der übrigen Eigenwerbung für alle Kunden und Kampagnen. Bei bezahlten Anzeigen ist die Gewichtung relativ zu anderen bezahlten Anzeigen derselben Kampagne.

Sie können die Kampagne entweder nach Klicks oder nach Anforderungen planen. Wenn Sie die Kampagne nach Klicks planen, ist das Kampagnenziel erreicht, wenn ein Benutzer auf die Anzeige klickt. Wenn Sie die Kampagne nach Anforderungen planen, ist das Kampagnenziel erreicht, wenn die Anzeige auf der angegebenen Seitengruppe angezeigt wird.

So planen Sie eine Kampagne

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Doppelklicken Sie im Kampagnen-Manager auf den Kunden, für den Sie eine Kampagne planen möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  3. Führen Sie auf dem Bildschirm Kampagnen-Manager – Kundenname – Kampagnenname (Kampagne) im Bereich Werbungs-/Kampagnenzielfestlegung folgende Schritte aus:
    Option/Funktion Zweck
    Zielsetzung von Wählen Sie die Zielfestlegungsebene in der Dropdownliste aus. Sie können die Kampagnenziele auf der Ebene der Kampagne oder der Werbeartikel festlegen.

    Wenn Sie die Ebene Kampagne auswählen, können Sie unterhalb des Felds Zielsetzung von die Bestellmenge ändern. Wenn Sie im Kampagnen-Manager Anzeigenkampagnenartikel zur Kampagne hinzugefügt haben, können Sie unten im Bereich Werbungs-/Kampagnenzielfestlegung die dynamische Tabelle bearbeiten. Markieren Sie hierfür den Werbeartikel in der Tabelle, und klicken Sie dann auf Bearbeiten, um die Gewichtung jeder Anzeige zu ändern. Die Mengen der einzelnen Anzeigen werden aufgrund der eingegebenen Gewichtungen neu verteilt.

    Wenn Sie die Zielfestlegungsebene Werbeartikel auswählen, wird das Bestellmengenfeld ausgeblendet. Mengen für Kampagnen, deren Ziele auf Werbeartikelebene festgelegt worden sind, werden beim Anzeigenkampagnenartikel eingegeben. Wenn Sie im Kampagnen-Manager Anzeigenkampagnenartikel zur Kampagne hinzugefügt haben, können Sie unten im Bereich Werbungs-/Kampagnenzielfestlegung die dynamische Tabelle bearbeiten. Markieren Sie hierfür den Werbeartikel in der Tabelle, und klicken Sie dann auf Bearbeiten, um die Mengen der einzelnen Anzeigen zu ändern.

    Anmerkungen

    • Sie können die Art der Zielfestlegung von Kampagnenebene auf Werbeartikelebene und umgekehrt ändern.

    • Dieses Feld wird für Preisnachlässe und Kampagnenartikel von Direktsendungen nicht benötigt.
    Bestellmenge Geben Sie die Anzahl der für diese Kampagne bestellten Anforderungen ein.

    Dieses Feld steht nur zur Verfügung, wenn Sie im Feld Zielsetzung von die Option Kampagne ausgewählt haben.
    Geplant von Wählen Sie Anfordern oder Klicken in der Dropdownliste aus.

    Anforderung gibt an, dass die Zielsetzung der Kampagne erreicht ist, wenn die Anzeige auf den angegebenen Seitengruppen angezeigt wird.

    Klicken gibt an, dass die Zielsetzung der Kampagne erreicht ist, wenn der Benutzer tatsächlich auf die Anzeige klickt.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den Zeitplan zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Der Kampagnenzeitplan wird mit der Kampagne gespeichert. Sie können nun einen Anzeigenkampagnenartikel für die Kampagne erstellen.

Siehe auch

Workflow für die Kampagnenverwaltung

Informationen zu Kampagnen

Kampagnenzielfestlegung

Hinzufügen einer Kampagne


Erstellen eines Kampagnenartikels

Es gibt drei Arten von Kampagnenartikeln: Anzeigen, Preisnachlässe und Direktsendungen. Sie müssen zunächst einen Kampagnenartikel erstellen, um für die Bereitstellung von Inhalten einen Zeitplan festzulegen. Neben diesen drei Kampagnenartikeln kann Ihr Siteentwickler Ihrer Site Funktionen für verwandte Verkaufstypen wie intelligentes Up-Selling und Cross-Selling hinzuzufügen.

Anmerkungen

  • Informationen zum Hinzufügen von intelligenten Cross-Selling-Funktionen zu Ihrer Site finden Sie unter Ausführen der Vorhersageressource und unter Prediction Objects (englisches Thema).

  • Informationen zum Hinzufügen von weiteren Funktionen für verwandte Verkaufstypen zu Ihrer Site finden Sie im Commerce Server Software Development Kit.

Informationen über das Erstellen von Kampagnenartikeln finden Sie in den folgenden Abschnitten:

  • Hinzufügen eines Anzeigenkampagnenartikels

  • Hinzufügen eines Preisnachlasskampagnenartikels

  • Hinzufügen eines Direktsendungskampagnenartikels


Vorschau eines Kampagnenartikels

Nach der Festlegung der Anzeigendarstellung können Sie die Anzeige in der Vorschau betrachten, bevor Sie sie in Ihrer Website veröffentlichen. Darüber hinaus können Sie eine Vorschau der Webseite anzeigen, die erscheint, wenn der Benutzer auf die Anzeige klickt, falls es sich um eine anklickbare Anzeige handelt.

So zeigen Sie die Anzeige in der Vorschau an

So zeigen Sie die Webseite für die Anzeige an

So zeigen Sie die Anzeige in der Vorschau an

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie im Bildschirm Kampagnen-Manager die Anzeigenkampagne mit der Anzeige aus, die Sie in der Vorschau anzeigen möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  3. Geben Sie auf dem Bildschirm Kampagnen-Manager – Kunde – Kampagnenartikel (Anzeigen-ID: Nummer) im Bereich Anzeigendarstellung die erforderlichen Informationen in die entsprechenden Felder ein, und klicken Sie dann auf Vorschau.

  4. Klicken Sie im Dialogfeld Vorschau auf Ja, um den Anzeigenkampagnenartikel zu speichern.

Im Anzeigebereich unterhalb der Schaltfläche Vorschau wird eine Kopie der Anzeige angezeigt.

Informationen zum Einrichten des Anzeigentyps im Bereich Anzeigendarstellung finden Sie unter Einrichten eines Anzeigentyps.

So zeigen Sie die Webseite für die Anzeige an

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie im Bildschirm Kampagnen-Manager den Anzeigenkampagnenartikel aus, den Sie in der Vorschau anzeigen möchten. Klicken Sie dann auf der Symbolleiste auf Öffnen.

  3. Stellen Sie sicher, dass auf dem Bildschirm Kampagnen-Manager – Kunde – Kampagnenartikel (Anzeigen-ID: Nummer) im Bereich Anzeigendarstellung die erforderlichen Informationen in die entsprechenden Felder eingegeben sind, und klicken Sie dann auf die Anzeige unter der Schaltfläche Vorschau.

Die dieser Anzeige zugeordnete Webseite wird in einem neuen Internet Explorer-Fenster angezeigt. Informationen zum Veröffentlichen von Anzeigen in Ihrer Website finden Sie unter Veröffentlichen von Kampagnenänderungen in der Website.

Siehe auch

Hinzufügen eines Anzeigenkampagnenartikels

Festlegen der Größe einer Anzeige

Einrichten eines Anzeigentyps

Veröffentlichen von Kampagnenänderungen in der Website


Veröffentlichen von Kampagnenänderungen in der Website

Mithilfe des Kampagnenveröffentlichungsmoduls können Sie eine Site aktualisieren, sobald Sie neue Informationen zu Ihrer Website hinzugefügt haben. Auch wenn Sie diesen Schritt zur Veröffentlichung der Änderungen an den Anzeigenkampagnen nicht durchführen, werden die Änderungen innerhalb von fünf Minuten automatisch veröffentlicht. Änderungen an Preisnachlasskampagnenartikeln hingegen werden erst dann in der Website aktualisiert, wenn Sie sie mithilfe des Kampagnenveröffentlichungsmoduls veröffentlichen.

Bei den meisten E-Commerce-Geschäften werden diese Änderungen zunächst in einer Testsite vorgenommen und erst später zu vereinbarten Zeiten auch in der Produktionssite durchgeführt. Wenden Sie sich an Ihren Systemadministrator, um weitere Informationen darüber zu erhalten, wann und wie Änderungen in der Produktionssite vorgenommen werden.

Das Kampagnenveröffentlichungsmodul enthält einen Suchmechanismus, der es ermöglicht, Anzeigen und Preisnachlässe zu suchen, um sie anzuzeigen, zu veröffentlichen oder zu löschen.

Anmerkung

  • Bevor Sie eine Anzeigenkampagne auf einer neuen Site aktualisieren, müssen Sie die Website zuerst besuchen, wenn noch kein Benutzer sie besucht hat. Jeder Server einer Webfarm muss aktualisiert werden, bevor ein Kampagnenartikel zur Produktion gesendet werden kann.

So suchen Sie nach einem Produktionsartikel

So veröffentlichen Sie einen Kampagnenartikel

So suchen Sie nach einem Produktionsartikel

  1. Klicken Sie im Menü Kampagnen auf Kampagnen veröffentlichen.

  2. Klicken Sie auf dem Bildschirm Kampagnen veröffentlichen auf der Symbolleiste auf Suchen.

  3. Wählen Sie im Suchbereich im Feld Suchen nach den entsprechenden Kampagnenartikeltyp in der Dropdownliste aus, und klicken Sie dann auf Suchen.

Die Kampagnenartikel, die den Suchkriterien entsprechen, werden in der Liste Produktionsartikel angezeigt.

So veröffentlichen Sie einen Kampagnenartikel

  1. Klicken Sie im Menü Kampagnen auf Kampagnen veröffentlichen.

  2. Wählen Sie auf dem Bildschirm Kampagnen veröffentlichen den Produktionsartikel aus, den Sie veröffentlichen möchten. Klicken Sie anschließend auf der Symbolleiste auf Veröffentlichen.

Der Kampagnenartikel wird zur Produktion gesendet. Die Site wird aktualisiert, und die neue Anzeigenkampagne wird veröffentlicht.

Siehe auch

Hinzufügen eines Anzeigenkampagnenartikels

Vorschau eines Kampagnenartikels


Wechseln zwischen Kampagnenzielfestlegung und Werbeartikelzielfestlegung

Für Kampagnen wird mithilfe der Kampagnenzielfestlegung ein Zeitplan festgelegt. Zeitpläne lassen sich auf Kampagnen- oder Werbeartikelebene festlegen. In einer Kampagne gilt die Gewichtung für Anzeigen, deren Zielfestlegung auf Kampagnenebene liegt. Bei Eigenwerbung steht die Gewichtung im Verhältnis zu der übrigen Eigenwerbung für alle Kunden und Kampagnen. Bei bezahlten Anzeigen ist die Gewichtung relativ zu anderen bezahlten Anzeigen derselben Kampagne. Nach der Festlegung eines Zeitplans für eine Kampagne können Sie zwischen Kampagnenzielfestlegung und Werbeartikelzielfestlegung hin- und herwechseln, um den Berechnungsmodus der Gewichtungen für die Anzeigen zu ändern.

Im Folgenden werden drei Szenarien für die Zielfestlegung bei bezahlten Anzeigen beschrieben. Im ersten Szenario bestellt der Kunde zwei Anzeigen, für die die Zielfestlegung auf Kampagnenebene erfolgt. Im zweiten Szenario möchte der Kunde Anforderungen für die erste Anzeige hinzufügen und wechselt zur Zielfestlegung auf Werbeartikelebene. Im dritten Szenario möchte der Kunde, dass die erste Anzeige dreimal so häufig angezeigt wird wie die zweite, und wechselt zurück zur Zielfestlegung auf Kampagnenbene.

  • Szenario 1: Ein Kunde bestellt zwei bezahlte Anzeigen für den Sommerschlussverkauf. Beide Anzeigen sollen gleich oft angezeigt werden. Zusammen sollen sie 1000-mal angezeigt werden. Für jede Anzeige werden 500 Anforderungen bestellt. Die Zielfestlegung für die Kampagne erfolgt auf Kampagnenebene.
    Kampagnenzielfestlegung: gleiche Gewichtung

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  • Szenario 2: Der Kunde möchte nun weitere 500 Anforderungen für die erste Anzeige bestellen. Die Zielfestlegung für diese Kampagne erfolgt nun auf Werbeartikelebene, und die 500 zusätzlichen Anforderungen werden zu der Bestellmenge für die erste Anzeige hinzugefügt, sodass sich die Summe der bestellten Anforderungen für diese Anzeige auf 1000 beläuft. Für die zweite Anzeige gilt weiterhin die Summe von 500 Anforderungen.
    Zielfestlegung für Anzeigenartikel

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  • Szenario 3: Schließlich möchte der Kunde seinen Auftrag so umschichten, dass die erste Anzeige in einem Verhältnis von 3:1 zur zweiten Anzeige geschaltet wird. Die Zielfestlegung für diese Anzeige wird wieder auf Kampagnenebene umgestellt. Die Gesamtsumme der bestellten Anforderungen beläuft sich auf 1500. Für die erste Anzeige wird eine Gewichtung von 3 festgelegt und für die zweite eine Gewichtung von 1. Es ergeben sich für diese Kampagne bezahlte Gewichtungen von 1125 Anforderungen für die erste Anzeige und 375 Anforderungen für die zweite.
    Kampagnenzielfestlegung: Gewichtung 3:1

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Vorsicht

  • Wenn der Kunde im zweiten Szenario entscheidet, die Bestellung so zu ändern, dass eine dritte Anzeige mit einer Gewichtung von 1 hinzugefügt wird, müssen die Gewichtungen für die anderen Anzeigen ebenfalls erneut festgelegt werden. Da die Anzeige von Zielfestlegung auf Anzeigenebene auf Zielfestlegung auf Kampagnenebene umgestellt worden ist, müssen die Gewichtungen für alle Anzeigen neu festgelegt werden, sonst kann die Anzeigenlieferung nicht mehr stimmen.


Hinzufügen eines Anzeigenkampagnenartikels

Anzeigenkampagnenartikel werden erstellt, um einen Zeitplan für die Lieferung der Anzeigen festzulegen. Normalerweise hat ein Anzeigenkampagnenartikel eine Zielfestlegung für die Übermittlung, Datumsbereiche sowie Zielattribute. Wenn Sie eine Anzeigenkampagne erstellt haben, können Sie für die Anzeige einen Zeitplan festlegen, angeben, auf welchen Seiten die Anzeige geschaltet werden soll und als Ziel für die Anzeige eine Benutzergruppe bestimmen. Sie können auch die Anzeigendarstellung festlegen. So können Sie beispielsweise angeben, ob Ihre Anzeige aus Text und Bildern besteht oder ob es sich um eine reine Textanzeige handeln soll. Wenn Sie das Erscheinungsbild Ihrer Anzeige festgelegt haben, können Sie sie in der Vorschau anzeigen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Erstellen eines Anzeigenkampagnenartikels

  • Planen eines Anzeigenkampagnenartikels

  • Zielgruppenadressierung einer Anzeige an eine Seitengruppe

  • Zielgruppenadressierung einer Anzeige an eine Benutzergruppe

  • Festlegen der Anzeigendarstellung

  • Kopieren eines Anzeigenkampagnenartikels


Erstellen eines Anzeigenkampagnenartikels

Das Kampagnen-Manager-Modul ermöglicht das Erstellen von Anzeigenkampagnenartikeln für eine Kampagne. Sie können den Typ der Anzeige festlegen. Sie können in Abhängigkeit vom Zeitplan für den Bereitstellungsbedarf entweder eine bezahlte Anzeige oder Eigenwerbung auswählen. Darüber hinaus kann festgelegt werden, wie oft Benutzern innerhalb einer Sitzung ein bestimmter Inhalt angezeigt werden kann. Um zu verhindern, dass zwei Anzeigen konkurrierender Unternehmen einer Branche auf derselben Seite angezeigt werden, kann der Anzeige ein Branchencode zugeordnet werden.

So erstellen Sie einen Anzeigenkampagnenartikel

So richten Sie die Anzeigendarstellung ein

So erstellen Sie einen Anzeigenkampagnenartikel

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie auf dem Bildschirm Kampagnen-Manager die Kampagne aus, für die Sie eine neue Anzeigenkampagne erstellen möchten, und klicken Sie auf der Symbolleiste auf Hinzufügen. Wählen Sie dann in der Dropdownliste den Eintrag Neue Anzeige aus, um eine neue Anzeige zu erstellen.

  3. Führen Sie auf dem Bildschirm Kampagnen-Manager – Kunde - Kampagne – Neu (Anzeige) im Bereich Anzeigeneigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Anzeigenname Geben Sie den Anzeigennamen ein.

    Um zwischen Eigenwerbung und bezahlten Anzeigen unterscheiden zu können, sollten Sie für diese beiden Anzeigentypen eine klare Namenskonvention verwenden. Sie können z. B. Businessbücher_EW für Eigenwerbung und Business-Software_BA für bezahlte Anzeigen verwenden.
    Status Wählen Sie den Anzeigenkampagnenstatus in der Dropdownliste aus.

    Der Status kann entweder Aktiv oder Inaktiv sein.
    Typ Wählen Sie den gewünschten Anzeigentyp aus.

    Der Typ kann entweder Bezahlte Anzeige oder Eigenwerbung sein.
    Gewichtung für Anforderungen oder Klicks Wenn das Kampagnenziel auf Kampagnenebene gesetzt ist, wählen Sie Gewichtung für den Typ Eigenwerbung oder den Typ Bezahlte Anzeige aus.

    Wenn das Kampagnenziel auf Werbeartikelebene nach Anforderungen gesetzt ist, tun Sie Folgendes:

    • Wenn Sie als Anzeigentyp Bezahlte Anzeige gewählt haben, geben Sie die entsprechende Zahl der Anzeigenanforderungsziele an.

    • Wenn Sie als Anzeigentyp Eigenwerbung gewählt haben, geben Sie den Wert für die Gewichtung der Eigenwerbung ein. Eigenwerbung hat die Standardgewichtung 1.

    Wenn das Kampagnenziel auf Werbeartikelebene nach Klicks gesetzt ist, tun Sie Folgendes:

    • Wenn Sie als Anzeigentyp Bezahlte Anzeige gewählt haben, geben Sie die entsprechende Zahl der Klickziele an.

    • Wenn Sie als Anzeigentyp Eigenwerbung gewählt haben, geben Sie den Wert für die Gewichtung der Eigenwerbung ein. Eigenwerbung hat die Standardgewichtung 1.
    Anzeigelimit Wählen Sie in der Dropdownliste aus, wie oft eine Anzeige einem Benutzer in einer Sitzung angezeigt werden kann.

    Die Höchstzahl für eine Sitzung ist zehn, d. h. eine Anzeige kann einem Benutzer maximal zehnmal angezeigt werden.
    Erhalten am Dieses Feld enthält als Vorgabe das aktuelle Datum. Geben Sie das Datum ein, an dem die Anzeige geschaltet wird, oder wählen Sie es im Dropdownkalender aus.

    Nachdem der Anzeigenkampagnenartikel gespeichert worden ist, kann das Datum nicht mehr geändert werden.

    Branche | Wählen Sie den Branchencode für die Anzeige aus.
    Kommentare | Geben Sie ggf. erforderliche Kommentare zu dieser Anzeige ein.

Anmerkung

  • Sie müssen die Anzeigendarstellung einrichten, bevor Sie den Anzeigenkampagnenartikel speichern können.

So richten Sie die Anzeigendarstellung ein

  1. Führen Sie im Bereich Anzeigendarstellung folgende Schritte aus:
    Option/Funktion | Zweck
    Größe | Wählen Sie in der Dropdownliste die Inhaltsgöße der Anzeige aus.
    Typ | Wählen Sie in der Dropdownliste den Anzeigentyp aus.

    Anmerkung

    • Abhängig vom ausgewählten Anzeigentyp werden unterhalb des Feldes Inhaltstyp unterschiedliche Felder angezeigt. Sie müssen im Bereich Anzeigendarstellung die erforderlichen Informationen eingeben, bevor Sie den Anzeigenkampagnenartikel speichern können. Weitere Informationen zum Festlegen des Erscheinungsbildes von Anzeigenkampagnen für die verschiedenen Anzeigentypen finden Sie unter Einrichten eines Anzeigentyps.
  2. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Anzeige zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Die neue Anzeige wird in der Baumstruktur des Kampagnen-Managers unterhalb des angegebenen Kunden bzw. der angegebenen Kampagne angezeigt.

Siehe auch

Hinzufügen einer Kampagne

Hinzufügen von Branchencodes

Festlegen von Inhaltsgrößen

Festlegen der Anzeigendarstellung

Planen eines Anzeigenkampagnenartikels

Zielgruppenadressierung einer Anzeige an eine Seitengruppe

Zielgruppenadressierung einer Anzeige an eine Benutzergruppe


Planen eines Anzeigenkampagnenartikels

Wenn Sie einen neuen Anzeigenkampagnenartikel erstellt haben, können Sie Anfangs- und Beendigungsdatum für diese Anzeige festlegen. Sie können das Beendigungsdatum für die Anzeige ändern, während die Anzeige geschaltet ist. Sie können beispielsweise einen Tag hinzufügen oder abziehen. Der Bereitstellungsbedarf wird dann auf der Grundlage der verbleibenden Menge und der verbleibenden Zeit neu berechnet.

So planen Sie einen Anzeigenkampagnenartikel

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie auf dem Bildschirm Kampagnen-Manager die Anzeige aus, die Sie planen möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  3. Führen Sie auf dem Bildschirm Kampagnen-Manager – Kunde – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) im Bereich Anzeigenzeitplan folgende Schritte aus:
    Option/Funktion | Zweck
    Anfangsdatum | Geben Sie das Datum ein, an dem die Anzeige starten soll, oder wählen Sie es im Dropdownkalender aus.
    Beendigungsdatum | Geben Sie das Datum ein, an dem die Anzeige enden soll, oder wählen Sie es im Dropdownkalender aus.
    Tage | Markieren Sie die Wochentage, an denen die Anzeige geschaltet werden soll.
    Anfangszeit | Geben Sie die Uhrzeit ein, zu der die Anzeige starten soll (basierend auf der Systemuhr des Servers), oder wählen Sie sie in der Dropdownliste aus.
    Beendigungszeit | Geben Sie die Uhrzeit ein, zu der die Anzeige enden soll (basierend auf der Systemuhr des Servers), oder wählen Sie sie in der Dropdownliste aus.

    Anmerkungen

    • Wenn Sie die Anfangszeit auf eine spätere Zeit als die Beendigungszeit einstellen, startet die Anzeige zu diesem späteren Zeitpunkt und läuft bis zur Beendigungszeit. Wenn z. B. als Anfangszeit 11:00 Uhr und als Beendigungszeit 9:00 Uhr festgelegt wird, wird die Anzeige 22 Stunden lang geschaltet.

    • Wenn für die Startzeit und für die Beendigungszeit dieselbe Uhrzeit festgelegt wird, wird die Anzeige 24 Stunden lang geschaltet.
  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Anzeige zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Der Zeitplan wird mit der Anzeige gespeichert.

Siehe auch

Planen einer Kampagne

Hinzufügen eines Anzeigenkampagnenartikels


Zielgruppenadressierung einer Anzeige an eine Seitengruppe

Sie können festlegen, ob ein Anzeigenkampagnenartikel auf allen Seiten der Website angezeigt wird oder ob er nur auf den ihm zugeordneten Seitengruppen angezeigt wird. Über Seitengruppen kann festgelegt werden, auf welchen Webseiten ein Anzeigenkampagnenartikel angezeigt wird. Handelt es sich bei Ihrer Website beispielsweise um eine Onlinezeitung, könnten Sie z. B. eine Anzeige für Golfschläger ausschließlich auf Seiten im Sportbereich zu platzieren.

Anzeigen können auf allen Seitengruppen platziert werden. Es ist jedoch auch möglich, aus den im Referenztabellenmodul im Bereich Seitengruppen erstellten Seitengruppen eine oder mehrere Gruppen auszuwählen.

Anmerkung

  • Damit eine Anzeige auf einer Seitengruppe angezeigt werden kann, müssen die entsprechenden Seiten vom Siteentwickler für Anzeigen aktiviert werden. Weitere Informationen zum Aktivieren einer Seite für Anzeigen finden Sie im Anzeigen-Beispielsitelet im Commerce Server 2000 Software Development Kit.

So legen Sie die Zielgruppenadressierung einer Anzeige an eine Seitengruppe fest

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie auf dem Bildschirm Kampagnen-Manager die Anzeige aus, für die Sie eine neue Seitengruppe erstellen möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  3. Führen Sie auf dem Bildschirm Kampagnen-Manager – Kunde – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) im Bereich Anzeigenziel folgende Schritte aus:
    Option/Funktion | Zweck
    Auf allen Seitengruppen anzeigen Aktivieren Sie dieses Kontrollkästchen, um die Anzeige auf allen Seitengruppen der Website anzuzeigen.

    Um die Werbekampagne einer bestimmten Seitengruppe zuzuweisen, deaktivieren Sie das Kontrollkästchen, und befolgen Sie die weiteren Schritte in dieser Anleitung.
    Seitengruppen: Verfügbar | Wählen Sie die Seitengruppe(n) aus, die Sie zuweisen möchten.

  4. Klicken Sie auf Hinzufügen.

Die ausgewählte Seite wird in das Feld Zugewiesen verschoben.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Anzeige zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Die Anzeige wird auf den Zielseitengruppen angezeigt.

Siehe auch

Hinzufügen eines Anzeigenkampagnenartikels

Hinzufügen von Seitengruppen


Zielgruppenadressierung einer Anzeige an eine Benutzergruppe

Zielgruppen sind Ausdrücke, die einer Aktion zugeordnet sind, um so eine bestimmte Benutzergruppe mit einer Anzeige zielgerichtet anzusprechen. Eine Zielgruppe kann mehrere Ausdrücke und Aktionen beinhalten. Sie können Zielgruppen erstellen, um bestimmte Benutzer in eine Gruppe einzuschließen oder um bestimmte Benutzer auszuschließen. Aus einer bestehenden Liste von Gruppen, die Sie mithilfe des Zielgruppenmoduls erstellt haben, können Sie eine Benutzergruppe als Ziel auswählen. Informationen über das Erstellen von Zielgruppen finden Sie unter Erstellen einer Zielgruppe.

So legen Sie die Zielgruppenadressierung einer Anzeige an eine Benutzergruppe fest

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie auf dem Bildschirm Kampagnen-Manager die Anzeige aus, der Sie eine neue Zielgruppe zuweisen möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  3. Führen Sie auf dem Bildschirm Kampagnen-Manager – Kunde – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) im Bereich Anzeigenziel folgende Schritte aus:
    Option/Funktion | Zweck
    Zielgruppen: Verfügbar | Wählen Sie die Zielgruppe(n) aus, die Sie zuweisen möchten.

  4. Klicken Sie auf Hinzufügen.

Die Zielgruppe wird in das Feld Zugewiesen verschoben.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Anzeige zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Die Anzeige wird der ausgewählten Zielgruppe angezeigt.

Siehe auch

Hinzufügen eines Anzeigenkampagnenartikels

Erstellen eines Zielausdrucks

Erstellen einer Zielgruppe


Festlegen der Anzeigendarstellung

Zum Anzeigen einer Anzeige sind die folgenden zwei Schritte erforderlich:

  • Festlegen der Größe einer Anzeige

  • Einrichten eines Anzeigentyps

Festlegen der Größe einer Anzeige

Commerce Server 2000 enthält eine Reihe von standardmäßigen Inhaltsgrößen, die Sie für Ihre Anzeigen verwenden können. Außerdem können Sie eigene Inhaltsgrößen erstellen. Befolgen Sie sowohl für die Standardgrößen als auch für benutzerdefinierte Größen die folgenden Schritte, um für eine Anzeige eine Inhaltsgröße anzuwenden.

Anmerkung

  • Verwenden Sie das Referenztabellenmodul, um benutzerdefinierte Inhaltsgrößen festzulegen. Informationen finden Sie unter Festlegen von Inhaltsgrößen.

So legen Sie die Größe einer Anzeige fest

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie auf dem Bildschirm Kampagnen-Manager die Anzeigenkampagne mit der Anzeige aus, deren Größe Sie festlegen möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  3. Führen Sie auf dem Bildschirm Kampagnen-Manager – Kunde – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) im Bereich Anzeigendarstellung folgende Schritte aus:
    Option/Funktion | Zweck
    Größe | Wählen Sie die Anzeigengröße in der Dropdownliste aus.

Sie haben die Inhaltsgröße für die Anzeige festgelegt. Nun können Sie den Anzeigentyp einrichten.

Einrichten eines Anzeigentyps

Für Ihre Anzeigenkampagne benötigen Sie möglicherweise einen bestimmten Anzeigentyp. So können Sie beispielsweise angeben, ob Ihre Anzeige ein Bilder enthält oder ob es sich um eine reine Textanzeige handeln soll.

So richten Sie einen Anzeigentyp ein

So richten Sie eine Bildanzeige ein

So richten Sie eine Textanzeige ein

So richten Sie eine HTML-Anzeige ein

So richten Sie eine nicht anzuklickende Bildanzeige ein

So richten Sie eine "Jetzt kaufen"-Anzeige ein

So richten Sie eine Windows Media Services-Anzeige ein

So richten Sie eine ausgerichtete Vignettenanzeige ein

So richten Sie einen Anzeigentyp ein

  • Wählen Sie auf dem Bildschirm Kampagnen-Manager – Kunde – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) im Bereich Anzeigendarstellung in der Dropdownliste den gewünschten Anzeigentyp aus.

    Anmerkung

    • Abhängig vom ausgewählten Anzeigentyp werden unterhalb des Feldes Typ unterschiedliche Felder angezeigt. Weitere Informationen zum Einrichten des Erscheinungsbildes von Anzeigenkampagnen für die verschiedenen Anzeigentypen finden Sie in den übrigen Anleitungsschritten unter "Festlegen des Erscheinungsbildes von Anzeigen".

So richten Sie eine Bildanzeige ein

Sie können ein Anzeigenbild mit den Webseiten verknüpfen, auf denen die Anzeige platziert werden soll. Den Benutzern wird ein Bild angezeigt, wenn sie die Webseiten besuchen, auf denen die Anzeige platziert ist.

  1. Führen Sie auf dem Bildschirm Kampagnen-Manager – Kunde – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) im Bereich Anzeigendarstellung folgende Schritte aus:
    Option/Funktion | Zweck
    Größe | Wählen Sie die gewünschte Anzeigengröße aus.
    Typ | Wählen Sie den Typ Bild aus.
    Bild-URL | Geben Sie den URL für das Bild ein, das in der Anzeige wiedergegeben werden soll.
    Ziel-URL | Geben Sie den URL ein, der mit der dargestellten Anzeige verknüpft ist.
    Alternativer Text | Geben Sie den alternativen Text ein, den ein Benutzer sieht, wenn auf seinem Computer keine Grafik aktiviert ist.

  2. Klicken Sie auf der Symbolleiste auf Speichern, um die Anzeige zu speichern, ohne den Bildschirm Kampagnen-Manager – Kunde – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) zu schließen.

Die Anzeige wird als Bildanzeige eingerichtet und mit diesem Kampagnenartikel gespeichert.

So richten Sie eine Textanzeige ein

Eine Textanzeige besteht ausschließlich aus Text. Den Benutzern wird der Text angezeigt, wenn sie die Webseiten besuchen, auf denen die Anzeige platziert ist.

  1. Führen Sie auf dem Bildschirm Kampagnen-Manager – Kunde – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) im Bereich Anzeigendarstellung folgende Schritte aus:
    Option/Funktion | Zweck
    Größe | Wählen Sie die gewünschte Anzeigengröße aus.
    Typ | Wählen Sie die Option Text aus.
    Text | Geben Sie den Anzeigentext ein.
    Ziel-URL | Geben Sie den URL ein, der mit der dargestellten Anzeige verknüpft ist.

  2. Klicken Sie auf der Symbolleiste auf Speichern, um die Anzeige zu speichern, ohne den Bildschirm Kampagnen-Manager – Kunde – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) zu schließen.

Die Anzeige wird als Textanzeige eingerichtet und mit diesem Kampagnenartikel gespeichert.

So richten Sie eine HTML-Anzeige ein

Eine HTML-Anzeige besteht aus HTML-Code. Den Benutzern wird Text angezeigt, der durch den HTML-Code dargestellt wird, wenn sie die Webseiten besuchen, auf denen die Anzeige platziert ist.

  1. Führen Sie auf dem Bildschirm Kampagnen-Manager – Kunde – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) im Bereich Anzeigendarstellung folgende Schritte aus:
    Option/Funktion | Zweck
    Größe | Wählen Sie die gewünschte Anzeigengröße aus.
    Typ | Wählen Sie HTML aus.
    HTML-Text | Geben Sie den HTML-Text (in HTML-Format) ein, der in der Anzeige angezeigt werden soll.

  2. Klicken Sie auf der Symbolleiste auf Speichern, um die Anzeige zu speichern, ohne den Bildschirm Kampagnen-Manager – Kunde – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) zu schließen.

Die Anzeige wird als HTML-Anzeige eingerichtet und mit diesem Kampagnenartikel gespeichert.

So richten Sie eine nicht anzuklickende Bildanzeige ein

Bei einer nicht anzuklickenden Bildanzeige handelt es sich um eine grafische Abbildung, die den Benutzern angezeigt wird, wenn sie die Webseiten besuchen, auf denen die Anzeige platziert ist. Die Anzeige enthält keinen Link zu einer anderen Webseite.

  1. Führen Sie auf dem Bildschirm Kampagnen-Manager – Kunde – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) im Bereich Anzeigendarstellung folgende Schritte aus:
    Option/Funktion | Zweck
    Größe | Wählen Sie die gewünschte Anzeigengröße aus.
    Typ | Wählen Sie Nicht anzuklickendes Bild aus.
    Bild-URL | Geben Sie den URL für das Bild ein, das in der Anzeige wiedergegeben werden soll.
    Alternativer Text | Geben Sie den alternativen Text ein, den ein Benutzer sieht, wenn auf seinem Computer keine Grafik aktiviert ist.

  2. Klicken Sie auf der Symbolleiste auf Speichern, um die Anzeige zu speichern, ohne den Bildschirm Kampagnen-Manager – Kunde/Kundin – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) zu schließen.

Die Anzeige wird als nicht anzuklickende Bildanzeige eingerichtet und mit dem Kampagnenartikel gespeichert.

So richten Sie eine "Jetzt kaufen"-Anzeige ein

"Jetzt kaufen"-Anzeigen ermöglichen es Benutzern, Waren auf jeder beliebigen Webseite im Internet einzukaufen. Wenn ein Benutzer auf ein Produktbild klickt, wird ein Dialogfeld angezeigt, in das er Lieferadresse und Kreditkarteninformationen eingeben soll.

  1. Führen Sie auf dem Bildschirm Kampagnen-Manager – Kunde Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) im Bereich Anzeigendarstellung folgende Schritte aus:
    Option/Funktion | Zweck
    Größe | Wählen Sie die gewünschte Anzeigengröße aus.
    Typ | Wählen Sie Jetzt kaufen aus.
    Bild-URL | Geben Sie den URL für das Bild ein, das in der Anzeige wiedergegeben werden soll.
    Ziel-URL | Geben Sie den URL ein, der mit der dargestellten Anzeige verknüpft ist.
    Alternativer Text | Geben Sie den alternativen Text ein, den ein Benutzer sieht, wenn auf seinem Computer keine Grafik aktiviert ist.
    Fensterbreite | Geben Sie die Breite der Anzeige in Pixel ein.
    Fensterhöhe | Geben Sie die Höhe der Anzeige in Pixel ein.

  2. Klicken Sie auf der Symbolleiste auf Speichern, um die Anzeige zu speichern, ohne den Bildschirm Kampagnen-Manager – Kunde/Kundin – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) zu schließen.

Die Anzeige wird als "Jetzt kaufen"-Anzeige eingerichtet und mit dem Kampagnenartikel gespeichert.

So richten Sie eine Windows Media Services-Anzeige ein

Bei Windows Media Services-Anzeigen handelt es sich um Anzeigen mit hochwertigen Audio- und Videosequenzen.

  1. Führen Sie auf dem Bildschirm Kampagnen-Manager – Kunde Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) im Bereich Anzeigendarstellung folgende Schritte aus:
    Option/Funktion | Zweck
    Größe | Wählen Sie die gewünschte Anzeigengröße aus.
    Typ | Wählen Sie Windows Media Services aus.
    Windows Media Services-ASF | Geben Sie das Windows Media Services-ASF (Advanced Streaming Format) für die Anzeige ein.
    Ziel-URL | Geben Sie den URL ein, der mit der dargestellten Anzeige verknüpft ist.

  2. Klicken Sie auf der Symbolleiste auf Speichern, um die Anzeige zu speichern, ohne den Bildschirm Kampagnen-Manager – Kunde – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) zu schließen.

Die Anzeige wird als Windows Media Services-Anzeige eingerichtet und mit dem Kampagnenartikel gespeichert.

So richten Sie eine ausgerichtete Vignettenanzeige ein

Eine Vignettenanzeige besteht aus einem Bild und Text, der daneben angezeigt wird.

  1. Führen Sie auf dem Bildschirm Kampagnen-Manager – Kunde – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) im Bereich Anzeigendarstellung folgende Schritte aus:
    Option/Funktion | Zweck
    Größe | Wählen Sie die gewünschte Anzeigengröße aus.
    Typ Wählen Sie eine der Optionen Linke Vignette, Rechte Vignette oder Obere Vignette aus.

    Mit der Option Linke Vignette positionieren Sie die Anzeige links neben dem Text.

    Mit der Option Rechte Vignette positionieren Sie die Anzeige rechts neben dem Text.

    Mit der Option Obere Vignette positionieren Sie die Anzeige oberhalb des Textes.
    Bild-URL | Geben Sie den URL für das Bild ein, das in der Anzeige wiedergegeben werden soll.
    Text | Geben Sie den Text ein, der neben der Anzeige angezeigt werden soll.
    Ziel-URL | Geben Sie den URL ein, der mit der dargestellten Anzeige verknüpft ist.
    Alternativer Text | Geben Sie den alternativen Text ein, den ein Benutzer sieht, wenn auf seinem Computer keine Grafik aktiviert ist.

  2. Klicken Sie auf der Symbolleiste auf Speichern, um die Anzeige zu speichern, ohne den Bildschirm Kampagnen-Manager – Kunde – Kampagne – Anzeigenkampagnenartikel (Anzeigen-ID: Nummer) zu schließen.

Die Anzeige wird als ausgerichtete Vignette eingerichtet und mit dem Kampagnenartikel gespeichert.

Siehe auch

Hinzufügen eines Anzeigenkampagnenartikels

Festlegen von Inhaltsgrößen

Vorschau eines Kampagnenartikels

Veröffentlichen von Kampagnenänderungen in der Website


Kopieren eines Anzeigenkampagnenartikels

Sie können einen bereits bestehenden Anzeigenkampagnenartikel kopieren, um so schnell und problemlos zusätzliche Anzeigenkampagnenartikel zu einem Kunden und der ihm zugeordneten Kampagne hinzuzufügen. Wenn Sie eine bestehende Anzeige als Vorlage verwenden, können Sie deren Eigenschaften nach dem Kopieren so anpassen, dass die Anforderungen für den neuen Anzeigenkampagnenartikel erfüllt sind.

So kopieren Sie eine Anzeige

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie auf dem Bildschirm Kampagnen-Manager die zu kopierende Anzeige aus, und klicken Sie dann auf der Symbolleiste auf Kopieren.

  3. Führen Sie im Dialogfeld Anzeige kopieren die folgenden Schritte aus:
    Option/Funktion | Zweck
    Kunden auswählen | Wählen Sie in der Dropdownliste den Kunden aus, dessen Anzeige kopiert werden soll.
    Kampagne auswählen | Wählen Sie in der Dropdownliste die Kampagne aus, deren Anzeige kopiert werden soll.

  4. Klicken Sie auf OK.

  5. Führen Sie auf dem Bildschirm Kampagnen-Manager – Kunde - Kampagne - Neu (Anzeige) im Bereich Anzeigeneigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Anzeigenname | Geben Sie den Namen der neuen Anzeige ein.

  6. Bearbeiten Sie die weiteren Eigenschaften nach Bedarf.

  7. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Anzeige zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Die neue Anzeige wird in der Baumstruktur des Kampagnen-Managers unterhalb des ausgewählten Kunden bzw. der ausgewählten Kampagne angezeigt.

Siehe auch

Hinzufügen eines Anzeigenkampagnenartikels


Hinzufügen eines Preisnachlasskampagnenartikels

Sie können Preisnachlasskampagnenartikel erstellen und auf jeden beliebigen Artikel im Katalog anwenden. Im Kampagnen-Manager-Modul können Sie neue Preisnachlassartikel erstellen, planen, wann die Preisnachlässe auf der Site angezeigt werden sollen, festlegen, für welche Produkte, Seitengruppen bzw. Zielgruppen der Preisnachlass gelten soll, und angeben, auf welche Weise der Preisnachlass angezeigt werden soll. Sie können die Preisnachlassartikel auch so in der Vorschau anzeigen wie in der ausgewählten Website bzw. Seitengruppe.

Dieser Abschnitt beinhaltet folgende Themen:

  • Erstellen eines Preisnachlasskampagnenartikels

  • Vorschau auf die Preisnachlassanzeige

  • Kopieren eines Preisnachlasskampagnenartikels


Erstellen eines Preisnachlasskampagnenartikels

Wenn Sie eine Kampagne erstellt haben, können Sie einen Preisnachlasskampagnenartikel erstellen. Preisnachlässe können auf jeden beliebigen Artikel bzw. auf jede beliebige Kategorie im Katalog angewendet werden. Beispielsweise können Sie in einem Hardwarekatalog einen 20-prozentigen Preisnachlass auf Artikel der Tastaturkategorie gewähren. Beim Erstellen eines Preisnachlassartikels legen Sie fest, auf welche Weise und mit welchem Erscheinungsbild der Preisnachlass dem Benutzer angezeigt wird.

Mithilfe von Zielausdrücken können Sie den Preisnachlass zielgerichtet an bestimmte Benutzern lenken. So können Sie beispielsweise wichtige Käufer belohnen, indem Sie einen Preisnachlass von 10 % auf die ersten zwei Artikel in ihrem Warenkorb gewähren. Sie können auch festlegen, wie oft ein bestimmter Preisnachlass einem Benutzer innerhalb einer Sitzung angezeigt werden kann. Nach dem Festlegen der Preisnachlassanzeige können Sie diese in der Vorschau anzeigen, bevor Sie sie im Kampagnen-Manager speichern.

Hinzufügen von Eigenschaften für Preisnachlasskampagnen

Festlegen der Preisnachlassbedingungen, Auszeichnungen und Berechtigungsanforderungen

Zielgruppenadressierung eines Preisnachlasses an eine Seitengruppe

Festlegen der Anzeige der Preisnachlasskampagne

Hinzufügen von Eigenschaften für Preisnachlasskampagnen

Beim Gewähren mehrerer Preisnachlässe können Sie die Reihenfolge der Preisnachlässe festlegen sowie das Start- bzw. Enddatum für den Preisnachlasskamgagnenartikel.

So fügen Sie Eigenschaften für Preisnachlasskampagnen hinzu

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Markieren Sie auf dem Bildschirm Kampagnen-Manager die Kampagne, für die Sie einen neuen Preisnachlasskampagnenartikel erstellen möchten, und klicken Sie auf der Symbolleiste auf Hinzufügen. Wählen Sie dann in der Dropdownliste den Eintrag Neuer Preisnachlass aus.

  3. Führen Sie auf dem Bildschirm Kampagnen-Manager - Kundenname - Kampagnenname - Neu (Preisnachlass) im Bereich Preisnachlasseigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Preisnachlassname | Geben Sie einen Namen für den Preisnachlasskampagnenartikel ein.
    Status Wählen Sie in der Dropdownliste den Status der Preisnachlasskampagne aus.

    Der Status kann entweder Aktiv oder Inaktiv sein.

    Priorität Wählen Sie in der Dropdownliste die Priorität der Preisnachlasskampagne aus.

    Die Priorität des Preisnachlasses legt fest, welche Preisnachlässe auf den Warenkorb anzuwenden sind. Beispiel: Ein Preisnachlass mit der Priorität 10 wird vor einem mit der Priorität 20 angewendet.

    Kommentare | Geben Sie einen Kommentar ein, der sich auf diese Preisnachlasskampagne bezieht.
    Anfangsdatum | Geben Sie das Anfangsdatum für den Preisnachlasskampagnenartikel ein oder wählen Sie es im Dropdownkalender aus.
    Beendigungsdatum | Geben Sie das Beendigungsdatum für den Preisnachlasskampagnenartikel ein oder wählen Sie es im Dropdownkalender aus.

Anmerkung

  • Sie müssen die Preisnachlassanzeige einrichten, um den Preisnachlasskampagnenartikel speichern zu können. Informationen zum Einrichten der Preisnachlassanzeige finden Sie unter Festlegen der Anzeige der Preisnachlasskampagne.

Festlegen der Preisnachlassbedingungen, Auszeichnungen und Berechtigungsanforderungen

Sie kennzeichnen das Produkt bzw. die Kategorie im Katalog, für die Sie den Preisnachlass gewähren möchten und geben dann den Betrag für den Preisnachlass (als Währungsbetrag oder als Anzahl von Einheiten) an. Dann legen Sie die Benutzer fest, denen der Preisnachlass gewährt wird. Darüber hinaus bestimmen Sie die Anzahl der Artikel, die ein Benutzer kaufen muss, damit der Preisnachlass gewährt wird. Außerdem legen Sie die Auszeichnung fest (beispielsweise ein prozentualer Preisnachlass für das Produkt, ein Gratisprodukt oder die Übernahme der Frachtkosten), die ein Benutzer als Preisnachlass erhält. So können Sie beispielsweise Benutzern über 40 einen 20-prozentigen Preisnachlass für eine Jazz-CD gewähren, wenn sie drei Artikel der CD-Kategorie aus Ihrem Katalog kaufen.

Beispielszenarien

So legen Sie die Preisnachlassdefinition fest

Beispiel: Einrichten von Preisnachlassbedingungen, Auszeichnungs- und Berechtigungsanforderungen

Beispielszenarien

Die folgenden Szenarien illustrieren eine Reihe von angebotenen Auszeichnungen mit ihren jeweiligen Berechtigungsanforderungen.

  • Szenario 1: Wenn ein Benutzer Waren im Wert von über 100,00 DM kauft, werden die Frachtkosten übernommen.
    Preisnachlässe: ohne Versandkosten

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  • Szenario 2: Wenn ein Benutzer ein beliebiges Produkt aus dem Katalog kauft, erhält er einen Preisnachlass von 10 % auf Blue Jeans aller Marken.
    Preisnachlässe: 10 Prozent auf Jeans

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  • Szenario 3: Ein bevorzugter Käufer erhält einen 10-prozentigen Preisnachlass auf die ersten beiden Artikel in seinem Warenkorb.
    Preisnachlässe: bevorzugte Kunden

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  • Szenario 4: Wenn Benutzer auf das Preisnachlassbild klicken, erhalten sie einen Preisnachlass von 5,00 DM auf alle Handtuchsets.
    Preisnachlässe: DM 5,00 auf Badetücher

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  • Szenario 5: Benutzer über 40, die drei Artikel der CD-Kategorie kaufen, erhalten eine Auszeichnung in Form eines 50-prozentigen Preisnachlasses auf Jazz-CDs.
    Preisnachlässe: 50% auf Jazz-CD

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

So legen Sie die Preisnachlassdefinition fest

Die Preisnachlassdefinition wird festgelegt, indem Sie die Preisnachlassbedingungen, die Auszeichnungs- und die Berechtigungsanforderungen einrichten. Ein Beispiel für eine Preisnachlassdefinition finden Sie unter Beispiel: Einrichten von Preisnachlassbedingungen, Auszeichnungs- und Berechtigungsanforderungen.

  1. Führen Sie auf dem Bildschirm Kampagnen-Manager - Kundenname - Kampagnenname - Neu (Preisnachlass) im Bereich Preisnachlassdefinition folgende Schritte aus:
    Option/Funktion | Zweck
    Kaufen: Alles Aktivieren Sie dieses Kontrollkästchen, wenn der Preisnachlass für jedes Produkt gelten soll.

    Lassen Sie dieses Kontrollkästchen deaktiviert, wenn der Preisnachlass für bestimmte Produkte oder Kategorien gewährt werden soll, und befolgen Sie die weiteren Schritte in dieser Anleitung.

    Kaufen:
    • Erstes Feld. Wählen Sie in Dropdownliste die Option Wert oder Menge aus.

    • Zweites Feld. Geben Sie den Wert in DM bzw. die Anzahl von Einheiten für den Preisnachlass ein – je nach der Option, die Sie unter Kaufen: (Erstes Feld) für den Preisnachlass ausgewählt haben.

    • Drittes Feld. Wählen Sie in der Dropdownliste die auf diesen Preisnachlass zutreffende Option aus. Werte für dieses Feld sind Jedes Produkt, Produktauswahl und Ausdrucks-Generator.

      Jedes Produkt: Wählen Sie diese Option, wenn der Preisnachlass sich auf jedes Produkt bezieht.

      Produktauswahl: Wählen Sie diese Option, wenn der Preisnachlass sich auf ein bestimmtes Produkt oder auf eine Kategorie im Katalog bezieht. Mithilfe des Dialogfelds Produktauswahl können Sie bestimmte Produkte oder Kategorien in den Katalogen finden. Informationen über die Verwendung dieses Dialogfelds finden Sie unter Neu von der Produktauswahl.

      - Oder -

      Klicken Sie auf die Auslassungsschaltfläche […], oder wählen Sie die Option Ausdrucks-Generator, um das Dialogfeld Katalogausdrücke zu öffnen. Durch Erstellen eines Katalogausdrucks können Sie festlegen, für welche Kategorien oder Produkte ein Preisnachlass gewährt werden soll. Weitere Informationen über das Erstellen von Katalogausdrücken finden Sie unter Erstellen eines Katalogausdrucks.

      Anmerkung

      • In der Dropdownliste werden zusätzliche Produkte und Kategorien angezeigt, falls sie vorher ausgewählt wurden.
    Abrufen: Ohne Frachtkosten Aktivieren Sie dieses Kontrollkästchen, um die Auslieferung ohne Frachtkosten als Preisnachlass auf alle bestellten Produkte zu gewähren.

    Lassen Sie das Kontrollkästchen Ohne Frachtkosten deaktiviert, um die Produkte und Kategorien festzulegen, die einen Preisnachlass erhalten, und befolgen Sie die weiteren Schritte in dieser Anleitung.

    Abrufen
    • Erstes Feld. Geben Sie die Anzahl der Einheiten ein, die ein Benutzer erhält, wenn die Preisnachlassregeln erfüllt sind.

      Zweites Feld. Wählen Sie in der Dropdownliste die Option aus, die auf diesen Preisnachlass zutrifft. Werte für dieses Feld sind Jedes Produkt, Produktauswahl und Ausdrucks-Generator.

      Jedes Produkt: Wählen Sie diese Option, wenn der Preisnachlass sich auf jedes Produkt bezieht.

      Produktauswahl: Wählen Sie diese Option, wenn der Preisnachlass sich auf ein bestimmtes Produkt oder auf eine Kategorie im Katalog bezieht. Mithilfe des Dialogfelds Produktauswahl können Sie bestimmte Produkte oder Kategorien in den Katalogen finden. Informationen über die Verwendung dieses Dialogfelds finden Sie unter Neu von der Produktauswahl.

      - Oder -

      Klicken Sie auf die Auslassungsschaltfläche […], oder aktivieren Sie die Option Ausdrucks-Generator, um das Dialogfeld Katalogausdrücke zu öffnen. Durch Erstellen eines Katalogausdrucks können Sie festlegen, auf welche Kategorien und Produkte diese Auszeichnung angewendet werden soll. Weitere Informationen über das Erstellen von Katalogausdrücken finden Sie unter Erstellen eines Katalogausdrucks.

      Anmerkung

      • In der Dropdownliste werden zusätzliche Produkte und Kategorien angezeigt, falls sie vorher ausgewählt wurden.
    • Drittes Feld. Wählen Sie in der Dropdownliste die Einheit des Preisnachlasses aus.

    • Viertes Feld. Geben Sie den Wert in DM oder die Anzahl von Einheiten für den Preisnachlass ein, entweder nach Preis oder nach Prozent – je nach der für den Preisnachlass ausgewählten Option.
    Höchstwert | Wählen Sie in der Dropdownliste einen Höchstwert für den Preisnachlass aus. Der Höchstwert Keiner gibt an, dass es für den Preisnachlass keinen Höchstwert gibt. Pro Benutzer können höchstens 10 Preisnachlässe gewährt werden.
    Angebot nur auf 'Produkt abrufen' anwenden Wählen Sie diese Option aus, um den Preisnachlass nur auf die Auszeichnung anzuwenden.

    Wenn ein Benutzer beispielsweise zwei Paar Schuhe kauft (darunter ein Paar Tennisschuhe) und 20 % Rabatt auf die Tennisschuhe erhält, dann werden diese 20 % auch nur auf die Tennisschuhe angewendet, die er als Auszeichnung erhält.

    Angebot auf 'Produkt abrufen' und 'Produkt kaufen' anwenden Wählen Sie diese Option aus, um den Preisnachlass auf das qualifizierte Produkt und auf die Auszeichnung anzuwenden.

    Wenn der Benutzer z. B. zwei Paar Schuhe kauft (darunter ein Paar Tennisschuhe) und 20 % Rabatt auf die Tennisschuhe erhält, dann werden diese 20 % auch nur auf die zwei Paar Tennisschuhe angewendet.

    Ein Klick auf 'Preisnachlass' ist erforderlich. Ein Preisnachlass wird nur angewendet, wenn auf die Preisnachlassanzeige geklickt wird. Aktivieren Sie dieses Kontrollkästchen, damit der Preisnachlass nur angewendet wird, wenn der Kunde auch tatsächlich auf die Preisnachlassanzeige klickt.

    Wenn kein Klick auf Preisnachlass erforderlich sein soll, dann lassen Sie dieses Kontrollkästchen deaktiviert.

    Berechtigungsanforderungen: Ausdruck verfügbar Markieren Sie die Ausdrücke für den Preisnachlass in der Liste der verfügbaren Ausdrücke, und klicken Sie dann auf Hinzufügen.

    Informationen über das Erstellen eines Zielausdrucks finden Sie unter Erstellen eines Zielausdrucks.

Damit sind die Preisnachlassbedingungen, Auszeichnungs- und Berechtigungsanforderungen für den Preisnachlasskampagnenartikel festgelegt.

Anmerkung

  • Sie müssen die Preisnachlassanzeige einrichten, um den Preisnachlasskampagnenartikel speichern zu können. Informationen zum Einrichten +der Preisnachlassanzeige finden Sie unter Festlegen der Anzeige der Preisnachlasskampagne.

Beispiel: Einrichten von Preisnachlassbedingungen, Auszeichnungs- und Berechtigungsanforderungen

Das folgende Beispiel zeigt das Einrichten eines Preisnachlasses für eine Zielgruppe von Benutzern über 40, die drei Artikel aus der CD-Kategorie kaufen und eine Auszeichnung in Form eines 50-prozentigen Preisnachlasses auf Jazz-CDs erhalten.

  1. Führen Sie auf dem Bildschirm Kampagnen-Manager - Kundenname - Kampagnenname - Neu (Preisnachlass) im Bereich Preisnachlassdefinition folgende Schritte aus:
    Option/Funktion | Zweck
    Kaufen: Alles | Stellen Sie sicher, dass dieses Kontrollkästchen deaktiviert ist, wenn der Preisnachlass auf bestimmte Produkte oder Kategorien angewendet werden soll, und befolgen Sie die weiteren Schritte in dieser Anleitung.
    Kaufen:
    • Erstes Feld. Wählen Sie in der Dropdownliste die Option Menge aus.

      Wählen Sie im Dialogfeld Produktauswahl in der Dropdownliste den gewünschten Katalog aus. Wählen Sie im Feld Kategorien die Kategorie aus, für die Sie den Preisnachlass gewähren möchten, und klicken Sie dann auf OK.

    • Zweites Feld. Geben Sie als Kaufmenge den Wert 3 ein.

    • Drittes Feld. Wählen Sie in der Dropdownliste die Option Produktauswahl aus.
    Abrufen: Ohne Frachtkosten | Lassen Sie dieses Kontrollkästchen deaktiviert, um festzulegen, dass der Preisnachlass auf bestimmte Produkte oder Kategorien angewendet werden soll, und befolgen Sie die weiteren Schritte in dieser Anleitung.
    Abrufen
    • Erstes Feld. Geben Sie für die Anzahl der Einheiten, die der Benutzer bei Erfüllung der Preisnachlassregeln als Auszeichnung erhält, den Wert 1 ein.

      Zweites Feld. Wählen Sie in der Dropdownliste die Option Produktauswahl aus.

      Wählen Sie im Dialogfeld Produktauswahl den in der Dropdownliste gewünschten Katalog aus. Wählen Sie im Feld Kategorien die Kategorie aus, für die Sie den Preisnachlass gewähren möchten. Wählen Sie im Feld Produkte in Kategorie das Produkt aus, für das Sie den Preisnachlass gewähren möchten, und klicken Sie dann auf OK.

      • Drittes Feld. Wählen Sie in der Dropdownliste die Option Prozent (%) aus.

      • Viertes Feld. Geben Sie als Wert für die Preisnachlassauszeichnung den Betrag 50 ein.
    Höchstwert | Wählen Sie als Höchstwert die Option Keiner, um festzulegen, dass es für den Preisnachlass keinen Höchstwert gibt.
    Angebot nur auf 'Produkt abrufen' anwenden | Wählen Sie diese Option aus, um den Preisnachlass nur auf die Auszeichnung anzuwenden.
    Ein Klick auf 'Preisnachlass' ist erforderlich. Ein Preisnachlass wird nur angewendet, wenn auf die Preisnachlassanzeige geklickt wird. | Aktivieren Sie dieses Kontrollkästchen, damit der Preisnachlass nur angewendet wird, wenn der Kunde auch tatsächlich auf die Preisnachlassanzeige klickt.
    Berechtigungsanforderungen: Ausdruck verfügbar Wählen Sie die Ausdrücke für den Preisnachlass in der Liste der verfügbaren Ausdrücke aus, und klicken Sie dann auf Hinzufügen.

    Mit Zielausdrücken lässt sich beispielsweise eine Zielgruppe von Benutzern festlegen, die über 40 sind.

Allen Benutzern über 40 wird ein Preisnachlass von 50 % auf den festgelegten Katalogpreis gewährt, wenn sie drei Produkte der festgelegten Katalogkategorie kaufen.

Zielgruppenadressierung eines Preisnachlasses an eine Seitengruppe

Sie können bestimmen, ob ein Preisnachlasskampagnenartikel auf allen Seiten der Website angezeigt wird, oder ob er nur auf den ihm zugeordneten Seitengruppen erscheint. Über Seitengruppen kann festgelegt werden, auf welchen Webseiten ein Preisnachlasskampagnenartikel angezeigt wird. Handelt es sich bei Ihrer Website beispielsweise um eine Onlinezeitung, könnten Sie z. B. eine Anzeige für Golfschläger ausschließlich auf Seiten im Sportbereich zu platzieren.

Preisnachlassartikel können auf allen Seitengruppen platziert werden. Es ist jedoch auch möglich, aus den im Bereich Seitengruppen des Referenztabellenmoduls erstellten Seitengruppen eine oder mehrere Gruppen auszuwählen.

Anmerkung

  • Damit eine Anzeige auf einer Seitengruppe angezeigt werden kann, müssen die entsprechenden Seiten vom Siteentwickler für Anzeigen aktiviert werden. Weitere Informationen zum Aktivieren einer Seite für Anzeigen finden Sie im Ad Sitelet-Beispiel im Commerce Server 2000 Software Development Kit.

Sie können auch die Zielgruppen festlegen, denen ein Preisnachlass gewährt wird. Bei Zielgruppen handelt es sich um eine Zusammenstellung von zwei oder mehreren Ausdrücken zur Zielgruppenadressierung einer bestimmten Benutzergruppe. Sie können Zielgruppen verwenden, um bestimmte Benutzer in einer Gruppe aufzunehmen und um andere Benutzer aus einer Gruppe auszuschließen. Informationen über das Erstellen von Zielgruppen finden Sie unter Erstellen einer Zielgruppe.

So ordnen Sie einen Preisnachlass einer Seitengruppe zu

  2. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager. Wählen Sie den Preisnachlass aus, für den Sie das Preisnachlassziel festlegen möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  3. Führen Sie auf dem Bildschirm Kampagnen-Manager - Kunde - Kampagne Preisnachlasskampagnenartikel - (Preisnachlass-ID: Nummer) im Bereich Preisnachlassanzeigeziel folgende Schritte aus:
    Option/Funktion Zweck
    Verwenden Sie diese Ziele zusätzlich zu den ausgewählten gültigen Zielen Wählen Sie diese Option aus, um Seitengruppen und/oder Zielgruppen zusätzlich zu den ausgewählten gültigen Zielen zu verwenden, die auf dem Bildschirm Preisnachlassdefinition ausgewählt werden.

    Informationen über Seitengruppen finden Sie unter Hinzufügen von Seitengruppen. Informationen über Zielgruppen finden Sie unter Erstellen einer Zielgruppe.

    Verwenden Sie diese Ziele anstatt der ausgewählten gültigen Ziele Wählen Sie diese Option aus, um eine Seitengruppe und/oder Zielgruppe anstelle der ausgewählten gültigen Ziele zu verwenden, die auf dem Bildschirm Preisnachlassdefinition ausgewählt werden.

    Informationen über Seitengruppen finden Sie unter Hinzufügen von Seitengruppen. Informationen über Zielgruppen finden Sie unter Erstellen einer Zielgruppe.

    Auf allen Seitengruppen anzeigen Aktivieren Sie dieses Kontrollkästchen, um die Anzeige auf allen Seitengruppen der Website anzuzeigen.

    Um die Preisnachlasskampagne einer bestimmten Seitengruppe zuzuordnen, deaktivieren Sie das Kontrollkästchen, und befolgen Sie die weiteren Schritte in dieser Anleitung.

    Seitengruppen: Verfügbar Markieren Sie die Seitengruppe(n), die Sie zuweisen möchten, und klicken Sie dann auf Hinzufügen.

    Die Seitengruppe wird in das Feld Zugewiesen verschoben. Wenn Sie eine Seitengruppe aus diesem Feld wieder entfernen möchten, klicken Sie auf Entfernen. Dadurch wird die Seitengruppe in das Feld Verfügbar verschoben.

    Zielgruppen: Verfügbar Markieren Sie die Zielgruppe(n), auf die der Preisnachlass angewendet wird, und klicken Sie dann auf Hinzufügen.

    Die Zielgruppe wird in das Feld Zugewiesen verschoben. Wenn Sie eine Zielgruppe aus diesem Feld wieder entfernen möchten, klicken Sie auf Entfernen. Dadurch wird die Zielgruppe in das Feld Verfügbar verschoben.

    Informationen über das Erstellen eines Zielausdrucks finden Sie unter Erstellen eines Zielausdrucks.

Damit sind die ausgewählten Seitengruppen und die Informationen zum Preisnachlasskampagnenziel für den Preisnachlasskampagnenartikel festgelegt.

Anmerkung

  • Sie müssen die Preisnachlassanzeige einrichten, um das Preisnachlasskampagnenelement speichern zu können. Informationen zum Einrichten der Preisnachlassanzeige finden Sie unter Festlegen der Anzeige der Preisnachlasskampagne.

Festlegen der Anzeige der Preisnachlasskampagne

Sie können festlegen, auf welche Weise und mit welchem Erscheinungsbild Anzeigen den Benutzern angezeigt werden. Es ist möglich, eine große Anzeige auf Ihrer Homepage zu schalten, und für einen 20-prozentigen Preisnachlass auf alle Produkte in Ihrem Katalog zu werben. Darüber hinaus kann die Häufigkeit festgelegt werden, mit der ein bestimmter Preisnachlass einem Benutzer während einer Sitzung angezeigt wird.

So legen Sie die Anzeige von Preisnachlasskampagnen fest

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager. Wählen Sie den Preisnachlass aus, für den Sie die Anzeige der Preisnachlasskampagne festlegen möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  2. Führen Sie auf dem Bildschirm Kampagnen-Manager - Kunde - Kampagne Preisnachlasskampagnenartikel - (Preisnachlass-ID: Nummer) im Bereich Preisnachlassanzeige folgende Schritte aus:
    Option/Funktion | Zweck
    Anzeigelimit Wählen Sie in der Dropdownliste aus, wie oft der Preisnachlass einem Benutzer innerhalb einer Sitzung angezeigt werden soll.

    Standardmäßig wird dieses Anzeigelimit auf null gesetzt, d. h., es gibt keine Begrenzung. Das Anzeigelimit sollte als Obergrenze den Wert 10 haben, also 10 Anzeigen pro Benutzer pro Sitzung.

    Warenkorbanzeige | Geben Sie den Text für den Preisnachlass ein, der auf der Warenkorbseite angezeigt werden soll.
    Inhaltsgröße Wählen Sie in der Dropdownliste der verfügbaren Typen die Inhaltsgröße für den Preisnachlass aus.

    Für Ihre Preisnachlasskampagne benötigen Sie möglicherweise einen bestimmten Anzeigentyp.

    Inhaltstyp | Wählen Sie in der Dropdownliste der verfügbaren Typen den Inhaltstyp für den Preisnachlass aus.

    Anmerkung

    • Abhängig vom ausgewählten Inhaltstyp werden unterhalb des Felds Inhaltstyp unterschiedliche Preisnachlassfelder angezeigt. Weitere Informationen zum Festlegen des Erscheinungsbildes von Anzeigenkampagnen für die verschiedenen Preisnachlasstypen finden Sie unter Einrichten eines Anzeigentyps.
  3. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Preisnachlasskampagne zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Die Preisnachlassanzeige wird für diese Kampagne gespeichert.

Informationen zum Veröffentlichen von Preisnachlässen in Ihrer Website finden Sie unter Veröffentlichen von Kampagnenänderungen in der Website.

Siehe auch

Preisnachlässe

Vorschau auf die Preisnachlassanzeige

Erstellen eines Zielausdrucks

Erstellen einer Zielgruppe

Erstellen eines Katalogausdrucks

Neu von der Produktauswahl

Hinzufügen von Seitengruppen

Veröffentlichen von Kampagnenänderungen in der Website


Vorschau auf die Preisnachlassanzeige

Nach der Festlegung der Preisnachlassanzeige können Sie den Preisnachlass in der Vorschau anzeigen, bevor Sie ihn in Produktion geben.

So zeigen Sie eine Preisnachlassanzeige in der Vorschau an

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie im Kampagnen-Manager den Preisnachlass aus, dessen Preisnachlassanzeige Sie in der Vorschau anzeigen möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  3. Klicken Sie auf dem Bildschirm Kampagnen-Manager - Kunde Kampagne - Preisnachlasskampagnenartikel - (Preisnachlass-ID: Nummer) im Bereich Preisnachlassanzeige auf Vorschau:

  4. Klicken Sie im Dialogfeld Vorschau auf Ja, um das Preisnachlasskampagnenelement zu speichern.

Im Anzeigebereich unterhalb der Schaltfläche Vorschau wird eine Kopie des Preisnachlasses angezeigt.

Die diesem Preisnachlass zugeordnete Webseite wird in einem neuen Internet Explorer-Fenster angezeigt.

Siehe auch

Erstellen eines Preisnachlass-Kampagnenartikels

Festlegen der Anzeigendarstellung

Vorschau eines Kampagnenartikels


Kopieren von Preisnachlasskampagnenartikeln

Sie können einen bestehenden Preisnachlasskampagnenartikel kopieren, um so einem Kunden und der ihm zugeordneten Kampagne schnell und problemlos zusätzliche Preisnachlasskampagnenartikel hinzuzufügen. Wenn Sie einen bestehende Preisnachlass als Vorlage verwenden, können Sie dessen Eigenschaften nach dem Kopieren so anpassen, dass die Anforderungen für den neuen Preisnachlasskampagnenartikel erfüllt sind.

So kopieren Sie einen Preisnachlass

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie auf dem Bildschirm Kampagnen-Manager den zu kopierenden Preisnachlass aus, und klicken Sie dann auf der Symbolleiste auf Kopieren.

  3. Führen Sie im Dialogfeld Preisnachlassartikel kopieren die folgenden Schritte aus:
    Option/Funktion | Zweck
    Kunden auswählen | Wählen Sie in der Dropdownliste den Kunden aus, dessen Preisnachlass kopiert werden soll.
    Kampagne auswählen | Wählen Sie in der Dropdownliste die Kampagne aus, deren Preisnachlass kopiert werden soll.

  4. Klicken Sie auf OK.

  5. Führen Sie auf dem Bildschirm Kampagnen-Manager - Kunde - Kampagne - Neu (Preisnachlass) im Bereich Preisnachlasseigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Preisnachlassname | Geben Sie einen Namen für den neuen Preisnachlass ein.

  6. Bearbeiten Sie die übrigen Eigenschaften wie gewünscht, und klicken Sie auf der Symbolleiste auf Speichern und zurück, um den Preisnachlass zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Der neue Preisnachlass wird in der Kampagnen-Manager-Struktur unterhalb des angegebenen Kunden bzw. der angegebenen Kampagne angezeigt.

Siehe auch

Erstellen eines Preisnachlass-Kampagnenartikels


Zielgruppenadressierung einer Anzeige oder eines Preisnachlasses

Verwenden Sie das Kampagnenausdrücke-Modul, um die Kategorien, Produkte und Produkteigenschaften festzulegen, die Sie an die Benutzer übermitteln möchten, die den Zielkriterien der Kampagne entsprechen. Mit dem Kampagnenausdrücke-Modul können Sie Ausdrücke zur Zielgruppenadressierung von Anzeigen und Preisnachlässe an Benutzergruppen erstellen.

Sie können folgende Typen von Ausdrücken erstellen:

  • Katalogausdrücke. Dienen der Festlegung der Kategorien, Produkte und Produkteigenschaften, auf die ein Preisnachlass angewendet wird. Beispiel: "Wenn Buch_Preis größer als 20,00 DM, Preisnachlass anwenden." Nach Erstellung des Katalogausdrucks können Sie Ihre Preisnachlasskampagnen zielgerichtet für die Produkte schalten, die den Kampagnenausdruckskriterien entsprechen.

  • Zielausdrücke. Dienen der Festlegung der Benutzer, denen ein Preisnachlass gewährt wird. Beispiel: "Wenn Benutzer weiblich, Anzeige für blaue Farbe übermitteln."

  • Zielgruppen. Dienen der Kombination mehrerer Zielausdrücke und ermöglichen die Zielgruppenadressierung von Anzeigen- und Preisnachlasskampagnen an Benutzergruppen, die den Zielausdruckskriterien entsprechen. Mit Zielausdrücken können außerdem zur Zielgruppenadressierung von Seitengruppen in Ihrer Website verwendet werden. Nachdem Sie mehrere Zielausdrücke festgelegt haben, können Sie diese in Zielgruppen kombinieren. Beispiel: Die Ausdrücke "Wenn Benutzer weiblich" und "Wenn Benutzer Farbe gekauft hat" lassen sich in der Zielgruppe "Weibliche Benutzer, die Farbe kaufen" kombinieren. Anschließend können Sie der Zielgruppe "Weibliche Benutzer, die Farbe kaufen" eine Anzeige oder einen Preisnachlass für Tapeten übermitteln.

Dieser Abschnitt beinhaltet folgende Themen:

  • Erstellen eines Katalogausdrucks

  • Erstellen eines Zielausdrucks

  • Erstellen einer Zielgruppe


Erstellen eines Katalogausdrucks

Sie erstellen Katalogausdrücke, um die Kategorien und Produkte festzulegen, auf die ein Preisnachlass gewährt werden soll. Bei der Erstellung von Ausdrücken wählen Sie aus einer Liste mit Produkten, Produkteigenschaften oder -kategorien in einem Katalog, legen Operatoren fest und geben ggf. einen Wert ein, der durch den Ausdruck ausgewertet werden soll. Beispiele für Katalogausdrücke sind "Bücher sind größer als 20,00" und "Kategorie ist gleich Belletristik". Falls der Ausdruck als "Wahr" ausgewertet wird, wird auf das Produkt oder die Kategorie ein Preisnachlass gewährt.

Auf dem Bildschirm Katalogausdrücke erstellen Sie Katalogausdrücke durch Auswahl einer der folgenden Optionen:

  • Neu von der Produktauswahl. Wählen Sie diese Option, wenn Sie eine Suche nach dem Katalog, dem Produkt, der Produkteigenschaft oder der Kategorie, die in den Kriterien des Ausdrucks verwendet werden, durchführen möchten.

  • Neuer Katalogausdruck. Wählen Sie diese Option, um den Ausdrucks-Generator zu öffnen.

Neu von der Produktauswahl

Mit der Produktauswahl lässt sich das gewünschte Produkt bzw. die gewünschte Kategorie zur Zielgruppenadressierung einer Preisnachlasskampagne suchen und auswählen. Sie können nach Produkten und Kategorien suchen, indem Sie die folgenden Schritte ausführen:

  • So öffnen Sie die Produktauswahl

  • So durchsuchen Sie einen Katalog

  • So führen Sie eine Schlüsselwortsuche durch

  • So führen Sie eine Suche nach Produkteigenschaften durch

So öffnen Sie die Produktauswahl

  1. Klicken Sie im Menü Kampagnen auf Kampagnenausdrücke.

  2. Klicken Sie auf dem Bildschirm Kampagnenausdrücke: Zielausdrücke auf der Symbolleiste auf Ansicht. Wählen Sie dann in der Dropdownliste die Option Katalogausdrücke.

  3. Klicken Sie auf dem Bildschirm Katalogausdrücke: Zielausdrücke auf der Symbolleiste auf Anzeigen. Wählen Sie dann in der Dropdownliste die Option Neu von Produktauswahl.

So durchsuchen Sie einen Katalog

  1. Führen Sie im Dialogfeld Produktauswahl folgende Schritte aus:
    Option/Funktion | Zweck
    Suchmethode | Wählen Sie die Option Katalog durchsuchen.
    Katalog | Wählen Sie in der Dropdownliste den zu durchsuchenden Katalog aus.
    Kategorien | Wählen Sie die Kategorie aus, die Sie durchsuchen möchten.

  2. Klicken Sie auf OK.

Die ausgewählte Kategorie wird im Feld Katalogausdruck angezeigt.

So führen Sie eine Schlüsselwortsuche durch

  1. Führen Sie im Dialogfeld Produktauswahl folgende Schritte aus:
    Option/Funktion | Zweck
    Suchmethode | Wählen Sie die Option Schlüsselwortsuche aus.
    Katalog | Wählen Sie den zu durchsuchenden Katalog in der Dropdownliste aus.
    Schlüsselwörter | Geben Sie die gewünschten Suchbegriffe ein, und klicken Sie dann auf Suchen.
    Produkte | Wählen Sie das gewünschte Produkt für die Zielfestlegung aus.

  2. Klicken Sie auf OK.

Das ausgewählte Produkt wird im Feld Katalogausdruck angezeigt.

So führen Sie eine Suche nach Produkteigenschaften durch

  1. Führen Sie im Dialogfeld Produktauswahl folgende Schritte aus:
    Option/Funktion | Zweck
    Suchmethode | Wählen Sie die Option Suche nach Eigenschaften aus.
    Katalog | Wählen Sie den zu durchsuchenden Katalog in der Dropdownliste aus.
    Das Ziel basiert auf den folgenden Bedingungen Klicken Sie auf Neu.

    Das erste der drei Eingabefelder im Gruppenfeld Ziel basiert auf den folgenden Bedingungen ist aktiviert, d. h., Sie können Teilausdrücke auswählen bzw. eingeben.

    Ziel basiert auf den folgenden Bedingungen
    • Erstes Feld. Wählen Sie die Eigenschaftengruppe in der Dropdownliste aus, und wählen Sie dann die gewünschte Eigenschaft zum Erstellen des neuen Katalogausdrucks aus.

    • Zweites Feld. Wählen Sie in der Dropdownliste den gewünschten Operator für den Katalogausdruck aus.

    • Drittes Feld. Geben Sie die Eigenschaft oder den Wert ein, der durch den Katalogausdruck ausgewertet werden soll.

Anmerkung

  • In Kampagnenausdrücken werden Werte durch Semikolons (;) voneinander getrennt. Verwenden Sie kein Komma, da dieses nicht als Trennzeichen erkannt wird. So würde beispielsweise eine Liste von Zahlen wie folgt eingegeben: 2,534; 3,485; 6,982. Als Escapezeichen zur Darstellung von Semikolons wird ein umgekehrter Schrägstrich (\) verwendet. Beispielsweise können Sie einen Wert wie ABC;12 als ABC\;12 eingeben.

In einem Katalog für Bücher kann beispielsweise über den Ausdruck Autor (Produkteigenschaft) ist gleich (Operator) Penn (Zeichenfolge) festgelegt werden, dass ein Preisnachlass nur für Bücher gewährt wird, deren Autor Penn heißt.

Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  2. Klicken Sie auf Übernehmen.

Die Produkte, die den Zielkriterien entsprechen, werden im Feld Produkte angezeigt.

  3. Klicken Sie auf OK.

  4. Klicken Sie auf der Symbolleiste Speichern, um den Ausdruck zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Der Ausdruck wird dem Bildschirm Kampagnenausdrücke: Zielausdrücke im Kampagnenausdrücke-Modul hinzugefügt. Die Ausdrücke können nun verwendet werden, um eine Benutzergruppe als Zielgruppe für eine Preisnachlasskampagne festzulegen.

Neuer Katalogausdruck

Auf dem Bildschirm Katalogausdrücke verwenden Sie den Ausdrucks-Generator zum Erstellen von Katalogausdrücken.

So erstellen Sie einen Katalogausdruck

  1. Klicken Sie in Kampagnen auf Kampagnenausdrücke, und dann auf der Symbolleiste auf Ansicht. Wählen Sie dann in der Dropdownliste die Option Katalogausdrücke.

  2. Klicken Sie auf dem Bildschirm Kampagnenausdrücke: Katalogausdrücke auf der Symbolleiste auf Hinzufügen, und wählen Sie dann die Option Neuer Katalogausdruck aus.

  3. Führen Sie im Dialogfeld Katalogausdruck folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie einen Namen für den neuen Katalogausdruck ein.
    Beschreibung Geben Sie eine Beschreibung für den neuen Katalogausdruck ein. Klicken Sie anschließend auf Neu.

    Das erste der drei Eingabefelder im Feld Ziel basiert auf den folgenden Bedingungen wird aktiviert. Wählen Sie die Ausdrucksklauseln aus bzw. geben Sie sie ein.

    Ziel basiert auf den folgenden Bedingungen
    • Erstes Feld. Auswählen der Option, die auf diesen Ausdruck zutrifft, in der Dropdownliste. Werte für dieses Feld sind Produkt und ggf. Ausdrücke.
      • Wenn Sie Produkt auswählen, wird eine Liste mit Produkteigenschaften angezeigt. Wählen Sie die Eigenschaft aus, anhand derer Sie den neuen Katalogausdruck erstellen möchten.

      • Wenn Sie Ausdrücke auswählen, wird eine Liste mit aktuellen Katalogausdrücken angezeigt. Wählen Sie den Katalogausdruck aus, anhand dessen Sie den neuen Katalogausdruck erstellen möchten, und klicken Sie dann auf OK.
    • Zweites Feld. Wählen Sie in der Dropdownliste den gewünschten Operator für den Katalogausdruck aus.

    • Drittes Feld. Geben Sie die Eigenschaft oder den Wert ein, der durch den Katalogausdruck ausgewertet werden soll.

    Anmerkung

    • In Kampagnenausdrücken werden Werte durch Semikolons (;) voneinander getrennt. Verwenden Sie kein Komma, da dieses nicht als Trennzeichen erkannt wird. So würde beispielsweise eine Liste von Zahl wie folgt eingegeben: 2,534; 3,485; 6,982. Als Escapezeichen zur Darstellung von Semikolons wird ein umgekehrter Schrägstrich (\) verwendet. Beispielsweise können Sie einen Wert wie ABC;12 als ABC\;12 eingeben.

    In einem Katalog für Bücher kann beispielsweise über den Ausdruck Autor (Produkteigenschaft) ist gleich (Operator) Penn (Zeichenfolge) festgelegt werden, dass ein Preisnachlass nur für Bücher gewährt wird, deren Autor Penn heißt.

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

    4. Klicken Sie auf Übernehmen.

      Der neue Katalogausdruck wird dem Feld Ziel basiert auf den folgenden Bedingungen hinzugefügt.

      Anmerkung

      • Führen Sie die Schritte 2 bis 4 erneut aus, und wählen Sie dabei entweder Und oder Oder in der Dropdownliste aus, um dem erstellten Katalogausdruck weitere Bedingungen hinzuzufügen.
    5. Klicken Sie auf Speichern, um den Katalogausdruck zu speichern und zum Bildschirm Kampagnenausdrücke: Zielausdrücke zurückzukehren.

    Der Ausdruck wird dem Bildschirm Kampagnenausdrücke: Katalogausdrücke hinzugefügt. Die Ausdrücke können nun verwendet werden, um eine Benutzergruppe als Zielgruppe für eine Preisnachlasskampagne festzulegen.

    Siehe auch

    Erstellen eines Preisnachlasskampagnenartikels


Erstellen eines Zielausdrucks

Mithilfe von Zielausdrücken können Sie die Zielgruppen für Anzeigen und Preisnachlässe festlegen. Ausdrücke sind Zusammenstellungen aus Eigenschaften, Operatoren und Werten, die zu einem Ergebnis ausgewertet werden können. Beim Erstellen von Ausdrücken wählen Sie Zielgruppen und Operatoren aus einer Liste vordefinierter Elemente aus und geben ggf. einen Wert ein, der bei der Auswertung des Ausdrucks berücksichtigt werden soll. Beispiele für Zielausdrücke sind "Kontentyp ist 10" oder "Weiblicher Benutzer ist wahr". Zielausdrücke werden mithilfe des Ausdrucks-Generators über den Bildschirm Zielausdrücke erstellt.

So erstellen Sie einen neuen Zielausdruck

  1. Klicken Sie im Menü Kampagnen auf Kampagnenausdrücke.

  2. Klicken Sie auf dem Bildschirm Kampagnenausdrücke: Zielausdrücke auf Ansicht. Wählen Sie dann in der Dropdownliste die Option Zielausdrücke.

  3. Klicken Sie auf dem Bildschirm Kampagnenausdrücke: Zielausdrücke auf der Symbolleiste auf Hinzufügen.

  4. Führen Sie im Dialogfeld Zielausdruck folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie einen Namen für den neuen Zielausdruck ein.
    Beschreibung Geben Sie eine Beschreibung für den neuen Zielausdruck ein. Klicken Sie anschließend auf Neu.

    Das erste der drei Eingabefelder im Gruppenfeld Ziel basiert auf den folgenden Bedingungen ist aktiviert, d. h. Sie können Teilausdrücke auswählen bzw. eingeben.

    Ziel basiert auf den folgenden Bedingungen
    • Erstes Feld. Wählen Sie die Option, die auf diesen Ausdruck zutrifft, in der Dropdownliste aus. Werte für dieses Feld sind Benutzerobjekt, Zielgruppenadressierungs-Kontext und ggf. Ausdrücke.

      Wenn Sie Benutzerobjekt auswählen, wird eine Dropdownliste mit Benutzerobjekten angezeigt. Wählen Sie das Benutzerobjekt aus, und wählen Sie dann den Typ des Benutzerobjekts aus, dass Sie in dem Ausdruck verwenden möchten.

      Wenn Sie Zielgruppenadressierungs-Kontext auswählen, werden die Eigenschaft Seitengruppe sowie weitere Eigenschaften, die für das Profil des Zielgruppenadressierungs-Kontextes erstellt wurden, angezeigt. Wählen Sie die Eigenschaft aus, die Sie in diesem Ausdruck verwenden möchten. Informationen zum hinzufügen von Profileigenschaften finden Sie unter Hinzufügen von Eigenschaften zu Profilen.

      Wenn Sie Ausdrücke auswählen, wird das Dialogfeld Wählen Sie einen Ausdruck angezeigt. Wählen Sie in der Liste von Ausdrücken den gewünschten Ausdruck aus, und klicken Sie dann auf OK.

      Ausdrücke werden nur angezeigt, wenn vor dem Öffnen des Dialogfeldes Zielausdrücke bereits ein Ausdruck erstellt worden ist.

    • Zweites Feld. Wählen Sie einen neuen Operatortyp in der Dropdownliste mit den verfügbaren Typen für den Ausdruck aus.

    • Drittes Feld. Geben Sie die Eigenschaft oder den Wert ein, der durch den Ausdruck ausgewertet werden soll.

      Sollte ein Objekt oder eine Funktion nicht aufgeführt sein, ist es/sie in dem Kontext, in dem Ausdrucks-Generator aufgerufen wurde, nicht gültig. So wird beispielsweise in dem Fall, dass das Ziel auf der Grundlage eines Ausdrucks erstellt wurde, eine andere Menge von Operatoren angezeigt, als wenn das Ziel auf der Grundlage eines Benutzerobjekts erstellt wurde.

      Geben Sie die durch den Ausdruck auszuwertende Katalogsatz-Eigenschaft ein, wenn Sie im ersten Feld das Objekt Benutzerkatalogsatz ausgewählt haben. Informationen zum Hinzufügen einer Eigenschaft für Katalogsatznamen finden Sie unter Hinzufügen einer Eigenschaftsdefinition.

    Anmerkung

    • In Kampagnenausdrücken werden Werte durch Semikolons (;) voneinander getrennt. Verwenden Sie kein Komma, da dieses nicht als Trennzeichen erkannt wird. So würde beispielsweise eine Liste von Zahlen wie folgt eingegeben: 2,534; 3,485; 6,982. Als Escapezeichen zur Darstellung von Semikolons wird ein umgekehrter Schrägstrich (\) verwendet. Beispielsweise können Sie einen Wert wie ABC;12 als ABC\;12 eingeben.

      So könnte beispielsweise über den Ausdruck Bundesland (Produkteigenschaft) ist gleich (Operator) CA (Zeichenfolge) festgelegt werden, dass ein Preisnachlass nur den Kunden gewährt wird, die in Kalifornien leben.

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  5. Klicken Sie auf Übernehmen.

    Der neue Zielausdruck wird dem Feld Ziel basiert auf den folgenden Bedingungen hinzugefügt.

    Anmerkung

    • Führen Sie die Schritte 3 bis 5 erneut aus, und wählen Sie dabei entweder Und oder Oder in der Dropdownliste aus, um dem erstellten Katalogausdruck weitere Bedingungen hinzuzufügen.
  6. Klicken Sie auf Speichern, um zum Bildschirm Kampagnenausdrücke: Zielausdrücke zurückzukehren.

Der Ausdruck wird dem Bildschirm Kampagnenausdrücke: Zielausdrücke hinzugefügt. Sie können nun mehrere Zielausdrücke zu einer Zielgruppe für Anzeigen und Preisnachlässe zusammenfassen.

Siehe auch

Hinzufügen eines Anzeigenkampagnenartikels

Erstellen einer Zielgruppe


Erstellen einer Zielgruppe

Im Zielgruppenmodul führen Sie mehrere Ausdrücke zusammen, um so eine Anzeige zu übermitteln oder einer Benutzergruppe einen Preisnachlass zu gewähren. Sie können festlegen, ob bestimmte Benutzer in eine Gruppe aufgenommen oder aus einer Gruppe ausgeschlossen werden sollen. So können Sie beispielsweise festlegen, dass eine Gruppe von Tierhaltern alle Katzenhalter, nicht jedoch Hundehalter beinhaltet, indem Sie auf die Zielausdrücke bestimmte Aktionen anwenden. Beim Festlegen der Zielgruppen wird mithilfe von Geschäftsregeln festgelegt, welcher Benutzergruppe Anzeigen übermittelt oder Preisnachlässe gewährt werden.

Zielgruppen werden anhand von bestehenden Ausdrücken und von Aktionen erstellt. Sie können im Zielgruppenmodul neue Zielausdrücke erstellen, indem Sie den Ausdrucks-Generator verwenden. Im Zielgruppenmodul legen Sie fest, ob ein Ausdruck zur Zielgruppenadressierung verwendet wird, ob er erforderlich oder ausgeschlossen ist oder zur Kennzeichnung eines Homepagesponsors dient.

So erstellen Sie eine neue Zielgruppe

  1. Klicken Sie im Menü Kampagnen auf Zielgruppe.

  2. Klicken Sie auf dem Bildschirm Zielgruppe auf der Symbolleiste auf Hinzufügen.

  3. Führen Sie auf dem Bildschirm Zielgruppe: Neu folgende Schritte aus:
    Option/Funktion | Zweck
    Zielgruppenname | Geben Sie den Namen für die neue Zielgruppe ein.
    Ausdruck Wählen Sie den Ausdruck in der Dropdownliste aus, anhand dessen die neue Zielgruppe erstellt werden soll.

    Wenn Sie einen neuen Ausdruck erstellen möchten, klicken Sie auf die Schaltfläche Neuen Ausdruck erstellen. Informationen über das Erstellen von Zielausdrücken finden Sie unter Erstellen eines Zielausdrucks.
    Aktion Wählen Sie eine Aktion für die neue Zielgruppe in der Dropdownliste aus.

    Folgende Aktionen sind verfügbar:

    • Ziel - Die Zielaktion kann verwendet werden, wenn für die Eigenschaft nur eine begrenzte Auffüllung verfügbar ist, der Benutzer jedoch viele Anforderungen kaufen möchte.

    Wenn der Ausdruck zu "Wahr" ausgewertet wird, wird der Ergebniswert erhöht. Dadurch erhöht sich auch die Wahrscheinlichkeit dafür, dass die Inhalte angezeigt werden. Falls der Ausdruck zu "Falsch" ausgewertet wird, ändert sich der Ergebniswert nicht. In beiden Fällen können die Inhalte geliefert werden.

    • Sponsor - Auf der Site wird ausschließlich die der Zielgruppe zugeordnete Anzeige angezeigt.

    Bei Auswertung des Ausdrucks zu "Wahr" können die Inhalte geliefert werden. Weitere Inhalte können nur geliefert werden, wenn es für diese einen Ausdruck mit einer Aktion = Sponsor gibt. (Sponsor besitzt nur einen Multiplikator.)

    • Erforderlich - Die durch den Zielausdruck gekennzeichnete Benutzergruppe wird in die Zielgruppe aufgenommen.

    Bei Auswertung des Ausdrucks zu "Wahr" können die Inhalte geliefert werden. Wird der Ausdruck zu "Falsch" ausgewertet, können die Inhalte nicht geliefert werden.

    • Ausschließen - Die durch den Zielausdruck gekennzeichnete Benutzergruppe wird aus der Zielgruppe ausgeschlossen.

    Bei Auswertung des Ausdrucks zu "Wahr" können die Inhalte nicht geliefert werden. Wird der Ausdruck dagegen zu "Falsch" ausgewertet, können die Inhalte geliefert werden.

    Vorsicht

    • Über die Aktionen Erforderlich und Ausschließen wird verhindert, dass Anzeigen auch Benutzern mit der ausgeschlossenen Eigenschaft angezeigt werden. Verfügt ein Benutzer nicht über die erforderliche oder ausgeschlossene Eigenschaft, wird die Anzeige nicht übermittelt. Erstellen Sie beispielsweise eine Zielgruppe, bei der alle Hotmail-Benutzer ausgeschlossen sind, werden auch alle Benutzer ausgeschlossen, für die kein E-Mail-Konto angegeben ist. Daher gilt, dass allen Benutzern die über ein E-Mail-Konto jedoch über kein Hotmail-Konto verfügen, die Anzeige übermittelt wird.
  4. Klicken Sie auf Annehmen.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Zielgruppe zu speichern und zum Bildschirm Zielgruppe zurückzukehren.

Die neue Zielgruppe ist in der Liste der verfügbaren Zielgruppen gespeichert. Sie können die Zielgruppe nun dazu verwenden, um Anzeigen und Preisnachlässe an bestimmte Benutzergruppen zu übermitteln.

Siehe auch

  • Hinzufügen eines Anzeigenkampagnenartikels

  • Erstellen eines Preisnachlasskampagnenartikels

  • Zielgruppenadressierung bei Anzeigen und Preisnachlässen

  • Erstellen eines Zielausdrucks


Hinzufügen eines Direktsendungskampagnenartikels

Das Kampagnen-Manager-Modul ermöglicht das Erstellen und Verwalten von E-Mail-basierten Direktsendungskampagnen. Mithilfe der Adressenlisten im Listen-Manager kann gezielt für bestimmte Benutzer eine Direktsendungskampagne erstellt werden. Das Kampagnen-Manager-Modul ermöglicht das Erstellen neuer Direktsendungskampgnen, das Personalisieren von Nachrichten, das Hinzufügen von Anlagen zu Ihren Direktsendungsnachrichten und das Ändern von Eigenschaften der Direktsendungen. Darüber hinaus können Sie die Adressenlisten für Direktsendungen testen, bevor Sie diese in Produktion geben.

Die folgende Darstellung illustriert ein Beispielszenario für das Erstellen und Verwalten einer Direktsendungskampagne.

Workflow zum Erstellen und Verwalten einer Direktsendungskampagne
Listen-Manager

Anhänge zu einer Direktsendungs-
kampagne hinzufügen

Kampagnen-Manager
Adressenliste importieren
Direktsendungskampagne erstellen
Direktsendungskampagne planen
Direktsendungskampagne testen
Direktsendungsnachricht personalisieren

  1. Importieren Sie im Listen-Manager-Modul eine Adressenliste (beispielsweise eine Liste mit wichtigen Kunden).

  2. Erstellen Sie im Kampagnen-Manager-Modul eine Direktsendungskampagne, wobei Sie die Zielgruppenadressierung anhand der Adressenliste mit den wichtigen Kunden durchführen.

  3. Geben Sie den Namen einer HTML-Seite mit personalisierten Inhalten ein.

  4. Fügen Sie der Direktsendungskampagne eine Anlage hinzu.

  5. Legen Sie einen Zeitplan mit Startdatum und Enddatum für die Direktsendungskampagne fest, und geben Sie an, wie oft der Direct Mail-Auftrag ausgeführt werden soll.

  6. Testen Sie den Direct Mail-Auftrag mit einer Testliste, und zeigen Sie die personalisierten Seiten an, um sie ggf. zu bearbeiten.

Dieser Abschnitt beinhaltet folgende Themen:

  • Erstellen einer Adressenliste

  • Importieren einer Adressenliste

  • Erstellen einer Direktsendungskampagne

  • Personalisieren einer Direktsendungsnachricht

  • Hinzufügen von Anlagen zu einer Direktsendungskampagne

  • Planen einer Direktsendungskampagne

  • Testen einer Direktsendungskampagne

  • Kopieren eines Direktsendungskampagnenartikels


Erstellen einer Adressenliste

Das Listen-Manager-Modul muss eine gültige Adressenliste enthalten, damit eine Direktsendungskampagne erstellt werden kann. Adressenlisten werden in Direct Mailer verwendet, um Nachrichten an ausgewählte Empfänger in Listen zu übermitteln.

Adressenlisten lassen sich mit einem beliebigen Text-Editor erstellen. Eine Adressenliste besteht aus einer oder mehreren Zeilen mit Empfängern. Beim Import von Listen aus SQL Server benötigt der Listen-Manager die die in der nachstehenden Tabelle aufgeführten Feldnamen. Jede Zeile in der Liste enthält einen einzigen Empfänger und besteht aus den folgenden Elementen in einem kommabegrenzten Format.

Feldname | Parameter | Beschreibung
rcp_email | E-Mail-Adresse | Erforderlich. Name oder Name@Domäne.
rcp_guid | GUID | Optional. Global eindeutiger Bezeichner (GUID, Global Unique Identifier). Die individuelle Benutzer-ID, mit der Inhalte einer personalisierten E-Mail-Nachricht hinzugefügt werden.
rcp_fmt | Nachrichtenformat | Optional. Steuert den Nachrichtenformattyp, in den die Ergebnisse vom Collaboration Data Object (CDO) übersetzt werden. Beispiel sind Text, MHTML (MIME Encapsulation of Aggregate HTML Documents) oder MIME (Multipurpose Internet Mail Extensions).
rcp_locale | Sprache | Optional. Der Codepagewert für die E-Mail-Nachricht.
rcp_url | URL | Optional. Ermöglicht es, einzelne URLs pro Benutzer an CDO zu übergeben.

Anmerkungen

  • Die Feldnamen müssen in der Reihenfolge verwendet werden, in der sie oben aufgeführt sind. Wird ein optionaler Parameter nicht angegeben, muss das zugehörige Trennzeichen dennoch angegeben werden, damit nachfolgende optionale Parameter richtig zugeordnet werden können.

  • Informationen über das Erstellen von Listen mit Daten aus einer PST-Datei von Microsoft Outlook finden Sie im Thema "Exportieren von Elementen in eine Datei oder in eine Persönliche Ordner-Datei" in der Onlinehilfe von Microsoft Outlook.


Importieren einer Adressenliste

Das Listen-Manager-Modul muss eine gültige Adressenliste enthalten, damit eine Direktsendungskampagne erstellt werden kann. Sie können im Listen-Manager-Modul Listen von Benutzern importieren, die Sie als Zielgruppe für Ihre Direktsendungskampagnen verwenden möchten. Dabei können Sie ASCII-Textdateien, Microsoft Excel-Dateien und SQL Server-Datenbanken importieren.

So importieren Sie eine Liste

  1. Klicken Sie im Menü Kampagnen auf Listen-Manager.

  2. Klicken Sie auf dem Bildschirm Listen-Manager auf der Symbolleiste auf Importieren.

  3. Führen Sie im Dialogfeld Liste importieren folgende Schritte aus:
    Option/Funktion | Zweck
    Listentyp Wählen Sie den gewünschten Listentyp aus.

    Folgende Optionen sind verfügbar: Statisch und Dynamisch.

    • Wählen Sie Statisch, wenn Sie eine statische einfache Liste aus einer Textdatei importieren möchten.

    • Wählen Sie Dynamisch, wenn Sie eine dynamische Liste (eine Liste, die geändert werden kann, wie beispielsweise eine SQL Server-Datenbank) importieren möchten.
    Namen der Zielliste eingeben | Geben Sie einen Namen für die importierte Liste ein.
    Listenquelle Geben Sie den Ursprungstyp der Liste ein.

    Folgende Optionen sind verfügbar: Aus Datei und Aus SQL-Datenbank.

    • Wählen Sie die Option Aus Datei, um eine statische Liste zu importieren.

    • Wenn Sie die Option Aus SQL-Datenbank wählen, führen Sie folgende Schritte durch:
      1. Geben Sie in das Feld Verbindungszeichenfolge die Verbindungszeichenfolge für die Datenbank ein, über die der Speicherort der Datenbank und die Anweisungen zum Herstellen einer Verbindung mit ihr angegeben werden.

      2. Geben Sie in das Feld SQL-Abfrage die SQL-Abfrage ein, mit der Sie die gewünschten Daten abrufen möchten.

        Beispiel einer SQL-Abfrage:

        SELECT u_email_address AS rcp_email FROM UserObject WHERE d_date_registered >= '03/01/2000'

        Informationen zu den Vorgaben für Feldnamen im Listen-Manager finden Sie unter Erstellen einer Adressenliste.

      Anmerkung

      • Wenden Sie sich an Ihren Systemadministrator, um Informationen zu bestimmten Eigenschaften der Datenbank oder zu SQL-Abfragen zu erhalten. Informationen zum Erstellen von SQL-Abfragen finden Sie in der SQL Server-Onlinedokumentation.
    Dateiname | Geben Sie den Pfad, den Dateinamen und die Erweiterung für die zu importierende Liste ein.

  4. Klicken Sie auf OK.

Die neue Liste wird importiert und im Listen-Manager angezeigt. Die Liste kann nun in einer Direktsendungskampagne verwendet werden.

Siehe auch

Verwalten von Listen mit Benutzereinträgen

Importieren und Exportieren von Listen


Erstellen einer Direktsendungskampagne

Mithilfe von Direktsendungskampagnen können Sie Benutzer direkt und gezielt mit Ihren Anzeigen ansprechen. Die Adressenlisten im Listen-Manager können zum Erstellen von Direktsendungskampagnen verwendet werden, um spezifische Benutzergruppen zielgerichtet anzusprechen. Sie können in den Listen-Manager ASCII-Textdateien, Tabellen aus SQL Server-Datenbanken und Analyseberichte importieren. Die Adressenlisten werden verwendet, um Direktsendungsaufträge auszuführen und Benutzer gezielter und damit erfolgreicher anzusprechen.

So erstellen Sie eine Direktsendungskampagne

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Markieren Sie auf dem Bildschirm Kampagnen-Manager die Kampagne, für die Sie eine Direktsendungskampagne erstellen möchten, und klicken Sie auf der Symbolleiste auf Hinzufügen. Wählen Sie dann in der Dropdownliste den Eintrag Neue Direktsendung aus.

  3. Führen Sie auf dem Bildschirm Kundenname Kampagnenname - Neu (Direktsendung) im Bereich Direktsendungseigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Direktsendungsname | Geben Sie einen Namen für den Direct Mailer-Auftrag ein.
    Nachricht von E-Mail-Adresse | Geben Sie die Adresse ein, von der aus die Direktsendung verschickt wird.
    Antwort an E-Mail-Adresse Geben Sie die Adresse ein, an die der Empfänger seine Antwort richten kann, falls die Adresse nicht der Absenderadresse entspricht.

    Dieses Feld enthält als Vorgabe die Adresse, von der die Direktsendung verschickt wird.
    Betreff | Geben Sie den Betrefftext für diesen Direct Mailer-Auftrag ein.
    Dateipfad oder URL, der den Nachrichtentext enthält Geben Sie den Dateipfad oder den URL ein, der für die Anzeige der Direktsendungsnachricht verwendet wird.

    Der URL des personalisierten Nachrichtentextes muss eine gültige Erweiterung für den HTML-Inhaltstyp wie HTM oder ASP haben. Ungültige Erweiterungen wie XML führen zu einem CDO-Fehler (Collaboration Data Objects), und die Nachricht wird nicht gesendet.

    Informationen über die Anzeige personalisierter Seiten finden Sie unter Testen einer Direktsendungskampagne.

    Vorsicht

    • Eine Datei mit einer Größe von mehr als 2 MB wird abgeschnitten. In der Direktsendung werden nur die ersten 2 MB an Daten verwendet.
    Anlage Geben Sie den Dateipfad und den Namen der Anlage ein, die zusammen mit der Nachricht versendet wird.

    Wenn keine Anlage versendet wird, lassen Sie dieses Kontrollkästchen deaktiviert.
    Adressenliste | Wählen Sie die Adressenliste, die für diese Direktsendungskampagne verwendet wird, in der Dropdownliste aus.
    Direktsendung für Benutzer personalisieren Aktivieren Sie dieses Kontrollkästchen, um die Personalisierung für diese Direktsendungskampagne zu aktivieren.

    Deaktivieren Sie dieses Kontrollkästchen, um die Personalisierung für diese Direktsendungskampagne zu deaktivieren.
    Mailformat Wählen Sie das Format dieser E-Mail aus.

    Es stehen folgende Optionen zur Verfügung:

    • Text – Formatiert die E-Mail im ASCII-Format.

    • MHTML – Formatiert die E-Mail in mehrsprachigem HTML.

    • MIME – Formatiert die E-Mail mit Multipurpose Internet Mail Extensions.
    Kommentare (nicht Teil der Nachricht) | Geben Sie ggf. erforderliche Kommentare ein, die sich auf diesen Direktsendungsauftrag beziehen.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Direktsendungskampagne zu speichern und zum Bildschirm Kampagnen-Manager zurückzuwechseln.

Die Direktsendungskampagne wird dem Kampagnen-Manager hinzugefügt. Sie können für diese Direktsendungskampagne einen Zeitplan festlegen und sie dann testen.

Anmerkung

  • Sie können überprüfen, ob die URL-Angabe des Nachrichtentextes im Feld Dateipfad oder URL, der den Nachrichtentext enthält eine gültige Adresse ist, indem Sie den Pfad markieren und anschließend STRG+C drücken, um die Markierung zu kopieren. Öffnen Sie dann Ihren Browser und drücken Sie STRG + P, um den Inhalt der Zwischenablage in die Adressleiste einzufügen. Drücken Sie dann die EINGABETASTE. Ist der Pfad bzw. URL gültig, wird die entsprechende Seite im Browser angezeigt.

Informationen zum Planen einer Direktsendungskampagne finden Sie unter Planen einer Direktsendungskampagne. Informationen zum Testen einer Direktsendungskampagne finden Sie unter Testen einer Direktsendungskampagne.

Siehe auch

Hinzufügen einer Kampagne

Verwalten von Listen mit Benutzereinträgen

Importieren und Exportieren von Listen


Personalisieren einer Direktsendungsnachricht

Sie können E-Mail-Nachrichten mithilfe von Active Server Pages, die zu diesem Zweck erstellt wurden, personalisieren. So können Sie beispielsweise in einer personalisierten Grußformel den Vornamen des Benutzers aufnehmen. Für die Übermittlung kann auch besonderer Text zur ASP-Seite hinzugefügt werden. Wird keine Personalisierung festgelegt, wird die Direktsendungsnachricht als reine HTML-Seite übermittelt.

So personalisieren Sie eine Direktsendungsnachricht

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie auf dem Bildschirm Kampagnen-Manager die zu personalisierende Direktsendungskampagne aus, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  3. Führen Sie auf dem Bildschirm Kampagnen-Manager - Kunde - Kampagne - Direktsendungsartikel (Direktsendungs-ID: Nummer) folgende Schritte aus:
    Option/Funktion | Zweck
    Dateipfad oder URL, der den Nachrichtentext enthält | Geben Sie den Namen der HTML-Seite mit dem personalisierten Inhalt ein.
    Direktsendung für Benutzer personalisieren Aktivieren Sie dieses Kontrollkästchen, um die Personalisierung für diese Direktsendungskampagne zu aktivieren.

    Deaktivieren Sie dieses Kontrollkästchen, um die Personalisierung für diese Direktsendungskampagne zu deaktivieren.
    Mailformat Wählen Sie das Format dieser E-Mail aus.

    Es stehen folgende Optionen zur Verfügung:

    • Text – Formatiert die E-Mail im ASCII-Format.

    • MHTML – Formatiert die E-Mail in mehrsprachigem HTML.

    • MIME – Formatiert die E-Mail mit Multipurpose Internet Mail Extensions.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Direktsendungskampagne mit den zugehörigen Personalisierungsinformationen zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

    Anmerkung

    • Informationen über die Anzeige personalisierter Seiten finden Sie unter Testen einer Direktsendungskampagne.

Die Direktsendungsnachricht wird mit den zugehörigen Personalisierungsinformationen übermittelt.

Siehe auch

Erstellen einer Direktsendungskampagne

Testen einer Direktsendungskampagne


Hinzufügen von Anlagen zu einer Direktsendungskampagne

Auf dem Bildschirm Kampagnen-Manager können Sie im Bereich Direktsendungseigenschaften Anhänge zu Direktsendungskampagnen hinzufügen. Eine Anlage kann eine beliebige Datei sein, die Sie zusammen mit der Direktsendungskampagne übermitteln möchten.

So fügen Sie einer Direktsendungskampagne eine Anlage hinzu

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie auf dem Bildschirm Kampagnen-Manager die Direktsendungskampagne aus, der Sie eine Anlage hinzufügen möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  3. Führen Sie auf dem Bildschirm Kampagnen-Manager - Kunde - Kampagne - Direktsendungsartikel (Direktsendungs-ID: Nummer) folgende Schritte aus:
    Option/Funktion | Zweck
    Anlage | Geben Sie den Pfad für die Anlage ein, die zusammen mit der E-Mail-Nachricht übermittelt werden soll.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Anlage mit der Direktsendungskampagne zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Die Anlage wird zusammen mit diesem Direct Mailer-Auftrag gespeichert.

Siehe auch

Erstellen einer Direktsendungskampagne


Planen einer Direktsendungskampagne

Auf dem Bildschirm Kampagnen-Manager planen Sie im Bereich Mailzeitplan die Start- und Beendigungszeiten einer Direktsendungskampagne, und geben an, wie oft der Direktsendungsauftrag versendet werden soll.

So planen Sie eine Direktsendungskampagne

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie auf dem Bildschirm Kampagnen-Manager die Direktsendungskampagne aus, für die Sie einen Zeitplan festlegen möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  3. Führen Sie auf dem Bildschirm Kampagnen-Manager - Kunde - Kampagne - Direktsendungsartikel (Direktsendungs-ID: Nummer) im Bereich Mailzeitplan folgende Schritte aus:
    Option/Funktion | Zweck
    Anfangsdatum | Geben Sie das Anfangsdatum der Kampagne ein, oder wählen Sie es im Dropdownkalender aus.
    Beendigungsdatum Geben Sie das Beendigungsdatum der Kampagne ein, oder wählen Sie es im Dropdownkalender aus.

    Das Feld Beendigungsdatum steht nicht zur Verfügung, wenn das Versandintervall auf Einmalig eingestellt ist.
    Anfangszeit | Wählen Sie in der Dropdownliste eine Anfangszeit für die Kampagne aus.
    Versandintervall | Wählen Sie in der Dropdownliste aus, wie oft die E-Mail verschickt werden soll.

    Anmerkung

    • Zur Festlegung des Versandintervalls stehen mehrere Optionen zur Verfügung. Abhängig von der ausgewählten Option werden unterschiedliche Felder angezeigt, über die Sie das Serienmuster der Kampagne festlegen können.
  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den Zeitplan mit der Direktsendungskampagne zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Der Zeitplan wird zusammen mit der Direktsendungskampagne gespeichert.

Anmerkung

  • Wenn der SQL Server-Agent während der Ausführung eines geplanten Direct Mailer-Auftrags, wird der Auftrag unterbrochen und kann nicht neu gestartet werden. Wird ein geplanter Auftrag auf diese Weise unterbrochen, gibt es keine Möglichkeit, zu ermitteln, ob bei der Ausführung des Auftrages ein Fehler aufgetreten ist. In diesem Fall sollten Sie zuerst den SQL Server-Agent und anschließend den Direct Mailer-Auftrag erneut starten.

Siehe auch

Erstellen einer Direktsendungskampagne


Testen einer Direktsendungskampagne

Sie können Ihre Direktsendungskampagnen mit einer für diesen Zweck erstellten Adressenliste testen, bevor Sie sie an eine größere Adressenliste senden. Bei diesem Test können Sie darüber hinaus die personalisierten Seiten anzeigen und ggf. korrigieren.

So testen Sie eine Direktsendungskampagne

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie auf dem Bildschirm Kampagnen-Manager die zu testende Direktsendungskampagne aus, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  3. Führen Sie auf dem Bildschirm Kampagnen-Manager - Kunden - Kampagne - Direktsendungsartikel (Direktsendungs-ID: Nummer) im Bereich Testen folgende Schritte aus:
    Option/Funktion | Zweck
    Testliste | Wählen Sie die Adressenliste aus, mit der die Direktsendungskampagne getestet werden soll.

  4. Klicken Sie auf Testnachricht versenden.

Direct Mailer hat die Mail an die Empfänger in der Testliste gesendet.

Siehe auch

Erstellen einer Direktsendungskampagne


Kopieren eines Direktsendungskampagnenartikels

Sie können ein bereits bestehendes Direktsendungskampagnenelement kopieren, um so einem Kunden und der ihm zugeordneten Kampagne schnell zusätzliche Direktsendungsartikel hinzuzufügen. Wenn Sie ein bestehendes Direktsendungselement als Vorlage verwenden, können Sie dessen Eigenschaften nach dem Kopieren so anpassen, dass die Anforderungen für die neue Direktsendungskampagne erfüllt sind.

So kopieren Sie ein Direktsendungskampagnenelement

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie auf dem Bildschirm Kampagnen-Manager die zu kopierende Direktsendungskampagne aus, und klicken Sie dann auf der Symbolleiste auf Kopieren.

  3. Führen Sie im Dialogfeld Direktsendungsartikel kopieren die folgenden Schritte aus:
    Option/Funktion | Zweck
    Kunden auswählen | Wählen Sie in der Dropdownliste den Kunden aus, dessen Direktsendungsartikel kopiert werden soll.
    Kampagne auswählen | Wählen Sie in der Dropdownliste die Kampagne aus, deren Direktsendungsartikel kopiert werden soll.

  4. Klicken Sie auf OK.

  5. Führen Sie auf dem Bildschirm Kampagnen-Manager - Kunde - Kampagne - Neu (Direktsendung) im Bereich Direktsendungseigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Direktsendungsname | Geben Sie einen Namen für den neuen Direktsendungsartikel ein.

  6. Bearbeiten Sie ggf. die weiteren Eigenschaften.

  7. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den Direktsendungsartikel zu speichern und zum Bildschirm Kampagnen-Manager zurückzukehren.

Der neue Direktsendungsartikel wird in der Kampagnen-Manager-Struktur unterhalb des ausgewählten Kunden bzw. der ausgewählten Kampagne angezeigt.


Verwalten von Listen mit Benutzereinträgen

Das Listen-Manager-Modul dient der Erstellung und Verwaltung von Listen. Es sind zwei Arten von Listen verfügbar, generische Listen und Adressenlisten. Generische Listen werden in den Listen-Manager aus einer der folgenden Komponenten importiert: dem Berichtemodul, dem Segment-Viewer-Modul, ASCII-Textdateien oder SQL Server-Tabellen. Der Listen-Manager versucht, generische Listen automatisch in Adressenlisten zu konvertieren, wenn Spalten mit E-Mail-Adressen gefunden werden. Adressenlisten werden in Direct Mailer verwendet, um Nachrichten zu erstellen und an ausgewählte Empfänger in der Liste zu übermitteln. Enthält die generische Liste keine E-Mail-Adressen, wird die Liste als Benutzerliste importiert, wenn Sie den Anforderungen für Benutzerlisten entspricht. Weitere Informationen zu den Anforderungen an Benutzerlisten finden Sie unter "ListManager-Objekt" in der Hilfe zu Commerce Server 2000.

Nach dem Import in den Listen-Manager können die Listen zur Ausführung von Direktsendungsaufträgen und erfolgreichen Zielgruppenadressierung von Benutzern verwendet werden. So können Sie z. B. Berichte ausführen, die die Merkmale Ihrer Benutzer und deren bisheriges Verhalten darstellen, und dann eine Direktsendungskampagne zur Zielgruppenadressierung von Anzeigen oder Produkten an diese Benutzer durchführen.

Sie können einzelne Kunden auf Anforderung entweder auf der Kampagnenebene oder auf der Sitebene in die Abonnementkündigungsliste aufnehmen. Empfänger, die wünschen, im Rahmen eines bestimmten Kampagnenartikels keine Direktsendungsnachrichten zu erhalten, können in eine Abonnementkündigungsliste auf Kampagnenebene aufgenommen werden. Die Abonnementkündigungsliste auf Kampagnenebene heißt Opt Out Kampagnenartikel-ID. Benutzer können auf Anforderung einer Abonnementkündigungsliste auf Siteebene hinzugefügt werden, wenn Sie wünschen, überhaupt keine Direktsendungsnachrichten von Ihrer Site zu erhalten. Auf dem Bildschirm Listen-Manager wird die Abonnementkündigungsliste auf Siteebene unter dem Namen Opt Out aufgeführt. Weitere Informationen zu Abonnementkündigungslisten finden Sie unter Abonnementkündigungslisten.

Listen für den Listen-Manager werden mit anderen Anwendungen wie SQL Server (SQL-Tabellen), Editor (ASCII-Textdateien), Microsoft Excel (Kalkulationstabellen) oder Microsoft Outlook (PST-Dateien mit Nachrichten, Terminen, Kontakten und anderen Outlook-Elementen).

Sie können auch Listen aus dem Listen-Manager in eine Datei oder eine SQL Server-Datenbank exportieren, Listen hinzufügen oder entfernen, Listen extrahieren und löschen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Importieren und Exportieren von Listen

  • Anzeigen von exportierten Listen

  • Hinzufügen und Entfernen von Listen

  • Kopieren von Adressenlisten

  • Extrahieren von Adressenlisten


Importieren und Exportieren von Listen

Listen für den Listen-Manager werden mit anderen Anwendungen wie SQL Server (SQL-Tabellen), Editor (ASCII-Textdateien), Microsoft Excel (Kalkulationstabellen) oder Microsoft Outlook (PST-Dateien mit Nachrichten, Terminen, Kontakten und anderen Outlook-Elementen). Darüber hinaus können Sie Analyseberichte und Segment-Viewer-Listen in den Listen-Manager importieren. Die Adressenlisten werden anschließend verwendet, um Direct Mailer-Aufträge auszuführen und die Benutzer gezielter und damit erfolgreicher anzusprechen.

Sie können auch Listen aus dem Listen-Manager in eine Datei oder eine SQL Server-Datenbank exportieren, und anschließend die exportierten Listen nach bestimmten Elementen durchsuchen und diese anzeigen.

Anmerkung

  • Sie können in den Listen-Manager keine generischen Listen importieren, wenn diese wie im nachstehenden Beispiel über eine Kopfzeile verfügen.
    ProduktID | Produktname | Einheit
    1 | Socken | 100
    2 | Hemden | 20

Wenn Sie eine generische Liste mit Kopfzeile verwenden möchten, müssen Sie die betreffende Liste zunächst mithilfe eines Importtools von SQL Server (beispielsweise mit der BULK INSERT-Anweisung) importiert werden, bevor Sie sie in den Listen-Manager importieren können. Weitere Informationen zu den Importtools von SQL Server finden Sie in der SQL Server-Onlinedokumentation.

So importieren Sie eine Liste

So exportieren Sie eine Liste

So importieren Sie eine Liste

  1. Klicken Sie im Menü Kampagnen auf Listen-Manager.

  2. Klicken Sie auf dem Bildschirm Listen-Manager auf der Symbolleiste auf Importieren.

  3. Führen Sie im Dialogfeld Liste importieren folgende Schritte aus:
    Option/Funktion | Zweck
    Listentyp Wählen Sie in der Dropdownliste den Listentyp aus .

    Folgende Optionen sind verfügbar: Statisch und Dynamisch.

    • Wählen Sie Statisch, um eine statische nichtformatierte Textdatei zu importieren.

    • Wählen Sie Dynamisch, um eine dynamische Liste (z. B. eine sich ändernde Liste aus einer SQL Server-Datenbank) zu importieren.
    Namen der Zielliste eingeben | Geben Sie einen Namen für die importierte Liste ein.
    Listenquelle Wählen Sie den Quelltyp der Liste aus.

    Folgende Optionen sind verfügbar: Aus Datei und Aus SQL-Datenbank.

    • Wählen Sie die Option Aus Datei, um eine statische Liste zu importieren.

    • Wenn Sie die Option Aus SQL-Datenbank wählen, führen Sie folgende Schritte durch:
      1. Geben Sie in das Feld Verbindungszeichenfolge die Datenbank-Verbindungszeichenfolge ein, die den Speicherort der Datenbank sowie den Verbindungstyp definiert.

      2. Geben Sie in das Feld SQL-Abfrage die SQL-Abfrage ein, mit der Sie die gewünschten Daten abrufen möchten.

        Beispiel einer SQL-Abfrage:

        SELECT u_email_address AS rcp_email FROM UserObject WHERE d_date_registered >= '03/01/2000'

        Informationen über die Anforderungen für Feldnamen im Listen-Manager finden Sie unter Erstellen einer Adressenliste.

      Anmerkung

    • Wenden Sie sich an Ihren Systemadministrator, um Informationen zu bestimmten Eigenschaften der Datenbank oder zu SQL-Abfragen zu erhalten. Informationen über das Schreiben von SQL-Abfragen finden Sie in der SQL Server-Onlinedokumentation.
    Dateiname | Geben Sie den Pfad, den Dateinamen und die Erweiterung der zu importierenden Liste ein, oder klicken Sie auf Durchsuchen, um den Speicherort anzugeben.

  4. Klicken Sie auf OK.

Die neue Liste wird im Listen-Manager angezeigt. Diese Liste kann nun in einer Direktsendungskampagne verwendet werden.

So exportieren Sie eine Liste

  1. Klicken Sie im Menü Kampagnen auf Listen-Manager.

  2. Wählen Sie auf dem Bildschirm Listen-Manager die zu exportierende Liste aus, und klicken Sie dann auf der Symbolleiste auf Exportieren.

  3. Führen Sie im Dialogfeld Eine Liste exportieren folgende Schritte aus:
    Option/Funktion Zweck
    Liste exportieren nach Wählen Sie in der Dropdownliste die Option Datei oder SQL-Datenbank aus.
    • Wählen Sie die Option Datei, um die Liste in eine Datei zu exportieren.

    • Wählen Sie die Option SQL-Datenbank, um die Liste in eine SQL Server-Datenbank zu exportieren.

    Geben Sie im Feld Dateiname den Pfad der Datei ein, in die die Liste exportiert werden soll, wenn Sie die Option Datei ausgewählt haben.

    Geben Sie in das Feld Datenbank-Verbindungszeichenfolge die Verbindungszeichenfolge für die SQL Server-Datenbank ein, wenn Sie die Option SQL-Datenbank ausgewählt haben. Geben Sie im Feld Tabellenname den Namen der Tabelle ein, in die die Liste exportiert werden soll.

    Anmerkung

    • Wenden Sie sich an Ihren Systemadministrator, um weitere Informationen zu den Datenbankeigenschaften zu erhalten.

  4. Klicken Sie auf OK.

Der Bericht wird in die ausgewählte Datenquelle exportiert.

Siehe auch

Exportieren von Segmentdaten in den Listen-Manager

Exportieren eines statischen Berichts

Exportieren eines dynamischen Berichts

Importieren einer Liste von Benutzerprofilen


Anzeigen von exportierten Listen

Sie können Elemente einer exportierten Adressenliste suchen und anzeigen. Es ist möglich, einzelne E-Mail-Adressen zu suchen und auch, alle Adressen in einer Liste anzuzeigen.

So zeigen Sie eine als SQL Server-Tabelle exportierte Liste an

  1. Öffnen Sie SQL Enterprise Manager über das Menü Start. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft SQL Server. Klicken Sie anschließend auf Enterprise Manager.

  2. Erweitern Sie im linken Fenster Microsoft SQL Server> SQL Server-Gruppe >Servername>Datenbanken. Erweitern Sie dann die Datenbank, der die Tabelle mit der Liste zugeordnet ist.

  3. Klicken Sie im Ausschnitt Details mit der rechten Maustaste auf die Tabelle, zeigen Sie auf Tabelle öffnen, und klicken Sie dann auf Alle Zeilen zurückgeben, um alle Daten in der Tabelle anzuzeigen.

Informationen über das Durchsuchen von SQL Server-Tabellen finden Sie in der SQL Server Enterprise Manager-Onlinedokumentation.

Anmerkung

  • Eine als CSV-Datei exportierte Liste kann in einer jeden Anwendung, die über Sortier- und Suchfunktionen verfügt, nach bestimmten Datensätze sortieren oder durchsucht werden.

Siehe auch

Hinzufügen einer Direktsendungskampagne

Exportieren eines statischen Berichts

Anzeigen von statischen Berichten


Hinzufügen und Entfernen von Listen

Möglicherweise verwalten Sie im Listen-Manager mehrere Listen, die Sie kombinieren möchten. Möglicherweise ist es auch erforderlich, aus einer Liste im Listen-Manager, die aus mehreren Listen zusammengestellt worden ist, eine der Listen wieder zu löschen. Der Listen-Managers ermöglicht die Verwaltung mehrerer Listen.

So fügen Sie eine Liste einer anderen Liste hinzu

  1. Klicken Sie im Menü Kampagnen auf Listen-Manager.

  2. Wählen Sie auf dem Bildschirm Listen-Manager die Liste aus, die Sie mit einer anderen Liste kombinieren möchten. Klicken Sie dann auf der Symbolleiste auf Liste hinzufügen/entfernen.

  3. Führen Sie im Dialogfeld Listen hinzufügen/entfernen folgende Schritte aus:
    Option/Funktion | Zweck
    Operation | Wählen Sie in der Dropdownliste die Option Hinzufügen zu aus.
    Zielliste | Wählen Sie die Liste aus, zu der Sie die Ausgangsliste hinzufügen möchten.
    Name für neue Liste | Geben Sie einen Namen für die neue Liste ein.
    Beschreibung | Geben Sie eine Beschreibung für die neue Liste ein.

  4. Klicken Sie auf OK.

Die neue Liste wird im Listen-Manager angezeigt.

So entfernen Sie eine Liste aus einer anderen Liste

  1. Klicken Sie im Menü Kampagnen auf Listen-Manager.

  2. Wählen Sie auf dem Bildschirm Listen-Manager die Liste aus, aus der Sie eine andere Liste entfernen möchten, und klicken Sie dann auf der Symbolleiste auf Liste hinzufügen/entfernen.

  3. Führen Sie im Dialogfeld Listen hinzufügen/entfernen folgende Schritte aus:
    Option/Funktion | Zweck
    Operation | Wählen Sie in der Dropdownliste die Option Entfernen aus.
    Zielliste | Wählen Sie die Liste aus, aus der Sie Daten entfernen möchten.
    Name für neue Liste | Geben Sie einen Namen für die neue Liste ein.
    Beschreibung | Geben Sie eine Beschreibung für die neue Liste ein.

  4. Klicken Sie auf OK.

Die neue Liste wird im Listen-Manager angezeigt, die Datensätze der Ausschlussliste sind gelöscht.

Siehe auch

Verwalten von Listen mit Benutzereinträgen


Kopieren von Adressenlisten

Möglicherweise verfügen Sie über Adressenlisten, anhand derer Sie weitere Adressenlisten erstellen möchten. Im Listen-Manager können Sie vorhandene Adressenlisten kopieren, und die kopierte Liste einfach bearbeiten. Sie können sie beispielsweise mit einer anderen bestehenden Liste kombinieren, um so eine Adressenliste mit mehr Datensätzen zu erhalten.

So kopieren Sie eine Adressenliste

  1. Klicken Sie im Menü Kampagnen auf Listen-Manager.

  2. Wählen Sie auf dem Bildschirm Listen-Manager die zu kopierende Liste aus, und klicken Sie dann auf der Symbolleiste auf Kopieren.

  3. Führen Sie im Dialogfeld Liste kopieren folgende Schritte aus:
    Option/Funktion | Zweck
    Wählen Sie eine Zielliste aus | Wählen Sie die bestehende Liste aus, in die Sie die Adressenliste kopieren möchten.
    Namen der Zielliste eingeben | Geben Sie den Namen der neuen Liste ein, in die die Adressenliste kopiert werden soll.

  4. Klicken Sie auf OK.

Die Liste wird kopiert und kann nun bearbeitet werden.


Extrahieren von Adressenlisten

Mit dem Listen-Manager-Modul lassen sich doppelte bzw. leere E-Mail-Adressen aus einer generischen Liste entfernen, sodass nur die zum Übermitteln erforderlichen Felder verbleiben. Die Ergebnisliste gibt zuverlässigere Informationen bezüglich der Anzahl der verschiedenen E-Mail-Adressen. Auf diese Weise ist die Liste von höherem Wert bei der Steigerung der Systemleistung zur Laufzeit.

So extrahieren Sie eine Adressenliste

  1. Klicken Sie im Menü Kampagnen auf Listen-Manager.

  2. Wählen Sie auf dem Bildschirm Listen-Manager die zu extrahierende Liste aus, und klicken Sie dann auf der Symbolleiste auf Direktsendungsliste extrahieren.

  3. Führen Sie im Dialogfeld Adressenliste extrahieren die folgenden Schritte aus:
    Option/Funktion | Zweck
    Namen der Zielliste eingeben | Geben Sie einen Namen für die neue Liste ein, in die die Adressenliste extrahiert werden soll.
    Beschreibung | Geben Sie eine Beschreibung der extrahierten Liste ein.

  4. Klicken Sie auf OK.

Die extrahierte Liste enthält nur eindeutige E-Mail-Adressen.


Analysieren von Kampagnen

Darüber hinaus können Sie mit dem Kampagnen-Manager Kampagnenberichte ausführen, anhand derer Sie Entscheidungen zur Preisgestaltung, zum Marketing und zu anderen Aspekten Ihrer geschäftlichen Tätigkeiten treffen können. Durch eine Analyse der Kampagnen können Sie die erfolgreichsten Kampagnen promoten.

Dieser Abschnitt beinhaltet folgende Themen:

  • Ausführen eines Kampagnenberichts

  • Exportieren eines Berichts in den Listen-Manager


Ausführen eines Kampagnenberichts

Nach dem Import der Protokolldateien mit den Kampagnendaten im Datawarehouse können Sie Berichte ausführen, um die Effizienz Ihrer Anzeigenkampagnen zu überprüfen. Protokolldateien können täglich, wöchentlich oder monatlich ausgeführt werden. Wenden Sie sich an Ihren Systemadministrator, um einen Zeitplan für den Import von Protokolldateien zu erhalten.

Mithilfe des Kampagnen-Manager-Moduls können Sie eine Liste von Berichten anzeigen. In dieser Berichtliste wird das Analyseberichte-Modul über dem Kampagnen-Manager-Modul angezeigt. Über das Berichtemodul können Sie dynamische und statische Berichte ausführen. Wenn Sie das Berichtemodul zum ersten Mal öffnen, ist in der Standardansicht die Suchoption Alle Berichte ausgewählt. Sie können den Umfang dieser Liste verringern, indem Sie spezifischere Suchkriterien festlegen. Informationen über Anzeigenberichte finden Sie unter Anzeigenberichte.

So suchen Sie einen Kampagnenbericht

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Klicken Sie auf dem Bildschirm Kampagnen-Manager auf der Symbolleiste auf Berichtsvorschau, um eine Liste der Kampagnenberichte anzuzeigen.

    Anmerkung

    • Verwenden Sie die Schaltflächen für den seitenweisen Bildlauf am Ende der Liste, um die gesamte Berichtsliste anzuzeigen.
  3. Klicken Sie auf dem Bildschirm Berichte auf der Symbolleiste auf Suchen.

  4. Führen Sie im Suchbereich folgende Schritte aus:
    Option/Funktion Zweck
    Suchen nach Wählen Sie in der Dropdownliste die Kriterien aus, nach denen Sie suchen möchten.

    Abhängig von den Kriterien werden unterhalb des Feldes Suchen nach unterschiedliche Felder angezeigt.

    Geben Sie in die Felder unter dem Feld Suchen nach den Wert für die ausgewählten Kriterien (Name, Kategorie, Erstellt von, Typ) ein bzw. wählen Sie diesen aus der Liste aus.

  5. Klicken Sie auf Suchen.

Im unteren Ausschnitt des Suchbereichs wird eine Liste mit den Berichten angezeigt, die mit den Suchkriterien übereinstimmen.

So führen Sie einen Kampagnenbericht aus

  • Wählen Sie im Menü Berichte in der Liste der verfügbaren Berichte den auszuführenden Bericht aus. Klicken Sie dann auf der Symbolleiste auf Bericht ausführen.

Bei Ausführung eines dynamischen Berichts wird über dem Berichtemodul-Fenster ein neues Internet Explorer-Fenster geöffnet. Während der Bericht ausgeführt wird, kann dieses Fenster minimiert werden, sodass Sie weiter in Commerce Server Business Desk arbeiten können.

Während der Ausführung eines statischen Berichts wird das Berichtemodul weiterhin angezeigt, sodass Sie weiter damit arbeiten können. Informationen über die Ausführung von Berichten finden Sie unter Ausführen von Berichten.

So überprüfen Sie den Berichtsstatus

  • Klicken Sie im Menü Analyse auf Abgeschlossene Berichte.

Auf dem Bildschirm Abgeschlossene Berichte können Sie eine Liste der abgeschlossenen Berichte anzeigen und den Status von Berichten überprüfen.

Siehe auch

Ausführen von Berichten

Suchen von Berichten


Exportieren eines Berichts in den Listen-Manager

Sie können statische Berichtsergebnisse in das Listen-Manager-Modul exportieren und diese Liste dann in einem Direktsendungsauftrag verwenden. Anhand eines Verwendungsberichtes Ihrer Site lässt sich eine Liste der registrierten Benutzer erstellen. Mit dem Kampagnen-Manager-Modul und Direct Mailer können Sie dann eine Anzeige zielgerichtet an diese Benutzer übermitteln. Beispiel: Sie möchten eine Anzeige für ein neues Buch zum Thema Biking schalten. Mithilfe des Berichtemoduls können Sie eine Liste der registrierten Benutzer erstellen, die sich für Biking interessieren. Auf diese Weise können Sie als Zielgruppe für diese Anzeige genau diese Liste der registrierten Benutzer verwenden.

So suchen Sie einen statischen Bericht

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Klicken Sie auf dem Bildschirm Kampagnen-Manager auf der Symbolleiste auf Berichtsvorschau, um eine Liste der Berichte anzuzeigen.

  3. Klicken Sie auf dem Bildschirm Berichte auf der Symbolleiste auf Suchen.

  4. Führen Sie im Suchbereich folgende Schritte aus:
    Option/Funktion | Zweck
    Suchen nach | Wählen Sie in der Dropdownliste die Option Typ aus.
    Typ | Wählen Sie in der Dropdownliste die Option Statisch.

  5. Klicken Sie auf Suchen.

Im Suchbereich wird eine Liste mit statischen Berichten angezeigt.

So exportieren Sie einen Bericht in den Listen-Manager

  • Wählen Sie auf dem Bildschirm Berichte den zu exportierenden Bericht aus, und klicken Sie dann auf der Symbolleiste auf Exportieren.

Der Bericht wird in den Listen-Manager exportiert.

Siehe auch

Suchen von Berichten

Verwalten von Listen mit Benutzereinträgen


Löschen und Wiederherstellen von Kampagnen

Mithilfe des Kampagnen-Manager-Moduls können Sie Kunden, Kampagnen und Kampagnenartikel löschen, wenn diese nicht mehr benötigt werden. Die Inhalte des Kampagnen-Managers sind hierarchisch nach Kunden, Kampagnen und Kampagnenartikeln angeordnet. Wenn Sie Kunden, Kampagnen und Kampagnenartikel löschen, löschen Sie sie vollständig, d. h. Sie löschen den entsprechenden Teilbaum der Struktur vollständig. Wenn Sie beispielsweise einen Kunden löschen, so werden die ihm zugeordneten Kampagnen und Kampagnenartikel ebenfalls gelöscht. Wenn Sie Kampagnenartikel wiederherstellen, sollten Sie auch die diesen Kampagnen untergeordneten Teilstrukturen löschen. Wenn Sie beispielsweise Kampagnenartikel wiederherstellen, sollten Sie sicherstellen, dass untergeordneten Kampagnen- und Kundendatensätze ebenfalls wiederhergestellt werden.

Wenn Sie einen Kunden löschen, wird dieser zusammen mit den entsprechenden Kampagnenartikeln archiviert. Gelöschte Kunden, Kampagnen und Kampagnenartikel können mithilfe des Kampagnen-Managers wiederhergestellt werden.

Dieser Abschnitt beinhaltet folgende Themen:

  • Löschen und Wiederherstellen eines Kunden

  • Löschen und Wiederherstellen einer Kampagne

  • Löschen und Wiederherstellen eines Kampagnenartikels


Löschen und Wiederherstellen eines Kunden

Mithilfe des Kampagnen-Manager-Moduls können Sie Kunden löschen. Gelöschte Kunden werden mit den zugehörigen Kampagnen und Kampagnenartikeln archiviert und lassen sich mithilfe des Kampagnen-Managers wiederherstellen.

So löschen Sie einen Kunden

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie auf dem Bildschirm Kampagnen-Manager den zu löschenden Kunden aus, und klicken Sie dann auf der Symbolleiste auf Löschen.

  3. Klicken Sie im Dialogfeld Löschen auf Ja.

Der Kunde wird aus dem Kampagnen-Manager gelöscht und mit den zugehörigen Kampagnen und Kampagnenartikeln archiviert.

So stellen Sie einen Kunden wieder her

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Klicken Sie auf dem Bildschirm Kampagnen-Manager auf der Symbolleiste auf Suchen.

  3. Führen Sie im Suchbereich folgende Schritte aus:
    Option/Funktion | Zweck
    Kunde Geben Sie den Namen Kunden ein, der wiederhergestellt werden soll.

    Anmerkung

    • Sie können einen Suchbegriff eingeben, um die Suche einzuschränken. Wenn Sie beispielsweise "ar" eingeben, werden nur diejenigen Kunden abgerufen, deren Namen die Zeichenfolge "ar" enthält, wie "Arbor Shoes" und "School of Fine Art".
    Gelöscht | Wählen Sie in der Dropdownliste die Option Beide aus.

  4. Klicken Sie auf Suchen.

Die Kunden werden in der Liste Gefilterte Ansicht angezeigt. Ihr Status wird als Gelöscht angezeigt.

  5. Wählen Sie in der Liste Gefilterte Ansicht den gewünschten Kunden aus, und klicken Sie anschließend auf der Symbolleiste auf Wiederherstellen.

  6. Klicken Sie im Dialogfeld Wiederherstellen? auf Ja.

Der Status des Kunden wird zu Aktiv geändert.

  7. Klicken Sie auf Zurücksetzen, um die Liste Gefilterte Ansicht wiederherzustellen, und klicken Sie anschließend auf die Schaltfläche Suchbereich schließen.

Der Kunde wird wiederhergestellt und im Kampagnen-Manager in der Liste Gefilterte Ansicht erneut angezeigt.

Siehe auch

Informationen zu Kampagnen

Löschen und Wiederherstellen einer Kampagne

Löschen und Wiederherstellen eines Kampagnenartikels

Suchen nach Kampagnen


Löschen und Wiederherstellen einer Kampagne

Mithilfe des Kampagnen-Manager-Moduls können Sie Kampagnen löschen. Gelöschte Kampagnen werden mit den zugehörigen Kampagnenartikeln archiviert und lassen sich mithilfe des Kampagnen-Managers wiederherstellen.

So löschen Sie eine Kampagne

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie auf dem Bildschirm Kampagnen-Manager die zu löschenden Kampagnen aus, und klicken Sie dann auf der Symbolleiste auf Löschen.

  3. Klicken Sie im Dialogfeld Löschen auf Ja.

Der Kampagnenartikel wird aus dem Kampagnen-Manager gelöscht und mit den zugehörigen Kampagnenartikeln archiviert.

So stellen Sie eine Kampagne wieder her

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Klicken Sie auf dem Bildschirm Kampagnen-Manager auf der Symbolleiste auf Suchen.

  3. Führen Sie im Suchbereich folgende Schritte aus:
    Option/Funktion | Zweck
    Kunde | Geben Sie den Kundennamen für die Kampagne ein, die Sie wiederherstellen möchten.
    Gelöscht | Wählen Sie in der Dropdownliste die Option Beide aus.
    Von | Geben Sie das Datum ein, an dem die Kampagne erstellt wurde, oder wählen Sie es im Dropdownkalender aus.
    Bis | Geben Sie das Datum ein, an dem die Kampagne gelöscht wurde, oder wählen Sie es im Dropdownkalender aus.

  4. Klicken Sie auf Suchen.

Die Kampagnen werden in der Liste Gefilterte Ansicht angezeigt. Ihr Status wird als Gelöscht angezeigt.

  5. Wählen Sie die gewünschte Kampagne aus der Liste Gefilterte Ansicht aus, und klicken Sie dann auf der Symbolleiste auf Wiederherstellen, um der Kampagne erneut den Status Aktiv zuzuweisen.

  6. Klicken Sie im Dialogfeld Wiederherstellen? auf Ja.

Der Status der Kampagne wird zu Aktiv geändert.

  7. Klicken Sie auf Zurücksetzen, um die Liste Gefilterte Ansicht wiederherzustellen, und klicken Sie anschließend auf die Schaltfläche Suchbereich schließen.

Die Kampagne wird wiederhergestellt und im Kampagnen-Manager in der Liste Gefilterte Ansicht erneut angezeigt.

Siehe auch

Informationen zu Kampagnen

Löschen und Wiederherstellen eines Kunden

Löschen und Wiederherstellen eines Kampagnenartikels

Suchen nach Kampagnen


Löschen und Wiederherstellen eines Kampagnenartikels

Mit dem Kampagnen-Manager-Modul können Sie Kampagnenartikel löschen. Gelöschte Kampagnenartikel werden archiviert und lassen sich mithilfe des Kampagnen-Managers wiederherstellen.

So löschen Sie einen Kampagnenartikel

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Wählen Sie auf dem Bildschirm Kampagnen-Manager den zu löschenden Kampagnenartikel aus, und klicken Sie dann auf der Symbolleiste auf Löschen.

  3. Klicken Sie im Dialogfeld Löschen auf Ja.

Der Kampagnenartikel wird aus dem Kampagnen-Manager gelöscht.

So stellen Sie einen Kampagnenartikel wieder her

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Klicken Sie auf dem Bildschirm Kampagnen-Manager auf der Symbolleiste auf Suchen.

  3. Führen Sie im Suchbereich folgende Schritte aus:
    Option/Funktion | Zweck
    Artikeltyp | Wählen Sie den Kampagnenartikeltyp aus, den Sie wiederherstellen möchten.
    Kunde | Geben Sie den Kundennamen des Kampagnenartikels ein, den Sie wiederherstellen möchten.
    Gelöscht | Wählen Sie in der Dropdownliste die Option Beide aus.
    Von | Geben Sie das Datum ein, an dem der Kampagnenartikel erstellt wurde, oder wählen Sie es im Dropdownkalender aus.
    Bis | Geben Sie das Datum ein, an dem der Kampagnenartikel gelöscht wurde, oder wählen Sie es im Dropdownkalender aus.

  4. Klicken Sie auf Suchen.

Die Kampagnenartikel werden in der Liste Gefilterte Ansicht angezeigt. Ihr Status wird als Gelöscht angezeigt.

  5. Wählen Sie die gewünschte Kampagne aus der Liste Gefilterte Ansicht aus, und klicken Sie dann auf Wiederherstellen, um dem Kampagnenartikel erneut den Status Aktiv zuzuweisen.

  6. Klicken Sie im Dialogfeld Wiederherstellen? auf Ja.

Der Status des Kampagnenartikels wird zu Aktiv geändert.

  7. Klicken Sie auf Zurücksetzen, um die Liste Gefilterte Ansicht wiederherzustellen, und klicken Sie anschließend auf die Schaltfläche Suchbereich schließen.

Der Kampagnenartikel wird wiederhergestellt und im Kampagnen-Manager in der Liste Gefilterte Ansicht erneut angezeigt.

Siehe auch

Informationen zu Kampagnen

Löschen und Wiederherstellen eines Kunden

Löschen und Wiederherstellen einer Kampagne

Suchen nach Kampagnen


Suchen nach Kampagnen

Die Baumstruktur des Kampagnen-Managers kann sehr umfangreich sein. Im Suchbereich des Kampagnen-Manager-Moduls können Sie mithilfe von Filterkriterien nach Kampagnen suchen. Über Filterkriterien kann die Anzahl der in der Baumstruktur des Kampagnen-Managers angezeigten Elemente verringert werden. Auf diese Weise können Sie Kampagnen einfacher finden und verwalten.

Sie können Kampagnen über Kampagnenartikel, Kundennamen und Status (aktiv oder inaktiv) suchen. Sie können auch nach Kampagnen suchen, die gelöscht wurden. Beim Löschen einer Kampagne wird diese mit ihren Kampagnenartikeln archiviert und kann ggf. wiederhergestellt werden.

So suchen Sie nach einem Kampagnenartikel

So suchen Sie nach einem gelöschten Preisnachlasskampagnenartikel

So suchen Sie nach einem Kampagnenartikel

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Klicken Sie auf dem Bildschirm Kampagnen-Manager auf der Symbolleiste auf Suchen.

  3. Führen Sie im Suchbereich folgende Schritte aus:
    Option/Funktion | Zweck
    Artikeltyp | Wählen Sie in der Dropdownliste den Typ des Kampagnenartikels aus oder wählen Sie alle Kampagnenartikel über die Option Alle.
    Kunde | Geben Sie den Kundennamen für die Kampagne ein, die Sie suchen möchten.
    Status | Wählen Sie in der Dropdownliste die Option Aktiv oder Alle aus.
    Gelöscht | Wählen Sie in der Dropdownliste die Option Nein oder Beide aus.
    Von | Geben Sie das Anfangsdatum der Kampagne ein, oder wählen Sie es im Dropdownkalender aus.
    Bis | Geben Sie das Beendigungsdatum der Kampagne ein, oder wählen Sie es im Dropdownkalender aus.

  4. Klicken Sie auf Suchen.

Die Kampagnenartikel, die den Filterkriterien entsprechen, werden im Feld Gefilterte Ansicht angezeigt.

Anmerkung

  • Klicken Sie auf Zurücksetzen, um die Standardsuchkriterien wiederherzustellen.

So suchen Sie nach einem gelöschten Preisnachlasskampagnenartikel

  1. Klicken Sie im Menü Kampagnen auf Kampagnen-Manager.

  2. Klicken Sie auf dem Bildschirm Kampagnen-Manager auf der Symbolleiste auf Suchen.

  3. Führen Sie im Suchbereich folgende Schritte aus:
    Option/Funktion | Zweck
    Artikeltyp | Wählen Sie in der Dropdownliste die Option Preisnachlass aus.
    Kunde | Geben Sie den Kundennamens für die Preisnachlasskampagne ein.
    Status | Wählen Sie in der Dropdownliste die Option Alle aus.
    Gelöscht | Wählen Sie in der Dropdownliste die Option Beide aus.
    Von | Geben Sie das Anfangsdatum der Kampagne ein, oder wählen Sie es im Dropdownkalender aus.
    Bis | Geben Sie das Beendigungsdatum der Kampagne ein, oder wählen Sie es im Dropdownkalender aus.

  4. Klicken Sie auf Suchen.

Die Kampagnenartikel, die den Filterkriterien entsprechen, werden in der Liste Gefilterte Ansicht angezeigt.

Anmerkung

  • Klicken Sie auf Zurücksetzen, um die Standardsuchkriterien wiederherzustellen.

Siehe auch

Informationen zu Kampagnen

Löschen und Wiederherstellen von Kampagnen


Business Desk-Kataloge

Mithilfe des Katalogmoduls werden Produktkataloge erstellt sowie Produktdaten hinzugefügt und aktualisiert. Sie benötigen keine Spezialkenntnisse über die Datenbanken, in denen Ihre Produktdaten gespeichert sind, selbst wenn Sie einen Produktkatalog aus verschiedenen Quellen (z. B. von unterschiedlichen Lieferanten) zusammenstellen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Workflow für die Katalogverwaltung. Zeigt die Arbeitsabläufe für das Ausführen und Verwalten eines Katalogs.

  • Informationen zu Katalogen. Beschreibt die Komponenten eines Katalogs und gibt eine Übersicht über die Schritte zur Erstellung eines Katalogschemas.

  • Importieren eines Katalogs. Zeigt, wie Sie eine Katalogdatei im CSV- (trennzeichengetrennt) oder XML-(Extensible Markup Language)-Format importieren können.

  • Erstellen eines Katalogschemas. Erläutert, wie Kategorie-, Produkt- und Eigenschaftsdefinitionen für einen Katalog festgelegt werden.

  • Erstellen eines Katalogs. Gibt Informationen darüber, wie Kataloge und Katalogsätze erstellt, Artikel zu einem Katalog hinzugefügt und die Preise für Produkte in einem Katalog berechnet werden.

  • Preisberechnung von Produkten. Erläutert, wie Produktpreise im Katalog auf Produktebene und auf Produktvariantenebene festgesetzt und wie die Preise für Produktgruppen gestaltet werden. Außerdem wird erklärt, wie Preise in einem benutzerdefinierten Katalog berechnet werden.

  • Preisnachlässe für Produkte anwenden. Beschreibt verschiedene Arten von Preisnachlässen auf Produktpreise.

  • Erstellen von Kategoriehierarchien. Erläutert, wie Kategoriehierarchien in einem Katalog festgelegt werden.

  • Erstellen von Kategorie- und Produktbeziehungen. Zeigt, wie Beziehungen in einem Katalog festgelegt werden.

  • Aktualisieren und Veröffentlichen eines Katalogs. Erläutert, wie Kataloge in einer Website veröffentlicht und wie alle Caches und Volltextindizes aktualisiert werden.

  • Senden eines Katalogs an einen Handelspartner. Gibt Informationen darüber, wie ein Katalog an einen Handelspartner gesendet wird. Dazu müssen Sie und Ihr Handelspartner auf Ihren Computersystemen Microsoft BizTalk Server installieren.

  • Exportieren eines Katalogs. Erläutert, wie ein Katalog in einen freigegebenen Ordner exportiert wird.

  • Verwalten eines Katalogschemas. Zeigt, wie Eigenschafts-, Produkt- und Kategoriedefinitionen geändert und gelöscht werden.

  • Verwalten von Produkten, Kategorien, Katalogen und Katalogsätzen. Erläutert, wie Produkte, Kategorien, Kataloge und Katalogsätze geändert und gelöscht werden.

  • Verwalten von Kategorie- und Produktbeziehungen. Gibt Informationen darüber, wie Kategorie- und Produktbeziehungen bearbeitet und gelöscht werden.


Workflow für die Katalogverwaltung

Die nachfolgende Abbildung liefert ein Beispielszenario für das Erstellen eines Katalogs. Sie zeigt, wie Sie einen Katalog erstellen können, indem Sie eine XML- oder CSV-Katalogdatei importieren oder ein Katalogschema erstellen. Außerdem zeigt sie, wie Sie nach dem Erstellen des Katalogschemas eine Kategorie, ein Produkt und Produktvarianten hinzufügen können. Wenn Sie einen oder mehrere Kataloge erstellt haben, können Sie einen Katalogsatz erstellen. Nachdem Sie Änderungen am Katalog vorgenommen haben, können Sie diesen in Ihrer Website veröffentlichen.

Workflowdiagramm für die Katalogverwaltung
XML oder CSV
Katalog importieren
Katalogschema erstellen
Katalog erstellen
Eigenschaft-
definitionen
Produkt-
definitionen
Kategorie-
definitionen
Preisberechnung für Produkte
Preisberechnung für Kundenkatalog
Preisberechnung für ein Produkt
Preisberechnung für Produktvarianten
Neuen Katalog erstellen
Katalogsatz erstellen
Kategorie zu einem Katalog hinzufügen
Produkt zu einem Katalog hinzufügen
Produktvarianten zu einem Produkt hinzufügen
Beziehungen und Hierarchien
Kategoriehierarchien erstellen
Beziehungen zwischen Kategorien und Produkten erstellen
Katalog aktualisieren und veröffentlichen


Informationen zu Katalogen

Ein Katalog bietet eine Möglichkeit, die Produkte zu organisieren, die Sie verkaufen möchten. Business Desk unterstützt Sie beim Erstellen und Organisieren von Katalogen, indem es eine Beschreibung der Eigenschaften speichert, die die verschiedenen Katalogelemente besitzen müssen. Diese Beschreibung wird als Katalogschema bezeichnet. Dieses Schema führt alle Arten von Kategorien, Produkten und Eigenschaften auf, die in dem Katalog zulässig sind.

In Commerce Server 2000 werden Kataloge zur Organisation und Verwaltung der Produktdaten in der Datenbank eingesetzt, die in der Site angezeigt werden sollen. Außerdem dienen sie der Zielgruppenadressierung von Produkten an Benutzer.

Verwenden von Katalogen bei der Websiteverwaltung

Auffüllen Ihres Katalogs mit Produktdaten

Austauschen von Katalogen mit BizTalk Server

Katalogstruktur

Katalogorganisation: Hierarchien und Beziehungen

Eindeutige Bezeichner in Katalogen

Basiskataloge, benutzerdefinierte Kataloge und Katalogsätze

Methoden zur Produktpreisberechnung

Analysieren von Katalogverkäufen

Verwenden von Katalogen bei der Websiteverwaltung

Mithilfe der Katalogmodule in Commerce Server Business Desk können Sie Ihre Kataloge verwalten, analysieren und erweitern. Wenn sich Ihre Site z. B. in der Produktion befindet, können Sie in Business Desk Berichte ausführen, um die Produkte zu erfassen, die sich nicht gut verkaufen. Anschließend können Sie eine Preisnachlasskampagne erstellen, um den Absatz dieser Produkte zu erhöhen.

Business Desk ermöglicht die folgenden Aktionen:

  • Importieren von Katalogen aus anderen Datenquellen. Sie können Kataloge im CSV- (trennzeichengetrennt) oder XML-(Extensible Markup Language)-Format aus externen Quellen importieren. Wenn Sie beispielsweise über Kataloge in anderen Datenbanken verfügen, können Sie diese in die Commerce Server-Datenbank importieren und dann mit Business Desk verwalten.

    Zur Konvertierung von Katalogen ins XML- oder CSV-Format können Sie die Kataloge entweder mit Ihrem vorhandenen Datenbankverwaltungssystem im XML- bzw. CSV-Format speichern oder einen Siteentwickler ein Microsoft Visual Basic-Skript schreiben lassen, das die Kataloge automatisch konvertiert.

    Bevor Sie einen Katalog importieren können, muss der Systemadministrator in Commerce Server einen freigegebenen Ordner erstellen. Kopieren Sie den Katalog mit dem Windows-Explorer in den freigegebenen Ordner, und importieren Sie ihn dann mit Business Desk in die Commerce Server-Datenbank.

  • Exportieren von Katalogen. Sie können Ihre Kataloge im XML-Format exportieren. Wenn Sie beispielsweise als Großhändler Produkte verkaufen, bietet es sich an, Ihre Kataloge für Einzelhändler zu exportieren. Sie haben auch die Möglichkeit, einen Katalog in eine andere Anwendung zu exportieren, z. B. in ein Lagerbestands- oder Preisberechnungssystem.

    Bevor Sie einen Katalog exportieren können, muss der Systemadministrator einen freigegebenen Ordner in Commerce Server erstellen, bzw. Sie müssen den Namen eines Verzeichnisses auf dem Server kennen, auf das Sie Zugriff haben. Mit Business Desk können Sie den Katalog dann in den freigegebenen Ordner bzw. in das Verzeichnis exportieren.

    Wenn Sie den Import und Export von Katalogen in Commerce Server zeitlich planen möchten, kann ein Siteentwickler diese Funktionalität bereitstellen.

  • Anwenden von Preisnachlässen auf Produkte. Sie können Preisnachlässe auf alle Produkte in einer Kategorie oder nur auf solche Produkte anwenden, die bestimmte Kriterien erfüllen. Beispiel: Bei Produkt.Preis = 20,00 wird ein Preisnachlass von 10 % auf den Preis angewendet, sobald Benutzer das entsprechende Produkt zu ihrem Warenkorb hinzufügen. Informationen über das Anwenden von Preisnachlässen auf Produkte finden Sie unter Kampagnen: Anzeigen, Preisnachlässe und Direktsendungen. Eine Anleitung zum Hinzufügen einer Preisnachlasskampagne finden Sie unter Hinzufügen eines Preisnachlasskampagnenartikels.

  • Bearbeiten von Produkten im Katalog. Sie haben die Möglichkeit, Produktnamen, -preis, -beschreibung usw. zu ändern.

  • Aktualisieren von Produktinformationen in Echtzeit. Sie können Produktinformationen, z. B. den Produktpreis, aktualisieren und die Änderungen in Ihrer Website veröffentlichen. Wenn Ihre Kunden beispielsweise ein Produkt zu ihren Warenkörben hinzugefügt haben und Ihre Site aktualisiert wird, bevor sich die Benutzer abmelden, wendet Commerce Server den neuen Preis auf die Warenkörbe an. Wenn die Kunden ihre Warenkörbe gespeichert haben und dann nach der Preisaktualisierung zu ihnen zurückkehren, wird bereits der neue Preis angezeigt.

  • Identifizieren der Produkte, die sich gut verkaufen. Führen Sie Commerce Server-Berichte aus, um die bestverkauften Produkte bzw. Kategorien nach verkauften Einheiten und Gesamtverkäufen zu ermitteln. Die Analyseergebnisse können Sie z. B. zur Anwendung von Preisnachlässen auf Produkte verwenden, die sich nicht gut verkaufen, oder um Zubehör für erfolgreiche Produkte zu promoten. Außerdem kann Ihr Siteentwickler die Site anpassen, um verwandte Verkaufstypen wie Up-Selling und Cross-Selling zu unterstützen.

  • Suche nach Produkten. Produkte lassen sich leicht über eine Eigenschafts- oder Freitextsuche finden.

Auffüllen Ihres Katalogs mit Produktdaten

Mithilfe des Katalog-Editor-Moduls in Business Desk können Sie manuell Produktdaten eingeben bzw. Daten aus einer XML- oder CSV-Datei importieren. Wenn Sie z. B. bereits einen Katalog in einer anderen Datenbank haben, kann dieser von Ihrem Systemadministrator als XML-Datei exportiert werden. Mit dem Katalog-Editor-Modul können Sie den Katalog dann in die Commerce Server-Datenbank importieren.

Austauschen von Katalogen mit BizTalk Server

BizTalk Server 2000 hat die Funktion eines Gateways für den Versand von Geschäftsdokumenten zwischen Ihrer Firma und Ihren Handelspartnern (auch "Hersteller" genannt). Wenn BizTalk Server von Ihrer Firma und Ihren Handelspartnern verwendet wird, können Sie Kataloge, Bestellungen, Dokumente und andere elektronische Formulare miteinander austauschen. So können Ihnen Hersteller z. B. ihre Kataloge senden, und Sie können diese in Ihrer Website zusammen mit Ihrem eigenen Katalog veröffentlichen. Wenn Benutzer in Ihrer Website Bestellungen aufgeben, werden diese zur Ausführung direkt an den Hersteller übermittelt.

Jeder einzelne Ihrer Handelspartner kann Ihnen einen oder mehrere Kataloge mit seinen Produkten schicken. Abhängig von der Konfiguration Ihrer Site können Sie diese Kataloge in Ihrer Website als einen einzigen oder als verschiedene Kataloge anbieten. Weitere Informationen über die Verwendung von BizTalk Server finden Sie unter Verwenden von BizTalk Server.

Katalogstruktur

Ein Commerce Server-Katalog hat zwei Hauptbestandteile:

  • Katalogschema. Eine Beschreibung der Kategorien und Produkte einer Site. Das Katalogschema ist für alle Kataloge in einer Site verfügbar.

  • Katalog. Eine einzelne Instanz des Katalogschemas, das Daten enthält.

Die folgende Tabelle zeigt ein Beispiel eines Katalogschemas ("Kleidung") sowie eine einzelne Instanz des Kleidungskatalogschemas mit Daten des Sportbekleidungskatalogs.

Katalogschema | Katalog: Sportbekleidung
Kategoriedefinition: Abteilung Kategorieeigenschaften Name Beschreibung Image_filename Image_width Image_height | Kategorie: Sporttrikotabteilung Sporttrikotabteilung Katalog für Sporttrikots 2000 Sporttrikots.gif 100 200
Produktdefinition: Trikots Produkteigenschaften: Name Hersteller Preis Produktvarianteneigenschaften: Size Color SKU | Produkt: Ass-Fußballtrikot Ass-Fußballtrikot Ass Trikots DM 20,00 M Grün 23354

Katalogschema

Das Katalogschema beschreibt die Eigenschaften der Kategorien und Produkte in einem bestimmten Katalogtyp. Im Katalogschema eines Sportbekleidungskatalogs könnten beispielsweise folgende Produkte definiert sein: Trikots, Hosen und Schuhe. Zur Erstellung eines Katalogschemas können Sie das Katalog-Designer-Modul von Business Desk verwenden.

Ein solches Katalogschema besteht aus Kategoriedefinitionen, Produktdefinitionen und Eigenschaftsdefinitionen. Kategorie- und Produktdefinitionen werden mithilfe von Eigenschaftsdefinitionen erstellt. Die folgende Abbildung zeigt die Elemente eines Beispielkatalogschemas.

Verwendung von Eigenschaften in Produkt- und Kategoriedefinitionen
Name (Text)
Hersteller (Text)
Preis (Währung)
Kategoriedefinition
Farbe (Multiplechoice) Beschreibung (Text) Bild_Dateiname (Dateiname) Bild_Breite (Zahl) Bild_Höhe (Zahl) Herstellung (Text)
Name (Text)
Preis (Währung)
Größe (Multiplechoice)
SKU (Zahl)
Eigenschaften
Produktdefinition
Farbe (Multiplechoice) Beschreibung (Text) Bild_Dateiname (Dateiname) Bild_Breite (Zahl) Bild_Höhe (Zahl) Herstellung (Text)
Name (Text)
Preis (Währung)
Größe (Multiplechoice)
SKU (Zahl)
Name (Text) Beschreibung (Text) Bild_Dateiname (Dateiname) Bild_Breite (Zahl) Bild_Höhe (Zahl)
Varianteneigenschaften
Größe (Multiplechoice)
Farbe (Multiplechoice)
SKU (Zahl)
Katalogschema

Kategoriedefinitionen beschreiben die jeweiligen Merkmale der Katalogkategorien. Diese Merkmale werden Kategorieeigenschaften genannt. Kategoriedefinitionen werden durch Zuweisung von Kategorieeigenschaften erstellt. Die Abteilungskategoriedefinition könnte beispielsweise folgende Kategorieeigenschaften besitzen: Name, Beschreibung, Bilddateiname, Bildhöhe und Bildbreite. Zur Erstellung einer Kategorie basierend auf der Abteilungskategoriedefinition geben Sie Werte für die Kategorieeigenschaften ein. So könnte z. B. "Sporttrikotabteilung" die Namenskategorieeigenschaft sein.

Produktdefinitionen beschreiben die jeweiligen Merkmale eines bestimmten Produkts. Diese Merkmale werden Produkteigenschaften genannt. Produktdefinitionen werden durch Zuweisung von Produkteigenschaften erstellt. Beispielsweise könnten Sie eine Produktdefinition namens "Trikot" erstellen, die drei Produkteigenschaften enthalten würde: Name, Hersteller und Preis. Zur Erstellung eines Produkts basierend auf der Trikot-Produktdefinition geben Sie Werte für die Produkteigenschaften ein. So könnte z. B. "Ass-Fußballtrikot" die Namensprodukteigenschaft sein.

Sowohl Produkt- als auch Kategorieeigenschaften basieren auf Eigenschaftsdefinitionen. Eine Eigenschaftsdefinition enthält Informationen über die Eigenschaft, wie etwa den Datentyp der Eigenschaft (z. B. Zahl, Text oder Dezimal), den Namen der Eigenschaft und den Mindestwert der Eigenschaft. Sie können beispielsweise eine Eigenschaft namens "Trikotgröße" mit den Werten "S", "M" und "L" oder eine Eigenschaft namens "Länge" mit einem Mindestwert von 10 und einem Höchstwert von 120 erstellen.

Katalogschemas lassen sich ändern – selbst dann, wenn ein Katalog bereits Daten enthält. Unter anderem haben Sie die Möglichkeit, Eigenschaftsdefinitionen hinzuzufügen, zu entfernen oder umzubenennen. Sie können außerdem den Datentyp einer Eigenschaft ändern, z. B. von Zahl zu Zeichenfolge.

Eine Anleitung zum Erstellen von Katalogschemas finden Sie unter Erstellen eines Katalogschemas.

Kataloge

Ein Katalog ist eine Instanz eines Katalogschemas. Er enthält die Daten einzelner Produkte und die Kategorien, in denen diese organisiert sind. Zur Erstellung eines Katalogs können Sie das Katalog-Designer-Modul von Business Desk verwenden.

Ein Katalog besteht aus Kategorien, Produkten, Produktvarianten und Eigenschaften. Die folgende Abbildung zeigt Teile eines Beispielkatalogschemas und wie diese den Teilen eines Katalogs zugeordnet sind. Eigenschaften werden in Kategorie- und Produktdefinitionen verwendet. Die Kategoriedefinition "Abteilung" wird für die Kategorie "Fußballtrikots" verwendet. Die Produktdefinition "Fußballtrikot" wird für das Produkt "Ass-Fußballtrikot" verwendet.

Bestandteile eines Beispielkatalogschemas und eines Beispielkatalogs
Katalogschema
Katalogdaten
Kategoriedefinition
Kategorietyp 'DEPT'
Eigenschaft "Name"
Eigenschaft "Größe"
Eigenschaft "Farbe"
Eigenschaft "SKU"
Preis: 20
Eigenschaften
Produktdefinition
Fußballtrikot
Fußballtrikot-
kategorie
Ass-Fußballtrikotpreis: 20
Sportbekleidungs-
katalog
Größe: S
Größe: S
Größe: M
Größe: M
Größe: L
Farbe: Grün
SKU:115
Kategorie
Katalog
Eindeutige Produktfamilienkennung = Name
Eindeutige Produktvariantenkennung = SKU

Kategorien sind einzelne Instanzen einer Kategoriedefinition. Mit der Kategoriedefinition "Abteilung" lässt sich so z. B. die Kategorie "Fußballtrikots" erstellen.

Produkte sind einzelne Artikel in Ihrem Katalog. Ein Produkt wird über eine Kombination aus Eigenschaftsdefinitionen definiert. Beispiel: Es gibt die Produktdefinition "Fußballtrikots" mit den Eigenschaften "Name", "Farbe" und "Größe". Für jede Kombination dieser Eigenschaften, die in Ihrem Katalog enthalten sein soll, erstellen Sie nun ein Produkt.

Produkte können in Gruppen eng verwandter Artikel – Produktfamilien genannt – angeordnet werden. Eine Produktfamilie ist eine Gruppe von Produkten, die Produktvarianten enthält. Beispiel: Ein grünes Trikot in L mit der SKU (Stock Keeping Unit) 114 ist eine Produktvariante des Fußballtrikotprodukts, d. h., zusammen bilden Größe, Farbe und SKU eine Variante. Eine Produktvariante enthält immer einen eindeutigen Bezeichner (z. B. eine SKU) und einen Preis. Die einzelnen Produktvarianten basieren auf derselben Produktdefinition.

Anweisungen zum Erstellen eines Katalogs finden Sie unter Erstellen eines Katalogs.

Katalogorganisation: Hierarchien und Beziehungen

Sie können Kategoriehierarchien und -beziehungen zwischen Kategorien und Produkten erstellen, um die Produkte in Ihrem Katalog zu organisieren und um Ihren Benutzern die Suche nach den gewünschten Produkten zu erleichtern. Zum Beispiel können Sie eine übergeordnete Kategorie erstellen, die zwei verschiedene untergeordnete Kategorien enthält. Wenn Benutzer zur übergeordneten Kategorie navigieren, werden die untergeordneten Kategorien angezeigt. So gelangen Ihre Benutzer schneller zu den gewünschten Produkten.

Die folgende Abbildung zeigt, wie eine übergeordnete Kategorie eine Reihe von untergeordneten Kategorien besitzen kann und wie auch die einzelnen untergeordneten Kategorien wiederum übergeordnete Kategorien sein können.

Abbildung eines Beispielkatalogs
Katalogsammlung
Katalog B
Katalog C
Sportbekleidungs-
katalog
Hosen
Trikots
Fußballtrikots
Zweiteilige
Laufanzüge
Ass-Fußballtrikot
Ass-Fußballhosen
Zubehör

Größe:
Farbe:
SKU:

Größe:
Farbe:
SKU:

Größe:
Farbe:
SKU:

S
Schwarz
113

M
Blau
114

L
Grün
115

In der oben stehenden Abbildung hat der Sportbekleidungskatalog zwei Kategorien: "Trikots" und "Hosen". Die Trikotskategorie hat zwei untergeordnete Kategorien: "Fußballtrikots" und "Zweiteilige Laufanzüge". Über diesen Aufbau können Benutzer zwei Wege zur Kategorie "Zweiteilige Laufanzüge" nehmen. Sie können zu den Laufanzügen über die Trikots- oder über die Hosenkategorie navigieren. Die Abbildung zeigt auch eine Zubehörbeziehung zwischen Ass-Fußballtrikots und Ass-Fußballshorts. Falls sich Benutzer für die Trikots interessieren, haben sie möglicherweise auch Interesse an den Shorts.

Anweisungen zum Erstellen von Hierarchien finden Sie unter Erstellen von Kategoriehierarchien. Anweisungen zum Erstellen von Beziehungen finden Sie unter Erstellen von Kategorie- und Produktbeziehungen.

Eindeutige Bezeichner in Katalogen

Sowohl Produkte als auch Produktvarianten haben eindeutige Bezeichner. Diese eindeutigen Bezeichner bestehen entweder aus einer Text- oder Nummerneigenschaft. Bei einem Bücherkatalog beispielsweise wäre der Buchtitel der eindeutige Bezeichner des Buchs, und die ISBN-Nummer könnte der eindeutige Bezeichner für die Produktvariante sein. Für das Buch The Quest Ahead wären die gebundene Ausgabe, die Taschenbuchausgabe und die Audiobuchausgabe jeweils eine Variante. Diese drei Produktvarianten sind Teil der Produktfamilie "The Quest Ahead".

Das folgende Beispiel zeigt die Komponenten der Produktfamilie "The Quest Ahead".

Produktfamilie = The Quest Ahead
Eindeutige ID = Titel: The Quest Ahead

Produktvariante = The Quest Ahead (gebunden)
Eindeutige ID = ISBN: 1102334
Preis = 20,00

Produktvariante = The Quest Ahead (Taschenbuch)
Eindeutige ID = ISBN: 1102335
Preis = 10,00

Produktvariante = The Quest Ahead (Audiobuch)
Eindeutige ID = ISBN: 1102336
Preis = 15,00

Bei der Erstellung eines Katalogs bestimmen Sie, welche Eigenschaften als eindeutige Bezeichner für Produkte und Produktvarianten dienen sollen.

Basiskataloge, benutzerdefinierte Kataloge und Katalogsätze

Sie haben die Möglichkeit, zwei Arten von Katalogen zu erstellen. Außerdem können Sie zwei oder mehr Kataloge zu Katalogsätzen verbinden.

  • Basiskataloge enthalten Kategorien und Produkte, jedoch keine spezifischen Preisberechnungsregeln. Informationen über die Erstellung eines Basiskatalogs finden Sie unter Erstellen eines neuen Katalogs.

  • Benutzerdefinierte Kataloge werden von Basiskatalogen abgeleitet und enthalten spezifische Preisberechnungsregeln für die Produkte im Katalog. Die Preise in einem benutzerdefinierten Katalog setzen die Preise in einem Basiskatalog außer Kraft. Benutzerdefinierte Kataloge werden z. B. in einer Lieferantensite eingesetzt, um einer oder mehreren Firmen benutzerdefinierte Preise für bestimmte Produkte anzubieten. Für eine Handelssite können Sie benutzerdefinierte Kataloge z. B. dann einsetzen, wenn es für Kunden verschiedene Mitgliedsstufen gibt und Sie Produktpreise entsprechend der Mitgliedsstufe berechnen möchten. Sie können auch Benutzern, die oft in Ihrer Site einkaufen, andere Preise anzeigen. Informationen über die Erstellung eines benutzerdefinierten Katalogs finden Sie unter Erstellen eines benutzerdefinierten Katalogs.

Welche Kataloge Benutzer in Ihrer Site sehen, bestimmen Sie durch Erstellung von Katalogsätzen. Ein Katalogsatz ist eine Gruppe von einem oder mehreren Katalogen, die Sie verschiedenen Benutzern oder Organisationen zur Verfügung stellen. Beispiel: Sie erstellen einen benutzerdefinierten Katalog, kombinieren diesen mit einem allgemeinen Katalog und zeigen diesen Katalogsatz dann Mitgliedern einer bestimmten Organisation an. Die folgende Abbildung veranschaulicht, wie Mitglieder eines Fußballklubs einen Mannschaftsbekleidungskatalog mit Sonderpreisen anzeigen können.

Möglichkeiten, wie verschiedene Benutzer unterschiedliche Katalogsätze betrachten können
Sportbekleidungs-
katalog
Winterbekleidungs-
katalog
Sportbekleidungs-
katalog
Winterbekleidungs-
katalog
Mannschafts-
bekleidungskatalog (benutzerdefinierte Preisbildung auf Kategorieebene)
Fußballmitglieder-Katalogsätze
Mitglieder eines Fußballvereins
Alle Benutzer
Allgemeiner Katalogsatz

Informationen über die Erstellung von Katalogsätzen finden Sie unter Erstellen eines Katalogsatzes.

Im Benutzermodul von Business Desk bestimmen Sie, welchen Katalogsatz ein Benutzer anzeigen kann. Den Katalogsatznamen legen Sie beim Erstellen neuer Benutzer fest. Informationen über das Erstellen neuer Benutzer und das Festlegen des Katalogsatzes finden Sie unter Hinzufügen eines Benutzers.

Methoden zur Produktpreisberechnung

Zur Preisberechnung von Katalogprodukten haben Sie drei Möglichkeiten:

  • Direkte Preisberechnung. Hier definieren Sie den Preis eines Produkts in der Produktdefinition. Dazu haben Sie entweder beim Erstellen oder beim Bearbeiten des Produkts Gelegenheit. Anweisungen zur Anwendung der direkten Preisberechnung finden Sie unter Preisberechnung eines Produkts und Preisberechnung auf Produktvariantenebene.

  • Indirekte Preisberechnung. Hierbei wird der Preis über seine Zuordnung zu einer bestimmten Preiskategorie berechnet. Wenn ein Produkt einer Preiskategorie zugeordnet wird, wird der Produktpreis von dem Preis außer Kraft gesetzt, der in der Preiskategorie definiert ist. Die indirekte Preisberechnung wird für gewöhnlich verwendet, wenn Sie für eine Gruppe von Produkten denselben Preis anbieten möchten – z. B. für eine Sonderkategorie, in der alle Produkte nur DM 1,99 kosten. Anweisungen zur Anwendung der indirekten Preisberechnung finden Sie unter Preisberechnung von Produkten in einer Kategorie.
    • Benutzerdefinierte Preisberechnung. Hierbei weisen Sie einer Kategorie einen Preis zu. Damit erstellen Sie einen benutzerdefinierten Katalog. Es gibt drei Arten von benutzerdefinierter Preisberechnung, die Sie auf einen benutzerdefinierten Katalog anwenden können:
      • Prozentuale Anpassung. Gibt den Prozentsatz des Listenpreises an, der für ein Produkt berechnet werden soll. Beispiel: Wenn Sie einen Preisnachlass von 10 % anwenden möchten, geben Sie 90 ein. Dadurch geben Sie an, dass das Produkt für 90 % des Listenpreises verkauft wird.

      • Feste Anpassung. Legt den genauen Betrag fest, um den der Listenpreis reduziert bzw. erhöht wird. Beispiel: Für einen Preisnachlass von DM 2,00 geben Sie –2 ein, und für eine Preiserhöhung um DM 2,00 DM geben Sie 2 ein.

      • Preis festlegen. Gibt den genauen Preis eines Produkts an. Beispiel: Ein Produkt wird für genau DM 10,00 verkauft.

    Eine Anleitung zur benutzerdefinierten Preisberechnung finden Sie unter Preisberechnung eines benutzerdefinierten Katalogs.

Analysieren von Katalogverkäufen

In der folgenden Tabelle sind die in Commerce Server enthaltenen Berichte aufgeführt, die Sie zur Analyse von Katalogverkaufsdaten verwenden können.

Bericht | Beschreibung
Kundenverkäufe | Überprüfen Sie Kundendetails, Gesamtverkäufe und Gesamtbestellungen mit diesem Bericht. Mit diesen Informationen lassen sich zielgerichtete Onlinekampagnen (z. B. Direktsendungspromotions) für diese Kunden erstellen.
Warenkorbereignisse | Stellen Sie fest, wann Artikel zu Warenkörben hinzugefügt bzw. daraus entfernt wurden.
Käuferverhalten bis zum Kauf | Mit diesem Bericht können Sie Benutzerbesuchsmuster analysieren. Dieser Bericht liefert Ihnen Daten über die durchschnittliche Anzahl von Besuchen, Besuche pro Kauf, Gesamtverkäufe sowie über die Anzahl der Verkäufe und Besucher.
Produktverkäufe | Mit diesem Bericht können Sie Verkaufsvolumen und Einnahmen nach Datum analysieren. Der Bericht liefert Mengen- und Einnahmedaten.
Bestellereignisse | Analysieren Sie, wann Bestellungen in Ihrer Site aufgegeben werden. Dieser Bericht liefert Ihnen Informationen zu Datum, Uhrzeit, Ereignis und Benutzertyp.
Zusammenfassung der Kundenausgaben | Mit diesem Bericht können Sie Verkaufsvolumen und Einnahmen nach Kunde analysieren.

Eine Liste aller Commerce Server-Berichte finden Sie unter Commerce Server-Berichte. Informationen über die Ausführung von Berichten finden Sie unter Ausführen von Berichten.

Siehe auch

Importieren eines Katalogs

Erstellen eines Katalogschemas

Erstellen eines Katalogs

Preisberechnung von Produkten

Verwenden von BizTalk Server


Importieren eines Katalogs

Mithilfe des Katalog-Editor-Moduls werden Kataloge aus externen Quellen entweder im CSV- (trennzeichengetrennt) oder XML-(Extensible Markup Language)-Format importiert. Durch Importieren eines Katalogs können Sie einen vorhandenen Katalog aus einer anderen Quelle in die Datenbank integrieren.

Die für den Katalogimport benötigte Zeit hängt von der Größe des Katalogs ab. Da Kataloge recht groß sein können, werden die Import- und Exportprozesse asynchron abgewickelt, damit Sie Ihre Arbeit an anderen Teilen von Commerce Server Business Desk fortsetzen können, während diese Prozesse ausgeführt werden. Sie können Business Desk auch beenden und den Vorgang zu einem beliebigen späteren Zeitpunkt fortsetzen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Importieren einer XML-Katalogdatei

  • Importieren einer CSV-Katalogdatei


Importieren einer XML-Katalogdatei

Ein Commerce Server-Katalog im XML-(Extensible Markup Language)-Dateiformat enthält Daten über das Katalogschema sowie über Produkte. Sie können diese XML-Datei importieren und dann mithilfe des Katalog-Editors Änderungen an den Produktdaten vornehmen.

Sie haben die Möglichkeit, einen Katalog zu kopieren, der auf einem lokalen Computer gespeichert ist, und ihn in der CommerceCatalogs-Freigabe des Servers zu speichern. Kopieren Sie die Datei mit dem Windows-Explorer in die Freigabe. Wenn Sie diese Freigabe verwenden, müssen Sie während des Imports nicht den vollständigen Pfad und Dateinamen angeben.

Anmerkung

  • Setzen Sie sich mit Ihrem Systemadministrator in Verbindung, um sicherzustellen, dass der Freigabeordner CommerceCatalogs auf dem Server existiert.

So importieren Sie eine XML-Katalogdatei

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Klicken Sie im Bildschirm Kataloge auf der Symbolleiste auf Importieren. Wählen Sie dann in der Dropdownliste die Option XML-Datei importieren aus.

  3. Führen Sie im Dialogfeld XML-Katalog importieren folgende Schritte aus:
    Option/Funktion | Zweck
    Dateiname | Geben Sie den vollständigen Pfad und Dateinamen des zu importierenden Katalogs ein, oder geben Sie nur den Dateinamen ein, wenn die Datei im Freigabeordner CommerceCatalogs des Servers gespeichert ist. Geben Sie z. B. SportsCatalog.xml ein, wenn diese Datei im Freigabeordner CommerceCatalogs auf dem Server gespeichert ist. Wenn die Datei sich in einem anderen Ordner befindet, müssen Sie den vollständigen Pfad und Dateinamen des zu importierenden Katalogs eingeben, z. B. C:\CatalogsforBusiness\SportsCatalogs.xml.
    Vorhandene Daten im Katalog löschen | Wenn Sie einen Katalog importieren, der bereits in der Commerce Server-Datenbank vorhanden ist, aktivieren Sie dieses Kontrollkästchen, um die Daten des bestehenden Katalogs vor dem Import der neuen Version zu löschen.

  4. Klicken Sie auf OK.

Anmerkungen

  • Sie können keinen Katalog importieren, der eine Produktdefinition enthält, deren Eigenschaften sich von denen einer bestehenden Produktdefinition gleichen Namens unterscheiden.

  • Ihr Systemadministrator kann die Ereignisanzeige überprüfen, um den Status des Importvorgangs für Sie zu ermitteln. Wenn beim Importieren ein Problem aufgetreten ist, wird ein Fehler im Anwendungsprotokoll der Ereignisanzeige angezeigt. War der Import erfolgreich, wird der Katalog in der Liste des Katalog-Editors angezeigt.

Nachdem Sie nun eine Commerce Server-Katalogdatei im XML-Format importiert haben, können Sie den neuen Katalog in der Website veröffentlichen. Weitere Informationen über das Veröffentlichen von Änderungen in der Website finden Sie unter Aktualisieren und Veröffentlichen von Katalogen.

Siehe auch

Informationen zu Katalogen

Aktualisieren und Veröffentlichen eines Katalogs

Importieren einer CSV-Katalogdatei


Importieren einer CSV-Katalogdatei

Eine CSV- (trennzeichengetrennte) Katalogdatei enthält Produktdaten, aber kein Katalogschema. Die Produkte sind nicht in Kategorien organisiert, und alle Produkte in einer CSV-Katalogdatei sind einer einzigen Produktdefinition zugeordnet. Die CSV-Katalogdatei muss über einen Produktbezeichner und eine Preisspalte verfügen. CSV-Katalogdateien enthalten eigenständige Produkte und unterstützen keine Produktvarianten. Nur der Zeichenfolgedatentyp wird von einer CSV-Katalogdatei unterstützt. Wenden Sie sich an Ihren Systemadministrator, wenn Sie weitere Informationen über Zeichenfolgedatentypen benötigen.

Wenn eine CSV-Katalogdatei importiert wird, wird automatisch eine Produktdefinition basierend auf den in der Datei enthaltenen Spalten erstellt. Jedes Produkt wird als Instanz der automatisch erstellten Produktdefinition importiert. Die Produktdefinition erhält denselben Namen wie der zu importierende Katalog.

Nach dem Importieren einer CSV-Katalogdatei können Sie mithilfe des Katalog-Editors Kategorien erstellen und Produkte zu den Kategorien hinzufügen.

So importieren Sie eine CSV-Katalogdatei

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Klicken Sie im Bildschirm Kataloge auf der Symbolleiste auf Importieren. Wählen Sie dann in der Dropdownliste die Option CSV-Datei importieren aus.

  3. Führen Sie im Dialogfeld CSV-Katalog importieren folgende Schritte aus:
Option/Funktion | Zweck
Dateiname | Geben Sie den vollständigen Pfad und Dateinamen des zu importierenden Katalogs oder nur den Dateinamen ein, falls die Datei im freigegebenen CommerceCatalogs-Ordner des Servers gespeichert ist. Geben Sie beispielsweise SportsCatalog.csv ein, wenn diese Datei im freigegebenen CommerceCatalogs-Ordner auf dem Server gespeichert ist. Wenn die Datei sich in einem anderen Ordner befindet, müssen Sie den vollständigen Pfad und Dateinamen des zu importierenden Katalogs eingeben, z. B. C:\CatalogsforBusiness\SportsCatalogs.csv.
Katalogname | Geben Sie einen Namen für den importierten Katalog ein. Dieser Name wird auch für die Produktdefinition verwendet, die während des Imports erstellt wird.
Produktbezeichner | Geben Sie einen Namen für die Bezeichnerspalte ein.
Preisspalte | Geben Sie einen Namen für die Preisspalte ein.
Ale vorhandenen Daten im Katalog löschen | Aktivieren Sie dieses Kontrollkästchen, wenn Sie einen Katalog importieren, der bereits in der Commerce Server-Datenbank existiert. So werden die Daten des bestehenden Katalogs vor dem Import der neuen Version gelöscht.

Klicken Sie auf OK.

Anmerkungen

  • Durch den Import eines Katalogs, der denselben Namen wie eine Produktdefinition hat, wird die ursprüngliche Produktdefinition überschrieben.

  • Sie können keinen Katalog importieren, der eine Produktdefinition mit anderen Eigenschaften als eine bestehende Produktdefinition desselben Namens enthält.

  • Ihr Systemadministrator kann die Ereignisanzeige überprüfen, um den Status des Importvorgangs für Sie zu ermitteln. Wenn beim Importieren ein Problem aufgetreten ist, wird ein Fehler im Anwendungsprotokoll der Ereignisanzeige angezeigt. Wenn der Import erfolgreich war, wird der Katalog in der Liste des Katalog-Editors angezeigt.

Siehe auch

Informationen zu Katalogen

Importieren einer XML-Katalogdatei

Hinzufügen einer Kategorie zu einem Katalog

Hinzufügen eines Produkts zu einem Katalog


Erstellen eines Katalogschemas

Wenn Sie anstatt einen Katalog zu importieren lieber einen eigenen erstellen möchten, müssen Sie zuerst das Katalogschema erstellen. Nach Erstellung des Katalogschemas können Sie Kategorien, Produkte und Eigenschaften zum Katalog hinzufügen. Ein Beispiel für das Erstellen von Katalogschema und Katalog finden Sie unter Erstellen eines Katalogs im Commerce Server Business Desk-Lernprogramm.

Dieser Abschnitt beinhaltet folgende Themen:

  • Hinzufügen einer Eigenschaftsdefinition

  • Hinzufügen einer Produktdefinition

  • Hinzufügen einer Kategoriedefinition


Hinzufügen einer Eigenschaftsdefinition

Eine Eigenschaftsdefinition definiert ein einzelnes Merkmal einer Kategoriedefinition oder einer Produktdefinition im Katalog. Eine Eigenschaftsdefinition kann in mehreren Kategorie- und Produktdefinitionen verwendet sowie in mehreren Katalogen gemeinsam genutzt werden. Die Eigenschaftsdefinition "Beschreibung" kann z. B. in jeder Produktdefinition und Kategoriedefinition für das Hinzufügen von Kategorie- und Produktbeschreibungen verwendet werden.

Nach Erstellen der Eigenschaftsdefinition kann diese zu einer Kategoriedefinition oder einer Produktdefinition hinzugefügt werden.

So fügen Sie eine Produktdefinition hinzu

  1. Klicken Sie im Menü Kataloge auf Katalog-Designer.

  2. Klicken Sie im Bildschirm Katalog-Designer: Kategoriedefinitionen auf Ansicht. Wählen Sie dann aus der Dropdownliste die Option Eigenschaftsdefinition.

  3. Klicken Sie im Bildschirm Katalog-Designer: Eigenschaftsdefinitionen auf Hinzufügen. Wählen Sie dann den Eigenschaftstyp aus, mit dem Sie eine neue Eigenschaftsdefinition erstellen möchten.

  4. Die im Bildschirm Katalog-Designer: Eigenschaftsdefinitionen angezeigten Felder hängen vom Typ der ausgewählten Eigenschaftsdefinition ab.

  5. Führen Sie im Bildschirm Eigenschaftsdefinitionen folgende Schritte aus:
    Option/Funktion | Für Eigenschaftstyp | Zweck
    Name Alle Geben Sie einen Namen für die Eigenschaft ein.

    Anmerkung

    Nach Speicherung dieser Eigenschaft kann der Eigenschaftsname nicht mehr geändert werden.

    In der Site anzeigen | Alle | Aktivieren Sie dieses Kontrollkästchen, um die angegebene Eigenschaft den Benutzern der Website anzuzeigen. Aktivieren Sie dieses Kontrollkästchen nicht, wenn Sie einige Eigenschaften zur internen Verwendung privat halten möchten.
    Angezeigter Name | Alle | Geben Sie den Namen ein, der in der Website als Bezeichnung für diese Eigenschaft angezeigt werden soll. So könnte z. B. für eine Eigenschaft mit dem Namen "ShirtColor" die Bezeichnung "Farbe" angezeigt werden.
    Freitextsuche aktivieren Text, Multiplechoice Aktivieren Sie dieses Kontrollkästchen, damit eine Freitextsuche im Katalog auf die in dieser Eigenschaft gespeicherten Werte angewendet wird.

    Bei Aktivierung der Option Freitextsuche aktivieren wird die Eigenschaftsdefinition zum Volltextindex dieses Katalogs hinzugefügt. Sie müssen den Volltextindex aktualisieren, wenn Katalogelemente geändert werden, für die die Freitextsuche aktiviert ist. Informationen über die Aktualisierung des Volltextindex finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.
    Mittels Drilldownsuche auffindbar | Text, Zahl, Dezimal, Geld/Währung, Datum/Uhrzeit, Multiplechoice | Aktivieren Sie dieses Kontrollkästchen, um diese Eigenschaft in Drilldownsuchen zu verwenden. Eine Drilldownsuche ermöglicht dem Benutzer, die für ihn interessanten Werte auszuwählen, mit denen er bestimmte Produkte finden kann.
    Minimallänge | Text | Geben Sie eine Zahl ein, mit der die Minimallänge des Wertes für diesen Eigenschaftstyp definiert wird. Standardmäßig beträgt die Minimallänge null (0) Zeichen. Wenn eine Länge angegeben wird, die nicht null ist, wird diese Eigenschaft zu einer für die Produkt- oder Kategoriedefinition erforderlichen Eigenschaft.
    Maximallänge | Text | Geben Sie eine Zahl ein, mit der die Maximallänge des Wertes für diesen Eigenschaftstyp definiert wird. Die zulässige Maximallänge beträgt 3600 Zeichen.
    Minimalwert | Zahl, Dezimalzahl, Geld/Währung | Geben Sie eine Zahl ein, mit welcher der Minimalwert für diesen Eigenschaftstyp definiert wird. Standardmäßig ist der Minimalwert Null (0).
    Maximalwert | Zahl, Dezimalzahl, Geld/Währung | Geben Sie eine Zahl ein, mit welcher der Maximalwert für diesen Eigenschaftstyp definiert wird. Wenn Sie z. B. eine Eigenschaft für Geld hinzufügen möchten, geben Sie eine Zahl inklusive Dezimalkomma und Nachkommastellen ein, die den größten Geldwert darstellt, der auf ein Produkt angewendet werden kann.
    Frühestes Datum | Datum/Uhrzeit | Geben Sie das früheste Datum ein, an dem diese Eigenschaft gültig sein soll. Zum Beispiel der früheste Zeitpunkt, an dem ein Benutzer eine neue CD bestellen kann.
    Frühester Zeitpunkt | Datum/Uhrzeit | Geben Sie eine Uhrzeit im 24-Stunden-Format ein, um den frühesten Zeitpunkt anzugeben, an dem diese Eigenschaft gültig sein soll. Ein Beispiel sind Startzeiten.
    Letztes Datum | Datum/Uhrzeit | Geben Sie das späteste Datum ein, an dem diese Eigenschaft gültig sein soll. Zum Beispiel das letzte Datum, an dem ein Benutzer eine neue CD bestellen kann.
    Letzter Zeitpunkt | Datum/Uhrzeit | Geben Sie eine Uhrzeit im 24-Stunden-Format ein, um den letzten Zeitpunkt anzugeben, an dem diese Eigenschaft gültig sein soll. Ein Beispiel dafür sind Ablaufzeiten.
    Standardwert | Text, Zahl, Dezimal, Geld/Währung, Datum/Uhrzeit, Multiplechoice | Geben Sie den Standardwert für den Eigenschaftstyp ein. Das Format hängt vom hinzugefügten Eigenschaftstyp ab.
    Allen Produkttypen zuweisen | Alle | Aktivieren Sie dieses Kontrollkästchen, um die Eigenschaft allen Produkttypen zuzuweisen. Wird für allgemeine Produkteigenschaften wie Name, Beschreibung oder Gewicht verwendet.
    In Datawarehouse exportieren | Alle | Aktivieren Sie dieses Kontrollkästchen, um die Eigenschaft in das Datawarehouse zu exportieren. Durch den Export in Datawarehouse stehen die Daten für Berichte zur Verfügung.
    In Produktliste anzeigen | Alle | Aktivieren Sie dieses Kontrollkästchen, um diese Eigenschaft in der Produktliste anzuzeigen.

  6. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Eigenschaftsdefinition zu speichern und zum Bildschirm Katalog-Designer: Eigenschaftsdefinitionen zurückzukehren.

Sie können jetzt die Eigenschaftsdefinition zu einer Kategoriedefinition bzw. einer Produktdefinition hinzufügen.

Anmerkungen

  • Wenn Sie die Option Allen Produktdefinitionen zuweisen aktivieren, übernehmen alle später von Ihnen erstellten Definitionen automatisch diese Eigenschaft.

  • Die folgenden Sonderzeichen dürfen nicht im Namen einer Eigenschaftsdefinition verwendet werden: spitze Klammern <>, kaufmännisches Und-Zeichen & oder runde Klammern ().

  • Ein Eigenschaftsname darf nicht mit einer Zahl beginnen.

Siehe auch

Informationen zu Katalogen

Hinzufügen einer Produktdefinition

Hinzufügen einer Kategoriedefinition


Hinzufügen einer Produktdefinition

Alle Produkte im Katalog sind Instanzen von Produktdefinitionen. Eine Produktdefinition gibt die Eigenschaften eines bestimmten Produkttyps an. Ein Onlinemusikhändler hat z. B. eine Produktdefinition für den Produkttyp "CDs" mit den Eigenschaften Künstler, Titel und Listenpreis.

Nach Erstellen der Produktdefinition können Instanzen dieser Produktdefinition zu einem Katalog hinzugefügt werden.

Bei der nachfolgenden Anleitung wird davon ausgegangen, dass Sie die Eigenschaftsdefinitionen bereits erstellt haben, die Sie zu Ihrer Produktdefinition hinzufügen möchten. Sie können jedoch auch während des Hinzufügens einer Produktdefinition Eigenschaftsdefinitionen erstellen. Weitere Informationen über das Erstellen von Eigenschaftsdefinitionen finden Sie unter Hinzufügen einer Eigenschaftsdefinition.

So fügen Sie eine Produktdefinition hinzu

  1. Klicken Sie im Menü Kataloge auf Katalog-Designer.

  2. Klicken Sie im Bildschirm Katalog-Designer: Kategoriedefinitionen auf der Symbolleiste auf Ansicht. Wählen Sie dann aus der Dropdownliste die Option Produktdefinitionen.

  3. Klicken Sie im Bildschirm Katalog-Designer: Produktdefinitionen auf der Symbolleiste auf Hinzufügen.

  4. Geben Sie im Bildschirm Produktdefinition: Neu im Feld Name den Namen für die neue Produktdefinition ein.

  5. Wählen Sie im Bereich Produkteigenschaften aus der Liste Verfügbare Eigenschaften die Eigenschaft(en) aus, die für die neue Produktdefinition gelten soll(en), und klicken Sie dann auf Hinzufügen.

    Die ausgewählten Eigenschaften werden im Bereich Produkteigenschaften im Feld Zugewiesene Eigenschaften angezeigt.

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

    Anmerkung

    • Für einige Eigenschaften kann das Attribut Allen zuweisen eingestellt sein. Das bedeutet, dass jede Produktdefinition automatisch die entsprechende Eigenschaft enthält. Die so bereits vorgenommene Zuweisung ist gelb hervorgehoben. Wenn Sie versuchen, eine dieser Eigenschaften aus der Produktdefinition zu entfernen, wird sie beim Speichern der Produkteigenschaften automatisch wieder zum Feld Zugewiesene Eigenschaften hinzugefügt. Die Eigenschaft Listenpreis ist eine integrierte Eigenschaft, d. h., alle Produkte besitzen diese.
  6. Wenn das neue Produkt Varianten hat, markieren Sie im Bereich Produktvarianteneigenschaften aus der Liste Verfügbare Eigenschaften die gewünschten Eigenschaften. Klicken Sie dann auf Hinzufügen.

    Die ausgewählten Eigenschaften werden im Feld Zugewiesene Eigenschaften angezeigt.

    Anmerkung

    • Im Feld Zugewiesene Eigenschaften werden die Eigenschaften in derselben Reihenfolge wie im Katalog angezeigt. Sie können die Reihenfolge der Eigenschaften anpassen, indem Sie im Feld die zu verschiebende Eigenschaft markieren und dann auf Nach oben oder Nach unten klicken, bis die Eigenschaft an der gewünschten Stelle steht.
  7. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Produktdefinition zu speichern und zum Bildschirm Katalog-Designer: Produktdefinition zurückzukehren.

Nach Erstellen der Eigenschafts-, Produkt- und Kategoriedefinitionen können Sie einen Katalog erstellen und diesem Kategorien und Produkte hinzufügen. Anweisungen dazu finden Sie unter Erstellen eines Katalogs.

Siehe auch

Informationen zu Katalogen

Hinzufügen einer Eigenschaftsdefinition

Hinzufügen einer Kategoriedefinition

Erstellen eines Katalogs


Hinzufügen einer Kategoriedefinition

Eine Kategorie kann über eine oder mehrere Eigenschaften verfügen, wie z. B. Name, Beschreibung und Abbildung. Diese Eigenschaften werden in der Kategoriedefinition festgelegt.

Commerce Server stellt eine Kategoriedefinition mit dem Namen Abteilung zur Verfügung, die Sie bearbeiten oder auch unverändert übernehmen können. Sie können auch andere Kategoriedefinitionen erstellen. Die Abteilungskategoriedefinition enthält die Eigenschaften Beschreibung, image_filename, image_width und image_height. Sie können ausschließlich die Abteilungskategoriedefinition verwenden, oder Sie können deren Eigenschaften an Ihre geschäftlichen Bedürfnisse anpassen. Sie haben die Möglichkeit, verschiedene Arten von Kategorien zu erstellen. Wenn Sie z. B. Informationen über Hersteller speichern und Produkte nach dem Hersteller organisieren möchten, können Sie eine Kategoriedefinition Hersteller erstellen, die verschiedene Eigenschaften wie Herstellername, Land, Adresse und Kontaktperson enthält.

Nach dem Erstellen einer Kategoriedefinition können Sie Kategorien auf der Basis dieser Kategoriedefinition erstellen.

Bei der nachfolgenden Anleitung wird davon ausgegangen, dass Sie die Eigenschaftsdefinitionen bereits erstellt haben, die Sie zu Ihrer Kategoriedefinition hinzufügen möchten. Sie können jedoch auch während des Hinzufügens einer Kategoriedefinition Eigenschaftsdefinitionen erstellen. Weitere Informationen über das Erstellen von Eigenschaftsdefinitionen finden Sie unter Hinzufügen einer Produktdefinition.

So fügen Sie eine Kategoriedefinition hinzu

  1. Klicken Sie im Menü Kataloge auf Katalog-Designer.

  2. Klicken Sie im Bildschirm Katalog-Designer: Kategoriedefinitionen auf der Symbolleiste auf Hinzufügen.

  3. Klicken Sie im Bildschirm Katalog-Designer: Kategoriedefinitionen auf der Symbolleiste auf Hinzufügen.

  4. Geben Sie im Bildschirm Kategoriedefinition: Neu im Feld Name den Namen für die neue Kategoriedefinition ein.

  5. Wählen Sie im Bereich Kategorieeigenschaften aus der Liste Verfügbare Eigenschaften die Eigenschaften aus, die für die neue Kategoriedefinition gelten sollen, und klicken Sie dann auf Hinzufügen.

    Die ausgewählten Eigenschaften werden im Bereich Kategorieeigenschaften im Feld Zugewiesene Eigenschaften angezeigt.

  6. Sie können die Reihenfolge der Eigenschaften anpassen, indem Sie die zu verschiebende Eigenschaft markieren und dann auf Nach oben oder Nach unten klicken, bis die Eigenschaft sich auf der gewünschten Position befindet.

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  7. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die neue Eigenschaftsdefinition zu speichern und zum Bildschirm Katalog-Designer: Kategoriedefinitionen zurückzukehren.

Nach Erstellen der Eigenschaftsdefinitionen, Produktdefinitionen und Kategoriedefinitionen können Sie einen Katalog erstellen und diesem Kategorien und Produkte hinzufügen. Anweisungen finden Sie unter Erstellen eines Katalogs.

Anmerkung

  • Im Feld Zugewiesene Eigenschaften werden die Eigenschaften in derselben Reihenfolge wie im Katalog angezeigt.

Siehe auch

Informationen zu Katalogen

Erstellen eines Katalogs


Erstellen eines Katalogs

Ein Katalog wird mithilfe des Katalog-Editors erstellt. Wenn kein Katalog für den Import zur Verfügung steht, müssen Sie ein Katalogschema erstellen. Falls das vorhandene Katalogschema nicht ausreicht, können Sie die nötigen Änderungen an den vorhandenen Eigenschafts-, Kategorie- und Produktdefinitionen vor oder nach Erstellen eines neuen Katalogs vornehmen.

Vorsicht

  • Wenn Sie am Katalogschema Änderungen vornehmen, werden diese auch in den vorhandenen Katalogen wiedergegeben, die das entsprechende Schema verwenden. Wenn Sie nicht möchten, dass diese Änderungen auf Ihre bestehenden Kataloge übertragen werden, müssen Sie für den neuen Katalog eine neue Eigenschafts-, Kategorie- oder Produktdefinition erstellen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Erstellen eines neuen Katalogs

  • Erstellen eines benutzerdefinierten Katalogs

  • Erstellen eines Katalogsatzes

  • Hinzufügen einer Kategorie zu einem Katalog

  • Hinzufügen eines Produkts zu einem Katalog

  • Hinzufügen von Produktvarianten zu einem Produkt


Erstellen eines neuen Katalogs

Nach der Erstellung des Katalogschemas (Eigenschafts-, Produkt- und Kategoriedefinitionen) durch Sie oder Ihren Siteentwickler können Sie mithilfe dieses Katalogschemas einen neuen Katalog erstellen.

Beim Erstellen eines neuen Katalogs geben Sie die Währung an, die für Produktpreise verwendet werden soll (z. B. DM), die eindeutige ID, mit der die Produkte im Katalog gekennzeichnet werden (z. B. Produktname), und die eindeutige ID, mit der die Produktvarianten (z. B. SKU) gekennzeichnet werden. Die Werte für diese Eigenschaften hängen vom jeweiligen Katalogschema ab. Im Katalogschema würden Sie z. B. angegeben, dass die eindeutige ID der Produktname sein soll.

Bei der folgenden Anleitung wird davon ausgegangen, dass Ihr Siteentwickler oder Sie das Katalogschema bereits erstellt haben. Wenn dies noch nicht der Fall ist, lesen Sie die Anleitung unter Erstellen eines Katalogschemas.

Anmerkung

  • Wenn Sie diesen Katalog mit einem Hersteller über Microsoft BizTalk Server austauschen, dann müssen Sie die Hersteller-ID für den Katalog angeben.

So erstellen Sie einen neuen Katalog

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Klicken Sie im Bildschirm Kataloge auf der Symbolleiste auf Hinzufügen. Wählen Sie anschließend in der Dropdownliste die Option Neuer Katalog.

  3. Führen Sie im Bildschirm Katalog: Neu im Bereich Katalogeigenschaften die folgenden Schritte durch:
    Option/Funktion | Zweck
    Name Geben Sie einen Namen für den neuen Katalog ein. Dieser Name muss eindeutig sein; er darf nicht mit dem Namen eines bestehenden Katalogs in der Datenbank übereinstimmen. Wenn Sie einen Namen verwenden, der bereits in der Datenbank vorhanden ist, führt das Speichern zu einer Fehlermeldung.

    Anmerkung

    • Wenn Sie zwei oder mehr Commerce Server-Sites mit getrennten Datenbanken haben, in denen Katalogdaten gespeichert sind, und diese dasselbe Datawarehouse nutzen, geben Sie diesen Katalogen auf den unterschiedlichen Sites nicht denselben Namen. Wenn diese Kataloge denselben Namen haben, werden sie von Datawarehouse als ein Katalog behandelt.
    Anfangsdatum | Geben Sie das Anfangsdatums für den Katalog ein. Dieses Datum hat keine Auswirkung auf Ihre Website. Wenn Sie jedoch mit einem Handelspartner Kataloge austauschen, zeigt dieses Datum dem Handelspartner an, ab wann der Katalog gültig ist.
    Beendigungsdatum | Geben Sie das Beendigungsdatums für den Katalog ein. Ihre Handelspartner erkennen daran, wie lange der Katalog gültig ist. Standardmäßig ist dies das aktuelle Tagesdatum plus drei Monate. Wenn Sie z. B. einen Katalog im Dezember erstellen, dann liegt das Beendigungsdatum im März.
    Währung | Geben Sie das bis zu drei Zeichen lagen Währungskürzel (z. B. USD, DM oder FF) ein. USD ist vorgegeben.
    Gewichtseinheit | Zeigt die Gewichtseinheit für die Produkte in diesem Katalog an. Dieser Wert wird während der Commerce Server-Konfiguration vom Systemadministrator festgelegt. Wenden Sie sich an Ihren Systemadministrator, wenn dieser Wert geändert werden muss.
    Eindeutige Produkt-ID | Wählen Sie einen eindeutigen Bezeichner in der Dropdownliste aus. Wenn Ihre Produkte keine Varianten haben, kann SKU die eindeutige Produkt-ID sein. Wenn es Produktvarianten gibt, kann dies Name oder Titel sein. Die eindeutige Produkt-ID für die Variante wäre dann die SKU. Die Maximallänge der eindeutigen Produkt-ID beträgt 256 Zeichen.
    Eindeutige Produktvarianten-ID | Wählen Sie einen eindeutigen Bezeichner für die Produktvarianten in der Dropdownliste aus. Das könnte beispielsweise die SKU oder ein anderer, eindeutiger Bezeichner sein. Wenn die Produkte keine Varianten haben, wählen Sie hier dieselbe Eigenschaft aus wie im Feld Eindeutige Produkt-ID. Die Maximallänge der eindeutigen Produktvarianten-ID beträgt 256 Zeichen.
    Hersteller-ID Diese Eigenschaft wird nur in Verbindung mit BizTalk Server verwendet. Klicken Sie auf die Auslassungsschaltfläche [...], um eine Liste von Herstellern anzuzeigen, die im BizDesk Server-Messaging-Manager identifiziert worden sind. Wählen Sie die entsprechende ID für den Hersteller aus, der die Produkte in diesem Katalog liefert. Wenn Sie mithilfe von BizDesk Server Aufträge an Handelspartner verschicken, müssen Sie dieses Feld ausfüllen.

    Commerce Server aktualisiert die Herstellerliste automatisch jedes Mal dann, wenn der Systemadministrator über BizTalk Server einen neuen Vertrag mit einem Hersteller erstellt. Wenn Sie die Hersteller-ID des Herstellers, den Sie auswählen möchten, nicht finden können, setzen Sie sich mit Ihrem Systemadministrator in Verbindung, um einen Vertrag mit diesem Hersteller zu schließen.

    Weitere Informationen über BizTalk Server und BizTalk-Messaging-Manager erhalten Sie über Ihren Systemadministrator.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den Katalog zu speichern und zum Bildschirm Kataloge zurückzukehren.

Nachdem Sie einen Katalog erstellt haben, können Sie diesem nun Produkte und Kategorien hinzufügen. Weitere Informationen finden Sie unter Hinzufügen einer Kategorie zu einem Katalog und Hinzufügen eines Produkts zu einem Katalog.

Siehe auch

Informationen zu Katalogen

Erstellen eines Katalogschemas

Hinzufügen eines Produkts zu einem Katalog

Hinzufügen einer Kategorie zu einem Katalog

Verwenden von BizTalk Server


Erstellen eines benutzerdefinierten Katalogs

Ein benutzerdefinierter Katalog wird mithilfe des Katalog-Editor-Moduls erstellt. Die Erstellung eines benutzerdefinierten Katalogs ist dann nötig, wenn Sie benutzerdefinierte Preise für bestimmte Kategorien im Katalog festlegen möchten. Wenn Sie z. B. Preisnachlässe auf Artikel für eine bestimmte Benutzergruppe (z. B. bevorzugte Mitglieder) gewähren, den Hauptkatalog aber intakt lassen möchten, müssen Sie einen benutzerdefinierten Katalog erstellen. Durch die Verwendung von benutzerdefinierten Katalogen können Sie Produkt- und Kategorieinformationen an einer Stelle lassen und die Produkte verschiedenen Benutzern zu verschiedenen Preisen anbieten.

Nach Erstellen eines benutzerdefinierten Katalogs können Sie diesen mithilfe des Katalogsätze-Moduls zu einem oder mehreren Katalogsätzen hinzufügen. Mit dem Benutzermodul lässt sich dann der Katalogsatz denjenigen Benutzern bzw. Organisationen zuordnen, für die der jeweilige Katalog angezeigt werden soll.

  • Anmerkung

  • Kategorien und Produkte lassen sich nicht aus einem benutzerdefinierten Katalog entfernen bzw. zu einem solchen hinzufügen.

So erstellen Sie einen neuen benutzerdefinierten Katalog

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Klicken Sie im Bildschirm Kataloge auf der Symbolleiste auf Hinzufügen. Wählen Sie anschließend in der Dropdownliste die Option Neuer benutzerdefinierter Katalog.

  3. Wählen Sie im Dialogfeld Neuer benutzerdefinierter Katalog in der Dropdownliste den Katalog aus, aus dem Sie den benutzerdefinierten Katalog erstellen möchten, und klicken Sie dann auf OK.

  4. Führen Sie im Bildschirm Benutzerdefinierter Katalog – Neu im Bereich Eigenschaften benutzerdefinierter Kataloge die folgenden Schritte durch:
    Option/Funktion | Zweck
    Name | Geben Sie einen Namen für den benutzerdefinierten Katalog ein.
    Kategorien | Wählen Sie die Kategorie aus, der ein benutzerdefinierter Preis zugewiesen werden soll.
    Benutzerdefinierte Preise verwenden | Aktivieren Sie dieses Kontrollkästchen, um die benutzerdefinierte Preisberechnung zu ermöglichen.
    Preisgestaltungsmethode Wählen Sie eine der drei Preisgestaltungsmethoden aus:

    Prozentuale Anpassung. Gibt den Prozentsatz des Listenpreises an, der für ein Produkt berechnet werden soll.

    Feste Anpassung. Der Betrag, um den der Listenpreis erhöht oder verringert wird.

    Preis festlegen. Gibt den genauen Preis eines Produkts an.

    Weitere Informationen über diese Methoden finden Sie unter Preisberechnung von Produkten.
    Wert | Geben Sie einen Wert ein. Je nach der ausgewählten Preisgestaltungsmethode legt der Wert den Prozentsatz, die Anpassung oder den Festpreis fest, der statt des Listenpreises gelten soll. Wenn Sie z. B. Prozentuale Anpassung gewählt haben und einen Preisnachlass von 10 % einrichten möchten, geben Sie 90 ein. Die Artikel im benutzerdefinierten Katalog werden dann zu 90 % des Listenpreises verkauft.

  5. Klicken Sie auf Speichern und zurück, um den benutzerdefinierten Katalog zu speichern und zum Bildschirm Katalog zurückzukehren.

  6. Im Bildschirm Katalog-Editor wird der benutzerdefinierte Katalog unter dem als Basiskatalog verwendeten Katalog aufgeführt. Klicken Sie auf den Pfeil links vom Basiskatalog, um den benutzerdefinierten Katalog anzuzeigen.

Nachdem Sie nun einen benutzerdefinierten Katalog erstellt haben, können Sie diesen zu einem oder mehreren Katalogsätzen hinzufügen. Informationen über das Hinzufügen von Katalogen zu Katalogsätzen finden Sie unter Erstellen eines Katalogsatzes. Informationen über das Zuordnen eines Benutzers zu einem Katalogsatz finden Sie unter Hinzufügen eines Benutzers.

Siehe auch

Informationen zu Katalogen

Erstellen eines Katalogsatzes

Hinzufügen eines Benutzers

Preisberechnung von Produkten

Preisberechnung eines benutzerdefinierten Katalogs


Erstellen eines Katalogsatzes

Katalogsätze werden zum Erstellen bestimmter Kataloggruppen verwendet und erhalten einen eindeutigen Namen. Wenn Sie beispielsweise ein Bonusprogramm für Stammkunden haben und den Mitgliedern dieses Programms Preisnachlässe oder Kaufanreize geben, die andere Benutzer nicht erhalten, können Sie einen Katalogsatz mit den entsprechenden benutzerdefinierten Katalogen erstellen und nur den Mitgliedern des Programms den Zugriff auf diese Kataloge gestatten. Wenn gewisse Produkte unterschiedlichen Katalogen zugeordnet sind, zu denen einige wenige ausgewählte Benutzer Zugriff haben sollen, lässt sich dieser Katalog zum Teil eines Sonderkatalogs machen, auf den nur diese Benutzer zugreifen können. Im Benutzermodul können Sie bestimmten Benutzern Zugriff auf die Katalogsätze gewähren.

Hierzu ist keine Erstellung von Katalogsätzen erforderlich. Die Einzelkataloge werden von Katalogsätzen nicht verändert.

So erstellen Sie einen Katalogsatz

  1. Klicken Sie im Menü Kataloge auf Katalogsätze. Klicken Sie dann auf der Symbolleiste auf Hinzufügen.

  2. Führen Sie im Bildschirm Neue Katalogsätze folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie einen Namen für den Katalogsatz ein.
    Beschreibung | Geben Sie eine Beschreibung für den Katalogsatz ein.
    Alle Kataloge hinzufügen | Aktivieren Sie dieses Kontrollkästchen, damit dieser Katalogsatz alle Kataloge repräsentiert, selbst wenn neue Kataloge hinzugefügt werden. Dieses Kontrollkästchen darf nicht aktiviert werden, wenn für diesen Katalogsatz Einzelkataloge angegeben werden sollen.
    Verfügbare Kataloge Markieren Sie einzelne Kataloge, die zu diesem Katalogsatz hinzugefügt werden sollen, und klicken Sie dann auf Hinzufügen.

    Die ausgewählten Kataloge werden vom Feld Verfügbare Kataloge in das Feld Zugewiesene Kataloge verschoben.
    Zugewiesene Kataloge | Zeigt die Kataloge an, die zum entsprechenden Katalogsatz hinzugefügt worden sind. Wenn Sie einen Katalog aus dem Feld Zugewiesene Kataloge entfernen, wird er automatisch in das Feld Verfügbare Kataloge verschoben.

  3. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den Katalogsatz zu speichern und zum Bildschirm Katalogsätze zurückzukehren.

Nachdem Sie nun einen Katalogsatz erstellt haben, können Sie die Benutzer hinzufügen, die Zugriff auf den Katalogsatz haben sollen. Informationen über das Hinzufügen von Benutzern finden Sie unter Hinzufügen eines Benutzers.

Siehe auch

Informationen zu Katalogen

Hinzufügen eines Benutzers

Ändern eines Katalogsatzes

Löschen eines Katalogsatzes


Hinzufügen einer Kategorie zu einem Katalog

Eine Kategorie wird mithilfe des Katalog-Editor-Moduls zu einem Katalog hinzugefügt. Beim Hinzufügen von Produkten zu einem Katalog werden Sie möglicherweise feststellen, dass Sie eine neue Kategorie erstellen müssen.

Kategorienamen müssen in den einzelnen Katalogen eindeutig sein. Falls Sie einen Katalog im CSV-Dateiformat importiert haben, müssen Sie die Kategorien für diesen Katalog erstellen und ihnen dann Produkte zuordnen.

Anmerkung

  • Zu einem benutzerdefinierten Katalog können keine neuen Kategorien hinzugefügt werden.

So fügen Sie eine neue Kategorie hinzu

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, für den Sie eine neue Kategorie erstellen möchten. Klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Klicken Sie im Bildschirm Katalog - Katalogname im Bereich Kategorien auf Neu.

  4. Markieren Sie im Dialogfeld Neue Kategorie die Kategoriedefinition, die als Basis verwendet werden soll, und klicken Sie dann auf Weiter.

  5. Führen Sie dann im Bildschirm Katalog-Editor - Katalogname - Neue Kategorie folgende Schritte aus:
    Option/Funktion | Zweck
    Name Geben Sie einen Namens für die neue Kategorie ein. Die maximale Länge beträgt 100 Zeichen.

    Anmerkung

    Verwenden Sie im Feld Name keine spitzen Klammern < > oder runden Klammern ().

    Preis | Geben Sie einen Preis für die Kategorie ein. Aktivieren Sie dieses Kontrollkästchen, um allen Produkten in dieser Kategorie Preise zuzuweisen. Informationen über die direkte Zuweisung von Preisen zu Produkt oder Produktvarianten finden Sie unter Preisberechnung von Produkten.
    Suche aktivieren | Aktivieren Sie dieses Kontrollkästchen, um die jeweilige Kategorie zum Ausgangspunkt für eine Drilldownsuche zu machen. Wenn dieses Kontrollkästchen aktiviert ist, wird die Kategorie in der Website auf der Seite Erweiterte Suche aufgeführt.

    Anmerkung

    • Auf dem Bildschirm können je nach ausgewählter Kategoriedefinition auch andere Felder angezeigt werden.
  6. Klicken Sie auf der Symbolleiste auf Speichern und neue Kategorie erstellen, um die neue Kategorie zu speichern und eine weitere zu erstellen.

Anmerkung

  • In diesem Bildschirm können Sie auch übergeordnete und untergeordnete Kategorien zuweisen sowie Kategoriebeziehungen festlegen. Weitere Informationen finden Sie unter Erstellen von Kategorie- und Produktbeziehungen und Erstellen von Kategoriehierarchien.

Siehe auch

Informationen zu Katalogen

Aktualisieren und Veröffentlichen eines Katalogs

Preisberechnung von Produkten

Hinzufügen einer Kategoriedefinition


Hinzufügen eines Produkts zu einem Katalog

Neue Produkte werden zu bestehenden Katalogen mithilfe des Katalog-Editors hinzugefügt. Zu einem benutzerdefinierten Katalog lassen sich jedoch keine neuen Produkte hinzufügen.

Bei der nachfolgenden Anleitung wird davon ausgegangen, dass Sie oder ein Siteentwickler die Produktdefinitionen bereits erstellt haben, die zum Katalog hinzugefügt werden sollen. Außerdem wird angenommen, dass Sie bereits einen Katalog erstellt und eine oder mehrere Kategorien hinzugefügt haben. Ist dies nicht der Fall, lesen Sie die Themen Hinzufügen einer Produktdefinition, Erstellen eines Katalogs und Hinzufügen einer Kategorie zu einem Katalog.

So fügen Sie ein neues Produkt zum Katalog hinzu

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, zu dem Sie ein neues Produkt hinzufügen möchten. Klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Klicken Sie im Bildschirm Katalog - Katalogname im Bereich Produkte auf Neu.

  4. Wählen Sie im Dialogfeld Neues Produkt die gewünschte Produktdefinitionen für das Produkt. Klicken Sie dann OK.

    Anmerkung

    • Die für Produkteigenschaften und Produktvarianten verfügbaren Optionen hängen von den festgelegten Kriterien und dem Typ des hinzugefügten Produkts ab.
  5. Geben Sie im Bildschirm Katalog-Editor - Katalogname – Neues Produkt im Bereich Produkteigenschaften Informationen zu den verfügbaren Eigenschaften ein.

  6. Klicken Sie im Bildschirm Katalog-Editor - Katalogname – Neues Produkt im Bereich Produktvarianten auf Neu, und geben Sie dann die Informationen der verfügbaren Eigenschaften ein.

  7. Führen Sie im Bildschirm Katalog-Editor - Katalogname – Neues Produkt im Bereich Zugewiesene Kategorien folgende Schritte aus:
    Option/Funktion Zweck
    Verfügbare Kategorien Markieren Sie die Kategorie, der Sie die Produkte zuweisen möchten, und klicken Sie dann auf Hinzufügen.

    Möchten Sie eine bereits zugewiesene Kategorie entfernen, klicken Sie auf Entfernen.
    Zugewiesene Kategorien Markieren Sie die zugewiesene Kategorie, und klicken Sie dann auf Bearbeiten, wenn Sie die Kategorie bearbeiten möchten.

    Klicken Sie auf Neu, um eine neue Kategorie zu erstellen.
    Preiskategorie Wählen Sie die Kategorie aus, deren Preis auf das Produkt angewendet wird. Klicken Sie dann auf Preis festlegen.

    Klicken Sie auf Preis löschen, um den Preis für die ausgewählte Kategorie zu entfernen.

  8. Klicken Sie im Bereich Produktfamilienbeziehungen auf Neu, und führen Sie anschließend folgende Schritte aus:

    Option/Funktion | Zweck
    Beziehung | Geben Sie einen Namen für die Beziehung ein.
    Artikel | Klicken Sie auf die Auslassungsschaltfläche […], um das Dialogfeld Produktauswahl zu öffnen.

    Anmerkung

    • Wenn Sie ein Produkt mit Produktvarianten erstellen, wird der hier festgelegte Preis als Standardpreis für alle hinzugefügten Varianten verwendet. Bei der Erstellung einer Produktvariante können Sie jedoch einen anderen Preis angeben. Informationen über das Hinzufügen von Produktvarianten finden Sie unter Hinzufügen von Produktvarianten zu einem Produkt. Informationen über die Preisberechnung von Produkten finden Sie unter Preisberechnung von Produkten.
  9. Klicken Sie auf der Symbolleiste auf Speichern und neues Produkt erstellen, um das Produkt zu speichern und ein weiteres hinzuzufügen.

Siehe auch

Informationen zu Katalogen

Erstellen von Kategorie- und Produktbeziehungen

Anpassen der Versandarten


Hinzufügen von Produktvarianten zu einem Produkt

Sie haben die Möglichkeit, den Produkten in Ihrem Katalog Produktvarianten zuzuweisen. So könnte es z. B. die Produktvarianten "Farbe" und "Größe" für ein T-Shirt geben. Ein blaues T-Shirt in L wäre eine Variante der T-Shirt-Produktfamilie. Ein blaues T-Shirt in S wäre eine weitere Variante.

Jede Produktvariante muss über eine eindeutige ID verfügen. Informationen über das Hinzufügen einer eindeutigen ID zu einer Produktvariante finden Sie unter Erstellen eines Katalogs.

So fügen Sie Produktvarianten zu einem Produkt hinzu

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, zu dem Sie Produktvarianten hinzufügen möchten. Klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Produkte in der Produkttabelle das Produkt aus, zu dem Sie Produktvarianten hinzufügen möchten. Klicken Sie anschließend auf Bearbeiten.

  4. Klicken Sie im Bildschirm Katalog - Katalogname – Produkt im Bereich Produktvarianten auf Neu.

  5. Geben Sie im Bereich Produktvarianten im Feld Variantenpreis den Produktpreis ein.

  6. Geben Sie in den Feldern die Eigenschaften einschließlich eines eindeutigen Wertes für die eindeutige ID-Eigenschaft (z. B. SKU) ein, und klicken Sie dann auf Fertig.

    Die Produktvarianteninformationen erscheinen in der Tabelle Produktvarianten.

  7. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Änderungen zu speichern und zum Bildschirm Katalog zurückzukehren.

Siehe auch

Informationen zu Katalogen

So erstellen Sie eine Produktbeziehung

Preisberechnung von Produkten


Preisberechnung von Produkten

Mithilfe des Katalog-Editor-Moduls wird die Preisberechnung für die Produkte Ihres Katalogs durchgeführt. Zur Preisberechnung von Katalogprodukten haben Sie drei Möglichkeiten: direkte Preisberechnung, indirekte Preisberechnung, und benutzerdefinierte Preisberechnung.

  • Direkte Preisberechnung. Hier definieren Sie den Preis eines Produkts im Produkt selbst. Dazu haben Sie entweder beim Erstellen oder beim Bearbeiten des Produkts Gelegenheit. Informationen über die direkte Preisberechnung von Produkten finden Sie unter Preisberechnung eines Produkts.

  • Indirekte Preisberechnung. Hierbei wird der Preis über seine Zuordnung zu einer bestimmten Preiskategorie berechnet. Wenn ein Produkt einer Preiskategorie zugeordnet wird, wird der Produktpreis durch den Preis ersetzt, der in dieser Kategorie definiert ist. Der ursprüngliche Preis des Produkts wird wiederhergestellt, wenn die Zuordnung zu dieser bestimmten Preiskategorie aufgehoben wird. Die indirekte Preisberechnung wird für gewöhnlich verwendet, wenn Sie für eine Gruppe von Produkten denselben Preis anbieten möchten – z. B. für eine Sonderkategorie, in der alle Produkte nur DM 1,99 kosten. Informationen zur indirekten Preisberechnung von Produkten finden Sie unter Preisberechnung auf Produktvariantenebene und Preisberechnung von Produkten in einer Kategorie.

  • Benutzerdefinierte Preisberechnung. In einem benutzerdefinierten Katalog können Sie einen Preismodifikator auf eine Kategorie anwenden. Es gibt drei Arten von benutzerdefinierter Preisberechnung, die Sie auf Kategorien eines benutzerdefinierten Katalogs anwenden können:
    • Prozentuale Anpassung. Gibt den Prozentsatz des Listenpreises an, der für ein Produkt berechnet werden soll. Beispiel: Wenn Sie einen Preisnachlass von 10 % anwenden möchten, geben Sie 90 ein. Dadurch legen Sie fest, dass das Produkt zu 90 % des Listenpreises verkauft wird.

    • Feste Anpassung. Legt den genauen Betrag fest, um den der Listenpreis reduziert bzw. erhöht wird. Beispiel: Für einen Preisnachlass von DM 2,00 geben Sie –2 ein, und für eine Preiserhöhung um DM 2,00 DM geben Sie 2 ein.

    • Preis festlegen. Gibt den genauen Preis eines Produkts an. Beispiel: Das Produkt wird für exakt DM 10 verkauft. Dadurch wird der auf dem Produkt selbst angegebene Preis ersetzt.

    Informationen über die benutzerdefinierte Preisberechnung von Produkten Ihres Katalogs finden Sie unter Preisberechnung eines benutzerdefinierten Katalogs.

Der für eine Kategorie angegebene Preismodifikator wird auf alle Produkte der Kategorie angewendet. Wenn ein Produkt zu zwei Kategorien mit widersprüchlichen Preismodifikatoren gehört, wird der Preis des Produkts nicht geändert. Stattdessen wird im Anwendungsprotokoll der Windows-Ereignisanzeige eine Warnmeldung angezeigt, die auf diesen Konflikt hinweist.

Erstellen Sie einen Preisnachlasskampagnenartikel, um einen Preisnachlass auf einen Produktpreis zu gewähren. Informationen über das Anwenden von Preisnachlässen auf Produkte finden Sie unter Erstellen eines Preisnachlasskampagnenartikels.

Dieser Abschnitt beinhaltet folgende Themen:

  • Preisberechnung eines Produkts

  • Preisberechnung auf Produktvariantenebene

  • Preisberechnung von Produkten in einer Kategorie

  • Preisberechnung eines benutzerdefinierten Katalogs


Preisberechnung von Produkten

Die Preise von Produkten werden beim Erstellen der Produkteigenschaften festgelegt. Sie können jedoch stets die Preise Ihrer Produkte ändern, wenn Sie eine Benachrichtigung über eine Preisänderung erhalten. Beispiel: Wenn der Preis einer schwarzen Lederjacke von DM 399 auf DM 429 steigt, können Sie diese Änderung in den Produkteigenschaften vornehmen.

Anmerkung

  • Wenn Sie den Preis eines Produkts nur kurzzeitig für ein besonderes Angebot ändern möchten, können Sie auf das Produkt einen Preisnachlass anwenden. Ein Preisnachlass kann für einen bestimmten Zeitraum und eine eingeschränkte Benutzergruppe eingerichtet werden. Informationen über das Einrichten von Preisnachlässen erhalten Sie unter Preisnachlässe für Produkte anwenden.

So berechnen Sie den Preis für ein Produkt

  7. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  8. Wählen Sie im Bildschirm Kataloge den Katalog mit dem Produkt aus, dessen Preis Sie berechnen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  9. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Produkte in der Produkttabelle das Produkt aus, für das Sie den Preis berechnen möchten, und klicken Sie anschließend auf Bearbeiten.

  10. Geben Sie im Bildschirm Katalog-Editor - Katalogname (Produkt) im Bereich Produkteigenschaften einen neuen Preis für das Produkt im Feld Preis ein.

  11. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Änderungen zu speichern und zum Bildschirm Katalog zurückzukehren.

Siehe auch

Preisberechnung auf Produktvariantenebene

Preisberechnung von Produkten in einer Kategorie

Preisberechnung eines benutzerdefinierten Katalogs

Erstellen eines Preisnachlasskampagnenartikels


Preisberechnung auf Produktvariantenebene

Für jede Produktvariante einer Produktfamilie können unterschiedliche Preise festgelegt werden. Sie können Variantenpreise nach dem Festlegen noch bearbeiten, um auf Verkaufstrends zu reagieren. Beispiel: Sie führen eine Produktfamilie "Jacken", die die Produktvarianten "braune Jacken" und "schwarze Jacken" enthält. Sie führen einen Bericht aus, um die Verkäufe zu analysieren und stellen fest, dass sich die schwarzen Jacken besser als die braunen Jacken verkaufen. Sie können diese Information dahingehend verwenden, dass Sie den Preis für braune Jacken auf Variantenebene ermäßigen, um ihre Verkaufszahlen zu erhöhen. Der Preis der schwarzen Jacken bleibt gleich.

So weisen Sie eine Preisberechnung auf Variantenebene zu

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog mit dem Produkt aus, dessen Preis Sie ändern möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  23. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Produkte in der Produkttabelle das Produkt aus, dessen Preis Sie bearbeiten möchten, und klicken Sie anschließend auf Bearbeiten.

  24. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Produktvarianten im Feld Variantenpreis die Variante aus, für die Sie den Preis bearbeiten und ändern möchten

  25. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Änderungen zu speichern und zum Bildschirm Katalog-Editor zurückzukehren.

Siehe auch

Preisberechnung eines Produkts

Preisberechnung von Produkten in einer Kategorie

Preisberechnung eines benutzerdefinierten Katalogs

Erstellen eines Preisnachlasskampagnenartikels


Preisberechnung von Produkten in einer Kategorie

Für alle Produkte einer Kategorie kann ein einziger Preis festgelegt werden. Dies ist z. B. praktisch, wenn eine Gruppe von Produkten im gleichen Preisbereich angesiedelt ist. Sie können diesen Umstand nutzen, um den Preis für die ganze Produktgruppe zentral zu ändern, statt jeden Produktpreis einzeln zu ändern.

So weisen Sie einer Produktgruppe einen einzelnen Preis zu

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  23. Wählen Sie im Bildschirm Kataloge den Katalog mit dem Produkt aus, dessen Preis Sie festlegen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  24. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Kategorien die Kategorie aus, für die Sie den Preis berechnen möchten, und klicken Sie anschließend auf Bearbeiten.

  25. Geben Sie im Bildschirm Katalog-Editor - Katalogname - Kategoriename im Bereich Kategorieeigenschaften den Preis im Feld Preis ein.

  26. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Änderungen der Kategorie zu speichern und zum Bildschirm Katalog - Katalogname zurückzukehren.

  27. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Produkte ein Produkt aus der Kategorie aus, deren Preis Sie zuvor berechnet haben, und klicken Sie anschließend auf Bearbeiten.

  28. Wählen Sie im Bildschirm Katalog-Editor - Katalogname (Produkt) im Bereich Zugewiesene Kategorien die Kategorie, die den Preis dieses Produkts festlegt, in der Liste der Kategorien im Feld Zugewiesene Kategorien aus, und klicken Sie anschließend auf Preis festlegen.

    Der ausgewählte Kategoriename wird, wie unten dargestellt, im Feld Preiskategorie angezeigt.

    Festlegen des Kategoriepreises für ein Produkt

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

    Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Preisberechnung zu speichern und zum Bildschirm Katalog zurückzukehren.

Anmerkung

  • Sie müssen eine Preiskategorie für jeden Artikel in der Kategorie zuweisen, dem auf Produktebene ein Preis zugewiesen wurde (Schritte 6 bis 8). Wenn Sie z. B. einer Audio-CD beim Erstellen einen Preis von DM 24,99 zugewiesen haben, diese CD nun aber unter die Kostenrahmenkategorie von DM 20 fallen soll, müssen Sie diese Audio-CD der Kostenrahmenkategorie zuweisen, damit der neue Preis wirksam wird.

  • Das Zuweisen eines Preises auf Kategorieebene ersetzt die Preise aller Produkte und Produktvarianten in dieser Kategorie.

Siehe auch

Preisberechnung eines Produkts

Preisberechnung eines benutzerdefinierten Katalogs

Erstellen eines Preisnachlasskampagnenartikels


Preisberechnung eines benutzerdefinierten Katalogs

Zu Ihren benutzerdefinierten Katalogen kann eine benutzerdefinierte Preisberechnung hinzugefügt werden. Sie können ausgewählten Benutzern in Ihrer benutzerdefinierten Preisberechnung einen festen Preis oder eine feste oder prozentuale Anpassung anbieten. Beispiel: Es können Preisnachlässe für regelmäßige Kunden angeboten oder Preisnachlässe auf bestimmte Saisonartikel gewährt werden. Die Preise können nur auf Kategorieebene geändert werden. Eine Änderung des Preises auf Produktebene oder Produktvariantenebene für einen benutzerdefinierten Katalog ist nicht möglich.

Dieses Verfahren setzt voraus, dass Sie bereits einen benutzerdefinierten Katalog erstellt haben. Wenn dies noch nicht der Fall ist, lesen Sie die Anweisungen unter Erstellen eines benutzerdefinierten Katalogs.

So weisen Sie die Preisberechnung für einen benutzerdefinierten Katalog zu

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den benutzerdefinierten Katalog aus, für den Sie eine Preisberechnung durchführen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Führen Sie im Bildschirm Katalog-Editor - Katalogname im Bereich Benutzerdefinierte Preisberechnung die folgenden Schritte durch:
    Option/Funktion | Zweck
    Kategorien | Wählen Sie die Kategorie aus, der ein benutzerdefinierter Preis zugewiesen werden soll.
    Benutzerdefinierte Preise verwenden | Aktivieren Sie das Kontrollkästchen. um die benutzerdefinierte Preisberechnung zu aktivieren. Wenn Sie dieses Feld deaktivieren, wird eine bereits vorhandene benutzerdefinierte Preisberechnung für die ausgewählte Kategorie wieder entfernt.
    Preisgestaltungsmethode Wählen Sie eine der drei möglichen Preisgestaltungsmethoden:

    Prozentuale Anpassung. Der Prozentsatz des Listenpreises, der für ein Produkt berechnet werden soll.

    Feste Anpassung. Der Betrag, um den der Listenpreis erhöht oder verringert wird.

    Preis festlegen. Der exakte Produktpreis.
    Wert | Geben Sie einen Wert ein. Dieser Wert bestimmt den Prozentsatz, die Anpassung oder den festen Preis für den Listenpreis, je nach der ausgewählten Preisgestaltungsmethode. Wurde beispielsweise Prozentuale Anpassung ausgewählt, und Sie möchten einen Nachlass von 10 % gewähren, geben Sie den Wert 90 ein. Alle Artikel im benutzerdefinierten Katalog werden dann für 90 % des Listenpreises verkauft.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Änderungen zu speichern und zum Bildschirm Kataloge zurückzukehren.

Die aktualisierte Preisberechnung wird erst mit Veröffentlichung des benutzerdefinierten Katalogs in der Website angewendet. Informationen über das Veröffentlichen eines Katalogs finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs. Informationen über das Hinzufügen von Benutzern finden Sie unter Hinzufügen eines Benutzers.

Siehe auch

Informationen zu Katalogen

Erstellen eines benutzerdefinierten Katalogs

Preisberechnung auf Produktvariantenebene

Preisberechnung eines Produkts

Preisberechnung von Produkten in einer Kategorie

Erstellen eines Preisnachlasskampagnenartikels


Preisnachlässe für Produkte anwenden

Preisnachlässe können auf einzelne Produkte oder auf alle Produkte einer Kategorie angewendet werden. Sie können auch einen Ausdruck erstellen, um Preisnachlässe auf Produkte mit bestimmten Merkmalen anzuwenden. Preisnachlässe lassen sich z. B. für folgenden Szenarien erstellen:

  • Produktpreis ist größer als DM 20,00. Dies ist ein Preisnachlass-Bedingungsausdruck. Preisnachlass-Bedingungsausdrücke basieren auf einer Produkteigenschaft.

  • Benutzer kauft 2. Dieser Ausdruck ist Bestandteil eines erforderlichen Bedingungskriteriums für einen Preisnachlass.

  • Benutzer klickt auf eine Preisnachlassanzeige auf der Sportseite. Dies ist der "Klick erforderlich"-Teil eines Preisnachlasses.

  • Benutzer ist registriert. Dies ist ein Ausdruck für die Preisnachlassberechtigung. Ausdrücke zur Berechtigung von Preisnachlässen basieren auf Benutzer- und Kontextprofilen.

Sie können für ein Produkt nicht gleichzeitig mehrere Preisnachlässe gewähren. Ein Kunde kann pro Produkt nur einen Preisnachlass genießen. Ebenso kann eine Bedingung nur für einen Preisnachlass angewendet werden. Nachdem ein Produkt als Bedingung oder als Auszeichnung für einen bestimmten Preisnachlass verwendet wurde, kann es nicht mehr als Bedingung oder Auszeichnung für andere Preisnachlässe verwendet werden.

Erstellen Sie einen Preisnachlasskampagnenartikel, um einen Preisnachlass auf einen Produktpreis zu gewähren. Informationen über das Anwenden von Preisnachlässen auf Produkte finden Sie unter Erstellen eines Preisnachlasskampagnenartikels.


Erstellen von Kategoriehierarchien

Verwenden Sie das Katalog-Editor-Modul, um Kategoriehierarchien zu erstellen. Die Erstellung von Kategoriehierarchien unterstützt Sie beim Organisieren der Produkte im Katalog und erleichtert Benutzern die Navigation in Ihrer Website. Sie können übergeordnete Kategorien und untergeordnete Kategorien zuweisen und die Produkte hierarchisch anordnen. Die Kategorie "CDs" könnte beispielsweise die untergeordneten Kategorien "Rock", "Rhythm and Blues" und "Klassik" haben. Die untergeordneten Kategorien können ihrerseits wiederum untergeordnete Kategorien enthalten. So kann die Kategorie "Rock" z. B. die untergeordnete Kategorie "Pop und Anderes" enthalten.

So weisen Sie übergeordnete und untergeordnete Kategorien zu

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog mit den Kategorien aus, denen Sie über- oder untergeordnete Kategorien zuweisen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Kategorien die Kategorie aus, der Sie über- oder untergeordnete Kategorien zuweisen möchten, und klicken Sie anschließend auf Bearbeiten.

  4. Wählen Sie im Bereich Zugewiesene Kategorien in der Liste Verfügbare untergeordnete Kategorien die Kategorie aus, die Sie als untergeordnete Kategorie zuweisen möchten, und klicken Sie anschließend auf Hinzufügen.

    Die Kategorie wird aus der Liste im Feld Verfügbare untergeordnete Kategorien in die Liste im Feld Zugewiesene untergeordnete Kategorien verschoben.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Zuweisung der über- und untergeordneten Kategorien zu speichern und zum Bildschirm Katalog zurückzukehren.

    Anmerkung

    • Sie können einer untergeordneten Kategorie auch weitere untergeordnete Kategorien zuweisen und damit eine Verschachtelung über mehrere Ebenen erreichen.

Siehe auch

Informationen zu Katalogen

Erstellen von Kategorie- und Produktbeziehungen


Erstellen von Kategorie- und Produktbeziehungen

Verwenden Sie das Katalog-Editor-Modul, um Kategorie- und Produktbeziehungen zu erstellen. Kategorien und Produkte können mit anderen Kategorien und Produkten verbunden werden. Mit einer Produkt-zu-Produkt-Beziehung kann z. B. einem Benutzer, der einen Film kauft, der zugehörige Soundtrack angeboten werden. Hierbei handelt es sich um einen explizite Beziehung.

In einer Kategorie-zu-Kategorie-Beziehung können Sie Beziehungen zwischen Kategorien herstellen. Beispiel: Sie haben Kategorien für CDs und Biographien. Wenn Sie CDs mit klassischer Musik führen, verfügen Sie möglicherweise auch über Biographien von klassischen Komponisten.

Die einzelnen Schritte bei der Erstellung einer Produktfamilienbeziehung sind dieselben wie bei der Erstellung einer Produktbeziehung. Eine Produktfamilienbeziehung wird jedoch für Produkte mit Varianten erstellt.

Anmerkung

  • Commerce Server-Lösungssites zeigen Beziehungen nicht an. Wenn Ihr Siteentwickler zur Erstellung Ihrer Site eine Lösungssite verwendet hat, können Sie möglicherweise keine Kategorie- und Produktbeziehungen erstellen. Informationen über das Anzeigen von Beziehungen in der Website erhalten Sie von Ihrem Siteentwickler.

So erstellen Sie eine Kategoriebeziehung

So erstellen Sie eine Produktbeziehung

So erstellen Sie eine Kategoriebeziehung

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, in dem Sie eine Beziehung erstellen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Kategorien die Kategorie aus, zu der Sie eine Beziehung hinzufügen möchten, und klicken Sie anschließend auf Bearbeiten.

  4. Klicken Sie im Bildschirm Katalog-Editor - Katalogname (Kategorie) im Bereich Kategoriebeziehungen auf Neu, und führen Sie die folgenden Schritte durch:
    Option/Funktion | Zweck
    Beziehung | Geben Sie den Beziehungsnamen ein.
    Artikel | Klicken Sie auf die Auslassungsschaltfläche ( ... ), um das Dialogfeld Produktauswahl zu öffnen.

  5. Wählen Sie im Dialogfeld Produktauswahl in der Liste Kategorien die Kategorie aus, zu der Sie eine Beziehung erstellen möchten, und klicken Sie anschließend auf OK.

    Die ausgewählte Kategorie wird im Feld Artikel des Bereichs Kategoriebeziehungen angezeigt. In der folgenden Abbildung wird im Feld Artikeltyp der Eintrag Kategorie angezeigt. Dies weist darauf hin, dass es sich um eine Kategoriebeziehung handelt.

    Einrichten von Kategoriebeziehungen

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

  6. Klicken Sie auf Annehmen, um die Kategoriebeziehung zu speichern.

  7. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Änderungen zu speichern und zum Bildschirm Kataloge zurückzukehren.

So erstellen Sie eine Produktbeziehung

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog mit dem Produkt aus, für das Sie eine Beziehung erstellen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Produkte das Produkt aus, zu dem Sie eine Beziehung hinzufügen möchten, und klicken Sie anschließend auf Bearbeiten.

  4. Führen Sie im Bildschirm Katalog-Editor - Katalogname (Produkt) im Bereich Produktbeziehungen die folgenden Schritte durch:
    Option/Funktion | Zweck
    Beziehung | Geben Sie den Beziehungsnamen ein.
    Artikel | Klicken Sie auf die Auslassungsschaltfläche ( ... ), um das Dialogfeld Produktauswahl zu öffnen.

  5. Wählen Sie im Dialogfeld Produktauswahl in der Liste Kategorien eine Kategorie und dann in der Liste Produkte in Kategorie ein Produkt aus. Klicken Sie anschließend auf OK.

    Die ausgewählte Kategorie wird im Feld Artikel des Bereichs Produktbeziehungen angezeigt. Im Feld Artikeltyp wird Produkt angezeigt. Dies weist darauf hin, dass es sich um einen Produktbeziehung handelt.

  6. Klicken Sie auf Annehmen, um die Produktbeziehung zu speichern.

  7. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Änderungen zu speichern und zum Bildschirm Katalog-Editor - Katalogname zurückzukehren.


Aktualisieren und Veröffentlichen eines Katalogs

Mithilfe des Katalog-Editor-Moduls können Sie Ihre Site mit den neu hinzugefügten Informationen aktualisieren. Bei den meisten E-Commerce-Geschäften werden diese Änderungen zunächst in einer Testsite vorgenommen und erst im Anschluss zu vereinbarten Zeiten auch in der Produktionssite durchgeführt. Wenden Sie sich an Ihren Systemadministrator, um weitere Informationen über das "Wann" und "Wie" der Änderungen in der Produktionssite zu erfahren.

Verwenden Sie das Katalog-Editor-Modul, um den Katalog zu aktualisieren und in Ihrer Website zu veröffentlichen. Jedesmal, wenn Sie Änderungen im Katalog vorgenommen haben, müssen Sie ihn aktualisieren und in der Website veröffentlichen. Dadurch stellen Sie sicher, dass die Änderungen auch in Ihrer Website eingetragen werden.

So aktualisieren und veröffentlichen Sie Ihre Kataloge

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Klicken Sie im Bildschirm Kataloge auf der Symbolleiste auf Einen Katalog veröffentlichen.

Die aktualisierten Kataloge werden in der Website veröffentlicht. Anschließend werden alle Katalogcaches aktualisiert.


Senden eines Katalogs an einen Handelspartner

Kataloge werden mithilfe des Katalog-Editor-Moduls an Handelspartner gesendet. Verwenden Sie BizTalk-Messaging-Manager, um Handelspartner einzurichten. Bevor Sie einen Katalog an Handelspartner senden können, muss er eingerichtet werden. Informationen über das Einrichten Ihrer Site, sodass Sie Kataloge an Handelspartner senden können, erhalten Sie beim Systemadministrator.

So senden Sie einen Katalog an einen Handelspartner

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, den sie versenden möchten, und klicken Sie anschließend auf der Symbolleiste auf Senden.

  3. Wählen Sie im Dialogfeld Hersteller auswählen den/die Handelspartner aus, an welche der Katalog gesendet werden soll. Klicken Sie anschließend auf OK.

Siehe auch

Verwenden von BizTalk Server

Exportieren eines Katalogs


Exportieren eines Katalogs

Ein Katalog kann in einen bekannten Pfad oder einen freigegebenen Ordner mit dem Namen CommerceKatalogs auf dem Computer exportiert werden, auf dem Commerce Server installiert wurde. Durch Exportieren kann ein Katalog in eine andere Umgebung übertragen werden. Beispiel: Sie können Ihren Katalog mit Ihrem Geschäftspartner gemeinsam nutzen, oder die Entwicklung und Wartung Ihrer Kataloge auslagern.

Zum Exportieren eines Katalogs müssen Sie über einen freigegebenen Ordner auf dem Commerce Server-Computer verfügen. Wenden Sie sich zum Einrichten eines freigegebenen Ordners an Ihren Systemadministrator.

Sie können Kataloge im CSV- (trennzeichengetrennt) oder XML-(Extensible Markup Language)-Format exportieren.

So exportieren Sie einen Katalog

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, den Sie exportieren möchten, und klicken Sie anschließend auf der Symbolleiste auf Exportieren.

  3. Wählen Sie in der Dropdownliste aus, ob Sie den Katalog im XML- oder CSV-Format exportieren möchten.

  4. Geben Sie im Dialogfeld Katalog exportieren im Feld Exportdatei den vollständigen Pfad- und Dateinamen eines Katalogs ein, in den vom Server geschrieben werden kann (wie z. B. C:\KatalogsforBusiness\SportsKatalog.xml), und klicken Sie anschließend auf Weiter.

    Wenn Sie den Katalog in den freigegebenen Ordner CommerceKatalogs exportieren, in dem auch Commerce Server installiert ist, müssen Sie nicht den vollständigen Pfad angeben. Sie können dann beispielsweise nur den Namen SportsKatalogs.xml eingeben.

Der Katalog wird an den angegebenen Speicherort exportiert, von dem Sie ihn nach Bedarf verschieben können.

Siehe auch

Informationen zu Katalogen

Senden eines Katalogs an einen Handelspartner

Importieren eines Katalogs


Verwalten eines Katalogschemas

Wenn sich Ihre Geschäftslösungen verändern, möchten Sie möglicherweise auch Ihr Katalogschema ändern. Sie können neue Eigenschaftsdefinitionen hinzufügen, vorhandene Eigenschaftsdefinitionen bearbeiten oder Eigenschaftsdefinitionen, die Sie nicht länger benötigen, löschen. Sie können auch Änderungen vornehmen oder neue Produkt- oder Katalogdefinitionen hinzufügen.

Wenn Sie Änderungen am Katalogschema vornehmen, kann sich dies auf die vorhandenen Kategorien und Produkte auswirken, die mit diesen geänderten oder gelöschten Eigenschaftsdefinitionen verknüpft sind. Beispiel: Wenn Sie eine Hersteller-ID zu Ihrer CD-Produktdefinition hinzufügen müssen, verfügen alle Produktinstanzen, die diese CD-Produktdefinition verwenden, über ein Feld für die Hersteller-ID.

Dieser Abschnitt beinhaltet folgende Themen:

  • Suchen und Anzeigen eines Katalogschemas

  • Ändern eines Katalogschemas

  • Kopieren eines Katalogschemas

  • Löschen eines Katalogschemas


Suchen und Anzeigen eines Katalogschemas

Mithilfe des Katalog-Designer-Moduls können Sie Eigenschaftsdefinitionen, Kategoriedefinitionen und Produktdefinitionen suchen und anzeigen.

So suchen Sie eine Eigenschaftsdefinition

So zeigen Sie eine Liste von Eigenschaftsdefinitionen an

So zeigen Sie eine Liste von Kategoriedefinitionen an

So zeigen Sie eine Liste von Produktdefinitionen an

So suchen Sie eine Eigenschaftsdefinition

  1. Klicken Sie im Menü Kataloge auf Katalog-Designer.

  2. Klicken Sie im Bildschirm Katalog-Designer: Kategoriedefinitionen auf der Symbolleiste auf Ansicht. Wählen Sie dann in der Dropdownliste die Option Eigenschaftsdefinitionen aus.

  3. Klicken Sie im Bildschirm Katalog-Designer: Eigenschaftsdefinitionen auf Suchen, um das Feld Suchen anzuzeigen.

  4. Wählen Sie im Feld Suchen nach die Merkmale der Eigenschaftsdefinition in der Dropdownliste. Führen Sie dann die folgenden Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie den Namen (oder eines Teils davon) der Eigenschaft ein.
    Typ | Wählen Sie den Eigenschaftstyp in der Dropdownliste aus.
    Allen Produktarten zugewiesen | Wählen Sie in der Dropdownliste Ja oder Nein aus. Bei Auswahl von Ja werden nur Eigenschaften gesucht, die allen Produktarten gemeinsam sind.
    Alle Definitionen | Suchen Sie nach allen vorhandenen Definitionen.

    Anmerkung

    • Bei Auswahl von Alle Definitionen ist die Option Nur die unten angegebene Liste durchsuchen nicht mehr verfügbar. Alle Filter werden entfernt und alle Definitionen überprüft.
  5. Klicken Sie auf Suchen.

    Die Suchergebnisse werden im Feld Suchen angezeigt.

So zeigen Sie eine Liste von Eigenschaftsdefinitionen an

  1. Klicken Sie im Menü Kataloge auf Katalog-Designer.

  2. Klicken Sie im Bildschirm Katalog-Designer: Kategoriedefinitionen auf der Symbolleiste auf Ansicht, und wählen Sie anschließend in der Dropdownliste die Option Eigenschaftsdefinitionen aus, um den Bildschirm Katalog-Designer: Eigenschaftsdefinitionen anzuzeigen.

    In diesem Bildschirm wird eine Liste aller Eigenschaftsdefinitionen im Katalog (in alphabetischer Reihenfolge) einschließlich des Datentyps angezeigt.

So zeigen Sie eine Liste von Kategoriedefinitionen an

  • Klicken Sie in Kataloge auf Katalog-Designer, um den Bildschirm Katalog-Designer: Kategoriedefinitionen anzuzeigen.

    In diesem Bildschirm wird eine Liste aller im Katalog enthaltenen Kategoriedefinitionen angezeigt.

So zeigen Sie eine Liste von Produktdefinitionen an

  1. Klicken Sie im Menü Kataloge auf Katalog-Designer.

  2. Klicken Sie im Bildschirm Katalog-Designer: Kategoriedefinitionen auf der Symbolleiste auf Ansicht, und wählen Sie anschließend in der Dropdownliste die Option Produktdefinitionen aus, um den Bildschirm Katalog-Designer: Produktdefinitionen anzuzeigen.

    In diesem Bildschirm wird eine Liste aller im Katalog enthaltenen Produktdefinitionen angezeigt.


Ändern eines Katalogschemas

Mithilfe des Katalog-Designer-Moduls kann das Katalogschema geändert werden. Die Änderung eines Katalogschemas erfolgt beim Erstellen eines neuen oder Aktualisieren eines vorhandenen Katalogs. Wenn Sie für einen neuen Katalog das Schema ändern, sollten Sie die Änderungen vornehmen, bevor Sie Produkte und Kategorien zum Katalog hinzufügen.

Das Schema kann auch nach Auffüllen des Katalogs mit Produkten und Kategorien noch geändert werden. Die Änderungen können sich jedoch auf die Darstellung des Katalogs in der Website auswirken. In zahlreichen Organisationen wird das Katalogschema von der Person erstellt, die über genaue Kenntnisse des Datenbankkonzepts verfügt.

So ändern Sie eine Kategoriedefinition

So ändern Sie eine Produktdefinition

So ändern Sie eine Eigenschaftsdefinition

Anmerkung

  • Weder Name noch Typ von Eigenschaften können in einem Katalogschema geändert werden. Sie können jedoch die Eigenschaft löschen und sie mit einem neuen Namen und Typ wieder hinzufügen.

So ändern Sie eine Kategoriedefinition

  1. Klicken Sie im Menü Kataloge auf Katalog-Designer.

  2. Klicken Sie im Bildschirm Katalog-Designer: Kategoriedefinitionen auf der Symbolleiste auf Ansicht. Wählen Sie dann in der Dropdownliste die Option Kategoriedefinitionen aus.

  3. Wählen Sie die Kategorie aus, die Sie ändern möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  4. Wählen Sie im Bildschirm Kategoriedefinitionen im Bereich Kategorieeigenschaften im Feld Zugewiesene Eigenschaften die Eigenschaft aus, die Sie ändern möchten. Führen Sie dann je nach Bedarf folgende Schritte aus:
    • Wenn Sie eine Eigenschaft zu einer Kategoriedefinition hinzufügen möchten, wählen Sie im Feld Verfügbare Eigenschaften die Eigenschaft aus, die hinzugefügt werden soll, und klicken Sie auf Hinzufügen. Klicken Sie auf Neu, um eine Eigenschaft zu erstellen, die noch nicht existiert.

    • Wenn Sie eine Eigenschaft aus einer Kategoriedefinition entfernen möchten, wählen Sie im Feld Zugewiesene Eigenschaften die zu entfernende Eigenschaft aus, und klicken Sie anschließend auf Entfernen.

    • Wenn Sie die Reihenfolge der einer Kategorie zugewiesenen Eigenschaften ändern möchten, wählen Sie im Feld Zugewiesene Eigenschaften die Eigenschaft aus, die verschoben werden soll. Klicken Sie dann auf Nach oben oder Nach unten, um die Reihenfolge der Eigenschaften wie gewünscht zu ändern.
  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Änderungen zu speichern und zum Bildschirm Katalog-Editor: Kategoriedefinitionen zurückzukehren.

So ändern Sie eine Produktdefinition

  1. Klicken Sie im Menü Kataloge auf Katalog-Designer.

  2. Klicken Sie im Bildschirm Katalog-Designer: Kategoriedefinitionen auf der Symbolleiste auf Ansicht. Wählen Sie dann in der Dropdownliste die Option Produktdefinitionen aus.

  3. Wählen Sie die Produktdefinition aus, die Sie ändern möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  4. Wählen Sie im Bildschirm Katalog-Designer: Produktdefinitionen im Bereich Produkteigenschaften im Feld Zugewiesene Eigenschaften die Eigenschaft aus, die Sie ändern möchten. Führen Sie dann je nach Bedarf folgende Schritte aus:
    • Wenn Sie eine Eigenschaft zu einer Produktdefinition hinzufügen möchten, wählen Sie im Feld Verfügbare Eigenschaften die Eigenschaft aus, die hinzugefügt werden soll, und klicken Sie auf Hinzufügen. Klicken Sie auf Neu, um eine Eigenschaft zu erstellen, die noch nicht existiert.

    • Wenn Sie eine Eigenschaft aus einer Produktdefinition entfernen möchten, wählen Sie im Feld Zugewiesene Eigenschaften die zu entfernende Eigenschaft aus, und klicken Sie anschließend auf Entfernen.

    • Wenn Sie die Reihenfolge der einem Produkt zugewiesenen Eigenschaften ändern möchten, wählen Sie im Feld Zugewiesene Eigenschaften die Eigenschaft aus, die verschoben werden soll. Klicken Sie dann auf Nach oben oder Nach unten, um die Reihenfolge der Eigenschaften wie gewünscht zu ändern.
  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Änderungen zu speichern und zum Bildschirm Katalog-Designer zurückzukehren.

So ändern Sie eine Eigenschaftsdefinition

  1. Klicken Sie im Menü Kataloge auf Katalog-Designer.

  2. Klicken Sie im Bildschirm Katalog-Designer auf der Symbolleiste auf Ansicht. Wählen Sie dann in der Dropdownliste die Option Eigenschaftsdefinition aus.

  3. Wählen Sie im Bildschirm Eigenschaftsdefinitionen die Eigenschaft aus, die Sie ändern möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  4. Führen Sie im Bildschirm Eigenschaftsdefinitionen - Eigenschaftsname folgende Schritte aus:
    Option/Funktion | Eigenschaftstyp | Zweck
    Name | Alle | Diese Eigenschaft kann nicht geändert werden.
    In der Site anzeigen | Alle | Aktivieren Sie dieses Kontrollkästchen, um den Benutzern der Website die angegebene Eigenschaft anzuzeigen.
    Angezeigter Name | Alle | Geben Sie den Namen ein, der in der Website als Bezeichnung für diese Eigenschaft angezeigt werden soll. So könnte z. B. für eine Eigenschaft mit dem Namen "Hemdfarbe" die Bezeichnung "Farbe" angezeigt werden.
    Freitextsuche aktivieren Text, Multiplechoice, Datei Aktivieren Sie dieses Kontrollkästchen, damit eine Freitextsuche im Katalog auf die in dieser Eigenschaft gespeicherten Werte angewendet wird.

    Bei Aktivierung der Option Freitextsuche aktivieren wird die Eigenschaftsdefinition zum Volltextindex dieses Katalogs hinzugefügt. Sie müssen den Volltextindex aktualisieren, wenn Katalogelemente geändert werden, für die die Freitextsuche aktiviert ist. Informationen über die Aktualisierung des Volltextindex finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.
    Mittels Drilldownsuche auffindbar | Alle | Aktivieren Sie dieses Kontrollkästchen, um diese Eigenschaft in Drilldownsuchen zu verwenden. Eine Drilldownsuche ermöglicht dem Benutzer, die für ihn interessanten Werte auszuwählen, mit denen er bestimmte Produkte finden kann.
    Minimallänge | Text | Geben Sie eine Zahl ein, mit der die Minimallänge des Wertes für diesen Eigenschaftstyp definiert wird. In der Standardeinstellung beträgt die Minimallänge null (0) Zeichen. Wenn eine Länge angegeben wird, die nicht null ist, wird diese Eigenschaft zu einer für die Produkt- oder Kategoriedefinition erforderlichen Eigenschaft.
    Maximallänge | Text | Geben Sie die Zahl ein, mit der die Maximallänge des Wertes für diesen Eigenschaftstyp definiert wird. Die zulässige Maximallänge beträgt 3600 Zeichen.
    Minimalwert | Zahl, Dezimalzahl, Geld/Währung | Geben Sie eine Zahl ein, mit welcher der Minimalwert für diesen Eigenschaftstyp definiert wird. In der Standardeinstellung ist der Minimalwert Null (0).
    Maximalwert | Zahl, Dezimalzahl, Geld/Währung | Geben Sie eine Zahl ein, mit welcher der Maximalwert für diesen Eigenschaftstyp definiert wird. Wenn Sie z. B. eine Eigenschaft für Geld hinzufügen möchten, geben Sie eine Zahl inklusive Dezimalkomma und Nachkommastellen ein, die den größten Geldwert darstellt, der auf ein Produkt angewendet werden kann.
    Frühestes Datum | Datum/Uhrzeit | Geben Sie das früheste Datum ein, das dieser Eigenschaft zugeordnet werden soll. Zum Beispiel der früheste Zeitpunkt, an dem ein Benutzer eine neue CD bestellen kann.
    Frühester Zeitpunkt | Datum/Uhrzeit | Geben Sie die früheste Uhrzeit im Format 00:00 ein, die dieser Eigenschaft zugeordnet werden soll. Ein Beispiel sind Startzeiten.
    Letztes Datum | Datum/Uhrzeit | Geben Sie das letztmögliche Datum ein, das der Eigenschaft zugeordnet werden soll. Zum Beispiel das letzte Datum, an dem ein Benutzer eine neue CD bestellen kann.
    Letzter Zeitpunkt | Datum/Uhrzeit | Geben Sie die letztmögliche Uhrzeit im Format 00:00 ein, die der Eigenschaft zugeordnet werden soll. Ein Beispiel dafür sind Ablaufzeiten.
    Standardwert | Text, Zahl, Dezimal, Geld/Währung, Datum/Uhrzeit, Multiplechoice | Geben Sie den Standardwert für den Eigenschaftstyp ein. Dieser Wert hängt vom hinzugefügten Eigenschaftstyp ab.
    Allen Produkttypen zuweisen | Alle | Aktivieren Sie dieses Kontrollkästchen, um die Eigenschaft allen Produkttypen zuzuweisen. Wird für allgemeine Produkteigenschaften wie Name, Beschreibung oder Gewicht verwendet.
    In Datawarehouse exportieren | Alle | Aktivieren Sie dieses Kontrollkästchen, um die Eigenschaft in das Datawarehousezu exportieren. Durch den Export in das Datawarehouse stehen die Daten für Berichte zur Verfügung.
    In Produktliste anzeigen | Alle | Aktivieren Sie dieses Kontrollkästchen, um diese Eigenschaft in der Produktliste anzuzeigen.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Änderungen zu speichern und zum Bildschirm Katalog-Designer zurückzukehren.


Kopieren eines Katalogschemas

Mithilfe des Katalog-Designer-Moduls wird eine vorhandene Eigenschaftsdefinition, Produktdefinition oder Kategoriedefinition kopiert. Beispiel: Sie möchten eine Definition kopieren, um eine neue, ähnliche Definition zu erstellen.

So kopieren Sie eine Kategoriedefinition

So kopieren Sie eine Produktdefinition

So kopieren Sie eine Eigenschaftsdefinition

So kopieren Sie eine Kategoriedefinition

  1. Klicken Sie im Menü Kataloge auf Katalog-Designer.

  2. Klicken Sie im Bildschirm Katalog-Designer: Kategoriedefinitionen auf Ansicht. Wählen Sie dann in der Dropdownliste die Option Kategoriedefinitionen aus.

  3. Wählen Sie im Bildschirm Katalog-Designer:Kategoriedefinitionen die Kategorie aus, die Sie kopieren möchten, und klicken Sie anschließend auf der Symbolleiste auf Kopieren.

  4. Geben Sie im Bildschirm Kategoriedefinition: Neu im Feld Name einen Namen für die neue Kategoriedefinition ein. Die maximale Länge beträgt 128 Zeichen.

  5. Bearbeiten Sie die Eigenschaften im Feld Zugewiesene Eigenschaften, falls die bestehenden Kategorieeigenschaften für die neue Kategoriedefinition geändert werden müssen.

  6. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die neue Kategoriedefinition zu speichern und zum Bildschirm Katalog-Designer: Kategoriedefinitionen zurückzukehren.

So kopieren Sie eine Produktdefinition

  1. Klicken Sie im Menü Kataloge auf Katalog-Designer.

  2. Klicken Sie im Bildschirm Katalog-Designer: Kategoriedefinitionen auf Ansicht. Wählen Sie dann in der Dropdownliste die Option Produktdefinitionen aus.

  3. Wählen Sie im Bildschirm Katalog-Designer:Produktdefinitionen die Produktdefinition aus, die Sie kopieren möchten, und klicken Sie anschließend auf der Symbolleiste auf Kopieren.

  4. Geben Sie im Bereich Produktdefinitionseigenschaften im Feld Name einen Namen für die neue Produktdefinition ein. Die maximale Länge beträgt 128 Zeichen.

  5. Bearbeiten Sie das Feld Zugewiesene Eigenschaften, falls die bestehenden Produkteigenschaften für die neue Produktdefinition geändert werden müssen.

  6. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die neue Produktdefinition zu speichern und zum Bildschirm Katalog-Designer: Produktdefinitionen zurückzukehren.

So kopieren Sie eine Eigenschaftsdefinition

  1. Klicken Sie im Menü Kataloge auf Katalog-Designer.

  2. Klicken Sie im Bildschirm Katalog-Designer: Kategoriedefinitionen auf Ansicht. Wählen Sie dann in der Dropdownliste die Option Eigenschaftsdefinitionen aus.

  3. Wählen Sie im Bildschirm Katalog-Designer: Eigenschaftsdefinitionen die Eigenschaft aus, die Sie kopieren möchten, und klicken Sie anschließend auf der Symbolleiste auf Kopieren.

  4. Führen Sie im Bildschirm Eigenschaftsdefinitionen: Neu folgende Schritte aus:
    Option/Funktion | Eigenschaftstyp | Zweck
    Name Alle Geben Sie einen Namen für die Eigenschaft ein.

    Anmerkung

    Nach Speicherung dieser Eigenschaft kann der Eigenschaftsname nicht mehr geändert werden.
    In der Site anzeigen | Alle | Aktivieren Sie dieses Kontrollkästchen, um die angegebene Eigenschaft den Benutzern der Website anzuzeigen. Aktivieren Sie dieses Kontrollkästchen nicht, wenn Sie einige Eigenschaften zur internen Verwendung privat halten möchten.
    Angezeigter Name | Alle | Geben Sie den Namen ein, der in der Website als Bezeichnung für diese Eigenschaft angezeigt werden soll. So könnte z. B. für eine Eigenschaft mit dem Namen "Hemdfarbe" die Bezeichnung "Farbe" angezeigt werden.
    Freitextsuche aktivieren Text, Multiplechoice, Datei Aktivieren Sie dieses Kontrollkästchen, damit eine Freitextsuche im Katalog auf die in dieser Eigenschaft gespeicherten Werte angewendet wird.

    Bei Aktivierung der Option Freitextsuche aktivieren wird die Eigenschaftsdefinition zum Volltextindex dieses Katalogs hinzugefügt. Sie müssen den Volltextindex aktualisieren, wenn Katalogelemente geändert werden, für die die Freitextsuche aktiviert ist. Informationen über die Aktualisierung des Volltextindex finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.
    Mittels Drilldownsuche auffindbar | Alle | Aktivieren Sie dieses Kontrollkästchen, um diese Eigenschaft in Drilldownsuchen zu verwenden. Eine Drilldownsuche ermöglicht dem Benutzer, die für ihn interessanten Werte auszuwählen, mit denen er bestimmte Produkte finden kann.
    Minimallänge | Text | Geben Sie eine Zahl ein, mit der die Minimallänge des Wertes für diesen Eigenschaftstyp definiert wird. Standardmäßig beträgt die Minimallänge null (0) Zeichen. Wenn eine Länge angegeben wird, die nicht null ist, wird diese Eigenschaft zu einer für die Produktdefinition erforderlichen Eigenschaft.
    Maximallänge | Text | Geben Sie eine Zahl ein, mit der die Maximallänge des Wertes für diesen Eigenschaftstyp definiert wird. Die maximale Länge beträgt 3600 Zeichen.
    Minimalwert | Zahl, Dezimalzahl, Geld/Währung | Geben Sie eine Zahl ein, mit welcher der Minimalwert für diesen Eigenschaftstyp definiert wird. Standardmäßig ist der Minimalwert Null (0).
    Maximalwert | Zahl, Dezimalzahl, Geld/Währung | Geben Sie eine Zahl ein, mit welcher der Maximalwert für diesen Eigenschaftstyp definiert wird. Wenn Sie z. B. eine Eigenschaft für Geld hinzufügen möchten, geben Sie eine Zahl inklusive Dezimalkomma und Nachkommastellen ein, die den größten Geldwert darstellt, der auf ein Produkt angewendet werden kann.
    Frühestes Datum | Datum/Uhrzeit | Geben Sie das früheste Datum ein, an dem diese Eigenschaft gültig sein soll. Zum Beispiel der früheste Zeitpunkt, an dem ein Benutzer eine neue CD bestellen kann.
    Frühester Zeitpunkt | Datum/Uhrzeit | Geben Sie das früheste Datum ein (im Format 00:00), an dem diese Eigenschaft gültig sein soll. Ein Beispiel sind Startzeiten.
    Letztes Datum | Datum/Uhrzeit | Geben Sie das späteste Datum ein, an dem diese Eigenschaft gültig sein soll. Zum Beispiel das letzte Datum, an dem ein Benutzer eine neue CD bestellen kann.
    Letzter Zeitpunkt | Datum/Uhrzeit | Geben Sie das späteste Datum ein (im Format 00:00), an dem diese Eigenschaft gültig sein soll. Ein Beispiel dafür sind Ablaufzeiten.
    Standardwert | Text, Zahl, Dezimal, Geld/Währung, Datum/Uhrzeit, Multiplechoice | Geben Sie den Standardwert für den Eigenschaftstyp ein. Dieser Wert hängt vom hinzugefügten Eigenschaftstyp ab.
    Allen Produkttypen zuweisen | Alle | Aktivieren Sie dieses Kontrollkästchen, um die Eigenschaft allen Produkttypen zuzuweisen.
    In Datawarehouse exportieren | Alle | Aktivieren Sie dieses Kontrollkästchen, um die Eigenschaft in das Datawarehouse zu exportieren. Durch den Export in das Datawarehouse stehen die Daten für Berichte zur Verfügung.
    In Produktliste anzeigen | Alle | Aktivieren Sie dieses Kontrollkästchen, um diese Eigenschaft in der Produktliste anzuzeigen.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Änderungen zu speichern und zum Bildschirm Katalog-Editor: Kategoriedefinitionen zurückzukehren.


Löschen eines Katalogschemas

Mithilfe des Katalog-Designer-Moduls können Sie Eigenschaftsdefinitionen, Produktdefinitionen und Kategoriedefinitionen löschen. Bevor Sie eine Definition löschen, stellen Sie sicher, dass diese Definition nicht von einer vorhandenen Eigenschaft, einem Produkt oder einer Kategorie Ihrer Kataloge verwendet wird. Wenn Sie eine Produkt- oder Kategoriedefinition löschen möchten, auf der Produkte oder Kategorien basieren, erhalten Sie eine Warnmeldung.

So löschen Sie eine Kategoriedefinition

So löschen Sie eine Produktdefinition

So löschen Sie eine Eigenschaftsdefinition

So löschen Sie eine Kategoriedefinition

  1. Klicken Sie im Menü Kataloge auf Katalog-Designer.

  2. Klicken Sie im Bildschirm Katalog-Designer: Kategoriedefinitionen auf Ansicht. Wählen Sie dann in der Dropdownliste die Option Kategoriedefinitionen aus.

  3. Wählen Sie im Bildschirm Katalog-Designer:Kategoriedefinitionen die Kategoriedefinition aus, die Sie löschen möchten, und klicken Sie anschließend auf der Symbolleiste auf Löschen.

  4. Klicken Sie im Dialogfeld Löschen der Kategoriedefinitionen bestätigen auf OK, um die Definition zu löschen.

So löschen Sie eine Produktdefinition

  1. Klicken Sie im Menü Kataloge auf Katalog-Designer.

  2. Klicken Sie im Bildschirm Katalog-Designer: Kategoriedefinitionen auf Ansicht. Wählen Sie dann in der Dropdownliste die Option Produktdefinitionen aus.

  3. Wählen Sie im Bildschirm Katalog-Designer: Produktdefinitionen die Produktdefinition aus, die Sie löschen möchten, und klicken Sie anschließend auf der Symbolleiste auf Löschen.

  4. Klicken Sie im Dialogfeld Löschen der Produktdefinitionen bestätigen auf OK, um die Definition zu löschen.

So löschen Sie eine Eigenschaftsdefinition

  1. Klicken Sie im Menü Kataloge auf Katalog-Designer.

  2. Klicken Sie im Bildschirm Katalog-Designer: Kategoriedefinitionen auf Ansicht. Wählen Sie dann in der Dropdownliste die Option Eigenschaftsdefinitionen aus.

  3. Wählen Sie im Bildschirm Katalog-Designer: Eigenschaftsdefinitionen die Eigenschaftsdefinition aus, die Sie löschen möchten, und klicken Sie anschließend auf der Symbolleiste auf Löschen.

  4. Klicken Sie im Dialogfeld Löschen der Eigenschaftsdefinitionen bestätigen auf OK, um die Definition zu löschen.


Verwalten von Produkten, Kategorien, Katalogen und Katalogsätzen

Mithilfe des Katalog-Editor-Moduls können Sie vorhandene Produkte, Kategorien, Kataloge und Katalogsätze anzeigen, suchen, bearbeiten und löschen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Anzeigen einer Liste von Katalogen

  • Anzeigen einer Liste von Kategorien in einem Katalog

  • Suchen nach Artikeln in einem Katalog

  • Bearbeiten von Katalogeigenschaften

  • Bearbeiten einer Kategorie

  • Bearbeiten eines Produkts

  • Bearbeiten von Kategoriehierarchien

  • Bearbeiten von Produktvarianten

  • Ändern eines Katalogsatzes

  • Löschen einer Kategorie aus einem Katalog

  • Löschen eines Produkts aus einem Katalog

  • Löschen eines Katalogs

  • Löschen eines Katalogsatzes

  • Löschen von Produktvarianten


Anzeigen einer Liste von Katalogen

Verwenden Sie das Katalog-Editor-Modul, um eine Liste aller vorhandener Kataloge anzuzeigen. Wenn Sie einen Katalog auswählen und auf den Pfeil links vom Katalognamen klicken, können Sie alle benutzerdefinierten Kataloge anzeigen, die auf der Basis des ausgewählten Katalogs erstellt wurden.

So zeigen Sie eine Liste der vorhandenen Kataloge an

  • Klicken Sie im Menü Kataloge auf Katalog-Editor.

    Im Bildschirm Kataloge wird eine Liste mit allen vorhandenen Katalogen angezeigt.


Anzeigen einer Liste von Kategorien in einem Katalog

Sie können die Kategorien und die Kategoriehierarchie für einen ausgewählten Katalog anzeigen. Indem Sie die über- und untergeordneten Zuordnungen zwischen den Kategorien anzeigen, können Sie entscheiden, an welcher Stelle zusätzliche Kategorien erforderlich sind und wo vorhandene Kategorien geändert oder gelöscht werden müssen. Beispiel: Wenn Sie eine Kategorie für Musikvideos hinzufügen möchten, können Sie anhand der Liste der Kategorien überprüfen, ob die neue Kategorie eine übergeordnete Kategorie sein oder einer vorhandenen Kategorie zugeordnet werden soll.

So zeigen Sie eine Liste von Kategorien an, die einem Katalog zugewiesen sind

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog mit den Kategorien aus, die Sie anzeigen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

    Der Bildschirm Katalog - Katalogname wird angezeigt. Im Bereich Kategorien werden alle Kategorien, die dem Katalog zugewiesen sind, angezeigt.


Suchen nach Artikeln in einem Katalog

Mithilfe des Katalog-Editor-Moduls können Sie einen Katalog durchsuchen. Dies sind die Schritte, die Sie unternehmen können:

  • Eigenschaftsbasierte Suche. Sie können nach Eigenschaften suchen, die über bestimmte Werte verfügen. Zum Beispiel: Preis < DM 10 und Farbe = Rot. Standardmäßig können alle Eigenschaften für eigenschaftsbasierte Suchvorgänge verwendet werden.

  • Freitextsuche. Aktivieren Sie, wenn Sie Eigenschaftsdefinitionen zu Ihrem Katalog hinzufügen, das Feld Freitextsuche aktivieren. Damit geben Sie an, dass die Definitionen für die Freitextsuche verfügbar sind. Eine Freitextsuche ruft alle Instanzen der Eigenschaft in Ihrem Katalog ab. Diese Eigenschaftsdefinitionen werden in einem Index protokolliert. Sie müssen den Volltextindex aktualisieren, wenn Kataloge geändert wurden, für die die Freitextsuche aktiviert ist. Informationen über die Aktualisierung des Volltextindex finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.

So suchen Sie Produkte in einem Katalog mithilfe eines Schlüsselworts

So suchen Sie Produkte in einem Katalog mithilfe einer Eigenschaft

So suchen Sie Produkte in einem Katalog mithilfe eines Schlüsselworts

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, den Sie durchsuchen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Produkte in der Dropdownliste Suchmethode die Option Schlüsselwortsuche aus.

  4. Geben Sie im Feld Schlüsselwörter das Schlüsselwort ein, nach dem gesucht werden soll, und klicken Sie anschließend auf Suchen.

    Das Resultat der Schlüsselwortsuche wird in der Tabelle Produkte angezeigt.

So suchen Sie Produkte in einem Katalog mithilfe einer Eigenschaft

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, den Sie durchsuchen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Produkte in der Dropdownliste Suchmethode die Option Suche nach Eigenschaften aus, und klicken Sie dann auf Neu.

  4. Führen Sie in der Tabelle Ziel basiert auf den folgenden Bedingungen die folgenden Schritte aus:
    Option/Funktion | Zweck
    Wählen Sie hier eine Eigenschaft aus | Wählen Sie den Eigenschaftstyp aus.
    Wählen Sie hier einen Operator aus | Wählen Sie einen Suchoperator aus.

  5. Geben Sie den gesuchten Wert im letzten Textfeld ein.

  6. Klicken Sie auf Suchen.

    Die Suchresultate werden in der Tabelle Produkte angezeigt.

    Klicken Sie auf die Abbildung, um sie zu vergrößern oder zu verkleinern.

Siehe auch

Aktualisieren und Veröffentlichen eines Katalogs


Bearbeiten von Katalogeigenschaften

Mit dem Katalog-Editor-Modul werden Katalogeigenschaften bearbeitet. Sie können beispielsweise die Kategorie- und die Eigenschaftsinformationen oder die Anfangs- und Beendigungsdaten für einen bestimmten Katalog bearbeiten.

Anmerkung

  • Der Name eines Katalogs kann nicht bearbeitet werden.

So bearbeiten Sie Katalogeigenschaften

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, den Sie bearbeiten möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

    Der Bildschirm Katalog - Katalogname wird angezeigt. Sie können jede beliebige Eigenschaft in diesem Bildschirm ändern, die nicht durch Commerce Server zugewiesen ist. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um Ihre Bearbeitungen zu speichern und zum Bildschirm Kataloge zurückzukehren.

Nach dem Bearbeiten müssen Sie die Website aktualisieren und veröffentlichen, damit Ihre Änderungen in der Site angezeigt werden. Informationen über das Aktualisieren und Veröffentlichen Ihrer Änderungen finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.


Bearbeiten einer Kategorie

Mit dem Katalog-Editor-Modul können Sie eine vorhandene Kategorie in einem Katalog bearbeiten. Sie können z. B. den Preis bearbeiten, der einer bestimmten Kategorie zugewiesen ist. Dies wirkt sich auf die Preisberechnung für alle Produkte aus, die mit dieser Kategorie verknüpft sind.

Anmerkung

  • Der Name einer Kategorie kann nicht geändert werden.

So bearbeiten Sie eine Kategorieeigenschaft

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, in dem Sie eine Kategorie bearbeiten möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Kategorien die Kategorie in der Liste Kategorien aus, die Sie bearbeiten möchten, und klicken Sie anschließend auf Bearbeiten.

  4. Führen Sie im Bildschirm Katalog-Editor - Katalogname (Kategorie) im Bereich Kategorieeigenschaften die folgenden Schritte durch:
    Option/Funktion | Zweck
    Beschreibung | Geben Sie eine Beschreibung der Kategorieeigenschaft ein.
    Image_filename | Geben Sie den Dateinamen für das Bild ein, das in der Website für die Kategorie verwendet wird.
    Image_width | Geben Sie die numerische Breite (in Pixel) des Bildes ein.
    Image_height | Geben Sie die numerische Höhe (in Pixel) des Bildes ein.
    Preis | Geben Sie den Kategoriepreis ein.
    Suche aktivieren | Aktivieren Sie dieses Kontrollkästchen, damit die Besucher Ihrer Site in Ihrem Katalog Suchen durchführen können.

  5. Bearbeiten Sie die Eigenschaftswerte im Feld Zugewiesene Eigenschaften, wenn eine der aktuellen Kategorieeigenschaften zu ändern ist.

  6. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um Ihre Änderungen zu speichern und zum Bildschirm Katalog - Katalogname zurückzukehren.

Nach dem Bearbeiten müssen Sie die Website aktualisieren und veröffentlichen, damit Ihre Änderungen in der Site angezeigt werden. Informationen über das Aktualisieren und Veröffentlichen Ihrer Änderungen finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.


Bearbeiten eines Produkts

Mit dem Katalog-Editor-Modul können Sie ein vorhandenes Produkt in einem Katalog bearbeiten. Wenn Sie z. B. das Bild für ein Produkt in Ihrer Website bearbeiten möchten, können Sie den Namen der Bilddatei bearbeiten, sodass er dem neuen Bild entspricht.

Anmerkung

  • Der Name eines Produkts kann nicht bearbeitet werden.

So bearbeiten Sie ein Produkt

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, den Sie bearbeiten möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Produkte das Produkt in der Liste Produkte aus, das Sie bearbeiten möchten, und klicken Sie anschließend auf Bearbeiten.

  4. Führen Sie im Bildschirm Katalog-Editor - Katalogname (Produkt) folgende Schritte aus:
    Option/Funktion | Zweck
    Beschreibung | Geben Sie eine Beschreibung für die Produkteigenschaft ein.
    Image_filename | Geben Sie den Dateinamen für das Bild ein, das in der Website für das Produkt verwendet wird.
    Image_width | Geben Sie die numerische Breite (in Pixel) des Bildes ein.
    Image_height | Geben Sie die numerische Höhe (in Pixel) des Bildes ein.
    Preis | Geben Sie den Produktpreis ein (falls anwendbar).

    Anmerkung

    • Die Eigenschaftsfelder im Bildschirm können je nach ausgewähltem Produkttyp variieren. Sie können in diesem Bildschirm nur diejenigen Eigenschaften ändern, die nicht schreibgeschützt und nicht von Commerce Server 2000 zugewiesen sind.
  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Änderungen zu speichern und zum Bildschirm Katalog - Katalogname zurückzukehren.

Nach dem Bearbeiten müssen Sie die Website aktualisieren und veröffentlichen, damit Ihre Änderungen in der Site angezeigt werden. Informationen über das Aktualisieren und Veröffentlichen Ihrer Änderungen finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.


Bearbeiten von Kategoriehierarchien

Sie können eine vorhandene Kategoriehierarchie für einen ausgewählten Katalog bearbeiten. Wenn Sie über zwei übergeordnete Kategorien verfügen, die eng verwandt sind, und eine Kategorie der anderen logisch untergeordnet werden kann, können Sie die Kategoriezuweisung bearbeiten. Beispiel: Sie verfügen über die übergeordnete Kategorien "Klassik" und "Komponisten". Sie können nun "Komponisten" zu einer untergeordneten Kategorie von "Klassik" ändern.

So bearbeiten Sie eine Kategoriehierarchie

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog mit der Kategoriehierarchie aus, die Sie bearbeiten möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Kategorien die Kategorie aus, deren Hierarchie Sie bearbeiten möchten, und klicken Sie anschließend auf Bearbeiten.

  4. Wählen Sie im Bildschirm Katalog - Katalogname (Kategorie) im Bereich Zugewiesene Kategorien die Kategorie in der Liste Kategorien aus, die Sie mit dieser Unterkategorie verbinden möchten.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die bearbeitete Kategorie zu speichern und zum Bildschirm Katalog - Katalogname zurückzukehren.

Nach dem Bearbeiten müssen Sie die Website aktualisieren und veröffentlichen, damit Ihre Änderungen in der Site angezeigt werden. Informationen über das Aktualisieren und Veröffentlichen Ihrer Änderungen finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.


Bearbeiten von Produktvarianten

Mit dem Katalog-Editor-Modul werden vorhandene Produktvarianten bearbeitet. Beispiel: Sie verkaufen T-Shirts und möchten die SKU (Stockkeeping Unit) ändern. Sie können nun die vorhandene Variante des ausgewählten T-Shirts bearbeiten.

So bearbeiten Sie ein Produktvariante

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, in dem Sie eine Produktvariante bearbeiten möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Produkte das Produkt aus, von dem Sie eine Produktvariante bearbeiten möchten, und klicken Sie anschließend auf Bearbeiten.

  4. Wählen Sie im Bildschirm Katalog - Katalogname (Produkt) im Bereich Produktvarianten im Feld Produktvarianten die Produktvariante aus, die Sie bearbeiten möchten.

    Je nach Typ der Produktvariante, die Sie bearbeiten möchten, stehen im Bereich Produktvarianten unterschiedliche Eigenschaftsfelder zur Verfügung.

  5. Bearbeiten Sie die Eigenschaften in den Feldern, und klicken Sie anschließend auf Fertig.

  6. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um Ihre Änderungen zu speichern und zum Bildschirm Katalog - Katalogname zurückzukehren.

Nach dem Bearbeiten müssen Sie die Website aktualisieren und veröffentlichen, damit Ihre Änderungen in der Site angezeigt werden. Informationen über das Aktualisieren und Veröffentlichen Ihrer Bearbeitungen finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.

Siehe auch

Löschen von Produktvarianten

Preisberechnung von Produkten


Ändern eines Katalogsatzes

Sie können vorhandene Katalogsätze ändern. Sie ändern die für Ihre Benutzer angezeigten Kataloge, indem Sie aus vorhandenen Katalogsätzen Kataloge entfernen oder Kataloge hinzufügen. Änderungen der Katalogsätze wirken sich nicht auf die Inhalte einzelner Kataloge aus.

So ändern Sie einen Katalogsatz

  1. Klicken Sie im Menü Kataloge auf Katalogsätze.

  2. Wählen Sie im Bildschirm Katalogsätze den Katalogsatz aus, den Sie ändern möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  3. Ändern Sie im Bildschirm Katalogsätze die Katalogsatzeigenschaften je nach Bedarf.

  4. Wenn Sie einen Katalog aus der Liste Zugewiesene Kataloge entfernen möchten, klicken Sie auf Entfernen.

    Der Katalog wird zurück in die Liste Verfügbare Kataloge verschoben.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um Ihre Änderungen zu speichern und zum Bildschirm Katalogsätze zurückzukehren.

Nach diesen Änderungen müssen Sie die Website aktualisieren und veröffentlichen, damit die Änderungen in Ihrer Site angezeigt werden. Informationen über das Aktualisieren und Veröffentlichen Ihrer Änderungen finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.


Löschen einer Kategorie aus einem Katalog

Mit dem Katalog-Editor-Modul können Sie eine Kategorie aus einem Katalog löschen. Wenn Sie eine Kategorie aus einem Katalog löschen, wirkt sich dies auf jede Kategorie aus, die mit dieser verbunden ist, sei es durch eine Beziehung oder Hierarchie. Wenn diese Kategorie durch einen Kategoriepreis mit Produkten verbunden ist, wirkt sich das Löschen der Kategorie auch auf diese Produkte aus. Beispiel: Sie möchten eine Kategorie mit dem Namen "Nur DM 5" entfernen, verfügen jedoch über 15 CDs, die diese Kategorie als Preiskategorie verwenden. Sobald die Kategorie gelöscht ist, erhalten diese CDs wieder den Preis, den Sie ihnen auf Produktebene zugewiesen haben.

So löschen Sie eine Kategorie aus einem Katalog

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, aus dem Sie eine Kategorie löschen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Kategorien die Kategorie aus, die Sie löschen möchten, und klicken Sie anschließend auf Löschen.

    Vorsicht

    • Wenn Sie eine Kategorie löschen, wird der Löschvorgang ohne vorherige Bestätigungsaufforderung durchgeführt. Wurde die Kategorie versehentlich gelöscht, müssen Sie sie erneut zum Katalog hinzufügen.
  4. Klicken Sie auf der Symbolleiste auf Zurück, um zum Bildschirm Kataloge zurückzukehren.

Nach diesen Änderungen müssen Sie die Website aktualisieren und veröffentlichen, damit die Änderungen in Ihrer Site angezeigt werden. Informationen über das Aktualisieren und Veröffentlichen Ihrer Änderungen finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.

Siehe auch

Hinzufügen einer Kategorie zu einem Katalog

Bearbeiten einer Kategorie


Löschen eines Produkts aus einem Katalog

Mit dem Katalog-Editor-Modul können Sie ein Produkt aus einem Katalog löschen. Wenn Sie z. B. ein Produkt aus Ihrem Katalog nicht auf Lager haben und auch nicht mehr verkaufen möchten, können Sie es aus dem Katalog entfernen.

Anmerkung

  • Das Löschen von Produkten, die zu einer Produktbeziehung gehören, wirkt sich auch auf die Beziehung aus.

So löschen Sie ein Produkt

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, aus dem Sie ein Produkt löschen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Produkte in der Liste Produkte das Produkt aus, das Sie löschen möchten, und klicken Sie anschließend auf Löschen.

    Vorsicht

    • Wenn Sie ein Produkt löschen, wird der Löschvorgang ohne vorherige Bestätigungsaufforderung durchgeführt. Wurde das Produkt versehentlich gelöscht, müssen Sie es erneut zum Katalog hinzufügen.
  4. Klicken Sie auf der Symbolleiste auf Zurück, um zum Bildschirm Kataloge zurückzukehren.

Nach diesen Änderungen müssen Sie die Website aktualisieren und veröffentlichen, damit die Änderungen in Ihrer Site angezeigt werden. Informationen über das Aktualisieren und Veröffentlichen Ihrer Änderungen finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.

Siehe auch

Hinzufügen eines Produkts zu einem Katalog

Bearbeiten eines Produkts


Löschen eines Katalogs

Mithilfe des Katalog-Editor-Moduls können Sie veraltete Kataloge löschen.

Vorsicht

  • Wenn der Katalog, den Sie löschen möchten, als Grundlage für einen benutzerdefinierten Katalog dient, wird dieser benutzerdefinierte Katalog zusammen mit dem Basiskatalog gelöscht. Möchten Sie den benutzerdefinierten Katalog behalten, müssen Sie ihn exportieren, den Basiskatalog löschen und den benutzerdefinierten Katalog anschließend wieder in die Commerce Server-Datenbank importieren.

So löschen Sie einen Katalog

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, den Sie löschen möchten, und klicken Sie anschließend auf der Symbolleiste auf Löschen.

  11. Klicken Sie im Dialogfeld Löschen des Katalogs bestätigen auf Ja, um den Katalog zu löschen.

Nach diesen Änderungen müssen Sie die Website aktualisieren und veröffentlichen, damit die Änderungen in Ihrer Site angezeigt werden. Informationen über das Aktualisieren und Veröffentlichen Ihrer Änderungen finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.

Vorsicht

  • Sobald ein Katalog gelöscht ist, kann er nicht wiederhergestellt werden.

  • Der Katalog wird bis zur nächsten Aktualisierung der Website angezeigt.

Siehe auch

Exportieren eines Katalogs

Erstellen eines neuen Katalogs

Bearbeiten von Katalogeigenschaften

Ändern eines Katalogsatzes

Ändern eines Katalogschemas


Löschen eines Katalogsatzes

Wird ein vorhandener Katalogsatz nicht mehr benötigt, kann er gelöscht werden. Das Löschen eines Katalogsatzes hat keine Auswirkungen auf die darin enthaltenen Kataloge. Es wird lediglich die Gruppierung gelöscht. Beim Löschen eines Katalogsatzes, der mit vorhandenen Benutzern verknüpft ist, wird auch diese Verknüpfung zu den Benutzern gelöscht.

So löschen Sie einen Katalogsatz

  1. Klicken Sie im Menü Kataloge auf Katalogsätze.

  2. Wählen Sie im Bildschirm Katalogsätze den Katalogsatz aus, den Sie löschen möchten, und klicken Sie dann auf der Symbolleiste auf Löschen.

  11. Klicken Sie im Dialogfeld Löschen von Katalogsatz bestätigen auf Ja, um den Katalogsatz zu löschen.

Nach diesen Änderungen müssen Sie die Website aktualisieren und veröffentlichen, damit die Änderungen in Ihrer Site angezeigt werden. Informationen über das Aktualisieren und Veröffentlichen Ihrer Änderungen finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.


Löschen von Produktvarianten

Sie können jederzeit Produktvarianten eines Produkts löschen.

So löschen Sie eine Produktvariante eines Produkts

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, aus dem Sie eine Produktvariante löschen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Produkte das Produkt aus, von dem Sie eine Produktvariante löschen möchten, und klicken Sie anschließend auf Bearbeiten.

  4. Wählen Sie im Bildschirm Katalog-Editor - Katalogname (Produkt) im Bereich Produktvarianten in der Tabelle Produktvarianten die Produktvariante aus, die Sie entfernen möchten. Klicken Sie anschließend auf Entfernen

    Die Produktvariante wird aus der Tabelle Produktvarianten entfernt.

    Vorsicht

    • Wenn Sie eine Produktvariante aus einem Katalog löschen, wird der Löschvorgang ohne Bestätigungsaufforderung durchgeführt. Wurde die Produktvariante versehentlich gelöscht, müssen Sie sie erneut zum Katalog hinzufügen.
  11. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um das Entfernen der Variante zu speichern und zum Bildschirm Katalog - Katalogname zurückzukehren.

Nach diesen Änderungen müssen Sie die Website aktualisieren und veröffentlichen, damit die Änderungen in der Site angezeigt werden. Informationen über das Aktualisieren und Veröffentlichen Ihrer Änderungen finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.


Verwalten von Kategorie- und Produktbeziehungen

Kategorien und Produkte können mit anderen Kategorien und Produkten verbunden werden. Mit einer Produkt-zu-Produkt-Beziehung können Sie z. B. einen Benutzer, der einen Film kauft, auch für den zugehörigen Soundtrack interessieren. In einer Kategorie-zu-Kategorie-Beziehung können Sie Beziehungen zwischen Kategorien (z. B. zwischen CDs und Biographien) herstellen. Wenn Sie CDs mit klassischer Musik haben, verfügen Sie möglicherweise auch über Biographien von klassischen Komponisten.

Vorhandene Produkt- oder Kategoriebeziehungen können bearbeitet oder gelöscht werden. Wenn Sie eine neue Version eines Filmsoundtracks hinzufügen möchten, können Sie die Produktbeziehung für den vorhandenen Soundtrack ändern, um eine weitere Version anzubieten. Möchten Sie die Produkte in Ihrer Website neu arrangieren, können Sie mehrere Produktbeziehungen löschen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Bearbeiten einer Kategoriebeziehung

  • Bearbeiten einer Produktbeziehung

  • Löschen einer Kategoriebeziehung

  • Löschen einer Produktbeziehung


Bearbeiten einer Kategoriebeziehung

Wann immer sich eine Beziehung ändert, können die Kategoriebeziehungen entsprechend bearbeitet werden. Beispiel: Sie haben eine Kategoriebeziehung zwischen klassischer Musik und den Biographien von klassischen Komponisten erstellt. Wenn Sie nun beschließen, in Zukunft Dokumentarfilme zu klassischen Komponisten anzubieten, jedoch keine Biographien mehr zu liefern, können Sie die vorhandene Beziehung zu einer Beziehung zwischen klassischer Musik und Dokumentarfilmen ändern.

So bearbeiten Sie eine Kategoriebeziehung

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, in dem Sie eine Beziehung bearbeiten möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Kategorien die Kategorie aus, zu der Sie eine Beziehung bearbeiten möchten, und klicken Sie anschließend auf Bearbeiten.

  4. Geben Sie im Bildschirm Katalog-Editor - Katalogname (Kategorie) im Bereich Kategoriebeziehungen die erforderlichen Änderungen ein, und klicken Sie anschließend auf Annehmen, um die Beziehung zu speichern.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um Ihre Änderungen zu speichern und zum Bildschirm Katalog - Katalogname zurückzukehren.

Nach dem Bearbeiten müssen Sie Ihre Website aktualisieren und veröffentlichen, damit Ihre Änderungen in Ihrer Site angezeigt werden. Informationen über das Aktualisieren und Veröffentlichen Ihrer Änderungen finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.


Bearbeiten einer Produktbeziehung

Wann immer sich eine Beziehung ändert, können die Produktbeziehungen entsprechend bearbeitet werden. Wenn Sie beispielsweise eine Produktbeziehung zwischen einem Film und dem Soundtrack dieses Films erstellt haben und nun eine neue Remixversion des Soundtracks hinzufügen möchten, müssen Sie hierzu die Produktbeziehung bearbeiten.

So bearbeiten Sie eine Produktbeziehung

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, in dem Sie eine Produktbeziehung bearbeiten möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Produkte das Produkt aus, zu dem Sie eine Beziehung bearbeiten möchten, und klicken Sie anschließend auf Bearbeiten.

  4. Geben Sie im Bildschirm Katalog-Editor - Katalogname (Produkt) im Bereich Produktbeziehungen die erforderlichen Änderungen für die Produktbeziehung ein, und klicken Sie anschließend auf Annehmen, um die Beziehung zu speichern.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um Ihre Änderungen zu speichern und zum Bildschirm Katalog - Katalogname zurückzukehren.

Nach dem Bearbeiten müssen Sie Ihre Website aktualisieren und veröffentlichen, damit Ihre Änderungen in der Site angezeigt werden. Informationen über das Aktualisieren und Veröffentlichen Ihrer Änderungen finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.


Löschen einer Kategoriebeziehung

Kategoriebeziehungen können jederzeit gelöscht werden, wenn Sie beispielsweise eine bestimmte Produktkategorie nicht mehr verkaufen oder die Produkte in der Website neu anordnen möchten.

So löschen Sie eine Kategoriebeziehung

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, aus dem Sie eine Kategoriebeziehung löschen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Kategorien die Kategorie aus, von der Sie eine Beziehung löschen möchten, und klicken Sie anschließend auf Bearbeiten.

  4. Wählen Sie im Bildschirm Katalog-Editor - Katalogname (Kategorie) im Bereich Kategoriebeziehungen die Kategoriebeziehung aus, die Sie löschen möchten, und klicken Sie anschließend auf Löschen.

    Vorsicht

    • Beim Löschen einer Kategoriebeziehung wird der Löschvorgang ohne vorherige Bestätigungsaufforderung durchgeführt. Wenn Sie eine Beziehung versehentlich löschen, müssen Sie sie erneut zum Katalog hinzufügen.

Nach diesen Änderungen müssen Sie die Website aktualisieren und veröffentlichen, damit die Änderungen in der Site angezeigt werden. Informationen über das Aktualisieren und Veröffentlichen Ihrer Änderungen finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.


Löschen einer Produktbeziehung

Produkte können jederzeit aus Produktbeziehungen gelöscht werden. Möchten Sie z. B. die Produkte in Ihrer Website neu anordnen, können Sie mehrere Produktbeziehungen löschen.

So löschen Sie eine Produktbeziehung

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog aus, aus dem Sie eine Produktbeziehung löschen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Produkte die Eigenschaft aus, von der Sie eine Beziehung löschen möchten, und klicken Sie anschließend auf Bearbeiten.

  4. Wählen Sie im Bildschirm Katalog-Editor - Katalogname (Produkt) im Bereich Produktbeziehungen die Produktbeziehung aus, die Sie löschen möchten, und klicken Sie anschließend auf Löschen.

    Vorsicht

    • Beim Löschen einer Produktbeziehung wird der Löschvorgang ohne vorherige Bestätigungsaufforderung durchgeführt. Wenn Sie eine Beziehung versehentlich löschen, müssen Sie sie erneut zum Katalog hinzufügen.

Nach diesen Änderungen müssen Sie die Website aktualisieren und veröffentlichen, damit die Änderungen in der Site angezeigt werden. Informationen über das Aktualisieren und Veröffentlichen Ihrer Änderungen finden Sie unter Aktualisieren und Veröffentlichen eines Katalogs.


Business Desk-Bestellungen

Die Bestellmodule werden dazu verwendet, die Commerce Server-Datenbank nach bestehenden Bestellinformationen zu durchsuchen oder gespeicherte Warenkörbe zu löschen, die nicht mehr benutzt werden. Sie können z. B. mithilfe von Bestellstatuscodes die Position einer Bestellung innerhalb des Bestellablaufs ermitteln und somit herausfinden, wo eine Bestellung blockiert ist oder noch nicht gelöste Probleme haben könnte. Sie können auch Steuersätze und Versandarten hinzufügen und die Informationen dann in der Website aktualisieren.

Dieser Abschnitt beinhaltet folgende Themen:

  • Workflow für die Bestellverwaltung. Illustriert den Workflow für die Verwaltung von Bestellungen.

  • Informationen zu Bestellungen. Beschreibt die Komponenten einer Bestellung.

  • Hinzufügen von Bestellstatuscodes. Erklärt, wie Bestellstatuscodes hinzugefügt werden.

  • Hinzufügen von Ländercodes. Erklärt, wie Landes- oder Regionalkennzahlen hinzugefügt werden.

  • Hinzufügen von Kennzahlen für Bundesländer/Kantone. Erklärt, wie Kennzahlen für Bundesländer/Kantone hinzugefügt werden.

  • Anpassen der Versandarten. Erklärt die drei Versandarten, die in Microsoft Commerce Server 2000 enthalten sind und erläutert, wie diese an eine Website angepasst werden.

  • Hinzufügen von Steuersätzen. Erklärt, wie eine Tabelle hinzugefügt wird und bringt Beispiele für die Anpassung von regionalen, landesweiten, kantonalen oder bundesweiten Steuersätzen je nach Land.

  • Transaktionsveröffentlichungen auf einer Website. Erklärt, wie neue und geänderte Transaktionsinformationen wie geänderte Bestellungen, neue Steuersätze und Versandarten auf einer Website veröffentlicht werden.

  • Bearbeiten von Datencodeeigenschaften. Erklärt, wie Datencodeeigenschaften geändert werden.

  • Suchen nach Warenkörben. Erklärt, wie gespeicherte Warenkörbe angezeigt und sortiert werden.

  • Löschen von Warenkörben. Erklärt, wie nicht mehr genutzte, gespeicherte Warenkörbe gelöscht werden.

  • Suchen und Sortieren von Bestellungen. Erklärt, wie Bestellungen gesucht und sortiert werden.

  • Löschen von Bestellungen. Erklärt, wie Bestellungen in der Commerce Server-Datenbank gelöscht werden.

  • Verwalten von Datencodes und Steuersätzen. Erklärt, wie Datencodes und Steuersätze bearbeitet und gelöscht werden.


Workflow für die Bestellverwaltung

Die folgende Abbildung illustriert ein Beispielszenario für die Eingabe von Bestellstatuscodes, Landes-/Regionalkennzahlen, Bundesland-/Kantonkennzahlen, das Anpassen von Versandarten und Hinzufügen von Steuersätzen.

Workflowdiagramm für die Bestellverwaltung
Bestellstatus
Versandarten anpassen
Bestellstatus
Bestellstatuscodes hinzufügen
Ländercodes hinzufügen
Steuersätze hinzufügen
Transaktionen in Ihrer Website veröffentlichen
Codes für Bundesländer und Kantone hinzufügen
Neue Bestellungen
Gespeicherte Bestellungen
Warenkörbe
Gebühr nach Gewicht
Gebühr nach Menge
Gebühr nach Zwischensumme
Bestellstatus
Versandarten
Steuersätze
Transaktionen veröffentlichen

  1. Im Bestellstatusmodul werden Bestellstatuscodes hinzugefügt, mit denen Bestellungen verfolgt werden können, die von den Benutzern der Website abgegeben worden sind. Führen Sie diesen Schritt nur durch, wenn die standardmäßigen Bestellstatuscodes nicht den Anforderungen Ihres Unternehmens entsprechen.

  2. Im Bestellstatusmodul werden Landes-/Regionalcodes hinzugefügt, die in der Website als Versandoption für die Benutzer angezeigt werden.

  3. Im Bestellstatusmodul werden Bundesland-/Kantonkennzahlen hinzugefügt, die in der Website als Versandoption für die Benutzer angezeigt werden.

  4. Im Versandartenmodul werden die Versandarten angepasst, die den Benutzern der Website zur Verfügung stehen.

  5. Im Steuersatzmodul werden Steuersätze hinzugefügt.

  6. Im Transaktionsveröffentlichungsmodul werden die Änderungen in der Website veröffentlicht.

Siehe auch

Informationen zu Bestellungen

Hinzufügen von Bestellstatuscodes

Hinzufügen von Ländercodes

Hinzufügen von Kennzahlen für Bundesländer/Kantone

Anpassen der Versandarten


Informationen zu Bestellungen

Mithilfe der Bestellmodule von Commerce Server Business Desk können Informationen über den Bestellstatus angezeigt, die in Bestellungen verwendeten Datencodes gepflegt und die von Benutzern in der Website erteilten Aufträge (Bestellungen) verwaltet werden. Der Warenkorb-Manager wird z. B. dafür verwendet, Warenkörbe zu löschen, die von Benutzern aufgegeben wurden. Im Bestellmodul können Steuersätze hinzugefügt und Versandarten angepasst werden.

Datencodes

Versandarten

Bestellungen

Aufgegebene Warenkörbe

Datencodes

Mithilfe des Datencodemoduls können Sie Codes hinzufügen, die in der Website angezeigt werden und Ihnen helfen, von Benutzern in Auftrag gegebene Bestellungen zu verfolgen.

Bestellstatuscodes

Bestellstatuscodes werden dazu verwendet, die Position einer Bestellung innerhalb des Bestellablaufs zu ermitteln und herauszufinden, wo eine Bestellung blockiert ist oder noch nicht gelöste Probleme haben könnte. Es gibt standardmäßig drei Bestellstatuscodes: 4 (Neue Bestellung), 2 (Gespeicherte Bestellung) und 1 (Warenkorb).

Wenn Benutzer Artikel zum Warenkorb hinzufügen oder Bestellungen an die Website absenden, erhalten die Bestellungen jeweils Statuscodes. Eine neue Bestellung, die noch nicht verarbeitet worden ist, erhält z. B. den Statuscode 4 (Neue Bestellung). Bestellstatuscodes helfen zu ermitteln, an welcher Position innerhalb des Bestellablaufs eine bestimmte Bestellung sich befindet.

In manchen Fällen, wie bei den Bestellstatuscodes, können die bestehenden Standardcodes von Commerce Server verwendet werden; wenn diese jedoch nicht ausreichend sind und Sie neue Codes benötigen, können Sie diese direkt über das Datencodemodul von Business Desk eingeben. Weitere Informationen zum Hinzufügen von Bestellstatuscodes finden Sie unter Hinzufügen von Bestellstatuscodes.

Landes-/Regionalkennzahlen und Kennzahlen für Bundesländer/Kantone

Mithilfe der Landes-/Regionalkennzahlen und Kennzahlen für Bundesländer/Kantone können geografische Informationen für Zwecke des Versands und der Rechnungslegung angezeigt werden. Landes-/Regionalkennzahlen bezeichnen die Länder oder Regionen, in welche die Artikel nach den Angaben der Benutzer der Site gesendet werden sollen. Kennzahlen für Bundesländer/Kantone bezeichnen die Bundesländer oder Kantone, wohin die Artikel gemäß Bestellung geschickt werden sollen.

Beim Eingeben der Datencodes muss eine bestimmte Reihenfolge beachtet werden:

  1. Geben Sie eine Landes-/Regionalkennzahl ein, bevor Sie eine neue Bundesland- oder Kantonkennzahl eingeben.

  2. Geben Sie dann eine Kennzahl für das Bundesland oder den Kanton ein.

  3. Legen Sie anschließend den Steuersatz fest.

Wenn Benutzer auf der Site Artikel bestellen, füllen Sie ein Profilformular aus, in dem die jeweilige Versandadresse enthalten ist. Die Profilformulare der Website enthalten die von Ihnen festgelegten Kennzahlen für Bundesländer/Kantone und Landes-/Regionalkennzahlen.

Versandarten

Damit ein Benutzer in der Website eine Bestellung aufgeben kann, muss wenigstens eine Versandart zur Verfügung stehen. Commerce Server 2000 hat drei Standardversandarten: Gebühr nach Gewicht, nach Menge oder nach Zwischensumme. Wenn Sie weitere Versandarten benötigen oder einen Expressdienst verwenden (wie UPS oder DHL), mit dem die Anwendung eines anderen Anbieters zur Verfügung gestellt wird, müssen Sie sich mit Ihrem Siteentwickler in Verbindung setzen, um Hilfe zu erhalten. Wenn Sie eine Anwendung eines Drittanbieters verwenden, die von einem Expressdienst zur Verfügung gestellt wird, sollten Sie sich mit diesem in Verbindung setzen, um die dort verwendeten Standardländercodes (wie DE für Deutschland oder FR für Frankreich) zu erfahren, bevor Sie Ländercodes zu Ihrer Commerce Server-Datenbank hinzufügen. Weitere Informationen über Versandarten finden Sie unter Anpassen der Versandarten.

Informationen über das Hinzufügen einer Versandart oder einer Anwendung eines Drittanbieters erhalten Sie bei Ihrem Siteentwickler.

Bestellungen

Nachdem ein Benutzer eine Bestellung an die Website abgeschickt hat, wird diese von der Commerce Server Order Processing Pipeline verarbeitet. Diese Order Processing Pipeline (OPP) teilt die Auftragsbearbeitung in Phasen auf, die jeweils eine Arbeitskategorie beschreiben. Eine typische OPP kann aus einer Kundeninformationsphase, einer Zahlungsphase und einer Versandphase bestehen, die jeweils getrennt verarbeitet werden. So werden z. B. die Produktbeschreibung und die Versandadressen des Benutzers aus der Commerce Server-Datenbank abgerufen, worauf die Berechnung der Steuer erfolgt. Diese Informationen und der Gesamtpreis werden für die Bestellung in der Commerce Server-Datenbank gespeichert.

Mithilfe des Bestellstatusmoduls können die Informationen über den Bestellstatus sowie alle weiteren Einzelheiten eines Auftrags einschließlich Auftragskopf und Informationen über die Artikelpositionen angezeigt werden. Sie können nach bestimmten Aufträgen suchen, die von einem Besucher Ihrer Site erteilt wurden. So können Sie z. B. eine Bestellung nach der Artikelbeschreibung, der Produkt-ID oder der Auftragsnummer suchen. Sie können die Bestellungen auch sortieren, um die gesuchten Informationen deutlicher anzuzeigen. Beispielsweise können Bestellungen nach dem Bestellstatus oder dem Nachnamen des Benutzers sortiert werden.

Sie können Microsoft BizTalk Server 2000 und Business Desk Orders zusammen verwenden, um Bestellungen zu verarbeiten, die auf einer Commerce Server-Website von den Benutzern aufgegeben werden. Nehmen wir z. B. an, dass Sie auf Ihrer Site Computerhardware verkaufen. Ein Teil dieser Hardware wird von Ihrem Unternehmen gefertigt, und ein anderer wird Ihnen von Handelspartnern zugeliefert. Mit BizTalk Server können Sie mit jedem Handelspartner, der die Hardware liefert, die Sie auf Ihrer Site verkaufen, ein Handelsabkommen abschließen. Wenn ein Benutzer Ihre Site besucht und eine Bestellung für eines Ihrer Produkte aufgibt, das von einem Handelspartner geliefert wird, dann verarbeitet Commerce Server die Bestellung, sendet sie an BizTalk Server und BizTalk Server sendet die Bestellung anschließend an den Handelspartner zur Auslieferung. Weitere Informationen über die Integration von BizTalk Server in Business Desk Orders erhalten Sie bei Ihrem Systemadministrator.

Aufgegebene Warenkörbe

Wenn Benutzer Einkäufe auf Ihrer Site tätigen, befördern sie die Artikel, die sie kaufen möchten, in einen virtuellen "Warenkorb". Wenn Benutzer auschecken (d. h. virtuell an die Kasse gehen), sind alle für den Kauf vorgesehenen Artikel im Warenkorb aufgeführt. Benutzer können sich von der Website abmelden, ohne auszuchecken oder den Warenkorb zu leeren. Diese aufgegebenen Warenkörbe verbleiben so lange in der Commerce Server-Datenbank, bis sie vom Administrator gelöscht werden oder Benutzer zurückkehren und ihre Warenkörbe selbst löschen. Benutzer können ihre Warenkörbe auch speichern und diese unbegrenzt in der Commerce Server-Datenbank belassen.

Um zu verhindern, dass eine große Zahl aufgegebener oder gespeicherter Warenkörbe in der Commerce Server-Datenbank zu viel Speicherplatz belegt, müssen Warenkörbe, die aufgegeben oder eine gewisse Zeit gespeichert worden sind, regelmäßig gelöscht werden. Im Suchbereich des Warenkorb-Manager-Moduls können Sie mithilfe von Filterkriterien nach Warenkörben suchen, die gelöscht werden sollen. So können Sie z. B. nach Warenkörben suchen, die aufgegeben oder länger als zwei Wochen gespeichert worden sind und diese dann löschen. Weitere Informationen erhalten Sie unter Löschen von Warenkörben.

Siehe auch

Anpassen der Versandarten

Bearbeiten von Datencodeeigenschaften

Hinzufügen von Bestellstatuscodes

Hinzufügen von Ländercodes

Hinzufügen von Kennzahlen für Bundesländer/Kantone

Suchen nach Warenkörben

Suchen und Sortieren von Bestellungen


Hinzufügen von Bestellstatuscodes

Bestellstatuscodes werden dazu verwendet, um die Position einer Bestellung innerhalb des Bestellablaufs zu ermitteln und herauszufinden, wo eine Bestellung blockiert ist oder noch nicht gelöste Probleme haben könnte. Ein Bestellstatuscode identifiziert die Bezeichnung eines bestimmten Abschnitts innerhalb des Bestellablaufs durch einen Code. Wenn z. B. ein Benutzer vor acht Wochen zwei CDs und zwei T-Shirts bestellt hat, können Sie die Bestellstatuscodes dieses Auftrags anzeigen um zu ermitteln, an welcher Stelle des Bestellablaufs der Auftrag sich momentan befindet. Es gibt standardmäßig drei Bestellstatuscodes: 4 (Neue Bestellung), 2 (Gespeicherte Bestellung) und 1 (Warenkorb).

So fügen Sie einen Bestellstatuscode hinzu

  1. Klicken Sie im Menü Bestellungen auf Datencodes.

  2. Klicken Sie auf dem Bildschirm Bestellstatuscodes auf der Symbolleiste auf das Symbol Anzeigen, wählen Sie in der Dropdownliste Bestellstatuscodes aus, und klicken Sie dann auf der Symbolleiste auf Hinzufügen.

  3. Führen Sie auf dem Bildschirm Datencodes: Bestellstatuscodes folgende Schritte aus:
    Option/Funktion | Zweck
    Code | Eingeben des zu erstellenden numerischen Bestellstatuscodes.
    Name | Eingeben des Namens für den Bestellstatuscode.
    Beschreibung | Eingeben einer Beschreibung für den Bestellstatuscode.

  4. Um den Bestellstatuscode zu speichern und mit der Eingabe neuer Bestellstatuscodes fortzufahren, klicken Sie auf der Symbolleiste auf Speichern und neuen Bestellstatuscode erstellen.

Sie können nun den nächsten neuen Bestellstatuscode eingeben.

Um die Bestellstatuscodes zu speichern und zum Bildschirm Bestellstatuscodes zurückzukehren, klicken Sie auf der Symbolleiste auf Speichern und zurück.

Anmerkung

  • Nach Hinzufügen eines neuen Bestellstatuscodes muss der Systemadministrator auf jedem Webserver die Commerce Server-Anwendung aus dem Speicher nehmen (d. h. beenden und neu starten), damit die Änderungen wirksam werden. Weitere Informationen finden Sie in der Hilfe zu Commerce Server 2000 unter "Entfernen einer Anwendung aus dem Speicher".

Siehe auch

Workflow für die Bestellverwaltung

Informationen zu Bestellungen

Hinzufügen von Ländercodes

Hinzufügen von Kennzahlen für Bundesländer/Kantone

Verwalten von Datencodes und Steuersätzen


Hinzufügen von Ländercodes

Landes-/Regionalkennzahlen werden erstellt, um Länder und Regionen zu identifizieren, in welche die auf einer Site bestellten Artikel nach Angaben der Besteller zu schicken sind. Landes-/Regionalkennzahlen benennen die Länder, die in der Website angezeigt werden. Commerce Server stellt verschiedene Ländercodes wie z. B. für die Vereinigten Staaten, Japan, Deutschland und Kanada zur Verfügung.

Anmerkungen

  • Landes- oder Regionalkennzahlen müssen in der Commerce Server-Datenbank aufgenommen werden, bevor die Kennzahlen für Bundesländer/Kantone für das Land oder die Region hinzugefügt werden können. Wenn Sie versuchen, eine Kennzahl für Bundesländer/Kantone einzugeben, welche zu einem noch nicht erfassten Land oder einer noch nicht erfassten Region gehören, erhalten Sie eine Fehlermeldung.

  • Wenn Sie eine Plugin-Anwendung verwenden müssen, die von einem Expressdienst zur Verfügung gestellt wird, sollten Sie sich mit diesem in Verbindung setzen, um die dort verwendeten Standardländercodes (wie DE für Deutschland oder FR für Frankreich) zu erfahren, bevor Sie Landes-/Regionalkennzahlen zu Ihrer Commerce Server-Datenbank hinzufügen.

So fügen Sie eine Landes-/Regionalkennzahl hinzu

  1. Klicken Sie im Menü Bestellungen auf Datencodes.

  2. Klicken Sie auf dem Bildschirm Bestellstatuscodes auf der Symbolleiste auf das Symbol Anzeigen, wählen Sie in der Dropdownliste Landes-/Regionalkennzahlen aus, und klicken Sie dann auf der Symbolleiste auf Hinzufügen.

  3. Führen Sie auf dem Bildschirm Ländercodes folgende Schritte aus:
    Option/Funktion | Zweck
    Landes-/Regionalkennzahl | Eingeben eines alphabetischen Codes für das Land oder die Region.
    Angezeigter Name | Eingeben des Landes- oder Regionsnamens.
    Beschreibung | Eingeben einer Beschreibung der Landes-/Regionalkennzahl, falls erforderlich.

  4. Um den Ländercode zu speichern und zum Bildschirm Landes-/Regionalkennzahlen zurückzukehren, klicken Sie auf der Symbolleiste auf Speichern und zurück.

Der neue Ländercode wird auf dem Bildschirm Landes-/Regionalkennzahlen angezeigt.

Anmerkung

  • Nach Hinzufügen eines Ländercodes muss der Systemadministrator auf jedem Webserver die Commerce Server-Anwendung aus dem Speicher nehmen (d. h. beenden und neu starten), damit die Änderungen wirksam werden. Weitere Informationen finden Sie in der Hilfe zu Commerce Server 2000 unter "Entfernen einer Anwendung aus dem Speicher".

Siehe auch

Workflow für die Bestellverwaltung

Informationen zu Bestellungen

Hinzufügen von Kennzahlen für Bundesländer/Kantone

Verwalten von Datencodes und Steuersätzen


Hinzufügen von Kennzahlen für Bundesländer/Kantone

Kennzahlen für Bundesländer/Kantone werden zur Commerce Server-Datenbank hinzugefügt, um die Bundesländer und Kantone zu identifizieren, in die Bestellungen versendet werden. Die Kennzahlen für Bundesländer/Kantone identifizieren diejenigen Bundesländer und Kantone, die in der Website angezeigt werden.

Anmerkung

  • Landes-/Regionalkennzahlen müssen in der Commerce Server-Datenbank aufgenommen werden, bevor die Kennzahlen für Bundesländer/Kantone für das Land oder die Region hinzugefügt werden können. Wenn Sie versuchen, eine Kennzahl für Bundesländer/Kantone einzugeben, welche zu einem noch nicht erfassten Land oder einer noch nicht erfassten Region gehören, erhalten Sie eine Fehlermeldung. Weitere Informationen über das Hinzufügen von Landes-/Regionalkennzahlen finden Sie unter Hinzufügen von Ländercodes.

So fügen Sie die Kennzahl für Bundesländer/Kantone hinzu

  1. Klicken Sie im Menü Bestellungen auf Datencodes.

  2. Klicken Sie auf dem Bildschirm Bestellstatuscodes auf der Symbolleiste auf das Symbol Anzeigen, wählen Sie in der Dropdownliste Kennzahlen für Bundesländer/Kantone aus, und klicken Sie dann auf der Symbolleiste auf Hinzufügen.

  3. Führen Sie auf dem Bildschirm Kennzahlen für Bundesländer/Kantone folgende Schritte aus:
    Option/Funktion | Zweck
    Kennzahl für Bundesland/Kanton | Eingeben eines alphabetischen Codes für das Bundesland bzw. den Kanton.
    Angezeigter Name | Eingeben des Namens für das Bundesland bzw. den Kanton.
    Beschreibung | Eingeben einer Beschreibung der Kennzahl für Bundesländer/Kantone, falls erforderlich.

  4. Um die Änderungen zu speichern und zum Bildschirm Kennzahlen für Bundesländer/Kantone zurückzukehren, klicken Sie auf der Symbolleiste auf Speichern und zurück.

Die neue Kennzahl für Bundesländer/Kantone wird in der Commerce Server-Datenbank gespeichert.

Anmerkung

  • Nach Hinzufügen einer Kennzahl für Bundesländer/Kantone muss der Systemadministrator auf jedem Webserver die Commerce Server-Anwendung aus dem Speicher nehmen (d. h. beenden und neu starten), damit die Änderungen wirksam werden. Weitere Informationen finden Sie in der Hilfe zu Commerce Server 2000 unter "Entfernen einer Anwendung aus dem Speicher".

Siehe auch

Workflow für die Bestellverwaltung

Informationen zu Bestellungen

Hinzufügen von Ländercodes

Verwalten von Datencodes und Steuersätzen


Anpassen der Versandarten

Commerce Server Business Desk unterstützt drei Versandarten:

  • Gebühr nach Gewicht. Verwenden Sie diese Methode, um dem Benutzer Versandspesen nach dem Gewicht der Bestellung in Rechnung zu stellen. Diese Methode wird verwendet, um Gebühren für bestimmte Gewichtsgruppen festzulegen. Der Versand eines einzelnen Artikels mit einem Gewicht zwischen 2 und 3 kg würde z. B. 8,00 DM kosten. Bei Versand eines 6 kg schweren Artikels würden die Versandspesen vielleicht 16,00 DM betragen.

    Anmerkung

    • Um eine Gebühr nach Gewicht zu erheben, müssen alle Produkte im Katalog die Angabe eines Gewichts zulassen. Wenn Sie Produkte haben, die keine Gewichtsangaben unterstützen, wird diese Option in Ihrer Website nicht einwandfrei funktionieren. Informationen über Produktdefinitionen und das Hinzufügen von Produkten zu einem Katalog erhalten Sie unter Hinzufügen eines Produkts zu einem Katalog.
  • Gebühr nach Menge. Verwenden Sie diese Methode, um Versandspesen nach Menge der bestellten Artikel in Rechnung zu stellen. Sie können die Gebühr für eine genaue Zahl oder für einen Mengenbereich von Artikeln festlegen. So könnte z. B. der Versand einer Bestellung von bis zu 3 Artikeln 4,00 DM kosten. Wurden mehr als 3 Artikel bestellt, würde die Versandgebühr vielleicht 8,00 DM betragen.

  • Gebühr nach Zwischensumme. Verwenden Sie diese Methode, um Versandspesen nach der Zwischensumme, d. h. dem Bestellwert, in Rechnung zu stellen. So könnte z. B. der Versand einer Bestellung von 4 CDs zum Gesamtpreis von 70,00 DM eine Gebühr von 6,00 DM nach sich ziehen. Beim Versand einer CD zum Preis von 34,99 DM könnten die Versandspesen nur 4,00 DM betragen.

Sie können die Eigenschaften einer ausgewählten Versandart auch ändern. Wenn sich z. B. die Frachtkosten ändern, können Sie die Kosten pro Versandart entsprechend ändern.

Wenn Sie Paketdienste wie UPS oder Federal Express verwenden, die eine Reihe von Versandoptionen anbieten, oder einen Paketdienst, dessen Frachtsätze nach Gewicht und Zone berechnet werden (z. B. UPS), dann müssen Sie die Pipeline-Komponente dieses Paketdienstes verwenden. Um Informationen über das Installieren einer eigenen Versandart oder der Pipelinekomponente eines Drittanbieters zu erhalten, setzen Sie sich bitte mit Ihrem Systemadministrator in Verbindung.

So fügen Sie die Versandart "Gebühr nach Gewicht" hinzu

So fügen Sie die Versandart "Gebühr nach Menge" hinzu

So fügen Sie die Versandart "Gebühr nach Zwischensumme" hinzu

So bearbeiten Sie Versandarteigenschaften

So fügen Sie die Versandart "Gebühr nach Gewicht" hinzu

  1. Klicken Sie im Menü Bestellungen auf Versandarten.

  2. Klicken Sie auf dem Bildschirm Versandarten auf der Symbolleiste auf Hinzufügen, und wählen Sie dann in der Dropdownliste die Option Gebühr nach Gewicht aus.

  3. Führen Sie auf dem Bildschirm Gebühr nach Gewicht: Neu im Bereich Versandarteigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Eingeben eines Namens für die Versandart.
    Beschreibung | Eingeben einer Beschreibung der Versandart.
    Aktiviert | Aktivieren dieses Kontrollkästchens, um diese Versandart zur Verfügung zu stellen. Wenn Sie die Versandart nicht aktivieren, wird sie nicht in der Website angezeigt.

  4. Klicken Sie im Bereich Tarife auf Neu, und führen Sie dann folgende Schritte aus:
    Option/Funktion | Zweck
    Gewicht bis zu | Eingeben eines Höchstgewichts für den betreffenden Tarif.
    Versandkosten | Eingeben des Versandkostenbetrags.

  5. Klicken Sie auf Übernehmen.

  6. Nachdem Sie alle Tarife eingegeben haben, klicken Sie auf die letzte Zeile der Gebührenliste, die den Text über eingegebenes Höchstgewicht enthält, und klicken Sie dann auf Bearbeiten.

    Wichtig

    • Sie müssen die letzte Zeile unter Tarife bearbeiten, um die Versandart speichern zu können.
  7. Geben Sie den höchsten Tarif für diese Versandart ein, und klicken Sie dann auf Übernehmen.

  8. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Versandart zu speichern und zum Bildschirm Versandarten zurückzukehren.

Die Versandart "Gebühr nach Gewicht" ist damit gespeichert.

Anmerkungen

  • Alle Produkte in sämtlichen Katalogen müssen Gewichtsangaben unterstützen, damit die Versandart "Gebühr nach Gewicht" funktionieren kann. Das heißt, die Gewichtseigenschaft muss jeder Produktdefinition zugeordnet sein. Weitere Informationen erhalten Sie unter Hinzufügen einer Produktdefinition.

  • Um die Site zu aktualisieren, muss das Transaktionsveröffentlichungsmodul verwendet werden. Weitere Informationen erhalten Sie unter Veröffentlichen von Transaktionen in der Website.

So fügen Sie die Versandart "Gebühr nach Menge" hinzu

  1. Klicken Sie im Menü Bestellungen auf Versandarten.

  2. Klicken Sie auf dem Bildschirm Versandarten auf der Symbolleiste auf Hinzufügen, und wählen Sie dann in der Dropdownliste die Option Gebühr nach Menge aus.

  3. Führen Sie auf dem Bildschirm Gebühr nach Zwischensumme: Neu im Bereich Versandarteigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Eingeben eines Namens für die Versandart.
    Beschreibung | Eingeben einer Beschreibung der Versandart.
    Aktiviert | Aktivieren dieses Kontrollkästchens, um diese Versandart zur Verfügung zu stellen. Wenn Sie die Versandart nicht aktivieren, wird sie nicht in der Website angezeigt.

  4. Klicken Sie im Bereich Tarife auf Neu, und führen Sie dann folgende Schritte aus:
    Option/Funktion | Zweck
    Menge bis zu | Eingeben der Höchstmenge für den entsprechenden Tarif.
    Versandkosten | Eingeben des Versandkostenbetrags.

  5. Klicken Sie auf Übernehmen.

  6. Nachdem Sie alle Versandkosten eingegeben haben, klicken Sie auf die letzte Zeile der Gebührenliste, die den Text über eingegebene Höchstmenge enthält, und klicken Sie dann auf Bearbeiten.

    Wichtig

    • Sie müssen die letzte Zeile unter Tarife bearbeiten, um die Versandart speichern zu können.
  7. Geben Sie den höchsten Tarif für diese Versandart ein, und klicken Sie dann auf Übernehmen.

  8. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Versandart zu speichern und zum Bildschirm Versandarten zurückzukehren.

Die Versandart "Gebühr nach Menge" ist damit gespeichert.

Anmerkung

  • Um die Site zu aktualisieren, muss das Transaktionsveröffentlichungsmodul verwendet werden. Weitere Informationen erhalten Sie unter Veröffentlichen von Transaktionen in der Website.

So fügen Sie die Versandart "Gebühr nach Zwischensumme" hinzu

  1. Klicken Sie im Menü Bestellungen auf Versandarten.

  2. Klicken Sie auf dem Bildschirm Versandarten auf der Symbolleiste auf Hinzufügen, und wählen Sie dann in der Dropdownliste die Option Gebühr nach Zwischensumme aus.

  3. Führen Sie auf dem Bildschirm Gebühr nach Zwischensumme: Neu im Bereich Versandarteigenschaften folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Eingeben des Namens der Versandart.
    Beschreibung | Eingeben der Beschreibung der Versandart.
    Aktiviert | Aktivieren dieses Kontrollkästchens, um diese Versandart zur Verfügung zu stellen. Wenn Sie die Versandart nicht aktivieren, wird sie nicht in der Website angezeigt.

  4. Klicken Sie im Bereich Tarife auf Neu, und führen Sie dann folgende Schritte aus:
    Option/Funktion | Zweck
    Preis bis zu | Eingeben der höchstzulässigen Zwischensumme für den betreffenden Tarif.
    Versandkosten | Eingeben des Versandkostenbetrags.

  5. Klicken Sie auf Übernehmen.

  6. Nachdem Sie alle Versandkosten eingegeben haben, klicken Sie auf die letzte Zeile der Gebührenliste, die den Text über eingegebene Höchstsumme enthält, und klicken Sie dann auf Bearbeiten.

    Wichtig

    • Sie müssen die letzte Zeile unter Tarife bearbeiten, um die Versandart speichern zu können.
  7. Geben Sie den höchsten Tarif für diese Versandart ein, und klicken Sie dann auf Übernehmen.

  8. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Versandart zu speichern und zum Bildschirm Versandarten zurückzukehren.

Die Versandart "Gebühr nach Zwischensumme" ist damit gespeichert.

Anmerkung

  • Um die Site zu aktualisieren, muss das Transaktionsveröffentlichungsmodul verwendet werden. Weitere Informationen erhalten Sie unter Veröffentlichen von Transaktionen in der Website.

So bearbeiten Sie Versandarteigenschaften

  1. Klicken Sie im Menü Bestellungen auf Versandarten.

  2. Wählen Sie auf dem Bildschirm Versandarten die Versandart, die Sie bearbeiten möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  3. Bearbeiten Sie auf dem Bildschirm Gebühr nach Art: Versandartname öffnen die Eigenschaften der Versandart.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um Ihre Änderungen zu speichern und zum Bildschirm Versandarten zurückzukehren.

Die bearbeitete Versandart wird nun gespeichert.

Anmerkung

  • Um die Site zu aktualisieren, muss das Transaktionsveröffentlichungsmodul verwendet werden. Weitere Informationen erhalten Sie unter Veröffentlichen von Transaktionen in der Website.

Siehe auch

Workflow für die Bestellverwaltung

Informationen zu Bestellungen

Veröffentlichen von Transaktionen in der Website

Verwalten von Datencodes und Steuersätzen


Hinzufügen von Steuersätzen

Die einzelnen Bundesländer/Kantone und Länder/Regionen haben unterschiedliche Steuersätze, und manche erheben überhaupt keine Steuer. Mithilfe des Steuersatzmoduls können die Steuersätze unterschiedlicher Länder/Regionen und Bundesländer/Kantone hinzugefügt werden.

Anmerkung

  • Die Kennzahlen für Länder/Regionen und Bundesländer/Kantone müssen eingerichtet sein, bevor Steuersätze hinzugefügt werden können. Weitere Informationen über das Hinzufügen von Kennzahlen für Länder/Regionen und Bundesländer/Kantone erhalten Sie unter Hinzufügen von Ländercodes und Hinzufügen von Kennzahlen für Bundesländer/Kantone.

So fügen Sie einen Steuersatz hinzu

  1. Klicken Sie im Menü Bestellungen auf Steuersätze.

  2. Klicken Sie auf dem Bildschirm Steuer auf Neu, und führen Sie anschließend folgende Schritte aus:
    Option/Funktion | Zweck
    Land/Region | Auswählen eines Landes oder einer Region in der Dropdownliste.
    Bundesland/Kanton | Auswählen eines Bundeslandes oder eines Kantons in der Dropdownliste.
    Steuersatz | Eingeben eines Steuersatzes in Prozent mithilfe einer Dezimalzahl. Ein Steuersatz von 8,6% wird mit 8,6 eingegeben.

    Anmerkung

    • Ein Steuersatz, der für ein bestimmtes Bundesland oder einen bestimmten Kanton festgelegt wird, besitzt eine höhere Priorität als ein global für alle Bundesländer/Kantone eines Landes oder einer Region festgelegter Steuersatz.
  3. Klicken Sie auf Übernehmen.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den Steuersatz zu speichern und zum von Business Desk-Startbildschirm zurückzukehren.

Der Steuersatz wird nun gespeichert.

Anmerkung

  • Um die Site zu aktualisieren, muss das Transaktionsveröffentlichungsmodul verwendet werden. Weitere Informationen erhalten Sie unter Veröffentlichen von Transaktionen in der Website.

Siehe auch

Workflow für die Bestellverwaltung

Informationen zu Bestellungen

Verwalten von Datencodes und Steuersätzen

Veröffentlichen von Transaktionen in der Website


Veröffentlichen von Transaktionen in der Website

Mithilfe des Transaktionsveröffentlichungsmoduls kann eine Site sofort mit neu hinzugefügten Informationen wie geänderten Bestellungen, neuen Steuersätzen und Versandarten aktualisiert werden.

So veröffentlichen Sie Steuer-, Versand- und Bestellinformationen

  1. Klicken Sie im Menü Bestellungen auf Transaktionen veröffentlichen.

Nur die aktiven Caches werden auf dem Bildschirm Transaktionen veröffentlichen aufgeführt. Wenn auf dem Bildschirm keine Caches angezeigt werden, sind keine zu veröffentlichenden Daten vorhanden.

  2. Wählen Sie in der Liste der aktiven Caches den oder die Caches, die Sie auf der Site aktualisieren möchten, und klicken Sie dann auf der Symbolleiste auf Katalog veröffentlichen.

Alle Bestellinformationen, einschließlich neuer Bestellungen, geänderter Bestellungen, Steuer- und Versandinformationen, werden sofort auf der Site aktualisiert.

Siehe auch

Informationen zu Bestellungen

Anpassen der Versandarten

Hinzufügen von Steuersätzen


Bearbeiten von Datencodeeigenschaften

Sie können die Eigenschaften eines ausgewählten Datencodes anzeigen und bearbeiten. Die eigentliche Codenummer kann jedoch nicht geändert werden. Weitere Informationen über das Löschen von Datencodes erhalten Sie unter Verwalten von Datencodes und Steuersätzen.

Vorsicht

  • Wenn Sie versehentlich einen Datencode geändert haben, müssen Sie zur Behebung dieses Fehlers dem geänderten Datencode eine Nummer zuweisen, die noch nicht von bestehenden Datencodes verwendet wird und dann die alte Datencodenummer erneut zuweisen. Dadurch wird die fehlerhaft hinzugefügte Nummer ersetzt.

So bearbeiten Sie Eigenschaften von Datencodes

  1. Klicken Sie im Menü Bestellungen auf Datencodes.

  2. Klicken Sie auf dem Bildschirm Bestellstatuscodes auf der Symbolleiste auf Anzeigen, und wählen Sie dann in der Dropdownliste den Datencodetyp, den Sie anzeigen möchten.

  3. Wählen Sie den Datencode, den Sie bearbeiten möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  4. Bearbeiten Sie auf dem Bildschirm Datencode die Datencode-Eigenschaften, und klicken Sie dann auf der Symbolleiste auf Speichern und zurück.

Der bearbeitete Datencode wird nun gespeichert.

Anmerkungen

  • Nach Hinzufügen eines Datencodes muss der Systemadministrator auf jedem Webserver die Commerce Server-Anwendung aus dem Speicher nehmen (d. h. beenden und neu starten), damit die Änderungen wirksam werden. Weitere Informationen finden Sie in der Hilfe zu Commerce Server 2000 unter "Entfernen einer Anwendung aus dem Speicher".

  • Setzen Sie sich außerdem mit Ihrem Systemadministrator in Verbindung, damit die Änderungen der Datencodes in der Website implementiert werden.

Siehe auch

Informationen zu Bestellungen


Suchen nach Warenkörben

Sie können bestehende Warenkörbe nach Datum oder nach Organisation suchen oder alle aktuell in der Website vorhandenen Warenkörbe auflisten. Wenn Sie Warenkörbe nach dem Datum des letzten Zugriffs sortieren, können Sie ermitteln, welche Warenkörbe aufgegeben wurden und diese dann löschen.

So sortieren Sie Warenkörbe

  1. Klicken Sie im Menü Bestellungen auf Warenkorb-Manager.

  2. Klicken Sie auf dem Bildschirm Warenkorb-Manager im Feld Suchen nach auf den Dropdownpfeil, und wählen Sie dann in der Dropdownliste eine der folgenden Optionen:
    Option/Funktion | Zweck
    Letzter Zugriff am Für die Suche nach Datum haben Sie folgende Möglichkeiten:
    • Wählen Sie in der Dropdownliste die Option Von aus. Geben Sie den Datumsbereich ein, oder wählen Sie die Daten in den Dropdownkalendern Von und Bis aus.

    • Sie haben auch die Möglichkeit, in der Dropdownliste die Option Am oder vor dem auszuwählen. Geben Sie das Datum ein, oder wählen Sie es im Dropdownkalender aus.
    Organisation | Um nach Organisation zu sortieren, geben Sie den Namen der Organisation ein, oder wählen Sie ihn in der Dropdownliste aus.
    Alle Warenkörbe | Listet alle Warenkörbe in der Commerce Server-Datenbank nach den Nachnamen der Benutzer auf.

  3. Klicken Sie auf Suchen.

Sie können jetzt auf dem Bildschirm Warenkorb-Manager das Ergebnis in einer Liste überprüfen.

Siehe auch

Informationen zu Bestellungen

Löschen von Warenkörben


Löschen von Warenkörben

Nachdem ein Benutzer einen Warenkorb aufgegeben hat, können Sie diesen aus der Commerce Server-Datenbank löschen. Im Allgemeinen löschen Sie Warenkörbe, weil ein Benutzer sich entweder nicht ausgecheckt oder den Warenkorb vor Verlassen der Site nicht geleert hat.

So löschen Sie einen Warenkorb

  1. Klicken Sie im Menü Bestellungen auf Warenkorb-Manager.

  2. Um aufgegebene Warenkörbe nach Letzter Zugriff am zu suchen, wählen Sie Am oder vor dem als Datumskriterium aus, geben ein Datum ein oder wählen es im Dropdownkalender aus. Klicken Sie anschließend auf Suchen.

  3. Wählen Sie in der Warenkorbliste den oder die zu löschenden Warenkörbe aus, und klicken Sie dann auf der Symbolleiste auf Löschen.

  4. Klicken Sie im Dialogfeld Löschen zur Bestätigung auf Ja.

Der Warenkorb wird nun gelöscht.

Vorsicht

Nachdem ein Warenkorb gelöscht worden ist, kann er nicht mehr wiederhergestellt werden.

Anmerkung

  • Um die Site zu aktualisieren, muss das Transaktionsveröffentlichungsmodul verwendet werden. Weitere Informationen erhalten Sie unter Veröffentlichen von Transaktionen in der Website.

Siehe auch

Informationen zu Bestellungen

Suchen nach Warenkörben

Verwalten von Datencodes und Steuersätzen


Suchen und Sortieren von Bestellungen

Sie können nach bestimmten Aufträgen suchen, die von Besuchern Ihrer Site erteilt wurden. Sie haben acht Optionen zum Einschränken der Suche, oder Sie können alle Bestellungen auflisten. Standardmäßig werden Bestellungen in absteigender Reihenfolge nach ihrer Nummer aufgeführt, jedoch können Sie die Sortierreihenfolge ändern. Z. B. können Bestellungen nach dem Bestellstatus oder dem Nachnamen des Benutzers sortiert werden.

So suchen Sie nach einer Bestellung

So sortieren Sie Bestellungen in einer Liste

So suchen Sie nach einer Bestellung

  1. Klicken Sie im Menü Bestellungen auf Bestellstatus.

  2. Wählen Sie auf dem Bildschirm Bestellstatus in der Dropdownliste Suchen nach eine der folgenden Optionen aus:
    Option/Funktion | Zweck
    Bestelldatum | Anzeigen einer Liste aller Bestellungen, die an, vor oder nach einem gegebenen Datum aufgegeben wurden. Geben Sie das Datum ein, oder wählen Sie im Dropdownkalender ein Datum aus.
    Benutzername | Anzeigen der Liste aller Bestellungen, die von einem bestimmten Benutzer aufgegeben wurden. Sie können in den Feldern Vorname und Nachname die ersten Buchstaben des Vor- und/oder Nachnamens des Benutzers eingeben.
    Bestellnummer | Anzeigen einer Liste der Bestellungen mit einer bestimmten Bestellnummer. Sie müssen im Feld Bestellnummer die genaue Bestellnummer eingeben.
    Organisation | Anzeigen einer Liste aller Bestellungen, die von einer bestimmten Organisation aufgegeben wurden. Geben Sie im Feld Organisation den Namen der Organisation ein.
    Auftragsnummer | Anzeigen einer Liste aller Bestellungen zu einer bestimmten Auftragsnummer. Sie müssen im Feld Auftragsnummer die genaue Auftragsnummer eingeben.
    Produkt-ID | Anzeigen einer Liste aller Bestellungen, die eine bestimmte Produkt-ID haben. Sie müssen im Feld Produkt-ID die genaue Produkt-ID-Nummer eingeben.
    Artikelbeschreibung | Anzeigen einer Liste aller Bestellungen, die eine bestimmte Beschreibung enthalten.
    Jede Information | Öffnen aller Suchkriterien. Sie können einige oder alle Einzelheiten einer Bestellung eingeben.
    Alle Bestellungen | Anzeigen einer Liste aller gespeicherten Bestellungen, die noch nicht bearbeitet worden sind.

  3. Klicken Sie auf Suchen.

Sie können jetzt das Ergebnis auf dem Bildschirm Bestellstatus betrachten.

So sortieren Sie Bestellungen in einer Liste

  1. Klicken Sie im Menü Bestellungen auf Bestellstatus.

  2. Klicken Sie in der Liste der Bestellungen auf den Titel der Spalte, nach der die Bestellungen sortiert werden sollen.

Die Liste wird dynamisch je nach Spaltentitel, auf den Sie geklickt haben, sortiert.

Siehe auch

Informationen zu Bestellungen

Löschen von Bestellungen


Löschen von Bestellungen

Sie können bestehende Bestellungen mithilfe des Bestellstatusmoduls löschen. Das ist praktisch, wenn z. B. eine Bestellung abgebrochen werden muss, ein Benutzer versehentlich eine doppelte Bestellung aufgegeben hat oder der vom Benutzer gewünschte Artikel nicht mehr zur Verfügung steht.

So löschen Sie eine Bestellung

  1. Klicken Sie im Menü Bestellungen auf Bestellstatus.

  2. Wählen Sie in der Ergebnisliste die Bestellung, die Sie löschen möchten, und klicken Sie dann auf der Symbolleiste auf Löschen.

  3. Klicken Sie im Dialogfeld Löschen zur Bestätigung des Löschvorgangs auf OK.

Die Bestellung wird nun auf der Site gelöscht.

Vorsicht

  • Nachdem eine Bestellung gelöscht worden ist, kann sie nicht mehr wiederhergestellt werden.

Anmerkung

  • Um die Site zu aktualisieren, muss das Transaktionsveröffentlichungsmodul verwendet werden. Weitere Informationen erhalten Sie unter Veröffentlichen von Transaktionen in der Website.

Siehe auch

Informationen zu Bestellungen

Suchen und Sortieren von Bestellungen

Verwalten von Datencodes und Steuersätzen


Verwalten von Datencodes und Steuersätzen

Mithilfe der Datencode- und Steuersatzmodule können Datencodes und Steuersätze verwaltet werden.

Dieser Abschnitt beinhaltet folgende Themen:

  • Bearbeiten eines Bestellstatuscodes

  • Löschen eines Bestellstatuscodes

  • Bearbeiten eines Ländercodes

  • Löschen eines Ländercodes

  • Bearbeiten einer Kennzahl für Bundesländer/Kantone

  • Löschen einer Kennzahl für Bundesländer/Kantone

  • Bearbeiten eines Steuersatzes

  • Löschen eines Steuersatzes


Bearbeiten eines Bestellstatuscodes

Mithilfe des Datencodemoduls können der Name und die Beschreibung eines bestehenden Bestellstatuscodes bearbeitet werden.

So bearbeiten Sie einen Bestellstatuscode

  1. Klicken Sie im Menü Bestellungen auf Datencodes.

  2. Klicken Sie auf dem Bildschirm Bestellstatuscodes auf der Symbolleiste auf , und wählen Sie dann in der Dropdownliste die Option Bestellstatuscodes.

  3. Wählen Sie den Bestellstatuscode, den Sie bearbeiten möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  4. Geben Sie auf dem Bildschirm Bestellstatuscodes: Bestellstatuscode Folgendes ein:
    Option/Funktion | Zweck
    Codename | Eingeben des Namens für den Bestellstatuscode.
    Beschreibung | Eingeben einer neuen Beschreibung für den Bestellstatuscode.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um Ihre Änderungen zu speichern und zum Bildschirm Bestellstatuscodes zurückzukehren.

Der bearbeitete Bestellstatuscode wird nun gespeichert.

Anmerkungen

  • Sie können nicht die eigentliche Codenummer im Feld Code bearbeiten. Wenn Sie die Codenummer ändern möchten, müssen Sie den Bestellstatuscode löschen und einen neuen erstellen, der die erforderliche Änderung im Feld Code enthält. Weitere Informationen über das Löschen und Hinzufügen von Bestellstatuscodes erhalten Sie unter Löschen eines Bestellstatuscodes und Hinzufügen von Bestellstatuscodes.

  • Nach Bearbeiten eines Bestellstatuscodes muss der Systemadministrator auf jedem Webserver die Commerce Server-Anwendung aus dem Speicher nehmen (d. h. beenden und neu starten), damit die Änderungen wirksam werden. Weitere Informationen finden Sie in der Hilfe zu Commerce Server 2000 unter "Entfernen einer Anwendung aus dem Speicher".


Löschen eines Bestellstatuscodes

Mithilfe des Datencodemoduls können bestehende Bestellstatuscodes gelöscht werden. Das ist z. B. praktisch, wenn Sie zur Identifizierung eines bestimmten Objekts keinen Bestellstatuscode benötigen.

So löschen Sie einen Bestellstatuscode

  1. Klicken Sie im Menü Bestellungen auf Datencodes.

  2. Klicken Sie auf dem Bildschirm Bestellstatuscodes auf der Symbolleiste auf Anzeigen, und wählen Sie dann in der Dropdownliste die Option Bestellstatuscodes.

  3. Wählen Sie den Bestellstatuscode, den Sie löschen möchten, und klicken Sie dann auf der Symbolleiste auf Löschen.

  4. Klicken Sie im Dialogfeld Bestellstatuscodes zur Bestätigung auf OK.

Der Bestellstatuscode wird nun auf der Site gelöscht.

Vorsicht

  • Nachdem ein Bestellstatuscode gelöscht worden ist, kann er nicht mehr wiederhergestellt werden. Wenn Sie einen gelöschten Bestellstatuscode wieder benötigen, müssen Sie ihn erneut erstellen.

Anmerkung

  • Nach Löschen eines Bestellstatuscodes muss der Systemadministrator auf jedem Webserver die Commerce Server-Anwendung aus dem Speicher nehmen (d. h. beenden und neu starten), damit die Änderungen wirksam werden. Weitere Informationen finden Sie in der Hilfe zu Commerce Server 2000 unter "Entfernen einer Anwendung aus dem Speicher".


Bearbeiten eines Ländercodes

Mithilfe des Datencodemoduls kann der Name und die Beschreibung eines bestehenden Ländercodes bearbeitet werden.

So bearbeiten Sie einen Ländercode

  1. Klicken Sie im Menü Bestellungen auf Datencodes.

  2. Klicken Sie auf dem Bildschirm Bestellstatuscodes auf der Symbolleiste auf Anzeigen, und wählen Sie dann in der Dropdownliste die Option Landes-/Regionalkennzahlen.

  3. Wählen Sie den Ländercode, den Sie bearbeiten möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  4. Führen Sie auf dem Bildschirm Ländercodes: Land folgende Schritte aus:
    Option/Funktion | Zweck
    Angezeigter Name | Eingeben des Landes- oder Regionsnamens.
    Beschreibung | Eingeben einer Beschreibung des Ländercodes, falls erforderlich.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um Ihre Änderungen zu speichern und zum Bildschirm Landes-/Regionalkennzahlen zurückzukehren.

Der bearbeitete Ländercode wird nun gespeichert.

Anmerkungen

  • Sie können nicht die eigentliche Codenummer im Feld Code bearbeiten. Wenn Sie die Codenummer ändern möchten, müssen Sie die ganze Landes-/Regionalkennzahl löschen und eine neue erstellen, der die erforderliche Änderung im Feld Code enthält. Weitere Informationen über das Löschen und Hinzufügen von Ländercodes erhalten Sie unter Löschen eines Ländercodes und Hinzufügen von Ländercodes.

  • Nach Bearbeiten eines Ländercodes muss der Systemadministrator auf jedem Webserver die Commerce Server-Anwendung aus dem Speicher nehmen (d. h. beenden und neu starten), damit die Änderungen wirksam werden. Weitere Informationen finden Sie in der Hilfe zu Commerce Server 2000 unter "Entfernen einer Anwendung aus dem Speicher".


Löschen eines Ländercodes

Mithilfe des Datencodemoduls können bestehende Ländercodes gelöscht werden. Das ist praktisch, wenn Sie Ihre Produkte z. B. nicht in ein bestimmtes Land oder eine bestimmte Region ausliefern und nicht möchten, dass dies Benutzern als Option vermittelt wird.

So löschen Sie einen Ländercode

  1. Klicken Sie im Menü Bestellungen auf Datencodes.

  2. Klicken Sie auf dem Bildschirm Bestellstatuscodes auf der Symbolleiste auf Anzeigen, und wählen Sie dann in der Dropdownliste die Option Landes-/Regionalkennzahlen.

  3. Wählen Sie den Ländercode, den Sie löschen möchten, und klicken Sie dann auf der Symbolleiste auf Löschen.

  4. Klicken Sie im Dialogfeld Verwandte Codes löschen auf OK.

  5. Klicken Sie im Dialogfeld Landes-/Regionalkennzahlen auf OK.

Die Landes-/Regionalkennzahl wird nun auf der Site gelöscht.

Vorsicht

  • Durch das Löschen einer Landes-/Regionalkennzahl werden ebenso alle diesem Land bzw. dieser Region zugeordneten Kennzahlen für Bundesländer/Kantone gelöscht.

  • Nachdem eine Landes-/Regionalkennzahl gelöscht worden ist, kann sie nicht mehr wiederhergestellt werden. Wenn Sie eine gelöschte Landes-/Regionalkennzahl wieder benötigen, müssen Sie diese erneut erstellen.

Anmerkung

  • Nach Löschen einer Landes-/Regionalkennzahl muss der Systemadministrator auf jedem Webserver die Commerce Server-Anwendung aus dem Speicher nehmen (d. h. beenden und neu starten), damit die Änderungen wirksam werden. Weitere Informationen finden Sie in der Hilfe zu Commerce Server 2000 unter "Entfernen einer Anwendung aus dem Speicher".


Bearbeiten einer Kennzahl für Bundesländer/Kantone

Mithilfe des Datencodemoduls können der Name und die Beschreibung einer bestehenden Landes-/Regionalkennzahl bearbeitet werden.

So bearbeiten Sie die Kennzahl für Bundesland/Kanton

  1. Klicken Sie im Menü Bestellungen auf Datencodes.

  2. Klicken Sie auf dem Bildschirm Bestellstatuscodes auf der Symbolleiste auf Anzeigen, und wählen Sie dann in der Dropdownliste die Option Kennzahlen für Bundesländer/Kantone.

  3. Wählen Sie die Kennzahl, die Sie bearbeiten möchten, und klicken Sie dann auf der Symbolleiste auf Öffnen.

  4. Führen Sie auf dem Bildschirm Kennzahlen für Bundesländer/Kantone Bundesland folgende Schritte aus:
    Option/Funktion | Zweck
    Angezeigter Name | Eingeben des Namens für das Bundesland bzw. den Kanton.
    Beschreibung | Eingeben einer Beschreibung der Kennzahl für Bundesländer/Kantone, falls erforderlich.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um Ihre Änderungen zu speichern und zum Bildschirm Kennzahlen für Bundesländer/Kantone zurückzukehren.

Die bearbeitete Kennzahl für Bundesland/Kanton wird nun gespeichert.

Anmerkungen

  • Sie können nicht die eigentliche Codenummer im Feld Code bearbeiten. Wenn Sie die Codenummer ändern möchten, müssen Sie die Kennzahl für Bundesland/Kanton löschen und eine neue erstellen, welche die erforderliche Änderung im Feld Code enthält. Weitere Informationen über das Löschen und Hinzufügen von Kennzahlen für Bundesländer/Kantone erhalten Sie unter Löschen einer Kennzahl für Bundesländer/Kantone und Hinzufügen Kennzahlen für Bundesländer/Kantone.

  • Nach Bearbeiten einer Kennzahl für Bundesländer/Kantone muss der Systemadministrator auf jedem Webserver die Commerce Server-Anwendung aus dem Speicher nehmen (d. h. beenden und neu starten), damit die Änderungen wirksam werden. Weitere Informationen finden Sie in der Hilfe zu Commerce Server 2000 unter "Entfernen einer Anwendung aus dem Speicher".


Löschen einer Kennzahl für Bundesländer/Kantone

Mithilfe des Datencodemoduls können bestehende Kennzahlen für Bundesländer/Kantone gelöscht werden. Das ist praktisch, wenn Sie Ihre Produkte z. B. nicht in ein bestimmtes Bundesland oder in einen bestimmten Kanton ausliefern und nicht möchten, dass dies Benutzern als Option vermittelt wird.

So bearbeiten Sie eine Kennzahl für Bundesländer/Kantone

  1. Klicken Sie im Menü Bestellungen auf Datencodes.

  2. Klicken Sie auf dem Bildschirm Bestellstatuscodes auf der Symbolleiste auf Anzeigen, und wählen Sie dann in der Dropdownliste die Option Kennzahlen für Bundesländer/Kantone.

  3. Wählen Sie auf dem Bildschirm Kennzahlen für Bundesländer/Kantone die zu löschende Kennzahl, und klicken Sie auf der Symbolleiste auf Löschen.

  4. Klicken Sie im Dialogfeld Kennzahlen für Bundesländer/Kantone auf OK.

Die Kennzahl wird nun auf der Site gelöscht.

Vorsicht

  • Nachdem eine Kennzahl für Bundesländer/Kantone gelöscht worden ist, kann sie nicht mehr wiederhergestellt werden. Wenn Sie eine gelöschte Kennzahl für Bundesländer/Kantone wieder benötigen, müssen Sie diese erneut erstellen.

Anmerkung

  • Nach Löschen einer Kennzahl für Bundesländer/Kantone muss der Systemadministrator auf jedem Webserver die Commerce Server-Anwendung aus dem Speicher nehmen (d. h. beenden und neu starten), damit die Änderungen wirksam werden. Weitere Informationen finden Sie in der Hilfe zu Commerce Server 2000 unter "Entfernen einer Anwendung aus dem Speicher".


Bearbeiten eines Steuersatzes

Mithilfe des Steuersatzmoduls kann ein bestehender Steuersatz bearbeitet werden. Das ist praktisch, wenn z. B. die Regierung einen Steuersatz ändert.

So bearbeiten Sie einen Steuersatz

  1. Klicken Sie im Menü Bestellungen auf Steuersätze.

  2. Wählen Sie den zu bearbeitenden Steuersatz, und klicken Sie dann auf Bearbeiten.

  3. Bearbeiten Sie den Steuersatz, und klicken Sie dann auf Übernehmen.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um Ihre Änderungen zu speichern und zum Business Desk-Startbildschirm zurückzukehren.

Der bearbeitete Steuersatz wird nun gespeichert.

Anmerkung

  • Um die Site zu aktualisieren, muss das Transaktionsveröffentlichungsmodul verwendet werden. Weitere Informationen erhalten Sie unter Veröffentlichen von Transaktionen in der Website.


Löschen eines Steuersatzes

Mithilfe des Steuersatzmoduls kann ein bestehender Steuersatz gelöscht werden. Das ist praktisch, wenn z. B. die Regierung einen Steuersatz aufhebt.

So löschen Sie einen Steuersatz

  1. Klicken Sie im Menü Bestellungen auf Steuersätze.

  2. Wählen Sie den zu löschenden Steuersatz, und klicken Sie dann auf Entfernen.

  3. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um Ihre Änderungen zu speichern und zum Business Desk-Startbildschirm zurückzukehren.

Der Steuersatz wird nun auf der Site gelöscht.

Vorsicht

  • Nachdem ein Steuersatz gelöscht worden ist, kann er nicht mehr wiederhergestellt werden. Wenn Sie einen gelöschten Steuersatz wieder benötigen, müssen Sie ihn erneut erstellen.

Anmerkung

  • Um die Site zu aktualisieren, muss das Transaktionsveröffentlichungsmodul verwendet werden. Weitere Informationen erhalten Sie unter Veröffentlichen von Transaktionen in der Website.


Business Desk-Benutzer

Mithilfe der Benutzermodule wird die Datensammlung in Ihrer Commerce Server 2000-Website verwaltet. Sie definieren beispielsweise, welche Daten von den Benutzern erhoben und welche Daten in das Datawarehouse exportiert werden. Die Benutzermodule dienen darüber hinaus zu Verwaltung von Benutzer- und Organisationsprofilen, z. B. zum Ändern von Kennwörtern oder administrativen Kontakten von Organisationen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Workflow für die Benutzerverwaltung. Beschreibt den Workflow für das Verwalten von Benutzer- und Organisationsprofilen, das Entwerfen von Profildefinitionen und das Bearbeiten von Sitebegriffen.

  • Informationen zu Benutzern. Beschreibt Benutzerprofile, Organisationsprofile, Profildefinitionen und Sitebegriffe und erklärt ihre Verwendung in Commerce Server.

  • Hinzufügen eines Sitebegriffs. Erläutert das Hinzufügen neuer Sitebegriffe.

  • Hinzufügen einer Sitebegriffsgruppe. Erläutert das Hinzufügen neuer Sitebegriffsgruppen.

  • Hinzufügen von Eigenschaften zu einer Profildefinition. Beschreibt das Hinzufügen neuer Eigenschaften zu Profildefinitionen.

  • Hinzufügen einer Eigenschaftsgruppe zu einer Profildefinition. Erläutert das Organisieren von Eigenschaften durch Hinzufügen einer Eigenschaftsgruppe zu einer Profildefinition.

  • Veröffentlichen von Profildefinitionsänderungen in Ihrer Website. Erklärt das Synchronisieren von Profildefinitionsänderungen mit Ihrer Website.

  • Hinzufügen eines Benutzers. Erläutert das Hinzufügen neuer Benutzerprofile zu Ihrer Website.

  • Importieren einer Liste von Benutzerprofilen. Erläutert das Importieren einer Liste von Benutzerprofilen aus dem Listen-Manager-Modul in das Benutzermodul.

  • Hinzufügen einer Organisation. Erläutert das Hinzufügen neuer Organisationsprofile zu Ihrer Website.

  • Zurücksetzen eines Benutzerkennworts. Erläutert das Zurücksetzen des Kennworts für einen registrierten Benutzer.

  • Verwalten von Sitebegriffen und Gruppen. Erklärt das Bearbeiten, Organisieren und Löschen von Sitebegriffen und Sitebegriffsgruppen. Darüber hinaus wird erläutert, wie Begriffe (Werte) aus Sitebegriffen gelöscht werden.

  • Verwalten von Profildefinitionen. Erläutert das Suchen, Kopieren und Bearbeiten von Profildefinitionen sowie das Löschen von Profileigenschaften.

  • Verwalten von Benutzern. Erläutert das Bearbeiten, Suchen, Kopieren und Löschen von Benutzerprofilen.

  • Verwalten von Organisationen. Erläutert das Suchen, Kopieren, Bearbeiten und Löschen von Organisationsprofilen.


Workflow für die Benutzerverwaltung

Die folgende Abbildung stellt ein Beispielszenario für das Verwalten von Benutzer- und Organisationsprofilen dar. Hier werden Profildefinitionen entworfen und Sitebegriffe bearbeitet.

nWorkflow für die Verwaltung von Benutzer- und Organisationsprofile
Profil veröffentlichen
Profildefinitionsänderungen in der Website veröffentlichen
Profil-Designer
Sitebegriff hinzufügen
Eigenschaften zu einer Profildefinition hinzufügen
Organisation hinzufügen
Benutzer hinzufügen
Katalog-Designer
Organisationen
Eigenschaftsdefinition hinzufügen
Kampagnenausdrücke
Benutzer
Zielausdruck erstellen
Sitebegriffs-Editor

  1. Mithilfe des Moduls "Sitebegriffs-Editor" werden neue Sitebegriffe hinzugefügt, die anschließend in einer Profildefinition verwendet werden können, um die Benutzereinträge für diese Eigenschaft einzuschränken.

  2. Das Modul "Profil-Designer" dient zum Hinzufügen neuer Eigenschaften zu einer Profildefinition.

  3. Mit dem Modul "Profilveröffentlichung" werden die Profildefinitionsänderungen in Ihrer Site veröffentlicht.

  4. Das Modul "Benutzer" dient zum Hinzufügen neuer Benutzerprofile zu Ihrer Website.

  5. Mithilfe des Moduls "Organisation" werden neue Organisationsprofile zu Ihrer Website hinzugefügt.


Informationen zu Benutzern

Die Verwaltung von Profildefinitionen, Benutzer- und Organisationsprofilen sowie von Sitebegriffen erfolgt mithilfe der Benutzermodule. Sie können z. B. Sitebegriffe verwenden, um die Anzahl der möglichen Farben einzuschränken, aus denen Benutzer ihre Lieblingsfarbe wählen können. Außerdem können Sie festlegen, wo die gesammelten Benutzerprofildaten gespeichert und welche Benutzerprofildaten in das Datawarehouse exportiert werden. Darüber hinaus ist es möglich, Eigenschaften zu der Benutzerobjekt-Profildefinition hinzuzufügen. In dieser Definition werden Daten gesammelt, mit deren Hilfe Sie festlegen, an welche Benutzer mittels Zielgruppenadressierung Anzeigen oder Preisnachlässe gesendet werden sollen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Benutzer

  • Organisationen

  • Profile

  • Profil-Designer

  • Sitebegriffs-Editor


Benutzer

Mithilfe des Benutzermoduls können Sie Informationen über Gastbenutzer und registrierte Benutzer, die Ihre Site besuchen, eingeben und verwalten. Beispielsweise ist es möglich, das Kennwort eines registrierten Benutzers zu ändern, sollte er dieses vergessen haben. Die Benutzerobjekt-Profildefinition im Benutzermodul dient zum Sammeln von Informationen über Benutzer. Mit dem Profil-Designer können Sie die Benutzerobjekt-Profildefinition anpassen, sodass sie den Anforderungen Ihrer Site entspricht.

Commerce Server unterstützt zwei Arten von Benutzern:

  • Gastbenutzer. Benutzer, die beim Besuch Ihrer Website keine persönlichen Informationen angeben.

  • Registrierte Benutzer. Benutzer, die ein Konto in Ihrer Site anmelden und normalerweise über einen Anmeldenamen und ein Kennwort verfügen. Registrierte Benutzer können zusätzliche Informationen angeben, um einfacher und aktiver mit Ihrer Site zu interagieren.

Der Systemadministrator kann Commerce Server so einrichten, dass automatisch Cookies erstellt werden, welche Gastbenutzer und registrierte Benutzer unterscheiden und ihnen bestimmte Benutzerprofile in der Commerce Server-Datenbank zuordnen. Wenn das System eines Benutzers keine Cookies akzeptiert, weist Commerce Server diesem Benutzer einen global eindeutigen Bezeichner (Globally Unique Identifier, GUID) zu, mit dessen Hilfe wiederkehrende Benutzer identifiziert werden können.

Der Systemadministrator importiert die Benutzerdaten, die Commerce Server in seiner Datenbank sammelt, sowie die Webserver-Protokolldateien im Datawarehouse. Anschließend können anhand dieser Informationen Berichte ausgeführt werden, welche die Eigenschaften und das Verhalten der Benutzer analysieren. Beispielsweise können Sie Berichte ausführen, um demografische Informationen, Produktvorlieben und das Kaufverhalten zu ermitteln.

Sie können die Benutzerberichte in den Listen-Manager exportieren, um sie als Adressenlisten für Direktsendungskampagnen zu verwenden. Ebenso können Sie Benutzerberichte aus dem Listen-Manager in das Benutzermodul importieren, um die Benutzerinformationen zu aktualisieren. Der Import von Benutzerberichten in den Listen-Manager ist sowohl vom Berichtsmodul aus möglich als auch über ASCII-Listen, die in den ersten beiden Feldern eine E-Mail-Adresse und einen GUID für jeden Benutzer enthalten.

Die folgende Abbildung zeigt den Fluss der Benutzerdaten vom Ausführen eines Berichts über den Export der Benutzerdaten in eine Adressenliste bis hin zur Aktualisierung der Website.

Importieren von Benutzerlisten und Ändern von Benutzerprofilen
Statischen (Benutzer-)
Bericht exportieren
Berichte
Listen-Manager
Benutzer
Geänderte Benutzer-
daten in der Website vorhanden
In den Listen-Manager
importierte Benutzerliste
mit ASCII-Trennzeichen
Benutzer in der
Benutzerliste bearbeiten
Benutzerliste aus dem
Listen-Manager importieren
In den Listen-Manager
exportierte Benutzerliste

Siehe auch

Importieren und Exportieren von Listen

Importieren einer Liste von Benutzerprofilen

Bearbeiten eines Benutzers

Bearbeiten mehrerer Benutzer


Organisationen

Mit dem Organisationsmodul können Organisationen zu Ihrer Website hinzugefügt und Informationen über sie eingeben werden. Eine Organisation ist eine Geschäftsstelle, eine Abteilung oder eine andere Geschäftseinheit innerhalb Ihres Unternehmens, oder ein externes Unternehmen, das die Rolle eines Handelspartners einnimmt und in Business Desk als Quelle oder Zieladresse für den Austausch von Geschäftsinformationen vorgesehen ist.

Wenn Sie BizTalk Server in Commerce Server integriert haben, können Sie BizTalk Server und Commerce Server zusammen verwenden, um die Bestellungen der Benutzer in Ihrer Commerce Server-Website zu verfolgen. Sie können beispielsweise Ihr Inventar und das Ihrer Handelspartner von der Commerce Server-Website aus verkaufen. Mithilfe von BizTalk Server können Sie mit jedem Lieferanten von Produkten für Ihre Site eine Handelsvereinbarung erstellen. Wenn eine Bestellung für ein Produkt erteilt wird, das ein Handelspartner von Ihnen liefert, verarbeitet Commerce Server die Bestellung und sendet sie an BizTalk Server. Daraufhin sendet BizTalk Server die Bestellung zur Ausführung direkt an Ihren Handelspartner. Informationen zur Verwendung von BizTalk Server finden Sie unter Verwenden von BizTalk Server.

Sie können Organisationsprofile mithilfe des Organisationsmoduls hinzufügen, löschen und verwalten. Wenn Sie eine Organisation hinzufügen, können Sie Informationen über sie angeben, z. B. den Namen des wichtigsten Ansprechpartners, die Adresse, die Telefonnummer, den Namen des Einkaufs-Managers und den Katalogsatz, der für die Organisation zur Verfügung steht. Mit der Organisationsprofildefinition werden im Organisationsmodul Informationen über Organisationen gesammelt. Mithilfe des Profil-Designer-Moduls können Sie die Organisationsprofildefinition den Bedürfnissen Ihrer Site anpassen.

Bevor Sie einen Benutzer als administrativen Kontakt, autorisierten Warenempfänger oder Einkaufs-Manager einer Organisation einrichten können, müssen Sie folgende Schritte ausführen:

  1. Erstellen Sie die Organisation mithilfe des Organisationsmoduls.

  2. Erstellen Sie den Benutzer, und weisen Sie diesen Benutzer im Benutzermodul der Organisation zu.

  3. Richten Sie den Benutzer im Organisationsmodul als administrativen Kontakt, Empfänger oder Einkaufs-Manager der Organisation ein.

Siehe auch

Hinzufügen eines Benutzers

Hinzufügen einer Organisation

Verwenden von BizTalk Server


Profile

Ein Profil ist eine Gruppe von Eigenschaften, die geschäftsbezogene Elemente definiert, z. B. Benutzer, Unternehmen oder einen Kontext (Datum und Uhrzeit). Ein Benutzerprofil kann z. B. Eigenschaften wie Vorname, Nachname, Stadt, Geschlecht, Alter und E-Mail-Adresse enthalten. Zu einem Unternehmensprofil gehören dagegen Eigenschaften wie der Firmenname, Ansprechpartner, Stadt und E-Mail-Adresse. Ein Kontextprofil umfasst Eigenschaften wie das Datum und die Uhrzeit, zu der eine Seite angezeigt wurde, und den Pfad, über den ein Benutzer zu dieser Seite gelangt ist.

Die folgende Abbildung zeigt unterschiedliche Arten von Profilen.

Abbildung verschiedener Profiltypen
Klickverlauf
Sitzungsdauer
Firmenname
Kontakt
Ort
E-Mail-Adresse
Klickverlauf
Sitzungsdauer
Vorname
Nachname
Ort
Geschlecht
Alter
E-Mail-Adresse
Klickverlauf
Sitzungsdauer

Firmenprofil

Profil für
anonyme Benutzer

Profil für registrierte Benutzer

In Commerce Server werden Profile zum Speichern von Informationen über geschäftsbezogene Elemente verwendet. So werden beispielsweise die Daten der Benutzer Ihrer Website gesammelt. Mithilfe von Business Desk können Sie Daten auch direkt in die Benutzer- und Organisationsprofile eingeben.

  • Verwenden von Profilen bei der Websiteverwaltung

  • Sammeln und Speichern von Profilen

  • Analysieren von Benutzerdaten

Verwenden von Profilen bei der Websiteverwaltung

Profile sind ein wesentlicher Bestandteil der Websiteverwaltung, da sie Informationen zu den Besuchern Ihrer Site und ihren Verhaltensweisen liefern. Anhand von Profilen können Sie die Benutzerdaten analysieren und sie zur gezielten Ausrichtung der Inhalte auf die Benutzer verwenden.

Commerce Server Business Desk ermöglicht folgende Aktionen:

  • Festlegen, welche Informationen Sie über Besucher Ihrer Site sammeln möchten.

  • Analysieren von Profilinformationen.

  • Erstellen von Zielausdrücken, um Inhalte an bestimmte Benutzer anzupassen.

  • Erstellen von gezielten Werbe-, Preisnachlass- und Direktsendungskampagnen für ausgewählte Benutzergruppen.

  • Senden von personalisierten Direktsendungsnachrichten an Benutzer.

Angenommen, Sie haben eine Site für den Verkauf von Sportwarenartikeln. Der folgende Workflow zeigt beispielhaft, wie Business Desk zur Analyse von Benutzeraktivitäten und zur gezielten Ausrichtung von Inhalten auf bestimmte Benutzer verwendet werden kann.

  1. Der Systemadministrator erstellt Profildefinitionen für registrierte Benutzer und Gäste.

  2. Ist Ihre Site bereits für einen längeren Zeitraum aktiv, dann können Sie die Profildaten analysieren, um festzustellen, wer Ihre Site besucht:
    • Führen Sie Berichte aus, um die Besucher Ihrer Site zu analysieren.

    • Führen Sie Berichte aus, um zu ermitteln, welche Produkte im Katalog sich gut und welche sich weniger gut verkaufen.
  3. Nutzen Sie die Ergebnisse der Analyse, um eine Kampagne zu erstellen, die die Inhalte der Site gezielt auf Ihre Besucher abstimmt:
    • Erstellen Sie anhand der Profile Zielausdrücke und Zielgruppen.

    • Erstellen Sie eine Preisnachlasskampagne, um diesen bestimmten Benutzern einen Preisnachlass anzubieten.
  4. Nachdem der Preisnachlass für einen längeren Zeitraum aktiviert ist, können Sie die Ergebnisse dieser Kampagne analysieren.
    • Führen Sie Berichte aus, um den Erfolg der Kampagne zu untersuchen.

    • Führen Sie Berichte aus, um herauszufinden, ob die betreffende Benutzergruppe verstärkt Produkte mit Preisnachlässen gekauft hat.
  5. Wenn die Benutzer nicht deutlich mehr Produkte mit Preisnachlass gekauft haben, erstellen Sie eine Direktsendungskampagne und senden personalisierte Nachrichten, um Ihren Benutzern einen Preisnachlass auf ein bestimmtes Produkt anzubieten.

Informationen über das Erstellen von Ausdrücken und die Zielgruppenadressierung von Inhalten finden Sie unter Zielgruppenadressierung und Personalisierung.

Sammeln und Speichern von Profilen

Profildaten werden bei einer Commerce Server-Site auf zwei Arten zusammengestellt. Die Benutzer, die Ihre Site besuchen, liefern Profildaten über sich selbst. Diese Erhebungsart wird explizite Profilerstellung genannt. Wenn Benutzer beispielsweise in Ihrer Site Produkte kaufen, geben sie normalerweise ihren Namen sowie die Postadresse, Telefonnummer und E-Mail-Adresse an. Mit diesen Informationen wird ihr Benutzerprofil gefüllt.

Sie können aber auch die implizite Profilerstellung verwenden. Hierbei werden die Aktionen aller anonymen und registrierten Benutzer bei der Interaktion mit Ihrer Website in Webprotokolldateien aufgezeichnet. Beispiel: Webprotokolldateien zeichnen die Links auf, auf die anonyme Benutzer klicken, nach welchen Produkten sie suchen, die Länge ihrer Sitzungen und ihre Verweildauer auf einer bestimmten Webseite. Auch wenn die Benutzer anonym bleiben, also weder ihre Namen noch die E-Mail-Adressen oder andere Daten bekannt sind, liefert ihr Verhalten in Ihrer Site wichtige Informationen. Ein Klickverlauf beispielsweise stellt den Weg durch die besuchten Webseiten dar – mit diesen Informationen können Sie ein bestimmtes Interessenfeld aufdecken.

Eine weitere Form der impliziten Profilerstellung wird von der Commerce Server-Vorhersageressource durchgeführt. Falls bestimmte Informationen über einen Benutzer fehlen, z. B. die Musikpräferenz des Benutzers, kann diese Information von der Vorhersageressource ermittelt werden. Diese Vorhersage basiert auf den gesammelten Eigenschaften der Besucher Ihrer Site und den von ihnen gekauften CDs. .

Alle während einer bestimmten Benutzersitzung zusammengestellten Informationen werden in einem einzelnen Profil, d. h. in einer Instanz einer Profildefinition, gesammelt.

Wenn Profildaten zusammengestellt werden, werden diese zuerst in der Commerce Server-Datenbank und den Webserverprotokollen gespeichert. Der Systemadministrator importiert sie dann in regelmäßigen Abständen in das Datawarehouse. Nach dem Importieren der Daten in das Datawarehouse können die Benutzerdaten mithilfe von Business Desk analysiert werden. Anhand der Analyseergebnisse können Sie dann Ihre Website aktualisieren oder den Benutzerprofileigenschaften Werte zuweisen.

Analysieren von Benutzerdaten

Benutzerdaten können in Berichten oder Segmentmodellen analysiert werden. Informationen über das Analysieren von Segmentmodellen finden Sie unter Analysieren von Benutzersegmenten.

In der folgenden Tabelle sind die in Commerce Server enthaltenen Berichte aufgeführt, die Sie zur Analyse von Benutzerdaten verwenden können.

Bericht | Beschreibung
Verschiedene Benutzer und Besuche pro Woche | Feststellen, ob weniger Benutzer Ihre Site oft besuchen oder ob viele Benutzer Ihre Site gleichzeitig besuchen.
Verschiedene Benutzer pro Tag | Feststellen, wieviele verschiedene Benutzer Ihre Site an einem bestimmten Tag besuchen.
Neu registrierte Benutzer | Identifizieren neu registrierter Benutzer. Diese Daten können zur Erstellung spezieller Promotionkampagnen eingesetzt werden. Diesen Bericht können Sie z. B. in den Listen-Manager exportieren und den neu registrierten Benutzern dann eine Direktsendungspromotion schicken.
Eigenschaften von registriertem Benutzer | Überprüfen der von den registrierten Benutzern angegebenen Informationen. Diese Daten können zur Erstellung spezieller Promotionkampagnen eingesetzt werden. Beispielsweise können Sie Anzeigen oder Preisnachlässe zielgerichtet für Benutzer mit bestimmten Eigenschaften erstellen.
Registrierte Benutzer nach Registrierungsdatum | Überprüfen des Registrierungsverhaltens Ihrer Benutzer.
Tage bis zur Registrierung | Ermitteln der Anzahl von Tagen, die Gastbenutzer im Durchschnitt warten, bis sie sich bei Ihrer Site registrieren.
Benutzerregistrierungsrate | Feststellen, wie erfolgreich Sie Gastbenutzer zur Registrierung bei Ihrer Site bewegen konnten.
Benutzertrends | Ermitteln, wie erfolgreich Sie bei der Bindung von Besuchern an Ihre Site sind.

Siehe auch

Zielgruppenadressierung und Personalisierung

Analysieren von Benutzersegmenten

Ausführen von Berichten


Profil-Designer

Mithilfe des Profil-Designer-Moduls werden Profildefinitionen bearbeitet und verwaltet. Eine Profildefinition ist eine Gruppe von Eigenschaften, die ein beliebiges geschäftsbezogenes Element definiert, wie beispielsweise einen Benutzer, ein Unternehmen oder einen Geschäftsprozess. Ein Profil ist eine einzelne Instanz einer Profildefinition, welche die von der Profildefinition gesammelten Daten enthält. Sie können beispielsweise eine Profildefinition entwerfen, um Benutzerdaten zu sammeln. Sie können anschließend mithilfe des Benutzermoduls ein Benutzerprofil für einen bestimmten Benutzer bearbeiten, der seine Daten in Ihre Website eingegeben hat.

Profilstruktur

Profildefinitionen

Profileigenschaften

Attribute

Beispielprofildefinitionen

Profilstruktur

Ein Commerce Server-Profil besteht aus folgenden Teilen:

  • Profildefinition. Eine Beschreibung der Daten, die für einen bestimmten Profiltyp gesammelt werden. Basierend auf einer einzigen Profildefinition können Sie mehrere Profile erstellen. Beispiele solcher Profildefinitionen sind "Benutzer" und "Adresse". Systemadministratoren erstellen Profildefinitionen unter Verwendung der Profilressource in Commerce Server-Manager.

  • Profileigenschaft. Bestimmt die Profildaten, die zusammengestellt werden, wenn ein Besucher Ihre Website besucht. So bestimmt z. B. die Eigenschaft "Vorname", dass der Vorname von Benutzern abgefragt werden soll. Mit dem Profil-Designer-Modul in Business Desk lassen sich Profileigenschaften erstellen und zu Profildefinitionen hinzufügen.

  • Attribut. Legt Informationen über die Eigenschaft, wie den Datentyp der Eigenschaft, fest (z. B. Zahl, Zeichenfolge, Dezimal und Sitebegriff).

  • Profil. Ein Exemplar einer Profildefinition, das Daten enthält. Jedes Profil basiert auf einer bestimmten Profildefinition.

Die folgende Tabelle zeigt ein Beispiel für die Definition eines Benutzerprofils und ein Beispiel für ein Benutzerprofil mit den Daten von Sean Chai.

Profildefinition: Benutzer | Profil: Sean Chai
Vorname | Sean
Nachname | Chai
Stadt | Seattle
Geschlecht | M
Alter | 52
E-Mail-Adresse | seanchai@microsoft.com

Profildefinitionen

Erstellen Sie die Profildefinitionen für Ihre Site gemeinsam mit Ihrem Systemadministrator. Der Systemadministrator entscheidet, ob die Profildaten in der Commerce Server-Datenbank gespeichert werden. Dieser Prozess wird auch Zuordnung der Profildefinition zur Datenbank genannt. Angenommen, Sie fordern eine neue Profildefinition namens "Musik" an und möchten die folgenden Profileigenschaften speichern: erstes Konzert, letztes Konzert, beliebteste CD, sowie zwei weitere, noch nicht festgelegte, Eigenschaften.

Der Systemadministrator erstellt die neue Profildefinition "Musik" mit den drei bekannten Eigenschaften sowie zwei Platzhaltern für die Eigenschaften, die erst noch hinzugefügt werden sollen, und ordnet die Definition anschließend der Commerce Server-Datenbank zu, in der sie gespeichert wird. Nachdem der Systemadministrator die Profildefinition und die neuen Eigenschaften erstellt hat, können Sie mithilfe des Profil-Designer-Moduls alle drei Eigenschaften der Definition hinzufügen. (Der Systemadministrator kann dies auch mithilfe von Commerce Server-Manager für Sie erledigen.) Wenn Sie zu einem späteren Zeitpunkt weitere Informationen sammeln möchten, die zur Profildefinition "Musik" gehören, können Sie mit dem Profil-Designer zwei neue Eigenschaften erstellen und sie den vom Systemadministrator erstellten Platzhaltern zuordnen.

Die Commerce Server-Lösungssites enthalten die folgenden Beispielprofildefinitionen: Adressen, Pauschalbestellungen, Organisation, Benutzerobjekt und Zielgruppenadressierungs-Kontext. Das Benutzerobjekt enthält fünf unbenannte Eigenschaften. Dadurch können Sie Eigenschaften zur Benutzerprofildefinition hinzufügen, ohne Ihren Systemadministrator um eine Erweiterung der Datenbank bitten zu müssen. Eine Liste von Eigenschaften der einzelnen Profildefinitionen finden Sie unter Beispielprofildefinitionen.

Profileigenschaften

Nachdem der Systemadministrator die Profildefinition erstellt hat, können Sie mithilfe des Profil-Designer-Moduls von Business Desk Profileigenschaften hinzufügen. Die Profileigenschaften legen fest, welche Informationen in einem Profil gesammelt werden. In der Benutzerprofildefinition könnten beispielsweise folgende Eigenschaften enthalten sein: Vorname, Nachname, Stadt, Geschlecht, Alter und E-Mail-Adresse. Sie können verwandte Profileigenschaften in Gruppen organisieren.

Die folgende Abbildung zeigt die Teile einer Beispiel-Benutzerprofildefinition.

Bestandteile einer Profildefinition
Profileigenschaft
Profilattribute
Benutzerprofildefinition
Vorname
Einwertig erforderlich, indiziert
Nachname
Einwertig erforderlich, indiziert
Ort
(Sitebegriff: Ort
(Zeichenfolge)
(Zeichenfolge)
(Sitebegriff: Ort)
Mexico-Stadt Montreal
New York
Geschlecht
(Sitebegriff: Geschlecht)
Geschlecht
Männlich
Weiblich
Unbekannt
Alter
(Zahl)
E-Mail-Adresse
(Zeichenfolge)
E-Mail-Adresse
E-Mail-Adresse
Datentyp

Sie können folgende Typen von Profileigenschaften erstellen:

Eigenschaftstyp | Beschreibung
Zeichenfolge | Eine Eigenschaft des Typs Zeichenfolge speichert bis zu 4.000 Zeichen. Die Eigenschaften von Zeichenfolge werden den Datenelementen von Zeichenfolge zugeordnet.
Lange Zeichenfolge | Eine Eigenschaft des Typs Lange Zeichenfolge speichert bis zu 2 hoch 17 (2^17) Zeichen. Die Eigenschaften von Lange Zeichenfolge werden den Datenelementen von Zeichenfolge zugeordnet.
Zahl | Eine Eigenschaft des Typs Zahl speichert ganze Zahlen. Die Maximallänge der Eigenschaft Zahl wird vom Datenspeicher festgelegt. Die Eigenschaften von Zahl werden den Datenelementen von Zahl zugeordnet.
Dezimal | Eine Eigenschaft vom Typ Dezimal speichert Gleitkommazahlen. Die Maximallänge der Eigenschaft Dezimal wird vom Datenspeicher festgelegt. Die Eigenschaften von Dezimal werden den Datenelementen von Zahl zugeordnet.
Boolesch | Eine Eigenschaft vom Typ Boolesch speichert einen von zwei Werten (wahr/falsch, ja/nein, oder 1/0). Die Eigenschaften von Boolesch werden den Datenelementen von Boolesch zugeordnet.
Binärwert | Eine Eigenschaft vom Typ Binärwert speichert binäre Daten bis zu einer Maximalgröße von 4 KB. Die Eigenschaften von Binärwert werden den Datenelementen von Binärwert zugeordnet.
Langer Binärwert | Eine Eigenschaft vom Typ Langer Binärwert speichert Inhalte wie Kalkulationstabellen, Dokumente, Grafiken und Sound bis zu einer Maximalgröße von 128 KB. Die Eigenschaften von Langer Binärwert werden den Datenelementen von Langer Binärwert zugeordnet.
Datum/Uhrzeit | Eine Eigenschaft vom Typ Datum/Uhrzeit ist ein zusammengesetzter Datums- und Uhrzeitwert.Das verwendete Format und die Maximallänge werden vom Datenspeicher festgelegt. Die Eigenschaften von Datum/Uhrzeit werden den Datenelementen von Datum/Uhrzeit zugeordnet.
Datum | Eine Eigenschaft vom Typ Datum enthält Datumswerte im Bereich von 1/1/1950 bis 12/31/2049. Das verwendete Format und die Maximallänge werden vom Datenspeicher festgelegt. Die Eigenschaften von Datum werden den Datenelementen von Datum zugeordnet.
Uhrzeit | Eine Eigenschaft vom Typ Uhrzeit enthält Werte für Stunde, Minute, Sekunde und Millisekunde. Das verwendete Format und die Maximallänge werden vom Datenspeicher festgelegt. Die Eigenschaften von Uhrzeit werden den Datenelementen von Datum/Uhrzeit zugeordnet.
Währung | Einer Eigenschaft vom Typ Währung können Werte im Währungsformat zugewiesen werden. Das verwendete Währungsformat und die Maximallänge werden vom Datenspeicher festgelegt. Die Eigenschaften von Währung werden den Datenelementen von Währung zugeordnet.
Kennwort | Einer Eigenschaft vom Typ Kennwort kann Text zugewiesen werden. Sie wird von der Profilressource wie eine Zeichenfolge behandelt. Commerce Server Business Desk zeigt den in einer Kennworteigenschaft gespeicherten Wert als Sternchen (*) an. Kennworteigenschaften werden Datenelementen vom Typ Zeichenfolge zugeordnet und haben eine Maximallänge von 255 Unicode-Zeichen.
Sitebegriff | Eine Eigenschaft vom Typ Sitebegriff wird mit einem Sitebegriff verknüpft. Der in dieser Eigenschaft gespeicherte Wert sollte ein gültiger Wert aus der Liste von Begriffsnamen sein, die mit diesem Sitebegriff verbunden ist. Sitebegriffseigenschaften werden Datenelementen vom Typ Zeichenfolge zugeordnet und haben eine Maximallänge von 255 Unicode-Zeichen.
Profil | Eine Eigenschaft vom Typ Profil wird mit einer Profildefinition verknüpft. Der in dieser Eigenschaft gespeicherte Wert sollte dem Wert des Primärschlüssels einer bestimmten Instanz des verbundenen Profils entsprechen. Profileigenschaften werden Datenelementen vom Typ Zeichenfolge zugeordnet und haben eine Maximallänge von 255 Unicode-Zeichen.

Attribute

Jede Profileigenschaft verfügt über Attribute. Attribute liefern Informationen über eine Eigenschaft. Die Eigenschaft Vorname hat beispielsweise folgende Attribute: Name, Angezeigter Name, Beschreibung und Typ.

Attribute enthalten Informationen wie beispielsweise über den Datentyp der Profileigenschaft (z. B. Zahl, Text, Dezimal oder Sitebegriff) und darüber, ob die Eigenschaft einwertig (wenn z. B. pro Benutzer nur ein Vorname eingegeben werden kann) oder mehrwertig ist. Sie können auch festlegen, ob die Daten exportiert werden können. Daten können z. B. in das Datawarehouse exportiert werden.

Es gibt zwei besondere Attributtypen: benutzerdefinierte Attribute und erweiterte Attribute.

  • Benutzerdefinierte Attribute. Dies sind anwendungsspezifische Attribute. Benutzerdefinierte Attribute können für einzelne Eigenschaften definiert werden. Sie können z. B. ein benutzerdefiniertes Attribut erstellen, das festlegt, wie eine Eigenschaft auf der Seite einer Website angezeigt wird.

  • Erweiterte Attribute. Mithilfe von erweiterten Attributen können Sie die Art und Weise, wie Ihre Anwendungen eine Profileigenschaft verwenden, ändern. Das Attribut Exportiert z. B. bestimmt , ob die Eigenschaft in das Datawarehouse importiert wird.

Die folgende Tabelle enthält die erweiterten Attribute und den Zweck jedes Attributs.

Attribut | Zweck
Aktiv | Zeigt an, ob diese Eigenschaft durch den Profildienst verfügbar ist. Inaktive Eigenschaften werden in Business Desk nicht angezeigt.
Daten zuordnen | Das Datenelement, dem die Eigenschaft zugeordnet wird.
Schlüsseltyp Es können vier Schlüsseltypen zugeordnet werden:
  • Eindeutiger Schlüssel. Gibt an, dass der Wert dieser Eigenschaft für alle Elemente eindeutig ist. Ein als eindeutig definiertes Attribut wird einem eindeutigen Feld in einer SQL Server-Datenbank oder einem eindeutigen Attribut in einer Lightweight Directory Access Protocol (LDAP)-Datenquelle zugeordnet.

  • Primärschlüssel. Gibt an, dass der Wert dieser Eigenschaft für alle Elemente eindeutig ist. Ein als Primärschlüssel definiertes Attribut wird einem Primärschlüsselfeld in einer SQL Server-Datenbank oder einem eindeutigen Attribut in einer LDAP-Datenquelle zugeordnet.

  • Verbindungsschlüssel. Verbindet mehrere Datenspeicher anhand einer gemeinsamen Eigenschaft im Profildienst.

  • Dualer (Primär- und Verbindungs-) Schlüssel. Gibt an, dass der Wert dieser Eigenschaft eindeutig ist, und verbindet diese Eigenschaft mit einer Eigenschaft in einem anderen Datenspeicher.
Erforderlich | Gibt an, dass die Eigenschaft obligatorisch ist.
Exportiert | Gibt an, dass die Eigenschaft in das Datawarehouse importiert wird.
Laden in den Zwischenspeicher verzögern | Gibt an, dass die jeweilige Eigenschaft zunächst beim Abrufen des Profils nicht geladen wird, und erst dann geladen wird, wenn ein Zugriff auf diese Eigenschaft erfolgt.
Mehrwertig | Aktiviert das Erfassen einer Wertesammlung, die der Eigenschaft zugeordnet ist.
Suche aktivieren | Gibt an, dass die jeweiligen Eigenschaften im zugrunde liegenden Datenspeicher indiziert sind und für das Suchen über die Funktion Suchen nach zur Verfügung stehen. Ein für die Suche aktiviertes Attribut wird einem indizierten Feld in der SQL Server-Datenbank oder in der LDAP-Quelle zugeordnet.
RDN | Gibt den RDN (Relative Distinguished Name) für einen Verzeichnisspeicher an. Wird dieses Attribut für eine Eigenschaft aktiviert, dann wird dieses Element dem RDN-Attribut einer LDAP-Klasse im zugrunde liegenden Speicher zugeordnet. Dies gilt nicht für OLE DB-Quellen (OLE DB-Provider von Microsoft Commerce Server) oder andere Datenquellentypen.
Hashschlüssel | Gibt an, dass diese Eigenschaft zur Verteilung von Profilinstanzen über mehrere Partitionen verwendet wird. Wenn Sie dieses Profil abrufen möchten, müssen Sie die Abfrage anhand dieses Schlüssels durchführen.

Beispielprofildefinitionen

Die Commerce Server-Lösungssites enthalten Beispielprofildefinitionen. Falls Ihr Siteentwickler beim Erstellen Ihrer Site eine Lösungssite verwendet hat, sollten Sie über die fünf in der folgenden Tabelle aufgeführten Profildefinitionen verfügen.

Profildefinition | Eigenschaften (Datentyp) | Beschreibung
Adresse | Adressen-ID (Zeichenfolge) | Adressenbezeichner
 | ID (Zeichenfolge) | Organisations-/Benutzerbezeichner
 | Nachname (Zeichenfolge) | Nachname des Benutzers
 | Vorname (Zeichenfolge) | Vorname des Benutzers
 | Adressenname (Zeichenfolge) | Name für diese Adresse
 | Adresstyp (Nummer) | Adresse/Lieferadresse/Rechnungsadresse
 | Beschreibung (Zeichenfolge) | Beschreibung für diese Adresse
 | Adressenzeile 1 (Zeichenfolge) | Erste Zeile der Adresse
 | Adressenzeile 2 (Zeichenfolge) | Zweite Zeile der Adresse
 | Ort (Zeichenfolge) | Ortsname
 | Regionalkennzahl (Zeichenfolge) | Kennzahl für Bundesland/Kanton
 | Name des Bundeslandes/Kantons (Zeichenfolge) | Name des Bundeslandes/Kantons
 | PLZ (Zeichenfolge) | Postleitzahl
 | Landes-/Regionalkennzahl (Zeichenfolge) | ISO-Kennzahl für Land/Region
 | Land/Region (Zeichenfolge) | Landes-/Regionsname
 | Rufnummer (Zeichenfolge) | Rufnummer für diese Adresse
 | Durchwahl (Zeichenfolge) | Durchwahl zu dieser Adresse
 | Gebietsschema-ID (Nummer) | Gebietsschema, in das das Adressformular zu rendern ist
 | Geändert von (Zeichenfolge) | Name der Person, die dieses Profil zuletzt geändert hat
 | Zuletzt geändert am (Datum/Uhrzeit) | Datum, an dem dieses Profil zuletzt geändert wurde
 | Erstellt am (Datum/Uhrzeit) | Datum, an dem dieses Profil erstellt wurde
Pauschalbestellungen | Auftrags-ID (Zeichenfolge) | Global eindeutiger Bezeichner (GUID), der auf die Pauschalbestellung verweist
 | Organisations-ID (Zeichenfolge) | Organisations-ID
 | Auftragsnummer (Zeichenfolge) | Pauschalbestellungsnummer
 | Beschreibung (Zeichenfolge) | Beschreibung des Auftrags
 | Geändert von (Zeichenfolge) | Name der Person, die dieses Profil zuletzt geändert hat
 | Zuletzt geändert am (Datum/Uhrzeit) | Datum, an dem dieses Profil zuletzt geändert wurde
 | Erstellt am (Datum/Uhrzeit) | Datum, an dem dieses Profil erstellt wurde
Organisation | Organisations-ID (Zeichenfolge) | Organisations-ID
 | Name (Zeichenfolge) | Name der Organisation
 | Nummer des Handelspartners (Zeichenfolge) | Nummer des Handelspartners
 | Administrativer Kontakt (Zeichenfolge) | GUID für den administrativen Kontakt
 | Empfänger (Zeichenfolge) | Benutzer-ID der Person, die vom Lieferanten versandte Produkte empfängt
 | Organisationskatalogsatz (Zeichenfolge) | Organisationskatalogsatz
 | Geändert von (Zeichenfolge) | Name der Person, die dieses Profil zuletzt geändert hat
 | Einkaufs-Manager (Zeichenfolge) | Benutzer-ID des Einkaufs-Managers der Käuferorganisation
 | Zuletzt geändert am (Datum/Uhrzeit) | Datum, an dem dieses Profil zuletzt geändert wurde
 | Erstellt am (Datum/Uhrzeit) | Datum, an dem dieses Profil erstellt wurde
Benutzerobjekt | Benutzer-ID (Zeichenfolge) | Benutzer-ID
 | Anmeldename (Zeichenfolge) | Anmeldename
 | Benutzerkennwort (Kennwort) | Benutzerkennwort
 | E-Mail (Zeichenfolge) | E-Mail-Adresse des Benutzers
 | Benutzertyp (Nummer) | Benutzertyp
 | Benutzertitel (Zeichenfolge) | Benutzertitel
 | Nachname (Zeichenfolge) | Nachname des Benutzers
 | Vorname (Zeichenfolge) | Vorname des Benutzers
 | Rufnummer (Zeichenfolge) | Rufnummer des Benutzers
 | Durchwahl (Zeichenfolge) | Durchwahl des Benutzers
 | Faxnummer (Zeichenfolge) | Faxnummer des Benutzers
 | Faxdurchwahl (Zeichenfolge) | Faxdurchwahl des Benutzers
 | Geändert von (Zeichenfolge) | Name der Person, die dieses Profil zuletzt geändert hat
 | Organisations-ID (Zeichenfolge) | Organisations-ID
 | Kontostatus (Nummer) | Kontostatus
 | Benutzerkatalogsatz (Zeichenfolge) | Benutzerkatalogsatz
 | Registriert am (Datum/Uhrzeit) | Datum, an dem sich der Benutzer registriert hat
 | Kampagnenverlauf (Zeichenfolge) | Kampagnenverlauf
 | Flags für die Partnerservicerolle (Nummer) | Partnerservicerolle
 | Zuletzt geändert am (Datum/Uhrzeit) | Datum, an dem dieses Profil zuletzt geändert wurde
 | Erstellt am (Datum/Uhrzeit) | Datum, an dem dieses Profil erstellt wurde
Zielgruppenadressierungs-Kontext | Seitengruppe (Zeichenfolge) | Name der Seitengruppe (z. B. Sportseiten)

Siehe auch

Hinzufügen von Eigenschaften zu Profildefinitionen

Hinzufügen eines Sitebegriffs zu einer Profildefinition


Sitebegriffs-Editor

Mithilfe des Moduls "Sitebegriffs-Editor" werden Sitebegriffe erstellt und verwaltet. Ein Sitebegriff ist ein von Ihnen erstellter Datentyp. Dies ist eine Liste bestimmter Werte, Begriffe genannt, die für Ihre Site relevant sind. Mit Sitebegriffen weisen Sie einer Eigenschaft eine Liste von Werten als Attribut zu.

Wenn Sie z. B. einen Sitebegriff für die Wahl einer Lieblingsfarbe erstellen, bieten Sie eine Liste mit Farben an, aus denen die Benutzer ihre Lieblingsfarbe wählen können. Der Sitebegriff "Lieblingsfarbe" schränkt die Farbauswahl auf die Farben ein, die Sie anbieten. Benutzer, die Variationen von Violett wie Mauve, Purpur oder Lavendel bevorzugen, müssen dann jedoch z. B. Violett wählen.

Mithilfe von Sitebegriffen können folgende Funktionen ausgeführt werden:

  • Standardisieren und Einschränken von Auswahlmöglichkeiten, wenn eine Benutzereingabe in der Site erforderlich ist.

  • Vermeiden von Schreibvarianten bei der Benutzereingabe.

  • Anpassen von Werten, wie eine Produktfarbe und die Lieblingsfarbe eines Benutzers, sodass Inhalte zielgruppengerecht an den Benutzer vermittelt werden können. Wenn beispielsweise die Eigenschaft "Farbe" eines Produkts "Violett" ist, können Sie es an den Sitebegriff "Lieblingsfarbe" anpassen und anschließend dem Benutzer Anzeigen für das violette Produkt zusenden.

In einem Formular Ihrer Website werden den Benutzern Sitebegriffe als Listenfelder dargestellt.

Sitebegriffsgruppen

Mithilfe von Sitebegriffsgruppen werden Sitebegriffe im Sitebegriffs-Editor organisiert. Sie verfügen z. B. über 50 Sitebegriffe. Davon verwenden Sie 10 Begriffe, um Informationen über die Produktvorlieben eines Benutzers zu sammeln, 20 Begriffe für Informationen über seine Lebensweise und weitere 20 Begriffe, um Informationen über die Meinungen eines Benutzers zu aktuellen Ereignissen zu erhalten. Sie können dann für die Sitebegriffe zu den Produktvorlieben eine Sitebegriffsgruppe mit dem Namen "Produkte", für die zur Lebensweise eine Gruppe mit dem Namen "Lifestyle" und für die restlichen Begriffe eine Sitebegriffsgruppe mit dem Namen "Ansichten" erstellen.

Muster-Sitebegriffe

Die Commerce Server-Lösungssites enthalten Muster-Sitebegriffe. Wenn Ihr Siteentwickler zum Erstellen Ihrer Website eine Lösungssite verwendet, sollten Sie über folgende Sitebegriffe verfügen können:

Sitebegriffe | Begriffe
Kontostatus | Aktives Konto Inaktives Konto
Benutzerrolle | Normaler Benutzer Administrator
Benutzertyp | Gastbenutzer Registrierter Benutzer
Tage | Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag
Monate | Januar Februar März April Mai Juni Juli August September Oktober November Dezember

Siehe auch

Hinzufügen eines Sitebegriffs


Hinzufügen eines Sitebegriffs

Das Sitebegriffs-Editor-Modul wird verwendet, um Sitebegriffe zu erstellen und diesen anschließend Begriffe (Werte) hinzuzufügen.

So fügen Sie einen Sitebegriff hinzu

  1. Klicken Sie im Menü Benutzer auf Sitebegriffs-Editor.

  2. Wählen Sie im Bildschirm Sitebegriffs-Editor die Gruppe aus, zu der Sie den Sitebegriff hinzufügen möchten, und klicken Sie anschließend auf Hinzufügen.

  3. Wählen Sie im Dialogfeld Hinzufügen die Option Neuen Sitebegriff hinzufügen, und klicken Sie anschließend auf OK.

  4. Führen Sie im Bildschirm Sitebegriffs-Editor im Bereich Sitebegriffsattribute folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie einen programmgesteuerten Namen für den neuen Sitebegriff ein, z. B. Lieblings_Farbe. Der Name kann bis zu 128 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Die Verwendung von Leerzeichen ist nicht zulässig.
    Angezeigter Name | Geben Sie den Namen ein, der für den neuen Sitebegriff angezeigt werden soll. Wählen Sie z. B. Lieblingsfarbe. Der angezeigte Name kann aus maximal 128 Zeichen bestehen.
    Beschreibung | Eingeben einer Beschreibung für den neuen Sitebegriff.

  5. Führen Sie im Bereich Begriffe folgende Schritte aus:
    Option/Funktion | Zweck
    Begriffsname | Klicken Sie auf Neu, und geben Sie für den neuen Begriff einen programmgesteuerten Namen ein. Ein Begriff stellt den Wert eines Sitebegriffs dar. Beispielsweise könnten Sie als Begriffe für den Sitebegriff Lieblings_Farbe die Werte Rot, Blau, Grün und Gelb eingeben. Der Name kann bis zu 128 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Die Verwendung von Leerzeichen ist nicht zulässig.
    Angezeigter Name | Eingeben des Namens, der für den neuen Begriff angezeigt werden soll. Der angezeigte Name kann aus maximal 128 Zeichen bestehen.

  6. Klicken Sie auf Annehmen.

    Anmerkung

    • Zu dem neuen Sitebegriff können beliebig viele Begriffe hinzugefügt werden. Klicken Sie auf Neu, um einen weiteren Begriff hinzuzufügen.
  7. Klicken Sie auf Übernehmen und dann auf der Symbolleiste auf Speichern und zurück, um den neuen Sitebegriff zu speichern und zum Bildschirm Business Desk zurückzukehren.

Der Sitebegriff wird gespeichert. Nun können Sie den Sitebegriff zu einer Profileigenschaft hinzufügen und ihn als Wert dieser Profileigenschaft verwenden. Beispiel: Sie erstellen den Sitebegriff Lieblings_Farbe und fügen ihn als Wert zur Lieblingsfarbeneigenschaft in der Profildefinition des Benutzerobjekts hinzu. Wenn der Benutzer in Ihrer Website nun auf die Frage nach seiner Lieblingsfarbe antwortet, wählt er aus den Begriffen einer Dropdownliste, die Sie im Sitebegriff Lieblings_Farbe eingetragen haben, eine Farbe aus.

Siehe auch

Informationen zu Benutzern

Hinzufügen einer Sitebegriffsgruppe

Hinzufügen eines Sitebegriffs zu einer Profildefinition


Hinzufügen einer Sitebegriffsgruppe

Mithilfe des Sitebegriffs-Editor-Moduls können Sitebegriffsgruppen erstellt werden, welche im Sitebegriffs-Editor die verwandten Sitebegriffe organisieren. Beispiel: Wenn Sie Postleitzahlen als Sitebegriffe erstellen, können Sie für jedes Bundesland oder jede Region eine Sitebegriffsgruppe und innerhalb dieser Gruppen Sitebegriffe erstellen, die die jeweiligen Postleitzahlen einer Stadt enthalten. Sitebegriffsgruppen erscheinen in der Sitebegriffstrukturliste im Bildschirm des Sitebegriffs-Editors mit einem Pfeil links neben dem Gruppennamen. Klicken Sie auf den Pfeil, um die Liste mit Sitebegriffen zu erweitern.

So erstellen Sie eine Sitebegriffsgruppe

  1. Klicken Sie im Menü Benutzer auf Sitebegriffs-Editor.

  2. Klicken Sie im Bildschirm Sitebegriffs-Editor auf Hinzufügen.

  3. Wählen Sie im Dialogfeld Hinzufügen die Option Neue Gruppe hinzufügen, und klicken Sie anschließend auf OK.

  4. Führen Sie im Bildschirm Sitebegriffs-Editor im Bereich Attribute folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie einen programmgesteuerten Namen für die neue Begriffsgruppe ein. Der Name kann bis zu 128 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Die Verwendung von Leerzeichen ist nicht zulässig.
    Angezeigter Name | Geben Sie den Namen ein, der für die neue Begriffsgruppe angezeigt werden soll. Der angezeigte Name kann aus maximal 128 Zeichen bestehen.
    Beschreibung | Geben Sie eine Beschreibung für die neue Sitebegriffsgruppe ein.

  5. Klicken Sie auf Übernehmen und dann auf der Symbolleiste auf Speichern und zurück, um die neue Sitebegriffsgruppe zu speichern und zum Hauptbildschirm von Business Desk zurückzukehren.

Die Sitebegriffsgruppe wird gespeichert. Nun können Sie die Sitebegriffsgruppe verwenden, um Ihre Sitebegriffe zu organisieren.

Siehe auch

Informationen zu Benutzern

Hinzufügen eines Sitebegriffs

Bearbeiten von Sitebegriffen


Hinzufügen von Eigenschaften zu einer Profildefinition

Verwenden Sie das Profil-Designer-Modul, um Eigenschaften zu Profildefinitionen hinzuzufügen und die Attribute der neuen Eigenschaften zu definieren. Profileigenschaften bestimmen die Profildaten, die zusammengestellt werden sollen, wenn ein Benutzer Ihre Website besucht. So gibt z. B. die Profileigenschaft Vorname an, dass der Vorname von Benutzern abgefragt werden soll.

Jede Profileigenschaft verfügt über Attribute, die bestimmen, welche Art von Informationen von der Eigenschaft gesammelt werden. So können Sie z. B. die Attribute der Profileigenschaft Vorname verwenden, um diese Eigenschaft als einwertige Zeichenfolge festzulegen, die in das Datawarehouse exportiert werden kann. Das Hinzufügen benutzerdefinierter Attribute zu einer Profileigenschaft ist auch mit dem Profil-Designer möglich. Mithilfe benutzerdefinierter Attribute können Merkmale von Profileigenschaften definiert werden, die in den bereits vorhandenen Attributen nicht verfügbar sind. Informationen über Attribute von Profileigenschaften finden Sie unter Profil-Designer.

So fügen Sie eine neue Eigenschaft hinzu

So fügen Sie ein benutzerdefiniertes Attribut hinzu

So fügen Sie eine neue Eigenschaft hinzu

  1. Klicken Sie im Menü Benutzer auf Profil-Designer.

  2. Wählen Sie im Bildschirm Profile die Profildefinition aus, zu der Sie eine Eigenschaft hinzufügen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Profil in der Liste Eigenschaften die Gruppe aus, zu der Sie eine Eigenschaft hinzufügen möchten. Klicken Sie anschließend auf Hinzufügen.

  4. Wählen Sie im Dialogfeld Hinzufügen die Option Neue Eigenschaft hinzufügen aus, und klicken Sie anschließend auf OK.

  5. Führen Sie im Bereich Attribute folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie einen programmgesteuerten Namen für die Eigenschaft ein. Der Name kann bis zu 128 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Die Verwendung von Leerzeichen ist nicht zulässig.
    Angezeigter Name | Geben Sie den Namen ein, der für die Eigenschaft angezeigt werden soll. Der angezeigte Name kann aus maximal 128 Zeichen bestehen.
    Beschreibung | Geben Sie eine Beschreibung der Eigenschaft ein.
    Typ Wählen Sie den Eigenschaftstyp in der Dropdownliste aus. Es gibt folgende Eigenschaftstypen:
    • Zeichenfolge

    • Lange Zeichenfolge

    • Zahl

    • Dezimal

    • Boolesch

    • Binärwert

    • Langer Binärwert

    • Datum/Uhrzeit

    • Währung

    • Kennwort

    • Sitebegriff

    • Profil

    Informationen über das Hinzufügen von Eigenschaften des Typs Sitebegriff zu einer Profildefinition finden Sie unter Hinzufügen eines Sitebegriffs zu einer Profildefinition.

    Informationen über das Hinzufügen von Eigenschaften des Typs Profil zu einer Profildefinition finden Sie unter Hinzufügen einer Profildefinition zu einer Profildefinition.

  6. Führen Sie im Bereich Erweiterte Attribute folgende Schritte aus:
    Option/Funktion | Zweck
    Aktiv | Wählen Sie aus, ob die neue Eigenschaft Aktiv oder Inaktiv ist.
    Daten zuordnen Klicken Sie auf die Auslassungsschaltfläche […], um das Dialogfeld Datenquellenauswahl zu öffnen.

    Wählen Sie im Dialogfeld Datenquellenauswahl das Datenelement für die Eigenschaft aus. Für die Eigenschaft stehen die Datenelemente zur Verfügung, die noch nicht in der bearbeiteten Profildefinition verwendet werden. Eigenschaften, die von der Profildefinition bereits verwendet werden, sind nicht verfügbar.

    Wenn Sie die Eigenschaft keinem Datenelement zuordnen, wird sie nicht dauerhaft gespeichert sondern bleibt im Arbeitsspeicher verfügbar, z. B. um Zustandsinformationen zu speichern, während ein Benutzer Ihre Website besucht.

    Schlüsseltyp Wählen Sie einen Schlüsseltyp in der Dropdownliste aus:

    Eindeutiger Schlüssel. Gibt an, dass der Wert dieser Eigenschaft für alle Elemente eindeutig ist. Ein als eindeutig definiertes Attribut wird einem eindeutigen Feld in einer SQL Server-Datenbank oder einem eindeutigen Attribut in einer Lightweight Directory Access Protocol (LDAP)-Datenquelle zugeordnet.

    Primärschlüssel. Gibt an, dass der Wert dieser Eigenschaft für alle Elemente eindeutig ist. Ein als Primärschlüssel definiertes Attribut wird einem Primärschlüsselfeld in einer SQL Server-Datenbank oder einem eindeutigen Attribut in einer LDAP-Datenquelle zugeordnet.

    Verbindungsschlüssel. Verknüpft diese Eigenschaft mit einer Eigenschaft in einem anderen Datenspeicher des Profildienstes.

    Dualer (Primär- und Verbindungs-) Schlüssel. Gibt an, dass der Wert dieser Eigenschaft eindeutig ist, und verbindet diese Eigenschaft mit einer Eigenschaft in einem anderen Datenspeicher.
    Erforderlich | Gibt an, dass diese Eigenschaft eine Eingabe des Benutzer erfordert.
    Exportiert | Gibt an, dass diese Eigenschaft in das Datawarehouse importiert wird.
    Laden in den Zwischenspeicher verzögern | Gibt an, dass eine Rückgabe der Eigenschaft erst erfolgt, wenn sie ausdrücklich angefordert wird.
    Mehrwertig | Gibt an, dass die Eigenschaft mehrwertige Attribute akzeptiert.
    Suche aktivieren | Gibt an, dass die Eigenschaft für die Suchfunktion in der Website zur Verfügung steht.
    RDN | Kennzeichnet diese Eigenschaft als RDN (Relative Distinguished Name) für alle Profile, die Lightweight Directory Access Protocol (LDAP)-Quellen zugeordnet werden. Dies gilt nicht für OLE DB-Quellen (OLE DB Provider von Microsoft Commerce Server) oder andere Datenquellentypen.
    Hashschlüssel | Gibt an, dass dieser Eigenschaftswert mithilfe der Hashtechnik verschlüsselt wird. Anschließend wird er verwendet, um festzulegen, in welcher Datenquellenpartition die Profildaten gespeichert werden.

  7. Klicken Sie auf Übernehmen, um die Eigenschaft zu speichern. Klicken Sie anschließend auf der Symbolleiste auf Speichern, um das Profil zu speichern.

Die Profildefinition wird mit der neuen Eigenschaft gespeichert. Nachdem Sie eine Eigenschaft zu einer Profildefinition hinzugefügt haben, müssen Sie die Änderungen in Ihrer Website veröffentlichen. Informationen über das Veröffentlichen von Änderungen finden Sie unter Veröffentlichen von Profildefinitionsänderungen in Ihrer Website.

So fügen Sie ein benutzerdefiniertes Attribut hinzu

  1. Klicken Sie im Menü Benutzer auf Profil-Designer.

  2. Wählen Sie im Bildschirm Profile die Profildefinition mit der Eigenschaft aus, zu der Sie ein benutzerdefiniertes Attribut hinzufügen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Erweitern Sie im Bildschirm Profil in der Liste Eigenschaften die Gruppe mit der Eigenschaft, zu der Sie ein benutzerdefiniertes Attribut hinzufügen möchten. Wählen Sie anschließend die Eigenschaft aus.

  4. Klicken Sie im Bereich Benutzerdefinierte Attribute auf Neu, und führen Sie anschließend folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie einen programmgesteuerten Namens für das Attribut ein. Der Name kann bis zu 128 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Die Verwendung von Leerzeichen ist nicht zulässig.
    Angezeigter Name | Geben Sie den Namen ein, der für das Attribut angezeigt werden soll. Der angezeigte Name kann aus maximal 128 Zeichen bestehen.
    Beschreibung | Geben Sie eine Beschreibung des Attributs ein.
    Wert | Geben Sie den Wert ein, der dem Attribut zugewiesen werden soll.

  5. Klicken Sie auf Annehmen.

    Anmerkung

    • Wiederholen Sie die Schritte 4 und 5, um bei Bedarf weitere benutzerdefinierte Attribute zu dieser Eigenschaft hinzuzufügen.
  6. Klicken Sie auf Übernehmen und dann auf der Symbolleiste auf Speichern und zurück, um die Profildefinition mit dem neuen benutzerdefinierten Attribut zu speichern und zum Bildschirm Profile zurückzukehren.

Die Profildefinition wird mit dem neuen benutzerdefinierten Attribut gespeichert. Nachdem Sie ein benutzerdefiniertes Attribut zu einer Profildefinition hinzugefügt haben, veröffentlichen Sie die Änderungen in Ihrer Website. Informationen über das Veröffentlichen von Änderungen finden Sie unter Veröffentlichen von Profildefinitionsänderungen in Ihrer Website.

Siehe auch

Informationen zu Benutzern

Hinzufügen einer Eigenschaftsgruppe zu einer Profildefinition

Hinzufügen eines Sitebegriffs zu einer Profildefinition


Hinzufügen einer Eigenschaftsgruppe zu einer Profildefinition

Mit dem Profil-Designer-Modul werden Eigenschaftsgruppen zu Profildefinitionen hinzugefügt. Eigenschaftsgruppen werden verwendet, um Profileigenschaften im Profil-Designer zu organisieren. Beispiel: Sie fügen zur Profildefinition eines Benutzerobjekts 50 Eigenschaften hinzu, um Daten über Produktvorlieben, Lebensstil und Meinungen der Besucher Ihrer Website zu sammeln. Dann können Sie Eigenschaftsgruppen erstellen, wie z. B. "Produkt", "Lifestyle" und "Meinungen", und darin die Eigenschaften organisieren, sodass sie im Bildschirm Profil-Designer in der Liste Eigenschaften leicht zu finden sind.

Eigenschaftsgruppen erscheinen im Bildschirm Profil-Designer in der Liste Eigenschaften mit einem Pfeil links neben dem Gruppennamen. Klicken Sie auf den Pfeil, um die Liste der Eigenschaften zu erweitern.

So fügen Sie eine neue Eigenschaftsgruppe hinzu

  1. Klicken Sie im Menü Benutzer auf Profil-Designer.

  2. Wählen Sie im Bildschirm Profile die Profildefinition aus, zu der Sie eine neue Eigenschaftsgruppe hinzufügen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Profil in der Liste Eigenschaften die Gruppe aus, zu der Sie eine neue Eigenschaftsgruppe hinzufügen möchten. Klicken Sie anschließend auf Hinzufügen.

    Anmerkung

    • Wenn Sie eine Eigenschaftsgruppe erstellen möchten, die keiner vorhandenen Gruppe angehört, wählen Sie keine Gruppe aus, bevor Sie auf Hinzufügen klicken.
  4. Wählen Sie im Dialogfeld Hinzufügen die Option Neue Gruppe hinzufügen aus, und klicken Sie anschließend auf Ja.

  5. Führen Sie im Bereich Attribute folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie einen programmgesteuerten Namens für die neue Eigenschaftsgruppe ein. Der Name kann bis zu 128 alphanumerische Zeichen sowie Unterstriche (_) enthalten. Die Verwendung von Leerzeichen ist nicht zulässig.
    Angezeigter Name | Geben Sie den Namen ein, der für die neue Eigenschaftsgruppe angezeigt werden soll. Der angezeigte Name kann aus maximal 128 Zeichen bestehen.
    Beschreibung | Geben Sie eine Beschreibung der neuen Eigenschaftsgruppe ein.

  6. Klicken Sie auf Übernehmen und dann auf der Symbolleiste auf Speichern und zurück, um die Profildefinition zu speichern und zum Bildschirm Profile zurückzukehren.

Die Profildefinition wird mit der neuen Eigenschaftsgruppe gespeichert. Nun können Sie vorhandene Eigenschaften in die neue Gruppe verschieben oder in der Gruppe neue Eigenschaften erstellen. Nachdem Sie eine Profildefinition zu einer Gruppe hinzugefügt haben, müssen Sie die Änderungen in Ihrer Website veröffentlichen. Informationen über das Veröffentlichen von Änderungen finden Sie unter Veröffentlichen von Profildefinitionsänderungen in Ihrer Website.

Siehe auch

Informationen zu Benutzern

Hinzufügen von Eigenschaften zu einer Profildefinition

Bearbeiten von Profileigenschaften


Veröffentlichen von Profildefinitionsänderungen in Ihrer Website

Bevor Sie Daten zu neuen Profileigenschaften hinzufügen können, müssen die Profildefinitionsänderungen in der Website veröffentlicht werden. Die Aktualisierung der Website mit den neuesten Änderungen erfolgt mithilfe des Profilveröffentlichungsmoduls. Bei den meisten E-Commerce-Geschäften werden diese Änderungen zunächst in einer Testsite vorgenommen und erst anschließend in der Produktionssite veröffentlicht. Wenden Sie sich an Ihren Systemadministrator, um weitere Informationen darüber zu erhalten, wann und wie Änderungen in der Produktionssite vorgenommen werden.

So veröffentlichen Sie Profiländerungen

  1. Klicken Sie im Menü Benutzer auf Profile veröffentlichen.

  2. Wählen Sie im Bildschirm Profile veröffentlichen die Site aus, in der Sie die Änderungen der Profildefinition veröffentlichen möchten. Klicken Sie anschließend auf der Symbolleiste auf Profiländerungen in Produktion veröffentlichen und Cache aktualisieren.

    Anmerkung

    • Wird Ihre Site von mehreren Webservern bedient, müssen Sie die Profildefinitionsänderungen auf jedem Webserver veröffentlichen.

    • Der Aktualisierungsstatus kann zurückgesetzt werden durch Klicken auf Aktualisierungsstatus zurücksetzen auf der Symbolleiste. Diese Aktion bewirkt jedoch nicht, dass bereits veröffentlichte Änderungen zurückgesetzt oder rückgängig gemacht werden.

Die Profildefinitionsänderungen werden nun in Ihrer Website veröffentlicht.

Siehe auch

Profil-Designer

Verwalten von Profildefinitionen


Hinzufügen eines Benutzers

Mithilfe des Benutzermoduls können Sie ein Profil für einen neuen Benutzer Ihrer Site hinzufügen. Wenn Sie den Benutzer mit einer Organisation verknüpfen möchten, müssen Sie zuerst das Organisationsprofil im Organisationsmodul erstellen, bevor Sie ein Benutzerprofil mit dem Profil dieser Organisation verknüpfen können.

Anmerkung

  • Der Bildschirm Neuer Benutzer enthält möglicherweise nicht dieselben Eigenschaften, die in dieser Prozedur vorkommen. Die Eigenschaften auf dem Bildschirm Neuer Benutzer werden von der Benutzerobjekt-Profildefinition gesteuert. Wenn Sie in der Benutzerobjekt-Profildefinition die Eigenschaften geändert haben, wirken sich diese Änderungen auf den Bildschirm Neuer Benutzer aus. Informationen über das Ändern der Eigenschaften einer Profildefinition finden Sie unter Verwalten von Profildefinitionen.

So fügen Sie einen neuen Benutzer hinzu

  1. Klicken Sie im Menü Benutzer auf Benutzer.

  2. Klicken Sie im Bildschirm Benutzer auf der Symbolleiste auf [image].

  3. Führen Sie auf dem Bildschirm Neuer Benutzer im Bereich Allgemeine Informationen folgende Schritte aus:
    Option/Funktion | Zweck
    Anmeldename | Geben Sie einen Anmeldenamen für den neuen Benutzer ein.
    Benutzerkennwort | Geben Sie ein Kennwort für den neuen Benutzer ein.
    E-Mail | Geben Sie eine E-Mail-Adresse für den neuen Benutzer ein.
    Benutzertyp | Wählen Sie in der Dropdownliste aus, ob der neue Benutzer Registriert oder ein Gast ist. In der Regel werden Sie nur registrierte Benutzer erstellen.
    Benutzertitel | Geben Sie eine Anrede (z. B. Frau oder Herr) für den neuen Benutzer ein.
    Nachname | Geben Sie einen Nachnamen für den neuen Benutzer ein.
    Vorname | Geben Sie einen Vornamen für den neuen Benutzer ein.
    Rufnummer | Geben Sie eine Rufnummer für den neuen Benutzer ein.
    Durchwahl | Geben Sie eine Durchwahlnummer für den neuen Benutzer ein.
    Faxnummer | Geben Sie eine Faxnummer für den neuen Benutzer ein.
    Faxdurchwahl | Geben Sie eine Faxdurchwahlnummer für den neuen Benutzer ein.

  4. Führen Sie im Bereich Kontoinformationen folgende Schritte aus:
    Option/Funktion | Zweck
    Kontostatus | Wählen Sie in der Dropdownliste aus, ob der Benutzer über ein Aktives Konto oder ein Inaktives Konto verfügt. Der Standardstatus ist Aktives Konto. Benutzer mit inaktiven Konten können sich nicht in Ihrer Site anmelden.
    Benutzerkatalogsatz | Wählen Sie den Katalogsatz, zu dem der Benutzer Zugang haben soll, in der Dropdownliste aus.

    Anmerkung

    • Wenn Sie die Organisations-ID für den Benutzer einrichten möchten, müssen Sie zuerst im Organisationsmodul die Organisation erstellen, bevor Sie den Benutzer mit der Organisation verknüpfen können.
  5. Führen Sie im Bereich Business Desk folgende Schritte aus:
    Option/Funktion | Zweck
    Flags für die Partnerservicerolle | Wählen Sie in der Dropdownliste aus, ob der Benutzer ein Normaler Benutzer oder ein Administrator ist. Das Standardrollenflag ist Normaler Benutzer. Benutzer mit dem Flag Administrator sind delegierte Administratoren und verfügen für ihre Organisation über erweiterten Zugriff (z. B. zum Überprüfen von Bestellungen und Erstellen von Benutzerprofilen) in einer Site, die delegierte Administratoren unterstützt.

  6. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um das neue Benutzerprofil zu speichern und zum Bildschirm Benutzer zurückzukehren.

Das neue Benutzerprofil wird gespeichert.

Siehe auch

Informationen zu Benutzern

Löschen von Benutzern

Suchen eines Benutzers

Hinzufügen einer Organisation


Importieren einer Liste von Benutzerprofilen

Mithilfe des Benutzermoduls kann eine Liste von Benutzerprofilen aus dem Listen-Manager-Modul importiert werden. Erstellen Sie eine Benutzerliste, indem Sie einen statischen Benutzerbericht aus dem Berichtsmodul in das Listen-Manager-Modul exportieren. Sie können z. B. den Bericht Neu registrierte Benutzer oder den Bericht Eigenschaften von registriertem Benutzer als eine Liste in den Listen-Manager exportieren. Sie können auch eine Benutzerliste im ASCII-Format mit Trennzeichen in das Listen-Manager-Modul importieren. Wenn sich eine Benutzerliste im Listen-Manager-Modul befindet, können Sie sie mithilfe der Suchfunktion des Benutzermoduls in das Benutzermodul übertragen.

So importieren Sie eine Liste von Benutzerprofilen in den Listen-Manager

  1. Klicken Sie im Menü Benutzer auf Benutzer. Wenn auf dem Bildschirm Benutzer der Bereich Suchen nicht geöffnet ist, klicken Sie auf der Symbolleiste auf Suchen.

  2. Wählen Sie im Dropdownfeld Suchen nach die Option Benutzerlisten aus.

  3. Im Bereich Suchen erscheint eine Liste mit Benutzerlisten aus dem Listen-Manager.

  4. Wählen Sie die Benutzerliste aus, die Sie im Benutzermodul öffnen möchten.

  5. Klicken Sie auf Suchen.

Die Benutzerprofile aus der Listen-Manager-Liste sind nun im Benutzermodul verfügbar. Die Profile können einzeln oder gruppenweise bearbeitet werden. Nachdem die Änderungen in den Benutzerprofilen gespeichert wurden, sind die geänderten Daten in der Website verfügbar.

Siehe auch

Bearbeiten eines Benutzers

Bearbeiten mehrerer Benutzer

Exportieren eines statischen Berichts


Hinzufügen einer Organisation

Mithilfe des Organisationsmoduls werden Organisationsprofile zu einer Site hinzugefügt und Informationen dazu angegeben (z. B. Identifizierungs- und Kontaktinformationen) sowie der Katalogsatz, den Sie dafür verfügbar machen. Wenn Sie zu einem Organisationsprofil einen administrativen Kontakt oder einen Empfänger hinzufügen möchten, müssen Sie zunächst das Organisationsprofil und anschließend ein Benutzerprofil für den Benutzer erstellen, der zur Organisation gehört. Nach der Erstellung des Benutzerprofils für den zur Organisation gehörenden Benutzer können Sie dieses Benutzerprofil als administrativen Kontakt oder Empfänger zum Organisationsprofil hinzufügen.

So fügen Sie ein Organisationsprofil hinzu

So verknüpfen Sie ein Benutzerprofil mit einem vorhandenen Organisationsprofil

So verknüpfen Sie ein Organisationsprofil mit einem vorhandenen Benutzerprofil

So fügen Sie ein Organisationsprofil hinzu

  1. Klicken Sie im Menü Benutzer auf Organisationen.

  2. Klicken Sie im Bildschirm Organisationen auf der Symbolleiste auf Hinzufügen.

  3. Führen Sie auf dem Bildschirm Neue Organisation im Bereich Allgemeine Informationen folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Geben Sie den Namen der Organisation ein. Namen von Organisationen können bis zu 53 alphanumerische Zeichen lang sein. Der Name darf Leerzeichen enthalten.
    Nummer des Handelspartners | Geben Sie die Nummer der Organisation oder des Handelspartners ein.
    Organisationskatalogsatz | Wählen Sie den Katalogsatz, zu dem die Organisation Zugang haben soll, in der Dropdownliste aus.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um das Organisationsprofil zu speichern und zum Bildschirm Organisationen zurückzukehren.

Das neue Organisationsprofil wird gespeichert. Nun können Sie mit diesem Organisationsprofil ein Benutzerprofil verknüpfen.

So verknüpfen Sie ein Benutzerprofil mit einem vorhandenen Organisationsprofil

  1. Klicken Sie im Menü Benutzer auf Benutzer.

  2. Wählen Sie auf dem Bildschirm Benutzer das Benutzerprofil aus, das Sie bearbeiten möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Klicken Sie im Bildschirm Benutzer aktualisieren: Benutzer im Bereich Kontoinformationen im Feld Organisations-ID auf die Auslassungsschaltfläche […], um das Dialogfeld zur Organisationsauswahl zu öffnen.

  4. Führen Sie im Dialogfeld zur Organisationsauswahl folgende Schritte aus:
    Option/Funktion | Zweck
    Wählen Sie die Organisation aus, der dieser Benutzer angehört | Wählen Sie die Organisation, der der Benutzer angehört, in der Liste aus.
    Name Geben Sie den Organisationsnamen ein (wenn er nicht in der Liste Wählen Sie die Organisation aus, der dieser Benutzer angehört angezeigt wird). Klicken Sie anschließend auf Suchen.

    Wenn die Organisation in der Liste Wählen Sie die Organisation aus, der dieser Benutzer angehört angezeigt wird, wählen Sie die Organisation aus.

  5. Klicken Sie auf OK.

  6. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um das neue Benutzerprofil zu speichern und zum Bildschirm Benutzer zurückzukehren.

Das Benutzerprofil wird gespeichert. Sie können nun dieses Benutzerprofil als administrativen Kontakt, als Empfänger oder als Einkaufs-Manager zum Organisationsprofil hinzufügen. Sie können Benutzerprofile nur zu einem gespeicherten Organisationsprofil hinzufügen.

So verknüpfen Sie ein Organisationsprofil mit einem vorhandenen Benutzerprofil

  1. Klicken Sie im Menü Benutzer auf Organisationen.

  2. Wählen Sie im Bildschirm Organisationen das Organisationsprofil, mit dem Sie Benutzerprofile verknüpfen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

    Anmerkung

    • Sie können den Bereich Suchen verwenden, um die Organisationsprofile mithilfe von Name, Zuletzt geändert am oder Erstellt am zu suchen. Informationen über das Suchen eines Organisationsprofils finden Sie unter Suchen einer Organisation.
  3. Klicken Sie auf dem Bildschirm Organisation aktualisieren: Organisation im Bereich Allgemeine Informationen im Feld Administrativer Kontakt auf die Auslassungsschaltfläche […], um das Dialogfeld zur Benutzerauswahl zu öffnen.

  4. Führen Sie im Dialogfeld zur Benutzerauswahl folgende Schritte aus:
    Option/Funktion | Zweck
    Vorhandenen Benutzer auswählen | Wählen Sie den Namen des Benutzers aus, den Sie als administrativen Kontakt hinzufügen möchten. Klicken Sie anschließend auf OK.
    Anmeldename Geben Sie den Namen des Benutzers ein, den Sie als administrativen Kontakt hinzufügen möchten (wenn er nicht in der Liste Vorhandenen Benutzer auswählen angezeigt wird). Klicken Sie anschließend auf Suchen.

    Wenn der Benutzer in der Liste Vorhandenen Benutzer auswählen angezeigt wird, wählen Sie den Benutzer aus.

  5. Klicken Sie auf OK.

  6. Klicken Sie im Bereich Allgemeine Informationen im Feld Empfänger auf die Auslassungsschaltfläche […], um das Dialogfeld zur Benutzerauswahl zu öffnen.

  7. Führen Sie im Dialogfeld zur Benutzerauswahl folgende Schritte aus:
    Option/Funktion | Zweck
    Vorhandenen Benutzer auswählen | Wählen Sie den Namen des Benutzers aus, den Sie als Empfänger hinzufügen möchten. Klicken Sie anschließend auf OK.
    Anmeldename Geben Sie den Namen des Benutzers ein, den Sie als Empfänger hinzufügen möchten (wenn er nicht in der Liste Vorhandenen Benutzer auswählen angezeigt wird). Klicken Sie anschließend auf Suchen.

    Wenn der Benutzer in der Liste Vorhandenen Benutzer auswählen angezeigt wird, wählen Sie den Benutzer aus.

  8. Klicken Sie auf OK.

  9. Klicken Sie im Bereich Einkäufer im Feld Einkaufs-Manager auf die Auslassungsschaltfläche […], um das Dialogfeld zur Benutzerauswahl zu öffnen.

  10. Führen Sie im Dialogfeld zur Benutzerauswahl folgende Schritte aus:
    Option/Funktion | Zweck
    Vorhandenen Benutzer auswählen | Wählen Sie den Namen des Benutzers aus, den Sie als Einkaufs-Manager hinzufügen möchten. Klicken Sie anschließend auf OK.
    Anmeldename Geben Sie den Namen des Benutzers ein, den Sie als Einkaufs-Manager hinzufügen möchten (wenn er nicht in der Liste Vorhandenen Benutzer auswählen angezeigt wird). Klicken Sie anschließend auf Suchen.

    Wenn der Benutzer in der Liste Vorhandenen Benutzer auswählen angezeigt wird, wählen Sie den Benutzer aus.

  11. Klicken Sie auf OK.

  12. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Organisation zu speichern und zum Bildschirm Organisationen zurückzukehren.

Das Organisationsprofil wird mit dem administrativen Kontakt, Empfänger und Einkaufs-Manager gespeichert.

Siehe auch

Informationen zu Benutzern

Bearbeiten einer Organisation

Suchen einer Organisation


Zurücksetzen eines Benutzerkennworts

Mithilfe des Benutzermoduls können Kennwörter für registrierte Benutzer zurückgesetzt werden, die ihre vergessen haben. Nachdem Sie das Kennwort des Benutzers zurückgesetzt haben, müssen Sie dem Benutzer das neue Kennwort mitteilen.

So setzen Sie ein Benutzerkennwort zurück

  1. Klicken Sie im Menü Benutzer auf Benutzer.

  2. Wählen Sie im Bildschirm Benutzer das Profil für den Benutzer, dessen Kennwort Sie zurücksetzen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

    Anmerkung

    • Oben auf dem Bildschirm Benutzer finden Sie den Bereich Suchen, mit dem Sie das Profil eines bestimmten Benutzers suchen können. Informationen über das Suchen eines Benutzerprofils finden Sie unter Suchen eines Benutzers.
  3. Markieren Sie auf dem Bildschirm Benutzer aktualisieren im Bereich Allgemeine Informationen im Feld Benutzerkennwort das aktuelle Kennwort, das als eine Folge von Sternchen (*) angezeigt wird.

  4. Geben Sie das neue Kennwort ein.

    Anmerkung

    • Kennwörter müssen 7 bis 14 alphanumerische Zeichen enthalten. Die Verwendung von Leerzeichen ist nicht zulässig.
  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um das neue Kennwort zu speichern und zum Bildschirm Benutzer zurückzukehren.

Das Benutzerprofil wird mit dem neuen Kennwort gespeichert. Sie müssen dem Benutzer das neue Kennwort mitteilen.


Verwalten von Sitebegriffen und Gruppen

Mit dem Sitebegriffs-Editor-Modul werden Sitebegriffe erstellt und aktualisiert. Sitebegriffe werden verwendet, um Auswahlmöglichkeiten bei Benutzereingaben zu standardisieren und einzuschränken und Inhalte zielgerichet für Benutzer anzubieten. Sie können beispielsweise die Farben einschränken, die Benutzern zur Auswahl stehen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Hinzufügen eines Sitebegriffs zu einer Profildefinition

  • Bearbeiten von Sitebegriffen

  • Löschen eines Begriffs aus den Sitebegriffen

  • Neuanordnen von Sitebegriffen

  • Löschen von Sitebegriffen


Hinzufügen eines Sitebegriffs zu einer Profildefinition

Nach der Erstellung eines Sitebegriffs kann dieser zu einer Profildefinition hinzugefügt werden.

So fügen Sie einen Sitebegriff zu einer Profildefinition hinzu

  1. Klicken Sie im Menü Benutzer auf Profil-Designer.

  2. Wählen Sie im Bildschirm Profile die Profildefinition mit der Eigenschaft aus, die Sie bearbeiten möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Profil in der Liste Eigenschaften die Eigenschaft aus, zu der Sie den Sitebegriff hinzufügen möchten.

    Anmerkung

    • Wenn die Eigenschaft in der Liste Eigenschaften nicht angezeigt wird, erweitern Sie die Eigenschaftsgruppe, welche die betreffende Eigenschaft enthält, und wählen Sie anschließend die Eigenschaft aus.
  4. Wählen Sie auf dem Bildschirm Attribute im Bereich Attribute in der Dropdownliste Typ den Eintrag Sitebegriff aus.

  5. Klicken Sie im Feld Typverweis auf die Auslassungsschaltfläche […], um das Dialogfeld Sitebegriffsauswahl zu öffnen.

  6. Erweitern Sie im Dialogfeld Sitebegriffsauswahl in der Liste Wählen Sie einen Sitebegriff aus die Sitebegriffsgruppe, die den Sitebegriff enthält, welcher zu der Eigenschaftsdefinition hinzugefügt werden soll, und wählen Sie den Sitebegriff aus.

  7. Klicken Sie auf OK.

  8. Klicken Sie auf Übernehmen und dann auf der Symbolleiste auf Speichern und zurück, um die bearbeitete Profildefinition zu speichern und zum Bildschirm Profile zurückzukehren.

Die Profildefinition wird gespeichert. Veröffentlichen Sie nun die Profildefinitionsänderungen in Ihrer Website. Informationen über das Veröffentlichen von Änderungen finden Sie unter Veröffentlichen von Profildefinitionsänderungen in Ihrer Website.

Siehe auch

Hinzufügen eines Sitebegriffs

Hinzufügen von Eigenschaften zu Profildefinitionen

Bearbeiten von Profileigenschaften

Bearbeiten von Sitebegriffen


Bearbeiten von Sitebegriffen

Mit dem Sitebegriffs-Editor-Modul werden vorhandene Sitebegriffe und Sitebegriffsgruppen bearbeitet.

So bearbeiten Sie einen Sitebegriff

  1. Klicken Sie im Menü Benutzer auf die Option Sitebegriffs-Editor.

  2. Wählen Sie Bildschirm Sitebegriffs-Editor den Sitebegriff aus, den Sie bearbeiten möchten.

  3. Führen Sie im Bereich Sitebegriffsattribute folgende Schritte aus:
    Option/Funktion | Zweck
    Angezeigter Name | Bearbeiten Sie den angezeigten Sitebegriffsnamen. Der angezeigte Name kann aus maximal 128 Zeichen bestehen.
    Beschreibung | Bearbeiten Sie die Sitebegriffsbeschreibung.

    Anmerkung

    • Der angezeigte Name eines Sitebegriffs kann geändert werden, der programmtechnische Name jedoch nicht. Wenn Sie den programmtechnischen Namen eines Sitebegriffs ändern möchten, müssen Sie den Sitebegriff löschen und anschließend einen neuen Sitebegriff mit dem gewünschten Namen erstellen.
  4. Wählen Sie im Bereich Begriffe den Begriff aus, den Sie bearbeiten möchten, und klicken Sie dann auf Bearbeiten.

  5. Bearbeiten Sie den Begriff, und klicken Sie dann auf Annehmen.

    Anmerkung

    • Sie können beliebig viele Begriffe bearbeiten. Klicken Sie auf Bearbeiten, um einen weiteren Begriff zu bearbeiten. Auch das Hinzufügen und Löschen von Begriffen ist möglich. Klicken Sie auf Neu, um einen neuen Begriff hinzuzufügen. Klicken Sie auf Entfernen, um einen ausgewählten Begriff zu löschen.
  6. Klicken Sie auf Übernehmen und dann auf der Symbolleiste auf Speichern und zurück, um den Sitebegriff zu speichern und zum Bildschirm Business Desk zurückzukehren.

Der Sitebegriff wird gespeichert.

Siehe auch

Informationen zu Benutzern

Hinzufügen eines Sitebegriffs

Hinzufügen einer Sitebegriffsgruppe

Hinzufügen eines Sitebegriffs zu einer Profildefinition


Löschen eines Begriffs aus den Sitebegriffen

Das Löschen von Begriffen erfolgt im Sitebegriffs-Editor-Modul. Sie können z. B. den Begriff "Violett" aus dem Sitebegriff Farbe löschen.

So löschen Sie einen Begriff

  1. Klicken Sie im Menü Benutzer auf die Option Sitebegriffs-Editor.

  2. Wählen Sie Bildschirm Sitebegriffs-Editor den Sitebegriff aus, aus dem Sie den Begriff löschen möchten.

  3. Wählen Sie im Bereich Begriffe den Begriff aus, den Sie löschen möchten, und klicken Sie dann auf Entfernen.

    Der Begriff wird aus der Liste Begriffe gelöscht.

  4. Klicken Sie auf Übernehmen, um die Änderung der Sitebegriffsattribute zu speichern.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um den bearbeiteten Sitebegriff zu speichern und zum Bildschirm Business Desk zurückzukehren.

Der bearbeitete Sitebegriff wird gespeichert.

Siehe auch

Informationen zu Benutzern

Hinzufügen eines Sitebegriffs

Hinzufügen einer Sitebegriffsgruppe


Neuanordnen von Sitebegriffen

Mit dem Sitebegriffs-Editor-Modul werden Sitebegriffe und Sitebegriffsgruppen organisiert. Sitebegriffe und Gruppen können in der Sitebegriffsstrukturliste nach oben und nach unten verschoben werden. Sie können bestimmen, zu welcher Gruppe ein Sitebegriff gehört, indem Sie ihn von einer Gruppe zu einer anderen verschieben.

So verschieben Sie einen Sitebegriff

  1. Klicken Sie im Menü Benutzer auf die Option Sitebegriffs-Editor.

  2. Wählen Sie Bildschirm Sitebegriffs-Editor den Sitebegriff aus, den Sie verschieben möchten.

  3. Klicken Sie auf die Pfeile unterhalb der Sitebegriffsstrukturliste, um den Sitebegriff oder die Gruppe nach oben bzw. nach unten zu verschieben.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Änderungen zu speichern und zum Bildschirm Business Desk zurückzukehren.

Der Sitebegriff wird gespeichert.

Siehe auch

Informationen zu Benutzern

Hinzufügen eines Sitebegriffs

Hinzufügen einer Sitebegriffsgruppe


Löschen von Sitebegriffen

Das Löschen von Sitebegriffen und Sitebegriffsgruppen erfolgt mithilfe des Sitebegriffs-Editor-Moduls.

So löschen Sie einen Sitebegriff

  1. Klicken Sie im Menü Benutzer auf die Option Sitebegriffs-Editor.

  2. Wählen Sie im Bildschirm Sitebegriffs-Editor den Begriff oder die Gruppe aus, den/die Sie löschen möchten, und klicken Sie auf Entfernen.

  3. Klicken Sie im Dialogfeld Löschen auf OK, um den Sitebegriff zu löschen.

    Vorsicht

    • Beim Löschen einer Sitebegriffsgruppe werden alle darin enthaltenen Sitebegriffe ebenfalls gelöscht.
  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Änderungen zu speichern und zum Bildschirm Business Desk zurückzukehren.

Siehe auch

Informationen zu Benutzern

Hinzufügen eines Sitebegriffs

Hinzufügen einer Sitebegriffsgruppe


Verwalten von Profildefinitionen

Mithilfe des Profil-Designer-Moduls können Profileigenschaften hinzugefügt, bearbeitet und gelöscht werden. Sie können entsprechend dem Änderungsbedarf der Benutzer- und Organisationsinformationen die vorhandenen Profildefinitionen bearbeiten.

Dieser Abschnitt beinhaltet folgende Themen:

  • Hinzufügen einer Profildefinition zu einer Profildefinition

  • Bearbeiten von Profileigenschaften

  • Löschen von Eigenschaften aus einer Profildefinition


Hinzufügen einer Profildefinition zu einer Profildefinition

Eine Profildefinition kann zu einer anderen Profildefinition hinzugefügt werden. Es ist möglich, eine Eigenschaft in einer Profildefinition als Profil zu definieren und der Eigenschaft anschließend eine Profildefinition zuzuweisen. Sie können z. B. Adressinformationen mit der Benutzerobjekt-Profildefinition verbinden: Fügen Sie zu der Benutzerobjekt-Profildefinition eine Eigenschaft namens Adresse hinzu, definieren Sie die Eigenschaft Adresse als Profil mit dem Attribut Typ, und wählen Sie anschließend als Typverweis für die Eigenschaft Adresse die Adressenprofildefinition aus. Ordnen Sie dann die neue Eigenschaft Adresse einem Datenelement vom Typ Zeichenfolge zu, das den Namen der Profilinstanz speichert, welche die Adresse des Benutzers enthält. Dieses Verfahren kann verwendet werden, um verschiedene Adressen mit der Benutzerobjektprofildefinition zu verbinden. So können Sie beispielsweise eine Eigenschaft für die Rechnungsadresse und eine weitere Eigenschaft für die Lieferadresse erstellen, die beide die Adressenprofildefinition verwenden, um Informationen für den Benutzer zu erfassen.

In diesem Beispiel stellt der Wert der Adresseneigenschaft im Benutzerprofil den Namen des Adressenprofils dar, das die Adresse des Benutzers enthält. Der Systemadministrator kann die Adresseneigenschaft im Benutzerprofil verwenden, um die Adresse des Benutzers mit den Profilinformationen für den Benutzer darzustellen.

So fügen Sie eine Profildefinition zu einer Profildefinition hinzu

  1. Klicken Sie im Menü Benutzer auf die Option Profil-Designer.

  2. Wählen Sie im Bildschirm Profile die Profildefinition aus, zu der Sie eine Profildefinition hinzufügen möchten, und klicken Sie anschließend auf der Symbolleiste auf [image] .

  3. Wählen Sie auf dem Bildschirm Profil in der Liste Eigenschaften die Eigenschaft aus, zu der Sie die Profildefinition hinzufügen möchten.

    Anmerkung

    • Wenn die Eigenschaft in der Liste Eigenschaften nicht angezeigt wird, erweitern Sie die Eigenschaftsgruppe mit der Eigenschaft, zu der Sie die Profildefinition hinzufügen möchten. Wählen Sie anschließend die Eigenschaft aus.
  4. Wählen Sie im Bereich Attribute in der Dropdownliste Typ den Eintrag Profil aus.

  5. Klicken Sie im Feld Typverweis auf die Auslassungsschaltfläche […], um das Dialogfeld Profilauswahl zu öffnen.

  6. Erweitern Sie im Dialogfeld Profilauswahl in der Liste Ein Profil auswählen den Profilkatalog, und wählen Sie anschließend die Profildefinition aus, die Sie zu der Eigenschaft hinzufügen möchten.

  7. Klicken Sie auf OK.

  8. Klicken Sie auf Übernehmen und dann auf der Symbolleiste auf Speichern und zurück, um die bearbeitete Eigenschaft zu speichern und zum Bildschirm Profile zurückzukehren.

Die bearbeitete Profildefinition wird gespeichert.

Siehe auch

Profil-Designer

Hinzufügen von Eigenschaften zu Profildefinitionen

Bearbeiten von Profileigenschaften


Bearbeiten von Profileigenschaften

Mithilfe des Profil-Designer-Moduls können Sie Profileigenschaften und Eigenschaftsgruppen bearbeiten, die in Profildefinitionen verwendet werden.

So bearbeiten Sie eine Profileigenschaft

  1. Klicken Sie im Menü Benutzer auf die Option Profil-Designer.

  2. Wählen Sie im Bildschirm Profile das Profil mit der Eigenschaft aus, die Sie bearbeiten möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie auf dem Bildschirm Profil in der Liste Eigenschaften die Eigenschaft oder Eigenschaftsgruppe aus, die Sie bearbeiten möchten.

    Anmerkung

    • Wird die Eigenschaft in der Liste Eigenschaften nicht angezeigt, erweitern Sie die Eigenschaftsgruppe mit der Eigenschaft, die Sie bearbeiten möchten. Wählen Sie anschließend die Eigenschaft aus.
  4. Bearbeiten Sie die Attribute der Eigenschaft.

    Anmerkung

    • Der Name einer Eigenschaft kann nach der Erstellung nicht mehr bearbeitet werden. Sie können den angezeigten Namen bearbeiten, der eigentliche programmtechnische Name ist jedoch statisch. Wenn Sie den programmtechnischen Namen ändern möchten, müssen Sie die Eigenschaft löschen und mit dem neuen programmtechnischen Namen erneut hinzufügen.
  5. Klicken Sie auf Übernehmen und dann auf der Symbolleiste auf Speichern und zurück, um die bearbeitete Eigenschaft zu speichern und zum Bildschirm Profile zurückzukehren.

Die bearbeitete Profildefinition wird gespeichert. Nachdem Sie eine Eigenschaft in einer Profildefinition bearbeitet haben, veröffentlichen Sie die Änderungen in Ihrer Website. Informationen über das Veröffentlichen von Änderungen finden Sie unter Veröffentlichen von Profildefinitionsänderungen in Ihrer Website.

Siehe auch

Informationen zu Benutzern

Hinzufügen von Eigenschaften zu Profildefinitionen

Hinzufügen einer Eigenschaftsgruppe zu einer Profildefinition

Löschen von Eigenschaften aus einer Profildefinition

Hinzufügen eines Sitebegriffs zu einer Profildefinition


Löschen von Eigenschaften aus einer Profildefinition

Das Löschen von Eigenschaften und Eigenschaftsgruppen aus einer Profildefinition erfolgt mithilfe des Profil-Designer-Moduls.

So löschen Sie eine Profileigenschaft

  1. Klicken Sie im Menü Benutzer auf die Option Profil-Designer.

  2. Wählen Sie im Bildschirm Profile die Profildefinition aus, aus der Sie eine Eigenschaft löschen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie auf dem Bildschirm Profil in der Liste Eigenschaften die Eigenschaft aus, die Sie löschen möchten.

    Anmerkung

    • Wenn die Eigenschaft in der Liste Eigenschaften nicht angezeigt wird, erweitern Sie die Eigenschaftsgruppe mit der Eigenschaft, die Sie löschen möchten. Wählen Sie anschließend die Eigenschaft aus.
  4. Klicken Sie auf Entfernen.

  5. Klicken Sie im Dialogfeld Löschen auf OK, um die Eigenschaft zu löschen.

  6. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Änderungen zu speichern und zum Bildschirm Profile zurückzukehren.

Die bearbeitete Profildefinition wird gespeichert. Nachdem Sie eine Eigenschaft in einer Profildefinition gelöscht haben, müssen Sie die Änderungen in Ihrer Website veröffentlichen. Informationen über das Veröffentlichen von Änderungen finden Sie unter Veröffentlichen von Profildefinitionsänderungen in Ihrer Website.

Siehe auch

Informationen zu Benutzern

Hinzufügen von Eigenschaften zu Profildefinitionen

Hinzufügen einer Eigenschaftsgruppe zu einer Profildefinition

Bearbeiten von Profileigenschaften

Verwalten von Sitebegriffen und Gruppen


Verwalten von Benutzern

Im Benutzermodul können Benutzerinformationen gesucht, bearbeitet und verwaltet werden.

Dieser Abschnitt beinhaltet folgende Themen:

  • Suchen eines Benutzers

  • Bearbeiten eines Benutzers

  • Bearbeiten mehrerer Benutzer

  • Kopieren von Benutzern

  • Löschen von Benutzern


Suchen eines Benutzers

Mithilfe des Benutzermoduls können Sie Ihre Website nach einem Benutzerprofil oder einer Gruppe von Benutzerprofilen durchsuchen. Im Dialogfeld Suchen können Sie die Suche mit den Eigenschaften der Benutzerobjekt-Profildefinition und den Werten des gesuchten Benutzerprofils einschränken. Beispielsweise können Sie nach einem Benutzerprofil suchen, das in der Profileigenschaft Vorname den Wert "Mike" enthält. Die Ergebnisliste im Bereich Suchen enthält alle Benutzerprofile, die den Suchkriterien entsprechen.

So suchen Sie ein Benutzerprofil

So erstellen Sie einen Ausdruck, um ein Benutzerprofil zu suchen

So suchen Sie ein Benutzerprofil

  1. Klicken Sie im Menü Benutzer auf Benutzer. Wenn auf dem Bildschirm Benutzer der Bereich Suchen nicht geöffnet ist, klicken Sie auf der Symbolleiste auf Suchen.

  2. Im Dropdownfeld Suchen nach können Sie folgende Schritte ausführen:
    Option/Funktion | Zweck
    Anmeldename | Suchen eines Benutzerprofils nach dem Anmeldenamen.
    E-Mail | Suchen eines Benutzerprofils nach der E-Mail-Adresse.
    Nachname | Suchen eines Benutzerprofils nach dem Nachnamen.
    Vorname | Suchen eines Benutzerprofils nach dem Vornamen.
    Kontostatus | Suchen eines Benutzerprofils nach dem Kontostatus.
    Registriert am | Suchen eines Benutzerprofils nach dem Registrierungsdatum des Benutzers.
    Flags für die Partnerservicerolle | Suchen eines Benutzerprofils für einen Benutzer mit dem Merkmal Normaler Benutzer oder Administrator.
    Zuletzt geändert am | Suchen eines Benutzerprofils, das an einem bestimmten Datum geändert wurde.
    Erstellt am | Suchen eines Benutzerprofils, das an einem bestimmten Datum erstellt wurde.
    Benutzerlisten | Öffnen einer Benutzerliste im Listen-Manager-Modul.

  3. Geben Sie im anschließend erscheinenden Eigenschaftswertfeld den betreffenden Wert der ausgewählten Eigenschaften ein (z. B. den Nachnamen oder die E-Mail-Adresse des gesuchten Benutzerprofils), oder treffen Sie in der Liste eine Auswahl.

  4. Wenn Sie die Suche noch weiter verfeinern möchten, wählen Sie in der Dropdownliste Suchen nach den Eintrag Nach Eigenschaft suchen aus, und erstellen Sie einen Ausdruck, nach dem gesucht werden soll.

    Anmerkung

    • Mithilfe eines Platzhalters (*) haben Sie die Möglichkeit, eine beliebige Anzahl von Zeichen in die Suche aufzunehmen. Mit der Zeichenfolge t* wird beispielsweise nach allen Benutzern gesucht, deren Name mit dem Buchstaben "t" beginnt.
  5. Klicken Sie auf Suchen.

Vorsicht

  • Bei der Suche nach Benutzerprofilen ist es wichtig, die Suche anhand von Kriterien zu begrenzen, um die Anzahl von gefundenen Benutzerprofilen einzuschränken. Wenn eine große Zahl von Benutzerprofilen Ihren Suchkriterien entsprechen, können die Ergebnisse die Leistung von Commerce Server Business Desk deutlich beeinträchtigen.

Die Suche wird nun durchgeführt. Falls diese erfolgreich ist, werden die gefundenen Benutzerprofile in der Benutzerliste angezeigt. Verläuft die Suche ergebnislos, wird in der Benutzerliste die Meldung Keines der Elemente stimmt mit dem Suchbegriff überein angezeigt.

So erstellen Sie einen Ausdruck, um ein Benutzerprofil zu suchen

  1. Klicken Sie im Menü Benutzer auf Benutzer. Wenn der Bereich Suchen oben in der Benutzerliste nicht geöffnet ist, klicken Sie auf der Symbolleiste auf Suchen.

  2. Wählen Sie in der Dropdownliste Suchen nach den Eintrag Nach Eigenschaft suchen aus.

  3. Klicken Sie im Bereich Suchen auf Neu.

  4. Klicken Sie in der ersten Dropdownliste auf den Pfeil rechts neben der Profildefinition, doppelklicken Sie auf die Eigenschaftsgruppe, und wählen Sie anschließend die Eigenschaft aus, die Sie in der Suche verwenden möchten.

    Anmerkung

    • Der Eigenschaftstyp der ausgewählten Eigenschaft bestimmt, welche Bedingungen für die Suche verfügbar sind. Wenn die ausgewählte Eigenschaft z. B. vom Typ Zeichenfolge ist, können Sie die folgenden Suchbedingungen wählen: ist gleich, enthält oder beginnt mit. Wenn die ausgewählte Eigenschaft vom Typ Sitebegriff ist, stehen die Suchbedingungen ist gleich oder ist ungleich zur Verfügung.
  5. Wählen Sie nun in der zweiten Dropdownliste die Suchbedingung aus.

    Anmerkung

    • Der Eigenschaftstyp der ausgewählten Eigenschaft bestimmt, auf welche Weise Sie die Suchkriterien eingeben. Wenn die ausgewählte Eigenschaft z. B. vom Typ Zeichenfolge ist, geben Sie die gesuchte Zeichenfolge in das dritte Feld ein. Wenn die ausgewählte Eigenschaft vom Typ Sitebegriff ist, klicken Sie auf die Auslassungsschaltfläche […], um das Dialogfeld Wählen Sie einen Sitebegriff aus zu öffnen, und wählen Sie anschließend den gesuchten Begriff aus.
  6. Geben Sie im dritten Feld die Suchkriterien ein, oder wählen Sie sie aus.

  7. Klicken Sie auf Übernehmen und dann auf Suchen.

Die Suche wird nun durchgeführt. Ist die Suche erfolgreich, werden die gefundenen Benutzerprofile in der Benutzerliste angezeigt. Verläuft die Suche ergebnislos, wird in der Benutzerliste die Meldung Keines der Elemente stimmt mit dem Suchbegriff überein angezeigt.

Siehe auch

Informationen zu Benutzern

Hinzufügen eines Benutzers

Bearbeiten eines Benutzers

Kopieren von Benutzern

Löschen von Benutzern


Bearbeiten eines Benutzers

Mithilfe des Benutzermoduls werden vorhandene Benutzerprofile bearbeitet.

So bearbeiten Sie einen Benutzer

  1. Klicken Sie im Menü Benutzer auf Benutzer.

  2. Wählen Sie auf dem Bildschirm Benutzer das Benutzerprofil aus, das Sie bearbeiten möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

    Anmerkung

    • Im oberen Teil des Bildschirms Benutzer finden Sie den Bereich Suchen, mit dem Sie das Profil eines bestimmten Benutzers suchen können. Informationen über das Suchen eines Benutzerprofils finden Sie unter Suchen eines Benutzers.
  3. Bearbeiten Sie das Benutzerprofil im Bildschirm Benutzer aktualisieren: Benutzer.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um das Benutzerprofil zu speichern und zum Bildschirm Benutzer zurückzukehren.

Das bearbeitete Benutzerprofil wird gespeichert.

Siehe auch

Informationen zu Benutzern

Hinzufügen eines Benutzers

Kopieren von Benutzern

Löschen von Benutzern

Suchen eines Benutzers


Bearbeiten mehrerer Benutzer

Mithilfe des Benutzermoduls können auch mehrere Benutzerprofile bearbeitet werden. Bei der Bearbeitung mehrerer Benutzerprofile nehmen Sie in allen bearbeiteten Benutzerprofilen die gleichen Änderungen vor.

So bearbeiten Sie mehrere Benutzer

  1. Klicken Sie im Menü Benutzer auf Benutzer.

  2. Wählen Sie auf dem Bildschirm Benutzer die Benutzerprofile aus, die Sie bearbeiten möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Führen Sie auf dem Bildschirm Benutzer aktualisieren folgende Schritte aus:
    Option/Funktion | Zweck
    Neu | Erstellen Sie eine neue Aktualisierungsabfrage. Mithilfe einer Aktualisierungsabfrage wird der Wert einer Eigenschaft in mehreren Benutzerprofilen geändert.
    Erste Dropdownliste (links) | Wählen Sie die zu aktualisierende Eigenschaft in der Dropdownliste aus.
    Zweite Dropdownliste (Mitte) | Wählen Sie die Aktualisierungsbedingung aus.
    Dritte Dropdownliste (rechts) | Geben Sie den neuen Eigenschaftswert ein bzw. wählen Sie diesen aus. Der Eigenschaftstyp der im ersten Feld ausgewählten Eigenschaft bestimmt, wie die Änderung für diese Eigenschaft eingegeben wird. Wenn die ausgewählte Eigenschaft z. B. vom Typ Zeichenfolge ist, geben Sie die gesuchte Zeichenfolge in das dritte Feld ein. Wenn die ausgewählte Eigenschaft vom Typ Sitebegriff ist, klicken Sie auf die Auslassungsschaltfläche […], um das Dialogfeld Wählen Sie einen Sitebegriff aus zu öffnen. Wählen Sie anschließend den Begriff aus, welcher der Eigenschaft zugewiesen wird.

  4. Klicken Sie auf Übernehmen und dann auf der Symbolleiste auf Speichern und zurück.

Die Benutzerprofile werden mit den neuen Informationen gespeichert.

Siehe auch

Hinzufügen eines Benutzers

Importieren einer Liste von Benutzerprofilen

Bearbeiten eines Benutzers


Kopieren von Benutzern

Mithilfe des Benutzermoduls können vorhandene Benutzerprofile kopiert werden. Wenn Sie ein neues Benutzerprofil für einen Benutzer hinzufügen möchten, das einem vorhandenen Benutzerprofil sehr ähnlich ist, kopieren Sie einfach das vorhandene Benutzerprofil, nehmen Sie die erforderlichen Änderungen vor, und speichern Sie das Profil als Profil für einen neuen Benutzer.

So kopieren Sie einen Benutzer

  1. Klicken Sie im Menü Benutzer auf Benutzer.

  2. Wählen Sie im Bildschirm Benutzer das Benutzerprofil aus, das Sie kopieren möchten, und klicken Sie anschließend auf der Symbolleiste auf Kopieren.

  3. Führen Sie im Bildschirm Neuer Benutzer: Benutzer kopieren im Bereich Allgemeine Informationen folgende Schritte aus:
    Option/Funktion | Zweck
    Anmeldename | Geben Sie einen Anmeldenamen für das neue Benutzerprofil ein.
    Benutzerkennwort | Geben Sie ein Kennwort für das neue Benutzerprofil ein. Kennwörter müssen zwischen 7 und 14 alphanumerische Zeichen enthalten. Die Verwendung von Leerzeichen ist nicht zulässig.

  4. Ändern Sie die vorhandenen Informationen im kopierten Benutzerprofil nach Bedarf.

  5. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um das neue Benutzerprofil zu speichern und zum Bildschirm Benutzer zurückzukehren.

Das neue Benutzerprofil wird gespeichert.

Siehe auch

Informationen zu Benutzern

Hinzufügen eines Benutzers

Bearbeiten eines Benutzers

Löschen von Benutzern

Suchen eines Benutzers


Löschen von Benutzern

Mithilfe des Benutzermoduls werden vorhandene Benutzerprofile aus der Commerce Server-Datenbank entfernt.

Vorsicht

  • Ein einmal gelöschtes Benutzerprofil kann nicht wiederhergestellt werden.

So löschen Sie einen Benutzer aus der Commerce Server-Datenbank

  1. Klicken Sie im Menü Benutzer auf Benutzer.

  2. Wählen Sie im Bildschirm Benutzer das Benutzerprofil aus, das Sie löschen möchten, und klicken Sie anschließend auf der Symbolleiste auf Löschen.

  3. Klicken Sie im Dialogfeld Benutzer löschen auf OK, um den Benutzer zu löschen.

    Das Benutzerprofil wird gelöscht.

Siehe auch

Informationen zu Benutzern

Hinzufügen eines Benutzers

Bearbeiten eines Benutzers

Kopieren von Benutzern

Suchen eines Benutzers


Verwalten von Organisationen

Im Organisationsmodul erfolgt die Verwaltung und Aktualisierung von Organisationsprofilen.

Dieser Abschnitt beinhaltet folgende Themen:

  • Suchen einer Organisation

  • Bearbeiten einer Organisation

  • Bearbeiten mehrerer Organisationen

  • Kopieren einer Organisation

  • Löschen einer Organisation


Suchen einer Organisation

Im Organisationsmodul können Sie nach einem bestimmten Organisationsprofil suchen. Mithilfe des Dialogfelds Suchen können Sie Ihre Suche anhand der Eigenschaften des Organisationsprofils einschränken. Die Ergebnisliste enthält alle Organisationsprofile, die den Suchkriterien entsprechen.

So suchen Sie ein Organisationsprofil

So erstellen Sie einen Ausdruck, um ein Organisationsprofil zu suchen

So suchen Sie ein Organisationsprofil

  1. Klicken Sie im Menü Benutzer auf Organisationen. Ist das Dialogfeld Suchen im oberen Teil der Organisationsliste nicht geöffnet, klicken Sie auf der Symbolleiste auf Suchen.

  2. In der Dropdownliste Suchen nach können Sie folgende Schritte ausführen:
    Option/Funktion | Zweck
    Name | Suchen nach einem Organisationsprofil mithilfe des Namens.
    Zuletzt geändert am | Suchen nach Organisationsprofilen, die an einem bestimmten Datum bearbeitet wurden.
    Erstellt am | Suchen nach Organisationsprofilen, die an einem bestimmten Datum erstellt wurden.

  3. Nun erscheint ein Feld für den Eigenschaftswert, in das Sie den betreffenden Wert der ausgewählten Eigenschaften eingeben oder aus der Liste wählen (z. B. den Namen der gesuchten Organisation).

    Anmerkung

    • Mithilfe eines Platzhalters (*) haben Sie die Möglichkeit, eine beliebige Anzahl von Zeichen in die Suche aufzunehmen. Mit der Zeichenfolge t* wird beispielsweise nach allen Organisationen gesucht, deren Name mit dem Buchstaben "t" beginnt.
  4. Wenn Sie die Suche noch weiter verfeinern möchten, wählen Sie in der Dropdownliste Suchen nach den Eintrag Nach Eigenschaft suchen, und erstellen Sie einen Ausdruck, nach dem gesucht werden soll.

  5. Klicken Sie auf Suchen.

Die Suche wird nun durchgeführt. Ist die Suche erfolgreich, werden die gefundenen Organisationsprofile in der Organisationsliste angezeigt. Verläuft die Suche ergebnislos, wird in der Organisationsliste die Meldung Keines der Elemente stimmt mit dem Suchbegriff überein angezeigt.

So erstellen Sie einen Ausdruck, um eine Organisation zu suchen

  1. Klicken Sie im Menü Benutzer auf Organisationen. Ist der Bereich Suchen im oberen Teil der Organisationsliste nicht geöffnet, klicken Sie auf der Symbolleiste auf Suchen.

  2. Wählen Sie in der Dropdownliste Suchen nach den Eintrag Nach Eigenschaft suchen aus.

  3. Klicken Sie im Bereich Suchen auf Neu.

  4. Klicken Sie in der ersten Dropdownliste auf den Pfeil rechts neben dem Eintrag Organisation, doppelklicken Sie auf die Eigenschaftsgruppe, und wählen Sie anschließend die Eigenschaft aus, die Sie in der Suche verwenden möchten.

    Anmerkung

    • Der Eigenschaftstyp der ausgewählten Eigenschaft bestimmt, welche Bedingungen für die Suche verfügbar sind. Wenn die ausgewählte Eigenschaft z. B. vom Typ Zeichenfolge ist, können Sie die folgenden Suchbedingungen wählen: ist gleich, enthält oder beginnt mit. Ist die ausgewählte Eigenschaft vom Typ Sitebegriff, stehen die Suchbedingungen ist gleich oder ist ungleich zur Verfügung.
  5. In der zweiten Dropdownliste wählen Sie nun die Suchbedingung aus.

    Anmerkung

    • Der Eigenschaftstyp der ausgewählten Eigenschaft bestimmt, auf welche Weise Sie die Suchkriterien eingeben. Ist die ausgewählte Eigenschaft z. B. vom Typ Zeichenfolge, geben Sie die gesuchte Zeichenfolge in das dritte Feld ein. Ist die ausgewählte Eigenschaft vom Typ Sitebegriff, klicken Sie auf die Auslassungsschaltfläche [...], um das Dialogfeld Wählen Sie einen Sitebegriff aus zu öffnen, und wählen Sie anschließend den gesuchten Begriff aus.
  6. In das dritte Feld geben Sie die Suchkriterien ein oder wählen sie aus.

  7. Klicken Sie auf Übernehmen und dann auf Suchen.

Die Suche wird nun durchgeführt. Verläuft die Suche erfolgreich, wird die gefundene Organisation in der Organisationsliste angezeigt. Ist die Suche ergebnislos, wird in der Organisationsliste die Meldung Keines der Elemente stimmt mit dem Suchbegriff überein angezeigt.

Siehe auch

Informationen zu Benutzern

Hinzufügen einer Organisation

Bearbeiten einer Organisation

Bearbeiten mehrerer Organisationen

Löschen einer Organisation


Bearbeiten einer Organisation

Verwenden Sie das Organisationsmodul, um bestehende Organisationsprofile zu bearbeiten und zu aktualisieren. Sie können auch vorhandene Benutzer als administrative Kontakte und Empfänger mit einer Organisation verknüpfen.

So bearbeiten Sie ein Organisationsprofil

  1. Klicken Sie im Menü Benutzer auf Organisationen.

  2. Wählen Sie im Bildschirm Organisationen das Organisationsprofil aus, das Sie bearbeiten möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Führen Sie im Bildschirm Organisation aktualisieren im Bereich Allgemeine Informationen folgende Schritte aus:
    Option/Funktion | Zweck
    Name | Bearbeiten Sie den Organisationsnamen.
    Nummer des Handelspartners | Bearbeiten Sie die Nummer des Handelspartners der Organisation.
    Administrativer Kontakt | Klicken Sie auf die Auslassungsschaltfläche [...], um den administrativen Kontakt zu ändern. Informationen über das Auswählen eines administrativen Kontakts finden Sie unter So verknüpfen Sie ein Organisationsprofil mit einem vorhandenen Benutzerprofil.
    Empfänger | Klicken Sie auf die Auslassungsschaltfläche [...], um den Empfänger zu ändern. Informationen über das Auswählen eines Empfängers finden Sie unter So verknüpfen Sie ein Organisationsprofil mit einem vorhandenen Benutzerprofil.
    Organisationskatalogsatz | Wählen Sie einen Katalogsatz für diese Organisation in der Dropdownliste aus.

  4. Klicken Sie im Bereich Einkäufer im Feld Einkaufs-Manager auf die Auslassungsschaltfläche [...], um das Dialogfeld Benutzer auswählen zu öffnen.

  5. Führen Sie im Dialogfeld Benutzer auswählen folgende Schritte aus:
    Option/Funktion | Zweck
    Vorhandenen Benutzer auswählen | Wählen Sie den Namen des Benutzers aus, den Sie als Einkaufs-Manager hinzufügen möchten. Klicken Sie anschließend auf OK.
    Anmeldename Geben Sie den Namen des Benutzers ein, der als Einkaufs-Manager hinzugefügt werden soll (wenn er in der Liste Vorhandenen Benutzer auswählen nicht angezeigt wird). Klicken Sie anschließend auf Suchen.

    Wird der Benutzer in der Liste Vorhandenen Benutzer auswählen angezeigt, wählen Sie dort den Benutzer aus, und klicken Sie anschließend auf OK.

  6. Klicken Sie auf der Symbolleiste auf Speichern und neues Organisationsprofil erstellen, um Ihre Änderungen zu speichern und weitere Organisationsprofile hinzuzufügen.

Das bearbeitete Organisationsprofil wird gespeichert und ein neues Organisationsprofil erstellt.

Siehe auch

Informationen zu Benutzern

Hinzufügen eines Benutzers

Hinzufügen einer Organisation

Kopieren einer Organisation

Suchen einer Organisation


Bearbeiten mehrerer Organisationen

Mithilfe des Organisationsmoduls werden die Profile mehrerer Organisationen bearbeitet. Bei der Bearbeitung mehrerer Organisationsprofile nehmen Sie in allen bearbeiteten Organisationsprofilen die gleichen Änderungen vor.

So bearbeiten Sie mehrere Organisationsprofile

  1. Klicken Sie im Menü Benutzer auf Organisationen.

  2. Wählen Sie im Bildschirm Organisationen die Organisationsprofile aus, die Sie bearbeiten möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Führen Sie im Bildschirm Organisationen aktualisieren folgende Schritte aus:
    Option/Funktion | Zweck
    Neu | Erstellen Sie eine neue Aktualisierungsabfrage. Mithilfe einer Aktualisierungsabfrage wird der Wert einer Eigenschaft in mehreren Benutzerprofilen geändert.
    Erste Dropdownliste (links) | Wählen Sie die Eigenschaft in der Dropdownliste aus, welche die zu bearbeitenden Informationen enthält.
    Zweite Dropdownliste (Mitte) | Wählen Sie die Bearbeitungsbedingung aus.
    Dritte Dropdownliste (rechts) | Geben Sie den neuen Eigenschaftswert ein bzw. wählen Sie diesen aus. Der Eigenschaftstyp der im ersten Feld ausgewählten Eigenschaft bestimmt, wie die Änderung für diese Eigenschaft eingegeben wird. Ist die ausgewählte Eigenschaft z. B. vom Typ Zeichenfolge, geben Sie die gesuchte Zeichenfolge in das dritte Feld ein.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Änderungen zu speichern und zum Bildschirm Organisationen zurückzukehren.

Die Organisationsprofile werden mit den neuen Daten gespeichert.


Kopieren einer Organisation

Mithilfe des Organisationsmoduls können Kopien von vorhandenen Organisationsprofilen erstellt werden. Wenn Sie ein Profil für eine Organisation erstellen müssen, das bestimmte Eigenschaften mit einem vorhandenen Organisationsprofil gemeinsam hat, können Sie von diesem Profil eine Kopie erstellen und diese Kopie anschließend nach Bedarf in ein neues Organisationsprofil umwandeln.

So kopieren Sie ein vorhandenes Organisationsprofil

  1. Klicken Sie im Menü Benutzer auf Organisationen.

  2. Wählen Sie im Bildschirm Organisationen das Organisationsprofil aus, das Sie kopieren möchten, und klicken Sie anschließend auf der Symbolleiste auf Kopieren.

  3. Geben Sie im Bildschirm Neue Organisation: Eigenschaften kopieren von <Organisation> im Bereich Allgemeine Informationen im Feld Name einen Namen für die neue Organisation ein.

  4. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um das neue Organisationsprofil zu speichern und zum Bildschirm Organisationen zurückzukehren.

Das neue Organisationsprofil wird gespeichert. Wenn Sie zu diesem Organisationsprofil einen Benutzer als administrativen Kontakt, Empfänger oder Einkaufs-Manager hinzufügen möchten, müssen Sie zunächst das Profil des Benutzers erstellen, der zu der Organisation hinzugefügt wird. Verknüpfen Sie dann das Benutzerprofil mit der Organisation, und bearbeiten Sie anschließend das Profil der Organisation, um das Benutzerprofil für den Benutzer, der als administrativer Kontakt, Empfänger oder Einkaufs-Manager eingetragen werden soll, hinzuzufügen.

Siehe auch

Informationen zu Benutzern

Hinzufügen einer Organisation

Bearbeiten einer Organisation

Löschen einer Organisation

Suchen einer Organisation


Löschen einer Organisation

Mithilfe des Organisationsmoduls können Organisationsprofile in der Organisationsliste gelöscht werden.

So löschen Sie eine Organisation

  1. Klicken Sie im Menü Benutzer auf Organisationen.

  2. Wählen Sie im Bildschirm Organisationen das Organisationsprofil aus, das Sie löschen möchten, und klicken Sie anschließend auf der Symbolleiste auf Löschen.

  3. Klicken Sie im Dialogfeld Organisation löschen auf OK, um das Organisationsprofil zu löschen.

Das Organisationsprofil wird gelöscht.

Vorsicht

  • Ein einmal gelöschtes Organisationsprofil kann nicht wiederhergestellt werden.

Siehe auch

Informationen zu Benutzern

Hinzufügen einer Organisation

Bearbeiten einer Organisation

Kopieren einer Organisation

Suchen einer Organisation


Problembehandlung bei Business Desk

Dieser Abschnitt behandelt allgemeine Probleme, die bei der Nutzung von Commerce Server Business Desk auftreten können. Suchen Sie nach einer kurzen Beschreibung des Problems innerhalb des Funktionsbereichs, in dem Sie arbeiten, und folgen Sie dann der Verknüpfung, um ausführlichere Informationen zu erhalten.

Ihre erste Ansprechperson für technische Unterstützung ist gewöhnlich Ihr Systemadministrator oder Siteentwickler. Außerdem können Sie auf Onlinenewsgroups von Microsoft zugreifen. Weitere Informationen über Newsgroups für Commerce Server 2000 erhalten Sie unter www.microsoft.com/germany/support/produkte/comser.htm.

Die folgende Tabelle führt die Funktionsbereiche und möglichen Probleme auf, die bei der Arbeit mit Business Desk auftreten können.

Bereich Problem
Installation
  • Business Desk kann nicht installiert werden
Analyse
  • Berichte können nicht ausgeführt werden

  • Segmentmodelle können nicht angezeigt werden

  • Export des statischen SQL Server-Berichts schlägt fehl

  • Bericht wird ohne Daten angezeigt

  • Fehler im Bericht "Käuferverhalten bis zum Kauf"

  • Statischer Bericht wird nicht ausgeführt

  • Fehlender Elementname für Schlüsselnummer

  • Auf SQL Server basierende dynamische Berichte verbrauchen sehr viel Speicherplatz
Kampagnen
  • Der Direct Mailer-Auftrag kann nicht ausgeführt werden

  • Der Direct Mailer-Auftrag schlägt ohne Fehlermeldung fehl

  • Kampagnenartikel werden in der Website nicht wie erwartet angezeigt

  • Die Daten werden nicht im Listen-Manager angezeigt
Kataloge
  • Ein Katalog kann nicht importiert werden

  • Ein Katalog kann nicht an einen Handelspartner gesendet werden
Business Desk
  • Bibliothek nicht registriert

  • Business Desk wird nicht ausgeführt

  • Business Desk-Zugriffsfehler

  • Benutzer nicht zur Anzeige der Seite berechtigt – Anforderung einer erneuten Authentifizierung

  • Änderungen werden nicht in der Website angezeigt

  • Es können nicht zwei Instanzen von Business Desk geöffnet werden

  • Volltextsuche in der Hilfe liefert kein Ergebnis


Business Desk kann nicht installiert werden

Beschreibung

Wenn Sie versuchen, für die Installation von Business Desk Client eine Verbindung mit der Business Desk-Website herzustellen, kann die folgende Meldung angezeigt werden:

Lösung

Zum Installieren von Business Desk müssen die Microsoft ActiveX-Steuerelemente aktiviert sein.

So setzen Sie das Business Desk-Setup fort

  1. Klicken Sie in Internet Explorer auf Extras, und klicken Sie dann auf Internetoptionen.

  2. Klicken Sie auf der Registerkarte Sicherheit auf Stufe anpassen.

  3. Wählen Sie die Zone Lokales Intranet, und klicken Sie auf Stufe anpassen.

  4. Aktivieren Sie unter ActiveX-Steuerelemente und Plugins die Option Download von signierten ActiveX-Steuerelementen.

  5. Klicken Sie auf OK, auf Übernehmen und anschließend erneut auf OK.

  6. Klicken Sie auf der Symbolleiste auf Aktualisieren, und setzen Sie dann die Installation von Business Desk fort, indem Sie im Browser-Fenster den URL von Business Desk eingeben. Beispiel: http://servername/myretailbizdesk.


Berichte können nicht ausgeführt werden

Beschreibung

Sie haben versucht, im Berichtsmodul einen Bericht aufzurufen, doch es geschieht nichts. Wenn Sie versuchen, einen statischen Bericht auszuführen, wird entweder ein Statusfehler angezeigt, oder der Bericht enthält keine Daten.

Anmerkung

  • Beim Ausführen eines dynamischen Berichts wird die folgende Fehlermeldung angezeigt:

"Entweder EOF oder BOF haben den Wert TRUE, oder der aktuelle Datensatz ist gelöscht worden."

Lösung

Setzen Sie sich mit Ihrem Systemadministrator in Verbindung. Der Systemadministrator muss die Daten in das Datawarehouse importieren, bevor der Bericht erfolgreich ausgeführt werden kann.


Segmentmodelle können nicht angezeigt werden

Beschreibung

Beim Öffnen des Segment-Viewers von Business Desk ist der Bildschirm leer.

Lösung

Setzen Sie sich mit Ihrem Systemadministrator in Verbindung. Der Systemadministrator muss erst die Segmentmodelle erstellen, bevor sie angezeigt werden können.


Export des statischen SQL Server-Berichts schlägt fehl

Beschreibung

Wenn Sie Microsoft SQL Server 7.0 mit Commerce Server zusammen verwenden und einen statischen SQL Server-Bericht als Liste in den Listen-Manager exportieren, dieser Export aber fehlschlägt, dann kann das Problem darin bestehen, dass die Spaltennamen in SQL Server ungültige Zeichen enthalten, wie z. B. ~`!@#$%^&*()-_+={}[]|\:;<,>.?/'.

Lösung

Lassen Sie Ihren Systemadministrator nachprüfen, ob alle Zeichen in den SQL Server-Spaltennamen gültig sind. Führen Sie den Bericht noch einmal aus.


Bericht wird ohne Daten angezeigt

Beschreibung

Ein dynamischer Bericht wird im Browserfenster ohne Daten angezeigt. Business Desk unterstützt in dynamischen Berichten bis zu 250.000 Elemente pro Dimension. Wenn Sie einen dynamischen Bericht über einen Datensatz ausführen, der mehr als 250.000 Elemente pro Dimension enthält, dann tritt beim Modul Office 2000 Web Components (OWC) ein Timeout auf, und der Bericht wird im Browserfenster ohne Daten angezeigt.

Lösung

Wenn Ihre Daten Dimensionen von mehr als 250.000 Elementen beinhalten, setzen Sie sich mit Ihrem Systemadministrator in Verbindung, und fordern Sie einen benutzerdefinierten statischen Bericht an, der die Daten analysiert.


Fehler im Bericht "Käuferverhalten bis zum Kauf"

Beschreibung

Bei dem Versuch, den Bericht "Käuferverhalten bis zum Kauf" auszuführen, ist eine Fehlermeldung aufgetreten.

Lösung

Setzen Sie sich mit Ihrem Systemadministrator in Verbindung. Der Systemadministrator kann die Lösung für diesen Fehler in der Hilfe zu Commerce Server 2000 finden.


Statischer Bericht wird nicht ausgeführt

Beschreibung

Bei dem Versuch, einen statischen Bericht auszuführen, wird kein Bericht generiert und alle Schaltflächen auf der Symbolleiste werden deaktiviert. Eine Fehlermeldung wird angezeigt, die besagt, dass beim Zurücksetzen von Internet Information Services (IIS) ein Com-Fehler aufgetreten ist.

Lösung

Setzen Sie sich mit Ihrem Systemadministrator in Verbindung und vergewissern Sie sich, dass Internet Information Services (IIS) 5.0 nicht zurückgesetzt wurde, während Sie statische Berichte ausführen wollten. Wenn IIS tatsächlich zurückgesetzt worden ist, dann schließen Sie Business Desk und öffnen Sie es erneut. Führen Sie daraufhin den statischen Bericht erneut aus.


Fehlender Elementname für Schlüsselnummer

Beschreibung

Wenn Sie den Dimensionsbericht "Anzeigenplatzierung – Seitengruppe" oder den Dimensionsbericht "Produktabsatz – Kunde" ausführen, könnten Sie die Fehlermeldung "Fehlender Elementname für Schlüsselnr." im Bericht antreffen. Dieser Fehler wird dadurch verursacht, dass die in das Datawarehouse importierten Daten nicht die erforderlichen eindeutigen Werte haben.

Lösung

Anzeigenplatzierungsbericht: Setzen Sie sich mit Ihrem Systemadministrator in Verbindung, um den Data Transformation Services (DTS)-Task Kampagnendatenimport auszuführen und dann den DTS-Task Berichtsvorbereitung noch einmal auszuführen. Setzen Sie sich erneut mit Ihrem Systemadministrator in Verbindung, falls das Problem weiterhin besteht. Dies kommt vor, wenn die Daten aus der Ursprungsdatenbank gelöscht worden sind.

Produktabsatzbericht: Führen Sie den DTS-Task "Import der Benutzerprofildaten" aus, und führen Sie dann noch einmal den DTS-Task "Berichtsvorbereitung" aus. Wenn das Problem weiterhin besteht, setzen Sie sich mit Ihrem Systemadministrator in Verbindung. Dies kommt vor, wenn die Daten aus der Ursprungsdatenbank gelöscht worden sind.


Auf SQL Server basierende dynamische Berichte verbrauchen sehr viel Speicherplatz

Beschreibung

Wenn Sie einen auf SQL Server basierenden dynamischen Bericht ausführen, dann versucht PivotControl, alle Daten in den Hauptspeicher zu laden, bevor der Bericht angezeigt wird. Wenn Sie z. B. den Bericht "Anzeigenreichweite und -häufigkeit pro Kampagne" ausführen, bei dem 400.000 Zeilen in den Primärtabellen enthalten sind, dann führt das zu einer Belegung des Systemspeichers mit rund 700 MB.

Lösung

Denken Sie an die Speicheranforderungen, wenn Sie auf SQL Server basierende dynamische Berichte ausführen, und planen Sie entsprechend.

Siehe auch

Erstellen eines neuen dynamischen Berichts


Der Direct Mailer-Auftrag kann nicht ausgeführt werden

Beschreibung

Der Direct Mailer-Auftrag ist nicht ausgeführt worden, und Sie haben keine Fehlermeldung erhalten.

Lösung

Setzen Sie sich mit Ihrem Systemadministrator in Verbindung. Wenn der Direct Mailer-Auftrag eine personalisierte Direktsendungskampagne ist, kann es sein, dass der Systemadministrator den Direktsendungauftrag aus Leistungsgründen blockiert hat. Wenn Sie für Direktsendungen keinen eigens dafür bereitgestellten Webserver haben, könnte der Systemadministrator es so eingerichtet haben, dass die Kampagne zu einer Zeit geringen Datenverkehrs startet, da sie auf den Webserver genauso wie ein Benutzer zugreift. Je nach Umfang der Direktsendungsliste kann dies die Leistung des Webservers beeinträchtigen.


Der Direct Mailer-Auftrag schlägt ohne Fehlermeldung fehl

Beschreibung

Ein Direct Mailer-Auftrag ist nicht gestartet, und Sie haben keine Fehlermeldung erhalten, die Ihnen Auskunft über den Grund dieses Fehlschlags erteilt.

Lösung

Setzen Sie sich mit Ihrem Systemadministrator in Verbindung. Dieses Versagen kann mehrere Ursachen haben. Wenn z. B. SQL Server Agent angehalten wird, obwohl ein geplanter Direct Mail-Auftrag noch ausgeführt werden sollte, so wird dieser nicht ausgeführt und das Versagen nicht protokolliert. Es gibt keinen Hinweis darauf, dass der Auftrag nicht ausgeführt wurde. Der Systemadministrator muss ihn manuell über das SQL Server Agent-Steuerelement in SQL Server Enterprise Manager starten.


Kampagnenartikel werden in der Website nicht wie erwartet angezeigt

Beschreibung

Die für Anzeigenkampagnen und Preisnachlasskampagnen erstellten Artikel werden nicht in der Website angezeigt.

Lösung

Wenn Sie mithilfe des Kampagnen-Manager-Moduls neue Anzeigen erstellen, dann ist die Anzeige solange inaktiv, bis sie veröffentlicht oder in einem normalen Aktualisierungszyklus erkannt wird. Standardmäßig werden Anzeigen alle fünf Minuten automatisch veröffentlicht. Preisnachlässe müssen jedoch immer manuell veröffentlicht werden; sie treten nicht automatisch in Kraft. Wenn Sie eine Anzeige oder einen Preisnachlass im Voraus erstellt und inaktiv gelassen haben, müssen Sie diese erneut öffnen und aktivieren.

Anmerkung

  • Bevor Sie eine Anzeigenkampagne auf einer neuen Site aktualisieren, müssen Sie die Website zuerst besuchen. Jeder Server einer Webfarm muss aktualisiert werden, bevor ein Kampagnenartikel zur Produktion gesendet werden kann.

Die folgende Tabelle führt weitere Situationen auf, die Sie überprüfen sollten, wenn Ihre Anzeige oder Ihr Preisnachlass in der Website nicht angezeigt werden.

Beschreibung | Lösung
Ist der Kampagnenartikel veröffentlicht worden? | Veröffentlichen Sie Ihre Kampagne mithilfe des Moduls "Kampagnen veröffentlichen".
Ist der Status des Anzeigen- oder Kampagnenartikels inaktiv? | Öffnen Sie den Anzeigen- oder Kampagnenartikel, und ändern Sie den Status von inaktiv nach aktiv.
Ist eine Menge oder eine Gewichtung definiert worden? | Bei bezahlten Anzeigen müssen Sie eine Menge oder eine Gewichtung für die Kampagne angeben.
Gibt es Konflikte durch Einschränkungen bei Zielgruppen, beim Branchencode oder bei der Erscheinungsweise? | Überprüfen Sie, ob es irgendwelche Einschränkungen bei den Zielgruppen, beim Branchencode oder bezüglich der Erscheinungsweise dieser Anzeige gibt, welche die Durchführung verhindern.
Befindet sich das Datum der Anzeige oder Kampagne außerhalb des Gültigkeitsbereichs? | Überprüfen Sie, ob das Anzeigen- oder Kampagnendatum zu weit in der Zukunft liegt.
Gibt es eine andere Anzeige, die anstelle der von Ihnen erwarteten angezeigt wird? | Überprüfen Sie, ob es eine andere Anzeige mit einem höheren Bereitstellungsbedarf gibt, die Ihre Anzeige außer Kraft setzt.
Ist die Anzeige auf veraltete Seitengruppen eingestellt? | Wenn Sie Ihre Website neu gestaltet haben, könnte die Anzeigenveröffentlichung immer noch für die früheren Seitengruppen geplant sein. Sie müssen die Anzeigen neu einrichten, wenn Sie eine neue Website haben.
Handelt es sich bei der Anzeige um eine Eigenwerbung? | Wenn es sich um eine Eigenwerbung handelt, erscheint die Anzeige erst dann in der Website, wenn alle bezahlten Anzeigen ihren Bereitstellungsbedarf erfüllt haben.
Verhindert ein Zielausdruck das Erscheinen der Anzeige? | Wenn die Eigenschaften von Sitebesuchern nicht mit der Definition des Zielausdrucks übereinstimmen, erscheint die Anzeige nicht.
Ist der Anzeigenraum von den Abmessungen her begrenzt? | Wenn der Anzeigenraum in der Website auf eine bestimmte Inhaltsgröße beschränkt ist, und die Anzeige diese Größe nicht einhält, wird sie nicht angezeigt.


Die Daten werden nicht im Listen-Manager angezeigt

Beschreibung

Wenn mithilfe des Benutzermoduls Aktualisierungsoperationen oder Suchoperationen für große Benutzerdatenmengen durchgeführt werden, kann das einen Prozess-Timeout auslösen.

Dieser Timeout einer Operation kann von einer Vielzahl von Faktoren abhängen und dazu führen, dass Daten nicht angezeigt werden. Ein möglicher Grund kann die hohe Zahl von Elementen sein, die abgerufen werden.

Lösung

Setzen Sie sich mit Ihrem Systemadministrator in Verbindung. Der Systemadministrator kann die Lösung für diese Fehlerbedingung in der Hilfe zu Commerce Server 2000 finden.


Ein Katalog kann nicht importiert werden

Beschreibung

Der Import eines Katalogs kann nicht durchgeführt werden. Wenn die Katalogdatei z. B. unter C:\Dokumente und Einstellungen\Benutzername\Desktop gespeichert ist, kann der Import wegen des Speicherorts nicht durchgeführt werden. Es erscheint zwar die Meldung "Der Katalogimport wurde erfolgreich gestartet", doch wenn Sie auf Katalog-Editor klicken, um die Seite neu zu laden, wird der Katalog nicht importiert.

Lösung

Setzen Sie sich mit Ihrem Systemadministrator in Verbindung. Wenn Business Desk im mittleren Isolationsmodus von Internet Information Services (IIS) ausgeführt wird, haben Sie keinen Zugriff auf Systemordner wie den Desktop. Um die Datei vom Desktop importieren zu können, muss der Systemadministrator Business Desk in den Modus mit niedriger Isolation wechseln.

Die nachfolgende Tabelle führt weitere Situationen auf, die überprüft werden sollten, wenn der Katalogimport nicht durchgeführt wird.

Beschreibung | Lösung
Sie importieren einen Katalog und erhalten die Meldung, dass der Import durchgeführt wird. Wenn Sie jedoch auf Katalog-Editor klicken, um die Seite neu zu laden, wird der Katalog nicht angezeigt. | Wenn Sie einen Katalog importieren, der eine Produktdefinition mit Eigenschaften enthält, die sich von einer bestehenden Produktdefinition desselben Namens unterscheiden, dann schlägt der Import fehl. Stellen Sie sicher, dass Produktdefinitionseigenschaften über alle Kataloge hinweg konsistent sind.
Sie haben versucht, einen XML-Katalog mithilfe des Katalog-Editors zu importieren, doch der Import schlug fehl. | Stellen Sie sicher, dass der vollständige Dateipfad und -name für den Katalog verwendet wird, oder dass der Katalog sich auf dem Freigabeordner CommerceCatalogs des Servers befindet, welcher die Business Desk-Anwendung ausführt. Ihr Systemadministrator kann Sie unterstützen, indem er den Katalog auf den Server lädt.


Ein Katalog kann nicht an einen Handelspartner gesendet werden

Beschreibung

Sie haben einen Katalog für einen Handelspartner erstellt und können ihn nicht an den Partner senden.

Lösung

Überprüfen Sie, ob der Systemadministrator Microsoft BizTalk Server 2000 eingerichtet und Commerce Server für den Dokumentenaustausch konfiguriert hat.


Bibliothek nicht registriert

Beschreibung

Während der Benutzung von Business Desk erhalten Sie die Meldung "Bibliothek nicht registriert".

Lösung

Sie müssen möglicherweise Vbscript.dll im Verzeichnis \winnt\system32 neu registrieren. Wenden Sie sich hierfür an Ihrem Systemadministrator.


Business Desk wird nicht ausgeführt

Beschreibung

Obwohl Business Desk zuvor fehlerfrei ausgeführt wurde, erhalten Sie beim Versuch des Neustarts eine der folgenden Meldungen:

  • Beim Laden eines Teils von Business Desk sind Fehler aufgetreten.

  • Beim Laden der Business Desk-Anwendung sind Fehler aufgetreten.

Lösung

Wenn das Kennwort des Systemadministrators auf dem Webserver mit der Business Desk-Anwendung geändert worden ist, kann das zu dem oben genannten Fehler führen. Der Systemadministrator kann die Lösung für diese Fehlerbedingung in der Hilfe zu Commerce Server 2000 finden.


Benutzer nicht zur Anzeige der Seite berechtigt - Anforderung einer erneuten Authentifizierung

Benutzer nicht zur Anzeige der Seite berechtigt – Anforderung einer erneuten Authentifizierung

Beschreibung

Business Desk zeigt unerwartet eine Aufforderung zur Eingabe von Benutzernamen und Kennwort an, oder Sie erhalten eine Fehlermeldung, dass der Benutzer nicht berechtigt ist, die Seite anzuzeigen, oder das Dialogfeld Netzwerkkennwort eingeben wird erneut angezeigt, selbst wenn Sie die richtigen Anmeldeinformationen eingegeben haben.

Lösung

Wenn Business Desk auf einem anderen Webserver als Commerce Server ausgeführt wird, kann es vorkommen, dass der Arbeitsspeicher des Servers, auf dem sich Commerce Server befindet, nicht mehr ausreicht. Wenden Sie sich zur Lösung des Problems an Ihren Systemadministrator.


Business Desk-Zugriffsfehler

Beschreibung

Obwohl Business Desk zuvor fehlerfrei ausgeführt wurde, können Sie das Programm nicht mehr starten. Bei dem Versuch, ein bestimmtes Modul zu öffnen, erhalten Sie die Meldung "Business Desk-Zugriffsfehler".

Lösung

Das Modul, das Sie öffnen möchten, erfordert Zugriffsrechte, die Sie nicht besitzen. Setzen Sie sich mit Ihrem Systemadministrator in Verbindung, um die entsprechenden Zugriffsrechte zu erhalten.


Änderungen werden nicht in der Website angezeigt

Beschreibung

Sie haben Änderungen an Business Desk vorgenommen, jedoch werden diese Änderungen nicht in Ihrer Website angezeigt.

Lösung

Sie müssen möglicherweise den Commerce Server-Cache aktualisieren. Um das zu tun, aktualisieren Sie Ihre Site mithilfe der Module "Kampagnen veröffentlichen", "Transaktionen veröffentlichen" oder "Profile veröffentlichen". Ebenso müssen Sie möglicherweise die Kataloge im Katalog-Editor-Modul über die Symbolleistenschaltfläche Benutzerdefinierte Kataloge veröffentlichen veröffentlichen.


Es können nicht zwei Instanzen von Business Desk geöffnet werden

Beschreibung

Es lassen sich auf Ihrem Computer nicht zwei Instanzen desselben Business Desk Clients für dieselbe Site öffnen.

Lösung

Sie können nicht zwei Instanzen desselben Business Desk Clients für dieselbe Site öffnen. Sie können jedoch zwei Business Desk Clients für verschiedene Sites auf Ihrem Computer gleichzeitig ausführen.


Volltextsuche in der Hilfe liefert kein Ergebnis

Beschreibung

Sie führen eine Volltextsuche in der Business Desk-Hilfe durch, doch die Suche führt zu keinem Ergebnis.

Lösung

Setzen Sie sich mit Ihrem Systemadministrator in Verbindung, um den Indexdienst auf dem Webserver zu starten, der die Business Desk-Anwendung ausführt. Der Indexdienst sollte immer auf Autostart eingestellt sein, da nach dem Start des Indexdienstes viel Zeit vergehen kann, bis der Ordner mit den Hilfeinhalten zur Verfügung steht.


Erweitern von Commerce Server

Microsoft Commerce Server 2000 kann auf viele Arten erweitert werden. Einige Beispiele:

  • Sie können benutzerdefinierte Ressourcen sowie benutzerdefinierte Module für Commerce Server Business Desk schreiben und diese in Commerce Server-Manager bzw. in Business Desk integrieren.

  • Sie können die Pipelinevorgänge zur Auftragsverarbeitung, Inhaltsauswahl und Direktsendung erweitern, indem Sie neue Pipelinekomponenten schreiben und integrieren.

  • Sie können neue Datentypen im Datawarehouse speichern und neue Berichte erstellen, um diese Daten zu analysieren.

Diese und andere Erweiterungen werden in diesem Abschnitt beschrieben.

Dieser Abschnitt beinhaltet folgende Themen:

  • Integrating Custom Resources (englisches Thema). Erläutert die Integration benutzerdefinierter Ressourcen in Commerce Server.

  • Building Business Desk Modules (englisches Thema). Erläutert das Erstellen neuer Business Desk-Module. Sie finden hier allgemeine Informationen zum Aufbau und zur Integration der neuen Module sowie Referenzmaterial zu den HTML-Komponenten, die zur Verwendung in den neuen Modulen zur Verfügung stehen.

  • Building Pipeline Components (englisches Thema). Erläutert das Erstellen neuer Pipelinekomponenten in C++ und Microsoft Visual Basic.

  • Integrating a Third-Party Product Catalog (englisches Thema). Beschreibt die verschiedenen Katalogintegrationspunkte in Commerce Server, um Entwicklern von Drittanbieterprodukten die Integration eines anderen Katalogsystems zu erleichtern.

  • Extending the Content Selection Framework (englisches Thema). Beschreibt, wie das Inhaltsauswahl-Framework angepasst und die zur Auswahl von personalisiertem Inhalt verwendeten Algorithmen verändert werden können.

  • Creating Custom Reports (englisches Thema). Erläutert, wie neue Analyseberichte zur Ergänzung der Standardberichte erstellt werden können, die in Commerce Server zur Verfügung stehen.

  • Working with the Data Warehouse (englisches Thema). Beschreibt das Arbeiten mit dem Datawarehouse. Sie finden hier Beschreibungen des logischen Schemas und des physischen Datenspeichers.

  • Integrating with Passport (englisches Thema). Beschreibt, wie Sie Microsoft Passport in eine Commerce Server-Website integrieren können. Dabei werden auch die Single-Sign-On- und die Wallet-Technologie behandelt.


Integrating Custom Resources

A Microsoft Commerce Server 2000 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:

  • Administration Database Tables. Discusses the Administration database and a subset of its tables, in which resource configuration data is defined and stored.

  • Adding a 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. Describes the different levels of integration that are available to developers of custom resources.

  • Other Sources of Information About MMC. Provides information about where to learn more about the Microsoft Management Console (MMC), including more information about how to build MMC snap-in extensions.


Administration Database Tables

The configuration data for the Microsoft Commerce Server 2000 resources that are supplied with Commerce Server is stored in a Microsoft SQL Server database named "MSCS_Admin". There are seven tables in this database that are important to an understanding of how the configuration data associated with custom resources can be maintained in this database, exposed through Commerce Server Manager, and deployed with Commerce Server Site Packager. The topics in this section provide detailed information about these tables.

Table Name | Description
ExtendedProps | Stores the characteristics of resource properties (resource property schema).
PupDBScripts | Involved in configuring the use of the GenericPuP object.
ResourceProps | Stores actual resource property values, as defined in the ExtendedProps table.
Resources | Defines actual resource instances, as defined in the SystemProps table.
SiteResources | Serves as a lookup mechanism for all resources installed in a site.
Sites | The starting point for retrieving data about a site.
SystemProps | Stores the characteristics for resources (resource schema).

Retrieving the value of a resource property is a multi-step process. Start by looking up the site name in the Sites table. The Sites table leads to the SiteResources table, which leads to the Resources table, which leads to the ResourceProps table, where actual resource property values are stored.

You use the administration objects shown in the following table to access these tables, performing value retrievals, and setting new values.

Object | Description
GlobalConfig | Provides methods for management of global resources.
SiteConfig | Provides methods for management of site resources.
SiteConfigReadOnly | Provides methods for faster retrieval of global and site resource property values.


ExtendedProps Table

The ExtendedProps table stores the characteristics of resource properties. Together with the SystemProps table, this table defines the schema of the Administration database.

The columns of the ExtendedProps table are described in the following table.

ExtendedProps Columns | Description
s_ResourceType | A string used to map a single row in the SystemProps table, representing a single resource type, with the associated resource properties in this table. The corresponding column in the SystemProps table is also named s_ResourceType.
s_PropertyName | Set to an arbitrary string that serves as the internal name of the property, and used when accessing the property programmatically with the GlobalConfig, SiteConfig, and SiteConfigReadOnly objects. Typically, this name is descriptive and begins with a letter indicating the data type of the property and an underscore. For example, "i_AuctionOptions" indicates an integer data type.
f_IsConnStr | When set to "1", indicates that the property is an OLE DB connection string. If set, Commerce Server Manager uses a Universal Data Link (UDL) dialog box to set the value, and Commerce Server Site Packager will prompt for connect information for a specific database when unpacking. For additional information about this flag and its relationship to connection string configuration values, see the note in ResourceProps Table.
f_IsHidden | When set to "1", the Generic Resource dialog box will not display the property. Set this flag to "1" for properties for which there is a custom MMC snap-in.
f_IsSimpleList | When set to "1", indicates that the new property is a SimpleList object. This feature allows the storage of multi-valued properties.
s_Description | An arbitrary descriptive string that is displayed in the Generic Resource dialog box.
i_Vartype | An integer indicating the Variant type of the data being stored. For example, 8 indicates a string and 8200 indicates an array of strings. All Variant types except SafeArray, IUnknown, and IDispatch are allowed. Set to an integer value indicating the data type of the new property. The value 8200 indicates a Variant array of strings.
s_Value | The default value for this resource property, if any.
s_DisplayName | A user-friendly display name for the property that is shown in the Generic Resource dialog box.


PupDBScripts Table

The PupDBScripts table is involved in the configuration of the use of the GenericPuP object.

The columns of the PupDBScript table are described in the following table.

PupDBScripts Columns | Description
i_SiteID | An integer that identifies a particular resource as being associated with a particular site. This column corresponds to the i_SiteID columns in the SiteResources and Sites tables.
i_ResourceID | An integer that identifies the resource with which this GenericPuP object entry is associated. Values in this column correspond to the values in the i_ResourceID columns in the ResourceProps, Resources, and SiteResources tables.
u_scriptname | The name of the script with which this GenericPuP object entry is associated. This name will appear in the comma-separated list in either the s_PupParam2 column or the s_PupParam3 column in the Resources table.
txt_script | The SQL script associated with this GenericPuP object entry, if any. Use the GetSQLScript, PutSQLScript, and DeleteSQLScript methods of the SiteConfig object to manage script entries in this column. For more information, see SiteConfig Object.


ResourceProps Table

The ResourceProps table stores the actual resource property values. Together with the Resources, SiteResources, and Sites tables, this table stores the data for the Administration database.

The columns of the ResourceProps table are described in the following table.

ResourceProps Columns | Description
i_ResourceID | An integer that identifies the resource with which this property is associated. Values in this column correspond to the values in the i_ResourceID columns in the PupDBScript, Resources, and SiteResources tables.
s_PropertyName | Set to an arbitrary string that serves as the internal name of the property, and is used when accessing the property programmatically with the GlobalConfig, SiteConfig, and SiteConfigReadOnly objects. Typically, this name is descriptive and begins with a letter indicating the data type of the property and an underscore. For example, "i_AuctionOptions" indicates an integer data type.
f_IsConnStr | When set to "1", indicates that the property is an OLE DB connection string. If set, Commerce Server Manager uses a Universal Data Link (UDL) dialog box to set the value, and Commerce Server Site Packager will prompt for connect information for a specific database when unpacking. See note below for additional information about this flag and its relationship to connection string configuration values.
f_IsHidden | When set to "1", the Generic Resource dialog will not display the property. Set this flag to "1" for properties for which there is a custom MMC snap-in.
f_IsSimpleList | When set to "1", indicates that the new property is a SimpleList object. This feature allows the storage of multi-valued properties.
s_Description | This column is not used.
i_Vartype | An integer indicating the Variant type of the data being stored. For example, 8 indicates a string and 8200 indicates an array of strings. All Variant types except SafeArray, IUnknown, and IDispatch are allowed. Set to an integer value indicating the data type of the new property. The value 8200 indicates a Variant array of strings.
s_Value | The value of the property.
s_DisplayName | A user-friendly display name for the property that is shown in the Generic Resource dialog box.

Notes

  • Commerce Server Site Packager performs special processing for resource properties that have names beginning with "connstr_db". The values associated with these properties are packaged, but when they are unpacked, the packaged value is ignored and they are provided with default connection string values. If you choose to perform quick unpacking, these defaults are automatically accepted. If you choose custom unpacking, the defaults are displayed and you have the opportunity to change them. Even though they are ignored during unpacking, these connection strings are packaged in clear text, exposing them as a potential security risk.

  • The packaging of connection string values presents a potential security risk because the value, including any password, is stored as clear text in the site package. The following mechanism has been developed to avoid this security risk.

    The f_connstr attribute provides a mechanism for suppressing the packaging of connection string values (or potentially, any sensitive configuration property). When this attribute is set to one (1), the associated property value is not packaged.

  • If you want a connection string to be packaged and unpacked without any user interaction, and you are willing to assume the potential security risk, do not begin your connection string property name with "connstr_db" and do not set the associated f_connstr attribute to one (1). Alternatively, you could create a Component Object Model (COM) object that implements the IPuP interface, and let that object handle the packaging and unpacking of your connection string.


Resources Table

The Resources table defines actual instances of resources. Together with the ResourceProps, SiteResources, and Sites tables, this table stores the data for the Administration database.

Entries in the Resources table have a one-to-many relationship with entries in the ResourceProps table. For more information about one-to-many relations, see One-To-Many Relation.

The columns of the Resources table are described in the following table.

Resources Columns | Description
i_ResourceID | An integer that identifies a resource in this table. Values in this column correspond to the values in the i_ResourceID columns in the PupDBScript, ResourceProps, and SiteResources tables.
s_DisplayName | A string that stores the programmatic name for the resource, as used when accessing the resource through the Fields property of the GlobalConfig, SiteConfig, and SiteConfigReadOnly objects. For more information, see GlobalConfig.Fields, SiteConfig.Fields, and SiteConfigReadOnly.Fields, respectively.
s_Description | A string that stores the user-friendly name for the resource.
s_Type | A string that indicates the type of this resource. This column maps to the s_ResourceType columns in the SystemProps and ExtendedProps tables.
f_IsGlobal | A flag that indicates whether a resource is global (1) or site-specific (0).
f_ResourceFlags The values in this column are bit fields that store information about a number of Boolean characteristics of resources. Commerce Server Manager and Commerce Server Site Packager examine these characteristics to determine how each resource should be treated. The bits are defined as follows:
  • 0x00000001 – Set when this row is a reference to a global resource.

    Constant: IS_REFTOGROUPRES

  • 0x00000002 – Set when this resource can be displayed in MMC.

    Constant: IS_SNAPINITEM

  • 0x00000004 – Set when this resource has its own snap-in. The ProgID of the snap-in extension must be in the s_ProgIDSnapIn column when this bit is set.

    Constant: IS_SNAPINAVAILABLE

  • 0x00000008 – Set when this resource is an application in a site. Not used externally.

    Constant: IS_ADDRESS

  • 0x00000010 – Set when this resource is a physical resource. Affects delete functionality. Defaults to the first global resource like it. During custom unpacking, requires user to select existing global resource. Used in combination with IS_REFTOGROUPRES.

    Constant: IS_PHYSICAL

  • 0x00000020 – Not used.

    Constant: IS_ALWAYSPACK

  • 0x00000040 – Set for Addresses and AddressItems, which may not be related to Commerce Server.

    Constant: IS_NONCOMMERCE

  • 0x00000080 – Set for resources that use a non-standard snap-in extension (currently only used by our Data Warehouse resource). The use of this flag is not recommended because of the special programming considerations that are required.

    Constant: IS_SNAPIN_NNSE

  • 0x00000100 – Set for resources that are never to be packaged by Commerce Server Site Packager. Set this bit when you do not want to transfer resources from one machine to another.

    Constant: IS_NOTPACKED

The constants are defined in the ConfigFlags enumeration in the file cssnapin.h.
s_ProgIDSnapIn | A string that provides the ProgID of a snap-in extension for this resource. The snap-in extension must implement the IDispatch interface. The IS_SNAPINAVAILABLE bit of the f_ResourceFlags column should be set when this column has a value.
s_Computer | A string that optionally shows the name of the computer where Commerce Server is installed.
i_Status | This column is not currently used.
f_PupFlags | When set to zero (0), tells Commerce Server Site Packager that the name passed when packaging and unpacking is a file name. When set to one (1), tells Commerce Server Site Packager that the name passed when packaging and unpacking is a folder name.
s_ProgIDPUP | A string that provides the ProgID of a COM component that implements the Commerce Server Site Packager (IPuP) interface. For more information, see Site Packager Interface.
s_PupParam1 | A string that contains a comma-delimited list of names of the database tables to be packaged and unpacked for the resource.
s_PupParam2 | A string that contains a comma-delimited list of the names of the SQL schema scripts to execute when importing the resource.
s_PupParam3 | A string that contains a comma-delimited list of the names of the SQL scripts to execute when deleting the resource.


SiteResources Table

The SiteResources table serves as a lookup mechanism for all resources installed in a site. Together with the ResourceProps, Resources, and Sites tables, this table stores the data for the Administration database.

Entries in the SiteResources table have a many-to-many relationship with entries in the Resources table. For more information about many-to-many relations, see Many-To-Many Relation.

The columns of the SiteResources table are described in the following table.

SiteResources Columns | Description
i_SiteID | An integer that identifies the particular site associated with the corresponding resource. This column corresponds to the i_SiteID columns in the PupDBScripts and Sites tables.
i_ResourceID | An integer that associates the identified resource with its corresponding site. Values in this column correspond to the values in the i_ResourceID columns in the PupDBScript, ResourceProps, and Resources tables.


Sites Table

The Sites table is the starting point for retrieving data about a site. It maps the site name with a site ID. This ID is not the same as the Internet Information Services (IIS) metabase ID for the site. Together with the ResourceProps, Resources, and SiteResources tables, this table stores the data for the Administration database.

Entries in the Sites table have a one-to-many relationship with entries in the SiteResources table. For more information about one-to-many relations, see One-To-Many Relation.

The columns of the Sites table are described in the following table.

Sites Columns | Description
i_SiteID | An integer that identifies a particular site. This column corresponds to the i_SiteID columns in the PupDBScripts and SiteResources tables.
s_Name | A string containing a user-friendly name for the site.
s_Description | An optional string containing a user-friendly description for the site.
i_Status | This column is not currently used.
d_DateCreated | The date and time that this site entry was created.
d_DateModified | The date and time that this site entry was last modified.


SystemProps Table

The SystemProps table defines the characteristics of resources. Together with the ExtendedProps table, this table defines the schema of the Administration database.

The columns of the SystemProps table are described in the following table.

SystemProps Columns | Description
i_ApplicationID | This column is not currently used.
s_Name | This column is not currently used.
s_ClassName | Set to an arbitrary string. It is used as the bstrConfigSchemaClass parameter to both the GlobalConfig.CreateServiceConfig and the SiteConfig.CreateComponentConfig methods.
s_ResourceType | A string used to map a single row in this table, representing a single resource type, with the associated resource properties in the ExtendedProps table. The corresponding column in the ExtendedProps table is also named s_ResourceType.
s_Description | This column is not currently used.
f_ResourceFlags | The values in this column are bit fields that store information about a number of Boolean characteristics of resources. For more information about the meaning of the bits in this flag, see the f_ResourceFlags column of the Resources Table. The constants for the bits in this flag are defined in the ConfigFlags enumeration in the file cssnapin.h.
f_PupFlags | When set to zero (0), tells Commerce Server Site Packager that the name passed when packaging is a file name. When set to one (1), tells Commerce Server Site Packager that the name passed when packaging is a folder name.
s_RefResource | This column is not currently used.
s_MachineName | This column is not currently used.
i_Status | This column is not currently used.
s_ProgidSnapin | A string that provides the ProgID of a snap-in extension for this resource. The snap-in extension must implement the IDispatch interface.
s_ProgidPUP | A string that provides the ProgID of a COM component that implements the Commerce Server Site Packager (IPuP) interface. For more information, see Site Packager Interface.
s_PUPParam1 | This column is not currently used.
s_PUPParam2 | This column is not currently used.
s_PUPParam3 | This column is not currently used.


Adding a Resource

The process of adding a new resource, and its corresponding configuration values, to the Administration database is a two-step process. First, the schema for the new resource and its properties must be defined. Second, an instance of the new 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 new 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 new resource and its properties to the Administration database.


Modifying the Resource Schema Tables

When a new 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 2000 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 2000 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:

sSiteName = "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

There are three different levels of integration at which a new 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 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 2000 Group Resources Extend this node to add a new global resource.
CSnapInGUID_NODETYPE_Resource 1503A834-6945-11D2-AFF4-00c04F8670E4 | Microsoft Commerce Server 2000 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 2000
CSnapInGUID_NODETYPE_Group 1503A831-6945-11D2-AFF4-00C04F8670E4 | Microsoft Commerce Server 2000 Groups
CSnapInGUID_NODETYPE_Sites 1503A833-6945-11D2-AFF4-00C04F8670E4 | Microsoft Commerce Server 2000 Sites
CSnapInGUID_NODETYPE_Site 1503A835-6945-11D2-AFF4-00C04F8670E4 | Microsoft Commerce Server 2000 Site
CSnapInGUID_NODETYPE_Site_Resources 1503A836-6945-11D2-AFF4-00C04F8670E4 | Microsoft Commerce Server 2000 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 2000 Group Resources" or the "Microsoft Commerce Server 2000 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 2000 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 2000 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 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 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.

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 MMC

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.


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 2000. 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 2000 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 at http://msdn.microsoft.com.


Summary of Required Steps

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.
Nested Edit
Confirmation Dialog
Edit
Edit
List
List
List
Module 3
Module 2
Module 2
Module 1
Module 1
Module 1
Welcome to Business Desk
Nav
Nav
12
11
10
9
8
7
6
5
4
3
2
?
?
?
?
?
?
1
Nav
Nav

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.

Individual
EditField
HTCs
ListEditor
HTC
EditSheet
HTC
Expression
Builder
HTC
Profile
Designer
HTC
DynamicTable
HTC
ListSheet
HTC
Find By
ListSheet
HTC
ListSheet
HTC
Module 3
Module 3
Edit Pages
Action Pages
List Pages
Module 3
Module 2
Module 2
Module 2
Module 1
Module 1
Module 1
Module
Configuration
File
Module
Configuration
File
Module
Configuration
File
Master
Configuration
File
Task Buttons
and Menus
?
?
?
?
?
?
?
?
?
?
Nav
Nav
Nav
Nav Pane

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 modules.

  • 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 a particular user will not have specific modules displayed in the navigation pane, thereby restricting them from performing the functions available in those modules. More specifically, the security itself is provided by Internet Information Services (IIS) and Access Control Lists (ACLs), and the Framework displays or conceals modules based on those security settings. Whenever a 404 (file not found) or 401 (access) error occurs, a custom error page is displayed.

  • 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 2000, 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 2000, 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 Commerce Server Business Desk Framework supports hiding particular modules in the navigation pane to which a particular user should not have access. This is accomplished using NT file system (NTFS) Access Control Lists (ACLs) on the files that serve as the entry point for each module. For example, if a particular user does not have read permission on the entry point file associated with a particular module, that module will not appear in the navigation pane, and the user will not be able to access it. The user may not even know that such a module exists.

It is important to consider applying the appropriate access control to more files than just the entry point files. A better strategy is to establish the appropriate ACLs at the (Business Desk module) folder level so that all the contained files are similarly protected. This helps prevent users from circumventing Business Desk security mechanisms by trying to directly access module pages other than through the entry point page.

If users try to display a page to which they do not have access rights, a custom Business Desk error page is displayed.

Note

  • Business Desk Framework does not implement any security mechanisms. Rather, it provides a mechanism for preventing individuals from seeing Business Desk modules that are outside their areas of responsibility. Microsoft Internet Information Services (IIS), Microsoft Windows 2000 (for example, using ACLs and authentication), and Microsoft SQL Server should be used to provide security.

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 2000 do not implement this level of security, and would need to be modified to do so.

  • Care should be taken to supply the correct ACLs for all relevant Business Desk folders, regardless of whether any module entry point files exist in those folders.

  • 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 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 2000 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 2000 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 summaries 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://msdn.microsoft.com.

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 2000 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:

  1. Conventions for the left-to-right ordering of the task buttons.

  2. 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".

  4. 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 2000 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 Standard XML Data Record Format, 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 2000 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 2000 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 2000 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 topic in the Module Configuration Files section.

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 2000. (HTCs are one of the ways in which the DHTML behaviors supported in Internet Explorer 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 2000, 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:
HideFindBy (client-side) | ShowFindBy (client-side)
InsertTaskBar (server-side) | ToggleFindBy (client-side)
SetFindByHeight (client-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) |
General Utility Routines:
AddClass (client-side) | nGetYear (client-side)
BDHALsizeButtons (server-side) | RemoveClass (client-side)
BDHALsizeSelects (server-side) | ReplaceClass (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) | xmlGetSiteTermsValue (client-side)
nGetMonth (client-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)


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)
\segviewer\
 Segment Viewer (Analysis)
\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.

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 2000 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.


Building Pipeline Components

The Microsoft Commerce Server 2000 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++.

  • 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 IPipelineComponent::Execute method.

The 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 the 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 Commerce Server 2000 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 to store 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 the 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 the 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 the 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 Object 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

Commerce Server 2000 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

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 available list of 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 available list of 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 Commerce Server 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 Commerce Server 2000 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++ version 4.0 and greater. 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 with 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 Installing the ATL Pipeline Component Wizard. 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 Commerce Server 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 if your component uses property pages to allow users to set component properties.
    IPersistStreamInit | Select if your component saves and loads its properties to and from a stream.
    IPipelineComponentDescription | Select if 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 through 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 Commerce Server 2000 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. By adding properties and methods through 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 and threading model.

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;

    hr = RegisterCATID(CLSID_MinMaxShipping,
                       CATID_MSCSPIPELINE_COMPONENT);

    if(FAILED(hr)) return hr;

    hr = RegisterCATID(CLSID_MinMaxShipping,
                       CATID_MSCSPIPELINE_SHIPPING);

    if(FAILED(hr)) return hr;

    hr = RegisterName(CLSID_MinMaxShipping,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 error level is less than or equal to the maximum error level for this stage, the components can run the IPipelineComponent::Execute method.

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


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 Commerce Server 2000. 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 Commerce Server 2000 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 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 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.

Running the Sample

To the MinMaxShip samples, you must first install one of the Commerce Server 2000 Solution Sites. After you have installed one of these sites, go to the directory containing the Business Desk files, and perform the following procedure.

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".

    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 type "MinMaxShip."

See Also

Design


Integrating a Third-Party Product Catalog

There are two general strategies for using existing product catalog data in Commerce Server 2000. 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 2000 through its Application Program 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 2000 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 will have 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 may decide to pursue a Microsoft BizTalk Server or Data Transformation Services (DTS) integration solution, or you may decide to transmit your product catalog data via other protocols. The option you choose depends on your available resources and expertise. For more information about importing catalog data, see Importing a Catalog.

Integrating a third-party catalog with Commerce Server 2000 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 with Campaigns. Describes how to provide product data from your external product catalog to the Marketing component for evaluation.

  • Integrating with the Data Warehouse. Describes the Data Warehouse, and how to modify the Data Warehouse schema to match your catalog schema.

  • Integrating 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 Applications. Describes how to replace Commerce Server 2000 Catalog API calls in the Solution Sites in order to use them with your existing catalog system.

  • Integrating 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 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 with the Data Warehouse

You must extend the following Data Warehouse components for use with a third-party product catalog:

  • Define Schema. The data schema must be defined appropriately by using the Commerce Server OLE database provider. For more information, see Extending the Data Warehouse.

  • Import Data. Catalog data is brought into the Data Warehouse by running the Catalog data import (Commerce Server) Data Transformation Service (DTS) task. You must create a custom script or application to import data from a third-party catalog into the Data Warehouse. For more information, see Importing Data into the Data Warehouse.

  • Prepare Data for Analysis. Before the data in the Data Warehouse can be analyzed it is exported to a Microsoft Online Analytical Processing (OLAP) Server to be stored in multidimensional cubes. For more info see Preparing Data for Analysis with OLAP Server

  • Modify or Create Reports. You will also need to modify or replace any reports that use product catalog data so that they can use third-party catalogs. For more information, see Creating Custom Reports.


Integrating with Baskets

When a user places an item in their 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 may be able to use the QueryProductInfoADO 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 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.


Integrating 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 alternate Business Desk catalog management modules to interface with your existing catalog, either to replace or to supplement whatever management interface or tools it may already have.

For more information, see Building Business Desk Modules.


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 2000 are built 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 Frameworkescribes 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 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 2000 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 may 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 possibly by recording advertising events to a database.

Cache Loading

If you have additional dimensions you want to target 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 2000, 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 using indexes built on the content contained 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, integral, or array column in the ContentList object schema. A filter can either require that content items have a particular column value, or it may 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 not some others. 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 2000 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 their final scores. 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 will create 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 2000 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 using the Commerce Server 2000 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 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 may 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 using the Profile 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 into 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 ContentSelection Object


Performance and Scalability of the Content Selection Framework

This topic presents tips for how to ensure 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 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++ 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, 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 may 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 2000 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 procedure.

To install the CSF Headlines sample

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2000, 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\CSFHeadlinesBizDesk.

For more information about unpacking a site, see Adding 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.
    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 procedures. 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, 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 may 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


Creating Custom Reports

This section describes the methods for creating custom reports. Reports are implemented as either static or dynamic. Static reports are based on either structured query language (SQL) or multidimensional expression (MDX) queries of an SQL or online analytical processing (OLAP) databases, respectively. Dynamic reports are based on an Extensible Markup Language (XML) framework that includes either an SQL query or a reference to a cube.

Static report definitions consist of a query and parameter definitions. 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 computer that houses Commerce Server Business Desk. These reports can be opened through Business Desk and are displayed in Microsoft Internet Explorer.

Dynamic report definitions are stored as queries, and the pivot table view is stored in XML format in the Data Warehouse. Query results are displayed in the Microsoft Office 2000 Web Components (OWC) Pivot Table component.

Definitions for the pre-defined reports are contained in the file CSReports.sql found in the Commerce Server installation directory. The CSReports.sql file populates the Report tables in the Data Warehouse. A Data Transformation Services (DTS) Report preparation task is available to process OLAP cubes and execute stored procedures to prepare imported data for reporting.

You use Business Desk to run reports and display query results.

The Commerce Server 2000 Software Development Kit (SDK), which is included with Commerce Server 2000, contains four SQL script files that enable you to create the four report types. The script files to create these reports are located in the installation folder under \Microsoft Commerce Server\SDK\Samples\Business Analytics\Scripts.

This section contains:

  • Creating Static Reports Using SQL. Describes creating static reports using parameterized SQL query statements.

  • Creating Static Reports Using MDX. Describes creating static reports using parameterized MDX query statements.

  • Creating Dynamic Reports. Describes creating dynamic reports using the XML framework.

See Also

Analysis/Reporting Schema

Analysis/Reporting XML Structures

AsyncRpt Object

ReportRender Object

Running Reports


Creating Static Reports Using SQL

The steps involved in creating a static SQL report are described as a running example in the following sections:

  1. Write the SQL query of interest. For details on this step, see Writing the SQL Query.

  2. Add parameter tags to the query. For details on this step, see Adding SQL Parameterization.

  3. Create the base report definition as a set of INSERT statements (one of which is for the query) into the Report table. For details on this step, see Creating the SQL Base Report Definition.

  4. Insert the dimensions for the report into the ReportDimension table. For details on this step, see Adding the SQL Report Dimensions.

  5. Add the report parameters corresponding to the query parameter tags into the ReportParam table. For details on this step, see Adding the SQL Report Parameters.

  6. Run and display or export the report. For details on this step, see Displaying and Exporting the SQL Report.

This running example creates a static report of site visitors with the following attributes:

  • Registration occurred between 3/1/2000 and 3/30/2000.

  • The UserType equals 1.

  • An e-mail address was provided during registration.

After the steps have been successfully executed, the report will be listed in the Reports module in Commerce Server Business Desk.

Once the report is run, it will display the UserID, DateCreated, DateRegistered, Email, FirstName, LastName, TelephoneNumber, UserTitle, and UserType attributes of the first 25 matched users sorted by Email address.


Writing the SQL Query

Create a standard SQL query to return the wanted information.

Step 1

SQL Query =

"SELECT top 25 UserId rcp_guid, DateCreated, DateRegistered, Email rcp_email,

FirstName, LastName, TelephoneNumber, UserTitle, UserType

FROM RegisteredUser

WHERE (DateRegistered >= '03/01/2000' AND DateRegistered <=

'03/30/2000') AND UserType = 1 AND Email is not Null

ORDER BY rcp_email ASC"


Adding SQL Parameterization

In the SQL query created in Step 1, add parameter tags using the [$paramName] syntax. The ReportRender object treats these parameters as macros. Note the added INTO clause.

For more information about the available parameters, see Analysis/Reporting Schema.

Step 2

SQL Query =

"SELECT [$TopCount] UserId rcp_guid, DateCreated, DateRegistered, Email

rcp_email, FirstName, LastName, TelephoneNumber, UserTitle, UserType

INTO [$ResultTable]

FROM RegisteredUser

WHERE [$DateRange] AND [$Expression] AND [$SingleValue]

ORDER BY rcp_email ASC"


Creating the SQL Base Report Definition

Create the base report definition using a set of INSERT statements into the Report table. The SQL query created in Step 2, is inserted into the [Query] field.

The DmExport and UpmExport bits are set so the report can be exported to Direct Mailer (which uses the rcp_email attribute) and User Profile Management (which uses the rcp_guid attribute).

The ReportType is set to Static_SQL (2). The Protected bit is cleared (set to 0) which allows the report to be overwritten or deleted.

For more information about the Report table, see Analysis/Reporting Schema.

Step 3

DECLARE @ReportID int

DECLARE @ReportStatusID int

INSERT INTO [dbo].[Report] ([DisplayName], [Description], [ReportType],

[Category], [Query], [DmExport], [UpmExport], [CreatedBy], [Protected])

VALUES ('Registered Users', 'Registered Users', @Static_SQL, 'Users',

SQL String, 1, 1, 'the almighty creator', 0)

SELECT @ReportID = @@identity


Adding the SQL Report Dimensions

Create the displayable report dimensions using a set of INSERT statements into the ReportDimension table.

Specify the fields to display and the dimension type (column, row, or measure). Fields that are specified in the SELECT statement but are not inserted into the ReportDimension table can be exported, but not displayed.

For more information about the ReportDimension table, see Analysis/Reporting Schema.

Step 4

INSERT INTO [dbo].[ReportDimension] ([ReportID], [DimensionType],

[DisplayName], [FieldName], [Ordinal])

VALUES (@ReportID, 0, "Email", "rcp_email", 1)

INSERT INTO [dbo].[ReportDimension] ([ReportID], [DimensionType],

[DisplayName], [FieldName], [Ordinal])

VALUES (@ReportID, 0, "UserId", "rcp_guid", 2)

INSERT INTO [dbo].[ReportDimension] ([ReportID], [DimensionType],

[DisplayName], [FieldName], [Ordinal])

VALUES (@ReportID, 0, "FirstName", "FirstName", 3)

INSERT INTO [dbo].[ReportDimension] ([ReportID], [DimensionType],

[DisplayName], [FieldName], [Ordinal])

VALUES (@ReportID, 0, "LastName", "LastName", 4)

INSERT INTO [dbo].[ReportDimension] ([ReportID], [DimensionType],

[DisplayName], [FieldName], [Ordinal])

VALUES (@ReportID, 0, "DateCreated", "DateCreated", 5)

INSERT INTO [dbo].[ReportDimension] ([ReportID], [DimensionType],

[DisplayName], [FieldName], [Ordinal])

VALUES (@ReportID, 0, "DateRegistered", "DateRegistered", 6)


Adding the SQL Report Parameters

Create the report parameters using a set of INSERT statements into the ReportParam table.

The parameterizations are of the form:

   [ Operand1   Value1   Operand2   Value2   FieldName ]

An expression equivalent to the parameterization is given immediately following each VALUES clause, first in the above format, and second, if necessary, in a more understandable format.

For more information about the ReportParam table and the various parameters, see Analysis/Reporting Schema.

Step 5

INSERT INTO [dbo].[ReportParam] (ReportID, ParamName, ParamDescription, ParamType, DataType, Opnd1, Val1, Opnd2, Val2, FieldName, Ordinal)

VALUES (@ReportID, '[$TopCount]', 'Number of users', ParamType_SelectOrder, DataType_integer, SelectOrderOpnd_Top, '25', 0, '0', "", 1)

         [ Select Top, 25, 0, 0, "" ]

INSERT INTO [dbo].[ReportParam] (ReportID, ParamName, ParamDescription, ParamType, DataType, Opnd1, Val1, Opnd2, Val2, FieldName, Ordinal)

VALUES (@ReportID, '[$DateRange]', 'User registration date', ParamType_DateRange, DataType_date, DateRangeOpnd_From, '3/1/2000', 0, '3/30/2000', "DateRegistered", 2)

         [ Date From, 3/1/2000, 0, 3/30/2000, DateRegistered ]
         [ 3/1/2000 <= DateRegistered <= 3/30/2000 ]

INSERT INTO [dbo].[ReportParam] (ReportID, ParamName, ParamDescription, ParamType, DataType, Opnd1, Val1, Opnd2, Val2, FieldName, Ordinal)

VALUES (@ReportID, '[$Expression]', 'User type', ParamType_Expression, DataType_integer, ExpOpnd_Equals, '1', 0, '0', "UserType", 3)

         [ =, 1,  0, 0, UserType ]
         [ UserType = 1 ]

INSERT INTO [dbo].[ReportParam] (ReportID, ParamName, ParamDescription, ParamType, DataType, Opnd1, Val1, Opnd2, Val2, FieldName, Ordinal)

VALUES (@ReportID, '[$SingleValue]', 'Email qualifier', ParamType_SingleValue, DataType_text, 0, 'And Email is not Null', 0, 0, "", 4)

         [ 0, Email <> Null, 0, 0, "" ]


Displaying and Exporting the SQL Report

After you have completed steps 1 through 6 (see Creating Static Reports Using SQL for information about the preceeding steps) successfully, the report will appear in the Reports module in Commerce Server Business Desk. The next step is to run or export the report from Business Desk. For information about running or exporting this report, see Business Desk Analysis.

After the report is run, it can be viewed from Business Desk or you can programmatically display or export the report using the ReportRenderer or AsyncRpt objects. For information about programmatically displaying or exporting the report, see ReportRenderer Object and AsyncRpt Object.

A SQL script file is included in the SDK which creates a static SQL report. The file is located in the installation folder under \Microsoft Commerce Server\SDK\Samples\Business Analytics\Scripts.


Creating Static Reports Using MDX

The steps involved in creating a static MDX report are described as a running example in the following sections:

  1. Write the MDX query of interest. For details on this step, see Writing the MDX Query.

  2. Add parameter tags to the query. For details on this step, see Adding MDX Parameterization.

  3. Create the base report definition as a set of INSERT statements (one of which is for the query) into the Report table. For details on this step, see Creating the MDX Base Report Definition.

  4. Add the report parameters corresponding to the query parameter tags into the ReportParam table. For details on this step, see Adding the MDX Report Parameters.

  5. Run and display the report.

The report dimensions are inherent to the query and do not have to be inserted into the ReportDimension table. After the steps have been successfully executed, the report will be listed in the Reports module in Commerce Server Business Desk.

  • The running example creates a static report of the top 100 referring domains by visit.


Writing the MDX Query

Create a standard MDX query.

Step 1

MDX Query =

"SELECT {[Measures].[Visits], [Measures].[Requests]} ON COLUMNS,

TopCount({[Referrer].[Referrer Domain Name].members}, 100,

[Measures].[Visits]) ON ROWS

FROM [Web Usage]

WHERE ([Retail])"


Adding MDX Parameterization

In the MDX query created in Step 1, add parameter tags using the [$paramName] syntax. The ReportRender object treats these parameters as macros.

For more information about the available parameters, see Analysis/Reporting Schema.

Step 2

MDX Query =

"SELECT {[Measures].[Visits], [Measures].[Requests]} ON COLUMNS,

[$TopCount]({[Referrer].[Referrer Domain Name].members}, [$TopCount],

[Measures].[Visits]) ON ROWS

FROM [Web Usage]

WHERE ([$SiteName])"


Creating the MDX Base Report Definition

Create the base report definition using a set of INSERT statements into the Report table. The MDX query created in Step 2 is inserted into the [Query] field.

The ReportType is set to Static_MDX (3). The Protected bit is cleared (set to 0) which allows the report to be overwritten or deleted.

For more information about the Report table, see Analysis/Reporting Schema.

Step 3

DECLARE @ReportID int

DECLARE @ReportStatusID int

INSERT INTO [dbo].[Report] ([DisplayName], [Description], [ReportType],

[Category], [Query], [CreatedBy], [Protected], [Definition])

VALUES ('Visits by Referrer', 'Visits by Referrer', @Static_MDX, 'Web Usage',

MDX Query, 'the almighty creator', 0, "Long report description goes here")

SELECT @ReportID = @@identity


Adding the MDX Report Parameters

Create the report parameters using a set of INSERT statements into the ReportParam table.

For more information about the ReportParam table and the various parameters, see Analysis/Reporting Schema.

Step 4

INSERT INTO [dbo].[ReportParam] (ReportID, ParamName, ParamDescription,

ParamType, DataType, Opnd1, Val1, Ordinal)

VALUES (@ReportID, '[$TopCount]', 'Number of referrer domains',

@ParamType_SelectOrder, @DataType_integer, @SelectOrderOpnd_Top,

100, 1)

INSERT into [dbo].[ReportParam] (ReportID, ParamName, ParamDescription,

ParamType, DataType, Opnd1, Val1, Ordinal)

VALUES (@ReportID, '[$SiteName]', 'Site Name', @ParamType_SiteName,

@DataType_text, @SiteNameOpnd_Equals, 'Retail', 2)

After you have completed steps 1 through 4 (see Creating Static Reports Using MDX for information about the preceeding steps) successfully, the report will appear in the Reports module in Commerce Server Business Desk. The next step is to run or export the report from Business Desk. For more information, see Business Desk Analysis.

After the report is run, it can be viewed from Business Desk or you can programmatically display or export the report using the ReportRenderer or AsyncRpt objects. For information about programmatically displaying or exporting the report, see ReportRenderer Object.

A SQL script file is included in the SDK which creates a static MDX (OLAP) report. The file is located in the installation folder under \Microsoft Commerce Server\SDK\Samples\Business Analytics\Scripts.


Creating Dynamic Reports

This topic describes creating dynamic reports using an XML framework which contains either an SQL query or a reference to a cube. New dynamic reports can be created from existing dynamic reports by running the existing report, editing the pivot view, and saving the result as a new report. If the new report requires a different SQL query or cube than any existing report, a SQL script must be run. Scripts are provided that can be modified to create both types of dynamic reports. These scripts are located in the installation folder under \Microsoft Commerce Server\SDK\Samples\Business Analytics\Scripts.

New dynamic reports are created by following these steps:

  1. Run the modified SQL script to create the basic report.

  2. Open the newly created report or an existing dynamic report.

  3. Modify the report using the features of the pivot control.

  4. Save the customized report as a new report.

When the above steps have been successfully completed, the new report will appear in the Reports module of Commerce Server Business Desk.

This section contains:

  • Creating Dynamic Reports Using SQL. Describes creating dynamic reports using an XML framework containing an SQL query.

  • Creating Dynamic Reports Using Cubes. Describes creating dynamic reports using an XML framework containing a reference to a cube.


Creating Dynamic Reports Using SQL

New dynamic SQL reports are described as a running example in the following sections. To create the report, follow these steps:

  1. Create the SQL query. For details on this step, see Create the Dynamic SQL Query.

  2. Create the XML framework which includes the query. For details on this step, see Create the XML Framework.

  3. Insert the XML and other report parameters into the Report table. For details on this step, see Create the Base Report Definition.

  4. The report shows up in the Reports section of the Analysis module of the Business Desk where it is modified using the pivot control and saved.

A SQL script file, "Analysis - New dynamic SQL report script.sql", is included in the SDK. This script includes the XML framework and can be modified to create the report. The file is located in the installation folder under \Microsoft Commerce Server\SDK\Samples\Business Analytics\Scripts.


Create the Dynamic SQL Query

Create the query string.

Step 1

SQL Query =

"SELECT top 25 UserId rcp_guid, DateCreated, DateRegistered, Email rcp_email,

FirstName, LastName, TelephoneNumber, UserTitle, UserType

FROM RegisteredUser

WHERE (DateRegistered >= '03/01/2000' AND DateRegistered <=

'03/30/2000') AND UserType = 1 AND Email is not Null

ORDER BY rcp_email ASC"


Create the XML Framework

The following shows the XML framework required for the report. Note that 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.

Insert the SQL query from Step 1 between the CommandText tags.

For more information about the XML structure, see Analysis/Reporting XML Structures.

Step 2

XMLString =
'<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>Provider=SQLOLEDB;Integrated Security=SSPI;
      Initial Catalog=;Data Source=</x:ConnectionString>
   <x:CommandText>SQL Query</x:CommandText>
</x:PivotTable>
</xml>'


Create the Base Report Definition

Insert the required parameters into the Report table including the XMLString created in Step 2 into the XMLData field.

Step 3

INSERT INTO [dbo].[Report] ([DisplayName], [Description], [ReportType], [Category], [CreatedBy], [Protected], [ShowPivot], [ShowChart], [XMLData], [Definition])

VALUES ('Registered Users', 'Registered Users', 0, 'Visits', 'user', 0, 1, 0, XMLString, "Use this report to view information on the registered users of the site.")

When the above steps have been successfully completed, the report will appear in the Reports module of Commerce Server Business Desk. The next step is to run the report from Business Desk. For more information, see Running Reports.

Note

  • Do not modify the XML structure after the report is initially created. Make any modifications to the report using the pivot table component in the Analysis category in Business Desk. The pivot table view and layout changes are automatically persisted in the XML for the report when it is saved.


Creating Dynamic Reports Using Cubes

New dynamic report OLAP reports are described as a running example in the following sections. To create the report, follow these steps:

  1. Create the XML framework. For details on this step, see Create the XML Framework.

  2. Insert the XML and other report parameters into the Report table. For details on this step, see Create the Base Report Definition.

  3. The report shows up in the Reports section of the Analysis module of the Business Desk where it is modified using the pivot control.

A SQL script file, "Analysis - New dynamic OLAP report script.sql", is included in the SDK. This script includes the XML framework and can be modified to create the report. The file is located in the installation folder under \Microsoft Commerce Server\SDK\Samples\Business Analytics\Scripts.


Create the XML Framework

The following shows the XML framework required for the report. Note that values for the Data Source and Initial Catalog attributes are not specified in the connection string. These values are obtained from the Administration database at the time the report is run.

The name of the cube is specified between the DataMember tags.

For more information about the XML structure, see Analysis/Reporting XML Structures.

Step 1

XMLString =

'<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>Provider=MSOLAP;Data Source=;Initial Catalog=;
      Client Cache Size=25;Auto Synch Period=10000</x:ConnectionString>
   <x:DataMember>CubeName</x:DataMember>
</x:PivotTable>
</xml>'


Create the Base Report Definition

Insert the required parameters into the Report table including the XMLString created in Step 1 into the XMLData field.

Step 2

INSERT INTO [dbo].[Report] ([DisplayName], [Description], [ReportType],

[Category], [CreatedBy], [Protected], [ShowPivot], [ShowChart], [XMLData],

[Definition])

VALUES ('Dynamic OLAP Report', 'Dynamic OLAP Report', 1, 'Advertising', 'user',

0, 1, 0, XMLString, "Use this report to view advertising information.")

When the above steps have been successfully completed, the report will appear in the Reports module of Commerce Server Business Desk. The next step is to run the report from Business Desk. For more information, see Business Desk Analysis.

Note

  • Do not modify the XML structure after the report is initially created. Make any modifications to the report using the pivot table component in the Analysis category in Business Desk. The pivot table view and layout changes are automatically persisted in the XML for the report when it is saved.


Working with the Data Warehouse

This topic describes working with the Commerce Server 2000 Data Warehouse. Information is provided on the basic structures and primary business categories of the logical schema. Procedures to extend the logical schema and import custom data into the Data Warehouse are also presented.

This section contains:

  • Basic Structures of the Logical Schema. Defines the conceptual infrastructure of the Data Warehouse in terms of the class, data member, key, and relation.

  • Relations. Describes the logical relation types through examples.

  • Primary Business Categories. Explains the conceptual division of the logical schema into primary business categories: Campaigns, Catalog, Transactions, Profile Management, Web Log Import, and Web Topology. Each category may involve multiple business processes. These categories provide the conceptual entry points into the logical schema.

  • Extending the Data Warehouse. Provides examples of extending the Data Warehouse logical schema.

  • Importing Data into the Data Warehouse. Discusses the process of importing custom data into the Data Warehouse.

See Also

Data Warehouse Schema

OLE DB Provider for Commerce Server


Basic Structures of the Logical Schema

The Commerce Server Data Warehouse uses a logical schema to isolate applications from the underlying physical database. The logical schema defines the conceptual infrastructure of the Data Warehouse. The basic structures of the logical schema are the class, data member, key, and relation.

Class

The class is fundamental to the Data Warehouse logical schema. A class is a logical collection of data members. An instance of a class represents the user data imported into the Data Warehouse.

Data member

A data member stores a piece of data. A class contains an arbitrary number of data members that define the logical scope of the class. New data members may be added at any time after the class is created.

Key

A key is a data member or set of data members that uniquely identifies instances of a class. In the previous example, the key for the OrderFormLineItems class is a combination of the private lineitem_id data member and the inherited OrderForm_Id and OrderGroup_Id data members. This means that instances of an OrderFormLineItems class include a unique identifier for the line item plus unique identifiers for the OrderFormHeader and OrderGroup classes.

Relation

A relation connects two classes in a parent-child association. This relation defines the number of instances of each class. In the Commerce Server 2000 Data Warehouse, nearly all relations are one-to-many. This means that zero or more children may exist for each parent. For example, an individual order form has precisely one instance of the OrderFormHeader class. The order form may have multiple line items represented by multiple instances of the OrderFormLineItems class associated with the single OrderFormHeader class instance.

A relation provides the mechanism for sharing data members between classes. A parent class may have zero or more data members defined as inheritable. An inheritable data member is copied to any child class when the relation is created. Notice that this is a logical inheritance defined by the schema, and not inheritance from a C++ point of view.

For example, the OrderFormLineItems class inherits three data members from its parent class, OrderFormHeader. One of these data members, OrderForm_Id, is used to identify the order form containing the line item.

The ID and key of a parent class are always inherited by the child class. The ID is persisted in the child class, but to save space, the key and any other inherited members are not. The parent class ID stored in the child is used to retrieve the parent class key and the other inherited members.


Relations

This topic provides examples of the logical relation types and describes the background steps taken by the OLE DB Provider for Commerce Server to store the classes. The examples will model the relation types as applying to the relationship between a dog and a dog owner. The two classes are pseudo-defined as follows:

Class DogOwner
  {
  [Key] DogOwnerName
  DogOwnerAddress
  }

Class Dog
  {
  [Key] DogName
  DogBreed
  }

This section contains:

  • One-to-Many Relation. Models a one-to-many relation where each dog can have only one owner but each owner can have multiple dogs.

  • Many-to-Many Relation. Models a many-to-many relation where each dog can belong to multiple owners and each owner can have multiple dogs.

  • One-to-Many with Inheritance Relation. Similar to a one-to-many relation, however the dog can see and populate its owners members.


One-to-Many Relation

Logically, if you define a one-to-many (1:M) relation between a DogOwner (parent) class and a Dog (child) class, then a single DogOwner can have multiple Dogs.

Physically, the table representing the Dog will have a foreign key to the DogOwner.

When you insert data, you have two options:

  1. Relation Example 1. Insert only into the child.

  2. Relation Example 2A. First, insert into the parent.

    Relation Example 2B. Second, insert into the child.

Relation Example 1

Logical View

Insert into the child of a 1:M relation on a blank database.

Insert Dog(DogName="Spot", DogBreed="Cocker Spaniel",
 DogOwnerName="Bob")

Logically, when you instantiate the Dog class, you populate members DogName, DogBreed, and DogOwnerName. With a 1:M relation, you cannot see the non-key members of the parent (that is, DogOwnerAddress). You can later instantiate the DogOwner class separately to update the DogOwnerAddress.

Physical View

Physically, since the row backing the parent key (DogOwnerName) is not present, a new row is inserted into the DogOwner table.

The steps the provider performs for this insert to happen are roughly the following. All this is done automatically by the provider, and is transparent to the user.

  1. Search the parent table (DogOwner) by the given key (Bob). (That is, SELECT FROM DogOwner WHERE DogOwnerName='Bob'.)

  2. Since the parent record does not exist, insert the parent record, with the given key. (That is, INSERT INTO DogOwner (DogOwnerID, DogOwnerName) VALUES (1000, 'Bob'). )

  3. Insert the child record, with the other given values. (That is, INSERT INTO Dog (DogID, DogName, DogBreed, DogOwnerID) VALUES (1000, 'Spot', 'Cocker Spaniel', 1000.)

Table Dog

DogID | DogName | DogBreed | DogOwnerID
1000 | Spot | Cocker Spaniel | 1000

Table DogOwner

DogOwnerID | DogOwnerName | DogOwnerAddress
1000 | Bob | NULL

Relation Example 2A

Logical View

First, insert into the parent of a 1:M relation on a blank database.

Insert DogOwner (DogOwnerName="Bob", DogOwnerAddress="Redmond")

Logically, when you instantiate the DogOwner class (parent), you populate members DogOwnerName and DogOwnerAddress.

Physical View

Physically, a new unique ID (DogOwnerID) is assigned and the members populated. (That is, INSERT INTO DogOwner (DogOwnerID, DogOwnerName, DogOwnerAddress) VALUES (1000, 'Bob', 'Redmond'). ).

Filling in the parent class does not affect the child class.

Table Dog

DogID | DogName | DogBreed | DogOwnerID

Table DogOwner

DogOwnerID | DogOwnerName | DogOwnerAddress
1000 | Bob | Redmond

Relation Example 2B

Logical View

Second, insert into the child of the 1:M relation.

Insert Dog (DogName="Spot", DogBreed="CockerSpaniel",
 DogOwnerName="Bob")

Physical View

Physically, since the row backing the parent key (DogOwnerName) is present, a new row is not inserted into the DogOwner table.

The steps the provider performs are roughly the following.

  1. Search the parent table (DogOwner) by the given key (Bob). (That is, SELECT FROM DogOwner WHERE DogOwnerName='Bob'.)

  2. Since the parent record exists, take the DogOwnerID and place it into the child table.

  3. Insert the child record, with the other given values. (That is, INSERT INTO Dog (DogID, DogName, DogBreed, DogOwnerID) VALUES (1000, 'Spot', 'Cocker Spaniel', 1000.)

Table Dog

DogID | DogName | DogBreed | DogOwnerID
1000 | Spot | CockerSpaniel | 1000

Table DogOwner

DogOwnerID | DogOwnerName | DogOwnerAddress
1000 | Bob | Redmond


Many-to-Many Relation

Logically, if you define a many-to-many (M:M) relation between the DogOwner (parent) class and the Dog (child) class, then a dog can belong to multiple owners, and an owner can have multiple dogs.

Physically, there will be a table representing DogOwner and Dog, and a separate link table that contains the foreign keys to each table.

When you insert data, you have two options:

  1. Relation Example 3. Insert only into the child.

  2. Relation Example 4A. First, insert into the parent.

    Relation Example 4B. Second, insert into the child.

Relation Example 3

Insert into the child of a M:M relation on a blank database.

Insert Dog (DogName="Spot", DogBreed="Cocker Spaniel",
 DogOwnerName="Bob", "Jane")

Logically, when inserting into a class participating in an M:M relation, the child class should be instantiated. In the child class, there is a column which represents the key of the parent (DogOwnerName) – the same as in the 1:M case. However, the key of the parent in a M:M relationship is a multi-value member. Therefore a SAFEARRAY or VECTOR data type can be used when populating the data for this member.

As with the 1:M relation, the non-key members of the parent (DogOwnerAddress) are not visible when instantiating and populating the child class.

Table Dog (child)

DogID | DogName | DogBreed
1000 | Spot | Cocker Spaniel

Table LinkDogDogOwner

DogID | DogOwnerID
1000 | 1000
1000 | 1001

Table DogOwner (parent)

DogOwnerID | DogOwnerName | DogOwnerAddress
1000 | Bob | NULL
1001 | Jane | NULL

Relation Example 4A

First, insert into the parent of a M:M relation on a blank database.

Insert DogOwner (DogOwnerName="Bob", DogOwnerAddress="Redmond")
Insert DogOwner (DogOwnerName="Jane", DogOwnerAddress="Bellevue")

Table Dog (child)

DogID | DogName | DogBreed

Table LinkDogDogOwner

DogID | DogOwnerID

Table DogOwner (parent)

DogOwnerID | DogOwnerName | DogOwnerAddress
1000 | Bob | NULL
1001 | Jane | NULL

Relation Example 4B

Second, insert into the child of the M:M relation on a blank database.

Insert Dog (DogName="Spot", DogBreed="Cocker Spaniel",
 DogOwnerName="Bob", "Jane")

Table Dog (Child)

DogID | DogName | DogBreed
1000 | Spot | Cocker Spaniel

Table LinkDogDogOwner

DogID | DogOwnerID
1000 | 1000
1001 | 1001

Table DogOwner (Parent)

DogOwnerID | DogOwnerName | DogOwnerAddress
1000 | Bob | NULL
1001 | Jane | NULL


One-to-Many with Inheritance Relation

A one-to-many with inheritance relation is similar to the 1:M relation; however, it allows the child to see and populate all the members of the parent.

Relation Example 5

Insert into the child of 1:M with inheritance relation on a blank database.

Insert Dog (DogName="Spot", DogBreed="Cocker Spaniel",
 DogOwnerName="Bob", DogOwnerAddress="Redmond")

Table Dog

DogID | DogName | DogBreed | DogOwnerID
1000 | Spot | Cocker Spaniel | 1000

Table DogOwner

DogOwnerID | DogOwnerName | DogOwnerAddress
1000 | Bob | Redmond


Primary Business Categories

This topic describes the division of the logical schema into primary business categories. Each category contains a group of related classes used for a common business purpose. Some classes serve in more than one category.

The diagrams depicting the business categories show how the classes relate to one another through parent-child associations, or relations. Arrows connecting the classes denote these class relations. The arrows point from the parent classes to the child classes. A solid black arrow denotes a one-to-many relation. A white arrow indicates a one-to-many with inheritence relation. For more information about relations, see Relations.

The classes are colored to match the Data Warehouse Schema Diagram poster included with the product. Uncolored classes are not typically considered part of the business category they are shown in. These classes show some of the connections between the category and other related classes in the schema.

This section contains:

  • Campaigns. Describes the classes involved in marketing operations.

  • Catalog. Describes the catalog classes.

  • Transactions. Describes the basket and purchase order classes involved in making an online transaction.

  • Profile Management. Describes the classes used for managing user profiles.

  • Web Log Import. Describes the classes involved with recording Web events.

  • Web Topology. Describes the classes that define Web structure and access.


Campaigns

This topic describes the classes used to collect and describe marketing data. Marketing data includes custom advertisements, scheduled advertising content, and advertising campaigns. The individual classes are described after the logical diagram. For more information about these classes, see Data Warehouse Classes.

The following diagram shows the major classes used for campaign management and their relationships.

Campaign Classes

Industry
Code
Commerce
Event
Customer
Event
Type
Target
Target
Group
Xref
PageGroup
Xref
Campaign
Event
Campaign
ItemEvents
ByDate
AndUser
RegisteredUser
URI
Date
LogUser
Site
PageGroup
Target
Group
AdItem
DrnItem
Order
Discount
Campaign
Item
Campaign
Creative
Size
Creative
Type
Xref
Creative
Creative
Type
Campaign
Item
Types

AdItem

This class represents scheduled advertising content for a Web page. The class contains data members describing when the advertisement runs and codes linking the advertisement to the products it represents. The IndustryCode class provides a classification of the type of advertisement contained in the AdItem object.

Campaign

This class defines the business process involved in running a marketing campaign for an advertiser. The Campaign class associates a customer (advertiser) with a set of CampaignItem objects (advertisements, discounts, direct mailings, or related sell items). A Campaign object is associated with an EventType object, which describes the marketing event.

A Customer object may have multiple Campaign objects associated with it; this represents multiple advertising campaigns for the customer over time. A Campaign may contain multiple sets of content items (CampaignItem objects). Each set of content items, in turn, may have multiple items (for example, AdItem objects), and may target multiple user groups. Finally, a Web page may contain multiple content items, and a content item may be included in multiple, distinct pages. All of these possibilities are represented through the one-to-many relations between classes.

CampaignEvent

This class stores event information for marketing campaigns. An event for a marketing campaign includes hits on CampaignItem objects and business transactions involving CampaignItem objects.

CampaignItem

This class represents the content included in a marketing campaign (a Campaign object) and/or a scheduled advertisement (a Creative object). The content is represented by one or more of the following objects: AdItem, DmItem, or OrderDiscount.

A CampaignItem object may belong to a specific type of campaign item, specified by a link to a CampaignItemTypes object.

The content items may target specific groups of users; if this occurs, the CampaignItem object links to one or more TargetGroupXRef objects. The TargetGroupXRef class cross-references custom content items with targeted user groups.

Finally, the content items may be part of a Web page presenting multiple groups of custom content. A PageGroupXRef object cross-references the CampaignItem object with the page or pages containing the items.

A CampaignItem object may have multiple content items (for example, AdItem objects), and may target multiple user groups. A Web page may contain multiple content items, and a content item may be included in multiple, distinct pages. All of these possibilities are represented through the one-to-many relationships between classes.

CampaignItemTypes

This class represents categories for custom Web page content.

Creative

This class defines the business process involved in scheduling Web content for a customer (for example, an advertiser). The type of content is recorded by a link to a CreativeType object. One or more CampaignItem objects describe the scheduled content; this content includes advertisements, discounts, related sell items, or direct mailings. A CreativeSize object defines the area of the Web page used to contain the content.

A Customer object may have multiple Creative objects associated with it; this represents multiple advertisements for the customer over time. A Creative advertisement may contain multiple sets of content items (CampaignItem objects). Each set of content items, in turn, may have multiple items (for example, AdItem objects), and may target multiple user groups. Finally, a Web page may contain multiple content items, and a content item may be included in multiple, distinct pages. All of these possibilities are represented through the one-to-many relationships between classes.

CreativeSize

This class represents the size of custom content on a Web page.

CreativeType

This class categorizes custom content for Web pages.

CreativeTypeXRef

This class categorizes custom content for Web pages.

Customer

This class defines a customer who uses advertising through a Commerce Server 2000 Web site. A Customer object associates with an IndustryCode object, which defines the category of industry the customer belongs to. A link to one or more Campaign objects records the marketing campaigns for the customer. A link to one or more Creative objects records any custom advertisements for the customer.

DmItem

This class represents scheduled direct mailing items. The class contains data members detailing the direct mail content, including address and format information.

EventType

This class represents a categorization of marketing events. An EventType object describes a marketing event, and associates with one or more Campaign objects representing the marketing campaigns in the event.

IndustryCode

This class categorizes the type of industry a customer or advertising item represents.

OrderDiscount

This class represents discounted sale items. The class contains data members describing the items and conditions of the sale.

PageGroup

This class represents a group of custom content items used on a Web page for a marketing campaign. The page is part of one or more marketing campaign events; a link from the PageGroup object to one or more CampaignEvent objects represents this information. CampaignItem objects represent the custom content items, and link to the PageGroup object through one or more PageGroupXRef objects.

PageGroupXRef

This class cross-references custom Web page content with the Web page or logical set of Web pages that contain the content. A PageGroupXRef associates a CampaignItem object, which describes the custom content, with a PageGroup object. The PageGroup object represents a Web page or logical set of Web pages that contains custom content.

A single piece of custom content may span multiple Web pages; this is represented by a CampaignItem object linked to multiple PageGroupXRef objects. A single Web page or logical set of Web pages may have multiple separate content items; this is represented by a PageGroup object linked to multiple PageGroupXRef objects.

Target

This class defines a target for marketing and custom Web content, such as a particular type of user. A TargetGroup object links to one or more Target objects to form target groups. The custom content for the group of targets links to the TargetGroup object through a TargetGroupXRef object.

TargetGroup

This class defines a group of targets for marketing and custom Web content. One or more Target objects linked with a TargetGroup object forms a target group. A target group links to the content for the group through a TargetGroupXRef object.

TargetGroupXRef

This class cross-references a target group with the custom content for the target group. Target objects form target groups by linking with a TargetGroup object. The custom content, represented by a CampaignItem object, links to the TargetGroup object through the TargetGroupXRef object.


Catalog

This topic describes the classes used to represent catalogs and products. For more information about the individual classes, see Data Warehouse Classes.

CatalogGlobal

This class represents a global catalog which stores other catalogs.

Category

The class represents a category of a sales catalog.

CatHierarchy

The class represents a level of a hierarchical sales catalog.

Products

This class represents the products contained in a sales catalog.


Transactions

This topic describes the classes used to represent an online transaction. The transaction may be through a shopping basket or through a purchase order. The individual classes are described after the logical diagram. For more information about these classes, see Data Warehouse Classes.

The following diagram shows the major classes used for online sales and their relationships.

Transaction Classes

Products
Basket
Order
OrderForm LineItems
OrderForm Header
OrderGroup Addresses
Order
Group
EventType LogUser
URI
RegisteredUser Site

Basket

This class represents the business transaction involved in adding or removing a product from a shopping basket.

Order

This class stores requests to save or submit purchase orders.

OrderFormHeader

This class represents the header information for an order form. An OrderFormHeader object has contact information, buyer information, and other data necessary to process an order form. An OrderFormHeader object links to zero or more OrderFormLineItems objects, representing the ordered items. An OrderGroup object, representing a purchase order, links to zero or more OrderFormHeader objects.

OrderFormLineItems

This class represents the items in an order form. An OrderFormHeader object, representing the information used to process the order form, links to zero or more OrderFormLineItems objects.

OrderGroup

An OrderGroup object describes purchase order information. Specifically, the OrderGroup object links to one or more OrderFormHeader objects, and one or more OrderGroupAddresses objects. The OrderFormHeader class represents control information for the purchase order such as billing codes, tax codes, and other data required to process the purchase order. The OrderFormHeader object links to one or more OrderFormLineItems objects, which describe the specific products to be purchased. The OrderGroupAddresses object represents mailing and shipping information for purchase orders.

OrderGroupAddresses

This class represents mailing and shipping information for purchase orders.


Profile Management

This section describes the classes used to represent users of Commerce Server 2000 sites. Some of the business processes that use profiles are the tracking of visits and basket events. For more information about the individual classes, see Data Warehouse Classes.

Address

This class stores user and organization addresses. By default, the Commerce Server 2000 User profile data import DTS task imports profile data into this class.

RegisteredUser

This class represents an anonymous or registered user of a Commerce Server 2000 Web site. By default, the Commerce Server 2000 User profile data import DTS task imports UserObject profile data into this class.


Web Log Import

This section describes the classes used to store Web log import data. This data includes visits to a Web site, order form requisitions, and shopping basket transactions. The individual classes are described after the following figure. For more information about these classes, see Data Warehouse Classes.

The following figure shows the major classes used for log import and their relationships.

Web Log Import Classes

Web Log Import Classes
UriQuery
HitsInfo
Win32
Status
Http
Status
Request
OpenUser
Visit
Visit
Info
Referrer
Domain
User
Agent
Visit
URI
LevelNDir
LogUser
Task History
Hostname
Ref
IpRef
Referrer
Import
Options

HitsInfo

This class represents summary information about hits on a Web site.

HostnameRef

This class represents the host name reference for an IP address.

HttpStatus

This class represents the HTTP status codes as codes as stored in the Web log file.

ImportOptions

The class represents the options for import.

IPRef

This class represents an IP reference for a LogUser object. An IPRef object contains information on the IP address, number of look-ups associated with the address, and the status of the reference.

An IPRef object associates with a HostNameRef object, describing the host associated with the IP address.

LevelNDir

This symbolizes the six classes used to represent the six levels in a hierarchical directory structure. Each level contains a directory name and a link to a URI object.

LogUser

This class stores information on user interactions with a Commerce Server 2000 Web site. It is the primary link between the RegisteredUser class and the actions taken during a visit to the Web site.

Someone who visits a Commerce Server 2000 Web site is called a user. A LogUser object is created for every user and used to record information about that user (such as cookie data, user name, and so on). A Visit object is created every time the user visits the Web site. The new Visit object is linked to the LogUser object for that user. A LogUser object may represent an anonymous user, a user who is part of an organization, or a user who is registered on the Commerce Server 2000 Web site.

The IP information for the user is stored in an IPRef object associated with the LogUser object. A HostNameRef object stores host name information for the IPRef object.

OpenUserVisit

This class represents a visit to a Web site that was open when the containing log files were imported. This allows the open visit to be connected and closed in the following log imports. Once a visit is completed (closed), the OpenUserVisit object is deleted and a VisitInfo object is instantiated.

Referrer

This class represents the referring URL for a request.

ReferrerDomain

This class represents the referring domain for a request.

Request

A request is made in the context of a visit. A Request object connects to information describing the user and other details of the visit.

A request may be a part of a URI, in which case a URI object is linked to the Request object. The query string contained in the URI is represented by a URIQuery object linked to the Request object.

Alternatively, a Request may be made through a site URL. The site URL is represented by a SiteURL object linked to the Request object via a URI object. The SiteURL object may represent an actual Web site or a virtual server. If the Request object involves query strings through the site, the SiteURL object will have one or more LinkSVQStringName or LinkMVQStringName objects linking the SiteURL object to the query strings.

TaskHistory

This class tracks DTS task execution and the outcome of the execution. It maintains a history of all the imports (and deletes) that have occurred within the Data Warehouse.

URI

This class represents Uniform Resource Identifiers (URI) used to distinguish a URL, as well as make queries and transactions on Commerce Server 2000 Web sites. A URI object associates with the Commerce Server 2000 Web site through a SiteURL object.

A site is identified by a SiteURL object which stores the first portion, or top level, (for example, domain name) of a site and a linked URI object which stores the remainder of the URL for the site. If the URI object represents a hierarchical directory structure, it will be linked to the appropriate LevelNDir objects.

A business transaction may occur through a URI query; this is represented by a link between one or more Request objects and the URI object.

A URI object only represents a page, not graphics, banners, etc.

URIQuery

This class represents a URI query associated with one or more transaction requests.

UserAgent

This class represents the software infrastructure, such as the operating system and browser, used by a user in a visit to a Web site.

Visit

A Visit object records information describing user activity on a Commerce Server 2000 Web site. A Visit object is associated with a LogUser object and a Site object. The LogUser object contains information on the user. A Visit object describes the context of a visit, including the time and date of the visit.

VisitInfo

This class represents information about a completed visit to a Web site. If a visit has not been completed at log import time, an OpenUserVisit object is instantiated instead.

The VisitInfo class is the primary structure for recording user activity on a Commerce Server 2000 Web site. Someone who interacts with a Commerce Server 2000 Web site is called a user. The VisitInfo class records information describing user activity.

A VisitInfo object is associated with a LogUser object and a UserAgent object. The LogUser object contains information on the user. The UserAgent object contains information describing the software and computer the user is using.

A VisitInfo object describes the context of a visit, including the time and date of the visit. The VisitInfo object links to a Date structure that contains date information.

Win32Status

This class represents the Win32 status codes as stored in the Web log file.


Web Topology

This topic describes the classes used to represent Web configuration data, such as Web sites, virtual servers, and URLs/URIs. Web configuration data is associated with events such as visits and requests for business transactions. The individual classes are described after the following figure. For more information about these classes, see Data Warehouse Classes.

The following figure shows the major classes used for web topology and their relationships.

Web Topology Classes

Web Topology Classes
MVQString
Name
SVQString
Name
URI
SiteURL
Virtual
Server
Crawler
Site
Summary
Site
Server
Binding
Server
Group

Crawler

This class represents a Web crawler associated with a site.

MVQStringName

This class represents the names for custom multi-value query strings.

ServerBinding

This class represents a binding to a server for a virtual server.

ServerGroup

This class represents server groups.

Site

This class represents a Commerce Server 2000 Web site. All logged information pertaining to the use of a Commerce Server 2000 Web site is stored in or connected to a Site object. The URL for the site is a composition of a SiteURL object and a URI object.

The site may be part of a virtual server group. If this occurs, the site connects to a VirtualServer object through a SiteURL object. A business transaction may occur through a URI query; this is represented by a link between one or more Request objects and the URI object. Any visits to the site are linked through one or more Visit objects. If the site has a crawler associated with it, a Crawler object is created and linked to the Site object.

SiteSummary

This class stores summary information, such as total visits and total hits, pertaining to a site.

SiteURL

This class represents a URL-based connection between sites and virtual servers. The relationship between Web site and virtual server is represented by a link to a Site object and a link to a VirtualServer object.

The SiteURL object stores the first portion, or top level, (for example, domain name) of a site. If needed, a URI object is linked to the SiteURL object to form the entire URL for the site.

If there are any query strings (SVQStringName or MVQStringName objects) associated with the site URL, they will be linked to the SiteURL object via the LinkSVQStringName or LinkMVQStringName objects.

SVQStringName

This class represents custom single-valued query strings associated with a URL.

VirtualServer

This class represents a virtual server, which logically binds independent Web sites to one or more servers.

The Web sites associated with the virtual server are represented through a set of SiteURL objects. The binding to a server occurs through association with one or more ServerBinding objects.

The VirtualServer object may be a part of a larger group of servers. If this occurs, the VirtualServer objects will be linked through a ServerGroup object.

If business transactions are made through a URI to the virtual server, a Request object is linked through the appropriate SiteURL and URI objects.


Extending the Data Warehouse

This topic discusses extending the Commerce Server 2000 Data Warehouse logical schema. The architecture of the logical schema is governed by the Data Warehouse meta-model. Extending the logical schema requires detailed knowledge of the meta-model. For more information, see Data Warehouse Meta-model.

Caution

  • Wherever possible, use existing Data Warehouse structures to store data. Deletion from the logical schema is not supported under this version of Commerce Server 2000.

  • The SQL script csdwschema.sql, found in the root installation directory of Commerce Server, creates the logical schema. The script must be run on an empty database. If the schema needs to be reinstalled, delete the previous database, create a new database, and re-run the script.

The distinct steps involved in extending the Data Warehouse are:

  1. Connect to the Data Warehouse and turn on the schema change mode. For details on this step, see Data Warehouse, Analysis, and OLE DB.

  2. Create the classes. For details on this step, see Creating a New Class.

  3. Populate the classes with the appropriate data members. For details on this step, see Creating a New Class Data Member.

  4. If needed, explicitly create a key for the class. A class key can be implicitly created for a single member key. For details on this step, see Creating a New Class Key.

  5. If needed, explicitly create key members for the class. For details on this step, see Creating a New Class Key Member.

  6. If needed, create relations between the classes. If the new structure is to be linked to the existing logical schema, relations have to be created between the new classes and existing Data Warehouse classes. For details on this step, see Creating a New Class Relation.

  7. If needed, create data relation members between the classes. For details on this step, see Creating a New Class Relation Member.

A running example is provided to demonstrate these steps using an existing Data Warehouse class. An existing class is used to provide insight into how the structure fits into the logical schema. The class to be created is the existing OrderFormHeader class. A purchase order is made up of the OrderFormHeader class, representing the information required by an organization to process the order, and the OrderFormLineItems class detailing the purchases. For simplicity, this example will ignore the detailed line items and concentrate on creating the OrderFormHeader class and linking the OrderFormHeader class to an existing OrderGroup class.

The example does not show error checking or certain other formalities required for functional code.

Following this example, the process of filtering is discussed.

This section contains:

  • Creating a New Class

  • Creating a New Class Data Member

  • Creating a New Class Key

  • Creating a New Class Key Member

  • Creating a New Class Relation

  • Creating a New Class Relation Member

  • Creating a Summarization Class Using Filtering


Creating a New Class

This topic describes how to create a new class in the Data Warehouse. A class is created by inserting a new instance in the Class Definition (ClsDef) table, populating the attributes, and saving the changes. For information on the Class Definition table, see Class Definition Meta-data.

To begin the example, create the 'new' OrderFormHeader class, which represents header information required for the processing of order forms. For details on the existing class, see the OrderFormHeader class.

By default, a Binary (6) unique ID is automatically generated for the class.

Since the OrderFormHeader class has a multi-membered key, the GenerateKeyDef attribute is set to False (0). This attribute can be set to True for classes with a single key member (along with setting the IsPrimaryKey attribute to True on the Member definition corresponding to the key) to have the OLE DB Provider for Commerce Server automatically generate the key. For more information about creating a class key, see Creating a New Class Key.

The following table lists the attributes and values in the Class Definition table for the OrderFormHeader class. Unspecified optional attributes are not shown. In the R/O column, R = required, O = optional.

Attribute Name | Attribute Value | Type | R/O | Purpose
ClassDefName | "OrderFormHeader" | String | R | Uniquely identifies the class in the Data Warehouse logical schema.
SourceDefName | "DataSource" | String | R | Identifies the data source for storing instances of the class.
Description | "Header data for a order form." | String | O | Describes the logical class.
GenerateKeyDef | 0 | Integer | O | Do not generate the key automatically. The key will be specified manually using the "ClsKeyDef" meta-data component.
IsActive | 1 | Integer | O | The class is active (instances may be added).
IsPersistent | 1 | Integer | O | Persist instance data.

Running Example - Steps 1 and 2

Connect to the Data Warehouse and create the OrderFormHeader class.

'Create an ADO connection object
   Dim cnnConnection
   Set cnnConnection = CreateObject("ADODB.Connection")

'Create an ADO command object.
   Dim cmdCommand
   Set cmdCommand = CreateObject("ADODB.Command")

'Create an ADO record object.
   Dim recNew
   Set recNew = CreateObject("ADODB.Record")

'Open a connection (bind) to the provider.
   cnnConnection.Open "URL=mscop://InProcConnect/Server=MyServer:" _ &
    "Catalog=DWSchema:Database=Retail_dw:User=admin:Password=*****:" _ &
    "FastLoad=True"

'Set the connection in the command object
   Set cmdCommand.ActiveConnection = cnnConnection

'Turn on "Schema Change" mode
   cmdCommand.CommandText = "SchemaMode=1"
   cmdCommand.Execute

'Create an instance in the Class Definition table.
   recNew.Open "ClsDef/OrderFormHeader", cnnConnection, _
    adModeWrite, adCreateOverwrite

'Set the attributes
   recNew("SourceDefName") = "DataSource"
   recNew("Description") = "Header data for a order form."

'Create our own key
   recNew("GenerateKeyDef") = 0
   recNew("IsActive") = 1
   recNew("IsPersistent") = 1

'Save the new row.
   recNew("__Commit") = 1
   recNew.Fields.Update

Now that the new class exists, populate the class with data members.


Creating a New Class Data Member

This section describes how to create a new data member for a class in the Data Warehouse. The class must exist prior to creating the data member.

A class member is created by inserting a new instance in the Member Definition (MemDef) table, populating the attributes, and saving the changes. For information on the Member Definition table, see Member Definition Meta-data.

The running example (which originates in Creating a New Class) continues by creating the OrderForm_Id and ordergroup_id members of the OrderFormHeader class. For details on the existing class, see the OrderFormHeader class. Additional class members are created in the same way.

The following table lists the attributes and values in the Member Definition table for the OrderForm_Id member. Unspecified optional attributes are not shown. In the R/O column, R = required, O = optional.

Attribute Name | Attribute Value | Type | R/O | Purpose
MemberDefName | "OrderForm_Id" | String | R | Uniquely identifies the data member for the class.
ClassDefName | "OrderFormHeader" | String | R | Stores the name of the containing class.
TypeName | "UUID" | String | R | Identifies the data type of the data member.
Description | "Identifier for an order form." | String | O | Describes the logical concept underlying the data member.
IsActive | 1 | Integer | O | This is an active data member (that is, instances may be added).
IsPersistent | 1 | Integer | O | Persist instances of this data member in the underlying data store.
IsPrimaryKey | 0 | Integer | O | This attribute is set to True (1) when the GenerateKeyDef attribute is True in the Class definition to have the Provider automatically generate the class key. This is not allowed for multi-membered keys.
IsRequired | 1 | Integer | O | This data member is required.

The following table lists the attributes and values in the Member Definition table for the ordergroup_id member. Unspecified optional attributes are not shown.

Attribute Name | Attribute Value | Type | R/O | Purpose
MemberDefName | "ordergroup_d" | String | R | Uniquely identifies the data member for the class.
ClassDefName | "OrderFormHeader" | String | R | Stores the name of the containing class.
TypeName | "UUID" | String | R | Identifies the data type of the data member.
Description | "Unique identifier for the OrderGroup class." | String | O | Describes the logical concept underlying the data member.
IsActive | 1 | Integer | O | This is an active data member (that is, instances may be added).
IsPersistent | 1 | Integer | O | Persist instances of this data member in the underlying data store.
IsPrimaryKey | 0 | Integer | O | This attribute is set to True (1) when the GenerateKeyDef attribute is True in the Class definition to have the Provider automatically generate the class key. This is not allowed for multi-membered keys.
IsRequired | 1 | Integer | O | This data member is required.

Running Example - Step 3

Create the new OrderForm_Id and ordergroup_id data members for the OrderFormHeader class.

'Create an instance in the Member Definition table for the first member.
   recNew.Open "MemDef/OrderFormHeader/OrderForm_Id", cnnConnection, _
    adModeWrite, adCreateOverwrite

'Set the attributes
   recNew("ClassDefName") = "OrderFormHeader"
   recNew("TypeName") = "UUID"
   recNew("Description") = "Identifier for an order form."
   recNew("IsActive") = 1
   recNew("IsPersistent") = 1
   recNew("IsPrimaryKey") = 0
   recNew("IsRequired") = 1

'Save the new row.
   recNew("__Commit") = 1
   recNew.Fields.Update

'Create an instance in the Member Definition table for the second member.
   recNew.Open "MemDef/OrderFormHeader/ordergroup_id", cnnConnection, _
    adModeWrite, adCreateOverwrite

'Set the attributes.
   recNew("ClassDefName") = "OrderFormHeader"
   recNew("TypeName") = "UUID"
   recNew("Description") = "Identifier for an order form."
   recNew("IsActive") = 1
   recNew("IsPersistent") = 1
   recNew("IsPrimaryKey") = 0
   recNew("IsRequired") = 1

'Save the new row.
   recNew("__Commit") = 1
   recNew.Fields.Update

The next step in the example is to create the key used to uniquely identify an instance of the OrderFormHeader class.


Creating a New Class Key

This section describes how to create a key as the unique identifier for a class. The class must exist prior to creating the key. Keys may be single or multi-membered.

For a single valued key there are two methods of creation.

  • Implicitly create the key by setting the value of the GenerateKeyDef attribute of the Class Definition table and the IsPrimaryKey attribute of the Member Definition corresponding to the key both equal to True (1). Explicitly creating a new instance in the Class Key Definition table is then unnecessary.

  • Explicitly create the key in a two step process. The first step is to insert a new instance in the Class Key Definition (ClsKeyDef) table, populating the attributes, and saving the changes. For information about the Class Key Definition table, see Key Definition Meta-data. The second step is to define the member of the key through the Class Key Member (KeyMem) table. For information about this step, see Creating a New Class Key Member.

For multi-membered keys, only the second method is available.

We continue our example (which originated in Creating a New Class) by creating the (multi-membered) key for the OrderFormHeader class.

The following table lists the attributes and values of the Class Key Definition table for the OrderFormHeader class. Unspecified optional attributes are not shown. In the R/O column, R = required, O = optional.

Required Attribute Name | Attribute Value | Type | R/O | Purpose
ClassKeyDefName | "OrderFormHeaderKey" | String | R | Uniquely identifies the class key.
ClassDefName | "OrderFormHeader" | String | R | The name of the class for the key.
Description | "Unique key for the OrderFormHeader Class." | String | O | Describes the logical concept underlying the key.

Running Example - Step 4

Create a new key for the OrderFormHeader class.

'Create an instance in the Class Key Definition table.
   recNew.Open "ClsKeyDef/OrderFormHeaderKey", cnnConnection, _
    adModeWrite, adCreateOverwrite

'Set the attributes.
   recNew("ClassDefName") = "OrderFormHeader"
   recNew("Description") = "Unique key for the OrderFormHeader class."

'Save the new row.
   recNew("__Commit") = 1
   recNew.Fields.Update

The next step is to define the members of this key.


Creating a New Class Key Member

This topic describes how to define class member(s) to form an explicit single or multi-membered key for a class. The class for the key member(s) must already exist with a defined class key. The class must already contain the indicated data member(s).

A key member is created by inserting a new instance in the Key Member (KeyMem) table, populating the attributes, and saving the changes. For information on the Class Key Member table, see Key Member Definition Meta-data.

The following table lists the attributes and values of the Class Key Member table for the first member, "ordergroup_id", of the OrderFormHeader class key. Unspecified optional attributes are not shown. In the R/O column, R = required, O = optional.

Attribute Name | Attribute Value | Type | R/O | Purpose
KeyDefName | "OrderFormHeaderKey " | String | R | Name of the class key.
MemDefName | "ordergroup_id" | String | R | Identifies the data member that is part of the class key.
OrdinalPosInKey | 0 | Integer | R | The position of the data member in the key composition, starting with 0 (zero). The key is guaranteed unique only when the data members are processed in a specific order.
Description | "First member of OrderFormHeaderKey." | String | O | Describes the key member.

The following table lists the attributes and values of the Class Key Member table for the second member, "OrderForm_Id", of the OrderFormHeader class key. Unspecified optional attributes are not shown.

Attribute Name | Attribute Value | Type | R/O | Purpose
KeyDefName | "OrderFormHeaderKey " | String | R | Name of the class key.
MemDefName | "OrderForm_Id" | String | R | Identifies the data member that is part of the class key.
OrdinalPosInKey | 1 | Integer | R | The position of the data member in the key composition, starting with 0 (zero).
Description | "Second member of OrderFormHeaderKey." | String | O | Describes the key member.

Running Example - Step 5

Create the members of the OrderFormHeader class key.

'Create an instance in the Key Member table for the first member.
   recNew.Open "KeyMem/OrderFormHeaderKey/ordergroup_id", _
    cnnConnection, adModeWrite, adCreateOverwrite

'Set the attributes for the first key member.
   recNew("MemDefName") = "ordergroup_id"
   recNew("OrdinalPosInKey") = 0
   recNew("Description") = "First member of OrderFormHeaderKey."

'Save the new row.
   recNew("__Commit") = 1
   recNew.Update

'Create an instance in the Key Member table for the second member.
   recNew.Open "KeyMem/OrderFormHeaderKey/OrderForm_Id", _
    cnnConnection, adModeWrite, adCreateOverwrite

'Set the attributes for the second key member.
   recNew("MemDefName") = "OrderForm_Id"
   recNew("OrdinalPosInKey") = 1
   recNew("Description") = "Second member of OrderFormHeaderKey."

'Save the new row.
   recNew("__Commit") = 1
   recNew.Fields.Update

The next step is to create a relation between the 'new' OrderFormHeader class and the existing OrderGroup class.


Creating a New Class Relation

This section describes how to create a parent-child relation between classes in the Data Warehouse. The classes for the relation and the key for the parent class must exist prior to creating the relation. The relation name must be unique.

Notes

  • Member names in inheritance type relations should not be duplicated in the parent and child classes since all the parent class members are visible in the child class.

  • For one-to-many relations, the parent key member names should not be duplicated in the child class for the same reason.

  • Two classes should only have one relation defined between them.

  • If the IsPersistent attribute of a class is set to zero (0), and the class is then defined to be a parent class, the value of the IsPersistent attribute of the class is changed to one (1) by the Provider.

A class relation is created by inserting a new instance in the Relation Definition (RelDef) table, populating the attributes, and saving the changes. For information on the Relation Definition table, see Relation Definition Meta-data.

We continue our example (which originated in Creating a New Class) by creating a one-to-many (type 2) relation between the existing OrderGroup class and the 'new' OrderFormHeader class. For details on these classes, see the OrderGroup and OrderFormHeader classes. By creating this relation to an existing Data Warehouse class, we are linking to the logical schema. Linking to the existing logical schema is not necessary for extending the Data Warehouse.

The following table lists the attributes and values in the Relation Definition table for the relation between the OrderGroup and OrderFormHeader classes. Unspecified optional attributes are not shown. In the R/O column, R = required, O = optional.

Attribute Name | Attribute Value | Type | R/O | Purpose
RelDefName | "OrderGroupToOrderFormHeader" | String | R | Uniquely identifies the relation between the classes.
RelType | 2 | Integer | R | Defines the type of relation. The most common is type "2", which is one-to-many.
ParentClassName | "OrderGroup" | String | R | Identifies the parent class in the parent-child relation.
ParentClassKey | "OrderGroupKey" | String | R | Identifies the key for the parent class.
ChildClassName | "OrderFormHeader" | String | R | Identifies the child class in the parent-child relation.
Description | "OrderGroup to OrderFormHeader relation." | String | O | Describes the logical concept underlying the relation.

Running Example - Step 6

Create a relation linking the OrderFormHeader class to the OrderGroup class.

'Create an instance in the Relation Definition table.
   recNew.Open "RelDef/OrderGroupToOrderFormHeader", cnnConnection, _
     adModeWrite, adCreateOverwrite

'Set the required attributes
   recNew("ParentClassName") = "OrderGroup"
   recNew("ParentClassKey") = "OrderGroupKey"
   recNew("ChildClassName") = "OrderFormHeader"
   recNew("RelType") = 2
   recNew("Description") = "OrderGroup to OrderFormHeader relation."

'Save the new row.
   recNew("__Commit") = 1
   recNew.Fields.Update

Repeat the process above to add relations between the OrderFormHeader class and other classes (such as the Date class for the existing logical schema). The next step is to create a member relation between specific data members in the parent and child classes to be used as the foreign key for the OrderFormHeader class.


Creating a New Class Relation Member

This section describes how to map a member of a parent class to a member of its child class. This allows the mapped parent class member to be seen and populated by the child class. When a class relation is created, a key from the parent class is automatically mapped to the child class (as a non-key member) but not persisted in the child class. In this example, since the implicitly mapped parent class key is also used as part of the child class key, and all members of a key must be persisted, this behavior must be overridden. Explicitly creating the relation member allows the persistence of the member to be set.

The relation between the classes must already be defined. In addition, the classes must contain the respective data members prior to creating the relation member.

A relation member is created by inserting a new instance in the Relation Member (RelMem) table, populating the attributes, and saving the changes. For information on the Relation Member table, see Relation Member Definition Meta-data.

Our running example (which originated in Creating a New Class) concludes by creating a new relation member mapping the ordergroup_id data members of the OrderFormHeader and OrderGroup classes.

The following table lists the required attributes and values in the Relation Member table for the ordergroup_id member relation. Optional attributes are not shown. In the R/O column, R = required, O = optional.

Attribute Name | Attribute Value | Type | R/O | Purpose
RelationName | "OrderGroupToOrderFormHeader " | String | R | Identifies the class relation.
ParentMemName | "ordergroup_id" | String | R | Identifies the name of the parent class member.
ChildMemName | "ordergroup_id" | String | R | Identifies the name of the child class member.
Description | "OrderGroup.ordergroup_id to OrderFormHeader.ordergroup_id relation member." | String | O | Describes the logical concept underlying the relation.

Running Example - Step 7

Create a relation member mapping the ordergroup_id members of the OrderFormHeader and OrderGroup classes and save the updated schema.

'Create an instance in the Relation Member Definition table.
   recNew.Open _
   "RelMem/OrderGroupToOrderFormHeader/ordergroup_id/ordergroup_id", _
    cnnConnection, adModeWrite, adCreateOverwrite

'Set the attributes
   recNew("ParentMemName") = "ordergroup_id"
   recNew("ChildMemName") = "ordergroup_id"
   recNew("Description") = "OrderGroup.ordergroup_id to " & _
    "OrderFormHeader.ordergroup_id relation member."

'Save the new row.
   recNew("__Commit") = 1
   recNew.Fields.Update

'Commit the changes to the Data Warehouse schema.
   cmdCommand.CommandText = "CommitSchema"
   cmdCommand.Execute

'Turn off "Schema Change" mode.
   cmdCommand.CommandText = "SchemaMode=0"
   cmdCommand.Execute

'Close the connection.
   cnnConnection.Close

'Release the objects.
   Set recNew = Nothing
   Set cmdCommand = Nothing
   Set cnnConnection = Nothing

This completes the example of extending the Data Warehouse to include the OrderFormHeader class.

If the OrderFormHeader class was not a pre-existing Data Warehouse class, custom log import tasks would have to be created to populate the new class with user data. Additionally, custom calculations would have to be created to access the new structures for reporting.


Creating a Summarization Class Using Filtering

This topic describes how to create a summarization class using filtering. Filtering allows the summarization to filter out data based on the value of a member of the base class.

For a summarization class, the ClassType attribute of the class definition is set to "3". The InstExclusionExpr attribute of the class definition contains the expression string to filter on. The filtering feature supports the IN and NOT IN operators using the following syntax:

   Exclusion string = "BaseClassMemberName IN(value)"
   Exclusion string = "BaseClassMemberName NOT IN(value)"

Because the steps to extend the schema were shown in the previous sections, the following examples will just show the particular steps for creating the summarizations with filtering.

Example 1

'Set the class name
   Set recNew = CreateObject("ADODB.Record")
   recNew("ClassDefName") = "NewRequestAgg"

'Set the class type to aggregation
   recNew("ClassType") = 3

'Set the name of the base class to use for data
   recNew("BaseClassName") = "Request"

'Set the exclusion string (filter)
'This excludes all data from the aggregation where IsRequest = 1
   recNew("InstExclusionExpr") = "IsRequest IN(1)"

Example 2

'Set the class name
   recNew("ClassDefName") = "NewHTTPStatustAgg"

'Set the class type to aggregation
   recNew("ClassType") = 3

'Set the name of the base class to use for data
   recNew("BaseClassName") = "Request"

'Set the exclusion string (filter)
'This excludes all hits that have an HTTPStatus not in the given set
   recNew("InstExclusionExpr") = _
    "HttpStatus NOT IN(0,200,202,203,204,304)"


Importing Data into the Data Warehouse

This section describes how to import custom data into the Data Warehouse using Microsoft Visual Basic Scripting Edition script (VBScript).

There are five steps to the custom import process:

  1. Reduce the import data set to include only essential data by clearly defining the purpose of the data import. The import time is directly proportional to the amount of data. See the Planning a custom import task topic.

  2. Match the essential data in the line-of-business (LOB) store or log file to existing structures in the Data Warehouse. For example, if user data is required, use the RegisteredUser class to hold the data. See the Planning a custom import task topic.

  3. Extend the Data Warehouse schema to incorporate LOB data not available in existing structures. For example, if the purpose of the data import is to analyze the favorite ice cream flavors of registered users, then a fav_flavor_code data member can be added to the RegisteredUser class. Only extend the existing schema if absolutely necessary. See the Preparing the Data Warehouse topic.

  4. Parse the LOB data into an intermediate form. This is called staging the data. It increases the reliability of the import and reduces the time spent interacting with the Data Warehouse server. Extract the essential data and place it in a format conducive to direct import into the Data Warehouse schema. See the Staging the data topic.

  5. Create a process to import the data from the staging area into the Data Warehouse. Use the Commerce Server 2000 OLE DB provider to import the data into the Data Warehouse schema. See the Executing the custom import task topic.

A running example is used to explain this process. The example involves an ice cream company with a volume of user data. The goal is to use the Data Warehouse to analyze the regional distribution of favorite ice cream flavors.

This section contains:

  • Planning a custom import task

  • Preparing the Data Warehouse

  • Staging the data

  • Executing the custom import task

See Also

Extending the Data Warehouse


Planning a custom import task

This topic discusses the first two steps in the process of importing custom data into the Commerce Server 2000 Data Warehouse.

A running example is used to explain this process. The example involves an ice cream company with a volume of user data in log files. They want to extract information about customers who registered on their Web site over the last year. Part of the registration process involved answering a questionnaire about their favorite flavor of ice cream. To enhance local promotions, the company wants to analyze the regional distribution of favorite flavors.

The log files contain the following data:

Data Property Name | Example Values
Title | "Mr" "Ms" "Dr"
FullName | "Kevin Verboort"
Email_Address | "kevinv@microsoft.com
TelNum | "800 123-4567x123"
FaxNum | "800 123-4567x321"
AddressLine1 | "Public's Animal Shelter"
AddressLine2 | "223 Normal Coast Way, #85"
City | "Everytown"
State | "WA"
ZipCode | "98434-3424"
Fav_Flavor_Code | 34
Fav_Flavor_Comments | "Can never get enough chocolate!"

The goal is to analyze the regional distribution of favorite flavors. This will require, at minimum, the State and Fav_Flavor_Code data. Because the company wants a more granular distribution, the City data must also be included.

To promote their product, the names and e-mail addresses of the registered users are required. This will allow the company to send customized direct mailings to their customers.

The resulting list of essential data contains:

Data Property Name | Data Type
Title | String
FullName | String
Email_address | String
City | String
State | String
Fav_Flavor_Code | Integer (unsigned)

This completes the first step.

The second step involves finding a structure in the Data Warehouse schema that fits this data. The RegisteredUser structure in the Profiles category of the Data Warehouse logical schema is the closest match.

The RegisteredUser class contains data members for title (UserTitle), name (FirstName, LastName), and e-mail address (Email). It does not contain data members for city, state, or favorite ice cream flavor. The following table shows the match between the log data and the Data Warehouse structure.

Source Data | RegisteredUser Data Member
Commerce.GenID object | UserID
Log data: Title | UserTitle
Log data: FullName | FirstName, LastName
Log data: Email_Address | Email
Log data: City | New Data Member: City
Log data: State | New Data Member: State
Log data: Fav_Flavor_Code | New Data Member: Fav_Flavor_Code

The final essential data member is the unique key for the RegisteredUser class. This key is the UserId data member, which is a UUID. In order to fit custom data into the Commerce Server 2000 Data Warehouse, this key must be correctly assigned. Commerce Server 2000 provides a UUID generator. The Commerce.GenID object creates the UUIDs used by Commerce Server 2000 Profiling System to identify users. Using this object to create the UserID keys for the import data guarantees compatibility with any existing data or future data imported into the Data Warehouse. This completes the data required to create valid RegisteredUser objects containing the necessary information.

For the next step, see Preparing the Data Warehouse.


Preparing the Data Warehouse

This topic discusses the third step in the process of importing custom data into the Commerce Server 2000 Data Warehouse. For the previous two steps, see Planning a Custom Import Task. In the second step, it was determined that the RegisteredUser class must be extended to encompass line-of-business (LOB) data. Specifically, three new data members are needed: City, State, and Fav_Flavor_Code.

Caution

  • Extend the existing Data Warehouse schema only if absolutely necessary. Any changes made to the Data Warehouse are irreversible.

The process of adding data members to an existing class is detailed in Creating a New Class Data Member. The MemDef meta-data attribute settings are summarized in the following table.

MemDef Attribute | City | State | Fav_Flavor_Code
MemDefName | "City" | "State" | "Fav_Flavor_Code"
TypeName | "String" | "String" | "ULONG"
IsPrimaryKey | 0 | 0 | 0
IsExported | 0 | 0 | 0
IsActive | 0 | 0 | 0
IsPersistent | 1 | 1 | 1
GenerateColumnDef | 1 | 1 | 1
Description | "User Loc:City" | "User Loc:State" | "Ice Cream Flavor"

The new data members have now been added to the RegisteredUser class. For the next step, see Staging the Data.


Staging the Data

This topic discusses the fourth step in the process of importing custom data into the Commerce Server 2000 Data Warehouse. For the previous step, see Preparing the Data Warehouse.

The main task in staging the data involves extracting the pertinent information from the data source. This information is formatted for direct import into the Data Warehouse schema structure.

The following table summarizes the source, process, and destination for the data.

Source Data (Existing Log file or Commerce Object) | Processing | Destination (New Staged Data file)
Title (string) | Copy | UserTitle (string)
Fullname (string) | Parse First Name | FirstName (string)
FullName (string) | Parse Last Name | LastName (string)
Email_address (string) | Copy | Email (string)
City (string) | Copy | City (string)
State (string) | Copy | State (string)
Fav_Flavor_Code (Integer) | Convert to ULONG | Fav_Flavor_Code (ULONG)

As the input log file is processed, keep track of the number of entries. This will help to simplify the last step in the import process.

For the running example, the data in the staged data file is grouped by user. The final step requires a function that can extract the next data value from the staged data file. No effort is made in this example to optimize the processing.

The data is now staged and ready for import. For the final step, see Executing a Custom Import Task.


Executing the Custom Import Task

This topic discusses the final step in the process of importing custom data into the Commerce Server 2000 Data Warehouse. For the previous step, see Staging the Data.

This step involves creating a custom ADO script to read data from the staged data file and insert it into the Data Warehouse schema structure. It relies on the OLE DB provider to ensure the correct mapping of data. This process is not optimized. The use of a script is not recommended for very large import tasks; it appears here for demonstration purposes only.

The use of the following ADO script requires the existence of a parser function, GetNextValue, to extract the next value from the staged data file. The format of the staged file is assumed to fit the following pattern:

#users
user1title user1fname user1lname user1email user1city user1state user1ffc
user2title user2fname user2lname ...

The ADO script uses the OLE DB Provider for Commerce Server. The provider creates the necessary key values for each entry in the database; it also properly formats and partitions the data to the underlying data store. Use of the provider is highly recommended instead of manipulating the data store directly.

'Create the ADO DB record object.
   Dim rec
   Set rec = CreateObject("ADODB.Record")

'Create the ADO DB Connection object.
   Dim cnnConnection
   Set cnnConnection = CreateObject("ADODB.Connection")

'Create the connection string.
'The "fastload=true:" option is required.
   Dim strConn
   strConn = "URL=mscop://InProcConnect/Server=DWServer:" & _
    "catalog=dwschema:database=Retail_dw:user=admin:" & _
    "password=*****:fastload=true:"

'Connect to the Data Warehouse.
   cnnConnection.Open strConn

'Retrieve the number of users to process.
   Dim nUsers
   nUsers = GetNextValue()

'Instantiate the commerce GUID generator.
   Dim oGenID
   Set oGenID = CreateObject("Commerce.GenID")

'Iterate through the users.
   Dim i
   For i = 0 to nUsers

      'Create a new blank RegisteredUser row.
      rec.Open "instance/registereduser", cnnConnection, _
       adModeWrite, adCreateCollection

      'Create the GUID.
      rec("UserID") = oGenID.GenGUIDString()

      'Get user title.
      rec("title") = GetNextValue()

      'Get user first name.
      rec("firstname") = GetNextValue()

      'Get user last name.
      rec("lastname") = GetNextValue()

      'Repeat for email, city, and state.

      'Get fav_flavor_code.
      rec("fav_flavor_code") = GetNextValue()

      'Bookkeeping.
      rec("UserIDChangedBy") = "DW Custom Import"
      rec("DateCreated") = Cdate(Now())
      rec("DateLastChanged") = Cdate(Now())

      'Save the new row.
      rec("__Commit") = 1
      rec.Fields.Update

      'Done with current user.
      rec.Close
   Next

'Close the connection and release the objects.
   cnnConnection.Close
   Set oGenID = Nothing
   Set cnnConnection = Nothing


Integrating with Passport

Microsoft Passport delivers the following two services, either of which may be integrated into a Microsoft Commerce Server Web site. These services may be integrated separately, or they may both be integrated into the same site:

  • Passport Single Sign In. Passport offers an authentication service that allows Passport users to use a single user name and password for authenticated access to any Web site that employs Passport authentication.

  • Passport Express Purchase. Passport offers a wallet service that allows Passport users to store their credit card and address information with Passport, and then have that information made available to any Web site that employs the Passport wallet.

Customers benefit from Passport integration because they only have a single user name and password to remember, they can avoid entering credit card and address information for every electronic purchase they make, and their sensitive information is maintained in fewer locations. Furthermore, Web sites that want to use Passport are required to adhere to a standardized privacy policy.

Merchants benefit from Passport integration because the improved user experience should encourage more customers to join a Web site as registered users, and should result in fewer abandoned shopping carts. The standardized privacy policy should also result in your users displaying a greater willingness to share personal information.

This section discusses these two integration opportunities separately.

This section contains:

  • Integrating Passport Single Sign In. Describes the Passport authentication service and the ways in which it can be integrated into a Commerce Server Web site.

  • Integrating Passport Express Purchase. Describes the Passport wallet service and the ways in which it can be integrated into a Commerce Server Web site.

  • Next Steps in Integrating with Passport. Provides information about where to continue the process of learning more about Passport and how to integrate it into a Commerce Server Web site.


Integrating Passport Single Sign In

Microsoft Commerce Server 2000 provides for the separation of authentication and profiles. Commerce Server profiles can be used subsequent to the authentication process, even if Commerce Server is not used for authentication. This separation allows you to integrate the Microsoft Passport Single Sign In authentication service, replacing the built-in authentication modes supplied with Commerce Server, while still preserving the integrated capabilities of the Commerce Server Profile service.

Passport Authentication Processing Steps

Passport authentication involves the following steps:

  1. An unauthenticated user attempts to access a protected page on a merchant Web site.

  2. Code on the page calls the Passport Manager object, which re-directs the user's browser to the logon page on the Passport Web site. The re-direction URL includes a query string that contains, among other items, a return URL.

  3. The user supplies their standard Passport credentials on the logon page on the Passport Web site.

  4. Assuming that the credentials of the user are accepted, the Passport Web site re-directs the user's browser back to the merchant Web site, including encrypted Passport profile data in the query string.

  5. The Passport Manager object parses and cleans the query string data, and sends a session cookie to the user's browser.

  6. Session or persistent cookies are set depending on the login preferences of the user.

  7. Subsequent authentication to the protected merchant pages is based on the Passport cookies.

Recommended Integration Strategy

The recommended approach for Passport authentication integration involves integrated use of the Commerce Server Profile service with the Passport Single Sign In authentication service. This approach preserves the benefits of the built-in integration between the Commerce Server Profile service and the other features of Commerce Server.

Once a user is successfully authenticated through Passport, their corresponding user profile is retrieved from the Commerce Server Profile service and is used for the remainder of their session. In order to accomplish this type of integration, the following methodology is recommended:

  • The user profile will need to be modified to include a new property called PassportID. This property will be set to the 64-bit unique user ID employed by the Passport service, known as the Pairwise Unique ID (PUID). For more information about PUIDs, see the Passport SDK documentation.

  • After Passport has successfully authenticated a user, retrieve the MemberIDHigh and MemberIDLow properties from the Passport core profile and calculate the corresponding PUID using the following formula:
    dim sPassportKey, sHex
sHex = Hex(nMemberIDHigh)
sPassportKey = String(8 - len(sHex), "0") & sHex
sHex = Hex(nMemberIDLow)
sPassportKey = sPassportKey & String(8 - len(sHex), "0") & sHex

    For more thorough examples of calculating the PUID, see the Passport Web site at www.passport.com/business/.

  • Use the calculated PUID to retrieve the corresponding Commerce Server user profile, using code that looks something like this:
    Dim csUserProfile
Set csUserProfile = ProfileService.GetProfileByKey( _
                                      "PassportID", _
                                      sPassportKey, _
                                        "UserObject")
  • Set the ticket type and user ID for this user using the AuthManager object. The following two lines of code, from the function LogOnUser in the file Include\Profilelib.asp of the Passport Sitelet in the Commerce Server SDK, demonstrate how these values can be set:
    objAuthMgr.SetAuthTicket strUserName, fCookieSupport, strTimeout
objAuthMgr.SetUserID enumMSCS_ProfileTicketType, _
                     objProfile.Fields(USER_ID).Value

    For more information, see AuthManager.SetAuthTicket and AuthManager.SetUserID, respectively.

  • If the corresponding Commerce Server user profile is not found, one should be created for the new user, storing their PUID in the PassportID property, using a test that looks something like this:
    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
  • If the corresponding Commerce Server user profile is found, you may want to consider synchronizing the latest Passport profile data with the corresponding data in the Commerce Server profile. In this way, the user will get the expected results — that changes to their personal data on the Passport Web site is used by participating Passport merchant Web sites.

    The Passport profile contains a ProfileVersion property that allows you to determine if the user's profile data has changed since their last visit.

You could also develop an authentication solution that offers Passport Single Sign In for Passport users, and uses the Commerce Server authentication mechanisms for non-Passport users.


Integrating Passport Express Purchase

Microsoft Passport includes a wallet feature that allows a user to provide the data required to make electronic purchases, such as credit card numbers and shipping addresses, to a single, central location: the Passport Web site. Merchants who participate in the Passport program can retrieve this information from the Passport wallet Web site, saving the user from entering the same data every time they make a purchase. Unlike the Passport Single Sign In authentication service, the Passport Express Purchase service does not require any Passport-specific Component Object Model (COM) objects to be installed on the merchant Web server. Merchants can use the Passport Express Purchase service either with or without using Passport Single Sign In for authentication.

Passport Express Purchase Processing Steps

Passport Express Purchase use involves the following steps:

  1. A user chooses Passport Express Purchase checkout on a merchant Web site page.

  2. The user's browser is re-directed to the Wallet page on the Passport Web site. The re-direction URL includes a query string that contains a return URL, credit card preference, and co-branding data.

  3. If not already signed into Passport, the user is asked to supply their standard Passport credentials.

  4. On the Wallet page, the user makes choices regarding the credit card to use, the billing and shipping addresses, and so on. The user can enter new credit card information or a different shipping address, or edit entries already in their wallet.

  5. The Passport Web site re-directs the user's browser back to the merchant Web site, posting a form that includes the chosen Wallet information, formatted using Electronic Commerce Markup Language (ECML).

  6. The merchant Web site makes use of the returned Wallet data to complete the purchase.

Recommended Integration Strategy

The recommended approach for Passport Express Purchase integration involves streamlining the purchase process as much as possible. Since the user has already reviewed their credit card and address data on the wallet page, you should avoid asking the user to explicitly review their personal data again on your Web site. Validate the data returned to you by the Passport wallet site in whatever manner you have chosen, collect any additional information you require, and then display an order summary page on which the user can provide final approval of their order. Information supplied by the Passport wallet site can be displayed again on the summary page (the complete credit card number is a possible exception) for implicit review.

Important

  • Avoid using the data returned by the Passport wallet site to do nothing more than provide default information on a form page that the user cannot avoid. This defeats much of the "express purchase" purpose of using Passport in the first place.

You should seriously consider co-branding the Passport pages so that they blend seamlessly into your Web site. When you register with Passport, you can supply the URL of a customizable style sheet (.CSS) file in which you can define the colors and properties of almost all elements on the Passport login, registration, and wallet pages. You can also inject your own content onto most wallet pages, including your own site-specific questions. Using this mechanism, you can collect whatever additional information you require to complete the purchase on the Passport wallet page, which allows your users to go directly to an order summary page when they return to your Web site.


Next Steps in Integrating with Passport

In order to successfully integrate Passport Single Sign In authentication service or the Passport Express Purchase service into a Commerce Server Web site, you will need to do the following:

  • Use the Passport Web site to learn more about Passport and the services it provides. The site has white papers, demonstrations, implementation guides, sample code, as well as information about the Passport discussion group and how to direct questions to the Passport team.

  • Sign up as a Passport site at www.passport.com/business. After you have done this, you can download the Passport Software Development Kit (SDK) and study its capabilities in more detail.

  • Make sure your Web site conforms to the standards required for participation in Passport Web sites. These standards concern privacy, security, and so on.

  • If you intend to use the Passport Express Purchase service, obtain a certificate from an authorized Certification Authority. Since the Passport Express Purchase service uses Secure Socket Layer (SSL) technology for security, a certificate is required.

  • Study the Passport Sitelet source code supplied in the Commerce Server SDK. For more information, see the SDK Road Map.


Programmierreferenz

Dieser Abschnitt enthält Verweise auf die Referenz für die Programmierung mit der Microsoft Commerce Server 2000-Plattform. Hierzu zählen Informationen zu den Component Object Model (COM)-Objekten, die aufgerufen werden können, den COM-Schnittstellen, die implementiert werden können, den bereitgestellten Pipelinekomponenten, XML-Strukturen, Datenbankschemas, Business Desk-Dienstprogrammen und vielem mehr.

Dieser Abschnitt beinhaltet folgende Themen:

  • Object Reference (englisches Thema). Enthält die Referenzdokumentation zu den im Lieferumfang von Commerce Server enthaltenen COM-Objekten und den jeweils verfügbaren Eigenschaften und Methoden. Dabei handelt es sich um die Objekte, die explizit erstellt und aufgerufen werden. Es gibt parallele Referenzseiten, auf denen die Objekte ausgehend von zwei verschiedenen Programmiersprachen beschrieben werden:
    • Microsoft Visual Basic/Microsoft Visual Basic Scripting Edition (VBScript)

    • C++
  • Interface Reference (englisches Thema). Enthält die Referenzdokumentation zu den COM-Schnittstellen, die so implementiert werden können, dass Commerce Server die Objekte aufrufen kann. Hierzu zählen Pipelineschnittstellen, die zur Erstellung eigener Pipelinekomponenten implementiert werden, und die Site Packager-Schnittstelle, mit der sich Objekte erstellen lassen, die von Site Packager und Commerce Server-Manager aufgerufen werden können.

  • Pipeline Component Reference (englisches Thema). Enthält die Referenzdokumentation zu den im Lieferumfang von Commerce Server enthaltenen Pipelinekomponenten.

  • OLE DB Provider for Commerce Server (englisches Thema). Enthält die Referenzdokumentation zum OLE DB Provider, der den Zugriff auf den Profildienst und das Datawarehouse in Commerce Server ermöglicht.

  • Business Desk Reference (englisches Thema). Enthält die Referenzdokumentation zu Commerce Server Business Desk sowie Einzelheiten zu den Ereignissen, Eigenschaften und Methoden der HTML-Komponenten (HTC). Enthält darüber hinaus detailierte Informationen über Konstanten, globale Variablen und Dienstprogrammroutinen, die von Business Desk bereitgestellt werden.

  • XML Reference (englisches Thema). Enthält die Referenzdokumentation zur Struktur der verschiedenen in Commerce Server verwendeten XML-Dokumente.

  • Schema Reference (englisches Thema). Enthält die Referenzdokumentation zu verschiedenen Datenbankschemas, die in den wichtigsten Bereichen von Commerce Server verwendet werden, in denen eine detaillierte Kenntnis des Schemas erforderlich ist.

  • Database Table Reference (englisches Thema). Enthält Informationen zu vielen Commerce Server-Datenbanken und den darin enthaltenen Tabellen. Diese Informationen können beim Einrichten einer SQL-Replikation hilfreich sein.

  • Style Sheet Reference (englisches Thema). Enthält Informationen zu Cascading Stylesheets (CSS), die von Commerce Server Business Desk verwendet werden.


Object Reference

This section provides detailed information about the Component Object Model (COM) objects supplied with Microsoft Commerce Server 2000. 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:

  • 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.

  • Visual Basic Invocation. Describes the Commerce Server COM objects from the perspective of Microsoft Visual Basic and VBScript.

  • C++ Invocation. Describes the Commerce Server COM objects from the perspective of C++.


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://msdn.microsoft.com.

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 (VB), and in Visual Basic Scripting Edition (VBS) 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.


Visual Basic Invocation

This section describes the Component Object Model (COM) objects supplied with Commerce Server 2000 and how to invoke their properties and methods from Microsoft Visual Basic and Microsoft Visual Basic Scripting Edition (VBScript). The following table lists each object and provides a brief description of its purpose.

Object | Description
AdminEventLog | Writes error, informational, warning, and success messages to the event log.
AdminFiles | Provides read-only access to server-side binary and text files.
AdminSite | Provides read/write access to site configuration properties and allows site administration. This object is supplied for backward compatibility purposes only.
AdminWebServer | Allows enumeration of Web sites and their properties.
AppConfig | Allows retrieval of country, region codes, and names from the site configuration store.
AppFrameWork | Provides formatting and validation methods that simplify forms processing in Active Server Pages (ASP).
AsyncRpt | Provides asynchronous rendering and exporting of static reports.
Auction | Provides methods for supporting auctions.
AuthManager | Provides a secure, standardized, and extensible way to manage authentication of users.
BizDeskSecurity | Allows specific Commerce Server Business Desk modules to be hidden from particular users.
CacheManager | Provides generic caching services.
CatalogManager | Allows management of catalogs across the entire Product Catalog System.
CatalogSets | Allows filtering of multiple custom catalogs for different users and organizations.
CatalogToVendorAssociation | Allows a catalog to be associated with particular vendor.
Category | Allows management of a product hierarchy within a particular catalog.
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.
ContentSelector | Allows specification and retrieval of page content.
DataFunctions | Provides methods to perform locale-based data type handling and value range checking.
DBStorage | Provides methods for mapping Dictionary and SimpleList objects to and from a database, primarily for the storage of receipt and order information.
Dictionary | Supports the creation, storage, and retrieval of name/value pairs in memory.
DictionaryXMLTransforms | Transforms data in a Dictionary object into Extensible Markup Language (XML), and XML data into a Dictionary object.
EuroDisplay | Converts and formats currency amounts for use where multiple currencies must be displayed.
ExpressionEval | Allows selection and evaluation of one or more expressions against a set of profiles.
ExpressionStore | Provides methods to create, save, modify, and retrieve expressions.
ExprEvalContext | Stores a specific evaluation context (set of profiles) that can be used for multiple expression evaluation operations.
ExprFltrQueryBldr | Translates an expression in XML form into a SQL filter query string.
GenID | Provides methods to generate globally unique identifiers (GUIDs), and to create and maintain multiple, global sequential counters which are persisted in a database.
GlobalConfig | Provides methods for the configuration management of global resources.
ListManager | Provides methods to create, destroy, manage, and manipulate lists.
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 | Stores text strings in multiple languages. One popular usage involves the Order Processing pipeline (OPP) components describing error conditions generated during order form processing.
MicroPipe | Runs a single pipeline component from an ASP page without using a pipeline configuration file (.pcf).
MtsPipeline | Executes a non-transacted Microsoft Commerce Server 2000 pipeline.
MtsTxPipeline | Executes a transacted Microsoft Commerce Server 2000 pipeline.
OrderForm | Provides in-memory storage of user and purchase information.
OrderGroup | Allows management of complex orders, such as those containing items from different suppliers, and multiple shipments.
OrderGroupManager | Provides methods to manage OrderGroup and OrderForm objects.
OrderPipeline | Runs a Microsoft Commerce Server 2000 pipeline, and is particularly useful in the Content Selection Framework.
Page | Provides formatting and validation methods that simplify forms processing in ASP pages. This object is supplied for backward compatibility purposes only.
PooledPipeline | Executes a non-transacted Microsoft Commerce Server 2000 pipeline that uses COM+ object pooling for better performance.
PooledTxPipeline | Executes a transacted Microsoft Commerce Server 2000 pipeline that uses COM+ object pooling for better performance.
PredictorClient | Provides methods for downloading prediction models, setting prediction context, and performing predictions.
PredictorServiceAdmin | Allows retrieval of prediction models and prediction model configurations.
PredictorServiceSiteAdmin | Allows management of prediction models and prediction model configurations.
PredModelBuilder | Provides properties and methods to control multiple build threads of prediction models.
Product | Allows manipulation of the relationships between a product variant and a product category.
ProductCatalog | Allows creation, deletion, and modification of catalog data.
ProfileObject | 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.
ReportRenderer | Provides synchronous rendering and exporting of static reports.
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 | Creates shipping cost preview information.
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.
SimpleList | Allows creation of an array of Variants that supports enumeration.
SiteConfig | Provides for configuration management of site resources.
SiteConfigReadOnly | Provides methods to read global and site configuration values from the Administration database.
StandardSManager | Facilitates the run time creation and retrieval of user IDs. This object is supplied for backward compatibility purposes only.


AdminEventLog Object

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

The methods of the AdminEventLog object are shown in the following table.

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.Initialize

Use this method to initialize the object.

Definition

Sub Initialize(
bstrServer As String
)

Parameters

bstrServer

A String that contains the server name.

Return Values

None.

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 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

' oAdminEventLog is a Commerce.AdminEventLog object.

oAdminEventLog.Initialize("ServerName")

See Also

AdminEventLog Object


AdminEventLog.WriteErrorEvent

Use this method to write an error event to the Commerce Server event log.

Definition

Sub WriteErrorEvent(
String bstrSiteName,
String bstrMessage
)

Parameters

bstSiteName

A String that contains the site name.

bstrMessage

A String that contains the error event message string.

Return Values

None.

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 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

' oAdminEventLog is a Commerce.AdminEventLog object.

oAdminEventLog.WriteErrorEvent("MySite", _
                               "Database does not exist")

See Also

AdminEventLog Object

AdminEventLog.WriteInformationalEvent

AdminEventLog.WriteWarningEvent


AdminEventLog.WriteInformationalEvent

Use this method to write an informational event to the Commerce Server event log.

Definition

Sub WriteInformationalEvent(
String bstrSiteName,
String bstrMessage
)

Parameters

bstSiteName

A String that contains the site name.

bstrMessage

A String that contains the informational event message string.

Return Values

None.

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 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

' oAdminEventLog is a Commerce.AdminEventLog object.

oAdminEventLog.WriteInformationalEvent("MySite", _
                         "Database accessed successfully")

See Also

AdminEventLog Object

AdminEventLog.WriteErrorEvent

AdminEventLog.WriteWarningEvent


AdminEventLog.WriteWarningEvent

Use this method to write a warning event to the Commerce Server event log.

Definition

Sub WriteWarningEvent(
String bstrSiteName,
String bstrMessage
)

Parameters

bstSiteName

A String that contains the site name.

bstrMessage

A String that contains the warning event message string.

Return Values

None.

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 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

' oAdminEventLog is a Commerce.AdminEventLog object.

oAdminEventLog.WriteWarningEvent("MySite", _
                                 "Low Memory Availability")

See Also

AdminEventLog Object

AdminEventLog.WriteErrorEvent

AdminEventLog.WriteInformationalEvent


AdminFiles Object

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

The methods of the AdminFiles object are shown in the following table.

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.ReadFromBinaryFile

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

Function ReadFromBinaryFile(
bstrFileName As String
) As Variant

Parameters

bstrFileName

A String that specifies the path and file name to read.

Return Values

If this method completes successfully, it returns a Variant containing the file contents.

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 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

' 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

AdminFiles Object

AdminFiles.ReadFromFile


AdminFiles.ReadFromFile

Use this method to return the contents of the specified text file. The contents of the file are returned as a text string.

Definition

Function ReadFromFile(
bstrFileName As String
) As String

Parameters

bstrFileName

A String that specifies the path and file name to read.

Return Values

If this method completes successfully, it returns a String containing the file contents.

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 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

' 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

AdminFiles Object

IAdminFiles::ReadFromBinaryFile


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.

Important

  • You cannot use this object with Commerce Server 2000 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

The properties of the AdminSite object are shown in the following table.

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.

The methods of the AdminSite object are shown in the following table.

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


AdminSite.Create

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

Sub Create(
bstrInstance As String,
bstrVDir As String,
bstrDir As String,
nAuthorization As Long,
bIsApplication As Boolean,
bIsCommerceSite As Boolean
)

Parameters

bstrInstance

A numeric value expressed as a String representing a Web site. For the default Web site, use (1).

bstrVDir

A String that contains the Site Server 3.0 Commerce Edition site short name (virtual directory).

bstrDir

A String that specifies the physical directory in which to create the site.

nAuthorization

A Long that contains site authorization type.

bIsApplication

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

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

None.

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 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.

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

AdminSite Object

AdminSite.Delete

AdminSite:Initialize

AdminSite.IsValidName


AdminSite.Delete

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

Sub Delete()

Parameters

None.

Return Values

None.

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 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

AdminSite Object

AdminSite.Create


AdminSite.Directory

The Directory property is a read/write string that contains the currently registered Site Server 3.0 Commerce Edition site physical directory.

Definition

Property Directory As String

Parameters

None.

Error Values

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.

See Also

AdminSite Object

AdminSite.InitializeFromMDPath


AdminSite.Initialize

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

Sub Initialize(
bstrInstance As String,
bstrVDir As String
)

Parameters

bstrInstance

A numeric value, expressed as a String that represents a Web site.

bstrVDir

A String that contains the Site Server 3.0 Commerce Edition site short name (virtual directory).

Return Values

None.

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 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

AdminSite Object

AdminSite.ReadDefaultProperties

AdminSite.Create

AdminSite.IsValidName


AdminSite.InitializeFromMDPath

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

Sub InitializeFromMDPath(
bstrMDPath As String
)

Parameters

bstrMDPath

A String that contains the metabase path. The metabase path can be retrieved using a call to the Request.ServerVariables method.

Return Values

None.

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 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.

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

AdminSite Object

AdminSite.Initialize


AdminSite.IsValidName

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

Function IsValidName(
bstrName As String,
bstrInstance As String
) As Boolean

Parameters

bstrName

A String that specifies the short name to be tested.

bstrInstance

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".

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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.

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.

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

AdminSite Object

AdminSite.Initialize


AdminSite.ReadDefaultProperties

Use this method to read the properties from the Site.csc file and return a site dictionary containing these properties.

Definition

Function ReadDefaultProperties() As Object

Parameters

None.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AdminSite Object

AdminSite.WriteDefaultProperties

AdminSite.ReadManagerProperties

AdminSite.Initialize


AdminSite.ReadManagerProperties

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

Function ReadManagerProperties() As Object

Parameters

None.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AdminSite Object

AdminSite.WriteManagerProperties

AdminSite.ReadDefaultProperties


AdminSite.Reload

Use this method to reset all application and session objects for the Site Server 3.0 Commerce Edition site.

Definition

Sub Reload()

Parameters

None.

Return Values

None.

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 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

AdminSite Object


AdminSite.Status

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

Property Status As Boolean

Parameters

None.

Error Values

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AdminSite Object


AdminSite.Version

The Version property is a read-only integer used to return the version of Site Server 3.0 Commerce Edition in use.

Definition

Property Version As Long

Parameters

None.

Error Values

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

AdminSite Object


AdminSite.WriteDefaultProperties

Use this method to write the properties from the specified site Dictionary object to the Site.csc file.

Definition

Sub WriteDefaultProperties(
pIDictProp As Object
)

Parameters

pIDictProp

A reference to the Dictionary object that contains the properties to be written to the Site.csc file.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

AdminSite Object

AdminSite.ReadDefaultProperties

AdminSite.WriteManagerProperties


AdminSite.WriteManagerProperties

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

Sub WriteManagerProperties(
pIDictProp As Object
)

Parameters

pIDictProp

A reference to a Dictionary object that contains the properties to be written to the configuration file management page.

Return Values

None.

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 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

AdminSite Object

AdminSite.ReadManagerProperties

AdminSite.WriteDefaultProperties


AdminWebServer Object

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

The methods of the AdminWebServer object are shown in the following table.

Method | Description
GetCommerceSites | Given a server instance of a Web Site, enumerates all Site Server 3.0 Commerce Edition sites under that Web site.
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


AdminWebServer.GetCommerceSites

Use this method to enumerate all Commerce Server sites associated with the specified Web site. The method returns an array of numbers that represents all Commerce Server site instances.

This method does not work with Commerce Server 2000 sites. It is included only for backward compatibility with Site Server 3.0 Commerce Edition sites.

Definition

Function GetCommerceSites(
bstrInstance As String
) As Variant

Parameters

bstrInstance

A numeric value, expressed as a String, that represents a server instance for a site.

Return Values

This method returns a Variant that contains an array of numbers that represent all Commerce Server site instances.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The GetCommerceSites method determines whether a site is a Commerce Server site by examining a reserved key in the metabase.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' oAdminWebServer is a Commerce.AdminWebServer object
' The following example enumerates all the Web sites on a server and
' displays the number of each server instance. Then for each Web site, it
' enumerates all the Commerce Server sites within that Web site:
' Create AdminWebServer object
Set objWebServer = CreateObject("Commerce.AdminWebserver")
' Get Web sites
WebSites = objWebServer.GetWebSites
For WebInstance = LBound(WebSites, 1) To UBound(WebSites, 1)
   ' For each web site, get all Commerce sites in an array of instances
        CommerceSites = objWebServer.GetCommerceSites(WebSites(WebInstance))
   ' Enumerate all Commerce sites
      For CSite = LBound(CommerceSites, 1) To UBound(CommerceSites, 1)
         Response.Write "<br>" + CommerceSites(CSite)
      Next
 Next

See Also

AdminWebServer Object


AdminWebServer.GetWebSiteProperties

Use this method to retrieve, given a server instance, the properties of a site as name/value pairs in a Dictionary object.

Definition

Function GetWebSiteProperties(
bstrInstance As String
) As Object

Parameters

bstrInstance

A numeric value, expressed as a String, representing a server instance for a site.

Return Values

This method returns a reference to a Dictionary object containing the properties of the specified site.

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 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

<%
' 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

AdminWebServer Object


AdminWebServer.GetWebSites

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

Function GetWebSites() As Variant

Parameters

None.

Return Values

This method returns a Variant containing an array of numbers representing all server instances.

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 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

AdminWebServer Object


AppConfig Object

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 and regions from the site configuration store.

ProgID: | Commerce.AppConfig (Externally creatable)
COM Class Name: | AppCfg
Type Library Name: | Microsoft Commerce 2000 App Helper Type Library
DLL Name: | AppHelper.dll
Threading Model: | Both

The methods of the AppConfig object are shown in the following table.

Method | Description
DecodeStatusCode | Decodes the specified status code.
GetCountryCodeFromCountryName | Returns the country code for the specified country name.
GetCountryNameFromCountryCode | Returns the country name for the specified country code.
GetCountryNamesList | Returns an alphabetical list of country names.
GetOptionsDictionary | Returns a Dictionary object that maps site configuration keys to site configuration values.
GetRegionCodeFromCountryCodeAndRegionName | Returns the region code for the specified country code and region name.
GetRegionNameFromCountryCodeAndRegionCode | Returns the region name for the specified country code and region code.
GetRegionNamesListFromCountryCode | Returns an alphabetical list of region names for the specified country 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

Country codes may or may not be the same as ISO Country codes, depending on what values have been added in the Business Desk.

See Also

Configuration Objects

Table of Country Names and Codes


AppConfig.DecodeStatusCode

Use this method to decode the specified status code.

Definition

Function DecodeStatusCode(
iStatusCode As Integer
) As String

Parameters

iStatusCode

An Integer that specifies the status code to be decoded.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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

AppConfig Object


AppConfig.GetCountryCodeFromCountryName

Use this method to get the country code corresponding to the specified country name.

Definition

Function GetCountryCodeFromCountryName(
bstrCountryName As String
) As String

Parameters

bstrCountryName

A String that contains the name of the country for which the country code is being requested.

Return Values

If this method completes successfully, it returns a String that contains the country code. If the country code is not found, an empty string is returned.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the country code is not found, the method returns an empty string.

Country codes and country 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

' oAppConfig is a Commerce.AppConfig object
' sCode is a String
sCode = oAppConfig.GetCountryCodeFromCountryName("United States of _
America")

See Also

AppConfig Object

AppConfig.GetCountryNameFromCountryCode

AppConfig.GetCountryNamesList

Table of Country Names and Codes


AppConfig.GetCountryNameFromCountryCode

Use this method to get the country name corresponding to the specified country code.

Definition

Function GetCountryNameFromCountryCode(
bstrCountryCode As String
) As String

Parameters

bstrCountryCode

A String that contains the code of the country for which the country name is being requested.

Return Values

If this method completes successfully, it returns a String that contains the country name. If the name is not found, the country code is returned.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the country name is not found, the method returns the country code specified in the bstrCountryCode parameter.

Country codes and country 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.

' oAppConfig is a Commerce.AppConfig object
' sCountryName is a String
sCountryName = oAppConfig.GetCountryNameFromCountryCode("us")

See Also

AppConfig Object

AppConfig.GetCountryCodeFromCountryName

AppConfig.GetCountryNamesList

Table of Country Names and Codes


AppConfig.GetCountryNamesList

Use this method to get an alphabetical list of the country names that are in the site configuration database.

Definition

Function GetCountryNamesList() As Object

Parameters

None.

Return Values

If this method completes successfully, it returns a reference to a SimpleList object. This object contains an alphabetical list of country names.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Country codes and country 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

' 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

AppConfig Object

AppConfig.GetCountryCodeFromCountryName

Table of Country Names and Codes


AppConfig.GetOptionsDictionary

Use this method to retrieve a Dictionary object that contains the site configuration information.

Definition

Function GetOptionsDictionary(
bstrUserID As String
) As Object

Parameters

bstrUserID

A String that contains an empty string ("").

Return Values

If this method completes successfully, it returns a reference to a Dictionary object that contains the site configuration information.

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 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.

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

' 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

AppConfig Object


AppConfig.GetRegionCodeFromCountryCodeAndRegionName

Use this method to get a string that contains the region code for the specified country code and region name.

Definition

Function GetRegionCodeFromCountryCodeAndRegionName(
bstrCountryCode As String,
bstrRegionName As String
) As String

Parameters

bstrCountryCode

A String that contains the code of the country for which the region code is being requested.

bstrRegionName

A String that contains the name of the region within the specified country for which the region code is being requested.

Return Values

If this method completes successfully, it returns a String that contains the requested region code. An empty String indicates that the code was not found.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method returns an empty string if the region code was not found.

Country codes, country names, region codes, and 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

' oAppCfg is a Commerce.AppConfig object, sResult is a string
sResult = oAppCfg.GetRegionCodeFromCountryCodeAndRegionName("us", "Utah")

See Also

AppConfig Object

AppConfig.GetCountryCodeFromCountryName

AppConfig.GetCountryNamesList

AppConfig.GetRegionNameFromCountryCodeAndRegionCode

AppConfig.GetRegionNamesListFromCountryCode

Table of Country Names and Codes


AppConfig.GetRegionNameFromCountryCodeAndRegionCode

Use this method to get the name of the region associated with the specified country code and region code.

Definition

Function GetRegionNameFromCountryCodeAndRegionCode(
bstrCountryCode As String,
bstrRegionCode As String
) As String

Parameters

bstrCountryCode

A String that contains the code of the country for which the region name is being requested.

bstrRegionCode

A String that contains the code of the region within the specified country for which the region name is being requested.

Return Values

If this method completes successfully, it returns a String that contains the region name. If the region name is not found, the String will contain the region code specified in the bstrRegionCode parameter.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the region name is not found, this method returns the region code specified in the bstrRegionCode parameter.

Country codes, country names, region codes, and 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

' oAppCfg is a Commerce.AppConfig object, sResult is a String
sResult = oAppCfg.GetRegionNameFromCountryCodeAndRegionCode("us", "UT")

See Also

AppConfig Object

AppConfig.GetCountryCodeFromCountryName

AppConfig.GetCountryNamesList

AppConfig.GetRegionCodeFromCountryCodeAndRegionName

AppConfig.GetRegionNamesListFromCountryCode

Table of Country Names and Codes


AppConfig.GetRegionNamesListFromCountryCode

Use this method to retrieve an alphabetical list of region names associated with a specified country code.

Definition

Function GetRegionNamesListFromCountryCode(
bstrCountryCode As String
) As Object

Parameters

bstrCountryCode

A String that contains the code of the country for which a list of region names is being requested.

Return Values

If this method completes successfully, it returns a reference to a SimpleList object that contains an alphabetical list of region names associated with the specified country code.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Country codes, country names, region codes, and 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

' 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

AppConfig Object

AppConfig.GetCountryCodeFromCountryName

AppConfig.GetCountryNamesList

AppConfig.GetRegionCodeFromCountryCodeAndRegionName

Table of Country Names and Codes


AppConfig.Initialize

Use this method to initialize an AppConfig object.

Definition

Sub Initialize(
bstrSiteName As String
)

Parameters

bstrSiteName

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

None.

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 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

' oAppCfg is a Commerce.AppConfig object
oAppCfg.Initialize("Retail")

See Also

AppConfig Object

AppConfig.RefreshCache


AppConfig.RefreshCache

Use this method to refresh the cache associated with the AppConfig object.

Definition

Sub RefreshCache()

Parameters

None.

Return Values

None.

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 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 and region 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

AppConfig Object

AppConfig.Initialize


Table of Country Names and Codes

Country codes may or may not be the same as ISO Country codes, depending on what values have been added in the Business Desk. The following table contains country 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 | 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
Gaza Strip |  | - | PS | PSE | 275 |
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 |  | 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


AppFrameWork Object

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

The methods of the AppFrameWork object are shown in the following table.

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.

See Also

Display Objects


AppFrameWork.Option

Use this method to generate an OPTION item in an HTML form selection list with the value and selection state that you specify.

Definition

Function Option(
vtVal1 As Variant,
vtVal2 As Variant
) As String

Parameters

vtVal1

A Variant that contains the value of the option in the selection list.

vtVal2

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.

Return Values

If this method completes successfully, it returns a String that contains the OPTION item.

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 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

' 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

AppFrameWork Object


AppFrameWork.RequestDate

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

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

A String that contains the name of the URL query string or form post variable to retrieve.

vtDefault

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

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

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

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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 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

' 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

AppFrameWork Object

DataFunctions.Locale

AppFrameWork.RequestDateTime

DataFunctions.ConvertDateString

DataFunctions.Date


AppFrameWork.RequestDateTime

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

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

A String that contains the name of the URL query string or form post variable to retrieve.

vtDefault

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

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

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

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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 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

' 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

AppFrameWork Object

DataFunctions.Locale

AppFrameWork.RequestDate

DataFunctions.ConvertDateTimeString

AppFrameWork.RequestTime


AppFrameWork.RequestFloat

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

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

A String that contains the name of the URL query string or form post variable to retrieve.

vtDefault

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

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

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

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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 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

' 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

AppFrameWork Object

DataFunctions.Locale

AppFrameWork.RequestNumber

DataFunctions.ConvertFloatString

DataFunctions.Float

DataFunctions.ValidateFloat


AppFrameWork.RequestMoneyAsNumber

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

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

A String that contains the name of the URL query string or form post variable to retrieve.

vtDefault

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

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

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

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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 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

' 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

AppFrameWork Object

DataFunctions.Locale

DataFunctions.ConvertMoneyStringToNumber

DataFunctions.Money

AppFrameWork.RequestFloat

AppFrameWork.RequestNumber


AppFrameWork.RequestNumber

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

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

A String that contains the name of the URL query string or form post variable to retrieve.

vtDefault

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

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

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

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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 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

' 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

AppFrameWork Object

DataFunctions.Locale

AppFrameWork.RequestFloat

DataFunctions.ConvertNumberString

DataFunctions.Number

DataFunctions.ValidateNumber


AppFrameWork.RequestString

Use this method to retrieve a value from a URL query string or form post variable and perform string processing on it.

Definition

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

A String that contains the name of the URL query string or form post variable to retrieve.

vtDefault

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

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

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

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

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

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

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.

Return Values

If this method completes successfully, it returns a Variant that contains the processed string.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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

' 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

AppFrameWork Object

DataFunctions.Locale


AppFrameWork.RequestTime

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

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

A String that contains the name of the URL query string or form post-variable to retrieve.

vtDefault

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

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

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

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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 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

' 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

AppFrameWork Object

DataFunctions.Locale

DataFunctions.ConvertTimeString

AppFrameWork.RequestDate


AppFrameWork.VerifyWith

Use this method to generate hidden input fields that contain verification values.

Definition

Function VerifyWith(
pdispOrder As Object
 pParams As Variant
) As Variant

Parameters

pdispOrder

An object reference to the OrderForm object that contains the fields to verify.

pParams

A variable list of arguments of type VARIANT, that contain the field names to verify in the supplied OrderForm object.

Return Values

If this method completes successfully, it returns a Variant that contains the HTML tags.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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

' 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

AppFrameWork Object

OrderForm Object


AppFrameWork.VirtualDirectory

Use this method to return the name of the virtual directory for the site.

Definition

Function VirtualDirectory() As String

Parameters

None.

Return Values

If this method completes successfully, it returns a String that contains the site virtual directory.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

AppFrameWork Object

StandardSManager Object


AsyncRpt Object

Use this object to render (display) or export a static report asynchronously.

ProgID: | Commerce.AsyncRpt (Externally creatable)
COM Class Name: | AsyncRpt
Type Library Name: | Microsoft Commerce 2000 Async Report Manager Type Library
DLL Name: | AsyncReport.dll
Threading Model: | Both

The methods of the AsyncRpt object are shown in the following table.

Method | Description
RunReport | Runs or exports the report.

Remarks

The AsyncRpt object renders or exports reports asynchronously.

The ReportRender object renders or exports reports synchronously.

The AsyncRpt object calls the ReportRender object passing it a string containing the rendering parameters. For more information about the rendering process, see ReportRender Object.

See Also

Analysis/Reporting Schema

Analysis/Reporting XML Structures

Creating Custom Reports

ListManager Object

ReportRenderer Object

Running Reports


AsyncRpt.RunReport

Use this method to initialize the AsyncRpt object and to render or export a static report asynchronously.

Definition

Sub RunReport(
bstrRepParam As String
)

Parameters

bstrRepParam

A String used to supply parameters to the AsyncRpt object.

Return Values

None.

Error Values

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 AsyncRpt object calls the ReportRender object, passing it the bstrRepParam parameter.

The bstrRepParam parameter is identical to the sParamString parameter of the Init method of the ReportRender object. For more information, see ReportRender Object.

See Also

AsyncRpt Object


Auction Object

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.

ProgID: | Commerce.Auction (Externally creatable)
COM Class Name: | Auction
Type Library Name: | Commerce Server 4.0 Auction Component
DLL Name: | auction.dll
Threading Model: | Apartment

The properties of the Auction object are shown in the following table.

Property | Type | Description
AuctionID | String | Stores the AuctionID 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.
szLanguage | String | Stores the language used in by the MessageManager object when generating error messages. This property is read/write.

The methods of the Auction object are shown in the following table.

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.

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.


Auction.AuctionAddBid

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

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

A String that contains the unique auction ID.

szShopperId

A String that contains the unique ID of the unique bidder.

szBidName

A String that contains the name of the bidder.

szEmail

A String that contains the email address of the bidder.

cyBidPrice

A Currency that contains the bid amount.

nDesired

A Long that contains the number of wanted items.

fTakeLess

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

A Currency that contains the minimum bid.

objErrorList

A SimpleList object that contains a list of errors generated by the MessageManager object.

bResolve

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.

Return Values

If this method completes successfully, it returns a Long that contains the number of error strings written to the objErrorList object.

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 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

'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

Auction Object


Auction.AuctionAddItem

Use this method to add a new item to the auction system.

Definition

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

A String that contains the unique ID for the item.

cyReservePrice

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

A Long that contains the number of items for sale.

cyBidIncrement

A Currency that contains the amount a bid must be raised in order to bid on the item.

nAuctionType

A Long that contains the auction type. For more information, see the table in the Remarks section.

cyMinimumBid

A Currency that contains the minimum opening bid.

fSealedBid

A Boolean that indicates whether to check a bid against the minimum bid. A value of True skips the minimum bid check.

fSealedInventory

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

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

A Date that determines when bids will be accepted on the item.

dtEndDate

A Date that determines when the auction is closed and the items can be purchased.

nAutoCloseSeconds

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

An IDispatch interface that contains the error list.

Return Values

If this method completes successfully, it returns a Long that contains the number of error strings written to the objErrorList object.

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 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.

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

Auction Object


Auction.AuctionBidNormalize

Use this method to normalize a bid to a whole multiple of the bid increment.

Definition

Function AuctionBidNormalize(
cyBidAmount As Currency,
cyBidIncrement As Currency,
cyMinimumBid As Currency
) As Currency

Parameters

cyBidAmount

A Currency that contains the bid amount.

cyBidIncrement

A Currency that contains the bid increment.

cyMinimumBid

A Currency that contains the minimum bid allowed.

Return Values

If this method completes successfully, it returns a Currency that contains the normalized bid.

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 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

' 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

Auction Object


Auction.AuctionDeleteBid

Use this method to deletes a bid placed on an item in an auction.

Definition

Function AuctionDeleteBid(
szAuctionId As String,
szShopperId As String,
Optional bResolve As Boolean
) As Variant

Parameters

szAuctionId

A String that contains the unique auction ID.

szShopperId

A String that contains the unique ID of the bidder.

bResolve

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.

Return Values

The return value is reserved for future use. Ignore the return value.

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 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

'You can treat this function as a subroutine to ignore the return value.
oAuction.AuctionDeleteBid szAuctionId, szShopperId, bResolve

See Also

Auction Object


Auction.AuctionDeleteBids

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

Function AuctionDeleteBids(
szAuctionId As String,
Optional bResolve As Boolean
) As Variant

Parameters

szAuctionId

A String that contains the unique auction ID.

bResolve

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.

Return Values

The return value is reserved for future use. Ignore the return value.

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 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

Auction Object


Auction.AuctionDeleteItem

Use this method to delete an item and all bids for the item from the auction database.

Definition

Function AuctionDeleteItem(
szAuctionId As String
) As Variant

Parameters

szAuctionId

A String that contains the unique auction ID.

Return Values

The return value is reserved for future use. Ignore the return value.

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 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

Auction Object


Auction.AuctionGetBid

Use this method to retrieve a bid from a specific bidder for a specific auction item.

Definition

Function AuctionGetBid(
szShopperId As String,
szAuctionId As String
) As Object

Parameters

szShopperId

A String that contains the unique ID of the bidder.

szAuctionId

A String that contains the unique auction ID.

Return Values

If this method completes successfully, it returns an ADODB.Recordset object that contains the specified bid.

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 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

' rsBid is a Recordset object
rsBid = oAuction.AuctionGetBid(szShopperId, szAuctionId)

See Also

Auction Object


Auction.AuctionGetBids

Use this method to retrieve all the bids for the specified auction item.

Definition

Function AuctionGetBids(
szAuctionId As String,
Optional dtSinceDate As Date
) As Object

Parameters

szAuctionId

A String that contains the auction ID.

dtSinceDate

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.

Return Values

If this method completes successfully, it returns an ADODB.Recordset object that contains the specified bids.

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 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

' rsBids is a Recordset object
rsBids = oAuction.AuctionGetBids(szAuctionId, dtSinceDate)

See Also

Auction Object


Auction.AuctionGetItem

Use this method to retrieve an item up for auction.

Definition

Function AuctionGetItem(
szAuctionId As String
) As Object

Parameters

szAuctionId

A String that contains the unique auction ID.

Return Values

If this method completes successfully, it returns an ADODB.Recordset Object that contains the specified item.

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 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

Auction Object


Auction.AuctionGetStatus

Use this method to retrieve a Dictionary object containing information for the item up for auction and the bids on the item.

Definition

Function AuctionGetStatus(
szAuctionId As String
) As Object

Parameters

szAuctionId

A String that contains the unique auction ID.

Return Values

If this method completes successfully, it returns a Dictionary object that contains the specified item along with the bids on the item.

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 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

Auction Object


Auction.AuctionID

The AuctionID property is a read-only String that contains a GUID that uniquely identifies the Auction object.

Definition

Property AuctionID() As String

Parameters

None.

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 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

Auction Object


Auction.AuctionInit

Use this method to initialize the Auction object.

Definition

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

A String that contains the connection string to the database containing the Bid and Item tables.

szItemTableName

A String that contains the Item table name.

szBidTableName

A String that contains the Bid table name.

szBidOrderBy

A String that contains the default bid sort order (SQL ORDER BY clause).

objMessageManager

A MessageManager object.

szLanguage

A String that contains the language used by the MessageManager object.

dtAMT

A Date that contains a timestamp.

Return Values

The return value is reserved for future use. Ignore the return value.

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 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

'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

Auction Object


Auction.AuctionRandomBids

Use this method to enter random bids into an auction for testing or demonstration purposes.

Definition

Function AuctionRandomBids(
szAuctionId As String,
fDelete As Boolean,
nNumberBids As Long
) As Variant

Parameters

szAuctionId

A String that contains the unique auction ID.

fDelete

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

A Long that contains the number of random bids to add.

Return Values

The return value is reserved for future use. Ignore the return value.

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 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.

Example

'szAuctionId is a GUID
oAuction.AuctionRandomBids szAuctionId, FALSE, 25

See Also

Auction Object


Auction.AuctionResolve

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

Function AuctionResolve(
szAuctionId As String,
Optional bOptimize As Boolean
) As Variant

Parameters

szAuctionId

A String that contains the unique auction ID.

bOptimize

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.

Return Values

The return value is reserved for future use. Ignore the return value.

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 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

Auction Object


Auction.AuctionUpdateItem

Use this method to update an existing item in the auction system.

Definition

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

A String that contains the unique auction ID.

szSKU

A String that contains the unique ID for the item.

cyReservePrice

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

A Long that contains the number of items for sale.

cyBidIncrement

A Currency that contains the amount a bid must be raised in order to bid on the item.

nAuctionType

A Long that contains the auction type. For more information, see the Remarks section.

cyMinimumBid

A Currency that contains the minimum opening bid.

fSealedBid

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

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

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

A Date that determines when bids will be accepted on the item.

dtEndDate

A Date that determines when the auction is closed and the items can be purchased.

nAutoCloseSeconds

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

An IDispatch interface that contains the error list.

bResolve

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.

Return Values

If this method completes successfully, it returns a Long that contains the number of error strings written to the objErrorList object.

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 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.

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

Auction Object


Auction.dtAMT

The dtAMT property is a read/write DATE value used to timestamp auction actions.

Definition

Property dtAMT() As Date

Parameters

None.

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 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

Auction Object


Auction.objMessageManager

The objMessageManager property is a read/write MessageManager object used to return error messages to the bidder.

Definition

Property objMessageManager() As Object

Parameters

None.

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 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

Auction Object


Auction.szBidOrderBy

The szBidOrderBy property is a read/write String used to resolve ties.

Definition

Property szBidOrderBy() As String

Parameters

None.

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 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

Auction Object


Auction.szBidTableName

The szBidTableName property is a read/write String used to store the name of the Bid table in the database.

Definition

Property szBidTableName() As String

Parameters

None.

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 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

Auction Object


Auction.szDSN

The szDSN property is a read/write String used to store the connection string for the database.

Definition

Property szDSN() As String

Parameters

None.

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 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

Auction Object


Auction.szItemTableName

The szItemTableName property is a read/write String used to store the name of the Item table in the database.

Definition

Property szItemTableName() As String

Parameters

None.

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 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

Auction Object


Auction.szLanguage

The szLanguage property is a read/write String used to store the language used by the MessageManager object when generating error messages.

Definition

Property szLanguage() As String

Parameters

None.

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 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

Auction Object


AuthManager Object

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.

ProgID: | Commerce.AuthManager (Externally creatable)
COM Class Name: | MSCSAuthManager
Type Library Name: | Microsoft Commerce 2000 AuthManager Type Library
DLL Name: | mscsauth.dll
Threading Model: | Both

The methods of the AuthManager object are shown in the following table.

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 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.

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 2000 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.

See Also

Site Security Objects

Working with Site Security and Filters


AuthManager.GenerateEncryptionKey

Use this method to generate an encryption key for encrypting/decrypting the cookie and query string data used for tickets.

Definition

Function GenerateEncryptionKey() As String

Parameters

None.

Return Values

If this method completes successfully, it returns a String that contains the encryption key.

Error Values

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 | &HC1004C26 | An error occurred while generating the encryption key using the CryptoAPI.

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 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 Admin database.

This method is one of the few AuthManager methods used in C++ applications.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AuthManager Object


AuthManager.GetProperty

Use this method to retrieve the value of the specified custom property from the current user ticket.

Definition

Function GetProperty(
enumTicketType As EnumMSCS_TicketType,
propName As String
) As Variant

Parameters

enumTicketType

[in] An EnumMSCS_TicketType that indicates the type of ticket that contains the property.

propName

[in] A String that contains the name of the property to retrieve.

Return Values

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

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 | &HC1004C27 | Invalid custom property name or value.
E_UPM_AUTHMANAGER_API_ASP_ONLY | &HC1004C24 | This method should only be called within an ASP page.
E_UPM_AUTHMANAGER_TICKET_NOT_SET | &HC1004C25 | Requested ticket not set.
MSG_UPM_AUTH_PROPNOTFOUND_ERROR | &HC1004C00 | Requested property does not exist on the ticket.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' sPasswordValue is a String
' oAuthManager is a Commerce AuthManager object

sPasswordValue = oAuthManager.GetProperty(enumMSCS_AuthTicketType, _
 "Password")

See Also

AuthManager Object

AuthManager.SetProperty


AuthManager.GetURL

Use this method to generate an encoded Uniform Resource Locator (URL) string.

Definition

Function GetURL(
FileName As String,
fCookie As Boolean,
fSecure As Boolean,
Optional pVarURLParameters As Variant,
Optional pVarURLValues As Variant
) As String

Parameters

FileName

[in] A String that contains the file name to reference in the URL.

fCookie

[in] A Boolean that indicates whether the user allows cookies.

fSecure

[in] A Boolean that indicates whether the URL is secure (HTTPS versus HTTP).

pVarURLParameters

[in, optional] A SafeArray that contains a list of parameter names to include in the URL.

pVarURLValues

[in, optional] A SafeArray that contains values that correspond to the parameter names.

Return Values

If this method completes successfully, it returns a String that contains the encoded URL.

Error Values

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 | &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

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).

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' saParameterNames and saParameterValues are SafeArrays
' 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

See Also

AuthManager Object


AuthManager.GetUserID

Use this method to retrieve a user ID stored in a ticket.

Definition

Function GetUserID(
enumTicketType As EnumMSCS_TicketType
) As Variant

Parameters

enumTicketType

An EnumMSCS_TicketType that indicates the type of ticket that contains the user ID.

Return Values

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

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 | &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' vUserID is a Variant
' oAuthManager is a Commerce AuthManager object

vUserID = oAuthManager.GetUserID(enumMSCS_ProfileTicketType)

See Also

AuthManager Object


AuthManager.GetUserIDFromCookie

Use this method to retrieve a user ID stored in a cookie.

Definition

Function GetUserIDFromCookie(
cookieData As String
) As String

Parameters

cookieData

[in] A String that contains the cookie.

Return Values

If this method completes successfully, it returns a String that contains the user ID.

Error Values

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 | &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

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.

Commerce Server 2000 Analysis applications use this method to extract user IDs from cookies found in Internet Information Services (IIS) logs.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AuthManager Object


AuthManager.Initialize

Use this method to initialize the AuthManager object.

Definition

Sub Initialize(
bstrSiteName As String
)

Parameters

bstrSiteName

[in] A String that contains the name of the Commerce Server 2000 Web site.

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 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 to 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AuthManager Object


AuthManager.IsAuthenticated

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

Function IsAuthenticated(
Optional TimeWindow As Long
) As Boolean

Parameters

TimeWindow

[in, optional, defaultvalue (0)] A Long that contains a time period in minutes.

Return Values

If this method completes successfully, it returns a Boolean that indicates the authentication status of the current user.

Error Values

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 | &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AuthManager Object


AuthManager.Refresh

Use this method to update the cached site configuration resource properties after any of the properties have been changed.

Definition

Sub Refresh(
bstrSiteName As String
)

Parameters

bstrSiteName

A String that contains the site name.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AuthManager Object


AuthManager.SetAuthTicket

Use this method to set an encrypted MSCSAuth ticket for a registered user.

Definition

Sub SetAuthTicket(
UserID As String,
fCookieSupport As Boolean,
TimeWindow As Long
)

Parameters

UserID

[in] A String that contains the unique ID for the current user.

fCookieSupport

[in] A Boolean that indicates whether session cookies are supported.

TimeWindow

[in] A Long that defines the time window in minutes that the MSCSAuth ticket is valid.

Error Values

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 | &HC1004C23 | Invalid character (';' or '%' or '=') present in the UserID or the property name/value pair.
E_UPM_AUTHMANAGER_API_ASP_ONLY | &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

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.

If an MSCSAuth 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 an MSCSProfile ticket.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' oAuthManager is a Commerce AuthManager object

oAuthManager.SetAuthTicket "JoeUser@microsoft.com", True, 30

See Also

AuthManager Object

AuthManager.IsAuthenticated


AuthManager.SetProfileTicket

Use this method to set a MSCSProfile ticket for an anonymous user. An anonymous user is not registered with a site.

Definition

Sub SetProfileTicket(
UserID As String,
fCookieSupport As Boolean
)

Parameters

UserID

[in] A String that contains the unique ID for the current user.

fCookieSupport

[in] A Boolean that indicates whether persistent cookies are supported.

Error Values

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 | &HC1004C23 | Invalid character (';' or '%' or '=') present in the UserID or the property name/value pair.
E_UPM_AUTHMANAGER_API_ASP_ONLY | &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

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 an MSCSProfile 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 MSCSAuth ticket.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' oAuthManager is a Commerce AuthManager object

oAuthManager.SetProfileTicket "74A38551-D6D8-FFD0-12BF-0A20C90DC8D1", True

See Also

AuthManager Object

AuthManager.IsAuthenticated


AuthManager.SetProperty

Use this method to place a custom property name/value pair into the current ticket for the user.

Definition

Sub SetProperty(
EnumMSCS_TicketType enumTicketType,
propName As String,
propVal As String
)

Parameters

enumTicketType

[in] An EnumMSCS_TicketType that indicates the type of ticket.

propName

[in] A String that contains the name of the property.

propVal

[in] A String that contains the value corresponding to the named property.

Error Values

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 | &HC1004C23 | Invalid character (';' or '%' or '=') present in the UserID or the property name/value pair.
E_UPM_AUTHID_INVALID_PROPERTY | &HC1004C27 | Invalid custom property name or value.
E_UPM_AUTHMANAGER_API_ASP_ONLY | &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

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.

Note

  • A property with the name "Ticket" is used by the AuthManager object for storing Commerce Server 2000 related information. When creating a custom property, do not set the property name to "Ticket".

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' oAuthManager is a Commerce AuthManager object

oAuthManager.SetProperty enumMSCS_AuthTicketType, "Password", "MyPassword123"

See Also

AuthManager Object

AuthManager.GetProperty


AuthManager.SetUserID

Use this method to change the user ID property on a ticket.

Definition

Sub SetUserID(
enumTicketType As EnumMSCS_TicketType,
newUserID As String
)

Parameters

enumTicketType

An EnumMSCS_TicketType that indicates the type of ticket that will contain the user ID.

newUserID

A String that contains the unique ID for the current user.

Error Values

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 | &HC1004C23 | Invalid character (';' or '%' or '=') present in the UserID or the property name/value pair.
E_UPM_AUTHMANAGER_API_ASP_ONLY | &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

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 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 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.

Example

' oAuthManager is a Commerce AuthManager object

oAuthManager.SetUserID enumMSCS_AuthTicketType, "JoeUser@microsoft.com"

See Also

AuthManager Object


AuthManager.UnInitialize

Use this method to delete the site-specific configuration resource properties from the cache when the site is no longer valid.

Definition

Sub UnInitialize(
bstrSiteName As String
)

Parameters

bstrSiteName

[in] A String that contains the name of the site.

Error Values

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 | &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AuthManager Object


AuthManager.URLArgs

Use this method to generate a Uniform Resource Locator (URL) encoded query string of name/value pairs.

Definition

Function URLArgs(
pVarURLParameters As Variant,
pVarURLValues As Variant
) As String

Parameters

pVarURLParameters

[in] A SafeArray that contains the parameter names.

pVarURLValues

[in] A SafeArray that contains the values corresponding to the parameter names.

Return Values

If this method completes successfully, it returns a String that contains the encoded URL query string.

Error Values

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 | &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

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.

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

AuthManager Object

AuthManager.URLShopperArgs


AuthManager.URLShopperArgs

Use this method to generate a Uniform Resource Locator (URL) encoded query string of name/value pairs and append the ticket to the query string if a ticket is set.

Definition

Function URLShopperArgs(
pVarURLParameters As Variant,
pVarURLValues As Variant
) As String

Parameters

pVarURLParameters

[in] A SafeArray that contains the parameter names.

pVarURLValues

[in] A SafeArray that contains the values corresponding to the parameter names.

Return Values

If this method completes successfully, it returns a String that contains the encrypted URL string.

Error Values

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 | &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

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 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 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.

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

AuthManager Object

AuthManager.SetProperty

AuthManager.SetAuthTicket

AuthManager.SetProfileTicket

AuthManager.URLArgs


BizDeskSecurity Object

Use this object to determine whether to display a module in the navigation pane of Commerce Server Business Desk.

ProgID: | Commerce.BizDeskSecurity (Externally creatable)
COM Class Name: | BizDeskSecurity
Type Library Name: | Microsoft Commerce 2000 BizDesk Security Type Library
DLL Name: | BDSecurity.dll
Threading Model: | Free

The one method of the BizDeskSecurity object is shown in the following table.

Method | Description
CanUserAccess | Determines whether the user has access rights to read the specified file.

Remarks

The Business Desk framework calls this object to determine which modules to display to the current user.

See Also

Site Security Objects


BizDeskSecurity.CanUserAccess

Use this method to determine whether the current user has read access rights to the specified Commerce Server Business Desk module.

Definition

Function CanUserAccess(
bstrPath As String,
) As Boolean

Parameters

bstrPath

A String that contains the file name and path for a Business Desk module.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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 file.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

' bAccess is a Boolean
' oBizDeskSecurity is a Commerce.BizDeskSecurity object
' CatalogEditor.asp is an ASP page corresponding to a Business Desk module

bAccess = oBizDeskSecurity.CanUserAccess("CatalogEditor.asp")

See Also

BizDeskSecurity Object


CacheManager Object

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 2000 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both

The properties of the CacheManager object are shown the following table.

Property | Type | Description
AppUrl | String | Stores the full Uniform Resource Locator (URL) of the application. This property is read/write.
CacheObjectProgId | String | Stores the Programmatic Identifier (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.

The methods of the CacheManager object are shown in the following table.

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.

See Also

General Purpose Programming Concepts

Code to Implement Custom Cache Components


CacheManager.AppUrl

The AppUrl property is a read/write string that contains the full Uniform Resource Locator (URL) of the application.

Definition

Property AppUrl() As String

Parameters

None.

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 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

CacheManager Object


CacheManager.GetCache

Use this method to retrieve either the Dictionary or LRUCache object for the specified cache name.

Definition

Function GetCache(
bstrName As String
) As IDispatch

Parameters

bstrName

A String that contains the name of the cache to be retrieved.

Return Values

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 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.

Example

'oMyCache is an object
'strMyCacheName is a String containing the name of an existing cache.

Set oMyCache = myCacheManager.GetCache(strMyCacheName)

See Also

CacheManager Object


CacheManager.CacheObjectProgId

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

Property CacheObjectProgId(
bstrName As String
) As String

Parameters

bstrName

A String that contains the name of the cache object.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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

CacheManager Object


CacheManager.LoaderConfig

The LoaderConfig property is a read/write reference to a Dictionary object that contains configuration information for the Loader component.

Definition

Property LoaderConfig(
bstrName As String
) As IDispatch

Parameters

bstrName

A String that contains the name of a data cache for which Loader component configuration information is being provided or retrieved.

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 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

CacheManager Object


CacheManager.LoaderProgId

The LoaderProgId property is a read/write string that contains the Programmatic Identifier (ProgID) of the component intended for use in populating the cache.

Definition

Property LoaderProgId(
bstrName As String
) As String

Parameters

bstrName

A String that contains the name of a data cache for which the Loader component ProgID is being provided or retrieved.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

CacheManager Object


CacheManager.RefreshCache

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

Sub RefreshCache(
bstrName As String
)

Parameters

bstrName

A String that contains the name of the data cache to be refreshed.

Return Values

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 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.

Example

'strMyCacheName is a String containing the name of an existing cache.

myCacheManager.RefreshCache(strMyCacheName)

See Also

CacheManager Object


CacheManager.RefreshInterval

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

Property RefreshInterval(
bstrName As String
) As Long

Parameters

bstrName

A String that contains the name of a data cache for which the refresh interval is being provided or retrieved.

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 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

CacheManager Object


CacheManager.RetryInterval

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

Property RetryInterval(
bstrName As String
) As Long

Parameters

bstrName

A String that contains the name of a data cache for which the retry interval is being provided or retrieved.

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 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

CacheManager Object


CacheManager.WriterConfig

The WriterConfig property is a read/write reference to a Dictionary object that contains configuration information for the Writer component.

Definition

Property WriterConfig(
bstrName As String
) As IDispatch

Parameters

bstrName

A String that contains the name of a data cache for which Writer component configuration information is being provided or retrieved.

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 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

CacheManager Object


CacheManager.WriterProgId

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

Property WriterProgId(
bstrName As String
) As String

Parameters

bstrName

A String that contains the name of a data cache for which the Writer component ProgID is being provided or retrieved.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

CacheManager Object


CatalogManager Object

Use this object to work with the entire Product Catalog System. The methods and properties of this object effect all catalogs contained in the Product Catalog System.

ProgID: | Commerce.CatalogManager (Externally creatable)
COM Class Name: | CatalogManager
Type Library Name: | Microsoft Commerce 2000 Catalog Type Library
DLL Name: | Catalog.dll
Threading Model: | Both

The properties of the CatalogManager object are shown in the following table.

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 | Returns 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 | _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.

The methods of the CatalogManager object are shown in the following table.

Method | Description
AddDefinitionProperty | Adds a property to a definition.
AddDefinitionVariantProperty | Adds a variant property to a definition.
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.
ExportCSV | Exports catalog data as a comma-separated value format file.
ExportXML | Exports catalog data as an Extensible Markup Language (XML) format file.
FreeTextSearch | Performs a free-text search of catalogs.
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 value 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.
RemoveDefinitionProperty | Removes the specified property or variant property from a definition.
RemovePropertyValue | Removes a defined value from an enumeration property.
RenameDefinition | Renames a definition.
RenameProperty | Renames a property.
SetDefinitionProperties | Use this method to change the properties of a category or product definition.
SetPropertyAttributes | Changes the attributes of a property.

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.


CatalogManager.AddDefinitionProperty

Use this method to add an existing property to an existing category or product definition.

Definition

Sub AddDefinitionProperty(
strDefinitionName As String,
strPropertyName As String
)

Parameters

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.

Return Values

None.

Error Values

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_DEFINITION_DOESNT_EXIST | &H8898000B | The specified definition did not exist.
E_CAT_PROP_DOESNT_EXIST | &H88980005 | The specified property did not exist.
E_CAT_PROP_IN_DEFINITION | &H8898000D | The specified property was already in the definition.
OLE_E_BLANK | &H80040007 | The object was not initialized. The Initialize method must be called before calling any other method.

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.

Example

myCatalogManager.AddDefinitionProperty "Printers", "Manufacturer"

See Also

CatalogManager Object

CatalogManager.AddDefinitionVariantProperty

CatalogManager.RemoveDefinitionProperty


CatalogManager.AddDefinitionVariantProperty

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

Sub AddDefinitionVariantProperty(
strDefinitionName As String,
strPropertyName As String
)

Parameters

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.

Return Values

None.

Error Values

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_DEFINITION_DOESNT_EXIST | &H8898000B | The specified definition did not exist.
E_CAT_PROP_DOESNT_EXIST | &H88980005 | The specified property did not exist.
E_CAT_PROP_IN_DEFINITION | &H8898000D | The specified property was already in the definition.
OLE_E_BLANK | &H80040007 | The object was not initialized. The Initialize method must be called before calling any other method.

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.

Example

myCatalogManager.AddDefinitionVariantProperty "T-Shirts", "Size"

See Also

CatalogManager Object

CatalogManager.AddDefinitionProperty

CatalogManager.RemoveDefinitionProperty


CatalogManager.AddPropertyValue

Use this method to add a value to the list of defined values for the specified enumeration.

Definition

Sub AddPropertyValue(
strPropertyName As String,
strLegalValue As String
)

Parameters

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.

Return Values

None.

Error Values

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_PROP_DOESNT_EXIST | &H88980005 | The property you specified did not exist.
E_CAT_PROP_NOT_ENUM | &H88980007 | The property you specified was not of type cscEnumeration.
E_CAT_VALUE_ALREADY_ADDED | &H88980008 | The enumeration value you specified was already present in the list.
OLE_E_BLANK | &H80040007 | The object was not initialized. The Initialize method must be called before calling any other method.

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.

Example

myCatalogManager.AddPropertyValue "color", "Blue"

See Also

CatalogManager Object

CatalogManager.GetPropertyValues

CatalogManager.RemovePropertyValue


CatalogManager.Catalogs

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

Property Catalogs() As _Recordset

Parameters

None.

Error Values

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
OLE_E_BLANK | &H80040007 | The object was not initialized. The Initialize method must be called before calling any other method.

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 recordset returned by this property is valid only if it is accessed successfully.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

CatalogManager.CreateCatalog

CatalogManager.DeleteCatalog


CatalogManager.CategoryDefinitions

The CategoryDefinitions property is a read-only recordset that contains the names of all the category definitions in the Product Catalog System.

Definition

Property CategoryDefinitions() As _Recordset

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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

CatalogManager Object

CatalogManager.CreateCategoryDefinition

CatalogManager.DeleteDefinition


CatalogManager.CreateCatalog

Use this method to create a new catalog.

Definition

Function CreateCatalog(
strCatalogName As String,
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
) As ProductCatalog

Parameters

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

A Variant that contains the product variant ID property.

lcidLocale

A Variant that contains the locale ID (LCID) of the catalog to be created.

strCurrency

A Variant that contains the currency type of the catalog to be created.

strWeightMeasure

A Variant that contains the unit of weight or measure of the catalog to be created.

dtStartDate

A Variant of subtype DATE that contains the start date.

dtEndDate

A Variant of subtype DATE that contains the end date.

Return Values

If this method completes successfully, it returns the ProductCatalog object that was created.

Error Values

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_EXISTS | &H88980001 | There was already a catalog by that name. Catalog names must be unique throughout the Product Catalog System.
E_CAT_PRODID_DOESNT_EXIST | &H88980010 | The property you specified for the ProductID did not exist in the Product Catalog System properties.
E_CAT_UPDATE_FREETEXT_INDEX_FAILED | &H88980015 | This error occurs when full text search is installed but updating the full text search index fails. The catalog is created but full text search does not work. For the catalog to participate in full text searches delete the catalog and recreate it.

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 ProductCatalog returned by this method is valid only if it was created successfully.

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 (])

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

Set oNewCatalog = myCatalogManager.CreateCatalog ("NewCatalog", "ItemNum", "SKU")

See Also

CatalogManager Object

CatalogManager.DeleteCatalog

CatalogManager.GetCatalog


CatalogManager.CreateCategoryDefinition

Use this method to create a new category definition.

Definition

Sub CreateCategoryDefinition(
strDefinitionName As String
)

Parameters

strDefinitionName

A String that contains the name of the new category definition.

Return Values

None.

Error Values

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_DEFINITION_EXISTS | &H8898000A | The specified category definition name already existed.

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.

Example

myCatalogManager.CreateCategoryDefinition "Housewares"

See Also

CatalogManager Object

CatalogManager.AddDefinitionProperty

CatalogManager.CreateProductDefinition

CatalogManager.DeleteDefinition


CatalogManager.CreateProductDefinition

Use this method to create a new product definition.

Definition

Sub CreateProductDefinition(
strDefinitionName As String
)

Parameters

strDefinitionName

A String that contains the name of the new product definition.

Return Values

None.

Error Values

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_DEFINITION_EXISTS | &H8898000A | The specified product definition name already existed.

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.

Example

myCatalogManager.CreateProductDefinition "Microwave"

See Also

CatalogManager Object

CatalogManager.AddDefinitionProperty

CatalogManager.AddDefinitionVariantProperty

CatalogManager.CreateCategoryDefinition

CatalogManager.DeleteDefinition


CatalogManager.CreateProperty

Use this method to create a new property.

Definition

Function CreateProperty(
strPropertyName As String,
eDataType As CatalogDataTypeEnum,
Optional varMaxLength As Variant
) As _Recordset

Parameters

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

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, which cannot be changed. Properties of data type cscFilePath have a fixed default value of 256, which cannot be changed.

Return Values

If this method completes successfully, it returns a Recordset object that contains the property attributes.

Error Values

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_PROP_EXISTS | &H88980003 | The specified property name already existed. Property names must be unique across the Product Catalog System.

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 recordset returned by this property is valid only if it is 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, 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

'varMaxLength is a Variant
'cscString is an enum of type cscEnumeration
varMaxLength = 128
Set rsNewPropAttribs = myCatalogManager.CreateProperty("Format", cscString, varMaxLength)

See Also

CatalogManager Object

CatalogManager.DeleteProperty

CatalogManager.GetPropertyAttributes

CatalogManager.SetPropertyAttributes


CatalogManager.CustomCatalogs

The CustomCatalogs property is a read-only recordset that describes the custom catalogs in the Product Catalog System, and the base catalogs on which they are based.

Definition

Property CustomCatalogs() As _Recordset

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Recordset object returned by this property is valid only if it was accessed successfully.

The Recordset object contains the following fields:

Field | Data Type | Description
CustomCatalogName | String, 128 Characters | None
CatalogName | String, 128 Characters | None
CustomCatalogID | Integer | The number that uniquely identifies a catalog.
TimeStamp | timestamp | None

The Recordset object is sorted on the CustomCatalogName field.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

CatalogManager.Catalogs


CatalogManager.DeleteCatalog

Use this method to delete a catalog and derived custom catalogs from the Product Catalog System.

Definition

Sub DeleteCatalog(
strCatalogName As String
)

Parameters

strCatalogName

A String that contains the name of the catalog to be deleted.

Return Values

None.

Error Values

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 | &H88980002 | The specified catalog did not exist.

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

  • 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 and custom catalogs that were derived from it.

Example

myCatalogManager.DeleteCatalog "OurStore"

See Also

CatalogManager Object

CatalogManager.CreateCatalog


CatalogManager.DeleteDefinition

Use this method to delete a definition from the Product Catalog System.

Definition

Sub DeleteDefinition(
strDefinitionName As String,
Optional fForceDelete As Boolean
)

Parameters

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 only be deleted if it is not currently being used in a catalog. The default value is False.

Return Values

None.

Error Values

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_DEFINITION_DOESNT_EXIST | &H8898000B | The definition you specified did not exist.
E_CAT_DEFINITION_USED_IN_CATALOG | &H8898000C | This error is only returned when the fForceDelete parameter was set to False and the definition was already used in a catalog.

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.

Example

myCatalogManager.DeleteDefinition "T-Shirts", FALSE

See Also

CatalogManager Object

CatalogManager.CreateCategoryDefinition

CatalogManager.CreateProductDefinition


CatalogManager.DeleteProperty

Use this method to delete a property from the Product Catalog System.

Definition

Sub DeleteProperty(
strPropertyName As String
)

Parameters

strPropertyName

A String that contains the name of the property to be deleted.

Return Values

None.

Error Values

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_PROP_DOESNT_EXIST | &H88980005 | The specified property did not exist.
E_CAT_PROP_IS_ID | &H88980011 | The specified property is used as either the ProductID property or VariantID property in one or more catalogs. These properties are defined when the catalog is created and cannot be removed.
E_CAT_PROP_STILL_IN_DEF | &H88980004 | The specified property is used in a definition. Call the RemoveDefinitionProperty method to remove the property from the definition before calling this method.

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

myCatalogManager.DeleteProperty "Width"

See Also

CatalogManager Object

CatalogManager.CreateProperty


CatalogManager.ExportCSV

Use this method to export catalog data to a comma-separated values format file.

Definition

Sub ExportCSV(
strCSVDestination As String,
strCatalogToExport As String
fRunSynchronously As Boolean
)

Parameters

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.

Return Values

None.

Error Values

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 | &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 | &H88980018 | The method was unable to create the output file.

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 comma-separated values (CSV) file generated only contains products. The categories, relationships, and hierarchy are not written to the CSV file.

Note

  • 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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

myCatalogManager.ExportCSV "c:\exports\ourcatalog.csv", "OurStore"

See Also

CatalogManager Object

CatalogManager.ExportXML

CatalogManager.ImportCSV


CatalogManager.ExportXML

Use this method to export catalog data to an Extensible Markup Language (XML) file.

Definition

Sub ExportXML(
strXMLFilePath As String,
Optional strCatalogsToExport As Variant
VARIANT_BOOL fRunSynchronously
)

Parameters

strXMLFilePath

A String that contains the path and file name of the XML file to be created.

strCatalogsToExport

A Variant 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.

Return Values

None.

Error Values

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 | &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 | &H88980018 | The method was unable to create the output file.

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 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.

Note

  • 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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

myCatalogManager.ExportXML "c:\exports\ourcatalog.xml", "OurStore"

See Also

CatalogManager Object

CatalogManager.ExportCSV

CatalogManager.ImportXML


CatalogManager.FreeTextSearch

Use this method to perform a free-text search of catalogs.

Definition

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

A String that contains the search phrase.

strCatalogsToSearch

A Variant that contains the catalogs to search in a comma-separated list. An empty string indicates search all catalogs.

eClassTypeRequired

A VARIANT that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section below.

strPropertiesToReturn

A Variant that contains the properties to return. This is a comma-delimited String.

strPropertyToSortOn

A Variant 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

A Variant that contains the number of the starting record to retrieve. This is an offset from the first record.

lRecordsToRetrieve

A Variant that contains the number of records to retrieve starting from the starting record.

plTotalRecordsInQuery

A Variant used to return the number of records returned in the search.

Return Values

If this method completes successfully, it returns a Recordset object that contains the search results.

Error Values

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_MULTI_CAT_QUERY_NEEDS_PROPS | &H8898000F | The strPropertiesToReturn parameter must be specified if the search is done across multiple catalogs.
E_CAT_NO_CATALOGS | &H88980013 | There were no catalogs in the Product Catalog System.

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 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 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, 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.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

CatalogManager Object

CatalogManager.Query


CatalogManager.GetCatalog

Use this method to retrieve a specified catalog from the Product Catalog System.

Definition

Function GetCatalog(
strCatalogName As String
) As ProductCatalog

Parameters

strCatalogName

A String that contains the name of the catalog to be retrieved.

Return Values

If this method completes successfully, it returns the ProductCatalog object that contains the catalog specified.

Error Values

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 standard COM error value has a particular meaning in the context of this method:

S_FALSE

The catalog specified did not exist.

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 ProductCatalog object 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.

Example

Set oCatalog = myCatalogManager.GetCatalog("Cdcatalog")

See Also

CatalogManager Object

CatalogManager.CreateCatalog

CatalogManager.DeleteCatalog


CatalogManager.GetDefinitionProperties

Use this method to return the properties of the specified catalog or product definition.

Definition

Function GetDefinitionProperties(
strDefinitionName As String
) As _Recordset

Parameters

strDefinitionName

A String that contains the name of the definition whose properties will be returned.

Return Values

If this method completes successfully, it returns a Recordset that contains the properties of the specified definition.

Error Values

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_DEFINITION_DOESNT_EXIST | &H8898000B | The specified definition did not exist.

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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

Set rsDefProps = myCatalogManager.GetDefinitionProperties("T-Shirts")

See Also

CatalogManager Object

CatalogManager.AddDefinitionProperty

CatalogManager.AddDefinitionVariantProperty

CatalogManager.RemoveDefinitionProperty


CatalogManager.GetPropertyAttributes

Use this method to return the attributes of the specified property.

Definition

Function GetPropertyAttributes(
strPropertyName As String
) As _Recordset

Parameters

strPropertyName

A String that contains the name of the property whose attributes will be returned.

Return Values

If this method completes successfully, it returns a Recordset object that contains the list of attributes for the specified property

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 using the global Err object. In particular, the Description property may contain a text description of the error.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

Set rsPropAttribs = myCatalogManager.GetPropertyAttributes("Size")

See Also

CatalogManager Object

CatalogManager.SetPropertyAttributes


CatalogManager.GetPropertyValues

Use this method to return the list of values defined for an enumeration property.

Definition

Function GetPropertyValues(
strPropertyName As String
) As _Recordset

Parameters

strPropertyName

A String that contains the name of the enumeration property for which the defined values will be returned.

Return Values

If this method completes successfully, it returns a Recordset object that contains the defined values in the enumeration.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The returned recordset contains 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

Set rsEnumValues = myCatalogManager.GetPropertyValues("Color")

See Also

CatalogManager Object

CatalogManager.AddPropertyValue

CatalogManager.RemovePropertyValue


CatalogManager.ImportCSV

Use this method to import a comma-separated-value (CSV) format file as catalog data.

Definition

Sub ImportCSV(
strCSVFileSource As String,
strProductIDColumnName As String,
strPriceColumnName As String,
strCatalogName As String,
fUpdateOnly As Boolean
fRunSynchronously As Boolean
)

Parameters

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.

Return Values

None.

Error Values

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 | &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_OPEN_ERROR | &H88980020 | The method was unable to open the file.

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 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 my 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 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.

Example

myCatalogManager.ImportCSV "c:\imports\ourcatalog.csv", "SKU", "Price", "OurCatalog", TRUE

See Also

CatalogManager Object

CatalogManager.ExportCSV

CatalogManager.ImportXML


CatalogManager.ImportXML

Use this method to import an Extensible Markup Language (XML) file as catalog data.

Definition

Sub ImportXML(
strXMLFilePath As String,
fUpdateOnly As Boolean
fRunSynchronously As Boolean
)

Parameters

strXMLFilePath

A String that contains the path and file name of the XML file to 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.

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.

Return Values

None.

Error Values

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 | &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_OPEN_ERROR | &H88980020 | The method was unable to open the file.

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 schema of the data being imported matches the schema of the existing catalog. For more information about the catalog schema, see Import Semantic.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Note

  • 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 ImportXMLmethod 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 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 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.

Example

myCatalogManager.ImportXML "c:\imports\ourcatalog.xml", TRUE

See Also

CatalogManager Object

CatalogManager.ExportXML

CatalogManager.ImportCSV


CatalogManager.Initialize

Use this method to initialize a CatalogManager object. This method should be called once before calling any other methods or properties.

Definition

Sub Initialize(
strConfigString As String,
fIsADOConnectionString As Boolean
)

Parameters

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.

Return Values

None.

Error Values

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 | &H88980062 | The CatalogManager objects was already initialized.

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

myCatalogManager.Initialize strConfigString, TRUE

See Also

CatalogManager Object


CatalogManager.ProductDefinitions

The ProductDefinitions property is a read-only Recordset object that contains the names of all the product definitions in the Product Catalog System.

Definition

Property ProductDefinitions() As _Recordset

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

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 VARIANT_TRUE.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

CatalogManager.CreateProductDefinition

CatalogManager.DeleteDefinition


CatalogManager.Properties

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

Function Properties(
Optional strCatalogName As Variant
) As _Recordset

Parameters

strCatalogName

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.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

Set rsProps = myCatalogManager.Properties ("ShoesCatalog")

See Also

CatalogManager Object

CatalogManager.CreateProperty

CatalogManager.DeleteProperty


CatalogManager.Query

Use this method to perform queries against product, variant, and category data in one or more catalogs.

Definition

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

A String that contains the search phrase.

strCatalogsToSearch

A Variant that contains the catalogs to search as a comma-separated list. An empty string indicates search all catalogs.

eClassTypeRequired

A Variant that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section below.

strPropertiesToReturn

A Variant that contains the properties to return as a comma-separated list.

strPropertyToSortOn

A Variant 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

A Variant that contains the starting record to retrieve. This is an offset from the first record.

lRecordsToRetrieve

A Variant that contains the number of records to retrieve, beginning from the starting record.

plTotalRecordsInQuery

A Variant used to return the total number of records matching the query.

Return Values

If this method completes successfully, it returns a Recordset object containing the search results.

Error Values

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_MULTI_CAT_QUERY_NEEDS_PROPS | &H8898000F | The strPropertiesToReturn parameter must be specified if the search is done across multiple catalogs.
E_CAT_NO_CATALOGS | &H88980013 | There were no catalogs in the Product Catalog System.

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 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 similarly 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 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.

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.

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.

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

CatalogManager Object

CatalogManager.FreeTextSearch


CatalogManager.RemoveDefinitionProperty

Use this method to remove the specified property or variant property from the specified definition.

Definition

Sub RemoveDefinitionProperty(
strDefinitionName As String,
strPropertyName As String
)

Parameters

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.

Return Values

None.

Error Values

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_DEFINITION_DOESNT_EXIST | &H8898000B | The specified definition did not exist.
E_CAT_PROP_NOT_IN_DEFINITION | &H8898000E | The specified property was not included in this definition.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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.

Example

myCatalogManager.RemoveDefinitionProperty "T-Shirts", "Color"

See Also

CatalogManager Object

CatalogManager.AddDefinitionProperty

CatalogManager.AddDefinitionVariantProperty

CatalogManager.GetDefinitionProperties


CatalogManager.RemovePropertyValue

Use this method to remove a defined value from an enumeration property.

Definition

Sub RemovePropertyValue(
strPropertyName As String,
strLegalValue As String
)

Parameters

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 as a choice from the specified enumeration property.

Return Values

None.

Error Values

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_PROP_DOESNT_EXIST | &H88980005 | The specified property did not exist.
E_CAT_PROP_NOT_ENUM | &H88980007 | The specified property was not of type cscEnumeration. Call this method only for enumeration type properties.

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.

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.

Example

myCatalogManager.RemovePropertyValue "Color", "Pink"

See Also

CatalogManager Object

CatalogManager.AddPropertyValue

CatalogManager.GetPropertyValues


CatalogManager.RenameDefinition

Use this method to rename a definition.

Definition

Sub RenameDefinition(
strOldName As String,
strNewName As String
)

Parameters

strOldName

A String that contains the existing name of the definition.

strNewName

A String that contains the wanted name of the definition.

Return Values

None.

Error Values

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_DEFINITION_DOESNT_EXIST | &H8898000B | The specified old definition name did not exist.
E_CAT_DEFINITION_EXISTS | &H8898000A | A definition with the specified new name already existed.

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.

Example

myCatalogManager.RenameDefinition "T-Shirts", "Tee-Shirts"

See Also

CatalogManager Object

CatalogManager.RenameProperty


CatalogManager.RenameProperty

Use this method to rename a property.

Definition

Sub RenameProperty(
strOldPropertyName As String,
strNewPropertyName As String
)

Parameters

strOldPropertyName

A String that contains the existing name of the property.

strNewPropertyName

A String that contains the wanted name of the property.

Return Values

None.

Error Values

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_PROP_DOESNT_EXIST | &H88980005 | The specified old property name did not exist.
E_CAT_PROP_EXISTS | &H88980003 | A property with the specified new property name already existed.
E_CAT_PROP_IS_ID | &H88980011 | The property name you specified was used as a ProductID or VariantID of a catalog. These properties are specified when a catalog is created and cannot be renamed or deleted.

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

myCatalogManager.RenameProperty "Weight", "Wt."

See Also

CatalogManager Object

CatalogManager.RenameDefinition


CatalogManager.SetDefinitionProperties

Use this method to change the properties of a category or product definition.

Definition

Sub SetDefinitionProperties(
strDefinitionName As _String,
pRSNewState As _Recordset,
)

Parameters

strDefinitionName

A String that contains the name of the definition.

pRSProperties

A _Recordset that specifies the new properties.

Return Values

None.

Error Values

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_PROP_DOESNT_EXIST | &H88980005 | There was no property with the name you specified.
E_CAT_PROP_CHANGED | &H88980006 | The attributes of the property have changed since the property was last read. This error occurs when the sForceUpdate parameter is False, and the attributes were modified after a call to the CreateProperty or GetPropertyAttributes methods.

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

myCatalogManager.SetDefinitionProperties "Shirt",pRSProperties

See Also

CatalogManager Object

CatalogManager.CreateProperty


CatalogManager.SetPropertyAttributes

Use this method to change the attributes of a property.

Definition

Sub SetPropertyAttributes(
pRSNewState As _Recordset,
Optional fForceUpdate As Variant
)

Parameters

pRSNewState

A _Recordset object that specifies the new attribute values.

fForceUpdate

A Variant that specifies whether or not to force an update.

Return Values

None.

Error Values

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_PROP_CHANGED | &H88980006 | The attributes of the property have changed since the property was last read. This error occurs when the sForceUpdate parameter is False, and the attributes were modified after a call to the CreateProperty or GetPropertyAttributes methods.
E_CAT_PROP_DOESNT_EXIST | &H88980005 | There was no property with the name you specified.

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 timestamp can be compared with the timestamp of the existing property for error detection. You can change all attributes for a property except its data type.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

myCatalogManager.SetPropertyAttributes pRSNewState, TRUE

See Also

CatalogManager Object

CatalogManager.CreateProperty

CatalogManager.GetPropertyAttributes


PropertyAttribute Recordset

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 Object

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.

ProgID: | Commerce.CatalogSets (Externally creatable)
COM Class Name: | CatalogSets
Type Library Name: | Microsoft Commerce 2000 Catalog Sets Type Library
DLL Name: | CatalogSets.dll
Threading Model: | Apartment

The methods of the CatalogSets object are shown in the following table.

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

Use this method to create a new catalog set in the catalog database.

Definition

Function CreateCatalogSet(
CatalogSetName As String,
CatalogSetDescription As String,
bWildCard As Boolean,
Optional CatalogNamesRS As _Recordset
) As String

Parameters

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

If this method completes successfully, it returns a String that contains the ID of the new catalog set.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

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

CatalogSets Object


CatalogSets.DeleteCatalogSet

Use this method to delete an existing catalog set from the Catalog database.

Definition

Sub DeleteCatalogSet(
CatalogSetID As String
)

Parameters

CatalogSetID

A String that contains the ID of the catalog set to be deleted.

Return Values

None.

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 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.

Example

'strCatalogSetID1 is a GUID
myCatalogSets.DeleteCatalogSet strCatalogSetID1

See Also

CatalogSets Object


CatalogSets.GetCatalogs

Use this method to return a list of all catalogs.

Definition

Function GetCatalogs() As Recordset

Parameters

None.

Return Values

If this method completes successfully, it returns a Recordset object that contains the list of all 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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

Example

set rsMyCatalogs = myCatalogSets.GetCatalogs()

See Also

CatalogSets Object


CatalogSets.GetCatalogSetIDForUser

Use this method to return the CatalogSetID for a specific user.

Definition

Function GetCatalogSetIDForUser(
objProfileService As IDispatch,
user_id As String,
defaultCatalogSetID As String
) As Variant

Parameters

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

If this method completes successfully, it returns a Variant that contains the CatalogSetID.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

Example

strCatalogSetID = myCatalogSets.GetCatalogSetIDForUser(oProfileService, user_id, defaultCatalogSetID)

See Also

CatalogSets Object

ProfileService Object


CatalogSets.GetCatalogSetInfo

Use this method to return the basic properties for a catalog set.

Definition

Function GetCatalogSetInfo(
CatalogSetID As String
) As Recordset

Parameters

CatalogSetID

A String that contains the catalog set ID, a GUID.

Return Values

If this method completes successfully, it returns a Recordset object.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

Example

'
set rsMyCatalogSetInfo = myCatalogSets.GetCatalogSetInfo(strCatalogSetID)

See Also

CatalogSets Object


CatalogSets.GetCatalogSets

Use this method to return a list of all catalog sets.

Definition

Function GetCatalogSets() As Recordset

Parameters

None.

Return Values

If this method completes successfully, it returns a Recordset object that contains the list of all catalog sets.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

Example

set rsMyCatalogSets = myCatalogSets.GetCatalogSets()

See Also

CatalogSets Object


CatalogSets.GetCatalogsForUser

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

Function GetCatalogsForUser(
objProfileService As IDispatch,
user_id As String,
defaultCatalogSetID As String
) As Recordset

Parameters

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

If this method completes successfully, it returns a Recordset object that contains the list of 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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

Example

Set objProfileService = Server.CreateObject("Commerce.ProfileService")
Call objProfileService.Initialize(sProfileServiceConnectionString, "Profile Definitions")
set rsCatalogSet = myCatalogSets.GetCatalogsForUser(objProfileService, user_id, defaultCatalogSetID)

See Also

CatalogSets Object


CatalogSets.GetCatalogsInCatalogSet

Use this method to return the catalogs that are included in a particular catalog set.

Definition

Function GetCatalogsInCatalogSet(
CatalogSetID As String
) As Recordset

Parameters

CatalogSetID

A String that contains the catalog set ID.

Return Values

If this method completes successfully, it returns a Recordset object that contains the list of 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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

Example

set rsCatalogNames = myCatalogSets.GetCatalogsInCatalogSet(CatalogSetID)

See Also

CatalogSets Object


CatalogSets.GetCatalogsNotInCatalogSet

Use this method to return the catalogs that are not included in a specified catalog set.

Definition

Function GetCatalogsNotInCatalogSet(
CatalogSetID As String
) As Recordset

Parameters

CatalogSetID

A String that contains the catalog set ID.

Return Values

If this method completes successfully, it returns a Recordset object.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

Example

'strCatalogSetID is the GUID of a catalog set
set rsCatalogs = myCatalogSets.GetCatalogsNotInCatalogSet(strCatalogSetID)

See Also

CatalogSets Object


CatalogSets.Initialize

Use this method to initialize a new CatalogSet object.

Definition

Sub Initialize(
CatalogConnectionString As String,
TransactionConfigConnectionString As String
)

Parameters

CatalogConnectionString

A String that contains the catalog connection string.

TransactionConfigConnectionString

A String that contains the transaction configuration connection string. Not used.

Return Values

None.

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 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.

Example

myCatalogSets.Initialize strCatalogConnection, ""

See Also

CatalogSets Object


CatalogSets.RemoveCatalogFromCatalogSets

Use this method to remove a catalog from all catalog sets.

Definition

Sub RemoveCatalogFromCatalogSets(
CatalogName As String
)

Parameters

CatalogName

A String that contains the catalog name to be removed.

Return Values

None.

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 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.

Example

MyCatalogManager.DeleteCatalog "Shoes"
myCatalogSets.RemoveCatalogFromCatalogSets "Shoes"

See Also

CatalogSets Object


CatalogSets.UpdateCatalogSet

Use this method to update an existing catalog set and its basic properties.

Definition

Sub UpdateCatalogSet(
CatalogSetID As String,
CatalogSetName As String,
CatalogSetDescription As String,
bWildCard As Boolean,
Optional CatalogNamesRS As Recordset
)

Parameters

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

None.

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 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

'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

CatalogSets Object


CatalogToVendorAssociation Object

Use this object to associate catalogs with vendors.

ProgID: | Commerce.CatalogToVendorAssociation (Externally creatable)
COM Class Name: | CatalogToVendorAssociation
Type Library Name: | Microsoft Commerce 2000 Catalog Vendor Association Type Library
DLL Name: | CatalogVendorAssociation.dll
Threading Model: | Apartment

The methods of the CatalogToVendorAssociation object are shown in the following table.

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

Use this method to retrieve information about the vendor associated with the specified catalog.

Definition

Function GetVendorInfoForCatalog(
szCatalogID As String
) As Recordset

Parameters

szCatalogID

A String that contains the ID of the catalog for which vendor information will be returned.

Return Values

If this method completes successfully, it returns an ADO Recordset object containing the requested vendor information.

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 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

set rsVendorInfo = myCatalogToVendorAssociation.GetVendorInfoForCatalog(szCatalogID)

See Also

CatalogToVendorAssociation Object


CatalogToVendorAssociation.GetVendorList

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

Function GetVendorList(
szSourceAliasQualifier As String,
szSourceAliasValue As String,
szInputDocumentName As String
) As Recordset

Parameters

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

If this method completes successfully, it returns an ADO Recordset object containing the requested list of vendors.

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 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

set rsVendorList = myCatalogToVendorAssociation.GetVendorList(szSourceAliasQualifier, szSourceAliasValue, szInputDocumentName)

See Also

CatalogToVendorAssociation Object


CatalogToVendorAssociation.Initialize

Use this method to initialize a CatalogToVendorAssociation object.

Definition

Sub Initialize(
vConnectionString As String
)

Parameters

vConnectionString

A String that contains the connection string for the database containing the catalog to vendor associations.

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 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

myCatalogToVendorAssociation.Initialize vConnectionString

See Also

CatalogToVendorAssociation Object


CatalogToVendorAssociation.SpecifyVendorForCatalog

Use this method to associate a vendor with a particular catalog.

Definition

Sub SpecifyVendorForCatalog(
szCatalogID As String,
szVendorQualifier As String,
szVendorQualifierValue As String,
szVendorName As String
)

Parameters

szCatalogID

A String that contains the identifier of the catalog with which to associated 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.

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 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

myCatalogToVendorAssociation.SpecifyVendorForCatalog szCatalogID, szVendorQualifier, szVendorQualifierValue, szVendorName

See Also

CatalogToVendorAssociation Object


CatalogToVendorAssociation.UnspecifyVendorForCatalog

Use this method to disassociate a catalog with any previously associated vendors.

Definition

Sub UnspecifyVendorForCatalog(
szCatalogID As String
)

Parameters

szCatalogID

A String that contains the identifier of the catalog for which no vendors should be associated.

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 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

myCatalogToVendorAssociation.UnspecifyVendorForCatalog szCatalogID

See Also

CatalogToVendorAssociation Object


Category Object

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 2000 Catalog Type Library
DLL Name: | Catalog.dll
Threading Model: | Both

The properties of the Category object are shown in the following table.

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.
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.

The methods of the Category object are shown in the following table.

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.
SetCategoryProperties | Assigns new properties to a category.

Remarks

The Category object is a dependent object. Obtain a reference to it by calling one of the following methods:

  • ProductCatalog.CreateCategory

  • ProductCatalog.GetCategory


Category.AddChildCategory

Use this method to add a category as a child to this category.

Definition

Sub AddChildCategory(
strCategoryName As String
)

Parameters

strCategoryName

A String that contains the name of the category to be added as a child to this category.

Return Values

None.

Error Values

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_CATEGORY_ALREADY_ADDED | &H8898002D | The specified category has already been added as child to this category.
E_CAT_CATEGORY_DOESNT_EXIST | &H8898001C | The specified category did not exist.
E_CAT_INVALID_CHILDCATEGORY | &H8898005D | The category that you specified already exists as a parent of this category.
E_CAT_INVALID_RELATION | &H88980039 | A category cannot be a parent or child of itself.

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

myCategory.AddChildCategory "shirts"

See Also

Category Object

Category.AddParentCategory

Category.RemoveChildCategory


Category.AddParentCategory

Use this method to add the specified category as a parent of this category.

Definition

Sub AddParentCategory(
strCategoryName As String
)

Parameters

strCategoryName

A String that contains the name of the category to be added as a parent to this category.

Return Values

None.

Error Values

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_CATEGORY_ALREADY_ADDED | &H8898002D | The specified category was already a child of this category.
E_CAT_CATEGORY_DOESNT_EXIST | &H8898001C | The specified category did not exist.
E_CAT_PARENT_CAT_EXISTS_AS_CHILD | &H88980052 | The category that you specified as a parent category already existed as a child category for this category.
E_CAT_INVALID_RELATION | &H88980039 | A category cannot be a parent or child of itself.

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

myCategory.AddParentCategory "Apparel"

See Also

Category Object

Category.AddChildCategory

Category.RemoveParentCategory


Category.AddProduct

Use this method to add the specified product to this category.

Definition

Sub AddProduct(
varProductID As Variant
)

Parameters

varProductID

A Variant that contains the of the product to be added.

Return Values

None.

Error Values

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_PRODUCT_DOESNT_EXIST | &H8898001E | The specified product did not exist in the catalog.
E_CAT_PRODUCT_ALREADY_ADDED | &H88980029 | The specified product was already in this category.

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.

Example

myCategory.AddProduct "SKU4005"

See Also

Category Object

Category.RemoveProduct


Category.AddRelationshipToCategory

Use this method to add a relationship from this category to another specified category.

Definition

Sub AddRelationshipToCategory(
strRelatedCategoryName As String,
strRelationshipName As String,
Optional strRelationshipDescription As Variant
)

Parameters

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

A Variant of sub type String that contains an optional description for the relationship.

Return Values

None.

Error Values

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_CATEGORY_DOESNT_EXIST | &H8898001C | The specified category did not exist.
E_CAT_INVALID_RELATION | &H88980039 | The relationship was invalid. A category or product cannot be related to itself.
E_CAT_INVALID_RELATION_DESC | &H88980055 | The relationship description exceeded 256 characters.
E_CAT_INVALID_RELATION_NAME | &H88980054 | The relationship name exceeded 128 characters.
E_CAT_RELATIONSHIP_EXISTS | &H88980033 | The specified relationship already existed.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

myCategory.AddRelationshipToCategory "Apparel", "Accessory", "This would go great with that!"

See Also

Category Object

Category.RemoveRelationshipToCategory


Category.AddRelationshipToProduct

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

Sub AddRelationshipToProduct(
varRelatedProductID As Variant,
strRelationshipName As String,
Optional strRelationshipDescription As Variant
)

Parameters

varRelatedProductID

A Variant that contains the ID of the related product.

strRelationshipName

A String that contains a name for the relationship.

strRelationshipDescription

A Variant that contains an optional description for the relationship.

Return Values

None.

Error Values

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_RELATION | &H88980039 | The relationship was invalid. A category or product cannot be related to itself
E_CAT_INVALID_RELATION_DESC | &H88980055 | The relationship description exceeded 256 characters
E_CAT_INVALID_RELATION_NAME | &H88980054 | The relationship name exceeded 128 characters
E_CAT_PRODUCT_DOESNT_EXIST | &H8898001E | The specified product did not exist.
E_CAT_RELATIONSHIP_EXISTS | &H88980033 | There was already a relationship with the specified product.

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.

When multiple relationships are created between a category and product, each relationship must have a unique name.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

myCategory.AddRelationshipToProduct "SKU4005", "Accessory", "This would go great with that"

See Also

Category Object

Category.RemoveRelationshipToProduct


Category.AncestorCategories

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

Property AncestorCategories() As Recordset

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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, named Name.

See Also

Category Object

Category.ParentCategories

Category.ChildCategories


Category.CatalogName

The CatalogName property is a read-only String that contains the name of the catalog within which this category exists.

Definition

Property CatalogName() As String

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The CatalogName property contains valid data only if the property is accessed successfully.

See Also

Category Object


Category.CategoryName

The CategoryName property is a read-only String that contains the name of this category.

Definition

Property CategoryName() As String

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The CategoryName property contains valid data only if the property is accessed successfully.

See Also

Category Object


Category.ChildCategories

The ChildCategories property is a read-only Recordset object that contains the names of categories that exist below this category in the hierarchy.

Definition

Property ChildCategories() As Recordset

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

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.

If this category 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

Category Object

Category.ParentCategories

Category.AncestorCategories


Category.DescendantProducts

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

Property DescendantProducts(
Optional eClassTypeRequired As Variant,
Optional lStartingRecord As Variant,
Optional lRecordsToRetrieve As Variant,
Optional plTotalRecordsInQuery As Variant
) As Recordset

Parameters

eClassTypeRequired

A Variant that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration. For more information, see the Remarks section.

lStartingRecord

A Variant that contains the starting record.

lRecordsToRetrieve

A Variant that contains the number of records to retrieve.

plTotalRecordsInQuery

A Variant used to return the total number of records in the query.

Error Values

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 gets all the products, which 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Category Object

Category.RelatedProducts

Category.Products


Category.GetCategoryProperties

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

Property GetCategoryProperties() As Recordset

Parameters

None.

Error Values

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_CATEGORY_DOESNT_EXIST | &H8898001C | This category has been removed from the catalog.

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 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 recordset returned is updateable, but disconnected. If this category has been deleted from the database, this property returns an error.

See Also

Category Object

Category.SetCategoryProperties


Category.ParentCategories

The ParentCategories property is a read-only recordset that contains the names of the parent categories of this category.

Definition

Property ParentCategories() As Recordset

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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 single 128-character string column named Name, and one row for each parent that exists.

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

Category Object

Category.AncestorCategories

Category.ChildCategories


Category.Products

The Products property is a read-only recordset that contains product data for all of the products that exist directly within this category.

Definition

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

A Variant that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration. For more information, see the Remarks section.

strPropertyToSortOn

A Variant that contains the property to sort on.

lStartingRecord

A Variant that contains the starting record number.

lRecordsToRetrieve

A Variant that contains the number of records to retrieve.

plTotalRecordsInQuery

A Variant used to return the total number of records in the query.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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 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.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Category Object

Category.DescendantProducts

Category.RelatedProducts


Category.RelatedCategories

The RelatedCategories property is a read-only recordset that contains all categories related to this category.

Definition

Property RelatedCategories() As Recordset

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

See Also

Category Object

Category.AncestorCategories

Category.ChildCategories

Category.ParentCategories

Category.AddRelationshipToCategory

Category.RemoveRelationshipToCategory


Category.RelatedProducts

The RelatedProducts property is a read-only recordset containing information about all products related to this category.

Definition

Property RelatedProducts() As Recordset

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

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.

See Also

Category Object

Category.DescendantProducts

Category.Products

Category.AddRelationshipToProduct

Category.RemoveRelationshipToProduct


Category.RemoveChildCategory

Use this method to remove a category that is a child of this category.

Definition

Sub RemoveChildCategory(
strCategoryName As String
)

Parameters

strCategoryName

A String that contains the name of the category to be removed as a child of this category.

Return Values

None.

Error Values

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_CATEGORY_DOESNT_EXIST | &H8898001C | The category you specified either did not exist or was not a child of this category.

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 named in the strCategoryName parameter does not exist, then this method will fail.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

myCategory.RemoveChildCategory "T-Shirts"

See Also

Category Object

Category.AddChildCategory

Category.RemoveParentCategory


Category.RemoveParentCategory

Use this method to remove the specified category as a parent of this category.

Definition

Sub RemoveParentCategory(
strCategoryName As String
)

Parameters

strCategoryName

A String that contains the name of the category to be removed as a parent to this category.

Return Values

None.

Error Values

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_CATEGORY_DOESNT_EXIST | &H8898001C | The category you specified either did not exist or was not a parent of this category.

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 named in the strCategoryName parameter does not exist, then this method will fail.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

myCategory.RemoveParentCategory "Apparel"

See Also

Category Object

Category.AddParentCategory

Category.RemoveChildCategory


Category.RemoveProduct

Use this method to remove a product from this category.

Definition

Sub RemoveProduct(
varProductID As Variant
)

Parameters

varProductID

A Variant that contains the product ID.

Return Values

None.

Error Values

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_PRODUCT_DOESNT_EXIST | &H8898001E | The product you specified did not exist.

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

myCategory.RemoveProduct "Widget"

See Also

Category Object

Category.AddProduct


Category.RemoveRelationshipToCategory

Use this method to remove a relationship between the specified category and this category.

Definition

Sub RemoveRelationshipToCategory(
strRelatedCategoryName As String,
strRelationshipName As String
)

Parameters

strRelatedCategoryName

A String that contains the name of the related category.

strRelationshipName

A String that contains the name of the relationship.

Return Values

None.

Error Values

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_CATEGORY_DOESNT_EXIST | &H8898001C | The category you specified either did not exist or was not a parent of this category.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | &H88980045 | The specified relationship did not exist.

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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

myCategory.RemoveRelationshipToCategory "Gadget", "Accessory"

See Also

Category Object

Category.AddRelationshipToCategory

Category.RemoveRelationshipToProduct


Category.RemoveRelationshipToProduct

Use this method to remove a relationship between the specified product and this category.

Definition

Sub RemoveRelationshipToProduct(
varRelatedProductID As Variant,
strRelationshipName As String
)

Parameters

varRelatedProductID

A Variant that contains the ID of the related product.

strRelationshipName

A String that contains the name of the relationship.

Return Values

None.

Error Values

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_DEFN_NO_RELATIONSHIP_EXISTS &H88980045
            The specified relationship did not exist.
    E_CAT_PRODUCT_DOESNT_EXIST | &H8898001E | The specified product did not exist.

    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 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.

    For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

    Example

    myCategory.RemoveRelationshipToProduct "Gadget", "FeaturedProduct"

    See Also

    Category Object

    Category.AddRelationshipToProduct


Category.SetCategoryProperties

Use this method to set values for the properties of this category.

Definition

Sub SetCategoryProperties(
pRSCategory As _Recordset,
Optional fForceUpdate As Variant
)

Parameters

pRSCategory

A Recordset object that contains the properties for this category.

fForceUpdate

A Variant that causes a forced update of the category properties.

Return Values

None.

Error Values

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_CATEGORY_CHANGED | &H88980028 | The properties of this category have changed since they were last read. This error is returned only if the fForceUpdate parameter is set to False.
E_CAT_CATEGORY_DOESNT_EXIST | &H8898001C | This category has been removed from the catalog.
E_CAT_INVALIDVALUE_FOR_PROPERTY &H88980038 This error is returned if:
  • One of the properties did not satisfy the Min/Max condition.

  • The properties of string or enumeration data type exceeded the maximum length.

  • The value of the enumeration property was not one of the legal values defined.
E_CAT_NULL_PRICE_NOT_ALLOWED | &H8898003F | The OriginalPrice field in the pRSCategory recordset was blank or NULL. This field is required if the category is used as a pricing category.

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 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

myCategory.SetCategoryProperties pRSCategory, "TRUE"

See Also

Category Object


ContentList Object

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 2000 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both

The properties of the ContentList object are shown in the following table.

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 or not 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.

The methods of the ContentList object are shown in the following table.

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.

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.

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.


ContentList.ActiveRows

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

Property ActiveRows() As IRowCollection

Parameters

None.

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 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

ContentList Object

RowCollection Object


ContentList.AdjustScore

Use this method to adjust the score of an item in the ContentList object by applying a multiplier.

Definition

Sub AdjustScore(
RowNum As Long,
Multiplier As Float,
Component As String,
Description As String
)

Parameters

RowNum

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

A Float 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.

Return Values

None.

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 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.

Example

myContentList.AdjustScore 1, 1.25

See Also

ContentList Object


ContentList.AllRows

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

Property AllRows() As IRowCollection

Parameters

None.

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 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

ContentList Object

RowCollection Object


ContentList.BuildIndex

Use this method to build an index for a specific column in a ContentList object.

Definition

Sub BuildIndex(
vCol As Variant
)

Parameters

vCol

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

None.

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 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.

Example

myDataContainer.BuildIndex 10

See Also

ContentList Object


ContentList.Count

The Count property is a read/write number that gets or sets the number of items in a ContentList object.

Definition

Property Count() As Long

Parameters

None.

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 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

ContentList Object


ContentList.Factory

The Factory property is a read-only reference to the ContentListFactory object that created this ContentList object.

Definition

Property Factory As ContentListFactory

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

ContentList Object


ContentList.Fields

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

Property Fields(
RowNum As Long
) As Fields

Parameters

RowNum

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).

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 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

ContentList Object


ContentList.Filter

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

Sub Filter(
vColumn As Variant,
vFilterCriteria As Variant,
FilterAction As FilterActionEnum,
Component As String
)

Parameters

vColumn

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

A Variant 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.

Return Values

None.

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 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 2000 pass their own Programmatic Identifier (ProgID) for the Component parameter.

Example

myContentList.Filter "Score", 3, FILTER_EXCLUDE

See Also

ContentList Object


ContentList.GetData

Due to performance considerations and compatibility issues, this method cannot be used from Microsoft Visual Basic or Microsoft Visual Basic Scripting Edition (VBScript).

See Also

ContentList Object


ContentList.GetScore

Use this method to retrieve the score of an item in a ContentList object.

Definition

Function GetScore(
RowNum As Long
) As Float

Parameters

RowNum

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).

Return Values

If this method completes successfully, it returns a Float that contains the score for the specified item.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Example

'sngScore is a float
sngScore = myContentList.GetScore(12)

See Also

ContentList Object


ContentList.RowLimit

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

Property RowLimit() As Long

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

ContentList Object

ContentList.ActiveRows


ContentList.Search

Use this method to create a RowCollection object that allows access to each item in the ContentList object that matches the specified criterion.

Definition

Function Search(
vCol As Variant,
vSearchCriteria As Variant
) As IRowCollection

Parameters

vCol

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

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.

Return Values

If this method completes successfully, it returns a reference to a new RowCollection object that contains one row for each matching item.

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 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.

Example

'myCol is a RowCollection object
Set myCol = myContentList.Search(10, "CarAds")

See Also

ContentList Object


ContentList.SetData

Due to performance considerations, this method cannot be used from Microsoft Visual Basic or Microsoft Visual Basic Scripting Edition (VBScript).

See Also

ContentList Object


ContentList.SetScore

Use this method to set a new score for an item in a ContentList object.

Definition

Sub SetScore(
RowNum As Long,
Score As Float,
Component As String,
Description As String
)

Parameters

RowNum

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

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.

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.

Return Values

None.

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 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 2000 pass the Programmatic Identifier (ProgID) of the component for the Component parameter.

Example

'strProgID is a string
myContentList.SetScore(123456, 0.5, strProgID, "")

See Also

ContentList Object


ContentList.Sorted

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

Property Sorted() As Boolean

Parameters

None.

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 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

ContentList Object


ContentList.Threshold

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

Property Threshold() As float

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

ContentList Object


ContentList.TraceMessages

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

Property TraceMessages(
RowNum As Long
) As ISimpleList

Parameters

RowNum

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).

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 using the global Err object. In particular, the Description property may contain a text description of the error.

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".

See Also

ContentList Object

ContentList.TraceMode


ContentList.TraceMode

The TraceMode property is a read/write Boolean that controls whether score tracing is enabled or suppressed.

Definition

Property TraceMode() As Boolean

Parameters

None.

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 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 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.

See Also

ContentList Object


ContentListFactory Object

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 2000 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both

The properties of the ContentListFactory object are shown in the following table.

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.

The methods of the ContentListFactory object are shown in the following table.

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.

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


ContentListFactory.AllRows

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

Property AllRows() As IRowCollection

Parameters

None.

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 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

ContentListFactory Object

RowCollection Object


ContentListFactory.BuildIndex

Use this method to build an index for a specific column in a ContentListFactory object.

Definition

Sub BuildIndex(
vCol As Variant
)

Parameters

vCol

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

None.

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 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

call myContentListFactory.BuildIndex("AdType")

See Also

ContentListFactory Object


ContentListFactory.ConstructFromRecordset

Use this method to initialize a new ContentListFactory object, and create and initialize a new ContentListSchema object, from an ADO Recordset object.

Definition

Sub ConstructFromRecordset(
Recordset As _Recordset,
Skip As Variant,
Add As ContentListSchema
)

Parameters

Recordset

A reference to an ADO Recordset object from which the ContentList object will be constructed.

Skip

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

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

None.

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 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.

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 hierarchical Recordset objects are supported. The child Recordset objects are created in the ContentList object as a SimpleList of Dictionary objects.

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 Object


ContentListFactory.Count

The Count property is a read/write number that gets or sets the number of content items in a ContentListFactory object.

Definition

Property Count() As Long

Parameters

None.

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 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

ContentListFactory Object


ContentListFactory.CreateNewContentList

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

Function CreateNewContentList() As ContentList

Parameters

None.

Return Values

If this method completes successfully, it returns a reference to the new ContentList object.

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 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

set oMyContentList = myContentListFactory.CreateNewContentList()

See Also

ContentListFactory Object


ContentListFactory.Fields

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

Property Fields(
RowNum As Long
) As Fields

Parameters

RowNum

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.

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 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

ContentListFactory Object


ContentListFactory.GetData

Due to performance considerations, this method is not intended for use from Visual Basic or VBScript.

See Also

ContentListFactory Object


ContentListFactory.Schema

The Schema property is a ContentListSchema object that contains the schema used by this ContentListFactory object. The Schema property is read/write.

Definition

Property Schema() As ContentListSchema

Parameters

None.

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 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

ContentListFactory Object


ContentListFactory.Search

Use this method to create a RowCollection object that allows access to each item in the ContentListFactory object that matches the specified criterion.

Definition

Function Search(
vCol As Variant,
vSearchCriteria As Variant
) As IRowCollection

Parameters

vCol

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

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.

Return Values

If this method completes successfully, it returns a reference to a new RowCollection object that contains one row for each matching item.

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 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

set oMyRowCollection = myDataContainer.Search("AdType", "CarAds")

See Also

ContentListFactory Object


ContentListFactory.SetData

Due to performance considerations, this method is not intended for use from Visual Basic or VBScript.

See Also

ContentListFactory Object


ContentListSchema Object

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 2000 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both

The properties of the ContentListSchema object are shown in the following table.

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.

The methods of the ContentListSchema object are shown in the following table.

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

Use this method to add a new column to a schema for use by a ContentListFactory object and its associated ContentList objects.

Definition

Function Add(
sName As String,
Type As ColumnTypeEnum,
Flags As Long
) As Long

Parameters

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

A Long that contains the bit mask column flag settings for the new column.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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.

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

ContentListSchema Object


ContentListSchema.ColumnFlags

The ColumnFlags property is a read/write long that contains the column flags.

Definition

Property ColumnFlags(
vColumn As Variant
) As Long

Parameters

vColumn

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).

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 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

ContentListSchema Object


ContentListSchema.ColumnName

The ColumnName property is a read/write string that contains the name of the column.

Definition

Property ColumnName(
vColumn As Variant
) As String

Parameters

vColumn

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).

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 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

ContentListSchema Object


ContentListSchema.ColumnType

The ColumnType property is a read/write value from the ColumnTypeEnum enumeration, specifying the data type of the specified column.

Definition

Property ColumnType(
vColumn As Variant
) As ColumnTypeEnum

Parameters

vColumn

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).

[out,retval] When getting the property, a pointer used to return a value from the ColumnTypeEnum enumeration. See the Remarks section for more details.

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 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.

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.

See Also

ContentListSchema Object


ContentListSchema.Count

The Count property is a read-only value that contains the current number of columns in the schema.

Definition

Property Count() As Long

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

ContentListSchema Object


ContentListSchema.FindColumn

Use this method to find the position of a column specified by name.

Definition

Function FindColumn(
sName As String
) As Long

Parameters

sName

A String that contains the name of the column for which the position will be returned.

Return Values

If this method completes successfully, it returns a Long that contains the position of the new column.

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 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).

Example

'"Color" is the column name.
Dim iColumnNum as Long

iColumnNum = myContentListSchema.FindColumn("Color")

See Also

ContentListSchema Object


ContentListSchema.GetSchema

In the interest of high performance, this method is not intended for use from Microsoft Visual Basic or Microsoft Visual Basic Scripting Edition (VBScript).

See Also

ContentListSchema Object


ContentListSchema.Locked

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

Property Locked() As Boolean

Parameters

None.

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 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

ContentListSchema Object


ContentListSchema.SetSchema

In the interest of high performance, this method is not intended for use from Microsoft Visual Basic or Microsoft Visual Basic Scripting Edition (VBScript).

See Also

ContentListSchema Object


ContentSelector Object

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 2000 CSF Pipeline Component 1.0 Type Library
DLL Name: | CSFComp.dll
Threading Model: | Both

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.

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

Content Selection Objects


ContentSelector.GetContent

Use this method to execute a Content Selection pipeline and return the resulting content in a SimpleList object.

Definition

Function GetContent(
dictCSFContext As IDictionary,
) As ISimpleList

Parameters

dictCSFContext

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

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

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.

Example

For example code, see the sample in ContentSelector Object.

See Also

CacheManager Object

Content Selection Pipelines

ContentSelector Object


DataFunctions Object

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

The properties of the DataFunctions object are shown in the following table.

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.

The methods of the DataFunctions object are shown in the following table.

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.


DataFunctions.CleanString

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

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

A Variant that contains the text of the string to process.

vtMinLen

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

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

A Variant 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

A Variant 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

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

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.

Return Values

If this method completes successfully, it returns a string Variant that contains the processed string; otherwise, NULL is returned.

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 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

<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

DataFunctions Object

DataFunctions.Locale

Page.RequestString


DataFunctions.CloneObject

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

Function CloneObject(
pdispSource As Object
) As Object

Parameters

pdispSource

A reference to the SimpleList or Dictionary object to be cloned.

Return Values

If this method completes successfully, it returns a reference to the SimpleList or Dictionary object clone.

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 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

' dSource and dCopy are Dictionary objects
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")

dCopy = MSCSDataFunctions.CloneObject(dSource)

See Also

DataFunctions Object

DataFunctions.Locale


DataFunctions.ConvertDateString

Use this method to convert a date string to a date Variant, based on the default or specified locale.

Definition

Function ConvertDateString(
vtDate As Variant,
vtLocale As Variant
) As Variant

Parameters

vtDate

A Variant that contains a string representation of the date to convert.

vtLocale

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.

Return Values

If this method completes successfully, it returns a date Variant containing the converted value; otherwise, NULL is returned.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

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

DataFunctions Object

DataFunctions.Locale

DataFunctions.ConvertDateTimeString

DataFunctions.Date

DataFunctions.DateTime

Page.RequestTime


DataFunctions.ConvertDateTimeString

Use this method to convert a date and time string to a date/time Variant, based on the default or specified locale.

Definition

Function ConvertDateTimeString(
vtDateTime As Variant,
vtLocale As Variant
) As Variant

Parameters

vtDateTime

A Variant that contains a string that specifies the date/time value to convert.

vtLocale

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.

Return Values

If this method completes successfully, it returns a datetime Variant that contains the converted date/time value; otherwise, NULL is returned.

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 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

<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

DataFunctions Object

DataFunctions.Locale

DataFunctions.ConvertDateString

DataFunctions.Date

DataFunctions.DateTime

Page.RequestTime


DataFunctions.ConvertFloatString

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

Function ConvertFloatString(
vtNum As Variant,
vtLocale As Variant
) As Variant

Parameters

vtNum

A Variant that contains a string representation of the floating-point number to convert.

vtLocale

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.

Return Values

If this method completes successfully, it returns a double Variant that contains the converted number; otherwise, NULL is returned.

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 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

<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

DataFunctions Object

DataFunctions.Locale

DataFunctions.Float

DataFunctions.ValidateFloat


DataFunctions.ConvertMoneyStringToNumber

Use this method to convert a money string to a number, based on the default or specified locale.

Definition

Function ConvertMoneyStringToNumber(
vtMoney As Variant,
vtLocale As Variant
) As Variant

Parameters

vtMoney

A Variant that contains a string representation of the monetary value to convert.

vtLocale

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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 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.

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

DataFunctions Object

DataFunctions.Locale

DataFunctions.ConvertFloatString

DataFunctions.ConvertNumberString


DataFunctions.ConvertNumberString

Use this method to convert an integer represented as a string to an integer Variant, based on the default or specified locale.

Definition

Function ConvertNumberString(
vtNum As Variant,
vtLocale As Variant
) As Variant

Parameters

vtNum

A Variant that contains a string representation of the number to convert.

vtLocale

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.

Return Values

If this method completes successfully, it returns an integer Variant containing the converted number; otherwise, NULL is returned.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

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

DataFunctions Object

DataFunctions.Locale

DataFunctions.ConvertFloatString

DataFunctions.Number

DataFunctions.ValidateNumber


DataFunctions.ConvertStringToCurrency

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

Function ConvertStringToCurrency(
vtMoneyString As Variant,
Optional vtLocale As Variant,
Optional vtCurrencySymbol As Variant
) As Variant

Parameters

vtMoneyString

A Variant that contains the currency string to convert.

vtLocale

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

A Variant that contains the currency symbol to expect when converting the currency string.

Return Values

If this method completes successfully, it returns a Variant used to return the string representation of the converted monetary value.

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 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

<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

DataFunctions Object

DataFunctions.Locale

DataFunctions.LocalizeCurrency

DataFunctions.ConvertMoneyStringToNumber


DataFunctions.ConvertTimeString

Use this method to convert a time string to a date Variant, based on the default or specified locale.

Definition

Function ConvertTimeString(
vtDate As Variant,
vtLocale As Variant
) As Variant

Parameters

vtDate

A Variant that specifies a string representation of the time to convert.

vtLocale

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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

<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

DataFunctions Object

DataFunctions.Locale

DataFunctions.Time

DataFunctions.ValidateDateTime


DataFunctions.CurrencySymbol

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

Property CurrencySymbol As Variant

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

DataFunctions Object

DataFunctions.ConvertStringToCurrency

DataFunctions.LocalizeCurrency


DataFunctions.Date

Use this method to convert a date Variant to a string representation of the specified date, based on the default or specified locale.

Definition

Function Date(
dtDate As Date,
vtLocale As Variant
) As Variant

Parameters

dtDate

A Date Variant that contains the date to format.

vtLocale

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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

<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

DataFunctions Object

DataFunctions.Locale

DataFunctions.DateTime

DataFunctions.ValidateDateTime

DataFunctions.ConvertDateString


DataFunctions.DateTime

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

Function DateTime(
dtDate As Date,
vtLocale As Variant
) As Variant

Parameters

dtDate

A Date that contains the date/time value to convert.

vtLocale

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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

<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

DataFunctions Object

DataFunctions.Locale

DataFunctions.Date

DataFunctions.ValidateDateTime

Page.RequestTime


DataFunctions.Float

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

Function Float(
fNumber As Double,
vtLocale As Variant
) As Variant

Parameters

fNumber

A Double that contains the floating-point number to convert.

vtLocale

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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

<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

DataFunctions Object

DataFunctions.Locale

DataFunctions.ValidateFloat

DataFunctions.ConvertFloatString


DataFunctions.GetLocaleInfo

Use this method to get information on the specified locale.

Definition

Function GetLocaleInfo(
vtInfo As Long,
vtLocale As Variant
) As Variant

Parameters

vtInfo

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

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.

Return Values

If this method completes successfully, it returns a string Variant that contains the requested locale information; otherwise, NULL is returned.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

DataFunctions Object

DataFunctions.Locale


DataFunctions.GetLocaleList

Use this method to retrieve a SimpleList object that contains the locales available on the computer.

Definition

Function GetLocaleList() As Variant

Parameters

None.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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

DataFunctions Object

DataFunctions.Locale


DataFunctions.Locale

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

Property Locale As Long

Parameters

None.

Error Values

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

DataFunctions Object

DataFunctions.GetLocaleList


DataFunctions.LocalizeCurrency

Use this method to retrieve a string representation of a currency value formatted to a specified locale and currency symbol.

Definition

Function LocalizeCurrency(
cyCurrency As Variant,
Optional vtLocale As Variant,
Optional vtCurrencySymbol As Variant
) As Variant

Parameters

cyCurrency

A currency Variant that contains the value to format as a string.

vtLocale

A Variant that contains the locale to use when formatting the string.

vtCurrencySymbol

[in, optional] A Variant that contains the currency symbol to use when formatting the string.

Return Values

If this method completes successfully, it returns a Variant containing the formatted string.

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 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

<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

DataFunctions Object

DataFunctions.Locale

DataFunctions.ConvertStringToCurrency


DataFunctions.Money

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

Function Money(
lMoney As Long,
vtLocale As Variant
) As Variant

Parameters

lMoney

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

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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

<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

DataFunctions Object

DataFunctions.Locale

DataFunctions.ConvertMoneyStringToNumber


DataFunctions.Number

Use this method to convert a long integer to its equivalent string representation, based on the default or specified locale.

Definition

Function Number(
lNumber As Long,
vtLocale As Variant
) As Variant

Parameters

lNumber

A Long that contains the number to convert to a string.

vtLocale

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.

Return Values

If this method completes successfully, it returns a Variant that contains the string representation of the specified number; otherwise, NULL is returned.

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 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

<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

DataFunctions Object

DataFunctions.Locale

DataFunctions.ConvertNumberString


DataFunctions.Time

Use this method to converts a Date to a string representation of the time.

Definition

Function Time(
dtDate As Date,
vtLocale As Variant
) As Variant

Parameters

dtDate

A Date type that contains the time value to convert.

vtLocale

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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

<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

DataFunctions Object

DataFunctions.Locale

DataFunctions.ConvertTimeString


DataFunctions.ValidateDateTime

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

Function ValidateDateTime(
vtDate As Variant,
vtMin As Variant,
vtMax As Variant
) As Variant

Parameters

vtDate

A Variant that contains the value to validate. This value can be a date, a time, or both.

vtMin

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

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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

' 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

DataFunctions Object

DataFunctions.Date

DataFunctions.DateTime

DataFunctions.Time

DataFunctions.ConvertDateString

DataFunctions.ConvertDateTimeString

DataFunctions.ConvertTimeString


DataFunctions.ValidateFloat

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

Function ValidateFloat(
vtNumber As Variant,
vtMin As Variant,
vtMax As Variant
) As Variant

Parameters

vtNumber

A Variant that contains the floating-point number to validate.

vtMin

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

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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

<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

DataFunctions Object

DataFunctions.Float

DataFunctions.ConvertFloatString


DataFunctions.ValidateNumber

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

Function ValidateNumber(
vtNumber As Variant,
vtMin As Variant,
vtMax As Variant
) As Variant

Parameters

vtNumber

A Variant that contains a string representation of a number to validate.

vtMin

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

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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

<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

DataFunctions Object

DataFunctions.Number

DataFunctions.ConvertNumberString


DBStorage Object

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

The single property of the DBStorage object is shown in the following table.

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.

The methods of the DBStorage object are shown in the following table.

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.

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


DBStorage.CommitData

Use this method to update the database table based on the contents of the specified Dictionary or OrderForm object.

Definition

Sub CommitData(
vtReserved As Variant,
pdispData As Object
)

Parameters

vtReserved

A Variant 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.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

DBStorage Object

DBStorage.InitStorage

DBStorage.InsertData


DBStorage.DeleteData

Use this method to delete a row from the data source, based on the data stored in the specified Dictionary or OrderForm object.

Definition

Sub DeleteData(
vtReserved As Variant,
pdispData As Object
)

Parameters

vtReserved

A Variant 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.

Return Values

None.

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 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.

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

DBStorage Object

DBStorage.InitStorage

DBStorage.DeleteDataKey

DBStorage.InsertData


DBStorage.DeleteDataKey

Use this method to delete a row of data, based on the specified key value.

Definition

Sub DeleteDataKey(
vtReserved As Variant,
vtKey As Variant
)

Parameters

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

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

None.

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 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.

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

DBStorage Object

DBStorage.InitStorage

DBStorage.DeleteData

DBStorage.InsertData


DBStorage.GetData

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

Function GetData(
vtReserved As Variant,
vtKey As Variant
) As Variant

Parameters

vtReserved

A Variant reserved for future use. The GetData method ignores any value stored in this parameter.

vtKey

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.

Return Values

If this method completes successfully, a Variant containing a Dictionary or OrderForm object that contains the retrieved row is returned.

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 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

' 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

DBStorage Object

DBStorage.InitStorage

DBStorage.LookupData


DBStorage.InitStorage

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

Sub InitStorage(
vtDataSourceOrDSN As Variant,
Table As String,
bstrKey As String,
vtProgID As Variant,
vtMarshal As Variant,
vtChanged As Variant
)

Parameters

vtDataSourceOrDSN

A Variant 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

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

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

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

None.

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 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

' 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

DBStorage Object


DBStorage.InsertData

Use this method to insert the contents of the specified Dictionary object into a database row.

Definition

Sub InsertData(
vtReserved As Variant,
pdispData As Object
)

Parameters

vtReserved

A Variant 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.

Return Values

None.

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 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

' 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

DBStorage Object

DBStorage.InitStorage

DBStorage.CommitData


DBStorage.LookupData

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

Function LookupData(
vtReserved As Variant,
pvtKeys As Variant,
pvtValues As Variant
) As Variant

Parameters

vtReserved

A Variant reserved for future use. The LookupData method ignores any value stored in this parameter.

pvtKeys

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

A Variant that identifies the values for which to search. This parameter can be either a SimpleList object or an Array.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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 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.

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

DBStorage Object

DBStorage.InitStorage

DBStorage.GetData

DBStorage.LookupMultipleData


DBStorage.LookupMultipleData

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

Function LookupMultipleData(
vtReserved As Variant,
pvtKeys As Variant,
pvtValues As Variant
) As Variant

Parameters

vtReserved

A Variant reserved for future use. The LookupData method ignores any value stored in this parameter.

pvtKeys

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

A Variant that identifies the values for which to search. This parameter can be either a SimpleList object or an Array.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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

' 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

DBStorage Object

DBStorage.InitStorage

DBStorage.GetData

DBStorage.LookupData


DBStorage.Mapping

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

Property Mapping As Object

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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

DBStorage Object

DBStorage.InitStorage


DBStorage.ProcessData

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

Function ProcessData(
pdispData As IDispatch
) As Object

Parameters

pdispData

An object reference to a Dictionary object that contains the marshaled data.

Return Values

If this method completes successfully, it returns an object reference to a Dictionary object that contains the unmarshaled data.

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 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

' 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

DBStorage Object

DBStorage.InitStorage


Dictionary Object

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 2000 Core Components Type Library
DLL Name: | MscsCore.dll
Threading Model: | Both

The properties of the Dictionary object are shown in the following table.

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 2000 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 2000 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 2000 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

SimpleList Object


Dictionary.Count

The Count property is a read-only Long that contains the number of elements in the Dictionary object instance.

Definition

Property Count As Long

Parameters

None.

Error Values

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

Dictionary Object


Dictionary.Prefix

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

Property Prefix As String

Parameters

None.

Error Values

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

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

Dictionary Object


Dictionary.Value

The Value property allows you to get or set a name/value pair in the Dictionary.

Definition

Property Value(
bstrName As String
) As Variant

Parameters

bstrName

A String that contains the name of the Dictionary key for which to retrieve a value or put a value.

Error Values

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.

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

Dictionary Object


DictionaryXMLTransforms Object

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.

ProgID: | Commerce.DictionaryXMLTransforms (Externally creatable)
COM Class Name: | DictionaryXMLTransforms
Type Library Name: | Microsoft Commerce 2000 DictionaryXMLTransform Type Library
DLL Name: | DictionaryXMLTransforms.dll
Threading Model: | Apartment

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"*", "\", etc., and foreign-language characters.

  • Every dictionary key value must be URL-encoded.

The methods of the DictionaryXMLTransforms object are shown in the following table.

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 a XML schema can be found in the POSchema.xml file in the Solution Sites.

See Also

General Purpose Objects

Dictionary Object


DictionaryXMLTransforms.GenerateSampleXMLInstanceFromDictionary

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

Function GenerateSampleXMLInstanceFromDictionary(
Dictionary As Object,
ElementName As String,
bIgnoreUnderScore As Boolean
) As Object

Parameters

Dictionary

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.

Return Values

If this method completes successfully, it returns an object reference used to return the XML instance.

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 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

' 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

DictionaryXMLTransforms Object


DictionaryXMLTransforms.GenerateXMLForDictionaryUsingSchema

Use this method to extract an XML instance from the specified Dictionary object that conforms to the specified schema.

Definition

Function GenerateXMLForDictionaryUsingSchema(
Dictionary As Object,
xmlSchema As Object
) As Object

Parameters

Dictionary

A Dictionary object that contains the data to be converted.

xmlSchema

An XMLDOMDocument object that contains the XML schema.

Return Values

If this method completes successfully, it returns an XMLDOMDocument object that contains the XML schema.

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 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

' 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

DictionaryXMLTransforms Object


DictionaryXMLTransforms.GetXMLFromFile

Use this method to generate a XML Document Object Model (DOM) document from the specified file.

Definition

Function GetXMLFromFile(
sFileName As String
) As Object

Parameters

sFileName

A String that contains the name of the file to convert.

Return Values

If this method completes successfully, it returns an object reference to an XMLDOMDocument object containing the converted file data.

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 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

' 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")

See Also

DictionaryXMLTransforms Object


DictionaryXMLTransforms.ReconstructDictionaryFromXML

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

Function ReconstructDictionaryFromXML(
szDictionaryXML As String,
xmlSchema As Object
) As Object

Parameters

szDictionaryXML

A String that contains the XML instance.

xmlSchema

An object reference to a XMLDOMDocument object that contains the XML schema.

Return Values

If this method completes successfully, it returns an object reference to a Dictionary object that contains the converted data.

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 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

' 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

DictionaryXMLTransforms Object


EuroDisplay Object

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 2000 Euro Display Component Type Library
DLL Name: | EuroDisp.dll
Threading Model: | Both

The methods of the EuroDisplay object are shown in the following table.

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.

See Also

Display Objects


EuroDisplay.ConvertAltStringToCurr

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

Function ConvertAltStringToCurr(
vtMoneyString As Variant
) As Variant

Parameters

vtMoneyString

A Variant that contains the currency string to convert.

Return Values

If this method completes successfully, it returns a currency Variant that contains the converted currency information.

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 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

' 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

EuroDisplay Object

EuroDisplay.ConvertBaseStringToCurr

EuroDisplay.FormatAltMoney


EuroDisplay.ConvertBaseStringToCurr

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

Function ConvertBaseStringToCurr(
vtMoneyString As Variant
) As Variant

Parameters

vtMoneyString

A Variant that contains the currency string to convert.

Return Values

If this method completes successfully, it returns a currency Variant that contains the converted currency information.

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 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

' 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

EuroDisplay Object

EuroDisplay.ConvertAltStringToCurr

EuroDisplay.FormatBaseMoney


EuroDisplay.ConvertMoney

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

Function ConvertMoney(
vtCurrVal As Variant
) As Variant

Parameters

vtCurrVal

A Variant that contains the monetary value in the base currency.

Return Values

If this method completes successfully, it returns a currency Variant representing a monetary value in the alternate currency.

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 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

<%
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

EuroDisplay Object


EuroDisplay.FormatAltMoney

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

Function FormatAltMoney(
vtConvMoney As Variant
) As String

Parameters

vtConvMoney

A currency Variant that contains the monetary value to convert.

Return Values

If this method completes successfully, it returns a String that contains the string representation of the specified currency Variant.

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 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

' 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

EuroDisplay Object

EuroDisplay.ConvertAltStringToCurr

EuroDisplay.FormatBaseMoney


EuroDisplay.FormatBaseMoney

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

Function FormatBaseMoney(
vtConvMoney As Variant
) As String

Parameters

vtConvMoney

A currency Variant that contains the monetary value to convert.

Return Values

If this method completes successfully, it returns a String that contains the string representation of the specified currency Variant.

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 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

' 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

EuroDisplay Object

EuroDisplay.ConvertBaseStringToCurr

EuroDisplay.FormatAltMoney


EuroDisplay.Initialize

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

Sub Initialize(
szBaseCurr As String,
lBaseLCID As Long,
szAltCurr As String,
lAltLCID As Long,
flEuroConvRate As Double
)

Parameters

szBaseCurr

A String that contains the base currency symbol string.

lBaseLCID

A Long that contains the base locale identifier.

szAltCurr

A String that contains the alternate currency symbol string.

lAltLCID

A Long 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.

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 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

' 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

EuroDisplay Object


ExpressionEval Object

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 2000 Expression System Type Library
DLL Name: | exprarch.dll
Threading Model: | Both

The properties of the ExpressionEval object are shown in the following table.

Property | Type | Description
ExprCount | Long | Retrieves the number of expressions loaded into the expression cache. This property is read-only.

The methods of the ExpressionEval object are shown in the following table.

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.

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

Expression Objects

Expression Recordset

Expression XML Structures

ExpressionStore Object

ProfileObject Object


ExpressionEval.Connect

Use this method to establish communication with an expression store.

Definition

Sub Connect(
vConnectInfo As Variant
)

Parameters

vConnectInfo

[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

None.

Error Values

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 | &H8110001F | Invalid connection
E_EXPR_BADEXPRSTORE | &H8110001E | Specified database does not contain a valid expression store
E_EXPR_NOCONNECTIONSTRING | &H8110000D | No connection string specified
E_EXPR_STOREPERMISSIONS | &H8110000F | Insufficient access permissions on the expression store database

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.

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;User ID=userID;Password=psswrd"

' 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

ExpressionEval Object

ExpressionStore Object

ExpressionStore.Connect

SiteConfigReadOnly Object


ExpressionEval.CreateEvalContext

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

Function CreateEvalContext(
pDictObjs As Object
) As Object

Parameters

pDictObjs

[in] A Dictionary object that contains the set of profiles to be cached.

Return Values

If this method completes successfully, it returns the newly created ExprEvalContext object.

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 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.

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.

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

ExpressionEval Object

ExpressionEval.EvalInContext


ExpressionEval.Eval

Use this method to evaluate an expression.

Definition

Function Eval(
nExprID As Long,
pDictObjs As Object
) As Variant

Parameters

nExprID

[in] A Long that contains the unique identifier for the expression in the expression store.

pDictObjs

[in] A Dictionary object that contains a set of profiles.

Return Values

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

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 | &H8110001F | Invalid connection
E_EXPR_BADEXPRID | &H8110000A | Invalid expression ID specified
E_EXPR_NOCONNECTIONSTRING | &H8110000D | No connection string specified
E_EXPR_NOTFOUND | &H81100012 | Could not find the specified expression ID, nExprID, in the expression store

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

ExpressionEval Object

ExpressionEval.Connect

ExpressionEval.CreateEvalContext

ExpressionEval.EvalInContext

ExpressionEval.LoadExpr


ExpressionEval.EvalInContext

Use this method to evaluate an expression against a pre-established context stored in the context cache.

Definition

Function EvalInContext(
nExprID As Long,
pContext As Object
) As Variant

Parameters

nExprID

[in] A Long that contains the unique identification of the expression in the expression store.

pContext

[in] An ExprEvalContext object that identifies the specific context for this evaluation.

Return Values

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

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 | &H8110001F | Invalid connection
E_EXPR_BADEXPRID | &H8110000A | Invalid expression ID specified
E_EXPR_NOCONNECTIONSTRING | &H8110000D | No connection string specified
E_EXPR_MISSINGPROP | &H8110001D | Invalid ExprEvalContext object
E_EXPR_NOTFOUND | &H81100012 | Could not find the specified expression ID, nExprID, in the expression store

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.

Example

' oEvalContext is an ExprEvalContext object
' vResult is a Variant

vResult = oExpressionEval.Eval(2134, oEvalContext)

See Also

ExpressionEval Object

ExpressionEval.Connect

ExpressionEval.CreateEvalContext

ExpressionEval.Eval

ExpressionEval.LoadExpr


ExpressionEval.EvalXML

Use this method to evaluate an expression represented as an Extensible Markup Language (XML) fragment.

Definition

Function EvalXML(
bstrXMLExpr As String,
DictObjs As Object
) As Variant

Parameters

btrXMLExpr

[in] A String that contains the XML fragment to be evaluated.

DictObjs

[in] A Dictionary object that contains a set of profiles.

Return Values

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

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 | &H81100018 | Argument datatype information missing from expression, or unrecognized argument data type encountered in expression
E_EXPR_BADARGVALUE | &H81100022 | Invalid expression argument value, or impossible conversion
E_EXPR_BADCLAUSE | &H81100016 | Invalid clause encountered
E_EXPR_BADCONNECTION | &H8110001F | Invalid connection
E_EXPR_BADOPER | &H81100017 | Operator missing, unrecognized operator encountered, or type mismatch
E_EXPR_BADTERM | &H81100015 | Term type missing, or unrecognized term type encountered
E_EXPR_BADXML | &H81100014 | An unrecognized XML element was encountered
E_EXPR_NOCONNECTIONSTRING | &H8110000D | No connection string specified
E_EXPR_XMLPARSE | &H81100013 | XML DOM object parsing error

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.

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

Expression Recordset

Expression XML Structures

ExpressionEval Object

ExpressionEval.Connect

ExpressionEval.Eval

ExpressionEval.ParseXML


ExpressionEval.ExprCount

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

Property ExprCount As Long

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

ExpressionEval Object

ExpressionEval.FlushAll

ExpressionEval.FlushExpr

ExpressionEval.LoadAll

ExpressionEval.LoadExpr


ExpressionEval.FlushAll

Use this method to remove all expressions from the expression cache.

Definition

Sub FlushAll()

Parameters

None.

Return Values

None.

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 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

ExpressionEval Object

ExpressionEval.ExprCount

ExpressionEval.FlushExpr

ExpressionEval.LoadAll

ExpressionEval.LoadExpr


ExpressionEval.FlushExpr

Use this method to remove the specified expression from the expression cache.

Definition

Sub FlushExpr(
nExprID As Long
)

Parameters

nExprID

[in] A Long that contains the identifier of the expression to be removed from the expression cache.

Return Values

None.

Error Values

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 | &H8110000A | Invalid expression ID specified

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

ExpressionEval Object

ExpressionEval.ExprCount

ExpressionEval.FlushAll

ExpressionEval.LoadAll

ExpressionEval.LoadExpr


ExpressionEval.LoadAll

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

Sub LoadAll()

Parameters

None.

Return Values

None.

Error Values

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 | &H81100018 | Argument datatype infomation missing from expression, or unrecognized argument data type encountered in expression
E_EXPR_BADARGVALUE | &H81100022 | Invalid expression argument value, or impossible conversion
E_EXPR_BADCLAUSE | &H81100016 | Invalid clause encountered
E_EXPR_BADCONNECTION | &H8110001F | Invalid connection
E_EXPR_BADOPER | &H81100017 | Operator missing, unrecognized operator encountered, or type mismatch
E_EXPR_BADTERM | &H81100015 | Term type missing, or unrecognized term type encountered
E_EXPR_BADXML | &H81100014 | An unrecognized XML element was encountered
E_EXPR_NOCONNECTIONSTRING | &H8110000D | No connection string specified
E_EXPR_XMLPARSE | &H81100013 | XML DOM object parsing error

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

ExpressionEval Object

ExpressionEval.Connect

ExpressionEval.ExprCount

ExpressionEval.FlushAll

ExpressionEval.FlushExpr

ExpressionEval.LoadExpr


ExpressionEval.LoadExpr

Use this method to pre-compile an expression, and if successful, load the expression into the expression cache.

Definition

Sub LoadExpr(
nExprID As Long
)

Parameters

nExprID

[in] A positive Long that contains the identifier of the expression to load into the expression cache.

Return Values

None.

Error Values

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 | &H81100018 | Argument datatype info missing from expression, or unrecognized argument data type encountered in expression
E_EXPR_BADARGVALUE | &H81100022 | Invalid expression argument value, or impossible conversion
E_EXPR_BADCLAUSE | &H81100016 | Invalid clause encountered
E_EXPR_BADCONNECTION | &H8110001F | Invalid connection
E_EXPR_BADEXPRID | &H8110000A | Invalid expression ID specified
E_EXPR_BADOPER | &H81100017 | Operator missing, unrecognized operator encountered, or type mismatch
E_EXPR_BADTERM | &H81100015 | Term type missing, or unrecognized term type encountered
E_EXPR_BADXML | &H81100014 | An unrecognized XML element was encountered
E_EXPR_NOCONNECTIONSTRING | &H8110000D | No connection string specified
E_EXPR_NOTFOUND | &H81100012 | Could not find the specified expression ID, nExprID, in the expression store
E_EXPR_XMLPARSE | &H81100013 | XML DOM object parsing error

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

ExpressionEval Object

ExpressionEval.Connect

ExpressionEval.ExprCount

ExpressionEval.FlushAll

ExpressionEval.FlushExpr

ExpressionEval.LoadAll


ExpressionEval.ParseXML

Use this method to check whether an Extensible Markup Language (XML) fragment is a syntactically correct expression.

Definition

Function ParseXML(
bstrXMLExpr As String
) As Boolean

Parameters

bstrXMLExpr

[in] A String that contains the XML text defining an expression.

Return Values

This method returns a Boolean value indicating the results of parsing the expression (bstrXMLExpr).

Error Values

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 | &H81100018 | Argument datatype information missing from expression, or unrecognized argument data type encountered in expression
E_EXPR_BADARGVALUE | &H81100022 | Invalid expression argument value, or impossible conversion
E_EXPR_BADCLAUSE | &H81100016 | Invalid clause encountered
E_EXPR_BADOPER | &H81100017 | Operator missing, unrecognized operator encountered, or type mismatch
E_EXPR_BADTERM | &H81100015 | Term type missing, or unrecognized term type encountered
E_EXPR_BADXML | &H81100014 | An unrecognized XML element was encountered
E_EXPR_XMLPARSE | &H81100013 | XML DOM object parsing error

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.

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

Expression Recordset

Expression XML Structures

ExpressionEval Object

ExpressionEval.Eval

ExpressionEval.EvalXML


ExpressionStore Object

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 2000 Expression System Type Library
DLL Name: | exprarch.dll
Threading Model: | Both

The methods of the ExpressionStore object are shown in the following table.

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.

See Also

Expression Objects

Expression Recordset

Expression XML Structures

ExpressionEval Object


ExpressionStore.Connect

Use this method to store the connection string to an expression store.

Definition

Sub Connect(
strConnStr As String
)

Parameters

strConnStr

[in] A String that contains the database connection information for the expression store.

Return Values

None.

Error Values

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 | &H8110001F | Invalid connection
E_EXPR_BADEXPRSTORE | &H8110001E | Specified database does not contain a valid expression store
E_EXPR_NOCONNECTIONSTRING | &H8110000D | No connection string specified
E_EXPR_STOREPERMISSIONS | &H8110000F | Insufficient access permissions on the expression store database

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.

Example

' Connect using an explicit connection string .
' oExpressionStore is a valid ExpressionStore object

oExpressionStore.Connect "Provider=SQLOLEDB;Data Source=server;" _
& "Initial Catalog=Retail_commerce;User ID=userID;Password=psswrd"

' 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

ExpressionStore Object

ExpressionStore.Disconnect

SiteConfigReadOnly Object


ExpressionStore.DeleteExpression

Use this method to delete an existing expression from the expression store.

Definition

Sub DeleteExpression(
nExprID As Long,
flags As Long
)

Parameters

nExprID

[in] A Long that specifies the expression to be deleted.

flags

[in] A Long that contains the optional control flags. This parameter is currently unused and should be set to zero (0).

Return Values

None.

Error Values

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 | &H8110001F | Invalid connection
E_EXPR_BADEXPRID | &H8110000A | Invalid expression ID specified, or expression ID not found in store
E_EXPR_EXPRDELFAILED | &H81100010 | Delete operation failed, possibly due to other expressions having dependencies on this expression
E_EXPR_NOCONNECTIONSTRING | &H8110000D | No connection string specified

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.

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

ExpressionStore Object

ExpressionStore.Connect

ExpressionStore.NewExpression


ExpressionStore.Disconnect

Use this method to set the connection string to the expression store to an empty string.

Definition

Sub Disconnect()

Parameters

None.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about connecting and disconnecting to an expression store, see ExpressionStore.Connect

See Also

ExpressionStore Object


ExpressionStore.Export

Use this method to export the expressions stored in the expression store to a file.

Definition

Sub Export(
bstrFileName As String
)

Parameters

bstrFileName

[in] A String that contains the name of the file used to store the expressions.

Return Values

None.

Error Values

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 | &H8110001F | Invalid connection
E_EXPR_NOCONNECTIONSTRING | &H8110000D | No connection string specified

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.

Example

' oExpressionStore is an ExpressionStore object connected to
' a valid expression store.

oExpressionStore.Export "Expressions.xml"

See Also

Expression Recordset

Expression XML Structures

ExpressionStore Object

ExpressionStore.Import


ExpressionStore.GetAllExprs

Use this method to retrieve an ADO hierarchical Recordset object that contains all the expressions residing in the expression store.

Definition

Function GetAllExprs() As Object

Parameters

None.

Return Values

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

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 | &H8110001F | Invalid connection
E_EXPR_NOCONNECTIONSTRING | &H8110000D | No connection string specified

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 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.

See Also

ExpressionStore Object

ExpressionStore.Connect

ExpressionStore.GetExpression


ExpressionStore.GetExpression

Use this method to retrieve an ADO hierarchical Recordset object that contains the specified expression.

Definition

Function GetExpression(
nExprID As Long
) As Object

Parameters

nExprID

[in] A Long that contains the unique identifier of the expression.

Return Values

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

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 | &H8110001F | Invalid connection
E_EXPR_BADEXPRID | &H8110000A | Invalid expression ID specified, or expression ID not found in store
E_EXPR_NOCONNECTIONSTRING | &H8110000D | No connection string specified

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.

See Also

Expression Recordset

ExpressionStore Object

ExpressionStore.Connect

ExpressionStore.GetAllExprs

ExpressionStore.NewExpression


ExpressionStore.GetExprID

Use this method to translate the name of an expression into its corresponding expression ID.

Definition

Function GetExprID(
strExprName As String
) As Long

Parameters

strExprName

[in] A String that contains the expression name.

Return Values

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

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 | &H8110001F | Invalid connection
E_EXPR_BADEXPRNAME | &H81100003 | Invalid expression name, or expression name not found in store
E_EXPR_NOCONNECTIONSTRING | &H8110000D | No connection string specified

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.

Example

' lExpressionID is a long
' oExpressionStore is an ExpressionStore object connected to
' a valid expression store.

lExpressionID = oExpressionStore.GetExprID("MyExpression")

See Also

ExpressionStore Object

ExpressionStore.Connect

ExpressionStore.GetExpression

ExpressionStore.GetExprName

ExpressionStore.RenameExpression


ExpressionStore.GetExprName

Use this method to translate the ID of an expression into its corresponding expression name.

Definition

Function GetExprName(
nExprID As Long
) As String

Parameters

nExprID

[in] A Long that contains a unique expression ID.

Return Values

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

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 | &H8110001F | Invalid connection
E_EXPR_BADEXPRID | &H8110000A | Invalid expression ID specified, or expression ID not found in store
E_EXPR_NOCONNECTIONSTRING | &H8110000D | No connection string specified

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.

See Also

ExpressionStore Object

ExpressionStore.Connect

ExpressionStore.GetExprID


ExpressionStore.Import

Use this method to import expressions from a file into the expression store.

Definition

Sub Import(
bstrFileName As String
)

Parameters

bstrFileName

[in] A String that contains the path and name of the file from which to import the expressions.

Return Values

None.

Error Values

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 | &H8110001F | Invalid connection
E_EXPR_NOCONNECTIONSTRING | &H8110000D | No connection string specified
E_EXPR_NONEMPTYSTORE | &H8110000C | Cannot import to a non-empty store

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.

Example

' oExpressionStore is an ExpressionStore object connected to
' a valid expression store.

oExpressionStore.Import "\SomePath\Expressions.xml"

See Also

Expression Recordset

Expression XML Structures

ExpressionStore Object

ExpressionStore.Export


ExpressionStore.NewExpression

Use this method to return an ADO hierarchical Recordset object that contains an empty expression.

Definition

Function NewExpression() As Object

Parameters

None.

Return Values

If this method completes successfully, it returns a hierarchical Recordset object that contains an empty expression.

Error Values

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 | &H8110001F | Invalid connection
E_EXPR_NOCONNECTIONSTRING | &H8110000D | 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.

See Also

ExpressionStore Object

ExpressionStore.Connect

ExpressionStore.SaveExpression


ExpressionStore.Query

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

Function Query(
Optional vName As Variant,
Optional vCategory As Variant,
Optional vProfiles As Variant
) As Object

Parameters

vName

[in, optional] When specified, a String name to match expressions against. This is used in an SQL LIKE clause that permits wildcards.

vCategory

[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

[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.

Return Values

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

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 | &H8110001F | Invalid connection
E_EXPR_NOCONNECTIONSTRING | &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".

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.

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

ExpressionStore Object

ExpressionStore.Connect


ExpressionStore.RenameExpression

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

Sub RenameExpression(
nExprID As Long,
strNewName As String
)

Parameters

nExprID

[in] A Long that contains the expression ID.

strNewName

[in] A String that contains the new name.

Return Values

None.

Error Values

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 | &H8110001F | Invalid connection
E_EXPR_BADEXPRID | &H8110000A | Invalid expression ID specified, or expression ID not found in store
E_EXPR_BADEXPRNAME | &H81100003 | Invalid expression name
E_EXPR_DUPEXPRNAME | &H81100007 | Duplicate expression name
E_EXPR_INVALIDFIELDSIZE | &H81100005 | The new name exceeds the maximum size of 30 characters
E_EXPR_NOCONNECTIONSTRING | &H8110000D | No connection string specified

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.

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

ExpressionStore Object

ExpressionStore.Connect

ExpressionStore.GetExprID


ExpressionStore.SaveExpression

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

Sub SaveExpression(
pRSExpr As Object
)

Parameters

pRSExpr

[in] A Recordset object that contains the expression.

Return Values

None.

Error Values

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 | &H8110001F | Invalid connection
E_EXPR_BADEXPRBODY | &H81100004 | Invalid or missing expression body
E_EXPR_BADEXPRCATEGORY | &H8110000A | Invalid expression category specified
E_EXPR_BADEXPRNAME | &H81100003 | Invalid expression name
E_EXPR_CYCLEDETECTED | &H81100006 | A cycle was detected in the expression dependencies of this expression
E_EXPR_DUPEXPRDEPS | &H81100009 | Duplicate expression dependency
E_EXPR_DUPEXPRNAME | &H81100007 | Duplicate expression name
E_EXPR_DUPPROFDEPS | &H81100008 | Duplicate profile dependency
E_EXPR_INVALIDEXPRDEPS | &H8110000B | One or more of the expression dependencies refers to an expression ID that does not exist
E_EXPR_INVALIDFIELDSIZE | &H81100005 | The new name exceeds the maximum size of 30 characters
E_EXPR_NOCONNECTIONSTRING | &H8110000D | No connection string specified
E_EXPR_NOPROFDEPS | &H81100002 | Expression must have at least one profile-dependency to be saved

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 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

ExpressionStore Object

ExpressionStore.Connect

ExpressionStore.GetExpression

ExpressionStore.NewExpression


Expression Recordset

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:

  • 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

Expression Objects

Expression XML Structures

ExpressionEval Object

ExpressionStore Object


Expression Recordset Object

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

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" | "Bald_people" | 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">bald</IMMED-VAL>
           </CLAUSE>"

Parent Recordset for Expression24

ExprID | ExprName | Category | ExprDesc | ExprBody
24 | "Expression24" | "FeralOctogenarians" | "Bald_ginseng_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">ginseng</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

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

Expression Objects

ExpressionEval Object


ExprFltrQueryBldr Object

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 2000 Expression Builder Type Library
DLL Name: | exprfltrbldr.dll
Threading Model: | Apartment

The methods of the ExprFltrQueryBldr object are shown in the following table.

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

Expression XML Structures


ExprFltrQueryBldr.ConvertExprToSqlFltrStr

Use this method to convert an expression in Extensible Markup Language (XML) form to a SQL filter query string.

Definition

Function ConvertExprToSqlFltrStr(
pExpression As String
) As String

Parameters

pExpression

A String that contains the expression in XML form.

Return Values

If this method completes successfully, it returns a String that contains the SQL filter string.

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 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

' 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

ExprFltrQueryBldr Object


ExprFltrQueryBldr.ConvertExprUsingDict

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

Function ConvertExprUsingDict(
pExpr As String,
pDict As Object
) As String

Parameters

pExpr

A String that contains the expression in XML form.

pDict

A Dictionary object that contains the values referenced by the expression.

Return Values

If this method completes successfully, it returns a String that contains the SQL filter string.

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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ExprFltrQueryBldr Object


GenID Object

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 2000 GenID Type Library
DLL Name: | GenID.dll
Threading Model: | Both

The methods of the GenID object are shown in the following table.

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

Use this method to generate a base5 Globally Unique Identifier (GUID) string.

Definition

Function GenBase5GUIDString() As String

Parameters

None.

Return Values

If this method completes successfully, it returns a String that contains the base5 GUID.

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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

GenID Object


GenID.GenGUIDString

Use this method to generate a Globally Unique Identifier (GUID) string.

Definition

Function GenGUIDString() As String

Parameters

None.

Return Values

If this method completes successfully, it returns a String that contains the GUID.

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 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

GenID Object


GenID.GetCounterValue

Use this method to retrieve and increment the value stored in the specified counter.

Definition

Function GetCounterValue(
bstrCounterName As String,
cDigits As Long
) As String

Parameters

bstrCounterName

A String that contains the counter name.

cDigits

A Long that contains the number of digits to return.

Return Values

If this method completes successfully, it returns a String that contains the counter value.

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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

GenID Object


GenID.Initialize

Use this method to connect the GenID object to the database that stores the table of counters.

Definition

Sub Initialize(
bstrDBConnectionString As String,
Optional cBlockSizeHint As Long
)

Parameters

bstrDBConnectionString

A String that contains the connection information to the database.

cBlockSizeHint

Not implemented, leave blank.

Return Values

None.

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 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.

Example

' oGenID is a Commerce GenID object

' Connect using an explicit connection string.

oGenID.Initialize "Provider=SQLOLEDB;Data Source=server;" _
 & "User ID=user;Password=psswrd;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

GenID Object


GenID.InitializeCounter

Use this method to create or reset a global, sequential counter.

Definition

Sub InitializeCounter(
bstrCounterName As String,
dwInitialValue As Long
)

Parameters

bstrCounterName

A String that contains the counter name.

dwInitialValue

A Long that contains the initial value of the counter.

Return Values

None.

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 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.

Example

' oGenID is a Commerce GenID object

oGenID.InitializeCounter("OrderCounter", 213)

See Also

GenID Object


GlobalConfig Object

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 2000 Configuration Type Library
DLL Name: | MSCSCfg.dll
Threading Model: | Apartment

The single property of the GlobalConfig object is shown in the following table.

Property | Type | Description
Fields | Fields | Returns group-level configuration data. This property is read-only.

The methods of the GlobalConfig object are shown in the following table.

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.

See Also

Integrating Custom Resources

Configuration Objects

SiteConfig Object

SiteConfigReadOnly Object


GlobalConfig.CreateServiceConfig

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

Sub CreateServiceConfig(
bstrServiceName As String,
bstrConfigSchemaClass As String
)

Parameters

bstrServiceName

A String that contains the new name for the resource configuration object instance.

bstrConfigSchemaClass

A String that contains the resource configuration schema class name.

Return Values

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 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.

Example

' sMyPredictor is a String denoting the new resource name
' oGlobalConfig is a Commerce GlobalConfig object
oGlobalConfig.CreateServiceConfig(sMyPredictor, MSCS_Predictor)

See Also

GlobalConfig Object

GlobalConfig.DeleteServiceConfig


GlobalConfig.CreateSiteConfig

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 IIS metabase by the Commerce Server Site Packager, to ensure that the Admin objects can only be operated on by site administrators.

Definition

Function CreateSiteConfig(
bstrSiteName As String
) As Object

Parameters

bstrSiteName

A String that contains the new site name.

Return Values

If this method completes successfully, it returns a SiteConfig object that contains the site configuration settings.

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 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.

Example

' sMyNewSite is a string; oGlobalConfig is a Commerce GlobalConfig object
' oMSCSSiteConfig is a Commerce.SiteConfig object
oMSCSSiteConfig = oGlobalConfig.CreateSiteConfig(sMyNewSite)

See Also

GlobalConfig Object

_GlobalConfig::DeleteSiteConfig


GlobalConfig.DeleteServiceConfig

Use this method to delete the specified resource, and to delete the Administration database association that links this resource to the site instance.

Definition

Sub DeleteServiceConfig(
bstrServiceName As String
)

Parameters

bstrServiceName

A String that contains the name of the resource configuration object to be deleted.

Return Values

None.

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 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.

Example

' sMyPredictor is the name of an existing resource
' oGlobalConfig is a Commerce GlobalConfig object
oGlobalConfig.DeleteServiceConfig (sMyPredictor)

See Also

GlobalConfig Object

GlobalConfig.CreateServiceConfig


GlobalConfig.DeleteSiteConfig

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

Sub DeleteSiteConfig(
bstrSiteName As String
)

Parameters

bstrSiteName

A String that contains the site name.

Return Values

None.

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 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.

Example

' sMySiteName is an existing site name
' oGlobalConfig is a Commerce GlobalConfig object
oGlobalConfig.DeleteSiteConfig(sMySiteName)

See Also

GlobalConfig Object

GlobalConfig.CreateServiceConfig


GlobalConfig.Fields

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

Property Fields As Object

Parameters

None.

Error Values

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

GlobalConfig Object


GlobalConfig.GetIfCollection

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

Function GetIfCollection(
strList As Variant
) As Variant

Parameters

strList

A Variant that contains the encoded string to be converted.

Return Values

If this method completes successfully, it returns a Variant containing the converted data in the appropriate data type.

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 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' vVariant is a Variant; vEncodedString is a Variant
' oGlobalConfig is a Commerce GlobalConfig object
vVariant = oGlobalConfig.GetIfCollection(vEncodedString)

See Also

GlobalConfig Object


GlobalConfig.GetResourcePropAttrib

Use this method to get a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.

Definition

Function GetResourcePropAttrib(
strResourceName As String,
strPropName As String
) As Object

Parameters

strResourceName

A String that contains the resource name.

strPropName

A String that contains the resource property name.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM 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.

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

GlobalConfig Object


GlobalConfig.Initialize

Use this method to load the global configuration from the Administration database.

Definition

Sub Initialize(
Optional bstrGroupName As String
)

Parameters

bstrGroupName

A String reserved for future use. This method ignores the value placed in this parameter.

Return Values

None.

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 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

GlobalConfig Object


GlobalConfig.MakeArrayFromSimpleList

Use this method to convert the specified SimpleList object into an Array.

Definition

Function MakeArrayFromSimpleList(
list As Object
) As Variant

Parameters

list

An object reference to the SimpleList that you wish to convert into an Array.

Return Values

If this method completes successfully, it returns a Variant containing the converted Array.

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 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

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.

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

GlobalConfig Object


GlobalConfig.MakeArrayFromString

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

Function MakeArrayFromString(
strList As Variant
) As Variant

Parameters

strList

A Variant that contains the encoded string.

Return Values

If this method completes successfully, it returns a Variant that contains the converted Array or unconverted String.

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 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

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.

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

GlobalConfig Object


GlobalConfig.MakeSimpleListFromArray

Use this method to convert an Array into a SimpleList object.

Definition

Function MakeSimpleListFromArray(
varArray As Variant
) As Object

Parameters

varArray

A Variant that contains the Array to convert.

Return Values

If this method completes successfully, it returns an object reference to the converted SimpleList object.

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 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

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.

Example

' vMyArray is a Variant
' varMySimpleList is a SimpleList object
' oGlobalConfig is a Commerce GlobalConfig object
varMySimpleList = oGlobalConfig.MakeSimpleListFromArray(vMyArray)

See Also

GlobalConfig Object


GlobalConfig.MakeStringFromArray

Use this method to convert an Array object into an encoded string, which can be written to the Fields property.

Definition

Function MakeStringFromArray(
varArray As Variant
) As Variant

Parameters

varArray

A Variant that contains the Array to encode.

Return Values

If this method completes successfully, it returns Variant that contains the encoded string.

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 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.

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.

Example

' vEncoded is a Variant
' vArray is a Variant
' oGlobalConfig is a Commerce GlobalConfig object
vEncoded = oGlobalConfig.MakeStringFromArray(vArray)

See Also

GlobalConfig Object


GlobalConfig.MakeStringFromSimpleList

Use this method to convert a SimpleList object into an encoded string, which can be written to the Fields property.

Definition

Function MakeStringFromSimpleList(
slist As Object
) As String

Parameters

slist

An object reference to the SimpleList object that you wish to convert into an encoded string.

Return Values

None.

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 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.

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.

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

GlobalConfig Object


GlobalConfig.SaveConfig

Use this method to save the global configuration settings to the Administration database.

Definition

Sub SaveConfig(

)

Parameters

None.

Return Values

None.

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 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

GlobalConfig Object


GlobalConfig.Sites

Use this method to retrieve a list of all the sites available in the Administration database.This method returns a Recordset object that contains a single record; the number of fields in the Fields collection is equal to the number of sites in the Commerce Server 2000 installation. Each Fields collection contains the name of one of the sites.

Definition

Function Sites (

) As Object

Parameters

None.

Return Values

If this method completes successfully, it returns a Recordset object that contains a list of all the sites available in the Administration data store.

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 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.

See Also

GlobalConfig Object


ListManager Object

Use this object to create and manage lists of users for the User Profile Management system, lists of e-mail addresses for the Direct Mailer, lists of segment members for the Predictor resource, lists generated from Analysis reports, and lists created from files and SQL queries.

ProgID: | Commerce.ListManager (Externally creatable)
COM Class Name: | ListManager
Type Library Name: | Microsoft Commerce 2000 ListManager Type Library
EXE Name: | listmanager.exe
Threading Model: | Both

The properties of the ListManager object are shown in the following table.

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.

The methods of the ListManager object are shown in the following table.

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.
CreateFromDWCalc | Creates a list from an Analysis report.
CreateFromFile | Creates a list from a file.
CreateFromSegment | Creates a list from a Predictor Resource segment.
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.

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

  • An Analysis report run from the Business Desk

  • A Predictor Resource segment

  • 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

List Management Objects


ListManager.AddUserToMailingList

Use this method to add a user record to a mailing list.

Definition

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

A Variant that contains ID or name of the list.

UserEmail

A Variant that contains the e-mail address of the user.

UserGUID

A Variant that contains the ID of the user (usually a GUID).

UserFmt

An optional Variant that contains the message format flag. See the Remarks section for more information.

UserLocale

An optional Variant that contains the preferred character set of the user.

UserUrl

An optional Variant that contains a URL used for retrieving personalized content for the user.

Error Values

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 | &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | &H8C400006 | The specified list does not exist.
E_LM_MAILABLE_LIST_NO_EMAILS | &H8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
E_LM_MUST_BE_STATIC | &H8C400019 | The operation requires a static list and the specified list is dynamic.
E_LM_NOT_MAILING_LIST | &H8C400018 | The operation requires a Mailing list and the specified list is not a mailing list.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
E_LM_USER_LIST_NO_GUIDS | &H8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
OLE_E_BLANK | &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.

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.

Example

oListManager.AddUserToMailingList "{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "JaneUser@somewhere.com", "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", _
 2, 1033, VT_NULL

See Also

ListManager Object


ListManager.CancelOperation

Use this method to cancel the specified ListManager operation.

Definition

Sub CancelOperation(
varOpID As Variant
)

Parameters

varOpID

A Variant that specifies the Operation ID of the operation to be cancelled.

Error Values

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 | &H8C400004 | The operation ID does not represent a currently running operation.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

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

  • CreateFromDWCalc

  • CreateFromFile

  • CreateFromSql

  • ExportToFile

  • ExportToSql

  • Subtract

  • Union

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

ListManager Object


ListManager.ConnectionString

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

Property ConnectionString() As String

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

ListManager Object


ListManager.Copy

Use this method to copy an existing list over another existing list.

Definition

Sub Copy(
srcList As Variant,
resList As Variant,
bAsync As Boolean,
Optional pvarOpID As Variant
)

Parameters

srcList

A Variant that contains the ID or name of the source list.

resList

A Variant that contains the ID or name of the result list.

bAsync

A Boolean that specifies whether the copy operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.

pvarOpID

An optional Variant used to return an Operation ID.

Error Values

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 | &H8C40001C | Cannot copy a list over itself.
E_LM_LIST_BUSY | &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | &H8C400006 | The specified list does not exist.
E_LM_OPER_CANCELED | &H8C40000B | The operation was canceled.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

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.

Example

' pvarOdID is a Variant
oListManager.Copy "{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", True, pvarOpID

See Also

ListManager Object


ListManager.CreateEmpty

Use this method to create an empty list for subsequent operations.

Definition

Function CreateEmpty(
listName As String,
listDesc As String,
flags As Long,
userFlags As Long
) As Variant

Parameters

listName

A String that provides the name for the new list.

listDesc

A String that provides a description for the new list.

flags

A Long that specifies the bitmask flags that control the type of list created.

userFlags

A Long that contains application specific user flags. Not used by the ListManager object.

Return Values

If this method completes successfully, it returns a Variant that contains the ID of the new list.

Error Values

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 | &H8C400005 | Invalid flags value.
E_LM_LIST_ALREADY_EXISTS | &H8C400007 | The specified list has already been created.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

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.

Example

' vListID is a Variant
vListID = oListManager.CreateEmpty("TequillaBuyers1", _
 "Tequilla buyers in January", 20, 0)

See Also

ListManager Object


ListManager.CreateFromDWCalc

Use this method to create a list from an Analysis report.

Definition

Function CreateFromDWCalc(
listName As String,
listDesc As String,
lFlags As Long,
userFlags As Long,
DWConnStr As String,
OLAPConnStr As String,
ReportStatusId As String,
bAsync As Boolean,
Optional pvarOpID As Variant
) As Variant

Parameters

listName

A String that provides the name for the new list.

listDesc

A String that provides a description for the new list.

lFlags

A Long that specifies the bitmask flags that control the type of list created.

userFlags

A Long 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

A Boolean that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.

pvarOpID

An optional Variant used to return an Operation ID.

Return Values

If this method completes successfully, it returns a Variant that contains the ID of the new list.

Error Values

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 | &H8C400001 | Failed to establish database connection.
E_LM_CREATE_OBJECT | &H8C400017 | Unable to create the object.
E_LM_INVALID_FLAGS | &H8C400005 | Invalid flags value.
E_LM_LIST_ALREADY_EXISTS | &H8C400007 | The specified list has already been created.
E_LM_MAILABLE_LIST_NO_EMAILS | &H8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
E_LM_OPER_CANCELED | &H8C40000B | The operation was canceled.
E_LM_REPORTRENDERERFAILED | &H8C40001A | The report rendering object failed during Analysis report export to ListManager. See the Application event log message logged by that object describing the problem.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
E_LM_USER_LIST_NO_GUIDS | &H8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
OLE_E_BLANK | &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.

Remarks

This method calls into the ReportRender object, passing it the DWConnStr, OLAPConnStr, and the 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' vListID is a Variant
vListID = oListManager.CreateFromDWCalc("TequillaBuyers1", _
 "Tequilla buyers in January", 20, 0, "URL=mscop:" & _
 "//InProcConnect/Server=myserver:Database=dbname:" & _
 "Catalog=DWSchema:User=userid:Password=********:FastLoad=True", _
 "2B54480041694C4987131B794078B4C9", False)

See Also

ListManager Object


ListManager.CreateFromFile

Use this method to create a list from a text file.

Definition

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

A String that provides the name for the new list.

listDesc

A String that provides a description for the new list.

lFlags

A Long that specifies the bitmask flags that control the type of list created.

userFlags

A Long 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

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

A Boolean that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.

pvarOpID

An optional Variant used to return an Operation ID.

Return Values

If this method completes successfully, it returns a Variant that contains the ID of the new list.

Error Values

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 | &H8C40000A | The specified file path is not valid.
E_LM_FILE_ACCESS_DENIED | &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 | &H8C400015 | The specified file does not exist.
E_LM_FILESHARE_NOT_FOUND | &H8C400016 | The network share does not exist and a full path was not specified for the file.
E_LM_INVALID_FLAGS | &H8C400005 | Invalid flags value.
E_LM_LIST_ALREADY_EXISTS | &H8C400007 | The specified list has already been created.
E_LM_LISTPARSE_NO_GOOD_ROWS | &H8C40001B | All rows in the file contained parse errors. List import failed.
E_LM_NO_GENERIC_FROM_FILE | &H8C400014 | Generic lists may not be imported from files.
E_LM_OPER_CANCELED | &H8C40000B | The operation was canceled.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

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.

Example

' vListID is a Variant
vListID = oListManager.CreateFromFile("TequillaBuyers1", _
 "Tequilla buyers in January", 20, 0, "Tequilla.csv", 10, False)

See Also

ListManager Object


ListManager.CreateFromSegment

Use this method to create a list from a Predictor resource segment.

Definition

Function CreateFromSegment(
listName As String,
listDesc As String,
lFlags As Long,
userFlags As Long,
modelName As String,
segmentName As String,
predHostName As String,
DWConnStr As String,
fpMinProbability As Double,
bAsync As Boolean,
Optional pvarOpID As Variant
) As Variant

Parameters

listName

A String that contains provides the name for the list.

listDesc

A String that contains the list description.

lFlags

A Long that specifies the bitmask flags that control the type of list created.

userFlags

A Long 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

A Boolean that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.

pvarOpID

An optional Variant used to return an Operation ID.

Return Values

If this method completes successfully, it returns a Variant used to return the new list ID.

Error Values

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 | &H8C400001 | Failed to establish database connection.
E_LM_CREATE_OBJECT | &H8C400017 | Unable to create the object.
E_LM_INVALID_FLAGS | &H8C400005 | Invalid flags value.
E_LM_LIST_ALREADY_EXISTS | &H8C400007 | The specified list has already been created.
E_LM_MAILABLE_LIST_NO_EMAILS | &H8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
E_LM_OPER_CANCELED | &H8C40000B | The operation was canceled.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
E_LM_USER_LIST_NO_GUIDS | &H8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
OLE_E_BLANK | &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.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' vListID is a Variant
vListID = oListManager.CreateFromSegment("TequillaBuyers", _
 "Thirty year old tequilla buyers ", 20, 0, "Tequilla", "Thirty", _
 "TequillaServer", "Provider=SQLOLEDB;Data Source=servername;" & _
 "Initial Catalog=Retail_dw;User ID=user;Password=********;", False)

See Also

ListManager Object

ListManager.GetListFlags


ListManager.CreateFromSql

Use this method to create a list from a SQL query.

Definition

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

A String that provides the name for the list.

listDesc

A String that provides a description for the list.

lFlags

A Long that specifies the bitmask flags that control the type of list created.

userFlags

A Long 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

A Long that is not used.

bAsync

A Boolean that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.

pvarOpID

An optional Variant used to return an Operation ID.

Return Values

If this method completes successfully, it returns a Variant that contains the ID of the new list.

Error Values

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 | &H8C400001 | Failed to establish database connection.
E_LM_INVALID_FLAGS | &H8C400005 | Invalid flags value.
E_LM_LIST_ALREADY_EXISTS | &H8C400007 | The specified list has already been created.
E_LM_MAILABLE_LIST_NO_EMAILS | &H8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
E_LM_OPER_CANCELED | &H8C40000B | The operation was canceled.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
E_LM_USER_LIST_NO_GUIDS | &H8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
OLE_E_BLANK | &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.

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.

Example

' vListID is a Variant
vListID = oListManager.CreateFromSql("LegalTequillaBuyers", _
 "Tequilla buyers at least 21", 20, 0, "Provider=sqloledb;" & _
 "Data Source=TequillaServer;Initial Catalog=Margaritas;" & _
 "User=userid;Password=******", "SELECT * FROM dbname.dbo.Tequilla " & _
 "WHERE Age >= 21", 10, False)

See Also

ListManager Object


ListManager.Delete

Use this method to delete a list.

Definition

Sub Delete(
listID As Variant
)

Parameters

listID

A Variant that specifies the ID or name of the list to be deleted.

Error Values

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 | &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_NOT_FOUND | &H8C400006 | The specified list does not exist.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

Remarks

To be deleted, a list cannot be busy with any operation.

The list data is also deleted.

See Also

ListManager Object


ListManager.ExportToFile

Use this method to export a Mailing list to a text file.

Definition

Sub ExportToFile(
listID As Variant,
fileName As String,
bUnicode As Boolean,
bOverwrite As Boolean,
bAsync As Boolean,
Optional pvarOpID As Variant
)

Parameters

listID

A Variant that contains the ID or name of the list to be exported.

fileName

A String that contains the name of the file.

bUnicode

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

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

A Boolean that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.

pvarOpID

An optional Variant used to return an Operation ID.

Error Values

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 | &H8C40000A | The specified file path is not valid.
E_LM_FILE_ACCESS_DENIED | &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 | &H8C400010 | The specified file cannot be created because it already exists.
E_LM_FILESHARE_NOT_FOUND | &H8C400016 | The network share does not exist and a full path was not specified for the file.
E_LM_LIST_BUSY | &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | &H8C400006 | The specified list does not exist.
E_LM_MAILABLE_REQUIRED | &H8C400011 | The operation requires a mailable list and the specified list is not a mailable list.
E_LM_OPER_CANCELED | &H8C40000B | The operation was canceled.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

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.

Example

oListManager.ExportToFile "{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "Tequila.csv", False, True, False

See Also

ListManager Object


ListManager.ExportToSql

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

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

A Variant 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

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

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

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

An optional Variant used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.

Error Values

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 | &H8C400001 | Failed to establish database connection.
E_LM_LIST_BUSY | &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | &H8C400006 | The specified list does not exist.
E_LM_OPER_CANCELED | &H8C40000B | The operation was canceled.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
E_LM_TABLE_ALREADY_EXISTS | &H8C40000F | The specified table cannot be created because it already exists.
OLE_E_BLANK | &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.

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.

Example

oListManager.ExportToSql "{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "Provider=sqloledb;Data Source=TequillaServer;" & _
 "Initial Catalog=Margaritas;User=userid;Password=******", _
 "Tequila", False, 0, False

See Also

ListManager Object

ListManager.ExtractMailingList


ListManager.ExtractMailingList

Use this method to create a new mailing list from a generic list.

Definition

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

A Variant 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

A Long that contains application specific user flags. Not used by the ListManager object.

bAsync

A Boolean that specifies whether the export operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.

pvarOpID

An optional Variant used to return an Operation ID.

Return Values

If this method completes successfully, it returns a Variant that contains the ID of the new list.

Error Values

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 | &H8C400007 | The specified list has already been created.
E_LM_LIST_BUSY | &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | &H8C400006 | The specified list does not exist.
E_LM_MAILABLE_LIST_NO_EMAILS | &H8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
E_LM_MAILABLE_REQUIRED | &H8C400011 | The operation requires a mailable list and the specified list is not a mailable list.
E_LM_OPER_CANCELED | &H8C40000B | The operation was canceled.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
E_LM_USER_LIST_NO_GUIDS | &H8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
OLE_E_BLANK | &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.

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.

Example

' vListID & pvarOpId are Variants
vListID = oListManager.ExtractMailingList("{454799A2-312B-4F5F-90A0-" & _
 "F514FBA0EC5A}", "TequilaBuyers1", "Tequilla buyers in January", 0, _
 True, pvarOpID)

See Also

ListManager Object


ListManager.GetListFlags

Use this method to retrieve the flags attribute for a list.

Definition

Function GetListFlags(
listID As Variant
) As Long

Parameters

listID

A Variant that contains the ID of the ID or name of the list.

Return Values

If this method completes successfully, it returns a Long that contains the flags attribute.

Error Values

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 | &H8C400006 | The specified list does not exist.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

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

ListManager Object


ListManager.GetListId

Use this method to retrieve the ID of a list given the list name.

Definition

Function GetListId(
listName As String
) As Variant

Parameters

listName

A String that contains the list name.

Return Values

If this method completes successfully, it returns a Variant containing the ID (a GUID) of the list.

Error Values

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 | &H8C400006 | The specified list does not exist.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ListManager Object


ListManager.GetListName

Use this method to retrieve the name of a list given the list ID.

Definition

Function GetListName(
listID As Variant
) As String

Parameters

listID

A Variant that contains the list ID.

Return Values

If this method completes successfully, it returns a String that contains the name of the list.

Error Values

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 | &H8C400006 | The specified list does not exist.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ListManager Object


ListManager.GetListProperty

Use this method to retrieve a property of a list.

Definition

Function GetListProperty(
listID As Variant,
listPropertyName As String
) As Variant

Parameters

listID

A Variant 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

If this method completes successfully, it returns a Variant containing the value of the property.

Error Values

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 | &H8C400006 | The specified list does not exist.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

Remarks

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.

Example

' vSource is a Variant
vSource = _
 oListManager.GetListProperty("{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", _
 "list_source")

See Also

ListManager Object


ListManager.GetLists

Use this method to enumerate all lists known to the ListManager object.

Definition

Function GetLists() As Object

Parameters

None.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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

ListManager Object


ListManager.GetListUserFlags

Use this method to retrieve the UserFlags attribute for a list.

Definition

Function GetListUserFlags(
listID As Variant
) As long

Parameters

listID

A Variant that contains the ID of the ID or name of the list.

Return Values

If this method completes successfully, it returns a Long that contains the UserFlags attribute.

Error Values

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 | &H8C400006 | The specified list does not exist.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

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

ListManager Object


ListManager.GetOperationInfo

Use this method to retrieve a Recordset object containing columns describing the specified list operation.

Definition

Function GetOperationInfo(
varOpID As Variant
) As Object

Parameters

varOpID

A Variant that contains the Operation ID.

Return Values

If this method completes successfully, it returns a Recordset object containing the operation information.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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

ListManager Object


ListManager.GetOperations

Use this method to enumerate all operations known to the ListManager object.

Definition

Function GetOperations() As Object

Parameters

None.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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

ListManager Object

ListManager.CancelOperation


ListManager.Initialize

Use this method to initialize the ListManager object.

Definition

Sub Initialize(
bstrConnStr As String,
)

Parameters

bstrConnStr

A String that contains the connection string for the database to which the List Manager will connect.

Error Values

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 | &H8C400002 | The ListManager object has already been initialized and may not be re-initialized.
E_LM_CONNECTIONFAILED | &H8C400001 | Failed to establish database connection.
E_LM_SQLERROR |  | Error while executing SQL/ADO operation.

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.

Example

oListManager.Initialize "Provider=sqloledb;" & _
 "Data Source=TequillaServer;Initial Catalog=Margaritas;" & _
 "User=userid;Password=******"

See Also

ListManager Object

ListManager.ExportToSQL


ListManager.RemoveUserFromMailingList

Use this method to remove a user from a mailing list

Definition

Sub RemoveUserFromMailingList(
listID As Variant,
UserEmail As String
)

Parameters

listID

A Variant that contains the ID or name of the list.

UserEmail

A String that contains the e-mail address of the user.

Error Values

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 | &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | &H8C400006 | The specified list does not exist.
E_LM_MAILABLE_LIST_NO_EMAILS | &H8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
E_LM_MUST_BE_STATIC | &H8C400019 | The operation requires a static list and the specified list is dynamic.
E_LM_NOT_MAILING_LIST | &H8C400018 | The operation requires a Mailing list and the specified list is not a mailing list.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
E_LM_USER_LIST_NO_GUIDS | &H8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
OLE_E_BLANK | &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.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

oListManager.RemoveUserFromMailingList _
 "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", "JaneUser@somewhere.com"

See Also

ListManager Object


ListManager.Rename

Use this method to rename a list.

Definition

Sub Rename(
listID As Variant,
newListName As String
)

Parameters

listID

A Variant that specifies the ID or name of the list to be renamed.

newListName

A String that contains the new name for the list.

Error Values

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 | &H8C400007 | The specified list has already been created
E_LM_LIST_BUSY | &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | &H8C400006 | The specified list does not exist.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

Remarks

The new name must not be the same as any existing list name.

Example

oListManager.Rename "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", "Tequila"

See Also

ListManager Object


ListManager.SetDesc

Use this method to provide a new description for a list.

Definition

Sub SetDesc(
listID As Variant,
newListDesc As String
)

Parameters

listID

A Variant that specifies the ID or name of the list.

newListDesc

A String that contains the description to be associated with the list.

Error Values

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 | &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | &H8C400006 | The specified list does not exist.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

Example

oListManager.SetDesc(listID, newListDesc)

See Also

ListManager Object


ListManager.SetListProperty

Use this method to set a property of a list.

Definition

Sub SetListProperty(
listID As Variant,
listPropertyName As String,
ListProp As Variant
)

Parameters

listID

A Variant that contains the ID or name of the list.

listPropertyName

A String that contains the property name (column of the lm_master table).

ListProp

A Variant that contains the value to set the property.

Error Values

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 | &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_MUST_BE_DYNAMIC | &H8C400012 | The operation requires a dynamic list and the specified list is not a dynamic list.
E_LM_LIST_NOT_FOUND | &H8C400006 | The specified list does not exist.
E_LM_LISTPROP_NOT_UPDATEABLE | &H8C400013 | The specified list property cannot be changed after the list has been created.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

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.

Example

oListManager.SetListProperty "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", _
 "list_userflags", 12)

See Also

ListManager Object


ListManager.Status

The Status property is a read-only Long that contains the ListManager object status.

Definition

Property Status() As Long

Parameters

None.

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 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

ListManager Object


ListManager.Subtract

Use this method to subtract one mailing list from another mailing list, placing the result in a third list.

Definition

Sub Subtract(
srcList As Variant,
lessList As Variant,
resList As Variant,
errLimit As Long,
bAsync As Boolean,
Optional pvarOpID As Variant
)

Parameters

srcList

A Variant that contains the ID or name of the list from which elements will be subtracted.

lessList

A Variant that contains the ID or name of the less list.

resList

A Variant that contains the ID or name of the list into which the results of the subtraction operation will be placed.

errLimit

A Long that is not used.

bAsync

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

An optional Variant used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.

Error Values

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 | &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | &H8C400006 | The specified list does not exist.
E_LM_MAILABLE_REQUIRED | &H8C400011 | The operation requires a mailable list and the specified list is not a mailable list.
E_LM_OPER_CANCELED | &H8C40000B | The operation was canceled.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

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.

Example

oListManager.Subtract "{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", _
 "{7131B794-5448-078B-B544-799A2311B79A}", 10, False

See Also

ListManager Object


ListManager.Union

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

Sub Union(
srcList As Variant,
addList As Variant,
resList As Variant,
errLimit As long,
bAsync As Boolean,
Optional pvarOpID As Variant
)

Parameters

srcList

A Variant that contains the ID or name of the source list.

addList

A Variant that contains the ID or name of the add list.

resList

A Variant that contains the ID or name of the list into which the results of the union operation will be placed.

errLimit

A Long that is not used.

bAsync

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

An optional Variant used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.

Error Values

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 | &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | &H8C400006 | The specified list does not exist.
E_LM_MAILABLE_REQUIRED | &H8C400011 | The operation requires a mailable list and the specified list is not a mailable list.
E_LM_OPER_CANCELED | &H8C40000B | The operation was canceled.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

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.

Example

oListManager.Union "{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", _
 "{7131B794-5448-078B-B544-799A2311B79A}", 10, False

See Also

ListManager Object


ListManager.WaitOnOperation

Use this method to wait until an operation is complete or a specified time period has elapsed.

Definition

Sub WaitOnOperation(
varOpID As Variant,
Optional timeout As Long
)

Parameters

varOpID

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

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.

Error Values

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 | &H8C400004 | The operation ID does not represent a currently running operation.
E_LM_SQLERROR | &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | &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.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

oListManager.WaitOnOperation "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", 900

See Also

ListManager Object


LRUCache Object

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 2000 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both

The methods of the LRUCache object are shown in the following table.

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

Use this method to remove the specified element from the cache.

Definition

Sub Flush(
Optional bstrKey As String
)

Parameters

bstrKey

An optional String that contains the name of the element to be removed from the cache.

Return Values

None.

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 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

CacheManager Object

LRUCache Object


LRUCache.FlushAll

Use this method to remove all elements from the cache.

Definition

Sub FlushAll()

Parameters

None.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

CacheManager Object

LRUCache Object


LRUCache.Insert

Use this method to add an element to the cache.

Definition

Sub Insert(
bstrKey As String,
pvarValue As Variant
)

Parameters

bstrKey

A String that contains the name of the element to be added to the cache.

pvarValue

A Variant that contains the value of the element.

Return Values

None.

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 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

'vManAd is a Variant that references an ad.
oLRUCache.Insert("ManufacturerAd", vManAd)

See Also

CacheManager Object

LRUCache Object


LRUCache.Lookup

Use this method to retrieve the value of an element from the cache.

Definition

Function Lookup(
bstrKey As String
) As Variant

Parameters

bstrKey

A String that contains the name of the element to be retrieved.

Return Values

If this method completes successfully, it returns a Variant that contains the value of the specified element.

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 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

' vFavAd is a Variant
vFavAd = myLRUCache.Lookup("Favorite Ad")

See Also

CacheManager Object

LRUCache Object


LRUCache.LookupObject

Use this method to retrieve an object from the cache.

Definition

Function LookupObject(
bstrKey As String
) As Object

Parameters

bstrKey

A String that contains the name of the object to be retrieved.

Return Values

If this method completes successfully, it returns an object.

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 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

Set oMyObject = oLRUCache.LookupObject("My Object")

See Also

CacheManager Object

LRUCache Object


LRUCache.SetSize

Use this method to set the maximum size of the cache.

Definition

Sub SetSize(
lSize As Long
)

Parameters

lSize

A Long that specifies the size of the cache.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

CacheManager Object

LRUCache Object


MessageManager Object

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

The single property of the MessageManager object is shown in the following table.

Property | Type | Description
defaultLanguage | String | Specifies the default message set for the MessageManager object. This property is read/write.

The methods of the MessageManager object are shown in the following table.

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.

See Also

Display Objects


MessageManager.AddLanguage

Use this method to add a message set to the MessageManager, 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

Sub AddLanguage(
bstrLanguage As String,
Locale As Long
)

Parameters

bstrLanguage

A String that contains the name for the message set to add to the MessageManager object.

Locale

A Long that uniquely identifies the locale to associate with the added message set.

Return Values

None.

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 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

' oMessageManager is a Commerce.MessageManager object
oMessageManager.AddLanguage("usa", 1033)

See Also

MessageManager Object

MessageManager.DefaultLanguage

DataFunctions.Locale

MessageManager.GetMessage


MessageManager.AddMessage

Use this method to add a message to the MessageManager object.

Definition

Sub AddMessage(
bstrName As String,
bstrMessage As String,
vtLanguage As Variant
)

Parameters

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

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

None.

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 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 OPP, showing the message name constant expected by the Order Processing pipeline (OOP) 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 OrderForm.
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 OrderForm 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 OrderForm.
pur_out_of_stock | FlagInventory, LocalInventory | _Purchase_Errors when an item referenced in the OrderForm is out of stock.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' oMessageManager is a Commerce.MessageManager object
oMessageManager.AddMessage("pur_out_of_stock", _
    "At least one item is out of stock.")

See Also

MessageManager Object

MessageManager.DefaultLanguage

MessageManager.GetMessage


MessageManager.DefaultLanguage

Use the DefaultLanguage property to specify the default message set for the MessageManager. When you use the GetMessage method, or use the AddMessage method to add messages to the MessageManager, without specifying a message set for those messages, then the messages are associated with the message set specified in this property.

Definition

Property DefaultLanguage As String

Parameters

None.

Error Values

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

MessageManager Object

MessageManager.GetLocale


MessageManager.GetLocale

Use this method to return a number that identifies the locale for the specified message set.

Definition

Function GetLocale(
vtLanguage As Variant
) As Long

Parameters

vtLanguage

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.

Return Values

If this method completes successfully, it returns a Long used to identify the locale for the specified message set.

Error Values

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

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.

Example

' oMessageManager is a Commerce.MessageManager object
oMessageManager.GetLocale("us")

See Also

MessageManager Object

MessageManager.GetMessage

MessageManager.AddLanguage


MessageManager.GetMessage

Use this method to return the text of the specified message.

Definition

Function GetMessage(
bstrName As String,
vtLanguage As Variant
) As String

Parameters

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

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.

Return Values

If this method completes successfully, it returns a String Variant that contains the text of the specified error message.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' oMessageManager is a Commerce.MessageManager object
oMessageManager.GetMessage("pur_out_of_stock", "us")

See Also

MessageManager Object

MessageManager.AddLanguage

MessageManager.GetLocale


MicroPipe Object

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 2000 MicroPipe Type Library
DLL Name: | micropipe.dll
Threading Model: | Both

The methods of the MicroPipe object are shown in the following table.

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.

See Also

Pipeline Objects


MicroPipe.Execute

Use this method to run the pipeline component specified by the SetComponent method.

Definition

Function Execute(
pdispOrder As Object,
pdispContext As Object,
lFlags As Long
) As Long

Parameters

pdispOrder

A reference to a Dictionary object, usually an OrderForm object. The Order dictionary for the pipeline component to be run.

pdispContext

A reference to a Dictionary object. The Context dictionary for the pipeline component to be run.

lFlags

A Long integer. Reserved for future use. Must be set to zero (0).

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM 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, the method returns one of the following three values:

Value | Description
1 | The pipeline component ran successfully.
2 | The pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3 | The pipeline component failed to run.

Remarks

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' pMicroPipeline is a Commerce.MicroPipeline object
' dOrder and dContext are Commerce.Dictionary objects

errVal = pMicropipeline.Execute(dOrder, dContext, 0)

See Also

MicroPipe Object

MicroPipe.SetComponent

MicroPipe.SetLogFile


MicroPipe.SetComponent

Use this method to specify the pipeline component to run.

Definition

Sub SetComponent(
pdispComponent As Object
)

Parameters

pdispComponent

A reference to the pipeline component to be run.

Return Values

None.

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 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.

Example

' pMicroPipeline is a Commerce.MicroPipeline object
' oCompPipe is an object that references the pipeline component
' to be run.

pMicropipeline.SetComponent(oCompPipe)

See Also

MicroPipe Object

MicroPipe.Execute

MicroPipe.SetLogFile


MicroPipe.SetLogFile

Use this method to identify the file in which to log the operations of the pipeline component.

Definition

Sub SetLogFile(
bstrFileName As String
)

Parameters

bstrFileName

A String containing the file name for logging.

Return Values

None.

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 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.

Example

' pMicroPipeline is a Commerce.MicroPipeline object

pMicroPipeline.SetLogFile("MicroPipeLog.txt")

See Also

MicroPipe Object

MicroPipe.Execute

MicroPipe.SetComponent


MtsPipeline Object

Use this object to execute a non-transacted Microsoft Commerce Server 2000 pipeline. The pipeline may be an Order Processing pipeline (OPP).

ProgID: | Commerce.MtsPipeline (Externally creatable)
COM Class Name: | CMtsPipeline
Type Library Name: | Microsoft Commerce 2000 Order Pipeline Type Library
DLL Name: | pipeline.dll
Threading Model: | Apartment

The methods of the MtsPipeline object are shown in the following table.

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.


MtsPipeline.Execute

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

Function Execute(
lMode As Long,
pdispOrder As Object,
pdispContext As Object,
lFlags As Long
) As Long

Parameters

lMode

A Long 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 Long parameter. Must be set to zero (0).

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM 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, 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' pMtsPipeline is a Commerce.MtsPipeline object
' dOrder and dContext are Commerce.Dictionary objects

errVal = pMtsPipelineExecute(1, dOrder, dContext, 0)

See Also

MtsPipeline Object

MtsPipeline.LoadPipe

MtsPipeline.SetLogFile

PooledPipeline Object


MtsPipeline.LoadPipe

Use this method to load a pipeline configuration file (.pcf) into the pipeline.

Definition

Sub LoadPipe(
pszFileName As String
)

Parameters

pszFileName

A String containing the pipeline configuration file name.

Return Values

None.

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 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.

Example

' pMtsPipeline is a Commerce.MtsPipeline object

errVal = pMtsPipeline.Load("CustomShip.pcf")

See Also

MtsPipeline Object

MtsPipeline.Execute

MtsPipeline.SetLogFile

PooledPipeline Object


MtsPipeline.SetLogFile

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

Sub SetLogFile(
pszFileName As String
)

Parameters

pszFileName

A String containing the name of the file in which to log events.

Return Values

None.

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 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 the method with an empty string turns off logging.

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 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.

Example

' pMtsPipeline is a Commerce.MtsPipeline object

errVal = pMtsPipeline.SetLogFile("CustomShipping.log")

' pOrderGroup is an OrderGroup object

pOrderGroup.LogFile = "CustomShipping.log"

See Also

MtsPipeline Object

MtsPipeline.Execute

MtsPipeline.LoadPipe

PooledPipeline Object


MtsTxPipeline Object

Use this object to execute a transacted Microsoft Commerce Server 2000 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 2000 Order Pipeline Type Library
DLL Name: | pipeline.dll
Threading Model: | Apartment

The methods of the MtsTxPipeline object are shown in the following table.

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.


MtsTxPipeline.Execute

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

Function Execute(
lMode As Long,
pdispOrder As Object,
pdispContext As Object,
lFlags As Long
) As Long

Parameters

lMode

A Long 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. 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 Long parameter. Must be set to zero (0).

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM 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, 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' pMtsTxPipeline is a Commerce.MtsTxPipeline object
' dOrder and dContext are Commerce.Dictionary objects

errVal = pMtsTxPipeline.Execute(1, dOrder, dContext, 0)

See Also

MtsTxPipeline Object

MtsTxPipeline.LoadPipe

MtsTxPipeline.SetLogFile


MtsTxPipeline.LoadPipe

Use this method to load a pipeline configuration file (.pcf) into the pipeline.

Definition

Sub LoadPipe(
pszFileName As String
)

Parameters

pszFileName

A String containing the pipeline configuration file (.pcf) name.

Return Values

None.

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 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.

Example

' pMtsTxPipeline is a Commerce.MtsTxPipeline object

errVal = pMtsTxPipeline.LoadPipe("CustomShip.pcf")

See Also

MtsTxPipeline Object

MtsTxPipeline.Execute

MtsTxPipeline.SetLogFile


MtsTxPipeline.SetLogFile

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

Sub SetLogFile(
pszFileName As String
)

Parameters

pszFileName

A String containing the name of the file in which to log events.

Return Values

None.

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 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 executing 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.

Example

' pMtsPipeline is a Commerce.MtsTxPipeline object

errVal = pMtsTxPipeline.SetLogFile("CustomShipping.log")

See Also

MtsTxPipeline Object

MtsTxPipeline.LoadPipe

MtsTxPipeline.Execute


OrderForm Object

The OrderForm object provides for the in-memory storage of user and purchase information. Commerce Server 2000 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 2000 Core Components Type Library
DLL Name: | MscsCore.dll
Threading Model: | Both

The methods of the OrderForm object are shown in the following table.

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

Business Process Objects

OrderGroup Object

OrderGroupManager Object

SimpleFindSearchInfo Object

SimpleFindResultInfo Object


OrderForm.AddItem

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

Function AddItem(
varSKU As Variant,
lCount As Long,
lPlacedPrice As Long
) As Object

Parameters

varSKU

A Variant that contains the SKU of the item to add.

lCount

A Long that contains the item count.

lPlacedPrice

A Long that is reserved for future use. This parameter must be set to 0 (zero).

Return Values

If this method completes successfully, it returns an object reference that holds the Dictionary object that contains the added item.

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 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

' 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

OrderForm Object

OrderForm.ClearItems

OrderForm.ClearOrderForm


OrderForm.ClearItems

Use this method to clear the items collection of the OrderForm object.

Definition

Sub ClearItems()

Parameters

None.

Return Values

None.

Error Values

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

OrderForm Object

OrderForm.AddItem

OrderForm.ClearOrderForm


OrderForm.ClearOrderForm

Use this method to clear the entire OrderForm object.

Definition

Sub ClearOrderForm()

Parameters

None.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

OrderForm Object

OrderForm.AddItem

OrderForm.ClearItems


OrderGroup Object

The OrderGroup object is used in Commerce Server 2000 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 2000 OrderGroup Type Library
DLL Name: | requisition.dll
Threading Model: | Apartment

The properties of the OrderGroup object are shown in the following table.

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.

The methods of the OrderGroup object are shown in the following table.

Method | Description
AddItem | Adds an item to the specified OrderForm object.
AddItemsFromTemplate | Adds the line items associated with an on-disk OrderGroup 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 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 at the specified index.
GetOrderFormAsXML | Converts an OrderForm object into an XML string.
GetOrderFormValue | Gets the OrderForm value specified by the supplied OrderForm key.
Initialize | Initializes the OrderGroup object.
LoadOrder | Loads the specified OrderGroup 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.

See Also

Business Process Objects

OrderGroupManager Object

OrderForm Object

SimpleFindSearchInfo Object

SimpleFindResultInfo Object


OrderGroup.AddItem

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

Function AddItem(
dictItem As Object,
Optional strOrderFormName As Variant
) As Long

Parameters

dictItem

A Dictionary object that contains the line-item information.

strOrderFormName

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).

Return Values

If this method completes successfully, it returns a Long that specifies the index at which the item was added.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

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)

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

OrderGroup Object

OrderGroup.RemoveItem


OrderGroup.AddItemsFromTemplate

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

Sub AddItemsFromTemplate(
OrderGroupID As String
)

Parameters

OrderGroupID

A String that specifies the OrderGroup ID for the template.

Return Values

None.

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 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.

Example

' oOrderGroup is a Commerce.OrderGroup object
' myOGID is a GUID String
myOGID ="754C40C6-EAA9-454C-A8AB-02789FBE0FB9"
oOrderGroup.AddItemsFromTemplate(myOGID)

See Also

OrderGroup Object


OrderGroup.AddOrderform

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

Sub AddOrderform(
orderform As Object,
Optional strOrderFormName As Variant
)

Parameters

orderform

A Dictionary object that contains the OrderForm object that will be added.

strOrderFormName

A Variant that specifies the OrderForm name.

Return Values

None.

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 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

' dOrderForm is a Dictionary object
' sMyOrderName is a string
' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.AddOrderform(dOrderForm,sMyOrderName)

See Also

OrderGroup Object


OrderGroup.AddXMLAsOrderForm

Use this method to add items previously saved as XML (by using the GetOrderformAsXML method) back into an OrderGroup.

Definition

Sub AddXMLAsOrderForm(
strXML As String,
nXMLLocale As Long,
Optional strOrderFormName As Variant
)

Parameters

strXML

A String that specifies the XML string containing the line items to add.

nXMLLocale

A Long that specifies the locale to use in the XML string conversion.

strOrderFormName

A Variant that specifies the OrderForm name to add.

Return Values

None.

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 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.

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

OrderGroup Object

OrderGroup.GetOrderFormAsXML


OrderGroup.AggregateOrderFormValues

Use this method to iterate across all OrderForms, compute a total of the specified key, and store the total at the OrderGroup level.

Definition

Sub AggregateOrderFormValues(
strOrderFormKey As String,
strOrderGroupKey As String
)

Parameters

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.

Return Values

None.

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 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

' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.AggregateOrderFormValues("saved_cy_handling_total", _
"_cy_handling_total")

See Also

OrderGroup Object


OrderGroup.Clear

Use this method to clear the OrderGroup object of all OrderForm objects and Address dictionaries.

Definition

Sub Clear()

Parameters

None.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

OrderGroup Object


OrderGroup.GetAddress

Use this method to get the specified address Dictionary object.

Definition

Function GetAddress(
strAddressId As String
) As Object

Parameters

strAddressId

A String that specifies the address ID.

Return Values

If the specified address is found, this method returns a reference to that dictionary, otherwise it returns a Nothing object.

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 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

' oOrderGroup is a Commerce.OrderGroup object
' dDict is a Dictionary object

dDict = oOrderGroup.GetAddress("{C4F9C9CC-C33E-11D0-B8A0-00C04FB616C7}")

See Also

OrderGroup Object


OrderGroup.GetItemInfo

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

Function GetItemInfo(
nItemIndex As Long,
Optional strOrderFormName As Variant
) As Object

Parameters

nItemIndex

A Long that specifies the line-item index.

strOrderFormName

A Variant that specifies the OrderForm name.

Return Values

If this method completes successfully, it returns a Dictionary object that contains the line item information.

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 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

' oOrderGroup is a Commerce.OrderGroup object
' dDict is a Dictionary object
dDict = oOrderGroup.GetItemInfo(3, "testOrderFormName")

See Also

OrderGroup Object


OrderGroup.GetOrderFormAsXML

Use this method to convert an OrderForm object into an XML string.

Definition

Function GetOrderFormAsXML(
nXMLLocale As String,
Optional strOrderFormName As Variant
) As String

Parameters

nXMLLocale

A String that specifies the locale used in the XML string conversion.

strOrderFormName

A Variant that specifies the OrderForm.

Return Values

If this method completes successfully, it returns a String that contains the XML string.

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 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. 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.

Example

' oOrderGroup is a Commerce.OrderGroup object
' lLocale is a valid Locale identifier
sXMLResultString is a string
sXMLResultString = oOrderGroup.GetOrderFormAsXML(lLocale, myOrderFormName)

See Also

OrderGroup Object

OrderGroup.AddXMLAsOrderForm


OrderGroup.GetOrderFormValue

Use this method to get an attribute from an OrderForm, based on a specified key.

Definition

Function GetOrderFormValue(
strKey As String,
Optional strOrderFormName As Variant
) As Variant

Parameters

strKey

A String that contains the key that specifies the attribute to get.

strOrderFormName

A Variant that specifies the OrderForm name.

Return Values

If this method completes successfully, it returns a Variant that contains the attribute.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

Example

' oOrderGroup is a Commerce.OrderGroup object
vResult is a Variant

vResult = oOrderGroup.GetOrderFormValue(handling_total, _
"testOrderFormName")

See Also

OrderGroup Object


OrderGroup.Initialize

Use this method to initialize the OrderGroup object.

Definition

Sub Initialize(
strConnectionString As String,
strUser ID As String
)

Parameters

strConnectionString

A String that contains the database connection string.

strUser ID

A String that specifies the user ID. All Commerce Server 2000 user ID values are GUIDs.

Return Values

None.

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 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 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_User IDChangedBy field.

Note

  • If you are loading an OrderGroup 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 is saved back to the database. If you wish to load an OrderGroup 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.

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

OrderGroup Object


OrderGroup.LoadBasket

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

Sub LoadBasket()

Parameters

None.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

OrderGroup Object

OrderGroup.LoadOrder

OrderGroup.LoadTemplate

OrderGroup.SaveAsBasket


OrderGroup.LoadOrder

Use this method to load an OrderGroup from disk. This method returns an error if the OrderGroup cannot be found.

Definition

Sub LoadOrder(
strOrderGroupID As String
)

Parameters

strOrderGroupID

A String that specifies the OrderGroupID of the OrderGroup to be loaded.

Return Values

None.

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 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.

Example

' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.LoadOrder("{EEF9C9CC-C33E-11D0-B8A0-00C04FB616C7}")

See Also

OrderGroup Object

OrderGroup.LoadBasket

OrderGroup.LoadTemplate

OrderGroup.Initialize

OrderGroup.SaveAsOrder


OrderGroup.LoadTemplate

Use this method to load the specified template from the database.

Definition

Sub LoadTemplate(
strOrderGroupID As String
)

Parameters

strOrderGroupID

A String that specifies the OrderGroupID of the template to be loaded.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Example

' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.LoadTemplate("{EEF9C9CC-C33E-11D0-B8A0-00C04FB616C7}")

See Also

OrderGroup Object

OrderGroup.LoadOrder

OrderGroup.LoadBasket

OrderGroup.SaveAsTemplate


OrderGroup.LogFile

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

Property LogFile As String

Parameters

None.

Error Values

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.

Set the LogFile parameter to an empty string ("") to disable logging.

See Also

OrderGroup Object


OrderGroup.PurgeUnreferencedAddresses

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

Sub PurgeUnreferencedAddresses()

Parameters

None.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

OrderGroup Object


OrderGroup.PutItemValue

Use this method to put the specified values into the specified keys of the line item.

Definition

Sub PutItemValue(
strKey As String,
vtValue As Variant,
Optional bOverWrite As Boolean,
Optional nItemIndex As Variant,
Optional strOrderFormName As Variant
)

Parameters

strKey

A String that specifies the key whose attribute will store the value specified by the vtValue parameter.

vtValue

A VARIANT 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

A Variant that specifies the line-item index.

strOrderFormName

A Variant that specifies the OrderForm name.

Return Values

None.

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 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.

Example

' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.PutItemValue(payment_method, credit_card, False)

See Also

OrderGroup Object


OrderGroup.PutOrderFormValue

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

Sub PutOrderFormValue(
strKey As String,
vtValue As Variant,
Optional strOrderFormName As Variant
)

Parameters

strKey

A String that specifies the key whose attribute will store the value specified by the vtValue parameter.

vtValue

A VARIANT that specifies the value to store in the attribute of the key specified by the strKey parameter.

strOrderFormName

A Variant that specifies the OrderForm name.

Return Values

None.

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 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

' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.PutOrderFormValue(handling_total, "$ 421.23")

See Also

OrderGroup Object


OrderGroup.RemoveItem

Use this method to remove a line item from the specified OrderForm object. The item index specified indicates which line item to remove.

If the the strOrderFormName parameter is not supplied, the strOrderFormName parameter defaults to "default".

Definition

Sub RemoveItem(
Optional nItemIndex As Variant,
Optional strOrderFormName As Variant
)

Parameters

nItemIndex

A Variant that specifies the line item index.

strOrderFormName

A Variant that specifies the OrderForm name.

Return Values

None.

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 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

OrderGroup Object

OrderGroup.AddItem


OrderGroup.RemoveOrderForm

Use this method to remove the specified OrderForm from the OrderGroup object.

Definition

Sub RemoveOrderForm(
strOrderFormName As String
)

Parameters

strOrderFormName

A String that specifies the OrderForm to remove.

Return Values

None.

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 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

' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.RemoveOrderForm("myOrderFormName")

See Also

OrderGroup Object

OrderGroup.AddOrderform


OrderGroup.RunPipe

Use this method to run the Pipeline Component File on each OrderForm in the OrderGroup object.

Definition

Function RunPipe(
strPCF As String,
strPipelineProgID As String,
oContext As Object
) As Long

Parameters

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.

Return Values

If this method completes successfully, it returns a Long that specifies the maximum error level encountered by the pipeline runs.

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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

Pipeline Basics

OrderGroup Object

OrderGroup.LogFile


OrderGroup.SaveAsBasket

Use this method to save the OrderGroup object to the database with a basket status.

Definition

Function SaveAsBasket() As Variant

Parameters

None.

Return Values

If this method completes successfully, it returns a Variant that specifies the OrderGroupID.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

Example

' oOrderGroup is a Commerce.OrderGroup object
' vResult is a Variant
vResult = oOrderGroup.SaveAsBasket()

See Also

OrderGroup Object

OrderGroup.LoadBasket

OrderGroup.SaveAsOrder

OrderGroup.SaveAsTemplate


OrderGroup.SaveAsOrder

Use this method to save the OrderGroup to the database with an order status.

Definition

Function SaveAsOrder(
Optional vtOutTrackingNumber As Variant
) As Variant

Parameters

vtOutTrackingNumber

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.

Return Values

If this method completes successfully, it returns a Variant that specifies the OrderGroupID.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

Example

' oOrderGroup is a Commerce.OrderGroup object
' vResult is a Variant
' vTrackingNumber is a Variant
vResult = oOrderGroup.SaveAsOrder(vTrackingNumber)

See Also

OrderGroup Object

OrderGroup.SaveAsBasket

OrderGroup.SaveAsTemplate


OrderGroup.SaveAsTemplate

Use this method to save the OrderGroup to the database with a template status.

Definition

Function SaveAsTemplate(
Optional strTemplateName As Variant
) As Variant

Parameters

strTemplateName

A Variant that specifies the template name.

Return Values

If this method completes successfully, it returns a Variant that specifies the OrderGroupID of the template.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

Example

' oOrderGroup is a Commerce.OrderGroup object
' vResult is a Variant
vResult = oOrderGroup.SaveAsTemplate()

See Also

OrderGroup Object

OrderGroup.SaveAsBasket

OrderGroup.SaveAsOrder


OrderGroup.SavePrefix

Specifies a key prefix that will prevent a dictionary entry from being saved to the database.

Definition

Property SavePrefix() As String

Parameters

None.

Error Values

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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

OrderGroup Object


OrderGroup.SetAddress

Use this method to add a specified address dictionary to the OrderGroup Addresses collection of the OrderGroup.

Definition

Sub SetAddress(
strAddressId As String,
oAddressDict As Object
)

Parameters

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.

Return Values

None.

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 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

' oOrderGroup is a Commerce.OrderGroup object
' oAddDict is an address Dictionary object
oOrderGroup.SetAddress("{AABBC9CC-C33E-11D0-B8A0-00C04FB616C7}", oAddDict)

See Also

OrderGroup Object

OrderGroup.SetAddressFromFields


OrderGroup.SetAddressFromFields

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

Sub SetAddressFromFields(
strAddressId As String,
flds As Object
)

Parameters

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.

Return Values

None.

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 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

' oOG is a Commerce.OrderGroup object
' oFlds is a Fields object
oOG.SetAddressFromFields("{34ECC9CC-C33E-11D0-B8A0-00C04FB616C7}", _
    oFlds)

See Also

OrderGroup Object

OrderGroup.SetAddress


OrderGroup.SetShippingAddress

Use this method to set the shipping address id for the specified line items.

Definition

Sub SetShippingAddress(
address_id As String,
Optional bOverWrite As Boolean,
Optional nItemIndex As Variant,
Optional strOrderFormName As Variant
)

Parameters

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

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

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

None.

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 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.

Example

' oOrdGrp is a Commerce.OrderGroup object
oOrdGrp.SetShippingAddress(("{34ECC9CC-C33E-11D0-B8A0-00C04FB616C7}", _
    True, 4, "testOrderFormName")

See Also

OrderGroup Object


OrderGroup.Value

The Value property is a read-only Variant that contains the OrderGroup-level attributes as a dictionary.

Definition

Property Value As Variant

Parameters

None.

Error Values

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

OrderGroup Object


OrderGroupManager Object

Use this object to manage OrderGroups and their contents. This object allows you to search for orders or baskets without having to use SQL queries. It also allows for OrderGroup deletions.

ProgID: | Commerce.OrderGroupManager (Externally creatable)
COM Class Name: | OrderGroupManager
Type Library Name: | Microsoft Commerce 2000 OrderGroup Type Library
DLL Name: | requisition.dll
Threading Model: | Apartment

The properties of the OrderGroupManager object are shown in the following table.

Property | Type | Description
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.

The methods of the OrderGroupManager object are shown in the following table.

Method | Description
DeleteOrderGroupFromDisk | Checks whether a connection to the database has been established for the specified OrderGroup then deletes the OrderGroup and all objects contained within it from the database.
Find | Performs a SQL search based on the specified SQL clause fragments.
FindTemplatesForUser | Finds an ADO recordset of OrderGroup templates for the specified user. Returns an ADO 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 ADO recordset of OrderGroup items based on the specified SimpleFindSearchInfo values and SimpleFindResultInfo values. These object values contain the search criteria.

See Also

Business Process Objects

OrderGroup Object

OrderForm Object

SimpleFindSearchInfo Object

SimpleFindResultInfo Object


OrderGroupManager.DeleteOrderGroupFromDisk

Use this method to check whether a connection to the database has been established for the specified OrderGroup, then delete the OrderGroup and all objects contained within it from the database.

Definition

Sub DeleteOrderGroupFromDisk(
OrderGroupID As String
)

Parameters

OrderGroupID

A String that contains the OrderGroup ID.

Return Values

None.

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 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

' sOrderGroupID is a string containing a valid OrderGroupID
' oOrderGroupManager is a Commerce OrderGroupManager object
oOrderGroupManager.DeleteOrderGroupFromDisk(sOrderGroupID)

See Also

OrderGroupManager Object


OrderGroupManager.Find

Use this method to perform a SQL search based on the specified SQL clause fragments.

Definition

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

A Variant that contains the SQL clause used to search for a specific set of OrderGroups.

OrderFormCriteriaArray

A Variant that contains the SQL clause used to search for a specific set of OrderForms.

LineItemCriteriaArray

A Variant that contains the SQL clause used to search for a specific set of line items.

SearchDateTimeColumn

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

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

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

A Long that stores the OrderGroup 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

A Variant that contains the names of the columns to return in addition to the default columns. This parameter is optional.

OrderGroupSortColumn

A Variant that contains the OrderGroup column name to sort on. This parameter is optional.

SortDirection

A Variant 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 a Long 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 a Long that contains the page number to jump to. This parameter setting must be coordinated with the PageSize parameter. This parameter is optional.

outTotalRecordsFound

A Variant that specifies the total number of records found.

Return Values

If this method completes successfully, it returns Variant that contains the recordset containing the result set that meets the search criteria.

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 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

' 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

OrderGroupManager Object

OrderGroupManager.SimpleFind


OrderGroupManager.FindTemplatesForUser

Use this method to build and return an ADO recordset of OrderGroup templates for the specified user.

Definition

Function FindTemplatesForUser(
UserId As String,
SearchDateTimeColumn As Variant,
SearchDateTimeStart As Variant,
SearchDateTimeEnd As Variant,
JoinOrderFormInfo As Variant,
JoinLineItemInfo As Variant,
Columns As Variant,
OrderGroupSortColumn As Variant,
SortDirection As Variant,
PageSize As Long,
PageNumber As Long,
outTotalRecordsFound As Variant
) As Variant

Parameters

UserId

A String that contains the User ID GUID.

SearchDateTimeColumn

A Variant that contains the DateTime column name to use in the search.

SearchDateTimeStart

A Variant that contains the search DateTime start value.

SearchDateTimeEnd

A Variant 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

A Variant that contains the names of columns that you want returned in addition to the default columns.

OrderGroupSortColumn

A Variant that contains the OrderGroup sort column.

SortDirection

A Variant that contains the sort direction.

PageSize

A Long that contains the page size.

PageNumber

A Long that contains the page number.

outTotalRecordsFound

A Variant that contains the total number of records found. This parameter is optional.

Return Values

If this method completes successfully, it returns a Variant that contains an ADO recordset of the search results.

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 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

' oOrderGroupManager is a Commerce OrderGroupManager object
oOrderGroupManager.FindTemplatesForUser("{11223344-1122-1122-1122- _
    AABBCCDDEEFF}")

See Also

OrderGroupManager Object

Business Process Objects


OrderGroupManager.Initialize

Use this method to create a connection to the specified database.

Definition

Sub Initialize(
ConnectionString As Variant
)

Parameters

ConnectionString

A Variant that contains the database connection string.

Return Values

None.

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 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

' vConnectionString is a Variant containing a database connection string
' oOrderGroupManager is a Commerce OrderGroupManager object
oOrderGroupManager.Initialize(vConnectionString)

See Also

OrderGroupManager Object


OrderGroupManager.OrderFormHeaderColumns

The OrderFormHeaderColumns property is a read-only Variant that contains a collection of OrderFormHeader table column names.

Definition

Property OrderFormHeaderColumns As Variant

Parameters

None.

Error Values

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

OrderGroupManager Object


OrderGroupManager.OrderFormLineItemsColumns

The OrderFormLineItemsColumns property is a read-only Variant that contains a collection of OrderFormLineItems table column names.

Definition

Property OrderFormLineItemsColumns As Variant

Parameters

None.

Error Values

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

OrderGroupManager Object


OrderGroupManager.OrderGroupColumns

The OrderGroupColumns property is a read-only Variant that contains a collection of OrderGroup table column names.

Definition

Property OrderGroupColumns As Variant

Parameters

None.

Error Values

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

OrderGroupManager Object


OrderGroupManager.SimpleDelete

Use this method to delete all entries that meet the search criteria as specified by the supplied SimpleFindSearchInfo and SimpleFindResultInfo objects.

Definition

Sub SimpleDelete(
sfSearchInfo As Object,
sfResultInfo As Object
)

Parameters

sfSearchInfo

A SimpleFindSearchInfo object that contains the search criteria.

sfResultInfo

A SimpleFindResultInfo object that contains the search criteria.

Return Values

None.

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 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

' 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

OrderGroupManager Object


OrderGroupManager.SimpleFind

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

Function SimpleFind(
sfSearchInfo As Object,
sfResultInfo As Object,
Optional outTotalRecordsFound As Variant
) As Variant

Parameters

sfSearchInfo

A SimpleFindSearchInfo object that contains the search criteria.

sfResultInfo

A SimpleFindResultInfo object that contains the search criteria.

outTotalRecordsFound

A Variant that contains the total number of records found.

Return Values

If this method completes successfully, it returns an ADO recordset that contains the search result OrderGroup items.

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 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

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

Business Process Objects

OrderGroupManager Object


OrderPipeline Object

Use this object to execute a Microsoft Commerce Server 2000 Content Selection pipeline. Order Processing pipelines (OPP) should generally use a PooledPipeline, PooledTxPipeline, MtxPipeline, or MtsTxPipeline object.

ProgID: | Commerce.OrderPipeline (Externally creatable)
COM Class Name: | COrderPipeline
Type Library Name: | Microsoft Commerce 2000 Order Pipeline Type Library
DLL Name: | pipeline.dll
Threading Model: | Both

Note

  • The OrderPipeline 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 recreated by each thread due to the rules of COM+ transactions.

The methods of the OrderPipeline object are shown in the following table.

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 is usually created in the Global.asa and put into an application collection.


OrderPipeline.LoadPipe

Use this method to load a pipeline configuration file (.pcf) into the pipeline.

Definition

Sub LoadPipe(
pszFileName As String
)

Parameters

pszFileName

A String containing the pipeline configuration file name.

Return Values

None.

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 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.

Example

' pOrdPipeline is a Commerce.OrderPipeline object

errVal = pOrdPipeline.Load("CustomShip.pcf")

See Also

OrderPipeline Object

OrderPipeline.OrderExecute

OrderPipeline.SetLogFile


OrderPipeline.OrderExecute

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

Function OrderExecute(
lMode As Long,
pdispOrder As IDispatch,
pdispContext As IDispatch,
lFlags As Long
) As Long

Parameters

lMode

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.

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 Long parameter. Must be set to zero (0).

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM 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, 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

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 2000 applications should use the value one (1) for this parameter; zero (0) will cause no stages to run.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

OrderPipeline Object

OrderPipeline.LoadPipe

OrderPipeline.SetLogFile


OrderPipeline.SetLogFile

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

Sub SetLogFile(
pszFileName As String
)

Parameters

pszFileName

A String containing the name of the file in which to log events.

Return Values

None.

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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' pOrdPipeline is a Commerce.OrderPipeline object

errVal = pOrdPipeline.SetLogFile("CustomShipping.log")

See Also

OrderPipeline Object

OrderPipeline.LoadPipe

OrderPipeline.OrderExecute


Page Object

Use this object to simplify forms processing in Active Server Pages (ASP).

ProgID: | Commerce.Page (Externally creatable)
COM Class Name: | MSCSPage_3_0
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.

The single property of the Page object is shown in the following table.

Property | Type | Description
Context | IDispatch | A value that contains the Microsoft Internet Information Services (IIS) scripting context. This property is read-only.

The methods of the Page object are shown in the following table.

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.

See Also

Backward Compatibility Objects

AppFrameWork Object

AuthManager Object


Page.Check

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

Function Check(
vtCheck As Variant
) As String

Parameters

vtCheck

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.

Return Values

If this method completes successfully, it returns a String that contains the string "CHECKED" or "".

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 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

' 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

Page Object

Page.Option


Page.Context

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

Property Context As Object

Parameters

None.

Error Values

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

Page Object


Page.Encode

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

Function Encode(
vtValue As Variant
) As String

Parameters

vtValue

A Variant that contains the text string to encode.

Return Values

If this method completes successfully, it returns a String that contains encoded HTML text.

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 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

' oPage is a Commerce.Page object
' sEncoded is a String
' vOriginal is a String Variant
sEncoded = oPage.Encode(vOriginal)

See Also

Page Object

Page.HTMLEncode


Page.GetShopperId

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

Function GetShopperId() As Variant

Parameters

None.

Return Values

If this method completes successfully, it returns a Variant that contains the shopper ID.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Page Object

StandardSManager Object

AuthManager Object

Page.PutShopperId


Page.HTMLEncode

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

Function HTMLEncode(
vtValue As Variant
) As String

Parameters

vtValue

A String Variant that contains the text string to encode.

Return Values

If this method completes successfully, it returns a String that contains encoded HTML text.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

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

Page Object

Page.URLEncode


Page.Option

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

Function Option(
vtVal1 As Variant,
vtVal2 As Variant
) As String

Parameters

vtVal1

A Variant that contains the value of the option in the selection list.

vtVal2

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.

Return Values

If this method completes successfully, it returns a String that contains the OPTION item.

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 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

' 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

Page Object

Page.Check


Page.ProcessVerifyWith

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

Sub ProcessVerifyWith(
pdispOrder As Object
)

Parameters

pdispOrder

An object reference that supplies the OrderForm object that contains the basket for the current shopper.

Return Values

None.

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 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

' oPage is a Commerce.Page object
' oOrderForm is a Commerce.Page object

call oPage.ProcessVerifyWith(oOrderForm)

See Also

Page Object

Page.VerifyWith

Message Manager Object

OrderForm Object


Page.PutShopperId

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

Sub PutShopperId(
bstrShopperID As String
)

Parameters

bstrShopperID

A String that contains the shopper ID.

Return Values

None.

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 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.

Example

' oPage is a Commerce.Page object
' sShopperID is a String containing the shopper ID GUID
oPage.PutShopperID(sShopperID)

See Also

Page Object

StandardSManager Object

AuthManager Object

Page.GetShopperId

Page.SURL

Page.URL


Page.RequestDate

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

Function RequestDate(
bstrName As String,
vtDefault As Variant,
vtMin As Variant,
vtMax As Variant,
vtLocal As Variant
) As Variant

Parameters

bstrName

A String that contains the name of the URL query string or form-post variable to retrieve.

vtDefault

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

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

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

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.

Return Values

If this method completes successfully, it returns a Date Variant that contains the processed date value.

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 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

' 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

Page Object

DataFunctions.Locale

Page.RequestDateTime

DataFunctions.ConvertDateString

DataFunctions.Date


Page.RequestDateTime

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

Function RequestDateTime(
bstrName As String,
vtDefault As Variant,
vtMin As Variant,
vtMax As Variant,
vtLocal As Variant
) As Variant

Parameters

bstrName

A String that contains the name of the URL query string or form-post variable to retrieve.

vtDefault

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

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

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

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.

Return Values

If this method completes successfully, it returns a Variant that contains a date/time value.

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 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

' 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

Page Object

DataFunctions.Locale

Page.RequestDate

DataFunctions.ConvertDateTimeString

Page.RequestTime


Page.RequestDefault

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

Function RequestDefault(
bstrName As String,
vtDefault As Variant
) As Variant

Parameters

bstrName

A String that contains the name of the URL query string variable to retrieve.

vtDefault

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.

Return Values

If this method completes successfully, it returns a Variant that contains the processed value.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

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

Page Object


Page.RequestFloat

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

Function RequestFloat(
bstrName As String,
vtDefault As Variant,
vtMin As Variant,
vtMax As Variant,
vtLocal As Variant
) As Variant

Parameters

bstrName

A String that contains the name of the URL query string or form-post variable to retrieve.

vtDefault

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

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

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

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.

Return Values

If this method completes successfully, it returns a Variant containing the floating-point value.

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 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

' 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

Page Object

DataFunctions.Locale

Page.RequestNumber

DataFunctions.ConvertFloatString

DataFunctions.Float

DataFunctions.Float

Page.RequestNumber


Page.RequestMoneyAsNumber

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

Function RequestMoneyAsNumber(
bstrName As String,
vtDefault As Variant,
vtMin As Variant,
vtMax As Variant,
vtLocal As Variant
) As Variant

Parameters

bstrName

A String that contains the name of the URL-query string or form-post variable to retrieve.

vtDefault

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

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

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

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

Page Object

DataFunctions.Locale

DataFunctions.ConvertMoneyStringToNumber

DataFunctions.Money

Page.RequestFloat

Page.RequestNumber


Page.RequestNumber

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

Function RequestNumber(
bstrName As String,
vtDefault As Variant,
vtMin As Variant,
vtMax As Variant,
vtLocal As Variant
) As Variant

Parameters

bstrName

A String that contains the name of the URL-query string or form-post variable to retrieve.

vtDefault

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

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

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

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.

Return Values

If this method completes successfully, it returns a Variant that contains the converted number.

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 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

' 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

Page Object

DataFunctions.Locale

Page.RequestFloat

DataFunctions.ConvertNumberString

DataFunctions.Number

DataFunctions.ValidateNumber


Page.RequestString

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

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

A String that contains the name of the URL-query string or form-post variable to retrieve.

vtDefault

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

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

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

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

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

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

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.

Return Values

If this method completes successfully, it returns a Variant that contains the processed string.

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 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

' 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

Page Object

DataFunctions.Locale


Page.RequestTime

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

Function RequestTime(
bstrName As String,
vtDefault As Variant,
vtMin As Variant,
vtMax As Variant,
vtLocal As Variant
) As Variant

Parameters

bstrName

A String that contains the name of the URL-query string or form post-variable to retrieve.

vtDefault

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

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

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

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.

Return Values

If this method completes successfully, it returns a Variant that contains the date.

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 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

' 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

Page Object

DataFunctions.Locale

DataFunctions_4_0::ConvertTimeString

Page.RequestDate


Page.SiteRoot

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

Function SiteRoot() As String

Parameters

None.

Return Values

If this method completes successfully, it returns a String that contains the physical directory path.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Page Object

Page.VirtualDirectory


Page.SURL

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

Function SURL(
bstrPath As String
) As String

Parameters

bstrPath

A String that contains the name of the file for the SURL to reference.

Return Values

If this method completes successfully, it returns String that contains a properly formatted secure HTTP URL.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

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

Page Object

StandardSManager Object

AuthManager Object

Page.URL


Page.SURLPrefix

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

Function SURLPrefix() As String

Parameters

None.

Return Values

If this method completes successfully, it returns a String that contains the secure root domain string.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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).

See Also

Page Object

StandardSManager Object

AuthManager Object

Page.URLPrefix

Page.SURL

Page.URLShopperArgs

Page.URLArgs

Page.VirtualDirectory


Page.URL

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

Function URL(
bstrPath As String
) As String

Parameters

bstrPath

A String that contains the name of the file to reference in the URL.

Return Values

If this method completes successfully, it returns a String that contains the encoded value.

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 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

' 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

Page Object

AuthManager Object

Page.SURL


Page.URLArgs

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

Function URLArgs() As String

Parameters

None.

Return Values

If this method completes successfully, it returns a String that contains the series of query string arguments.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Page Object

AuthManager Object

Page.VirtualDirectory

Page.SURL

Page.SURLPrefix

Page.URL

Page.URLShopperArgs


Page.URLEncode

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

Function URLEncode(
vtValue As Variant
) As String

Parameters

vtValue

A Variant that contains the string to be encoded.

Return Values

If this method completes successfully, it returns a URL-encoded String.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

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

Page Object

AuthManager Object

Page.HTMLEncode


Page.URLPrefix

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

Function URLPrefix() As String

Parameters

None.

Return Values

If this method completes successfully, it returns a String that contains the root domain string.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

To generate the domain for the secure host, use the Page.SURLPrefix method.

See Also

Page Object

AuthManager Object

Page.SURLPrefix

Page.VirtualDirectory

Page.SURL

Page.SURLPrefix

Page.URL

Page.URLShopperArgs

Page.URLArgs


Page.URLShopperArgs

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

Function URLShopperArgs() As String

Parameters

None.

Return Values

If this method completes successfully, it returns a String that contains the series of query string arguments.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

See Also

Page Object

AuthManager Object


Page.VerifyWith

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

Function VerifyWith(
pdispOrder As Object

  pbstrArguments As String
) As String

Parameters

pdispOrder

An object reference to the OrderForm object that contains the fields to verify.

pbstrArguments

A String that contains a comma-separated list of field names in the supplied OrderForm object to verify. This parameter is optional.

Return Values

If this method completes successfully, it returns a String that contains the HTML tags.

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 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

' 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

Page Object

Page.ProcessVerifyWith

OrderForm Object


Page.VirtualDirectory

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

Function VirtualDirectory() As String

Parameters

None.

Return Values

If this method completes successfully, it returns a String that contains the site virtual directory.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Page Object

Page.SiteRoot

Page.SURL

Page.URL

Page.SURLPrefix

Page.URLArgs

Page.URLPrefix

Page.URLShopperArgs

StandardSManager Object


PooledPipeline Object

Use this object to execute a Microsoft Commerce Server 2000 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 2000 Order Pipeline Type Library
DLL Name: | pipeline.dll
Threading Model: | Both

The methods of the PooledPipeline object are shown in the following table.

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 thatn 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_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.


PooledPipeline.Execute

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

Function Execute(
lMode As Long,
pdispOrder As Object,
pdispContext As Object,
lFlags As Long
) As Long

Parameters

lMode

A Long 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 order form object).

pdispContext

A reference to a secondary business object (typically a context dictionary).

lFlags

An unused Long parameter. Must be set to zero (0).

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM 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, 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' dOrder, dContext are Commerce.Dictionary objects
' pPooledPipeline is a Commerce.PooledPipeline object

errVal = pPooledPipeline.Execute(1, dOrder, dContext, 0)

See Also

PooledPipeline Object

PooledPipeline.LoadPipe

PooledPipeline.SetLogFile


PooledPipeline.LoadPipe

Use this method to load a pipeline configuration file (.pcf) into a pipeline.

Definition

Sub LoadPipe(
pszFileName As String
)

Parameters

pszFileName

A String containing the pipeline configuration file (.pcf) name.

Return Values

None.

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 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.

Example

' pPooledPipeline is a Commerce.PooledPipeline object

errVal = pPooledPipeline.LoadPipe("CustomShip.pcf")

See Also

PooledPipeline Object

PooledPipeline.Execute

PooledPipeline.SetLogFile


PooledPipeline.SetLogFile

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

Sub SetLogFile(
pszFileName As String
)

Parameters

pszFileName

A String containing the name of the file in which to log events.

Return Values

None.

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 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 executing a pipeline.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' pPooledPipeline is a Commerce.PooledPipeline object

errVal = pPooledPipeline.SetLogFile("CustomShipping.log")

See Also

PooledPipeline Object

PooledPipeline.Execute

PooledPipeline.LoadPipe


PooledTxPipeline Object

Use this object to execute 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.

ProgID: | Commerce.PooledTxPipeline (Externally creatable)
COM Class Name: | CPooledTxPipeline
Type Library Name: | Microsoft Commerce 2000 Order Pipeline Type Library
DLL Name: | pipeline.dll
Threading Model: | Both

The methods of the PooledTxPipeline object are shown in the following table.

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_POOLABLE, to the component to make it poolable.


PooledTxPipeline.Execute

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

Function Execute(
lMode As Long,
pdispOrder As Object,
pdispContext As Object,
lFlags As Long
) As Long

Parameters

lMode

A Long 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 order form object). The Order dictionary that will be used by the pipeline, usually an OrderForm object.

pdispContext

A reference to a secondary business object (typically a context dictionary object).

lFlags

An unused Long parameter. Must be set to zero (0).

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM 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, 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' dOrder, dContext are Commerce.Dictionary objects
' pPooledTxPipeline is a Commerce.PooledTxPipeline object

errVal = pPooledTxPipeline.Execute(1, dOrder, dContext, 0)

See Also

PooledTxPipeline Object

PooledTxPipeline.LoadPipe

PooledTxPipeline.SetLogFile


PooledTxPipeline.LoadPipe

Use this method to load a pipeline configuration file (.pcf) into the pipeline.

Definition

Sub LoadPipe(
pszFileName As String
)

Parameters

pszFileName

A String containing the pipeline configuration file (.pcf) name.

Return Values

None.

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 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.

Example

' pPooledTxPipeline is a Commerce.PooledTxPipeline object

errVal = pPooledTxPipeline.LoadPipe("CustomShip.pcf")

See Also

PooledTxPipeline Object

PooledTxPipeline.Execute

PooledTxPipeline.SetLogFile


PooledTxPipeline.SetLogFile

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

Sub SetLogFile(
pszFileName As String
)

Parameters

pszFileName

A String containing the name of the file in which to log events.

Return Values

None.

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 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.

Example

' pPooledTxPipeline is a Commerce.PooledTxPipeline object

errVal = pPooledTxPipeline.SetLogFile("CustomShipping.log")

See Also

PooledTxPipeline Object

PooledTxPipeline.Execute

PooledTxPipeline.LoadPipe


PredictorClient Object

Use this object to load an analysis model, set properties controlling the prediction context, and execute the prediction algorithm. Two types of models are supported, prediction models and segment models. Results of a prediction model are used to recommend products and supply missing profile data. Results of a segment model are used to categorize a user. Prediction models provide more accurate recommendations than segment models and the use of segment models for predictions is discouraged.

ProgID: | Commerce.PredictorClient (Externally creatable)
COM Class Name: | PredictorClient
Type Library Name: | Microsoft Commerce 2000 Predictor Client Type Library
DLL Name: | PredictorClient.dll
Threading Model: | Both

The properties of the PredictorClient object are shown in the following table.

Property | Type | Description
fpDataFitScore | Single | Stores the Data Fit Score. This property is read-only.
fpDefaultConfidence | Single | Stores the threshold for confidence in a prediction. This property is read/write.
bFailOnUnknownInputAttributes | Boolean | Controls the behavior of the Predict method when input attributes are unknown. This property is read/write.
fpPopularityPenalty | Single | Stores the penalty applied when selecting popular items to recommend. This property is read/write.
fpRecommendScore | Single | Stores the Recommend Score. This property is read-only.
sSiteName | String | Stores the site name in which the PredictorClient object is running. This property is read/write.

The methods of the PredictorClient object are shown in the following table.

Method | Description
Explain | Explains the prediction of a property in terms of the relevant property/value pairs used as input to the prediction model.
LoadModelFromDB | Loads a model from a database.
LoadModelFromFile | Loads a model from the specified file.
Predict | Predicts recommend products or missing profile data.
PredictAllSegments | Calculates the probabilities that the user belongs to each segment of a population of past users.
PredictMostLikelySegment | Calculates the segment to which the user most likely belongs.
SaveModelToFile | Saves a model to the specified file.

Remarks

Applications that need to anticipate user behavior use the PredictorClient object to load analysis models and generate predictions. The models use a specified set of partial cases as the basis for their predictions. A case is all that is known about a previous user and may contain demographic information and transactional history.

Use the PredModelBuilder object to generate new models. Use the PredictorServiceAdmin object to retrieve a list of models and model configurations. Use the PredictorServiceSiteAdmin object to delete or rename models and model configurations.

Measure the effectiveness of a prediction model using the fpDataFitScore and the fpRecommendScore properties. This allows fine-tuning of the input parameters, such as SampleSize, InputAttributeFraction, and OutputAttributeFraction, when building the model.

Load a model using the LoadModelFromDB or LoadModelFromFile methods prior to using other PredictorClient methods.

For optimum performance when using a prediction model, default values for the fpDefaultConfidence and fpPopularityPenalty properties should be set in the Application_OnStart method in the global.asa file, to avoid having to explicitly set the values for every Predict method call.

See Also

Prediction Objects

Predictor Schema

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object

Running the Predictor Resource


PredictorClient.fpDataFitScore

The read-only fpDataFitScore property returns the Data Fit Score, measuring the effectiveness of a prediction model to fill in missing profile data.

Definition

Property fpDataFitScore As Single

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Data Fit Score is automatically computed when a model is built, using a fraction of the data as test data. The amount of data to set aside for testing purposes is specified as the Measured Accuracy Sample Fraction. For more information, see Building a New Analysis Model and PredictorModels Table.

Use the Data Fit Score to test and fine-tune the input parameters for a prediction model. Known cases, taken from the input cases used to build the model, are tested against both the prediction model and a "stalking horse" model. The " stalking horse" model is a marginal model that assumes all properties are independent. An intermediate value is calculated by dividing the probability the prediction model assigns to a case in the test data by the probability the "stalking horse" model assigns to the same case. The score is the logarithm of the geometric average of these values for each output property. Thus, any score greater than zero means that the built model makes predictions that are more accurate than the "stalking horse" model.

Load the prediction model using the LoadModelFromDB or LoadModelFromFile methods prior to accessing this property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorClient Object

PredictorClient.Predict


PredictorClient.fpDefaultConfidence

The read/write fpDefaultConfidence property determines the threshold below which predictions are not returned by the PredictorClient object.

Definition

Property fpDefaultConfidence As Single

Parameters

None.

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 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 property.

E_INVALIDARG

The value of the property is outside the valid range of 0 to 100.

Remarks

The fpDefaultConfidence property is a threshold that determines which attributes can be shown on the recommendation list. When a prediction is made, each attribute is assigned a probability of "not missing", which in most uses will correspond to the probability that the product will be purchased. If this probability (in percentage) falls below fpDefaultConfidence, then the attribute is not shown on the recommendation list even when this probability is large relative to probabilities of the other attributes being "not missing". The property should be within the range of 0 to 100, but a value of zero (0) is recommended unless the fpPopularityPenalty property is set to zero (0).

Set a default value for this property in the global.asa file to avoid setting the value for each Predict method call.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorClient Object

PredictorClient.Predict


PredictorClient.Explain

Use this method to return the properties and values from the current case that are relevant to a prediction of the specified unknown property. A score corresponding to each returned property/value pair explains the importance of each property/value pair to the prediction.

Definition

Sub Explain(
dCurrentCase As Object,
sPropToExplain As String,
pvsavRelevantProps As Variant,
pvsavRelevantValues As Variant,
pvsavRelevantScores As Variant,
Optional lMaxExplanations As Long
)

Parameters

dCurrentCase

A Dictionary object that contains the current case.

sPropToExplain

A String that contains the name of the property to explain.

pvsavRelevantProps

A Variant used to return a SafeArray containing the list of properties from the current case that are relevant to the prediction.

pvsavRelevantValues

A Variant used to return a SafeArray containing the list of values corresponding to the relevant properties.

pvsavRelevantScores

A Variant used to return a SafeArray containing the list of scores corresponding to the importance of each property towards the prediction.

lMaxExplanations

A Long that contains the maximum number of properties to return. The default value of -1 indicates to return all the properties.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method returns property/value/score triplets sorted in descending order by score. The higher the score, the greater the probability the unknown property is correctly predicted by the corresponding property/value pair.

Load the prediction model using the LoadModelFromDB or LoadModelFromFile methods prior to using this method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' dCase is a Dictionary object
' vsavRelevantProps, vsavRelevantValues, vsavRelevantScores
'  are Variant SafeArrays
oPredictorClient.Explain dCase, """Age""", vsavRelevantProps, _
 vsavRelevantValues, vsavRelevantScores, 10

See Also

PredictorClient Object


PredictorClient.bFailOnUnknownInputAttributes

The read/write bFailOnUnknownInputAttributes property controls whether the Predict method continues or fails when encountering unknown input attributes.

Definition

Property bFailOnUnknownInputAttributes As Boolean

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This property is used as a debugging flag. By default, the Predict method ignores unknown input attributes. Setting this property to True causes the Predict method to fail when unknown input attributes are encountered.

When debugging, set a default value for this property in the global.asa file to avoid setting the value for each Predict method call.

Load the prediction model using the LoadModelFromDB or LoadModelFromFile methods prior to accessing this property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorClient Object

PredictorClient.Predict


PredictorClient.LoadModelFromDB

Use this method to load a model stored in a database.

Definition

Sub LoadModelFromDB(
sModelName As String,
sDWConnStr As String
)

Parameters

sModelName

A String that contains the model name.

sDWConnStr

A String that contains the connection information for the Data Warehouse.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

A valid model must be loaded before calling the other methods of the PredictorClient object. This model, typically in the range of 100k to 10M, must be loaded onto the local Web server to ensure a timely response to a prediction request.

The information for the model is loaded from the PredictorModels table. For more information about this table, see Predictor Schema.

The sDWConnStr parameter must be a SQL OLE DB connection string.

Use the LoadModelFromFile method to load a model from a file.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

oPredictorClient.LoadModelFromDB "Purchase1", _
 "Provider=SQLOLEDB;Data Source=servername;Initial Catalog=Retail_dw;" _
 & "User ID=user;Password=******;"

See Also

PredictorClient Object

PredictorClient.Predict

PredictorClient.LoadModeFromFile


PredictorClient.LoadModelFromFile

Use this method to load a model stored in a file.

Definition

Sub LoadModelFromFile(
sFilePath As String
)

Parameters

sFilePath

A String that contains the file name, extension, and path.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

A valid model must be loaded before calling the other methods of the PredictorClient object. A model is originally stored in a database and must be loaded using the LoadModelFromDB method. Once loaded, the model may be saved to a file using the SaveModelToFile method.

The file path is relative to the current working directory of the calling process.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' PredictionModel2.mdl is stored in the working directory of the
'  calling process
oPredictorClient.LoadModelFromFile "PredictionModel2.mdl"

See Also

PredictorClient Object

PredictorClient.Predict

PredictorClient.LoadModelFromDB


PredictorClient.fpPopularityPenalty

The read/write fpPopularityPenalty property influences the likelihood that the Predict method recommends popular items.

Definition

Property fpPopularityPenalty As Single

Parameters

None.

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 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 property.

E_INVALIDARG

The parameter pbVal = 1. The valid range is 0 to less than 1.

Remarks

Popular items are frequently purchased items that are so well known that they do not need to be recommended to a user. A higher penalty value reduces the probability that a popular item is included as a recommended product in the prediction results. The value ranges from 0.0 to less than 1.0. To maximize sales of the most popular items, the default popularity penalty of zero (0) is recommended. For applications where most of the users are familiar with many of the popular products, a value of 0.9 is appropriate.

Set a default value for this property in the Application_OnStart method in the global.asa file to avoid setting the value for each Predict method call.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorClient Object

PredictorClient.Predict


PredictorClient.Predict

Use this method to generate predictions that are used to recommend relevant products to a user, the current case, or to fill in missing profile data associated with the user.

Definition

Sub Predict(
dCurrentCase As Object,
slPropsToPredict As Object,
pvsavPredictedProps As Variant
pvsavPredictedVals As Variant
Optional lMaxPredictions As Long
Optional pvsavDetails As Variant
)

Parameters

dCurrentCase

A Dictionary object that contains the current case.

slPropsToPredict

A SimpleList object that contains the names of the properties to predict.

pvsavPredictedProps

A Variant used to return a SafeArray containing the predicted property names.

pvsavPredictedVals

A Variant used to return a SafeArray containing the predicted property values.

lMaxPredictions

A Long that specifies the maximum number of predictions to return. The default value of -1 indicates to return all predictions.

pvsavDetails

Reserved for future use.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Predictions are made using the currently loaded prediction model based on user profile and selection information contained in the current case. The predicted property/value pairs are returned sorted in descending order of likelihood.

Set the fpDefaultConfidence and fpPopularityPenalty properties and load the prediction model using the LoadModelFromDB or LoadModelFromFile methods before using the Predict method.

Default values for the fpDefaultConfidence and fpPopularityPenalty properties may be set in the Application_OnStart method in the global.asa file to avoid having to explicitly set the values for every Predict method call.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' dCase is a Dictionary object, slPropsToPredict is a SimpleList
' vsavPredictedProps, vsavPredictedValues are Variant SafeArrays
oPredictorClient.Predict dCase, slPropsToPredict, vsavPredictedProps, _
 vsavPredictedVals, 10

See Also

PredictorClient Object

PredictorClient.LoadModelFromFile

PredictorClient.LoadModelFromDB

PredictorClient.fpDefaultConfidence


PredictorClient.PredictAllSegments

Use this method to predict the probabilities that a particular user, the current case, belongs to each segment of a population.

Definition

Sub PredictAllSegments(
dCurrentCase As Object,
pvsavSegmentNames As Variant,
pvsavProbabilities As Variant
)

Parameters

dCurrentCase

A Dictionary object that contains the current case.

pvsavSegmentNames

A Variant used to return a SafeArray containing the segment names.

pvsavProbabilities

A Variant used to return a SafeArray containing the membership probabilities associated with the segment names.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Microsoft Research Cluster Engine Data Modeler groups similar users into segments. Similar segments are further grouped into higher order collections of segments, creating a hierarchy from which to analyze trends and discover hidden correlations. The returned probability associated with each segment name indicates the probability that the current user belongs to that segment.

Load the segment model using the LoadModelFromDB or LoadModelFromFile methods prior to using this method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' dCase is a Dictionary object
' vsavSegmentNames and vsavProbabilities are Variant SafeArrays
oPredictorClient.PredictAllSegments dCase, vsavSegmentNames, _
 vsavProbabilities

See Also

PredictorClient Object


PredictorClient.PredictMostLikelySegment

Use this method to predict the most likely segment of a population to which a user, the current case, belongs.

Definition

Function PredictMostLikelySegment(
dCurrentCase As Object,
Optional pvarProbability As Variant
) As String

Parameters

dCurrentCase

A Dictionary object that contains the current case.

pvarProbability

A Variant used to return the membership probability associated with the segment name.

Return Values

If successful, this method returns a String containing the segment name.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Microsoft Research Cluster Engine Data Modeler groups similar users into segments. Similar segments are further grouped into higher order collections of segments, creating a hierarchy from which to analyze trends and discover hidden correlations.

This method returns the name of the segment most likely to contain the given case, and optionally, the probability that the user belongs to this segment.

Load the segment model using the LoadModelFromDB or LoadModelFromFile methods prior to using this method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' sSegment is a String, vProbabilty is a Variant
' dCase is a Commerce.Dictionary object
sSegment = oPredictorClient.PredictMostLikelySegment(dCase, vProbability)

See Also

PredictorClient Object


PredictorClient.fpRecommendScore

The read-only fpRecommendScore property returns the Recommendation Score, which measures the quality of a ranked list of recommendations returned from a prediction model.

Definition

Property fpRecommendScore As Single

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Use the Recommendation Score to test and adjust the input parameters for a prediction model. Known cases, taken from the input cases used to build the model, are tested against the prediction model with one of the transactions randomly removed. A list of recommendations is returned, and the prediction is deemed successful if the removed transaction is on the list. The score is the percentage of cases in which the model was successful.

The Recommendation Score is automatically computed when a model is built, using a fraction of the data as test data. The amount of data to set aside for testing purposes is specified as the Measured Accuracy Sample Fraction. For more information, see Building a New Analysis Model and PredictorModels Table.

Load the prediction model using the LoadModelFromDB or LoadModelFromFile methods prior to accessing this property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorClient Object

PredictorClient.Predict


PredictorClient.SaveModelToFile

Use this method to save the currently loaded model to a file.

Definition

Sub SaveModelToFile(
sFilePath As String
)

Parameters

sFilePath

[in] A String that contains the file name, extension, and path relative to the working directory of the calling process.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The directory where the file is saved must exist prior to the call.

A model must be loaded using the LoadModelFromDB or LoadModelFromFile methods before using the SaveModelToFile method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

oPredictorClient.SaveModelToFile "PredictionModel2.mdl"

See Also

PredictorClient Object

PredictorClient.LoadModelFromFile

PredictorClient.LoadModelFromDB


PredictorClient.sSiteName

The read/write sSiteName property contains the name of the site in which the PredictorClient object is running.

Definition

Property sSiteName As String

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This property should be set in the On_Start method of the global.asa file to allow logging of performance monitoring counters to be aggregated over the site. Performance counters are specific to a given computer. If multiple sites are running on the same Web server, the counters give a combined total for all sites. Specifying a site name allows the counts from one site to be distinguished from the counts of other sites.

The following counters are available:

  • Total number of predictions made since the site was initialized.

  • Average time per prediction.

  • Total number of model loads from files.

  • Total number of model loads from a database.

The counters can be accessed in Microsoft Windows 2000 by clicking Control Panel, double-clicking Administrative Tools, and then double-clicking Performance. The counters can also be accessed programmatically through the performance APIs described in the Windows 2000 Platform SDK.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorClient Object

PredictorClient.Predict


PredictorServiceAdmin Object

Use this object to retrieve a list of the available analysis models, a list of the available model configurations, and the date the Predictor resource was last started.

ProgID: | Commerce.PredictorServiceAdmin (Externally creatable)
COM Class Name: | PredictorServiceAdmin
Type Library Name: | Microsoft Commerce 2000 Predictor Service Type Library
EXE Name: | PredServ.exe
Threading Model: | Both

The properties of the PredictorServiceAdmin object are shown in the following table.

Property | Type | Description
dateLastStarted | Date | Retrieves the date the Predictor resource was last started. This property is read-only.
slModelConfigs | Object | Retrieves a list of currently available model configurations. This property is read-only.
slModels | Object | Retrieves a list of currently available models. This property is read-only.

Remarks

The PredictorServiceSiteAdmin object provides methods for maintaining the models and model configurations. The PredictorClient object loads the appropriate model and makes the actual predictions. Generate new models by using the PredModelBuilder object.

See Also

Prediction Objects

Predictor Schema

PredictorClient Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object

Running the Predictor Resource


PredictorServiceAdmin.dateLastStarted

The dateLastStarted property is a read-only Date that indicates when the Predictor resource was last started.

Definition

Property dateLastStarted As Date

Parameters

None.

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 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

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


PredictorServiceAdmin.slModelConfigs

The slModelConfigs property is a read-only SimpleList object that contains information about the available model configurations.

Definition

Property slModelConfigs As Object

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The SimpleList object, slModelConfigs, contains a Dictionary object for each model configuration. A model configuration contains information used to build a model. The following table describes the keys of the Dictionary object which are the names of the model configuration properties.

Key Name | Type | Description
DWResourceName | String | Name of the Data Warehouse resource where the model configuration is defined.
ModelCfgName | String | Name of the model configuration.
SiteName | String | Reserved. May not appear in the dictionary.

Use the DeleteModelConfig method of the PredictorServiceSiteAdmin object to delete a model configuration.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


PredictorServiceAdmin.slModels

The slModels property is a read-only SimpleList object that contains information about the available models.

Definition

Property slModels As Object

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The SimpleList object, slModels, contains a Dictionary object for each available model. A model is available if a copy of it exists and is not currently being built. The keys of the Dictionary object are the names of the model properties as listed in the PredictorModels Table. The following table describes a few of these keys. For information about the remaining keys, see PredictorModels Table.

Key Name | Type | Description
DWResourceName | String | Name of the Data Warehouse resource where the model configuration is defined.
ModelCfgName | String | Name of the model configuration used to build the model.
ModelName | String | Model name.

Use the Start method of the PredModelBuilder object to create a new model.

Use the DeleteModel method of the PredictorServiceSiteAdmin object to delete a model.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


PredictorServiceSiteAdmin Object

Use this object to manage analysis models and model configurations.

ProgID: | Commerce.PredictorSiteAdmin (Externally creatable)
COM Class Name: | PredictorServiceSiteAdmin
Type Library Name: | Microsoft Commerce 2000 Predictor Service Type Library
EXE Name: | PredServ.exe
Threading Model: | Both

The properties of the PredictorServiceSiteAdmin object are shown in the following table.

Property | Type | Description
lCaseCount | Long | Retrieves the number of cases used by a model configuration. This property is read-only.
dModelInfo | Object | Retrieves information on the specified model. This property is read-only.
SegmentLabels | Variant | Stores the segment labels for a segment model. This property is read/write.

The methods of the PredictorServiceSiteAdmin object are shown in the following table.

Method | Description
DeleteModel | Deletes the specified predictor model.
DeleteModelConfig | Deletes the specified model configuration.
GenerateSegmentList | Generates a list of members of a segment.
Init | Initializes the server.
RenameModel | Renames a predictor model.
RenameModelConfig | Renames a model configuration.

Remarks

An analysis model summarizes dependency relationships among attributes found in data. A model configuration contains information used to build the analysis model.

Two types of analysis models are available. A prediction model is used to produce a ranked list of recommendations or to fill in a missing user profile attribute. A segment model is used to group similar users into segments of a population.

The PredictorServiceAdmin object contains lists of the available models and model configurations. The PredictorClient object loads the appropriate model and makes the actual predictions. The generation of new models is controlled by the PredModelBuilder object.

See Also

Prediction Objects

Predictor Schema

PredictorClient Object

PredictorServiceAdmin Object

PredModelBuilder Object

Running the Predictor Resource


PredictorServiceSiteAdmin.lCaseCount

The lCaseCount property is a read-only Long that contains a count of the number of cases used by a model configuration.

Definition

Property lCaseCount(
sConfigName As String
) As Long

Parameters

sConfigName

A String that contains the model configuration name.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

A case is the set of information known about a particular user. This information might include user profile data, purchase history, URL click history, or other user associated data. The number of cases used to build a model affects the accuracy of that model. In general, predictions will be more accurate when many cases are available for the model. However, the time necessary to build the model increases with the number of cases in the configuration and increases in accuracy are slight when the number of cases becomes very large (typically, greater than 50,000 cases).

Use the slModelConfigs property of the PredictorServiceAdmin object to retrieve a list of the available model configurations.

Connect to the Data Warehouse using the Init method before accessing this property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


PredictorServiceSiteAdmin.DeleteModel

Use this method to delete the specified model.

Definition

Sub DeleteModel(
sModelName As String
)

Parameters

sModelName

A String that contains the name of the model to delete.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Use the slModels property of the PredictorServiceAdmin object to retrieve a list of the available models.

Deleting a model causes its entry in the PredictorModels table in the Data Warehouse to be removed.

Passing an empty string for the model name will result in an invalid argument error.

Connect to the Data Warehouse using the Init method before calling the DeleteModel method.

Use the Start method of the PredModelBuilder object to create a new model.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


PredictorServiceSiteAdmin.DeleteModelConfig

Use this method to delete the specified model configuration.

Definition

Sub DeleteModelConfig(
sModelConfigName As String
)

Parameters

sModelConfigName

A String that contains the name of the model configuration to delete.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Use the slModelConfigs property of the PredictorServiceAdmin object to retrieve a list of the available model configurations.

Passing an empty string for the model configuration name will result in an invalid argument error.

Deleting a model configuration causes its entries in the PredictorModelCfgs and PredictorDataTables tables in the Data Warehouse to be removed, as well as the Attributes table it references. No case data is deleted.

Caution

  • For this release of Microsoft Commerce Server 2000, the user must directly modify tables in the Data Warehouse to create a new model configuration. No API function is provided.

Connect to the Data Warehouse using the Init method before calling the DeleteModelConfig method.For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


PredictorServiceSiteAdmin.dModelInfo

The dModelInfo property is a read-only Dictionary object that contains information on the specified model.

Definition

Property dModelInfo(
sModelName As String
) As Object

Parameters

sModelName

A String that contains the model name.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The keys of the returned Dictionary object are the names of the model properties as listed in the PredictorModels Table. The following table describes a few of these keys. For information about the remaining keys, see PredictorModels Table.

Key Name | Type | Description
DWResourceName | String | Name of the Data Warehouse resource where the model configuration is defined.
ModelCfgName | String | Name of the model configuration used to build the model.
ModelName | String | Model name.

Connect to the Data Warehouse using the Init method before accessing this property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


PredictorServiceSiteAdmin.GenerateSegmentList

Use this method to generate a list of the members of a segment.

Definition

Sub GenerateSegmentList(
sLMConn As String,
sTableName As String,
sModelName As String,
sSegmentName As String
fpMinProbability As Double

)

Parameters

sLMConn

A String that specifies the connection information for the ListManager object.

sTableName

A String that specifies the name of the table to store the list of segment members.

sModelName

A String that specifies the name of the segment model to use.

sSegmentName

A String that specifies the name of the segment to export.

fpMinProbability

A Double that specifies the minimum probability associated with a segment member for that member to be exported. The valid range is between 0 and 1.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method is provided for use by the ListManager object and should not be called independently. The CreateFromSegment method of the ListManager object calls this method and creates the list. For more information, see ListManager.CreateFromSegment.

Passing an empty string for the model name results in an empty list.

If the segment name, sSegmentName, does not exist or is the name of a segment group, an empty list is generated. No error is returned for this case.

Connect to the Data Warehouse using the Init method before calling the GenerateSegmentList method.

A segment model classifies groups of users into segments of users with similar user properties. Similar segments are further grouped into higher order collections of segments.

Each user is assigned a probability of membership to each segment. The sum of the probabilities for all segments equals one for the user. If the probability of membership in a particular segment for the user is greater than fpMinProbability, the user will be included in the export list.

All members (individual cases) of the specified segment level with an associated probability greater than the value specified in the fpMinProbability attribute are stored in the named table, and then exported into the List Manager.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

oPredictorServiceSiteAdmin.GenerateSegmentList _
 "Provider=SQLOLEDB;Data Source=servername;" & _
 "Initial Catalog=Retail_commerce;User ID=user;Password=*****;", _
 "TeenAgers", "Demog1", "TeenAgers", .5

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


PredictorServiceSiteAdmin.Init

Use this method to initialize the connection to the Data Warehouse.

Definition

Sub Init(
sSiteName As String,
sDWConnStr As String
)

Parameters

sSiteName

A String that is unused. Pass in an empty string.

sDWConnStr

A String that contains the Data Warehouse connection string.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The models and model configurations are stored in tables in the Data Warehouse.

Initialize the connection to the Data Warehouse before any other properties or methods of the PredictorServiceSiteAdmin object are called.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

oPredictorServiceSiteAdmin.Init "", _
 "Provider=SQLOLEDB;Data Source=servername;" & _
 "Initial Catalog=Retail_commerce;User ID=user;Password=*****;"

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object

PredictorClient Object


PredictorServiceSiteAdmin.RenameModel

Use this method to rename a model.

Definition

Sub RenameModel(
sOldModelName As String,
sNewModelName As String
)

Parameters

sOldModelName

A String that contains the old model name.

sNewModelName

A String that contains the new model name.

Return Values

None.

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 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.

E_FAIL

A model with the old name could not be found, or a model with the new name already exists.

Remarks

When renaming a model, update any sites that load the model using the LoadModelFromDB method of the PredictorClient object.

The name change is made to the model entry in the PredictorModels table in the Data Warehouse.

Use the slModels property of the PredictorServiceAdmin object to retrieve a list of available models. Use the RenameModelConfig method to rename a model configuration.

Passing an empty string for either model name will result in an invalid argument error.

Connect to the Data Warehouse using the Init method before calling the RenameModel method. For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

oPredictorServiceSiteAdmin.RenameModel "PredictorModel2", "PredictorModel3"

See Also

PredictorClient Object

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


PredictorServiceSiteAdmin.RenameModelConfig

Use this method to rename a model configuration.

Definition

Sub RenameModelConfig(
sOldModelConfigName As String,
sNewModelConfigName As String
)

Parameters

sOldModelConfigName

A String that contains the old model configuration name.

sNewModelConfigName

A String that contains the new model configuration name.

Return Values

None.

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 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.

E_FAIL

A model configuration with the old name could not be found, or a model configuration with the new name already exists.

Remarks

The name change is made to the model configuration entry in the PredictorModelCfgs table in the Data Warehouse.

Use the slModelsConfigs property of the PredictorServiceAdmin object to retrieve a list of the model configurations. Use the RenameModel method to rename a model.

Passing an empty string for the model configuration name will result in an invalid argument error.

Connect to the Data Warehouse using the Init method before calling the RenameModelConfig method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

oPredictorServiceSiteAdmin.RenameModelConfig "ModelConf1", "ModelConf2"

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


PredictorServiceSiteAdmin.SegmentLabels

The SegmentLabels property is a read/write Variant that contains the labels for a given segment model.

Definition

Property SegmentLabels(
sModelName As String,
lDepth As Long
) As Variant

Parameters

sModelName

A String that contains the name of the segment model.

lDepth

A Long that specifies the depth in the segment hierarchy from which labels are assigned or retrieved.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

A segment model classifies groups of users into segments of users with similar user properties. Similar segments are grouped into higher order collections of segments, creating a hierarchy. When the segments are first generated they are generically labeled (for example, Segment4 or Group2). Rename the labels to better identify the different groups.

Valid values for the lDepth parameter are -1 (returns all segments) and 2 or greater.

Connect to the Data Warehouse using the Init method before accessing this property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' saLabels is a SafeArray of Strings
' segment level 2 contains 3 members

saLabels(0) = "TeenAgers"
saLabels(1) = "TwentySomethings"
saLabels(2) = "Oldies"

oPredictorServiceSiteAdmin.SegmentLabels("Demog1", 2) = saLabels

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


PredModelBuilder Object

Use this object to control the creation of analysis models using multiple prioritized build threads.

ProgID: | Commerce.PredictorModelBuilder (Externally creatable)
COM Class Name: | PredModelBuilder
Type Library Name: | Microsoft Commerce 2000 Predictor Service Type Library
EXE Name: | PredServ.exe
Threading Model: | Both

The properties of the PredModelBuilder object are shown in the following table.

Property | Type | Description
dModelInfo | Object | Retrieves information on the specified running model. This property is read-only.
Priority | Enum | Stores the build thread priority. This property is read/write.
slRunningModels | Object | Retrieves a list of running models. This property is read-only.
Status | Enum | Indicates the build thread status. This property is read-only.

The methods of the PredModelBuilder object are shown in the following table.

Method | Description
Pause | Pauses a running build thread.
Resume | Resumes a paused build thread.
Start | Sets the thread identifier for a build and starts a new build thread.
Stop | Stops a running build thread.
StopAllBuilds | Stops all currently running build threads.

Remarks

Two types of analysis models are available in Microsoft Commerce Server 2000. A Prediction model is a collection of decision trees (called a dependency net) and is used either to produce a ranked list of recommendations, such as products to advertise, or to fill in missing user profile information, such as age. A Segment model is based on the process of clustering (segmentation) and is used to group similar users into segments of a population.

An analysis model is associated with a model configuration. More than one analysis model can be associated with the same model configuration. The model configuration contains attribute and case information used to build the analysis model. A case is all the information known about a user, such as profile data and transaction data. A typical model uses between 10,000 and 20,000 cases with a resulting size of between 100 kilobytes (KB) and 10 megabytes (MB).

The PredictorServiceAdmin object contains lists of the available analysis models and model configurations. The PredictorServiceSiteAdmin object provides methods for maintaining the analysis models and model configurations. The PredictorClient object loads the appropriate analysis model and makes the actual prediction.

The generation of an analysis model occurs in an individual build thread. A single instance of the PredModelBuilder object may control multiple simultaneous build threads. If a problem occurs in a build thread, that specific thread may be paused or terminated.

See Also

Prediction Objects

Predictor Schema

PredictorClient Object

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

Running the Predictor Resource


PredModelBuilder.dModelInfo

The dModelInfo property is a read-only Dictionary object that contains information on the specified running model.

Definition

Property dModelInfo(
lBuildID As Long
) As Object

Parameters

lBuildID

[in] A Long that contains the build identifier used to select a specific build thread.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The keys of this dictionary are the build parameters of the running model. For information on the build parameters, see PredictorModels Table.

Initiate the build thread using the Start method before you access the thread using the dModelInfo property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredModelBuilder Object

PredModelBuilder.Start

PredModelBuilder.Stop


PredModelBuilder.Pause

Use this method to suspend the model build thread.

Definition

Sub Pause(
lBuildID As Long
)

Parameters

lBuildID

[in] A Long that contains the build thread identifier.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The build thread identifier is returned by the Start method when a model build is initiated.

Use the Resume method to resume the paused build thread.

Use the Stop method to stop the execution of the build thread. A stopped thread may not be resumed. The thread must be restarted with the Start method.

Use the Status property to check the current status of a model build.

See Also

PredModelBuilder Object

PredModelBuilder.Start

PredModelBuilder.Resume

PredModelBuilder.Stop

PredModelBuilder.Status

PredModelBuilder.Priority


PredModelBuilder.Priority

The Priority property is a read/write ePredBuildPriority enumerated type. This property stores the priority of a build thread.

Definition

Property Priority(
lBuildID As Long
) As Enum

Parameters

lBuildID

[in] A Long that contains the build identifier.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Change this property to raise or lower the priority of the build thread depending on how quickly the build is needed.

The following table defines the possible values for the ePredBuildPriority enumerated priority levels. Absolute thread priority is not supported. These priority values are relative to the spawning thread.

Name | Value | Description
PriLowest | -2 | Lowest priority.
PriBelowNormal | -1 | Lower priority.
PriNormal | 0 | Normal priority.
PriAboveNormal | 1 | Higher priority.
PriHighest | 2 | Highest priority.

Initiate the build thread with the Start method before you access the Priority property.

Use the Pause method to temporarily suspend execution of equal or higher priority threads when a particular build thread is time-critical. Threads are executed round robin for each priority level. Threads with lower priorities are not executed until all the threads with a higher priority have executed.

See the Microsoft Developer Network (MSDN) documentation for the system SetThreadPriority method for more information about thread scheduling.

The Priority method does not support the THREAD_PRIORITY_REALTIME priority.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredModelBuilder Object

PredModelBuilder.Start

PredModelBuilder.Pause


PredModelBuilder.Resume

Use this method to resume the execution of a build thread suspended by the Pause method.

Definition

Sub Resume(
lBuildID As Long
)

Parameters

lBuildID

[in] A Long that contains the identifier of the paused build thread.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The build thread identifier is returned by the Start method when a model build is initiated.

Use the Status property to determine if a build thread is running or paused.

See Also

PredModelBuilder Object

PredModelBuilder.Start

PredModelBuilder.Pause

PredModelBuilder.Stop

PredModelBuilder.Status


PredModelBuilder.slRunningModels

The slRunningModels property is a read-only SimpleList object that contains information on the active (running and paused) model build threads.

Definition

Property slRunningModels() As Object

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The SimpleList object, slRunningModels, contains a Dictionary object for each running model. The keys of the Dictionary object are the names of the model properties as listed in the PredictorModels Table except for the properties dependent on a successful finished build. The properties that are unavailable are: DateCreated, DataFitScore, RecommendScore, and BuildTime. After a successful build, these properties are available through the slModels property of the PredictorServiceAdmin object or the dModelInfo property of the PredictorServiceSiteAdmin object. The following table describes a few of the keys contained in the Dictionary object. For information about the remaining keys, see PredictorModels Table.

Key Name | Type | Description
DWResourceName | String | Name of the Data Warehouse resource where the model configuration is defined.
ModelCfgName | String | Name of the model configuration used to build the model.
BuildID | Long | The ID of the build thread.
ModelName | String | Model name.

Use the Status property to check the status of a specific model build thread.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorServiceAdmin.slModels

PredictorServiceSiteAdmin.dModelInfo

PredModelBuilder Object

PredModelBuilder.Start

PredModelBuilder.Stop

PredModelBuilder.StopAllBuilds

PredModelBuilder.Status


PredModelBuilder.Start

Use this method to create a new model build thread.

Definition

Function Start(
sDWConnStr As String,
sSiteName As String,
sConfigName As String,
sModelName As String,
sXMLBuildParams As String
bOverWrite As Boolean
) As Long

Parameters

sDWConnStr

[in] A String that contains the connection information for the data warehouse.

sSiteName

[in] A String that is not used. Pass an empty string.

sConfigName

[in] A String that contains the model configuration name.

sModelName

[in] A String that contains the model name.

sXMLBuildParams

[in] A String that contains the run-time build parameters for the model in XML format.

bOverWrite

[in] A Boolean that indicates whether to overwrite the model if it already exists.

Return Values

If this method completes successfully, it returns a Long that contains the identifier for the new build thread.

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 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.

E_FAIL

The overwrite flag is False, and the specified model already exists or the build thread failed.

Remarks

For information on the run-time build parameters contained in the sXMLBuildParams parameter, see PredictorModels Table. The sXMLBuildParams parameter must be passed in as the return value of the SaveXML method of the IPersistXML interface of a Dictionary object containing the build parameters. For an example of this technique, see Code to Build a New Model.

Connect to the data warehouse to access the model configuration.

Associating the site name with the PredModelBuilder object allows logging of performance monitoring counters to be aggregated over the site. See the PredictorClient object for more information.

Use the returned identifier for all subsequent access to the build thread.

If a model with the same name already exists and the overwrite parameter is False, the Start method fails.

The priority of a build thread may be set using the Priority property.

Use the Status property to check the status of a build thread.

Use the Stop method to stop a build thread that is currently running. A stopped thread may not be resumed. The thread must be restarted with the Start method.

Use the Pause method to temporarily suspend the execution of a build thread. Use the Resume method to resume execution of the suspended thread.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' lBuildID is a Long

lBuildID = oPredModelBuilder.Start _
("Provider=SQLOLEDB;Data Source=servername;" & _
 "Initial Catalog=Retail_dw;User ID=user;Password=*****;", _
 "", "PurchaseCfg1", "Demog1", sXMLBuildParams, False)

See Also

PredModelBuilder Object

PredModelBuilder.Pause

PredModelBuilder.Resume

PredModelBuilder.Stop

PredModelBuilder.Status

PredModelBuilder.Priority

PredictorClient Object


PredModelBuilder.Status

The Status property is a read-only ePredBuildStatus enumerated type. This property indicates the current status of a model build thread.

Definition

Property Status(
lBuildID As Long
) As Enum

Parameters

lBuildID

[in] A Long that contains the build identifier used to select a specific build thread.

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 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 ePredBuildStatus enumerated build states.

Name | Value | Description
PredBldRunning | 0 | Is currently running.
PredBldPaused | 1 | Is paused.
PredBldShuttingDown | 2 | Is shutting down in response to the Stop method.

BuildIDs become invalid when a build is finished, either successfully or due to failure. For status information on finished builds, view the event log.

Initiate the build thread using the Start method before you access the thread using the Status property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredModelBuilder Object

PredModelBuilder.Start

PredModelBuilder.Stop


PredModelBuilder.Stop

Use this method to stop execution of a specific model build thread.

Definition

Sub Stop(
lBuildID As Long
)

Parameters

lBuildID

[in] A Long that identifies the model build thread.

Return Values

None.

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 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.

E_FAIL

The build ID was invalid or the status of the build thread was neither running nor paused.

Remarks

The build thread identifier is returned by the Start method when a model build is initiated.

The Stop method sets a flag that signals the data modeler for the specified build thread to stop when it is ready. The data modeler checks the flag each time it updates progress information. If the flag is set, the data modeler ends thread execution and performs necessary clean-up operations.

Use the Status property to access the current status of a build thread. If the data modeler has not completed the thread termination, the build thread status is PredBldShuttingDown.

After the thread terminates, the build identifier no longer indicates a valid build thread. A stopped thread may not be resumed. The thread must be restarted with the Start method.

Use the StopAllBuilds method to halt execution of all build threads associated with the PredModelBuilder object.

See Also

PredModelBuilder Object

PredModelBuilder.Start

PredModelBuilder.Status

PredModelBuilder.StopAllBuilds


PredModelBuilder.StopAllBuilds

Use this method to stop execution of all model build threads associated with the PredModelBuilder object.

Definition

Sub StopAllBuilds()

Parameters

None.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The StopAllBuilds method sets a flag that signals each build thread to stop when it is ready. If the flag is set for a build thread, the data modeler for that thread ends thread execution and performs necessary clean-up operations.

Use the Status property to access the current status of a build thread. If a data modeler has not completed thread termination, the thread status for the modeler is PredBldShuttingDown. After the thread terminates, the build identifier no longer indicates a valid build thread. A stopped thread may not be resumed. The thread must be restarted with the Start method.

Use the Stop method to stop a specific build thread.

See Also

PredModelBuilder Object

PredModelBuilder.Start

PredModelBuilder.Status

PredModelBuilder.Stop


Product Object

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 2000 Catalog Type Library
DLL Name: | Catalog.dll
Threading Model: | Both

The properties of the Product object are shown in the following table.

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.
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.
Variants | Recordset | Contains a recordset that describes all of the variants of this product, if any. This property is read-only.

The methods of the Product object are shown in the following table.

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.
SetVariantProperties | Sets the properties for variants of this product.

Remarks

The Product object is a dependent object. Obtain a reference to it by accessing the following properties:

  • ProductCatalog.CreateProduct

  • ProductCatalog.GetProduct


Product.AddRelationshipToCategory

Use this method to add a relationship to a specified category from this product.

Definition

Sub AddRelationshipToCategory(
strRelatedCategoryName As String,
strRelationshipName As String,
Optional strRelationshipDescription As Variant
)

Parameters

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

A Variant that optionally contains a description for the relationship.

Return Values

None.

Error Values

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_CATEGORY_DOESNT_EXIST | &H8898001C | The specified category did not exist.
E_CAT_INVALID_RELATION | &H88980039 | The specified relationship was invalid. For example, a category or product cannot be related to itself.
E_CAT_INVALID_RELATION_DESC | &H88980055 | The relationship description exceeded 256 characters.
E_CAT_INVALID_RELATION_NAME | &H88980054 | The relationship name exceeded 128 characters.
E_CAT_RELATIONSHIP_EXISTS | &H88980033 | The specified relationship already existed.

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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

'vDesc is a Variant of subtype String containing the description.
myProduct.AddRelationshipToCategory "Apparel", "Accessory", vDesc

See Also

Product Object

Product.AddRelationshipToProduct

Product.RemoveRelationshipToCategory


Product.AddRelationshipToProduct

Use this method to add a relationship to a specified product from this product.

Definition

Sub AddRelationshipToProduct(
varRelatedProductID As Variant,
strRelationshipName As String,
Optional strRelationshipDescription As Variant
)

Parameters

varRelatedProductID

A Variant that contains the ID of the related product.

strRelationshipName

A String that contains the name of the relationship.

strRelationshipDescription

A Variant that optionally contains a description for the relationship.

Return Values

None.

Error Values

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_RELATION | &H88980039 | The specified relationship was invalid. For example, a product cannot be related to itself.
E_CAT_INVALID_RELATION_DESC | &H88980055 | The relationship description exceeded 256 characters.
E_CAT_INVALID_RELATION_NAME | &H88980054 | The relationship name exceeded 128 characters.
E_CAT_PRODUCT_DOESNT_EXIST | &H8898001E | The specified product ID did not exist.
E_CAT_RELATIONSHIP_EXISTS | &H88980033 | The specified relationship already existed.

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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

Product Object

Product.AddRelationshipToCategory

Product.RemoveRelationshipToProduct


Product.AncestorCategories

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

Property AncestorCategories As Recordset

Parameters

None.

Error Values

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_CIRCULAR_REFERENCE | &H88980037 | Circular referencing is not supported. A circular reference would put a category in more than one place in the hierarchy.

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 AncestorCategories property contains valid data only if it was accessed successfully.

The AncestorCategories property is a Recordset object with a single 128-character field, named Name.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object

Product.ParentCategories


Product.CatalogName

The CatalogName property is a read-only String that contains the name of the catalog within which this product exists.

Definition

Property CatalogName As String

Parameters

None.

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 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

Product Object


Product.CreateVariant

Use this method to create a new product variant of the current product. Only product specifc attributes will be set in the new variant.

Definition

Function CreateVariant(
varProductVariantID As Variant
) As Recordset

Parameters

varProductVariantID

A Variant that contains the unique ID of the product variant.

Return Values

If this method completes successfully, it returns a recordset that contains the properties for the variant.

Error Values

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_BLANK_VARIANT | &H8898004F | A blank value was specified for the VariantID.
E_CAT_CATALOG_DOESNT_SUPPORT_VARIANTS | &H88980032 | This catalog does not support product variants. This is determined when the catalog is created and cannot be changed.
E_CAT_INVALID_VARIANTID | &H8898005C | The VariantID exceeded 256 characters in length.
E_CAT_INVALIDVALUE_FOR_PROPERTY &H88980038 An invalid value was specified for one of the product properties.

This error can be due to:

  • One of the values in the recordset does not satisfy the requirements of the minimum value/maximum value attributes set for the properties.

  • An enumeration property has a value that is not defined in its list of legal values.

  • Strings exceed the maximum length defined for the property or are shorter than the minimum length.
E_CAT_INVALIDVALUE_FOR_VARIANTID &H8898004D An invalid value was specified for the VariantID.

This error can be due to the value of the VariantId being out of range.
E_CAT_NO_VARIANTS_UNDER_PRODUCT | &H88980051 | This product does not support variants. Variants cannot be created under a regular product.
E_CAT_PRODUCT_DOESNT_EXIST | &H8898001E | This product has been removed from the catalog.
E_CAT_VARIANT_EXISTS | &H88980026 | The specified variant already existed.

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 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 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 for internal use 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.

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 same variant IDs within the same catalog, as long as they are in different product families and the unique Product identifier and the unique Variant identifier are different.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

Set rsVariantProps = myProduct.CreateVariant("SKU4005XLA")

See Also

Product Object

Product.DeleteVariant

Product.SetVariantProperties


Product.DeleteVariant

Use this method to delete the specified product variant.

Definition

Sub DeleteVariant(
varVariantID As Variant
)

Parameters

varVariantID

A Variant that contains the unique ID of the variant.

Return Values

None.

Error Values

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_SUPPORT_VARIANTS | &H88980032 | This catalog does not support product variants. This is determined when the catalog is created and cannot be changed.
E_CAT_VARIANT_DOESNT_EXIST | &H8898001F | Variant did not exist.

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

'vVarID is a Variant containing the unique ID
'for the product variant.
myProduct.DeleteVariant vVarID

See Also

Product Object

Product.CreateVariant


Product.GetProductProperties

The GetProductProperties property is a read-only recordset that contains the properties of this Product object.

Definition

Property GetProductProperties As Recordset

Parameters

None.

Error Values

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_PRODUCT_DOESNT_EXIST | &H8898001E | This product has been deleted.

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 GetProductProperties property contains valid data only if it 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 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

Product Object

Product.SetProductProperties


Product.GetVariantProperties

Use this method to retrieve the properties for a specified product variant.

Definition

Function GetVariantProperties(
varProductVariantID As Variant
) As Recordset

Parameters

varProductVariantID

A Variant that contains the unique ID of the product variant.

Return Values

If this method completes successfully, it returns a Recordset object that contains the variant properties.

Error Values

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_SUPPORT_VARIANTS | &H88980032 | This catalog does not support product variants.
E_CAT_VARIANT_DOESNT_EXIST | &H8898001F | This product variant has been removed from the catalog.

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 ppRSProductVariant property contains valid data only if it 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

'vVarID is a Variant containing the unique ID of the variant.
SET rsVariantProps = myProduct.GetVariantProperties(vVarID)

See Also

Product Object

Product.SetVariantProperties


Product.ParentCategories

The ParentCategories property is a read-only recordset that contains the names of categories that directly contain this product.

Definition

Property ParentCategories As Recordset

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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 will have a single 128-character String field called Name. Each row in the recordset will contain the name of a category containing this product.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object

Product.AncestorCategories


Product.PricingCategory

The PricingCategory property is a read/write String that contains the name of the pricing category for this product.

Definition

Property PricingCategory As String

Parameters

None.

Error Values

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_CATEGORY_DOESNT_EXIST | &H8898001C | The specified category did not exist.
E_CAT_PRICING_CAT_PRICELESS | &H8898002F | The specified category did not have a list price. Categories that do not have a list price cannot be used as a pricing category.
E_CAT_PRODUCT_DOESNT_EXIST | &H8898001E | This product has been deleted.

Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object


Product.ProductID

The ProductID property is a read-only String that contains the unique ID for this product.

Definition

Property ProductID As String

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The value of this property is a copy of the value of the IdentifyingProductProperty property of the catalog containing this product.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object


Product.RelatedCategories

The RelatedCategories property is a read-only Recordset object that contains the names of categories that are related to this product.

Definition

Property RelatedCategories As _Recordset

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The RelatedCategories property contains valid data only if it 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object

Product.RelatedProducts

Product.AddRelationshipToCategory


Product.RelatedProducts

The RelatedProducts property is a read-only Recordset object that contains the names of products that are related to this product.

Definition

Property RelatedProducts As Recordset

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The RelatedProducts property contains valid data only if it 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object


Product.RemoveRelationshipToCategory

Use this method to remove the specified relationship between the specified category and this product.

Definition

Sub RemoveRelationshipToCategory(
strRelatedCategoryName As String,
strRelationshipName As String
)

Parameters

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.

Return Values

None.

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 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

' Remove the "Accessory" relationship this product has to
' the "Apparel" category

myProduct.RemoveRelationshipToCategory "Apparel", "Accessory"

See Also

Product Object

Product.RelatedCategories

Product.AddRelationshipToCategory

Product.RemoveRelationshipToProduct


Product.RemoveRelationshipToProduct

Use this method to remove the specified relationship between the specified product and this product.

Definition

Sub RemoveRelationshipToProduct(
varRelatedProductID As Variant,
strRelationshipName As String
)

Parameters

varRelatedProductID

A Variant 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.

Return Values

None.

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 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

''vProdID is a Variant containing the unique ID of the related product.
myProduct.RemoveRelationshipToProduct(vProdID, "Accessory")

See Also

Product Object

Product.RelatedProducts

Product.AddRelationshipToProduct

Product.RemoveRelationshipToCategory


Product.SetProductProperties

Use this method to set the properties for this product.

Definition

Sub SetProductProperties(
pRSProduct As Recordset,
Optional fForceUpdate As Variant
)

Parameters

pRSProduct

A Recordset object that contains the new product properties. This should be an updated recordset returned by the GetProductProperties method.

fForceUpdate

A Variant that determines whether to force an update of the product properties.

Return Values

None.

Error Values

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_LISTPRICE | &H8898003C | The value specified for the list price was invalid.
E_CAT_INVALIDVALUE_FOR_PROPERTY &H88980038 An invalid value was specified for one of the product properties. This error was returned if:
  • One of the properties did not satisfy the Min/Max condition.

  • The properties of string or enumeration data type exceeded the maximum length.

  • The value of the enumeration property was not one of the legal values defined.
E_CAT_PRODUCT_CHANGED | &H88980027 | This product's properties were changed since they were last read. This error is returned only if the fForceUpdate parameter is set to False.
E_CAT_PRODUCT_DOESNT_EXIST | &H8898001E | The specified product ID did not exist.

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 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 record set was read, the method will fail.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

Product Object

Product.GetProductProperties


Product.SetVariantProperties

Use this method to set the properties for a variant of this product.

Definition

Sub SetVariantProperties(
pRSNewState As _Recordset,
Optional fForceUpdate As Variant
)

Parameters

pRSNewState

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

A Variant that determines whether to force an update of the product variant properties.

Return Values

None.

Error Values

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_SUPPORT_VARIANTS | &H88980032 | Catalog does not support variants.
E_CAT_INVALIDVALUE_FOR_PROPERTY &H88980038 An invalid value was specified for one of the product properties. This error was returned if:
  • One of the properties did not satisfy the Min/Max condition.

  • The properties of string or enumeration data type exceeded the maximum length.

  • The value of the enumeration property was not one of the legal values defined.
E_CAT_PRODUCT_CHANGED | &H88980027 | This product's properties were changed since they were last read. This error is returned only if the fForceUpdate parameter is set to False.
E_CAT_VARIANT_DOESNT_EXIST | &H8898001F | This product variant has been removed from the catalog.

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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

myProduct.SetVariantProperties pRSNewState, fForceUpdate

See Also

Product Object

Product.GetVariantProperties


Product.Variants

The Variants property is a read-only recordset that describes all of the variants of this product.

Definition

Property Variants(
Optional strPropertyToSortOn As Variant
) As Recordset

Parameters

strPropertyToSortOn

A Variant that contains the property on which the returned Recordset object is to be sorted.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If this product has no variants, the returned recordset will be empty, and its EOF property will be set to VARIANT_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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

SET rsVariants = myProduct.Variants("Size")

See Also

Product Object


ProductCatalog Object

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 2000 Catalog Type Library
DLL Name: | Catalog.dll
Threading Model: | Both

The properties of the ProductCatalog object are shown in the following table.

Property | Type | Description
BaseCatalogName | BSTR | Contains the name of a base catalog for the custom catalog. This property is read-only.
CatalogName | BSTR | 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 | _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.

The methods of the ProductCatalog object are shown in the following table.

Method | Description
AddSpecificationSearchClause | Adds a search constraint to the search context when performing a specification search of this 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.
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.
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.
RegenerateFreeTextSearchIndex | Updates the free text search index for this catalog.
RemoveSpecificationSearchClause | Removes the last search constraint from the specified search context.
SetCatalogAttributes | Sets attributes for this catalog.
SetCategoryCustomPrice | Defines a custom price for the specified category.
SetCustomCatalogAttributes | Sets attributes for the specified custom catalog.

Remarks

The ProductCatalog object is a dependent object. Obtain a reference to it by calling one of the following methods:

  • CatalogManager.GetCatalog

  • CatalogManager.CreateCatalog

Note

  • There is limit on the number of ProductCatalogs objects upon which you can search. Above 256 ProductCatalog objects, full-text search will break. This is a limitation of SQL Server 2000.


ProductCatalog.AddSpecificationSearchClause

Use this method to add constraints to a specification search of this catalog.

Definition

Sub AddSpecificationSearchClause(
strClause As String,
pstrSearchHandle As Variant
)

Parameters

strClause

A String that contains the clause to be added to the specified specification search.

pstrSearchHandle

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

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

myProductCatalog.AddSpecificationSearchClause strClause, pstrSearchHandle

See Also

ProductCatalog Object

ProductCatalog.BeginSpecificationSearch

ProductCatalog.GetSpecificationSearchClauses

ProductCatalog.PerformSpecificationSearch


ProductCatalog.BaseCatalogName

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

Property BaseCatalogName() As String

Parameters

None.

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 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

ProductCatalog Object


ProductCatalog.BeginSpecificationSearch

Use this method to initialize a specification search of a catalog.

Definition

Function BeginSpecificationSearch(
strCategoryName As String,
Optional pRSInitialPropValuesList As Variant,
Optional plTotalRecordsAvailable As Variant
) As String

Parameters

strCategoryName

A String that contains the name of the category in which to search.

pRSInitialPropValuesList

A Variant used to return the recordset of initial property values.

plTotalRecordsAvailable

A Variant used to return the total records available.

Return Values

If this method completes successfully, it returns a String that contains the state of this specification search.

Error Values

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_CATEGORY_DOESNT_EXIST | &H88980041 | The category you specified did not exist in the catalog.
E_CAT_CATEGORY_NOT_SEARCHABLE | &H88980034 | The specified category was not specification searchable.

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 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 categories 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.

Example

'
strSearchHandle = myProductCatalog.BeginSpecificationSearch(strCategoryName, pRSInitialPropValuesList)

See Also

ProductCatalog Object

ProductCatalog.AddSpecificationSearchClause

ProductCatalog.GetSpecificationSearchClauses

ProductCatalog.PerformSpecificationSearch


ProductCatalog.CatalogName

The CatalogName property is a read-only string that contains the name of this catalog.

Definition

Property CatalogName() As String

Parameters

None.

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 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

ProductCatalog Object


ProductCatalog.CreateCategory

Use this method to create a new category.

Definition

Function CreateCategory(
strDefinitioName As String,
strCategoryName As String,
Optional strParentCategoryName As Variant,
Optional fIsSpecificationSearchable As Variant
) As Category

Parameters

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

A Variant that contains the name of the category that will be a parent to this new category, if any.

fIsSpecificationSearchable

A Variant that determines whether or not this category is to be specification searchable.

Return Values

If this method completes successfully, it returns the newly created Category object.

Error Values

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_CATEGORY_DOESNT_EXIST | &H8898001C | The specified parent category did not exist.
E_CAT_CATEGORY_EXISTS | &H8898001D | The specified name for the new category was already in use. Category names must be globally unique across the entire system.
E_CAT_DEFINITION_DOESNT_EXIST | &H8898000B | The specified definition did not exist.
E_CAT_INVALID_CATEG_LENGTH | &H88980047 | The category name exceeded 128 characters.
E_CAT_PRODUCT_DEFN_FOR_CATEGORY | &H8898004B | The definition specified was not a category definition but a product definition.

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

SET oMyCategory = myProductCatalog.CreateCategory("BasicCategoryDefinition", "T-Shirts", "Apparel", TRUE)

See Also

ProductCatalog Object

ProductCatalog.GetCategory

ProductCatalog.DeleteCategory


ProductCatalog.CreateCustomCatalog

Use this method to create a new template for a custom catalog.

Definition

Function CreateCustomCatalog(
strCCName As String
) As _Recordset

Parameters

strCCName

A String that contains the name of the custom catalog to be created.

Return Values

If this method completes successfully, it returns a recordset that contains the properties of the newly created custom catalog.

Error Values

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_EXISTS | &H88980001 | There was already a base catalog with the specified name. Catalog names and custom catalog names must be unique throughout the Product Catalog System.
E_CAT_CUSTOMCAT_EXISTS | &H88980022 | There was already a custom catalog with the specified name.

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 fields that the returned single-row recordset contains.

Field | Data Type | Description
CustomCatalogName | String 256 characters | The name of the custom catalog.
CatalogName | String 256 characters | The name of the base catalog.
CustomCatalogID | Integer | The field name that uniquely identifies custom catalogs.
TimeStamp | Timestamp | None.

The returned recordset is disconnected and updateable.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

SET rsMyCustomCat = myProductCatalog.CreateCustomCatalog("SeniorDiscountCatalog")

See Also

ProductCatalog Object

ProductCatalog.DeleteCustomCatalog

ProductCatalog.GenerateCustomCatalog

ProductCatalog.SetCategoryCustomPrice


ProductCatalog.CreateProduct

Use this method to create a new product within the catalog according to specified parameters.

Definition

Function CreateProduct(
strDefinitionName As String,
varProductID As Variant,
cyListPrice As Currency,
Optional strParentCategoryName As Variant
) As Product

Parameters

strDefinitionName

A String that contains the name of the product definition for the product.

varProductID

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

A Currency object that contains the list price of the product to be created.

strParentCategoryName

A Variant that contains the name of the category to be designated as the parent category of the product to be created.

Return Values

If this method completes successfully, it returns the Product object that was created.

Error Values

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_CATEGORY_DEFN_FOR_PRODUCT | &H8898004A | The specified definition was a category definition not a product definition
E_CAT_CATEGORY_DOESNT_EXIST | &H8898001C | The specified category did not exist.
E_CAT_DEFINITION_DOESNT_EXIST | &H8898000B | The specified definition did not exist.
E_CAT_PRODUCT_EXISTS | &H8898001B | The specified product ID was already in use. The product ID must be unique throughout the catalog.
E_CAT_INVALID_PRODUCTID | &H8898005B | The length of the ProductID exceeded 256 characters.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | &H8898004E | An invalid value was specified for the ProductID

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 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.

Example

SET oMyNewProduct = myProductCatalog.CreateProduct("BasicProduct", "SKU3004", cyListPrice, "Apparel")

See Also

ProductCatalog Object

ProductCatalog.DeleteProduct

ProductCatalog.GetProduct


ProductCatalog.DeleteCategory

Use this method to delete a category from the Product Catalog System.

Definition

Sub DeleteCategory(
strCategoryName As String
)

Parameters

strCategoryName

A String that contains the name of the category to be deleted.

Error Values

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_CATEGORY_DOESNT_EXIST | &H8898001C | The specified category did not exist.

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.

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

Example

myProductCatalog.DeleteCategory "Apparel"

See Also

ProductCatalog Object

ProductCatalog.RootCategories

ProductCatalog.CreateCategory

ProductCatalog.GetCategory


ProductCatalog.DeleteCustomCatalog

Use this method to delete a custom catalog from the Product Catalog System.

Definition

Sub DeleteCustomCatalog(
strCCName As String
)

Parameters

strCCName

A String that contains the name of the custom catalog to be deleted.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

All data relating to the custom catalog will be deleted. If the custom catalog was generated, then the generated catalog will also be deleted.

Example

myProductCatalog.DeleteCustomCatalog "SeniorDiscountCatalog"

See Also

ProductCatalog Object

ProductCatalog.CreateCustomCatalog

ProductCatalog.GenerateCustomCatalog


ProductCatalog.DeleteProduct

Use this method to delete a product from the Product Catalog System.

Definition

Sub DeleteProduct(
varProductID As Variant
)

Parameters

varProductID

A Variant that contains the unique identifier of the product to be deleted.

Error Values

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_CATALOG_DOESNT_EXIST | &H88980002 | The catalog did not exist.
E_CAT_PRODUCT_DOESNT_EXIST | &H88980010 | The specified product did not exist.

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 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.

Example

myProductCatalog.DeleteProduct 654321

See Also

ProductCatalog Object

ProductCatalog.CreateProduct

ProductCatalog.GetProduct


ProductCatalog.GenerateCustomCatalog

Use this method to populate a custom catalog with data or to update a custom catalog to reflect the latest version of the base catalog. A copy of the base catalog is made and custom prices and rules are applied to generate the custom catalog.

Definition

Sub GenerateCustomCatalog(
strCustomCatalogName As String
)

Parameters

strCustomCatalogName

A String that contains the custom catalog name.

Return Values

None.

Error Values

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_CUSTOMCAT_DOESNT_EXIST | &H88980024 | The specified custom catalog did not exist.

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 populate a custom catalog template with data. If the custom catalog already exists then the existing data will be deleted. The generated custom catalog is a copy of the base catalog at the moment when it is populated by this method. The prices of the products in the custom catalog are determined by applying the custom pricing rule that has been set with the SetCategoryCustomPrice method. After the custom catalog has been generated by this method, the custom catalog can be treated as any other catalog.

Because custom catalogs are only copies of an existing base catalog, and are not dynamically linked to the base catalog, any changes made to the base catalog will not be automatically reflected in any custom catalogs derived from it. Similarly, any changes made to a custom catalog will not automatically propagate back to the base catalog. Use this method to update the custom catalog to reflect the latest version of the base catalog.

Note

  • 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.

Example

myProductCatalog.GenerateCustomCatalog "SeniorDiscountCatalog"

See Also

ProductCatalog Object

ProductCatalog.CreateCustomCatalog

ProductCatalog.DeleteCustomCatalog

ProductCatalog.SetCategoryCustomPrice


ProductCatalog.GetCatalogAttributes

Use this method to retrieve the attributes of this catalog. The returned recordset is disconnected and updateable.

Definition

Function GetCatalogAttributes() As _Recordset

Parameters

None.

Return Values

If this method completes successfully, it returns a recordset that contains the attributes of this catalog.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

SET rsMyCatAttribs = myProductCatalog.GetCatalogAttributes

See Also

ProductCatalog Object

ProductCatalog.GetCustomCatalogAttributes

ProductCatalog.SetCatalogAttributes


ProductCatalog.GetCategory

Use this method to retrieve the specified category from a catalog.

Definition

Function GetCategory(
strCategoryName As String
) As Category

Parameters

strCategoryName

A String that contains the name of the category to be returned.

Return Values

If this method completes successfully, it returns the Category object specified.

Error Values

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 standard COM error value has a particular meaning in the context of this method:

S_FALSE

The catalog specified did not exist.

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

SET oMyCategory = myProductCatalog.GetCategory "Apparel"

See Also

ProductCatalog Object

ProductCatalog.CreateCategory

ProductCatalog.DeleteCategory


ProductCatalog.GetCategoryCustomPrice

Use this method to retrieve the custom price and custom price type for a specified custom catalog and category.

Definition

Sub GetCategoryCustomPrice(
strCCName As String,
strCategoryName As String,
peCustomPrice As Variant,
pfpCustomPriceAmount As Variant
)

Parameters

strCCName

A String that contains the name of the custom catalog.

strCategoryName

A String that contains the category name for which the custom price will be returned.

peCustomPrice

A Variant used to return the type of the custom price. Valid values are from the CatalogCustomPriceEnum enumeration, and are described in the Remarks section below.

pfpCustomPriceAmount

A Variant used to return the custom price adjustment.

Error Values

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_CATEGORY_DOESNT_EXIST | &H8898001C | The specified category did not exist.
E_CAT_CUSTOMCAT_DOESNT_EXIST | &H88980024 | The specified custom catalog did not exist.

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 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 is the base price multiplied by the percentage value in the pfpCustomPriceAmount parameter.
cscAddFixedAmount | 2 | The custom price is the pfpCustomPriceAmount added to the base price.
cscReplacePrice | 3 | The custom price is the pfpCustomPriceAmount.
cscInvalidCustomPrice | -1 | Reserved for future use.

If the Category has not been specified as a Custom Category then the peCustomPrice parameter and the pfpCustomPriceAmount parameter will be set to 0.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

myProductCatalog.GetCategoryCustomPrice "SeniorDiscout", "Shoes", cscPercentageMultiplier, 90

See Also

ProductCatalog Object

ProductCatalog.SetCategoryCustomPrice


ProductCatalog.GetCustomCatalogAttributes

Use this method to retrieve the attributes for a specified custom catalog.

Definition

Function GetCustomCatalogAttributes(
strCCName As String
) As _Recordset

Parameters

strCCName

A String that contains the name of the custom catalog.

Return Values

If this method completes successfully, it returns a recordset that contains the custom catalog attributes.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The following table shows the fields that the returned single-row recordset contains.

Field | Data Type | Description
CustomCatalogName | String Maximum of 128 unicode characters | The name of the custom catalog.
CatalogName | String Maximum of128 unicode characters | The name of the base catalog.
CustomCatalogID | Integer | The field name that uniquely identifies custom catalogs.
TimeStamp | Timestamp | None.

The returned recordset is disconnected and updateable. The CustomCatalogName parameter is the only field that can be modified.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

SET rsMyCustomCatAttribs = myProductCatalog.GetCustomCatalogAttributes("SeniorDiscountCatalog")

See Also

ProductCatalog Object

ProductCatalog.CreateCustomCatalog

ProductCatalog.SetCustomCatalogAttributes


ProductCatalog.GetProduct

Use this method to retrieve the specified product from a catalog.

Definition

Function GetProduct(
varProductID As Variant
) As Product

Parameters

varProductID

A Variant that contains the unique identifier of the product.

Return Values

If this method completes successfully, it returns the product specified.

Error Values

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 standard COM error value has a particular meaning in the context of this method:

S_FALSE

The catalog specified did not exist.

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

SET oMyProduct = myProductCatalog.GetProduct("SKU4005")

See Also

ProductCatalog Object

ProductCatalog.CreateProduct

ProductCatalog.DeleteProduct


ProductCatalog.GetProductVariant

Use this method to retrieve the properties of a specified product variant.

Definition

Function GetProductVariant(
varProductID As Variant,
varVariantID As Variant
) As _Recordset

Parameters

varProductID

A Variant that contains the unique identifier of the product family.

varVariantID

A Variant that contains the unique identifier of the product variant.

Return Values

If this method completes successfully, it returns a recordset that contains the properties of the specified variant.

Error Values

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_SUPPORT_VARIANTS | &H88980032 | This catalog does not support variants. This is determined when the catalog is created and cannot be changed.

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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

SET rsVariantProps = myProductCatalog.GetProductVariant("SKU4007", "Blue")

See Also

ProductCatalog Object

ProductCatalog.IdentifyingVariantProperty


ProductCatalog.GetSpecificationSearchClauses

Use this method to retrieve the specified specification search constraints.

Definition

Function GetSpecificationSearchClauses(
strSearchHandle As String
) As _Recordset

Parameters

strSearchHandle

A String that contains the specification search handle.

Return Values

If this method completes successfully, it returns a recordset that contains the specification search clauses.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

Example

'strSearchHandle contains a search handle returned
'from AddSpecificationSearchClause or BeginSpecificationSearch
SET rsMySearchClauses = myProductCatalog.GetSpecificationSearchClauses(strSearchHandle)

See Also

ProductCatalog Object

ProductCatalog.AddSpecificationSearchClause

ProductCatalog.RemoveSpecificationSearchClause


ProductCatalog.GuaranteedSpecificationSearch

Use this method to guarantee results when performing a specification search of a catalog.

Definition

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

A Variant that contains the specification search handle.

eClassTypeRequired

A Variant that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section below.

lDesiredRecords

A Variant that contains the number of records desired.

plTotalRecordsAvailable

A Variant used to return the total records available.

pRSNewPropValuesList

A Recordset used to return the new property values list.

vrPropertiesRequired

A Variant that contains the properties required in a comma-delimited String.

Return Values

If this method completes successfully, it returns a recordset that contains the search results.

Error Values

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
S_FALSE &H00000001 This value is returned when the pRSNewPropValuesList parameter is specified and:
  • There are no properties in the catalog that are marked for specification search.

  • There are no products under the category selected for specification search.
E_CAT_CATEGORY_NOT_EXISTS_NOT_SEARCHABLE | &H88980049 | The category you specified did not exist or was not specification searchable.

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 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.

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 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.

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

ProductCatalog Object

ProductCatalog.AddSpecificationSearchClause

ProductCatalog.PerformSpecificationSearch

ProductCatalog.RemoveSpecificationSearchClause


ProductCatalog.IdentifyingProductProperty

The IdentifyingProductProperty property is a read-only String that contains the name of the unique identifier field for the products in this catalog.

Definition

Property IdentifyingProductProperty() As String

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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

ProductCatalog Object

ProductCatalog.IdentifyingVariantProperty


ProductCatalog.IdentifyingVariantProperty

The IdentifyingProductVariantProperty property is a read-only String that contains the name of the unique identifier field for product variants in this catalog.

Definition

Property IdentifyingVariantProperty() As String

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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

ProductCatalog Object

ProductCatalog.IdentifyingProductProperty


ProductCatalog.PerformSpecificationSearch

Use this method to perform a specification search of a catalog.

Definition

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

A String that contains the name of the search to perform.

eClassTypeRequired

A Variant that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section below.

lDesiredRecords

A Variant that contains the records desired.

plTotalRecordsAvailable

A Variant used to return the total number of records available.

pRSNewPropValuesList

A Variant used to return the Recordset of the new property values list.

vrPropertiesRequired

A Variant that contains the properties required in a comma-delimited String.

Return Values

If this method completes successfully, it returns a recordset that contains the search results.

Error Values

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
S_FALSE &H00000001 This value is returned when the pRSNewPropValuesList parameter is supplied and:
  • There are no properties in the catalog that are marked for specification search.

  • There are no products under the category selected for specification search.
E_CAT_CATEGORY_NOT_EXISTS_NOT_SEARCHABLE | &H88980049 | The category you specified did not exist or was not specification searchable.

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 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 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.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

ProductCatalog Object

ProductCatalog.AddSpecificationSearchClause

ProductCatalog.BeginSpecificationSearch

ProductCatalog.GuaranteedSpecificationSearch

ProductCatalog.RemoveSpecificationSearchClause


ProductCatalog.RegenerateFreeTextSearchIndex

Use this method to regenerate the free text search index of a catalog.

Definition

Sub RegenerateFreeTextSearchIndex(
fGenerateIncremental As Boolean
)

Parameters

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.

Return Values

None.

Error Values

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_CANNOT_REFRESH | &H8898004C | A catalog import operation is currently in progress. The refresh operation cannot be performed now.

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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

myProductCatalog.RegenerateFreeTextSearchIndex TRUE

See Also

ProductCatalog Object


ProductCatalog.RemoveSpecificationSearchClause

Use this method to remove the last constraint from a specified specification search.

Definition

Function RemoveSpecificationSearchClause(
pstrSearchHandle As Variant
) As String

Parameters

pstrSearchHandle

A Variant that contains the specification search handle from which a constraint is to be removed.

Return Values

If this method completes successfully, it returns a String that contains the removed clause.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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.

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

ProductCatalog Object


ProductCatalog.RootCategories

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

Property RootCategories(
Optional vrPropertiesRequired As Variant
) As _Recordset

Parameters

vrPropertiesRequired

A VARIANT, subtype String, that contains a comma-separated list of the required property names.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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]").

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ProductCatalog Object

ProductCatalog.RootProducts


ProductCatalog.RootProducts

The RootProducts property is a read-only recordset that contains the products that exist at the root level of a catalog.

Definition

Property RootProducts() As _Recordset

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

SET rsRootProducts = myProductCatalog.RootProducts

See Also

ProductCatalog Object

ProductCatalog.RootCategories


ProductCatalog.SearchableCategories

The SearchableCategories property is a read-only recordset that contains the names of all searchable categories.

Definition

Property SearchableCategories() As _Recordset

Parameters

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

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 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

ProductCatalog Object

ProductCatalog.CreateCategory

ProductCatalog.GetCategory


ProductCatalog.SetCatalogAttributes

Use this method to set the attributes of a catalog.

Definition

Sub SetCatalogAttributes(
pRSCatalogAttributes As _Recordset,
Optional fForceUpdate As Variant
)

Parameters

pRSCatalogAttributes

A Recordset containing the new attributes.

fForceUpdate

A Variant that causes a forced update of the catalog attributes.

Error Values

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 | &H88980002 | The catalog did not exist.
E_CAT_CATALOG_CHANGED | &H88980012 | The catalog has been updated since it was last read.

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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

myProductCatalog.SetCatalogAttributes(rsCatalogAttribs, TRUE)

See Also

ProductCatalog Object

ProductCatalog.GetCatalogAttributes


ProductCatalog.SetCategoryCustomPrice

Use this method to set a custom price rule for a category.

Definition

Sub SetCategoryCustomPrice(
strCCName As String,
strCategoryName As String,
eCustomPrice As CatalogCustomPriceEnum,
fpCustomPriceAmount As Double
)

Parameters

strCCName

A String that contains the name of the custom catalog template for which this rule will apply.

strCategoryName

A String that contains the name of the category for which a custom price will be set.

eCustomPrice

The type of price adjustment. Valid values are from the CatalogCustomPriceEnum enumeration, and are described in the Remarks section below.

fpCustomPriceAmount

A Double that contains the custom price adjustment amount.

Error Values

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_CATEGORY_DOESNT_EXIST | &H8898001C | The category did not exist.
E_CAT_CUSTOMCAT_DOESNT_EXIST | &H88980024 | The specified custom catalog did not exist.

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 SetCategoryCustomPrice method defines a custom pricing rule for a category, and all the immediate child products of that category, in the specified custom catalog. The SetCategoryCustomPrice method does not affect child categories.

If a product exists within multiple categories, each having different custom prices, the custom price will not be applied to that product for either category.

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 is the base price multiplied by the percentage value in the pfpCustomPriceAmount parameter.
cscAddFixedAmount | 2 | The custom price is the pfpCustomPriceAmount added to the base price.
cscReplacePrice | 3 | The custom price is the 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.

Example

myProductCatalog.SetCategoryCustomPrice "SeniorDiscountCatalog", "Apparel", cscPercentageMultiplier, 90

See Also

ProductCatalog Object

ProductCatalog.GetCategoryCustomPrice


ProductCatalog.SetCustomCatalogAttributes

Use this method to set the attributes of a custom catalog.

Definition

Sub SetCustomCatalogAttributes(
pRSNewState As _Recordset,
Optional fForceUpdate As Variant
)

Parameters

pRSNewState

A Recordset object containing the new attributes.

fForceUpdate

A Variant that causes a forced update of the custom catalog attributes.

Error Values

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_CANNOT_ALTER_CC | &H88980060 | The specified changes could not be made.
E_CAT_CUSTOMCATALOG_CHANGED | &H88980035 | The custom catalog has been altered since it was last read.

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 SetCustomCatalogAttributes method to modify the CustomCatalogName attribute of a custom catalog. No other attributes can be modified. The pRSNewState parameter specifies a Recordset object that describes the new attribute values for this custom catalog. The method will fail if the custom catalog has already been published.

Use the Recordset object returned by the GetCustomCatalogAttributes method so that its timestamp can be compared for quality assurance.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

myProductCatalog.SetCustomCatalogAttributes rsNewAttribs, TRUE

See Also

ProductCatalog Object

ProductCatalog.GetCustomCatalogAttributes


CatalogProduct Recordset

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
ParentOID | 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.

See Also

ProductCatalog.GuaranteedSpecificationSearch

ProductCatalog.PerformSpecificationSearch

ProductCatalog.RootCategories

ProductCatalog.RootProducts


ProfileObject Object

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 2000 Profile Service Type Library
DLL Name: | mscsups.dll
Threading Model: | Both

The properties of the ProfileObject object are shown in the following table.

Property | Type | Description
Fields | Object | Stores the profile property collection. This property is read-only.

The methods of the ProfileObject object are shown in the following table.

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.

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

Profile Objects

Profile Schema

Profile XML Structures

ProfileService Object


ProfileObject.Fields

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

Property Fields As Object

Parameters

None.

Error Values

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

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.

See Also

ProfileObject Object

ProfileService Object


ProfileObject.GetProfileXML

Use this method to retrieve the XML schema and data of the profile object.

Definition

Function GetProfileXML (
eRetrieveEnum As XMLRetrieveEnum,
bAttributeCentric As Boolean
) As String

Parameters

eRetrieveEnum

[in] An Enum that indicates whether to retrieve the XML schema, data, or both.

bAttributeCentric

[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.

Return Values

This method returns a String containing the XML representation of the profile object.

Error Values

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 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.

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="admin">
      </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>admin</user_id_changed_by>
      </GeneralInfo>
   </UserObject>
   </ProfileDocument>

See Also

ProfileObject Object

ProfileObject.Fields

Profile XML Structures


ProfileObject.Update

Use this method to save ProfileObject object data to the underlying data store.

Definition

Sub Update()

Parameters

None.

Return Values

None.

Error Values

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

ProfileObject Object

ProfileObject.Fields


ProfileService Object

Use this object to create, delete, and retrieve ProfileObject objects.

ProgID: | Commerce.ProfileService (Externally creatable)
COM Class Name: | ProfileService
Type Library Name: | Microsoft Commerce 2000 Profile Service Type Library
DLL Name: | mscsups.dll
Threading Model: | Both

The properties of the ProfileService object are shown in the following table.

Property | Type | Description
Errors | Object | Stores the collection of errors encountered in the last Profiles resource operation. This property is read-only.

The methods of the ProfileService object are shown in the following table.

Method | Description
BindAs | Sets the user credentials for accessing the underlying Profiles store.
CreateProfile | Creates the specified ProfileObject object.
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.

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 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.

Call the Initialize method before you use any other ProfileService method or property.

See Also

Profile Objects

Profile Schema

Profile XML Structures

ProfileObject Object


ProfileService.BindAs

Use this method to set the credentials used to access ProfileObject objects in the underlying Profiles store.

Definition

Sub BindAs (
sUserName As String,
sPassword As String
)

Parameters

sUserName

[in] A String that contains the user name for accessing ProfileObject objects.

sPassword

[in] A String that contains the password for accessing ProfileObject objects.

Return Values

None.

Error Values

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.

Example

' oProfileService is a Commerce ProfileService object

oProfileService.BindAs "JoeUser@microsoft.com", "MyPassword123"
oProfileService.BindAs "DomainName\JoeUser", "MyPassword123"

See Also

ProfileService Object

ProfileService.UnBind


ProfileService.CreateProfile

Use this method to create a ProfileObject object.

Definition

Function CreateProfile(
sValue As Variant,
bstrType As String
) As Object

Parameters

sValue

[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

[in] A String that contains the schema type for the new ProfileObject object.

Return Values

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 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.

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

ProfileService Object

ProfileService.DeleteProfile

ProfileService.GetProfile

ProfileService.GetProfileByKey

ProfileService.Initialize

ProfileObject Object

ProfileObject.Fields


ProfileService.DeleteProfile

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

Sub DeleteProfile(
sValue As Variant,
strType As String
)

Parameters

sValue

[in] A Variant that contains the primary key value.

strType

[in] A String that contains the profile schema type.

Return Values

None.

Error Values

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.

Example

' oProfileService is a Commerce ProfileService object

oProfileService.DeleteProfile("Joeuser@microsoft.com", "UserObject")

See Also

ProfileService Object

ProfileService.CreateProfile

ProfileService.DeleteProfileByKey

ExpressionEval Object

ExpressionStore Object


ProfileService.DeleteProfileByKey

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

Sub DeleteProfileByKey(
strKeyMemberName As String,
sValue As Variant,
strType As String
)

Parameters

strKeyMemberName

[in] A String that contains the key member name.

sValue

[in] A Variant that contains the key value.

strType

[in] A String that contains the profile schema type.

Return Values

None.

Error Values

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.

Example

' oProfileService is a Commerce ProfileService object

oProfileService.DeleteProfileByKey("user_id",_
 "{74A38551-D6D8-FFD0-12BF-0A20C90DC8D1}" "UserObject")

See Also

ProfileService Object

ProfileService.CreateProfile

ProfileService.DeleteProfile

ExpressionEval Object

ExpressionStore Object


ProfileService.Errors

The Errors property is a read-only ADO Errors object that stores the collection of errors encountered in the last Profiles resource operation.

Definition

Property Errors As Object

Parameters

None.

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 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

ProfileObject Object

ProfileService Object


ProfileService.GetProfile

Use this method to retrieve the ProfileObject object corresponding to the specified primary key value and schema type.

Definition

Function GetProfile(
sValue as Variant,
bstrType As String
Optional bReturnError As Boolean
) As Object

Parameters

sValue

[in] A Variant that contains the primary key value.

bstrType

[in] A String that contains the profile schema type.

bReturnError

[in] An optional Boolean. The default value is True (-1).

Return Values

If this method completes successfully, it returns a ProfileObject object corresponding to the specified primary key value and schema name.

Error Values

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.

Example

' oProfileService is a Commerce ProfileService object
' oProfileObject is a Commerce ProfileObject object

oProfileObject = oProfileService.GetProfile("Joeuser@microsoft.com", _
 "UserObject")

See Also

ProfileService Object

ProfileService.GetProfileByKey

ProfileService.Initialize

ProfileObject Object

ProfileObject.Fields


ProfileService.GetProfileByKey

Use this method to retrieve a ProfileObject object that corresponds to a specified key member name/value pair and schema type.

Definition

Function GetProfileByKey(
bstrKeyMemberName As String,
sValue As Variant,
bstrType As String
Optional bReturnError As Boolean
) As Object

Parameters

bstrKeyMemberName

[in] A String that contains the key member name.

sValue

[in] A Variant that contains the key value.

bstrType

[in] A String that contains the schema type.

bReturnError

[in] An optional Boolean. The default value is True (-1).

Return Values

If this method completes successfully, it returns a ProfileObject object corresponding to the specified key member/value pair and schema name.

Error Values

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.

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

ProfileService Object

ProfileService.GetProfile

ProfileService.Initialize

ProfileObject Object

ProfileObject.Fields


ProfileService.GetProfileDefXML

Use this method to retrieve the XML definition of the named profile schema type.

Definition

Function GetProfileDefXML(
bstrProfileName As String
bNamesOnly As Boolean,
) As String

Parameters

bstrProfileName

[in] A String that contains the name of the profile schema type.

bNamesOnly

[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.

Return Values

If this method completes successfully, it returns a String that contains the XML description.

Error Values

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.

Example

' sXML is a String
' oProfileService is a Commerce ProfileService object

sXML = oProfileService.GetProfileDefXML("UserObject", False)

See Also

ProfileService Object

Profile XML Structures


ProfileService.Initialize

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

Sub Initialize(
sConfigStore As String,
Optional sCatalog As String
)

Parameters

sConfigStore

[in] A String that contains the connection string to the Profiles store.

sCatalog

[in, optional] A String that identifies the catalog. If this is specified it must be "Profile Definitions".

Return Values

None.

Error Values

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 [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. Once 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, 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".

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

ProfileService Object


ProfileService.Unbind

Use this method to clear the credentials that are used to access ProfileObject objects in the underlying Profiles store.

Definition

Sub Unbind (
)

Parameters

None.

Return Values

None.

Error Values

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

ProfileService Object

ProfileService.BindAs


ReportRenderer Object

Use this object to render (display) or export a static report synchronously.

ProgID: | Commerce.ReportRenderer (Externally creatable)
COM Class Name: | ReportRenderer
Type Library Name: | Microsoft Commerce 2000 Report Renderer Type Library
DLL Name: | ReportRenderer.dll
Threading Model: | Both

The methods of the ReportRenderer object are shown in the following table.

Method | Description
Init | Initializes the object.

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 or exported from the Reports module.

Exporting a static report writes a result table to a target database. The ListManager object imports from this table using the CreateFromDWCalc method of the ListManager object.

The ReportRender object runs synchronously. Use the AsyncRpt object to run static reports asynchronously.

See Also

Analysis/Reporting Schema

Analysis/Reporting XML Structures

Creating Custom Reports

AsyncRpt Object

ListManager Object

Running Reports


ReportRenderer.Init

Use this method to initialize the ReportRenderer object and to render or export a static report synchronously.

Definition

Function Init(
sParamString As String
) As Boolean

Parameters

sParamString

A String used to supply parameters to the ReportRenderer object.

Return Values

If this method completes successfully, it returns a Boolean that indicates whether the initialization was successful. True (1) indicates success.

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 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 "DRIVER={SQL Server};SERVER=Server Name;DATABASE=Database Name;UID=username;PWD=password;".

  • OLAP connection string - where the underlying OLAP data is stored. A valid connection string is of the type "DATA SOURCE=Server Name;INITIAL CATALOG=Database Name;".

  • Destination connection string - where the table that will contain the exported report data is located. A valid connection string is of the type "SERVER=Server Name;DATABASE=Database Name;UID=username;PWD=password;".

  • 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.

Example

' oReportRenderer is a Commerce ReportRenderer object

' Display a static SQL report

   oReportRenderer.Init("7|DRIVER={SQL Server};" _
    & "SERVER=MyServer;DATABASE=Retail_dw;UID=admin;" _
    & "PWD=*****;||||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;User ID=sa;Password=*****;" _
    & "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;UID=admin;PWD=*****;|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;UID=sysadmin;PWD=123;|data source=MyServer;" _
    & Initial Catalog=Retail_dw;|Provider=SQLOLEDB;" _
    & "Persist Security Info=False;User ID=sa;Password=*****;" _
    & "Initial Catalog=Retail_commerce;Data Source=MyServer;|" _
    & "OutPutTableName|10/01/2000 3:45:56 pm")

See Also

ReportRenderer Object

Analysis/Reporting Schema

Creating Custom Reports


RowCollection Object

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 2000 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both

The properties of the RowCollection object are shown in the following table.

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.

The methods of the RowCollection object are shown in the following table.

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.

Remarks

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


RowCollection._NewEnum

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

Property _NewEnum() As IUnknown

Parameters

None.

Error Values

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

RowCollection Object


RowCollection.Count

The Count property is a read-only Long that contains the number of rows in the collection.

Definition

Property Count As Long

Parameters

None.

Error Values

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

RowCollection Object


RowCollection.EOF

The EOF property is a read-only Boolean that returns True when the end of the collection has been reached.

Definition

Property EOF() As Boolean

Parameters

None.

Error Values

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

RowCollection Object


RowCollection.Fields

The Fields property is a read-only Fields collection object that contains the Field objects for the current row.

Definition

Property Fields() As Fields

Parameters

None.

Error Values

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

RowCollection Object


RowCollection.MoveFirst

Use this method to set the current row to be the first row in a RowCollection object.

Definition

Sub MoveFirst()

Parameters

None.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Example

'myRowCollection is a RowCollection object.
myRowCollection.MoveFirst

See Also

RowCollection Object


RowCollection.MoveNext

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

Sub MoveNext()

Parameters

None.

Return Values

None.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Example

'myRowCollection is a RowCollection object.
myRowCollection.MoveNext

See Also

RowCollection Object


RowCollection.RowNum

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

Property RowNum() As Long

Parameters

None.

Error Values

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

RowCollection Object


Shipping Object

Use this object to create shipping cost preview information.

ProgID: | Commerce.Shipping (Externally creatable)
COM Class Name: | Shipping
Type Library Name: | Microsoft Commerce 2000 Shipping Components Type Library
DLL Name: | shipmgr.dll
Threading Model: | Apartment

The single method of the Shipping object is shown in the following table.

Method | Description
PreviewShipments | Divides an order into shipments and produces shipping cost previews for each shipment using each method.


Shipping.PreviewShipments

Use this method to create shipment preview information.

Definition

Function PreviewShipments(
orderform As Variant,
context As Variant,
ShipmentDistinguishers As Variant
) As Variant

Parameters

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.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. 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 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.

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

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager Object

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.

ProgID: | Commerce.ShippingMethodManager (Externally creatable)
COM Class Name: | ShippingMethodManager
Type Library Name: | Microsoft Commerce 2000 Shipping Components Type Library
DLL Name: | shipmgr.dll
Threading Model: | Apartment

The methods of the ShippingMethodManager object are shown in the following table.

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 Commerce Server 2000 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 the Multiple Shipment Architecture Overview.


ShippingMethodManager.CreateMethodInstance

Use this method to create a new shipping method.

Definition

Function CreateMethodInstance(
bOnDisk As Variant
) As Variant

Parameters

bOnDisk

A Variant containing a Boolean indicating whether or not to create the shipping method on disk. This parameter is usually set to True.

Return Values

If this method completes successfully, it returns a Variant 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.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.DeleteMethodInstance

Use this method to delete the current shipping method instance.

Definition

Sub DeleteMethodInstance()

Parameters

None.

Return Values

None.

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 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 LoadMethodInstance or CreateMethodInstance to load a shipping method into the ShippingMethodManager object before calling this method.

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

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.GetComponentConfig

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

Function GetComponentConfig() As Variant

Parameters

None.

Return Values

If this method completes successfully, it returns a Variant that contains the Configuration dictionary for the current shipping method.

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 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 LoadMethodInstance or CreateMethodInstance to load a shipping method into the ShippingMethodManager object before calling this method.

Example

' oSMM is an initialized, loaded Commerce.ShippingMethodManager object

Set dConfig = oSMM.GetComponentConfig

See Also

Splitter

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.GetInstalledMethodList

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

Function GetInstalledMethodList(
Filter As Variant,
OrderBy As Variant,
columns As Variant
) As Variant

Parameters

Filter

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 GetInstalledMethodList to only return 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 arguement is "shipping_method_name", which will cause the results to be sorted by shipping method name.

columns

An 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

If this method completes successfully, it returns an ADO Recordset object that contains the results of the query.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.GetMethodInfo

Use this method to retrieve information about the database attributes of one or more columns in the ShippingConfig table.

Definition

Function GetMethodInfo(
columns As Variant
) As Variant

Parameters

columns

An Array of strings containing names of the columns. Specify an empty array to return all columns.

Return Values

If this method completes successfully, it returns an ADO Recordset object that contains the information about the wanted columns.

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 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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.Initialize

Use this method to initialize a ShippingMethodManager object and connect it to a database.

Definition

Sub Initialize(
connection_string As Variant
)

Parameters

connection_string

A String containing the connection string.

Return Values

None.

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 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

' oSMM is a Commerce.ShippingMethodManager object
' sConnectionString is a string containing the connection
' string

oSMM.Initialize(sConnectionString)

See Also

Splitter

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.LoadMethodInstance

Use this method to load an instance of a given shipping method.

Definition

Sub LoadMethodInstance(
methodid As Variant
)

Parameters

methodid

A String containing the method ID of the shipping method.

Return Values

None.

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 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.

Example

' oSMM is an initialized Commerce.ShippingMethodManager object
' sMethodId is a string containing the method id

oSMM.LoadMethodInstance(sMethodId)

See Also

Splitter

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.SaveMethodConfig

Use this method to save the current shipping method information set with the SetMethodConfig method.

Definition

Sub SaveMethodConfig()

Parameters

None.

Return Values

None.

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 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 LoadMethodInstance or CreateMethodInstance to load a shipping method into the ShippingMethodManager object before calling this method.

Example

' oSMM is a Commerce.ShippingMethodManager object

oSMM.SaveMethodConfig

See Also

Splitter

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.SetCachableComponentConfig

Use this method to set the configuration data for the pipeline component, and other component information.

Definition

Sub SetCachableComponentConfig(
progid As Variant,
configdict As Variant,
action As Variant,
actionfriendlyname As Variant
)

Parameters

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.

Return Values

None.

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 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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.SetMethodConfig

Use this method to set properties such as name or description, on the current shipping method.

Definition

Sub SetMethodConfig(
ParametersAndValues As Variant
)

Parameters

ParametersAndValues

An Array containing name and value pairs in successive elements.

Return Values

None.

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 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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


SimpleFindResultInfo Object

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 2000 OrderGroup Type Library
DLL Name: | requisition.dll
Threading Model: | Apartment

The properties of the SimpleFindResultInfo object are shown in the following table.

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

Business Process Objects

SimpleFindSearchInfo Object

OrderGroupManager Object

OrderGroup Object

OrderForm Object


SimpleFindResultInfo.Columns

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

Property Columns As Variant

Parameters

None.

Error Values

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

Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

SimpleFindResultInfo Object


SimpleFindResultInfo.JoinLineItemInfo

The JoinLineItemInfo property is a read/write Boolean that indicates whether to join the OrderFormLineItems table with the results.

Definition

Property JoinLineItemInfo As Boolean

Parameters

None.

Error Values

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

Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

SimpleFindResultInfo Object


SimpleFindResultInfo.JoinOrderFormInfo

The JoinOrderFormInfo property is a read/write Boolean that indicates whether the OrderFormHeader table is joined in the results.

Definition

Property JoinOrderFormInfo As Boolean

Parameters

None.

Error Values

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

Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

SimpleFindResultInfo Object


SimpleFindResultInfo.OrderGroupSortColumn

The OrderGroupSortColumn property is a read/write Variant that contains the column name on which to sort.

Definition

Property OrderGroupSortColumn As Variant

Parameters

None.

Error Values

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

Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

SimpleFindResultInfo Object


SimpleFindResultInfo.PageNumber

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

Property PageNumber As Long

Parameters

None.

Error Values

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

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 Object.

See Also

SimpleFindResultInfo Object


SimpleFindResultInfo.PageSize

The PageSize property is a read/write Long that contains the page size. This property setting must be coordinated with the PageNumber property.

Definition

Property PageSize As Long

Parameters

None.

Error Values

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

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 Object.

See Also

SimpleFindResultInfo Object


SimpleFindResultInfo.SortDirection

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

Property SortDirection As Variant

Parameters

None.

Error Values

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

Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

SimpleFindResultInfo Object


SimpleFindSearchInfo Object

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 2000 OrderGroup Type Library
DLL Name: | requisition.dll
Threading Model: | Apartment

The properties of the SimpleFindSearchInfo object are shown in the following table.

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

Business Process Objects

SimpleFindResultInfo Object

OrderGroupManager Object

OrderGroup Object

OrderForm Object


SimpleFindSearchInfo.description

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

Property description As Variant

Parameters

None.

Error Values

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

SimpleFindSearchInfo Object

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.order_number

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

Property order_number As Variant

Parameters

None.

Error Values

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

SimpleFindSearchInfo Object

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.ordergroup_id

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

Property ordergroup_id As Variant

Parameters

None.

Error Values

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

SimpleFindSearchInfo Object

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.po_number

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

Property po_number As Variant

Parameters

None.

Error Values

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

SimpleFindSearchInfo Object

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.product_id

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

Property product_id As Variant

Parameters

None.

Error Values

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

SimpleFindSearchInfo Object

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.SearchDateTimeColumn

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

Property SearchDateTimeColumn As Variant

Parameters

None.

Error Values

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

SimpleFindSearchInfo Object

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.SearchDateTimeEnd

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

Property SearchDateTimeEnd As Variant

Parameters

None.

Error Values

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

SimpleFindSearchInfo Object

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.SearchDateTimeStart

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

Property SearchDateTimeStart As Variant

Parameters

None.

Error Values

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

SimpleFindSearchInfo Object

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.StatusFilter

The StatusFilter property is a read/write Variant that contains the OrderGroup status.

Definition

Property StatusFilter As Long

Parameters

None.

Error Values

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

SimpleFindSearchInfo Object

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.user_firstname

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

Property user_firstname As Variant

Parameters

None.

Error Values

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

SimpleFindSearchInfo Object

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.user_id

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

Property user_id As Variant

Parameters

None.

Error Values

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

SimpleFindSearchInfo Object

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.user_lastname

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

Property user_lastname As Variant

Parameters

None.

Error Values

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

SimpleFindSearchInfo Object

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.user_org_id

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

Property user_org_id As Variant

Parameters

None.

Error Values

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

SimpleFindSearchInfo Object

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.user_org_name

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

Property user_org_name As Variant

Parameters

None.

Error Values

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

SimpleFindSearchInfo Object

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleList Object

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 2000 Core Components Type Library
DLL Name: | MscsCore.dll
Threading Model: | Both

The properties of the SimpleList object are shown in the following table.

Property | Type | Description
Count | Long | Stores the number of elements in the SimpleList object. This property is read-only.
Item | Variant | Stores an element of the SimpleList object. This property is read/write.

The methods of the SimpleList object are shown in the following table.

Method | Description
Add | Adds the specified item to a SimpleList object.
Delete | Deletes a specified item from the SimpleList object.

See Also

General Purpose Objects

Dictionary Object


SimpleList.Add

Use this method to add the specified item to this SimpleList object.

Definition

Sub Add(
pVar As Variant
)

Parameters

pVar

A Variant to add to the SimpleList.

Return Values

None.

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 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

' 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

SimpleList Object

SimpleList.Delete


SimpleList.Count

Use this property to return the number of elements in the SimpleList object.

Definition

Property Count As Long

Parameters

None.

Error Values

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 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

SimpleList Object


SimpleList.Delete

Use this method to delete the specified item from the SimpleList object.

Definition

Sub Delete(
Index As Long
)

Parameters

Index

A Long that contains the index value of the item to delete.

Return Values

None.

Error Values

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.

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

' The following example deletes the SimpleList item at index 1008
' oSimpleList is a Commerce SimpleList object
oSimpleList.Delete(1008)

See Also

SimpleList Object

SimpleList.Add

SimpleList.Count


SimpleList.Item

The Item property is a read/write Variant that contains an element 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

Property Item(
Index As Long
) As Variant

Parameters

Index

A Long that contains the index of the item.

Error Values

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.

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.

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.

See Also

SimpleList Object


SiteConfig Object

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 2000 Configuration Type Library
DLL Name: | MSCSCfg.dll
Threading Model: | Apartment

The single property of the SiteConfig object is shown in the following table.

Property | Type | Description
Fields | Fields | Returns configuration fields, some of which hold configuration settings of resources. This property is read-write.

The methods of the SiteConfig object are shown in the following table.

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 2000 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 2000 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.

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.

See Also

Configuration Objects

Integrating Cutom Resources

GlobalConfigObject

SiteConfigReadOnly Object


SiteConfig.AddRefToGroupComponent

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

Sub AddRefToGroupComponent(
bstrSiteResourceName As String,
bstrGroupResourceName As String
)

Parameters

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.

Return Values

None.

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 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.

Example

' sSiteResName and sGlob are strings
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.AddRefToGroupComponent(sSiteResName,sGlob)

See Also

SiteConfig Object


SiteConfig.CreateComponentConfig

Use this method to create an instance of a configuration schema class, and load it into the site recordset.

Definition

Sub CreateComponentConfig(
bstrConfigComponentName As String,
bstrConfigSchemaClass As String
)

Parameters

bstrConfigComponentName

A String that contains the new name for the resource configuration object instance.

bstrConfigSchemaClass

A String that contains the resource configuration schema class name.

Return Values

None.

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 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_UPMDtsTask | Profiling System DTS Task Information

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' sMyCatalog is a string
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.CreateComponentConfig(sMyCatalog, MSCS_Catalog)

See Also

SiteConfig Object

SiteConfig.DeleteComponentConfig


SiteConfig.DeleteComponentConfig

Use this method to delete the Administration database information for the specified resource.

Sub DeleteComponentConfig(
bstrConfigComponentName As String
)

Parameters

bstrConfigComponentName

A String that contains the name of the resource configuration object to be deleted.

Return Values

None.

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 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.

Example

' sMyResource is the name of an existing resource
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.DeleteComponentConfig (sMyResource)

See Also

SiteConfig Object

SiteConfig.CreateComponentConfig


SiteConfig.DeleteSQLScript

Use this method to delete the specified SQL script file from the Administration database.

Definition

Sub DeleteSQLScript(
sResource As String,
sScriptName As String
)

Parameters

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.

Return Values

None.

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 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

SiteConfig Object


SiteConfig.ExportResource

Use this method to write the specified resource, resource properties, and attributes to the specified file.

Definition

Sub ExportResource(
bstrResourceName As String,
bstrFileName As String
)

Parameters

bstrResourceName

A String that contains the resource name.

bstrFileName

A String that contains the destination file name for the resource export.

Return Values

None.

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 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.

Example

' sMyResource and sMyFileName.txt are strings
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.ExportResource(sMyResource, sMyFileName.txt)

See Also

SiteConfig Object


SiteConfig.Fields

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

Property Fields As Object

Parameters

None.

Error Values

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

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

SiteConfig Object


SiteConfig.GetAppsInSite

Use this method to get a list of Commerce Server 2000 applications for the specified site.

Definition

Function GetAppsInSite(
strSiteName As String
) As Variant

Parameters

strSiteName

A String that contains the name of the site for which you want the list of running Commerce Server 2000 applications.

Return Values

If this method completes successfully, it returns a Variant that contains the list of Commerce Server 2000 applications.

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 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.

Example

' sMySiteName is a string
' vVariant is a Variant
' oSiteConfig is a Commerce SiteConfig object
vVariant = oSiteConfig.GetAppsInSite(sMySiteName)

See Also

SiteConfig Object


SiteConfig.GetIfCollection

Use this method to convert values read from the Fields property into the appropriate object such as a SimpleList object or Variant Array.

Definition

Function GetIfCollection(
strList As Variant
) As Variant

Parameters

strList

A Variant that contains the encoded string to be converted.

Return Values

If this method completes successfully, it returns a Variant containing the converted data in the appropriate data type.

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 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 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.

Example

' vVariant is a Variant; vEncodedString is a Variant
' oSiteConfig is a Commerce SiteConfig object
vVariant = oSiteConfig.GetIfCollection(vEncodedString)

See Also

SiteConfig Object


SiteConfig.GetResourcePropAttrib

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

Function GetResourcePropAttrib(
strResourceName As String,
strPropName As String
) As Object

Parameters

strResourceName

A String that contains the resource name.

strPropName

A String that contains the resource property name.

Return Values

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

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM 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.

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

SiteConfig Object


SiteConfig.GetSQLScript

Use this method to get the specified SQL script file from the Administration database.

Definition

Function GetSQLScript(
sResource As String,
sScriptName As String
) As String

Parameters

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

If this method completes successfully, it returns a String that contains the SQL script file contents.

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 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.

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

SiteConfig Object


SiteConfig.ImportResource

Use this method to read the specified resource, resource properties, and attributes from the specified file, and write them to the Commerce Server 2000 database.

Definition

Sub ImportResource(
bstrFileName As String
)

Parameters

bstrFileName

A String that contains the file name.

Return Values

None.

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 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.

Example

' sMyFileName is a string
sMyFileName = "C:\ExportedFile.txt"
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.ImportResource(sMyFileName)

See Also

SiteConfig Object


SiteConfig.Initialize

Use this method to load the site configuration from the Administration database.

Definition

Sub Initialize(
bstrSiteName As String
)

Parameters

bstrSiteName

A String that contains the site name.

Return Values

None.

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 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' sMySiteName is a string
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.Initialize(sMySiteName)

See Also

SiteConfig Object


SiteConfig.MakeArrayFromSimpleList

Use this method to convert the specified SimpleList object into an Array.

Definition

Function MakeArrayFromSimpleList(
list As Object
) As Variant

Parameters

list

An object reference to the SimpleList object that you want to convert into an Array.

Return Values

If this method completes successfully, it returns a Variant containing the converted Array.

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 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

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.

Example

' vMyVariant is a Variant
' varMySimpleList is a SimpleList object
' oSiteConfig is a Commerce SiteConfig object
vMyVariant = oSiteConfig.MakeArrayFromSimpleList(varMySimpleList)

See Also

SiteConfig Object


SiteConfig.MakeArrayFromString

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

Function MakeArrayFromString(
strList As Variant
) As Variant

Parameters

strList

A Variant that contains the encoded string.

Return Values

If this method completes successfully, it returns a Variant that contains the converted Array or unconverted String.

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 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

SiteConfig Object


SiteConfig.MakeSimpleListFromArray

Use this method to convert an Array into a SimpleList object.

Definition

Function MakeSimpleListFromArray(
varArray As Variant
) As Object

Parameters

varArray

A Variant that contains the SimpleList object to convert.

Return Values

If this method completes successfully, it returns an object reference to the converted SimpleList object.

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 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

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.

Example

' vMyArray is a Variant
' varMySimpleList is a SimpleList object
' oSiteConfig is a Commerce SiteConfig object
varMySimpleList = oSiteConfig.MakeSimpleListFromArray(vMyArray)

See Also

SiteConfig Object


SiteConfig.MakeStringFromArray

Use this method to convert an Array object into an encoded string that can be written to the Fields property.

Definition

Function MakeStringFromArray(
varArray As Variant
) As Variant

Parameters

varArray

A Variant that contains the Array to encode.

Return Values

If this method completes successfully, it returns Variant that contains the encoded string.

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 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' vEncoded is a Variant
' vArray is a Variant
' oSiteConfig is a Commerce SiteConfig object
vEncoded = oSiteConfig.MakeStringFromArray(vArray)

See Also

SiteConfig Object


SiteConfig.MakeStringFromSimpleList

Use this method to convert a SimpleList object into an encoded string that can be written to the Fields property.

Definition

Function MakeStringFromSimpleList(
slist As Object
) As String

Parameters

slist

An object reference to the SimpleList object that you wish to convert into an encoded string.

Return Values

None.

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 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

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.

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

SiteConfig Object


SiteConfig.PutSQLScript

Use this method to put the specified SQL script file into the Administration database.

Definition

Sub PutSQLScript(
sResource As String,
sScriptName As String,
sScriptContents As String
)

Parameters

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.

Return Values

None.

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 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.

Example

' sMySQLFileName.sql, sMyRes and sMyContents are strings
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.PutSQLScript(sMyRes, "sMySQLFileName.sql" ,sMyContents )

See Also

SiteConfig Object


SiteConfig.SaveConfig

Use this method to save any site configuration settings that have been changed or updated.

Definition

Sub SaveConfig()

Parameters

None.

Return Values

None.

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 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 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

SiteConfig Object


SiteConfigReadOnly Object

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 2000 Configuration Type Library
DLL Name: | MSCSCfg.dll
Threading Model: | Apartment

The single property of the SiteConfigReadOnly object is shown in the following table.

Property | Type | Description
Fields | Fields | Returns configuration settings of the site and the site resources. This property is read-only.

The methods of the SiteConfigReadOnly object are shown in the following table.

Method | Description
GetAppsInSite | Gets a list of Commerce Server 2000 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.

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

GlobalConfigObject

SiteConfig Object


SiteConfigReadOnly.Fields

The Fields property is a read-only Fields object. The Fields object contents hold the configuration settings of the site and its resources.

Definition

Property Fields As Object

Parameters

None.

Error Values

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

SiteConfigReadOnly Object

SiteConfigReadOnly.Initialize


SiteConfigReadOnly.GetAppsInSite

Use this method to get a list of Commerce Server 2000 applications for the specified site.

Definition

Function GetAppsInSite(
strSiteName As String
) As Variant

Parameters

strSiteName

A String that contains the name of the site for which you want the list of running Commerce Server 2000 applications.

Return Values

If this method completes successfully, it returns Variant that contains the list of Commerce Server 2000 applications.

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 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.

Example

' sMySiteName is a String
' vVariant is a Variant
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
vVariant = oSiteConfigReadOnly.GetAppsInSite(sMySiteName)

See Also

SiteConfigReadOnly Object


SiteConfigReadOnly.GetIfCollection

Use this method to convert values read from the Fields property into the appropriate object such as a SimpleList object or Variant Array.

Definition

Function GetIfCollection(
strList As Variant
) As Variant

Parameters

strList

A Variant that contains the encoded string to be converted.

Return Values

If this method completes successfully, it returns a Variant containing the converted data in the appropriate data type.

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 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 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.

Example

' vVariant is a Variant; vEncodedString is a Variant
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
vVariant = oSiteConfigReadOnly.GetIfCollection(vEncodedString)

See Also

SiteConfigReadOnly Object


SiteConfigReadOnly.Initialize

Use this method to load the site configuration from the Administration database.

Definition

Sub Initialize(
bstrSiteName As String
)

Parameters

bstrSiteName

A String that contains the site name.

Return Values

None.

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 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 object can be used.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' sMySiteName is a string
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
oSiteConfigReadOnly.Initialize(sMySiteName)

See Also

SiteConfigReadOnly Object


SiteConfigReadOnly.MakeArrayFromSimpleList

Use this method to convert the specified SimpleList object into an Array.

Definition

Function MakeArrayFromSimpleList(
list As Object
) As Variant

Parameters

list

The object reference to the SimpleList object that you wish to convert into an Array.

Return Values

If this method completes successfully, it returns a Variant containing the converted Array.

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 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

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.

Example

' vMyVariant is a Variant
' varMySimpleList is a SimpleList object
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
vMyVariant = oSiteConfigReadOnly.MakeArrayFromSimpleList(varMySimpleList)

See Also

SiteConfigReadOnly Object


SiteConfigReadOnly.MakeArrayFromString

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

Function MakeArrayFromString(
strList As Variant
) As Variant

Parameters

strList

A Variant that contains the encoded string.

Return Values

If this method completes successfully, it returns a Variant that contains the converted Array or unconverted String.

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 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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

SiteConfigReadOnly Object


SiteConfigReadOnly.MakeSimpleListFromArray

Use this method to convert an Array into a SimpleList object.

Definition

Function MakeSimpleListFromArray(
varArray As Variant
) As Object

Parameters

varArray

A Variant that contains the SimpleList object to convert.

Return Values

If this method completes successfully, it returns an object reference to the converted SimpleList object.

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 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

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.

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

SiteConfigReadOnly Object


SiteConfigReadOnly.MakeStringFromArray

Use this method to convert an Array object into an encoded string, which can be written to the Fields property.

Definition

Function MakeStringFromArray(
varArray As Variant
) As Variant

Parameters

varArray

A Variant that contains the Array to encode.

Return Values

If this method completes successfully, it returns Variant that contains the encoded string.

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 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

' vEncoded is a Variant
' vArray is a Variant
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
vEncoded = oSiteConfigReadOnly.MakeStringFromArray(vArray)

See Also

SiteConfigReadOnly Object


SiteConfigReadOnly.MakeStringFromSimpleList

Use this method to convert a SimpleList object into an encoded string, which can be written to the Fields property.

Definition

Function MakeStringFromSimpleList(
slist As Object
) As String

Parameters

slist

An object reference to the SimpleList object that you wish to convert into an encoded string.

Return Values

None.

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 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

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.

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

SiteConfigReadOnly Object


StandardSManager Object

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

The single property of the StandardSManager object is shown in the following table.

Property | Type | Description
Mode | Integer | Determines how the GetShopperID and PutShopperID methods of the Page object retrieve and store shopper IDs.

The methods of the StandardSManager object are shown in the following table.

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.

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

AuthManager Object


StandardSManager.CreateShopperId

Use this method to create a unique shopper ID for the current user.

Definition

Function CreateShopperId() As String

Parameters

None.

Return Values

If this method completes successfully, it returns a String containing the new shopper ID.

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 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

StandardSManager Object

StandardSManager.InitManager

StandardSManager.GetShopperId

StandardSManager.PutShopperId


StandardSManager.GetShopperId

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

Function GetShopperId(
pdispContext As Object
) As Variant

Parameters

pdispContext

An object reference that holds the ASP scripting context.

Return Values

If this method completes successfully, it returns a Variant that specifies the shopper ID.

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 using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

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

StandardSManager Object

StandardSManager.Mode

StandardSManager.PutShopperId


StandardSManager.InitManager

Use this method to initialize the StandardSManager object to the specified site name and mode.

Definition

Sub InitManager(
bstrStoreKey As String,
bstrMode As String
)

Parameters

bstrStoreKey

A String that contains the name of the site.

bstrMode

A String that indicates how user information is to be stored. For more information about initialization modes, see the Remarks section.

Return Values

None.

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 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.

Example

' oStdSManager is a Commerce.StandardSManager object
oStdSManager.InitManager("mySiteName", "Cookie")

See Also

StandardSManager Object

StandardSManager.Mode

StandardSManager.PutShopperId


StandardSManager.Mode

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

Property Mode As Integer

Parameters

None.

Error Values

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

StandardSManager Object

Page Object

StandardSManager.InitManager


StandardSManager.PutShopperId

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

Sub PutShopperId(
pdispContext As Object,
bstrShopperID As String
)

Parameters

pdispContext

An object reference that holds the ASP scripting context.

bstrShopperID

A String that contains the shopper ID to be stored.

Return Values

None.

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 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

StandardSManager Object

StandardSManager.Mode

StandardSManager.GetShopperId


C++ Invocation

This section describes the Component Object Model (COM) objects supplied with Microsoft Commerce Server 2000 and how to invoke their properties and methods from C++. The following table lists each object and provides a brief description of its purpose.

Object | Description
AdminEventLog | Writes error, informational, warning, and success messages to the event log.
AdminFiles | Provides read-only access to server-side binary and text files.
AdminSite | Provides read/write access to site configuration properties and allows site administration. This object is supplied for backward compatibility purposes only.
AdminWebServer | Allows enumeration of Web sites and their properties.
AppConfig | Allows retrieval of country, region codes, and names from the site configuration store.
AppFrameWork | Provides formatting and validation methods that simplify forms processing in Active Server Pages (ASP).
AsyncRpt | Provides asynchronous rendering and exporting of static reports.
Auction | Provides methods for supporting auctions.
AuthManager | Provides a secure, standardized, and extensible way to manage authentication of users.
BizDeskSecurity | Allows specific Commerce Server Business Desk modules to be hidden from particular users.
CacheManager | Provides generic caching services.
CatalogManager | Allows management of catalogs across the entire Product Catalog System.
CatalogSets | Allows filtering of multiple custom catalogs for different users and organizations.
CatalogToVendorAssociation | Allows a catalog to be associated with particular vendor.
Category | Allows management of a product hierarchy within a particular catalog.
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.
ContentSelector | Allows specification and retrieval of page content.
DataFunctions | Provides methods to perform locale-based data type handling and value range checking.
DBStorage | Provides methods for mapping Dictionary and SimpleList objects to and from a database, primarily for the storage of receipt and order information.
Dictionary | Supports the creation, storage, and retrieval of name/value pairs in memory.
DictionaryXMLTransforms | Transforms data in a Dictionary object into Extensible Markup Language (XML), and XML data into a Dictionary object.
EuroDisplay | Converts and formats currency amounts for use where multiple currencies must be displayed.
ExpressionEval | Allows selection and evaluation of one or more expressions against a set of profiles.
ExpressionStore | Provides methods to create, save, modify, and retrieve expressions.
ExprEvalContext | Stores a specific evaluation context (set of profiles) that can be used for multiple expression evaluation operations.
ExprFltrQueryBldr | Translates an expression in XML form into a SQL filter query string.
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 | Provides methods for the configuration management of global resources.
ListManager | Provides methods to create, destroy, manage, and manipulate lists.
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 | Stores text strings in multiple languages. One usage involves the Order Processing pipeline (OPP) components describing error conditions generated during order form processing.
MicroPipe | Runs a single pipeline component from an ASP page without using a pipeline configuration file (.pcf).
MtsPipeline | Executes a non-transacted Microsoft Commerce Server 2000 pipeline.
MtsTxPipeline | Executes a transacted Microsoft Commerce Server 2000 pipeline.
OrderForm | Provides in-memory storage of user and purchase information.
OrderGroup | Allows management of complex orders, such as those containing items from different suppliers, and multiple shipments.
OrderGroupManager | Provides methods to manage OrderGroup and OrderForm objects.
OrderPipeline | Runs a Microsoft Commerce Server 2000 pipeline, and is particularly useful in the Content Selection Framework.
Page | Provides formatting and validation methods that simplify forms processing in ASP pages. This object is supplied for backward compatibility purposes only.
PooledPipeline | Executes a non-transacted Microsoft Commerce Server 2000 pipeline that uses COM+ object pooling for better performance.
PooledTxPipeline | Executes a transacted Microsoft Commerce Server 2000 pipeline that uses COM+ object pooling for better performance.
PredictorClient | Provides methods for downloading prediction models, setting prediction context, and performing predictions.
PredictorServiceAdmin | Allows retrieval of prediction models and prediction model configurations.
PredictorServiceSiteAdmin | Allows management of prediction models and prediction model configurations.
PredModelBuilder | Provides properties and methods to control multiple build threads of prediction models.
Product | Allows manipulation of the relationships between a product variant and a product category.
ProductCatalog | Allows creation, deletion, and modification of catalog data.
ProfileObject | 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.
ReportRenderer | Provides synchronous rendering and exporting of static reports.
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 | Creates shipping cost preview information.
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.
SimpleList | Allows creation of an array of Variants that supports enumeration.
SiteConfig | Provides for configuration management of site resources.
SiteConfigReadOnly | Provides methods to read global and site configuration values from the Administration database.
StandardSManager | Facilitates the run time creation and retrieval of user IDs. This object is supplied for backward compatibility purposes only.


AdminEventLog Object

Use this object to write error, informational, and warning messages to the event log.

ProgID: | Commerce.AdminEventLog (Externally creatable)
COM Class Name: | AdminEventLog
COM Interface Name: | IAdminEventLog
Interface ID Constant: | None
Header File: | None
Type Library Name: | Commerce Admin 1.0 Type Library
DLL Name: | MSCSadmin.dll
Threading Model: | Both

In C++, use the IAdminEventLog interface to access the methods of the AdminEventLog object.

The methods of the AdminEventLog object are shown in the following table.

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

Use this method to initialize the object.

Definition

HRESULT IAdminEventLog::Initialize(
BSTR bstrServer
);

Parameters

bstrServer

[in] A BSTR that contains the server name.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AdminEventLog Object


IAdminEventLog::WriteErrorEvent

Use this method to write an error event to the Commerce Server event log.

Definition

HRESULT IAdminEventLog::WriteErrorEvent(
BSTR bstrSiteName,
BSTR bstrMessage
);

Parameters

bstSiteName

[in] A BSTR that contains the site name.

bstrMessage

[in] A BSTR that contains the error event message string.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AdminEventLog Object

IAdminEventLog::WriteInformationalEvent

IAdminEventLog::WriteWarningEvent


IAdminEventLog::WriteInformationalEvent

Use this method to write an informational event to the Commerce Server event log.

Definition

HRESULT IAdminEventLog::WriteInformationalEvent(
BSTR bstrSiteName,
BSTR bstrMessage
);

Parameters

bstSiteName

[in] A BSTR that contains the site name.

bstrMessage

[in] A BSTR that contains the informational event message string.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AdminEventLog Object

IAdminEventLog::WriteErrorEvent

IAdminEventLog::WriteWarningEvent


IAdminEventLog::WriteWarningEvent

Use this method to write a warning event to the Commerce Server event log.

Definition

HRESULT IAdminEventLog::WriteWarningEvent(
BSTR bstrSiteName,
BSTR bstrMessage
);

Parameters

bstSiteName

[in] A BSTR that contains the site name.

bstrMessage

[in] A BSTR that contains the warning event message string.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AdminEventLog Object

IAdminEventLog::WriteErrorEvent

IAdminEventLog::WriteInformationalEvent


AdminFiles Object

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
COM Interface Name: | IAdminFiles
Interface ID Constant: | None
Header File: | None
Type Library Name: | Commerce Admin 1.0 Type Library
DLL Name: | MSCSadmin.dll
Threading Model: | Both

In C++, use the IAdminFiles interface to access the methods of the AdminFiles object.

The methods of the AdminFiles object are shown in the following table.

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


IAdminFiles::ReadFromBinaryFile

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

HRESULT IAdminFiles::ReadFromBinaryFile(
BSTR bstrFileName,
VARIANT* prgByte
);

Parameters

bstrFileName

[in] A BSTR that specifies the path and file name to read.

prgByte

[out] The address of a VARIANT used to return the file contents.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

AdminFiles Object

IAdminFiles::ReadFromFile


IAdminFiles::ReadFromFile

Use this method to return the contents of the specified text file. The contents of the file are returned as a text string.

Definition

HRESULT IAdminFiles::ReadFromFile(
BSTR bstrFileName,
BSTR* pbstrOut
);

Parameters

bstrFileName

[in] A BSTR that specifies the path and file name to read.

pbstrOut

[out] The address of a BSTR used to return the file contents.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

AdminFiles Object

IAdminFiles::ReadFromBinaryFile


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.

Important

  • You cannot use this object with Commerce Server 2000 sites. It is included only for backwards compatibility with Site Server 3.0 Commerce Edition.
ProgID: | Commerce.AdminSite (Externally creatable)
COM Class Name: | AdminSite
COM Interface Name: | IAdminSite
Interface ID Constant: | None
Header File: | None
Type Library Name: | Commerce Admin 1.0 Type Library
DLL Name: | MSCSadmin.dll
Threading Model: | Both

In C++, use the IAdminSite interface to access the properties and methods of the AdminSite object.

The properties of the AdminSite object are shown in the following table.

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.

The methods of the AdminSite object are shown in the following table.

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.

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

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

HRESULT IAdminSite::Create(
BSTR bstrInstance,
BSTR bstrVDir,
BSTR bstrDir,
long nAuthorization,
VARIANT_BOOL bIsApplication,
VARIANT_BOOL bIsCommerceSite
);

Parameters

bstrInstance

[in] A numeric value expressed as a BSTR representing a Web site. For the default Web site, use (1).

bstrVDir

[in] A BSTR that contains the Site Server 3.0 Commerce Edition site short name (virtual directory).

bstrDir

[in] A BSTR that specifies the physical directory in which to create the site.

nAuthorization

[in] A long that contains the authorization type.

bIsApplication

[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.

bIsCommerceSite

[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.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

AdminSite Object

IAdminSite::Delete

IAdminSite::Initialize

IAdminSite::IsValidName


IAdminSite::Delete

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

HRESULT IAdminSite::Delete(
);

Parameters

None.

Return Values

This method returns an HRESULT indicating whether or not 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

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

AdminSite Object

IAdminSite::Create


IAdminSite::get_Directory, put_Directory

The Directory property is a read/write string that contains the currently registered Site Server 3.0 Commerce Edition site physical directory.

Definition

Get method:

HRESULT IAdminSite::get_Directory(
BSTR* Directory
);

Put method:

HRESULT IAdminSite::put_Directory(
BSTR Directory
);

Parameters

Directory

[in] When putting the property, a BSTR that contains the name of the directory.
[out] When getting the property, the address of a BSTR used to return the name of the directory.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

The valid characters and length for a Web site name are determined by the restrictions on the file system.

The Directory 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

AdminSite Object

IAdminSite::InitializeFromMDPath


IAdminSite::Initialize

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

HRESULT IAdminSite::Initialize(
BSTR bstrInstance,
BSTR bstrVDir
);

Parameters

bstrInstance

[in] A numeric value, expressed as a BSTR that represents a Web site.

bstrVDir

[in] A BSTR that contains the Site Server 3.0 Commerce Edition site short name (virtual directory).

Return Values

This method returns an HRESULT indicating whether or not 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

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

AdminSite Object

IAdminSite::ReadDefaultProperties

IAdminSite::Create

IAdminSite::IsValidName


IAdminSite::InitializeFromMDPath

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

HRESULT IAdminSite::InitializeFromMDPath(
BSTR bstrMDPath
);

Parameters

bstrMDPath

[in] A BSTR that contains the metabase path. The metabase path can be retrieved using a call to the Request.ServerVariables method.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

AdminSite Object

IAdminSite::Initialize


IAdminSite::IsValidName

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

HRESULT IAdminSite::IsValidName(
BSTR bstrName,
BSTR bstrInstance,
VARIANT_BOOL* pbRet
);

Parameters

bstrName

[in] A BSTR that specifies the short name to be tested.

bstrInstance

[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".

pbRet

[out] The address of a VARIANT_BOOL used to return an indication of whether or not the site name is valid.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

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.

See Also

AdminSite Object

IAdminSite::Initialize


IAdminSite::ReadDefaultProperties

Use this method to read the properties from the Site.csc file and return a site dictionary containing these properties.

Definition

HRESULT IAdminSite::ReadDefaultProperties(
IDictionary** ppIDictProp
);

Parameters

ppIDictProp

[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.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

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

AdminSite Object

IAdminSite::WriteDefaultProperties

IAdminSite::ReadManagerProperties

IAdminSite::Initialize


IAdminSite::ReadManagerProperties

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

HRESULT IAdminSite::ReadManagerProperties(
IDictionary** ppIDict
);

Parameters

ppIDict

[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.

Return Values

This method returns an HRESULT indicating whether or not 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

The manager site dictionary properties are DefaultConnectionString and ConnectionStringMap. These properties are distinct from the corresponding properties in the main site configuration.

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

AdminSite Object

IAdminSite::WriteManagerProperties

IAdminSite::ReadDefaultProperties


IAdminSite::Reload

Use this method to reset all application and session objects for the Site Server 3.0 Commerce Edition site.

Definition

HRESULT IAdminSite::Reload(
);

Parameters

None.

Return Values

This method returns an HRESULT indicating whether or not 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

After a reload, the next browser request will load the Global.asa file.

See Also

AdminSite Object


IAdminSite::get_Status, put_Status

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

Get method:

HRESULT IAdminSite::get_Status(
VARIANT_BOOL* Status
);

Put method:

HRESULT IAdminSite::put_Status(
VARIANT_BOOL Status
);

Parameters

Status

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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.

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

AdminSite Object


IAdminSite::get_Version

The Version property is a read-only integer used to return the version of Site Server 3.0 Commerce Edition in use.

Definition

HRESULT IAdminSite::get_Version(
long* Version
);

Parameters

Version

[out] A pointer to a long used to return the version of Site Server 3.0 Commerce Edition in use.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

The Version parameter contains valid data only if the property is accessed successfully.

See Also

AdminSite Object


IAdminSite::WriteDefaultProperties

Use this method to write the properties from the specified site Dictionary object to the Site.csc file.

Definition

HRESULT IAdminSite::WriteDefaultProperties(
IDictionary* pIDictProp
);

Parameters

pIDictProp

[in] A pointer to the IDictionary interface of the Dictionary object that contains the properties to be written to the Site.csc file.

Return Values

This method returns an HRESULT indicating whether or not 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

AdminSite Object

IAdminSite::ReadDefaultProperties

IAdminSite::WriteManagerProperties


IAdminSite::WriteManagerProperties

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

HRESULT IAdminSite::WriteManagerProperties(
IDictionary* pIDictProp
);

Parameters

pIDictProp

[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.

Return Values

This method returns an HRESULT indicating whether or not 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

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

AdminSite Object

IAdminSite::ReadManagerProperties

IAdminSite::WriteDefaultProperties


AdminWebServer Object

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
COM Interface Name: | IAdminWebServer
Interface ID Constant: | None
Header File: | None
Type Library Name: | Commerce Admin 1.0 Type Library
DLL Name: | MSCSadmin.dll
Threading Model: | Both

In C++, use the IAdminWebServer interface to access the methods of the AdminWebServer object.

The methods of the AdminWebServer object are shown in the following table.

Method | Description
GetCommerceSites | Given a server instance of a Web Site, enumerates all Site Server 3.0 Commerce Edition sites under that Web site.
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::GetCommerceSites

Use this method to enumerate all Commerce Server sites associated with the specified Web site. The method returns an array of numbers that represents all Commerce Server site instances.

This method does not work with Commerce Server 2000 sites. It is included only for backward compatibility with Site Server 3.0 Commerce Edition sites.

Definition

HRESULT IAdminWebServer::GetCommerceSites(
BSTR bstrInstance,
VARIANT* pVarRet
);

Parameters

bstrInstance

[in] A numeric value, expressed as a BSTR, that represents a server instance for a site.

pVarRet

[out] The address of a VARIANT used to return an array of numbers that represent all Commerce Server site instances.

Return Values

This method returns an HRESULT indicating whether or not 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

The pVarRet parameter contains valid data only if the method returns successfully.

The GetCommerceSites method determines whether a site is a Commerce Server site by examining a reserved key in the metabase.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AdminWebServer Object


IAdminWebServer::GetWebSiteProperties

Use this method to retrieve, given a server instance, the properties of a site as name/value pairs in a Dictionary object.

Definition

HRESULT IAdminWebServer::GetWebSiteProperties(
BSTR bstrInstance,
IDictionary** ppIDictSiteProperties
);

Parameters

bstrInstance

[in] A numeric value, expressed as a BSTR, representing a server instance for a site.

ppIDictSiteProperties

[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

This method returns an HRESULT indicating whether or not 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

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.

See Also

AdminWebServer Object


IAdminWebServer::GetWebSites

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

HRESULT IAdminWebServer::GetWebSites(
VARIANT* pvarInstances
);

Parameters

pvarInstances

[out] An address of a VARIANT used to return an array of numbers that represent all server instances.

Return Values

This method returns an HRESULT indicating whether or not 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

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

AdminWebServer Object


AppConfig Object

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 and regions from the site configuration store.

ProgID: | Commerce.AppConfig (Externally creatable)
COM Class Name: | AppCfg
COM Interface Name: | IAppCfg
Interface ID Constant: | IID_IAppCfg
Header File: | mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 App Helper Type Library
DLL Name: | AppHelper.dll
Threading Model: | Both

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.

The methods of the AppConfig object are shown in the following table.

Method | Description
DecodeStatusCode | Decodes the specified status code.
GetCountryCodeFromCountryName | Returns the country code for the specified country name.
GetCountryNameFromCountryCode | Returns the country name for the specified country code.
GetCountryNamesList | Returns an alphabetical list of country names.
GetOptionsDictionary | Returns a Dictionary object that maps site configuration keys to site configuration values.
GetRegionCodeFromCountryCodeAndRegionName | Returns the region code for the specified country code and region name.
GetRegionNameFromCountryCodeAndRegionCode | Returns the region name for the specified country code and region code.
GetRegionNamesListFromCountryCode | Returns an alphabetical list of region names for the specified country 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

Country codes may or may not be the same as ISO Country codes, depending on what values have been added in the Business Desk.

See Also

Configuration Objects

Table of Country Names and Codes


IAppCfg::DecodeStatusCode

Use this method to decode the specified status code.

Definition

HRESULT IAppCfg::DecodeStatusCode(
int iStatusCode,
BSTR* pbstrStatusCode
);

Parameters

iStatusCode

[in] An integer that specifies the status code to be decoded.

pbstrStatusCode

[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

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

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

AppConfig Object


IAppCfg::GetCountryCodeFromCountryName

Use this method to get the country code corresponding to the specified country name.

Definition

HRESULT IAppCfg::GetCountryCodeFromCountryName(
BSTR bstrCountryName,
BSTR* pbstrCountryCode
);

Parameters

bstrCountryName

[in] A BSTR that contains the name of the country for which the country code is being requested.

pbstrCountryCode

[out, retval] The address of a BSTR used to return the country code being requested.

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

The pbstrCountryCode parameter contains valid data only if the method returns successfully.

If the country code is not found, the method returns an empty string.

Country codes and country 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.

See Also

AppConfig Object

IAppCfg::GetCountryNameFromCountryCode

IAppCfg::GetCountryNamesList

Table of Country Names and Codes


IAppCfg::GetCountryNameFromCountryCode

Use this method to get the country name corresponding to the specified country code.

Definition

HRESULT IAppCfg::GetCountryNameFromCountryCode(
BSTR bstrCountryCode,
BSTR* pbstrCountryName
);

Parameters

bstrCountryCode

[in] A BSTR that contains the code of the country for which the country name is being requested.

pbstrCountryName

[out, retval] The address of a BSTR used to return the requested country name.

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

The pbstrCountryName parameter contains valid data only if the method returns successfully.

If the country name is not found, the method returns the country code specified in the bstrCountryCode parameter.

Country codes and country 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.

See Also

AppConfig Object

IAppCfg::GetCountryCodeFromCountryName

IAppCfg::GetCountryNamesList

Table of Country Names and Codes


IAppCfg::GetCountryNamesList

Use this method to get an alphabetical list of the country names that are in the site configuration database.

Definition

HRESULT IAppCfg::GetCountryNamesList(
ISimpleList** pplistCountryNames
);

Parameters

pplistCountryNames

[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 names.

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

The pplistCountryNames parameter contains valid data only if the method returns successfully.

Country codes and country 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.

See Also

AppConfig Object

IAppCfg::GetCountryCodeFromCountryName

Table of Country Names and Codes


IAppCfg::GetOptionsDictionary

Use this method to retrieve a Dictionary object that contains the site configuration information.

Definition

HRESULT IAppCfg::GetOptionsDictionary(
BSTR bstrUserID,
IDictionary** ppdispOptionsDictionary
);

Parameters

bstrUserID

[in] A BSTR that contains an empty string ("").

ppdispOptionsDictionary

[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

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

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

See Also

AppConfig Object


IAppCfg::GetRegionCodeFromCountryCodeAndRegionName

Use this method to get a string that contains the region code for the specified country code and region name.

Definition

HRESULT IAppCfg::GetRegionCodeFromCountryCodeAndRegionName(
BSTR bstrCountryCode,
BSTR bstrRegionName,
BSTR* pbstrRegionCode
);

Parameters

bstrCountryCode

[in] A BSTR that contains the code of the country for which the region code is being requested.

bstrRegionName

[in] A BSTR that contains the name of the region within the specified country for which the region code is being requested.

pbstrRegionCode

[out, retval] The address of a BSTR used to return the requested region code. An empty BSTR indicates that the code was not found.

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

The pbstrRegionCode parameter contains valid data only if the method returns successfully.

This method returns an empty string if the region code was not found.

Country codes, country names, region codes, and 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.

See Also

AppConfig Object

IAppCfg::GetCountryCodeFromCountryName

IAppCfg::GetCountryNamesList

IappCfg::GetRegionNameFromCountryCodeAndRegionCode

IAppCfg::GetRegionNamesListFromCountryCode

Table of Country Names and Codes


IAppCfg::GetRegionNameFromCountryCodeAndRegionCode

Use this method to get the name of the region associated with the specified country code and region code.

Definition

HRESULT IAppCfg::GetRegionNameFromCountryCodeAndRegionCode(
BSTR bstrCountryCode,
BSTR bstrRegionCode,
BSTR* pbstrRegionName
);

Parameters

bstrCountryCode

[in] A BSTR that contains the code of the country for which the region name is being requested.

bstrRegionCode

[in] A BSTR that contains the code of the region within the specified country for which the region name is being requested.

pbstrRegionName

[out, retval] The address of a BSTR used to return the region name. If the region name is not found, the BSTR will contain the region code specified in the bstrRegionCode parameter.

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

The pbstrRegionName parameter contains valid data only if the method returns successfully.

If the region name is not found, this method returns the region code specified in the bstrRegionCode parameter.

Country codes, country names, region codes, and 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.

See Also

AppConfig Object

IAppCfg::GetCountryCodeFromCountryName

IAppCfg::GetCountryNamesList

IAppCfg::GetRegionCodeFromCountryCodeAndRegionName

IAppCfg::GetRegionNamesListFromCountryCode

Table of Country Names and Codes


IAppCfg::GetRegionNamesListFromCountryCode

Use this method to retrieve an alphabetical list of region names associated with a specified country code.

Definition

HRESULT IAppCfg::GetRegionNamesListFromCountryCode(
BSTR bstrCountryCode,
ISimpleList** pplistRegionNames
);

Parameters

bstrCountryCode

[in] A BSTR that contains the code of the country for which a list of region names is being requested.

pplistRegionNames

[out, retval] The address of a pointer used to return an ISimpleList interface pointer. Upon successful completion, the list contains an alphabetical list of region names associated with the specified country code.

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

The pplistRegionNames parameter contains valid data only if the method returns successfully.

Country codes, country names, region codes, and 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.

See Also

AppConfig Object

IAppCfg::GetCountryCodeFromCountryName

IAppCfg::GetCountryNamesList

IAppCfg::GetRegionCodeFromCountryCodeAndRegionName

Table of Country Names and Codes


IAppCfg::Initialize

Use this method to initialize an AppConfig object.

Definition

HRESULT IAppCfg::Initialize(
BSTR bstrSiteName
);

Parameters

bstrSiteName

[in] A BSTR that contains the name of the site with which this AppConfig object should be associated. This name is not case-sensitive.

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

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.

See Also

AppConfig Object

IAppCfg::RefreshCache


IAppCfg::RefreshCache

Use this method to refresh the cache associated with the AppConfig object.

Definition

HRESULT IAppCfg::RefreshCache(
);

Parameters

None.

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

Users can add and change country and region 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

AppConfig Object

IAppCfg::Initialize


AppFrameWork Object

Use this object to simplify forms processing in Active Server Pages (ASP).

ProgID: | Commerce.AppFrameWork (Externally creatable)
COM Class Name: | AppFrameWork
COM Interface Name: | IAppFrameWork
Interface ID Constant: | None
Header File: | None
Type Library Name: | AspLib 1.0 Type Library
DLL Name: | asplib.dll
Threading Model: | Both

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.

The methods of the AppFrameWork object are shown in the following table.

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.

See Also

Display Objects


IAppFrameWork::Option

Use this method to generate an OPTION item in an HTML form selection list with the value and selection state that you specify.

Definition

HRESULT IAppFrameWork::Option(
VARIANT vtVal1,
VARIANT vtVal2,
BSTR* pbstrRet
);

Parameters

vtVal1

[in] A VARIANT that contains the value of the option in the selection list.

vtVal2

[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.

pbstrRet

[out, retval] A pointer to a BSTR used to return the OPTION item.

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

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

AppFrameWork Object


IAppFrameWork::RequestDate

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

HRESULT IAppFrameWork::RequestDate(
BSTR bstrName,
VARIANT vtDefault,
VARIANT vtMin,
VARIANT vtMax,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

bstrName

[in] A BSTR that contains the name of the URL query string or form post variable to retrieve.

vtDefault

[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.

vtMin

[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.

vtMax

[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.

vtLocale

[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.

pvtRet

[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

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

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.

See Also

AppFrameWork Object

IDataFunctions_4_0::get_Locale, put_Locale

IAppFrameWork.RequestDateTime

IDataFunctions_4_0::ConvertDateString

IDataFunctions_4_0::Date


IAppFrameWork::RequestDateTime

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

HRESULT IAppFrameWork::RequestDateTime(
BSTR bstrName,
VARIANT vtDefault,
VARIANT vtMin,
VARIANT vtMax,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

bstrName

[in] A BSTR that contains the name of the URL query string or form post variable to retrieve.

vtDefault

[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.

vtMin

[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.

vtMax

[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.

vtLocale

[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.

pvtRet

[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

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

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.

See Also

AppFrameWork Object

IDataFunctions_4_0::get_Locale, put_Locale

IAppFrameWork::RequestDate

IDataFunctions_4_0::ConvertDateTimeString

IAppFrameWork::RequestTime


IAppFrameWork::RequestFloat

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

HRESULT IAppFrameWork::RequestFloat(
BSTR bstrName,
VARIANT vtDefault,
VARIANT vtMin,
VARIANT vtMax,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

bstrName

[in] A BSTR that contains the name of the URL query string or form post variable to retrieve.

vtDefault

[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.

vtMin

[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.

vtMax

[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.

vtLocale

[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.

pvtRet

[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

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

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.

See Also

AppFrameWork Object

IDataFunctions_4_0::get_Locale, put_Locale

IAppFrameWork::RequestNumber

IDataFunctions_4_0::ConvertFloatString

IDataFunctions_4_0::Float

IDataFunctions_4_0::ValidateFloat


IAppFrameWork::RequestMoneyAsNumber

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

HRESULT IAppFrameWork::RequestMoneyAsNumber(
BSTR bstrName,
VARIANT vtDefault,
VARIANT vtMin,
VARIANT vtMax,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

bstrName

[in] A BSTR that contains the name of the URL query string or form post variable to retrieve.

vtDefault

[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.

vtMin

[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.

vtMax

[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.

vtLocale

[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.

pvtRet

[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

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

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.

See Also

AppFrameWork Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::ConvertMoneyStringToNumber

IDataFunctions_4_0::Money

IAppFrameWork::RequestFloat

IAppFrameWork::RequestNumber


IAppFrameWork::RequestNumber

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

HRESULT IAppFrameWork::RequestNumber(
BSTR bstrName,
VARIANT vtDefault,
VARIANT vtMin,
VARIANT vtMax,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

bstrName

[in] A BSTR that contains the name of the URL query string or form post variable to retrieve.

vtDefault

[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.

vtMin

[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.

vtMax

[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.

vtLocale

[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.

pvtRet

[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

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

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.

See Also

AppFrameWork Object

IDataFunctions_4_0::get_Locale, put_Locale

IAppFrameWork::RequestFloat

IDataFunctions_4_0::ConvertNumberString

IDataFunctions_4_0::Number

IDataFunctions_4_0::ValidateNumber


IAppFrameWork::RequestString

Use this method to retrieve a value from a URL query string or form post variable and perform string processing on it.

Definition

HRESULT IAppFrameWork::RequestString(
BSTR bstrName,
VARIANT vtDefault,
VARIANT vtMin,
VARIANT vtMax,
VARIANT vtStripWhite,
VARIANT vtStripReturn,
VARIANT vtCase,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

bstrName

[in] A BSTR that contains the name of the URL query string or form post variable to retrieve.

vtDefault

[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.

vtMin

[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.

vtMax

[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.

vtStripWhite

[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.

vtStripReturn

[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.

vtCase

[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.

vtLocale

[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.

pvtRet

[out, retval] A pointer to a VARIANT used to return the processed string.

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

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.

See Also

AppFrameWork Object

IDataFunctions_4_0::get_Locale, put_Locale


IAppFrameWork::RequestTime

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

HRESULT IAppFrameWork::RequestTime(
BSTR bstrName,
VARIANT vtDefault,
VARIANT vtMin,
VARIANT vtMax,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

bstrName

[in] A BSTR that contains the name of the URL query string or form post variable to retrieve.

vtDefault

[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.

vtMin

[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.

vtMax

[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.

vtLocale

[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.

pvtRet

[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

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

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.

See Also

AppFrameWork Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::ConvertTimeStringf

IAppFrameWork::RequestDate


IAppFrameWork::VerifyWith

Use this method to generate hidden input fields that contain verification values.

Definition

HRESULT IAppFrameWork::VerifyWith(
IDispatch* pdispOrder,
SAFEARRAY(VARIANT) pParams,
BSTR* pbstrRet
);

Parameters

pdispOrder

[in] A pointer to the IDispatch interface that can be used to retrieve the OrderForm object that contains the fields to verify.

pParams

[in] A SAFEARRAY that contains a list of field names to verify in the supplied OrderForm object.

pvtRet

[out, retval] A pointer to a VARIANT used to return the HTML tags.

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

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.

See Also

AppFrameWork Object

OrderForm Object


IAppFrameWork::VirtualDirectory

Use this method to return the name of the virtual directory for the site.

Definition

HRESULT IAppFrameWork::VirtualDirectory(
BSTR* pbstrRet
);

Parameters

pbstrRet

[out, retval] A pointer to a BSTR used to return the site virtual directory.

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

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

AppFrameWork Object

StandardSManager Object


AsyncRpt Object

Use this object to render (display) or export a static report asynchronously.

ProgID: | Commerce.AsyncRpt (Externally creatable)
COM Class Name: | AsyncRpt
COM Interface Name: | IAsyncRpt
Interface ID Constant: | IID_IAsyncRpt
Header File: | AsyncReport.h
Type Library Name: | Microsoft Commerce 2000 Async Report Manager Type Library
DLL Name: | AsyncReport.dll
Threading Model: | Both

In C++, use the IAsyncRpt interface to access the methods of the AsyncRpt object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

The methods of the AsyncRpt object are shown in the following table.

Method | Description
RunReport | Runs or exports the report.

Remarks

The AsyncRpt object renders or exports reports asynchronously.

The ReportRender object renders or exports reports synchronously.

The AsyncRpt object calls the ReportRender object passing it a string containing the rendering parameters. For more information about the rendering process, see ReportRender Object.

See Also

Analysis/Reporting Schema

Analysis/Reporting XML Structures

Creating Custom Reports

ListManager Object

ReportRenderer Object

Running Reports


IAsyncRpt::RunReport

Use this method to initialize the AsyncRpt object and to render or export a static report asynchronously.

Definition

HRESULT IAsyncRpt::RunReport(
BSTR bstrRepParam
);

Parameters

bstrRepParam

[in, out] A BSTR used to supply parameters to the AsyncRpt 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 E_FAIL (0x80004005) to indicate failure. For more information about standard COM errors, see Standard COM Errors.

Remarks

The AsyncRpt object calls the ReportRender object, passing it the bstrRepParam parameter.

The bstrRepParam parameter is identical to the sParamString parameter of the Init method of the ReportRender object. For more information, see ReportRender Object.

See Also

AsyncRpt Object


Auction Object

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.

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

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.

The properties of the Auction object are shown in the following table.

Property | Type | Description
AuctionID | BSTR | Stores the AuctionID 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.
szLanguage | BSTR | Stores the language used in by the MessageManager object when generating error messages. This property is read/write.

The methods of the Auction object are shown in the following table.

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.

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.


_Auction::AuctionAddBid

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

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
);

Parameters

szAuctionId

[in] A BSTR that contains the unique auction ID.

szShopperId

[in] A BSTR that contains the unique ID of the bidder.

szBidName

[in] A BSTR that contains the name of the bidder.

szEmail

[in] A BSTR that contains the email address of the bidder.

cyBidPrice

[in] A CURRENCY that contains the bid amount.

nDesired

[in] A long that contains the number of wanted items.

fTakeLess

[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.

cyMinimumBid

[in] A CURRENCY that contains the minimum bid.

objErrorList

[in] A pointer to the IDispatch interface of a SimpleList object that contains a list of errors generated by the MessageManager object.

bResolve

[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.

plNumErrors

[out, retval] A pointer to a long used to return the number of error strings written to the objErrorList 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Auction Object


_Auction::AuctionAddItem

Use this method to add a new item to the auction system.

Definition

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
);

Parameters

szSKU

[in] A BSTR that contains the unique ID for the item.

cyReservePrice

[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.

nAvailable

[in] A long that contains the number of items for sale.

cyBidIncrement

[in] A CURRENCY that contains the amount a bid must be raised in order to bid on the item.

nAuctionType

[in] A long that contains the auction type. For more information, see the table in the Remarks section.

cyMinimumBid

[in] A CURRENCY that contains the minimum opening bid.

fSealedBid

[in] A VARIANT_BOOL that indicates whether to check a bid against the minimum bid. A value of True skips the minimum bid check.

fSealedInventory

[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).

fActive

[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.

dtStartDate

[in] A DATE that determines when bids will be accepted on the item.

dtEndDate

[in] A DATE that determines when the auction is closed and the items can be purchased.

nAutoCloseSeconds

[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.

objErrorList

[in] A pointer to the IDispatch interface that contains the error list.

plNumErrors

[out, retval] A pointer to a long used to return the number of error strings written to the objErrorList 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

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.

See Also

Auction Object


_Auction::AuctionBidNormalize

Use this method to normalize a bid to a whole multiple of the bid increment.

Definition

HRESULT _Auction::AuctionBidNormalize(
CURRENCY cyBidAmount,
CURRENCY cyBidIncrement,
CURRENCY cyMinimumBid,
CURRENCY* cyBidNormal
);

Parameters

cyBidAmount

[in] A CURRENCY that contains the bid amount.

cyBidIncrement

[in] A CURRENCY that contains the bid increment.

cyMinimumBid

[in] A CURRENCY that contains the minimum bid allowed.

cyBidNormal

[out, retval] A pointer to a CURRENCY used to return the normalized bid.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Auction Object


_Auction::AuctionDeleteBid

Use this method to deletes a bid placed on an item in an auction.

Definition

HRESULT _Auction::AuctionDeleteBid(
BSTR szAuctionId,
BSTR szShopperId,
VARIANT_BOOL bResolve,
VARIANT* unnamed parameter
);

Parameters

szAuctionId

[in] A BSTR that contains the unique auction ID.

szShopperId

[in] A BSTR that contains the unique ID of the bidder.

bResolve

[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.

unnamed parameter

[out, retval] Reserved for future use.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Auction Object


_Auction::AuctionDeleteBids

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

HRESULT _Auction::AuctionDeleteBids(
BSTR szAuctionId,
VARIANT_BOOL bResolve,
VARIANT* unnamed parameter
);

Parameters

szAuctionId

[in] A BSTR that contains the unique auction ID.

bResolve

[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.

unnamed parameter

[out, retval] Reserved for future use.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Auction Object


_Auction::AuctionDeleteItem

Use this method to delete an item and all bids for the item from the auction database.

Definition

HRESULT _Auction::AuctionDeleteItem(
BSTR szAuctionId,
VARIANT* unnamed parameter
);

Parameters

szAuctionId

[in] A BSTR that contains the unique auction ID.

unnamed parameter

[out, retval] Reserved for future use.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Auction Object


_Auction::AuctionGetBid

Use this method to retrieve a bid from a specific bidder for a specific auction item.

Definition

HRESULT _Auction::AuctionGetBid(
BSTR szShopperId,
BSTR szAuctionId,
IDispatch** pprsBid
);

Parameters

szShopperId

[in] A BSTR that contains the unique ID of the bidder.

szAuctionId

[in] A BSTR that contains the unique auction ID.

pprsBid

[out, retval] The address of a pointer to the IDispatch interface of an ADODB.Recordset object used to return the specified bid.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Auction Object


_Auction::AuctionGetBids

Use this method to retrieve all the bids for the specified auction item.

Definition

HRESULT _Auction::AuctionGetBids(
BSTR szAuctionId,
DATE dtSinceDate,
IDispatch** rsBids
);

Parameters

szAuctionId

[in] A BSTR that contains the auction ID.

dtSinceDate

[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.

rsBids

[out, retval] The address of a pointer to the IDispatch interface of the ADODB.Recordset object used to return the specified bids.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Auction Object


_Auction::AuctionGetItem

Use this method to retrieve an item up for auction.

Definition

HRESULT _Auction::AuctionGetItem(
BSTR szAuctionId,
IDispatch** rsItem
);

Parameters

szAuctionId

[in] A BSTR that contains the unique auction ID.

rsItem

[out, retval] The address of a pointer to the IDispatch interface of the ADODB.Recordset object used to return the specified item.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Auction Object


_Auction::AuctionGetStatus

Use this method to retrieve a Dictionary object containing information for the item up for auction and the bids on the item.

Definition

HRESULT _Auction::AuctionGetStatus(
BSTR szAuctionId,
IDispatch** dictStatus
);

Parameters

szAuctionId

[in] A BSTR that contains the unique auction ID.

dictStatus

[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

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

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

Auction Object


_Auction::get_AuctionID

The AuctionID property is a read-only String that contains a GUID that uniquely identifies the Auction object.

Definition

HRESULT _Auction::get_AuctionID(
BSTR* AuctionID
);

Parameters

AuctionID

[out, retval] A BSTR used to return the auction ID, a GUID.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Auction Object


_Auction::AuctionInit

Use this method to initialize the Auction object.

Definition

HRESULT _Auction::AuctionInit(
BSTR szDSN,
BSTR szItemTableName,
BSTR szBidTableName,
BSTR szBidOrderBy,
IDispatch* objMessageManager,
BSTR szLanguage,
DATE dtAMT,
VARIANT* unnamed parameter
);

Parameters

szDSN

[in] A BSTR that contains the connection string to the database containing the Bid and Item tables.

szItemTableName

[in] A BSTR that contains the Item table name.

szBidTableName

[in] A BSTR that contains the Bid table name.

szBidOrderBy

[in] A BSTR that contains the default bid sort order (SQL ORDER BY clause).

objMessageManager

[in] A pointer to the IDispatch interface of a MessageManager object.

szLanguage

[in] A BSTR that contains the language used by the MessageManager object.

dtAMT

[in] A DATE that contains a timestamp.

unnamed parameter

[out, retval] Reserved for future use.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Auction Object


_Auction::AuctionRandomBids

Use this method to enter random bids into an auction for testing or demonstration purposes.

Definition

HRESULT _Auction::AuctionRandomBids(
BSTR szAuctionId,
VARIANT_BOOL fDelete,
long nNumberBids,
VARIANT* unnamed parameter
);

Parameters

szAuctionId

[in] A BSTR that contains the unique auction ID.

fDelete

[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.

nNumberBids

[in] A long that contains the number of random bids to add.

unnamed parameter

[out, retval] Reserved for future use.

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

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.

See Also

Auction Object


_Auction::AuctionResolve

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

HRESULT _Auction::AuctionResolve(
BSTR szAuctionId,
VARIANT_BOOL bOptimize,
VARIANT* unnamed parameter
);

Parameters

szAuctionId

[in] A BSTR that contains the unique auction ID.

bOptimize

[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.

unnamed parameter

[out, retval] Reserved for future use.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Auction Object


_Auction::AuctionUpdateItem

Use this method to update an existing item in the auction system.

Definition

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
);

Parameters

szAuctionId

[in] A BSTR that contains the unique auction ID.

szSKU

[in] A BSTR that contains the unique ID for the item.

cyReservePrice

[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.

nAvailable

[in] A long that contains the number of items for sale.

cyBidIncrement

[in] A CURRENCY that contains the amount a bid must be raised in order to bid on the item.

nAuctionType

[in] A long that contains the auction type. For more information, see the Remarks section.

cyMinimumBid

[in] A CURRENCY that contains the minimum opening bid.

fSealedBid

[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.

fSealedInventory

[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.

fActive

[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.

dtStartDate

[in] A DATE that determines when bids will be accepted on the item.

dtEndDate

[in] A DATE that determines when the auction is closed and the items can be purchased.

nAutoCloseSeconds

[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.

objErrorList

[in] A pointer to the IDispatch interface that contains the error list.

bResolve

[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.

plNumErrors

[out, retval] A pointer to a long used to return the number of error strings written to the objErrorList 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

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.

See Also

Auction Object


_Auction::get_dtAMT, put_dtAMT

The dtAMT property is a read/write DATE value used to timestamp auction actions.

Definition

Get method:

HRESULT _Auction::get_dtAMT(
DATE* dtAMT
);

Put method:

HRESULT _Auction::put_dtAMT(
DATE dtAMT
);

Parameters

dtAMT

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Auction Object


_Auction::get_objMessageManager, put_objMessageManager

The objMessageManager property is a read/write MessageManager object used to return error messages to the bidder.

Definition

Get method:

HRESULT _Auction::get_objMessageManager(
IDispatch** objMessageManager
);

Put method:

HRESULT _Auction::put_objMessageManager(
IDispatch* objMessageManager
);

Parameters

objMessageManager

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Auction Object


_Auction::get_szBidOrderBy, put_szBidOrderBy

The szBidOrderBy property is a read/write String used to resolve ties.

Definition

Get method:

HRESULT _Auction::get_szBidOrderBy(
BSTR* szBidOrderBy
);

Put method:

HRESULT _Auction::put_szBidOrderBy(
BSTR szBidOrderBy
);

Parameters

szBidOrderBy

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

Auction Object


_Auction::get_szBidTableName, put_szBidTableName

The szBidTableName property is a read/write String used to store the name of the Bid table in the database.

Definition

Get method:

HRESULT _Auction::get_szBidTableName(
BSTR* szBidTableName
);

Put method:

HRESULT _Auction::put_szBidTableName(
BSTR szBidTableName
);

Parameters

szBidTableName

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

Auction Object


_Auction::get_szDSN, put_szDSN

The szDSN property is a read/write String used to store the connection string for the database.

Definition

Get method:

HRESULT _Auction::get_szDSN(
BSTR* szDSN
);

Put method:

HRESULT _Auction::put_szDSN(
BSTR szDSN
);

Parameters

szDSN

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

Auction Object


_Auction::get_szItemTableName, put_szItemTableName

The szItemTableName property is a read/write String used to store the name of the Item table in the database.

Definition

Get method:

HRESULT _Auction::get_szItemTableName(
BSTR* szItemTableName
);

Put method:

HRESULT _Auction::put_szItemTableName(
BSTR szItemTableName
);

Parameters

szItemTableName

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

Auction Object


_Auction::get_szLanguage, put_szLanguage

The szLanguage property is a read/write String used to store the language used by the MessageManager object when generating error messages.

Definition

Get method:

HRESULT _Auction::get_szLanguage(
BSTR* szLanguage
);

Put method:

HRESULT _Auction::put_szLanguage(
BSTR szLanguage
);

Parameters

szLanguage

[in] When putting the property, a BSTR that contains the name of the language used by the MessageManager object.
[out, retval] When getting the property, a pointer to a BSTR used to return the name of the language used by the MessageManager object.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Auction Object


AuthManager Object

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.

ProgID: | Commerce.AuthManager (Externally creatable)
COM Class Name: | MSCSAuthManager
COM Interface Name: | IMSCSAuthManager
Interface ID Constant: | IID_IMSCSAuthManager
Header File: | MSCSAuth.h
Type Library Name: | Microsoft Commerce 2000 AuthManager Type Library
DLL Name: | mscsauth.dll
Threading Model: | Both

The AuthManager object is intended to be used only through ASP script. However, the following methods are available in C++ through the IMSCSAuthManager interface: GenerateEncryptionKey, GetUserIDFromCookie, Initialize, Refresh, and UnInitialize.

The methods of the AuthManager object are shown in the following table.

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 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 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.

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 2000 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.

See Also

Site Security Objects

Working with Site Security and Filters


IMSCSAuthManager::GenerateEncryptionKey

Use this method to generate an encryption key for encrypting/decrypting the cookie and query string data used for tickets.

Definition

HRESULT IMSCSAuthManager::GenerateEncryptionKey(
BSTR* pbstrRet
);

Parameters

pbstrRet

[out, retval] A pointer to a BSTR used to return a copy of the encryption key.

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 either standard or custom COM HRESULT 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 | 0xC1004C26 | An error occurred while generating the encryption key using the CryptoAPI.

Additional information may be available using the global Err object, which can 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

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 Admin database.

This method is one of the few AuthManager methods used in C++ applications.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The pbstrRet parameter contains valid data only if the method completes successfully.

See Also

AuthManager Object


IMSCSAuthManager::GetProperty

Use this method to retrieve the value of the specified custom property from the current user ticket.

Definition

HRESULT IMSCSAuthManager::GetProperty(
EnumMSCS_TicketType enumTicketType,
BSTR propName,
VARIANT* pVarCustomPropVal
);

Parameters

enumTicketType

[in] An EnumMSCS_TicketType that indicates the type of ticket that contains the property.

propName

[in] A BSTR that contains the name of the property to retrieve.

PVarCustomPropVal

[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

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 either standard or custom COM HRESULT 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 | 0xC1004C27 | Invalid custom property name or value.
E_UPM_AUTHMANAGER_API_ASP_ONLY | 0xC1004C24 | This method should only be called within an ASP page.
E_UPM_AUTHMANAGER_TICKET_NOT_SET | 0xC1004C25 | Requested ticket not set.
MSG_UPM_AUTH_PROPNOTFOUND_ERROR | 0xC1004C00 | Requested property does not exist on the ticket.

Additional information may be available using the global Err object, which can 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

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.

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.

See Also

AuthManager Object

IMSCSAuthManager::SetProperty


IMSCSAuthManager::GetURL

Use this method to generate an encoded Uniform Resource Locator (URL) string.

Definition

HRESULT IMSCSAuthManager::GetURL(
BSTR FileName,
BOOL fCookie,
BOOL fSecure,
VARIANT* pVarURLParameters,
VARIANT* pVarURLValues,
BSTR* pbstrRet
);

Parameters

FileName

[in] A BSTR that contains the file name to reference in the URL.

fCookie

[in] A BOOL that indicates whether the user allows cookies.

fSecure

[in] A BOOL that indicates whether the URL is secure (HTTPS versus HTTP).

pVarURLParameters

[in, optional, defaultvalue (NULL)] A pointer to a VARIANT containing a SAFEARRAY of parameter names to include in the URL.

pVarURLValues

[in, optional] A pointer to a VARIANT containing a SAFEARRAY of parameter values that correspond to the parameter names.

pbstrRet

[out, retval] A pointer to a BSTR used to return the encoded URL.

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 either standard or custom COM HRESULT 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 | 0xC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | 0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Additional information may be available using the global Err object, which can 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The pbstrRet parameter contains valid data only if the method completes successfully.

See Also

AuthManager Object


IMSCSAuthManager::GetUserID

Use this method to retrieve a user ID stored in a ticket.

Definition

HRESULT IMSCSAuthManager::GetUserID(
EnumMSCS_TicketType enumTicketType,
VARIANT* pUserID
);

Parameters

enumTicketType

[in] An EnumMSCS_TicketType that indicates the type of ticket that contains the user ID.

pUserID

[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 pointer is set to NULL.

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 either standard or custom COM HRESULT 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 | 0xC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | 0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Additional information may be available using the global Err object, which can 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

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.

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.

See Also

AuthManager Object


IMSCSAuthManager::GetUserIDFromCookie

Use this method to retrieve a user ID stored in a cookie.

Definition

HRESULT IMSCSAuthManager::GetUserIDFromCookie(
BSTR cookieData,
BSTR* pbstrUserID
);

Parameters

cookieData

[in] A BSTR that contains the cookie.

pbstrUserID

[out, retval] A pointer to a BSTR used to return the user ID.

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 either standard or custom COM HRESULT 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 | 0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Additional information may be available using the global Err object, which can 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

The cookie data is always URL decoded.

Commerce Server 2000 Analysis applications use this method to extract user IDs from cookies found in Internet Information Services (IIS) logs.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The pbstrUserID parameter contains valid data only if the method completes successfully.

See Also

AuthManager Object


IMSCSAuthManager::Initialize

Use this method to initialize the AuthManager object.

Definition

HRESULT IMSCSAuthManager::Initialize(
BSTR bstrSiteName,
);

Parameters

bstrSiteName

[in] A BSTR that contains the name of the Commerce Server 2000 Web site.

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

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 to 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AuthManager Object


IMSCSAuthManager::IsAuthenticated

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

HRESULT IMSCSAuthManager::IsAuthenticated(
long TimeWindow,
VARIANT_BOOL* pboolAuth
);

Parameters

TimeWindow

[in, optional, defaultvalue (0)] A long that contains a time period in minutes.

pboolAuth

[out, retval] A pointer to a VARIANT_BOOL containing the authentication status of the current user.

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 either standard or custom COM HRESULT 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 | 0xC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | 0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Additional information may be available using the global Err object, which can 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The pboolAuth parameter contains valid data only if the method completes successfully.

See Also

AuthManager Object


IMSCSAuthManager::Refresh

Use this method to update the cached site configuration resource properties after any of the properties have been changed.

Definition

HRESULT IMSCSAuthManager::Refresh(
BSTR bstrSiteName
);

Parameters

bstrSiteName

[in] A BSTR that contains the site name.

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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AuthManager Object


IMSCSAuthManager::SetAuthTicket

Use this method to set an encrypted MSCSAuth ticket for a registered user.

Definition

HRESULT IMSCSAuthManager::SetAuthTicket(
BSTR UserID,
VARIANT_BOOL fCookieSupport,
long TimeWindow
);

Parameters

UserID

[in] A BSTR that contains the unique ID for the current user.

fCookieSupport

[in] A VARIANT_BOOL that indicates whether session cookies are supported.

TimeWindow

[in] A long that defines the time window in minutes that the MSCSAuth ticket is valid.

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 either standard or custom COM HRESULT 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 | 0xC1004C23 | Invalid character (';' or '%' or '=') present in the UserID or the property name/value pair.
E_UPM_AUTHMANAGER_API_ASP_ONLY | 0xC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | 0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Additional information may be available using the global Err object, which can 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

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 MSCSAuth 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 an MSCSProfile ticket.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AuthManager Object

IMSCSAuthManager::IsAuthenticated


IMSCSAuthManager::SetProfileTicket

Use this method to set a MSCSProfile ticket for an anonymous user. An anonymous user is not registered with a site.

Definition

HRESULT IMSCSAuthManager::SetProfileTicket(
BSTR UserID,
VARIANT_BOOL fCookieSupport
);

Parameters

UserID

[in] A BSTR that contains the unique ID for the current user.

fCookieSupport

[in] A VARIANT_BOOL that indicates whether persistent cookies are supported.

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 either standard or custom COM HRESULT 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 | 0xC1004C23 | Invalid character (';' or '%' or '=') present in the UserID or the property name/value pair.
E_UPM_AUTHMANAGER_API_ASP_ONLY | 0xC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | 0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Additional information may be available using the global Err object, which can 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

If an MSCSProfile 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 MSCSAuth ticket.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AuthManager Object

IMSCSAuthManager::IsAuthenticated


IMSCSAuthManager::SetProperty

Use this method to place a custom property name/value pair into the current ticket for the user.

Definition

HRESULT IMSCSAuthManager::SetProperty(
EnumMSCS_TicketType enumTicketType,
BSTR propName,
BSTR propVal
);

Parameters

enumTicketType

[in] An EnumMSCS_TicketType that indicates the type of ticket.

propName

[in] A BSTR that contains the name of the property.

propVal

[in] A BSTR that contains the value corresponding to the named property.

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 either standard or custom COM HRESULT 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 | 0xC1004C23 | Invalid character (';' or '%' or '=') present in the UserID or the property name/value pair.
E_UPM_AUTHID_INVALID_PROPERTY | 0xC1004C27 | Invalid custom property name or value.
E_UPM_AUTHMANAGER_API_ASP_ONLY | 0xC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | 0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Additional information may be available using the global Err object, which can 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

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.

Note

  • A property with the name "Ticket" is used by the AuthManager object for storing Commerce Server 2000 related information. When creating a custom property, do not set the property name to "Ticket".

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AuthManager Object

IMSCSAuthManager::GetProperty


IMSCSAuthManager::SetUserID

Use this method to change the user ID property on a ticket.

Definition

HRESULT IMSCSAuthManager::SetUserID(
EnumMSCS_TicketType enumTicketType,
BSTR newUserID
);

Parameters

enumTicketType

[in] An EnumMSCS_TicketType that indicates the type of ticket that will contain the user ID.

newUserID

[in] A BSTR that contains the unique ID for the current user.

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 either standard or custom COM HRESULT 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 | 0xC1004C23 | Invalid character (';' or '%' or '=') present in the UserID or the property name/value pair.
E_UPM_AUTHMANAGER_API_ASP_ONLY | 0xC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | 0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Additional information may be available using the global Err object, which can 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

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 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.

See Also

AuthManager Object


IMSCSAuthManager::UnInitialize

Use this method to delete the site-specific configuration resource properties from the cache when the site is no longer valid.

Definition

HRESULT IMSCSAuthManager::UnInitialize(
BSTR bstrSiteName,
);

Parameters

bstrSiteName

[in] A BSTR that contains the name of the site.

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 either standard or custom COM HRESULT 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 | 0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Additional information may be available using the global Err object, which can 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

AuthManager Object


IMSCSAuthManager::URLArgs

Use this method to generate a Uniform Resource Locator (URL) encoded query string of name/value pairs.

Definition

HRESULT IMSCSAuthManager::URLArgs(
VARIANT* pVarURLParameters,
VARIANT* pVarURLValues,
BSTR* pbstrRet
);

Parameters

pVarURLParameters

[in] A pointer to a VARIANT containing a SAFEARRAY of parameter names.

pVarURLValues

[in] A pointer to a VARIANT containing a SAFEARRAY of parameter values corresponding to the parameter names.

pbstrRet

[out, retval] A pointer to a BSTR that contains the resulting URL-encoded query string.

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 either standard or custom COM HRESULT 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 | 0xC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | 0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Additional information may be available using the global Err object, which can 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

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.

The pbstrRet parameter contains valid data only if the method completes successfully.

See Also

AuthManager Object

IMSCSAuthManager::URLShopperArgs


IMSCSAuthManager::URLShopperArgs

Use this method to generate a Uniform Resource Locator (URL) encoded query string of name/value pairs and append the ticket to the query string if a ticket is set.

Definition

HRESULT IMSCSAuthManager::URLShopperArgs(
VARIANT* pVarURLParameters,
VARIANT* pVarURLValues,
BSTR* pbstrRet
);

Parameters

pVarURLParameters

[in] A pointer to a VARIANT containing a SAFEARRAY of parameter names.

pVarURLValues

[in] A pointer to a VARIANT containing a SAFEARRAY of parameter values corresponding to the parameter names.

pbstrRet

[out, retval] A pointer to a BSTR that contains the resulting URL-encoded query string.

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 either standard or custom COM HRESULT 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 | 0xC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | 0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Additional information may be available using the global Err object, which can 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

This method concatenates the parameter name/value pairs into a URL-encoded 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 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.

The pbstrRet parameter contains valid data only if the method completes successfully.

See Also

AuthManager Object

IMSCSAuthManager::SetProperty

IMSCSAuthManager::SetAuthTicket

IMSCSAuthManager::SetProfileTicket

IMSCSAuthManager::URLArgs


BizDeskSecurity Object

Use this object to determine whether to display a module in the navigation pane of Commerce Server Business Desk.

ProgID: | Commerce.BizDeskSecurity (Externally creatable)
COM Class Name: | BizDeskSecurity
COM Interface Name: | IBizDeskSecurity
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 BizDesk Security Type Library
DLL Name: | BDSecurity.dll
Threading Model: | Free

In C++, use the IBizDeskSecurity interface to access the one method of the BizDeskSecurity object.

The one method of the BizDeskSecurity object is shown in the following table.

Method | Description
CanUserAccess | Determines whether the user has access rights to read the specified file.

Remarks

The Business Desk framework calls this object to determine which modules to display to the current user.

See Also

Site Security Objects


IBizDeskSecurity::CanUserAccess

Use this method to determine whether the current user has read access rights to the specified Commerce Server Business Desk module.

Definition

HRESULT IBizDeskSecurity::CanUserAccess(
BSTR bstrPath,
VARIANT_BOOL* pbAccessOK
);

Parameters

bstrPath

[in] A BSTR that contains the file name and path for a Business Desk module.

pbAccessOK

[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

This method returns an HRESULT indicating whether or not 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

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 file.

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.

See Also

BizDeskSecurity Object


CacheManager Object

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
COM Interface Name: | ICacheManager
Interface ID Constant: | IID_ICacheManager
Header File: | None
Type Library Name: | Microsoft Commerce 2000 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both

In C++, use the ICacheManager interface to access the properties and methods of the CacheManager object.

The properties of the CacheManager object are shown the following table.

Property | Type | Description
AppUrl | BSTR | Stores the full Uniform Resource Locator (URL) of the application. This property is read/write.
CacheObjectProgId | BSTR | Stores the Programmatic Identifier (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.

The methods of the CacheManager object are shown in the following table.

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.

See Also

General Purpose Programming Concepts

Code to Implement Custom Cache Components


ICacheManager::get_AppUrl, put_AppUrl

The AppUrl property is a read/write string that contains the full Uniform Resource Locator (URL) of the application.

Definition

Get method:

HRESULT ICacheManager::get_AppUrl(
BSTR* AppUrl
);

Put method:

HRESULT ICacheManager::put_AppUrl(
BSTR AppUrl
);

Parameters

AppUrl

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

CacheManager Object


ICacheManager::GetCache

Use this method to retrieve either the Dictionary or LRUCache object for the specified cache name.

Definition

HRESULT ICacheManager::GetCache(
BSTR bstrName,
IDispatch** ppdict
);

Parameters

bstrName

[in] A BSTR that contains the name of the cache to be retrieved.

ppdict

[out,retval] A pointer used to return the IDispatch interface of the data cache Dictionary object.

Return Values

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

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.

See Also

CacheManager Object


ICacheManager::get_CacheObjectProgId, put_CacheObjectProgId

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

Get method:

HRESULT ICacheManager::get_CacheObjectProgId(
BSTR bstrName,
BSTR* CacheObjectProgId
);

Put method:

HRESULT ICacheManager::put_CacheObjectProgId(
BSTR bstrName,
BSTR CacheObjectProgId
);

Parameters

bstrName

[in] A BSTR that contains the name of the cache object.

CacheObjectProgId

[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.

Return Values

These methods return an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

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

CacheManager Object


ICacheManager::get_LoaderConfig, putref_LoaderConfig

The LoaderConfig property is a read/write reference to a Dictionary object that contains configuration information for the Loader component.

Definition

Get method:

HRESULT ICacheManager::get_LoaderConfig(
BSTR bstrName,
IDispatch** LoaderConfig
);

Put method:

HRESULT ICacheManager::putref_LoaderConfig(
BSTR bstrName,
IDispatch* LoaderConfig
);

Parameters

bstrName

[in] A BSTR that contains the name of a data cache for which Loader component configuration information is being provided or retrieved.

LoaderConfig

[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.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

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.

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

CacheManager Object


ICacheManager::get_LoaderProgId, put_LoaderProgId

The LoaderProgId property is a read/write string that contains the Programmatic Identifier (ProgID) of the component intended for use in populating the cache.

Definition

Get method:

HRESULT ICacheManager::get_LoaderProgId(
BSTR bstrName,
BSTR* LoaderProgId
);

Put method:

HRESULT ICacheManager::put_LoaderProgId(
BSTR bstrName,
BSTR LoaderProgId
);

Parameters

bstrName

[in] A BSTR that contains the name of a data cache for which the Loader component ProgID is being provided or retrieved.

LoaderProgId

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

See Also

CacheManager Object


ICacheManager::RefreshCache

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

HRESULT ICacheManager::RefreshCache(
BSTR bstrName
);

Parameters

bstrName

[in] A BSTR that contains the name of the data cache to be refreshed.

Return Values

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

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.

See Also

CacheManager Object


ICacheManager::get_RefreshInterval, put_RefreshInterval

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

Get method:

HRESULT ICacheManager::get_RefreshInterval(
BSTR bstrName,
long* RefreshInterval
);

Put method:

HRESULT ICacheManager::put_RefreshInterval(
BSTR bstrName,
long RefreshInterval
);

Parameters

bstrName

[in] A BSTR that contains the name of a data cache for which the refresh interval is being provided or retrieved.

RefreshInterval

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

CacheManager Object


ICacheManager::get_RetryInterval, put_RetryInterval

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

Get method:

HRESULT ICacheManager::get_RetryInterval(
BSTR bstrName,
long* RetryInterval
);

Put method:

HRESULT ICacheManager::put_RetryInterval(
BSTR bstrName,
long RetryInterval
);

Parameters

bstrName

[in] A BSTR that contains the name of a data cache for which the retry interval is being provided or retrieved.

RetryInterval

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

CacheManager Object


ICacheManager::get_WriterConfig, putref_WriterConfig

The WriterConfig property is a read/write reference to a Dictionary object that contains configuration information for the Writer component.

Definition

Get method:

HRESULT ICacheManager::get_WriterConfig(
BSTR bstrName,
IDispatch** WriterConfig
);

Put method:

HRESULT ICacheManager::putref_WriterConfig(
BSTR bstrName,
IDispatch* WriterConfig
);

Parameters

bstrName

[in] A BSTR that contains the name of a data cache for which Writer component configuration information is being provided or retrieved.

WriterConfig

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

CacheManager Object


ICacheManager::get_WriterProgId, put_WriterProgId

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

Get method:

HRESULT ICacheManager::get_WriterProgId(
BSTR bstrName,
BSTR* WriterProgId
);

Put method:

HRESULT ICacheManager::put_WriterProgId(
BSTR bstrName,
BSTR WriterProgId
);

Parameters

bstrName

[in] A BSTR that contains the name of a data cache for which the Writer component ProgID is being provided or retrieved.

WriterProgId

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

See Also

CacheManager Object


CatalogManager Object

Use this object to work with the entire Product Catalog System. The methods and properties of this object effect all catalogs contained in the Product Catalog System.

ProgID: | Commerce.CatalogManager (Externally creatable)
COM Class Name: | CatalogManager
COM Interface Name: | ICatalogManager
Interface ID Constant: | IID_ICatalogManager
Header File: | Catalog.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Catalog Type Library
DLL Name: | Catalog.dll
Threading Model: | Both

In C++, use the ICatalogManager interface to access the properties and methods of the CatalogManager object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

The properties of the CatalogManager object are shown in the following table.

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 | Returns 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 | _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.

The methods of the CatalogManager object are shown in the following table.

Method | Description
AddDefinitionProperty | Adds a property to a definition.
AddDefinitionVariantProperty | Adds a variant property to a definition.
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.
ExportCSV | Exports catalog data as a comma-separated value format file.
ExportXML | Exports catalog data as an Extensible Markup Language (XML) format file.
FreeTextSearch | Performs a free-text search of catalogs.
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 comma-separated value 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.
RemoveDefinitionProperty | Removes the specified property or variant property from a definition.
RemovePropertyValue | Removes a defined value from an enumeration property.
RenameDefinition | Renames a definition.
RenameProperty | Renames a property.
SetDefinitionProperties | Use this method to change the properties of a category or product definition.
SetPropertyAttributes | Changes the attributes of a property.

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.


ICatalogManager::AddDefinitionProperty

Use this method to add an existing property to an existing category or product definition.

Definition

HRESULT ICatalogManager::AddDefinitionProperty(
BSTR strDefinitionName,
BSTR strPropertyName
);

Parameters

strDefinitionName

[in] A BSTR that contains the name of the definition to which the property will be added.

strPropertyName

[in] A BSTR that contains the name of the property.

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 either standard or custom COM HRESULT 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_DEFINITION_DOESNT_EXIST | 0x8898000B | The specified definition did not exist.
E_CAT_PROP_DOESNT_EXIST | 0x88980005 | The specified property did not exist.
E_CAT_PROP_IN_DEFINITION | 0x8898000D | The specified property was already in the definition.
OLE_E_BLANK | 0x80040007 | The object was not initialized. The Initialize method must be called before calling any other method.

Additional information may be available using the global Err object, which can 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

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.

See Also

CatalogManager Object

ICatalogManager::AddDefinitionVariantProperty

ICatalogManager::RemoveDefinitionProperty


ICatalogManager::AddDefinitionVariantProperty

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

HRESULT ICatalogManager::AddDefinitionVariantProperty(
BSTR strDefinitionName,
BSTR strPropertyName
);

Parameters

strDefinitionName

[in] A BSTR that contains the name of the definition to which the specified variant property will be added.

strPropertyName

[in] A BSTR that contains the name of the property to be added to the specified definition.

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 either standard or custom COM HRESULT 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_DEFINITION_DOESNT_EXIST | 0x8898000B | The specified definition did not exist.
E_CAT_PROP_DOESNT_EXIST | 0x88980005 | The specified property did not exist.
E_CAT_PROP_IN_DEFINITION | 0x8898000D | The specified property was already in the definition.
OLE_E_BLANK | 0x80040007 | The object was not initialized. The Initialize method must be called before calling any other method.

Additional information may be available using the global Err object, which can 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

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.

See Also

CatalogManager Object

ICatalogManager::AddDefinitionProperty

ICatalogManager::RemoveDefinitionProperty


ICatalogManager::AddPropertyValue

Use this method to add a value to the list of defined values for the specified enumeration.

Definition

HRESULT ICatalogManager::AddPropertyValue(
BSTR strPropertyName,
BSTR strLegalValue
);

Parameters

strPropertyName

[in] A BSTR that contains the name of the enumeration property for which a new value will be defined.

strLegalValue

[in] A BSTR that contains the new value.

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 either standard or custom COM HRESULT 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_PROP_DOESNT_EXIST | 0x88980005 | The property you specified did not exist.
E_CAT_PROP_NOT_ENUM | 0x88980007 | The property you specified was not of type cscEnumeration.
E_CAT_VALUE_ALREADY_ADDED | 0x88980008 | The enumeration value you specified was already present in the list.
OLE_E_BLANK | 0x80040007 | The object was not initialized. The Initialize method must be called before calling any other method.

Additional information may be available using the global Err object, which can 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

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.

See Also

CatalogManager Object

ICatalogManager::GetPropertyValues

ICatalogManager::RemovePropertyValue


ICatalogManager::get_Catalogs

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

HRESULT ICatalogManager::get_Catalogs(
_Recordset** Catalogs
);

Parameters

Catalogs

[out, retval] A pointer to a _Recordset object used to return the catalogs.

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 either standard or custom COM HRESULT 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
OLE_E_BLANK | 0x80040007 | The object was not initialized. The Initialize method must be called before calling any other method.

Additional information may be available using the global Err object, which can 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

The Catalogs parameter contains valid data only if the property was accessed successfully.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

ICatalogManager::CreateCatalog

ICatalogManager::DeleteCatalog


ICatalogManager::get_CategoryDefinitions

The CategoryDefinitions property is a read-only recordset that contains the names of all the category definitions in the Product Catalog System.

Definition

HRESULT ICatalogManager::get_CategoryDefinitions(
_Recordset** CategoryDefinitions
);

Parameters

CategoryDefinitions

[out, retval] A pointer to a _Recordset object used to return category definitions.

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

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 VARIANT_TRUE.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

ICatalogManager::CreateCategoryDefinition

ICatalogManager::DeleteDefinition


ICatalogManager::CreateCatalog

Use this method to create a new catalog.

Definition

HRESULT ICatalogManager::CreateCatalog(
BSTR strCatalogName,
BSTR strProductID,
VARIANT strProductVariantID,
VARIANT lcidLocale,
VARIANT strCurrency,
VARIANT strWeightMeasure,
VARIANT dtStartDate,
VARIANT dtEndDate,
IProductCatalog** ppNewCatalog
);

Parameters

strCatalogName

[in] A BSTR that contains the name of the catalog to be created. See the Remarks section for a list of restricted characters.

strProductID

[in] A BSTR that contains the product ID property.

strProductVariantID

[in, optional] A VARIANT that contains the product variant ID property.

lcidLocale

[in, optional] A VARIANT that contains the locale ID (LCID) of the catalog to be created.

strCurrency

[in, optional] A VARIANT that contains the currency type of the catalog to be created.

strWeightMeasure

[in, optional] A VARIANT that contains the unit of weight or measure of the catalog to be created.

dtStartDate

[in, optional] A VARIANT of subtype DATE that contains the start date.

dtEndDate

[in, optional] A VARIANT of subtype DATE that contains the end date.

ppNewCatalog

[out, retval] A pointer used to return the IProductCatalog interface of the new catalog.

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 either standard or custom COM HRESULT 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_EXISTS | 0x88980001 | There was already a catalog by that name. Catalog names must be unique throughout the Product Catalog System.
E_CAT_PRODID_DOESNT_EXIST | 0x88980010 | The property you specified for the ProductID did not exist in the Product Catalog System properties.
E_CAT_UPDATE_FREETEXT_INDEX_FAILED | 0x88980015 | This error occurs when full text search is installed but updating the full text search index fails. The catalog is created but full text search does not work. For the catalog to participate in full text searches delete the catalog and recreate it.

Additional information may be available using the global Err object, which can 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

The ppNewCatalog parameter contains valid data only if the method completes successfully.

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 (])

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

ICatalogManager::DeleteCatalog

ICatalogManager::GetCatalog


ICatalogManager::CreateCategoryDefinition

Use this method to create a new category definition.

Definition

HRESULT ICatalogManager::CreateCategoryDefinition(
BSTR strDefinitionName
);

Parameters

strDefinitionName

[in] A BSTR that contains the name of the new category definition.

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 either standard or custom COM HRESULT 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_DEFINITION_EXISTS | 0x8898000A | The specified category definition name already existed.

Additional information may be available using the global Err object, which can 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

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.

See Also

CatalogManager Object

ICatalogManager::AddDefinitionProperty

ICatalogManager::CreateProductDefinition

ICatalogManager::DeleteDefinition


ICatalogManager::CreateProductDefinition

Use this method to create a new product definition.

Definition

HRESULT ICatalogManager::CreateProductDefinition(
BSTR strDefinitionName
);

Parameters

strDefinitionName

[in] A BSTR that contains the name of the new product definition.

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 either standard or custom COM HRESULT 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_DEFINITION_EXISTS | 0x8898000A | The specified product definition name already existed.

Additional information may be available using the global Err object, which can 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

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.

See Also

CatalogManager Object

ICatalogManager::AddDefinitionProperty

ICatalogManager::AddDefinitionVariantProperty

ICatalogManager::CreateCategoryDefinition

ICatalogManager::DeleteDefinition


ICatalogManager::CreateProperty

Use this method to create a new property.

Definition

HRESULT ICatalogManager::CreateProperty(
BSTR strPropertyName,
CatalogDataTypeEnum eDataType,
VARIANT varMaxLength,
_Recordset** ppRSProperty
);

Parameters

strPropertyName

[in] A BSTR that contains the name of the new property. This parameter can only contain characters that are acceptable in XML tags.

eDataType

[in] An enumeration value that specifies the data type of the new property. See the Remarks section for valid values.

varMaxLength

[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, which cannot be changed. Properties of data type cscFilePath have a fixed default value of 256, which cannot be changed.

ppRSProperty

[out, retval] A pointer used to return a Recordset object that will contain the new property.

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 either standard or custom COM HRESULT 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_PROP_EXISTS | 0x88980003 | The specified property name already existed. Property names must be unique across the Product Catalog System.

Additional information may be available using the global Err object, which can 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

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, 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

ICatalogManager::DeleteProperty

ICatalogManager::GetPropertyAttributes

ICatalogManager::SetPropertyAttributes


ICatalogManager::get_CustomCatalogs

The CustomCatalogs property is a read-only recordset that describes the custom catalogs in the Product Catalog System, and the base catalogs on which they are based.

Definition

HRESULT ICatalogManager::get_CustomCatalogs(
_Recordset** CustomCatalogs
);

Parameters

CustomCatalogs

[out, retval] A pointer to a Recordset object used to return descriptions of the custom catalogs in the Product Catalog System.

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

The CustomCatalogs parameter contains valid data only if the property was accessed successfully.

The Recordset object contains the following fields:

Field | Data Type | Description
CustomCatalogName | String, 128 Characters | None
CatalogName | String, 128 Characters | None
CustomCatalogID | Integer | The number that uniquely identifies a catalog.
TimeStamp | timestamp | None

The Recordset object is sorted on the CustomCatalogName field.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

ICatalogManager::get_Catalogs


ICatalogManager::DeleteCatalog

Use this method to delete a catalog and derived custom catalogs from the Product Catalog System.

Definition

HRESULT ICatalogManager::DeleteCatalog(
BSTR strCatalogName
);

Parameters

strCatalogName

[in] A BSTR that contains the name of the catalog to be deleted.

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 either standard or custom COM HRESULT 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 | 0x88980002 | The specified catalog did not exist.

Additional information may be available using the global Err object, which can 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Note

  • 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 and custom catalogs that were derived from it.

See Also

CatalogManager Object

ICatalogManager::CreateCatalog


ICatalogManager::DeleteDefinition

Use this method to delete a definition from the Product Catalog System.

Definition

HRESULT ICatalogManager::DeleteDefinition(
BSTR strDefinitionName,
VARIANT_BOOL fForceDelete
);

Parameters

strDefinitionName

[in] A BSTR that contains the name of the definition to be deleted.

fForceDelete

[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.

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 either standard or custom COM HRESULT 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_DEFINITION_DOESNT_EXIST | 0x8898000B | The definition you specified did not exist.
E_CAT_DEFINITION_USED_IN_CATALOG | 0x8898000C | This error is only returned when the fForceDelete parameter was set to False and the definition was already used in a catalog.

Additional information may be available using the global Err object, which can 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

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.

See Also

CatalogManager Object

ICatalogManager::CreateCategoryDefinition

ICatalogManager::CreateProductDefinition


ICatalogManager::DeleteProperty

Use this method to delete a property from the Product Catalog System.

Definition

HRESULT ICatalogManager::DeleteProperty(
BSTR strPropertyName
);

Parameters

strPropertyName

[in] A BSTR that contains the name of the property to be deleted.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_PROP_DOESNT_EXIST | 0x88980005 | The specified property did not exist.
E_CAT_PROP_IS_ID | 0x88980011 | The specified property is used as either the ProductID property or VariantID property in one or more catalogs. These properties are defined when the catalog is created and cannot be removed.
E_CAT_PROP_STILL_IN_DEF | 0x88980004 | The specified property is used in a definition. Call the RemoveDefinitionProperty method to remove the property from the definition before calling this method.

Additional information may be available using the global Err object, which can 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

ICatalogManager::CreateProperty


ICatalogManager::ExportCSV

Use this method to export catalog data to a comma-separated values format file.

Definition

HRESULT ICatalogManager::ExportCSV(
BSTR strCSVDestination,
BSTR strCatalogToExport
VARIANT_BOOL fRunSynchronously
);

Parameters

strCSVDestination

[in] A BSTR that contains the full path and file name of the export file to be created.

strCatalogToExport

[in] A BSTR that contains the name of the catalog to export.

fRunSynchronously

[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.

Return Values

This method returns an HRESULT indicating it completed successfully.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_IMPORT_IN_PROGRESS | 0x88980025 | 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 | 0x88980018 | The method was unable to create the output file.

Additional information may be available using the global Err object, which can 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

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 comma-separated values (CSV) file generated only contains products. The categories, relationships, and hierarchy are not written to the CSV file.

Note

  • 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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

ICatalogManager::ExportXML

ICatalogManager::ImportCSV


ICatalogManager::ExportXML

Use this method to export catalog data to an Extensible Markup Language (XML) file.

Definition

HRESULT ICatalogManager::ExportXML(
BSTR strXMLFilePath,
VARIANT strCatalogsToExport
VARIANT_BOOL fRunSynchronously
);

Parameters

strXMLFilePath

[in] A BSTR that contains the path and file name of the XML file to be created.

strCatalogsToExport

[in, optional] A VARIANT that contains the catalogs to export. See the Remarks section for more information.

fRunSynchronously

[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.

Return Values

This method returns an HRESULT indicating it completed successfully.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_IMPORT_IN_PROGRESS | 0x88980025 | 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 | 0x88980018 | The method was unable to create the output file.

Additional information may be available using the global Err object, which can 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

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.

Note

  • 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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

ICatalogManager::ExportCSV

ICatalogManager::ImportXML


ICatalogManager::FreeTextSearch

Use this method to perform a free-text search of catalogs.

Definition

HRESULT ICatalogManager::FreeTextSearch(
BSTR strPhrase,
VARIANT strCatalogsToSearch,
VARIANT eClassTypeRequired,
VARIANT strPropertiesToReturn,
VARIANT strPropertyToSortOn,
VARIANT_BOOL fSortAscending,
VARIANT lStartingRecord,
VARIANT lRecordsToRetrieve,
VARIANT* plTotalRecordsInQuery,
_Recordset** ppRSResult
);

Parameters

strPhrase

[in] A BSTR that contains the search phrase.

strCatalogsToSearch

[in, optional] A VARIANT that contains the catalogs to search in a comma-separated list. An empty string indicates search all catalogs.

eClassTypeRequired

[in, optional] A VARIANT that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section below.

strPropertiesToReturn

[in, optional] A VARIANT that contains the properties to return. This is a comma delimited String.

strPropertyToSortOn

[in, optional] VARIANT that contains the property on which to sort. If not included, the returned recordset will be unsorted.

fSortAscending

[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.

lStartingRecord

[in, optional] A VARIANT that contains the number of the starting record to retrieve. This is an offset from the first record.

lRecordsToRetrieve

[in, optional] A VARIANT that contains the number of records to retrieve starting from the starting record.

plTotalRecordsInQuery

[out, optional] A pointer to a VARIANT used to return the number of records returned in the search.

ppRSResult

[out, retval] A pointer to a _Recordset object that will be used to return the query results.

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 either standard or custom COM HRESULT 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_MULTI_CAT_QUERY_NEEDS_PROPS | 0x8898000F | The strPropertiesToReturn parameter must be specified if the search is done across multiple catalogs.
E_CAT_NO_CATALOGS | 0x88980013 | There were no catalogs in the Product Catalog System.

Additional information may be available using the global Err object, which can 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

The plTotalRecordsInQuery and ppRSResult parameters 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 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, 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.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

ICatalogManager::Query


ICatalogManager::GetCatalog

Use this method to retrieve a specified catalog from the Product Catalog System.

Definition

HRESULT ICatalogManager::GetCatalog(
BSTR strCatalogName,
IProductCatalog** ppCatalog
);

Parameters

strCatalogName

[in] A BSTR that contains the name of the catalog to be retrieved.

ppCatalog

[out] A pointer to an IProductCatalog interface used to return the ProductCatalog 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 either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following standard COM error value has a particular meaning in the context of this method:

S_FALSE

The catalog specified did not exist.

Additional information may be available using the global Err object, which can 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

The ppCatalog 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

CatalogManager Object

ICatalogManager::CreateCatalog

ICatalogManager::DeleteCatalog


ICatalogManager::GetDefinitionProperties

Use this method to return the properties of the specified catalog or product definition.

Definition

HRESULT ICatalogManager::GetDefinitionProperties(
BSTR strDefinitionName,
_Recordset** ppRSProperties
);

Parameters

strDefinitionName

[in] A BSTR that contains the name of the definition whose properties will be returned.

ppRSProperties

[out, retval] A pointer to a _Recordset object used to return the properties of the definition.

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 either standard or custom COM HRESULT 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_DEFINITION_DOESNT_EXIST | 0x8898000B | The specified definition did not exist.

Additional information may be available using the global Err object, which can 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

The ppRSProperties parameter 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

ICatalogManager::AddDefinitionProperty

ICatalogManager::AddDefinitionVariantProperty

ICatalogManager::RemoveDefinitionProperty


ICatalogManager::GetPropertyAttributes

Use this method to return the attributes of the specified property.

Definition

HRESULT ICatalogManager::GetPropertyAttributes(
BSTR strPropertyName,
_Recordset** ppRSAttributes
);

Parameters

strPropertyName

[in] A BSTR that contains the name of the property whose attributes will be returned.

ppRSAttributes

[out] A pointer to a _Recordset object used to return the attributes of the property.

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

The ppRSAttributes parameter 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

ICatalogManager::SetPropertyAttributes


ICatalogManager::GetPropertyValues

Use this method to return the list of values defined for an enumeration property.

Definition

HRESULT ICatalogManager::GetPropertyValues(
BSTR strPropertyName,
_Recordset** ppRSPropertyValues
);

Parameters

strPropertyName

[in] A BSTR that contains the name of the enumeration property for which the defined values will be returned.

ppRSPropertyValues

[out, retval] A pointer to a _Recordset object used to return the property values.

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

The ppRSPropertyValues parameter contains 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

ICatalogManager::AddPropertyValue

ICatalogManager::RemovePropertyValue


ICatalogManager::ImportCSV

Use this method to import a comma-separated-value (CSV) format file as catalog data.

Definition

HRESULT ICatalogManager::ImportCSV(
BSTR strCSVFileSource,
BSTR strProductIDColumnName,
BSTR strPriceColumnName,
BSTR strCatalogName,
VARIANT_BOOL fUpdateOnly
VARIANT_BOOL fRunSynchronously
);

Parameters

strCSVFileSource

[in] A BSTR that contains the path and file name of the CSV file to import.

strProductIDColumnName

[in] A BSTR that contains the name of the column that provides a unique ID for products to be imported into the catalog.

strPriceColumnName

[in] A BSTR that contains the name of the column in the CSV file containing the product prices.

strCatalogName

[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 "#" or consist solely of spaces.

fUpdateOnly

[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.

fRunSynchronously

[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.

Return Values

This method returns an HRESULT indicating it completed successfully.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_IMPORT_IN_PROGRESS | 0x88980025 | 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_OPEN_ERROR | 0x88980020 | The method was unable to open the file.

Additional information may be available using the global Err object, which can 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

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 my 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 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.

See Also

CatalogManager Object

ICatalogManager::ExportCSV

ICatalogManager::ImportXML


ICatalogManager::ImportXML

Use this method to import an Extensible Markup Language (XML) file as catalog data.

Definition

HRESULT ICatalogManager::ImportXML(
BSTR strXMLFilePath,
VARIANT_BOOL fUpdateOnly
VARIANT_BOOL fRunSynchronously
);

Parameters

strXMLFilePath

[in] A BSTR that contains the path and file name of the XML file to import.

fUpdateOnly

[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.

fRunSynchronously

[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.

Return Values

This method returns an HRESULT indicating it completed successfully.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_IMPORT_IN_PROGRESS | 0x88980025 | 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_OPEN_ERROR | 0x88980020 | The method was unable to open the file.

Additional information may be available using the global Err object, which can 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Note

  • 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 ImportXMLmethod 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 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 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.

See Also

CatalogManager Object

ICatalogManager::ExportXML

ICatalogManager::ImportCSV


ICatalogManager::Initialize

Use this method to initialize a CatalogManager object. This method should be called once before calling any other methods or properties.

Definition

HRESULT ICatalogManager::Initialize(
BSTR strConfigString,
VARIANT_BOOL fIsADOConnectionString
);

Parameters

strConfigString

[in] A BSTR that contains the configuration string.

fIsADOConnectionString

[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.

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 either standard or custom COM HRESULT 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 | 0x88980062 | The CatalogManager objects was already initialized.

Additional information may be available using the global Err object, which can 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object


ICatalogManager::get_ProductDefinitions

The ProductDefinitions property is a read-only Recordset object that contains the names of all the product definitions in the Product Catalog System.

Definition

HRESULT ICatalogManager::get_ProductDefinitions(
_Recordset** ProductDefinitions
);

Parameters

ProductDefinitions

[out, retval] A pointer to a _Recordset object used to return the product definitions.

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

The ProductDefinitions 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 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

CatalogManager Object

ICatalogManager::CreateProductDefinition

ICatalogManager::DeleteDefinition


ICatalogManager::get_Properties

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

HRESULT ICatalogManager::Properties(
VARIANT strCatalogName,
_Recordset** ppRSProperties
);

Parameters

strCatalogName

[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.

ppRSProperties

[out] A pointer to a _Recordset object used to return the properties.

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

The Properties parameter 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

ICatalogManager::CreateProperty

ICatalogManager::DeleteProperty


ICatalogManager::Query

Use this method to perform queries against product, variant, and category data in one or more catalogs.

Definition

HRESULT ICatalogManager::Query(
BSTR strPhrase,
VARIANT strCatalogsToSearch,
VARIANT eClassTypeRequired,
VARIANT strPropertiesToReturn,
VARIANT strPropertyToSortOn,
VARIANT_BOOL fSortAscending,
VARIANT lStartingRecord,
VARIANT lRecordsToRetrieve,
VARIANT* plTotalRecordsInQuery,
_Recordset** ppRSResult
);

Parameters

strPhrase

[in] A BSTR that contains the search phrase.

strCatalogsToSearch

[in, optional] A VARIANT that contains the catalogs to search as a comma-separated list. An empty string indicates search all catalogs.

eClassTypeRequired

[in, optional] A Variant that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section below.

strPropertiesToReturn

[in, optional] A VARIANT that contains the properties to return as a comma-separated list.

strPropertyToSortOn

[in, optional] A VARIANT that contains the property on which to sort.

fSortAscending

[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.

lStartingRecord

[in, optional] A VARIANT that contains the starting record to retrieve. This is an offset from the first record.

lRecordsToRetrieve

[in, optional] A VARIANT that contains the number of records to retrieve, beginning from the starting record.

plTotalRecordsInQuery

[out, optional] A pointer to a VARIANT used to return the total number of records matching the query.

ppRSResult

[out, retval] A pointer to a _Recordset object used to return the search results.

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 either standard or custom COM HRESULT 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_MULTI_CAT_QUERY_NEEDS_PROPS | 0x8898000F | The strPropertiesToReturn parameter must be specified if the search is done across multiple catalogs.
E_CAT_NO_CATALOGS | 0x88980013 | There were no catalogs in the Product Catalog System.

Additional information may be available using the global Err object, which can 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

The plTotalRecordsInQuery and ppRSResult parameters 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 similarly 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 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.

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.

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.

See Also

CatalogManager Object

ICatalogManager::FreeTextSearch


ICatalogManager::RemoveDefinitionProperty

Use this method to remove the specified property or variant property from the specified definition.

Definition

HRESULT ICatalogManager::RemoveDefinitionProperty(
BSTR strDefinitionName,
BSTR strPropertyName
);

Parameters

strDefinitionName

[in] A BSTR that contains the name of the definition for which the specified property will be removed.

strPropertyName

[in] A BSTR that contains the name of the property to be removed.

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 either standard or custom COM HRESULT 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_DEFINITION_DOESNT_EXIST | 0x8898000B | The specified definition did not exist.
E_CAT_PROP_NOT_IN_DEFINITION | 0x8898000E | The specified property was not included in this definition.

Additional information may be available using the global Err object, which can 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

When you remove a property from a definition, it is also removed from any products, product-variants, or categories created from that definition.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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.

See Also

CatalogManager Object

ICatalogManager::AddDefinitionProperty

ICatalogManager::AddDefinitionVariantProperty

ICatalogManager::GetDefinitionProperties


ICatalogManager::RemovePropertyValue

Use this method to remove a defined value from an enumeration property.

Definition

HRESULT ICatalogManager::RemovePropertyValue(
BSTR strPropertyName,
BSTR strLegalValue
);

Parameters

strPropertyName

[in] A BSTR that contains the name of the enumeration property from which the specified value will be removed.

strLegalValue

[in] A BSTR that contains the defined value to be removed as a choice from the specified enumeration property.

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 either standard or custom COM HRESULT 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_PROP_DOESNT_EXIST | 0x88980005 | The specified property did not exist.
E_CAT_PROP_NOT_ENUM | 0x88980007 | The specified property was not of type cscEnumeration. Call this method only for enumeration type properties.

Additional information may be available using the global Err object, which can 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

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.

See Also

CatalogManager Object

ICatalogManager::AddPropertyValue

ICatalogManager::GetPropertyValues


ICatalogManager::RenameDefinition

Use this method to rename a definition.

Definition

HRESULT ICatalogManager::RenameDefinition(
BSTR strOldName,
BSTR strNewName
);

Parameters

strOldName

[in] A BSTR that contains the existing name of the definition.

strNewName

[in] A BSTR that contains the wanted name of the definition.

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 either standard or custom COM HRESULT 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_DEFINITION_DOESNT_EXIST | 0x8898000B | The specified old definition name did not exist.
E_CAT_DEFINITION_EXISTS | 0x8898000A | A definition with the specified new name already existed.

Additional information may be available using the global Err object, which can 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

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.

See Also

CatalogManager Object

ICatalogManager::RenameProperty


ICatalogManager::RenameProperty

Use this method to rename a property.

Definition

HRESULT ICatalogManager::RenameProperty(
BSTR strOldPropertyName,
BSTR strNewPropertyName
);

Parameters

strOldPropertyName

[in] A BSTR that contains the existing name of the property.

strNewPropertyName

[in] A BSTR that contains the wanted name of the property.

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 either standard or custom COM HRESULT 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_PROP_DOESNT_EXIST | 0x88980005 | The specified old property name did not exist.
E_CAT_PROP_EXISTS | 0x88980003 | A property with the specified new property name already existed.
E_CAT_PROP_IS_ID | 0x88980011 | The property name you specified was used as a ProductID or VariantID of a catalog. These properties are specified when a catalog is created and cannot be renamed or deleted.

Additional information may be available using the global Err object, which can 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

ICatalogManager::RenameDefinition


ICatalogManager::SetDefinitionProperties

Use this method to change the properties of a category or product definition.

Definition

HRESULT ICatalogManager::SetDefinitionProperties(
BSTR strDefinitionName,
Recordset* pRSProperties,
);

Parameters

strDefinitionName

[in] A BSTR that contains the name of the definition.

pRSProperties

[in] A reference to a _Recordset that specifies the new properties.

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 either standard or custom COM HRESULT 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_PROP_DOESNT_EXIST | 0x88980005 | There was no property with the name you specified.
E_CAT_PROP_CHANGED | 0x88980006 | The attributes of the property have changed since the property was last read. This error occurs when the sForceUpdate parameter is False, and the attributes were modified after a call to the CreateProperty or GetPropertyAttributes methods.

Additional information may be available using the global Err object, which can 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

ICatalogManager::CreateProperty


ICatalogManager::SetPropertyAttributes

Use this method to change the attributes of a property.

Definition

HRESULT ICatalogManager::SetPropertyAttributes(
_Recordset* pRSNewState,
VARIANT fForceUpdate
);

Parameters

pRSNewState

[in] A reference to a _Recordset object that specifies the new attribute values.

fForceUpdate

[in, optional] A VARIANT that specifies whether or not to force an update.

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 either standard or custom COM HRESULT 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_PROP_CHANGED | 0x88980006 | The attributes of the property have changed since the property was last read. This error occurs when the sForceUpdate parameter is False, and the attributes were modified after a call to the CreateProperty or GetPropertyAttributes methods.
E_CAT_PROP_DOESNT_EXIST | 0x88980005 | There was no property with the name you specified.

Additional information may be available using the global Err object, which can 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

Use a Recordset object returned from either the GetPropertyAttributes method or the CreateProperty method as the pRSNewState parameter so that its timestamp can be compared with the timestamp of the existing property for error detection. You can change all attributes for a property except its data type.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager Object

ICatalogManager::CreateProperty

ICatalogManager::GetPropertyAttributes


CatalogSets Object

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.

ProgID: | Commerce.CatalogSets (Externally creatable)
COM Class Name: | CatalogSets
COM Interface Name: | _CatalogSets
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 Catalog Sets Type Library
DLL Name: | CatalogSets.dll
Threading Model: | Apartment

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.

The methods of the CatalogSets object are shown in the following table.

Method | Description
CreateCatalogSet | Creates a new catalog set.
DeleteCatalogSet | Deletes the specified catalog set.
GetCatalogs | Returns a list of all catalogs.
GetCatalogSetIDForUser | Returns the CatalogSetID 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

Use this method to create a new catalog set in the catalog database.

Definition

HRESULT _CatalogSets::CreateCatalogSet(
BSTR CatalogSetName,
BSTR CatalogSetDescription,
VARIANT_BOOL bWildCard,
_Recordset* CatalogNamesRS,
BSTR* CatalogSetID
);

Parameters

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 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.

CatalogSetID

[out, retval] A pointer to a BSTR used to return the automatically generated ID (GUID) of the new catalog set.

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

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.

See Also

CatalogSets Object


_CatalogSets::DeleteCatalogSet

Use this method to delete an existing catalog set from the Catalog database.

Definition

HRESULT _CatalogSets::DeleteCatalogSet(
BSTR CatalogSetID
);

Parameters

CatalogSetID

[in] A BSTR that contains the GUID of the catalog set to be deleted.

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

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.

See Also

CatalogSets Object


_CatalogSets::GetCatalogs

Use this method to return a list of all catalogs.

Definition

HRESULT _CatalogSets::GetCatalogs(
_Recordset** unnamed parameter
);

Parameters

unnamed parameter

[out, retval] A pointer to hold the reference to the returned _Recordset object, which will contain the unnamed parameter.

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

The unnamed parameter 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.

See Also

CatalogSets Object


_CatalogSets::GetCatalogSetIDForUser

Use this method to return the CatalogSetID for a specific user.

Definition

HRESULT _CatalogSets::GetCatalogSetIDForUser(
IDispatch* objProfileService,
BSTR user_id,
BSTR defaultCatalogSetID,
VARIANT* unnamed parameter
);

Parameters

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.

unnamed parameter

[out, retval] A pointer to a VARIANT used to return the catalog set ID.

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

The unnamed parameter 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.

See Also

CatalogSets Object

ProfileService Object


_CatalogSets::GetCatalogSetInfo

Use this method to return the basic properties for a catalog set.

Definition

HRESULT _CatalogSets::GetCatalogSetInfo(
BSTR CatalogSetID,
_Recordset** unnamed parameter
);

Parameters

CatalogSetID

[in] A BSTR that contains the catalog set ID, a GUID.

unnamed parameter

[out, retval] A pointer to hold the reference to the returned _Recordset object, which will contain the unnamed parameter.

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

The unnamed parameter 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.

See Also

CatalogSets Object


_CatalogSets::GetCatalogSets

Use this method to return a list of all catalog sets.

Definition

HRESULT _CatalogSets::GetCatalogSets(
_Recordset** unnamed parameter
);

Parameters

unnamed parameter

[out, retval] A pointer to hold the reference to the returned _Recordset object, which will contain the unnamed parameter.

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

The unnamed parameter 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.

See Also

CatalogSets Object


_CatalogSets::GetCatalogsForUser

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

HRESULT _CatalogSets::GetCatalogsForUser(
IDispatch* objProfileService,
BSTR user_id,
BSTR defaultCatalogSetID,
_Recordset** unnamed parameter
);

Parameters

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.

unnamed parameter

[out, retval] A pointer to hold the reference to the returned _Recordset object, which will contain the unnamed parameter.

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

The unnamed parameter 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.

See Also

CatalogSets Object


_CatalogSets::GetCatalogsInCatalogSet

Use this method to return the catalogs that are included in a particular catalog set.

Definition

HRESULT _CatalogSets::GetCatalogsInCatalogSet(
BSTR CatalogSetID,
_Recordset** unnamed parameter
);

Parameters

CatalogSetID

[in] A BSTR that contains the catalog set ID.

unnamed parameter

[out, retval] A pointer to hold the reference to the returned _Recordset object, which will contain the unnamed parameter.

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

The unnamed parameter 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.

See Also

CatalogSets Object


_CatalogSets::GetCatalogsNotInCatalogSet

Use this method to return the catalogs that are not included in a specified catalog set.

Definition

HRESULT _CatalogSets::GetCatalogsNotInCatalogSet(
BSTR CatalogSetID,
_Recordset** unnamed parameter
);

Parameters

CatalogSetID

[in] A BSTR that contains the catalog set ID.

unnamed parameter

[out, retval] A pointer to hold the reference to the returned _Recordset, which will contain the unnamed parameter.

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

The unnamed parameter 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.

See Also

CatalogSets Object


_CatalogSets::Initialize

Use this method to initialize a new CatalogSet object.

Definition

HRESULT _CatalogSets::Initialize(
BSTR CatalogConnectionString,
BSTR TransactionConfigConnectionString
);

Parameters

CatalogConnectionString

[in] A BSTR that contains the catalog connection string.

TransactionConfigConnectionString

[in] A BSTR that contains the transaction configuration connection string. Not used

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

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.

See Also

CatalogSets Object


_CatalogSets::RemoveCatalogFromCatalogSets

Use this method to remove a catalog from all catalog sets.

Definition

HRESULT _CatalogSets::RemoveCatalogFromCatalogSets(
BSTR CatalogName
);

Parameters

CatalogName

[in] A BSTR that contains the catalog name to be removed.

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

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.

See Also

CatalogSets Object


_CatalogSets::UpdateCatalogSet

Use this method to update an existing catalog set and its basic properties.

Definition

HRESULT _CatalogSets::UpdateCatalogSet(
BSTR CatalogSetID,
BSTR CatalogSetName,
BSTR CatalogSetDescription,
VARIANT_BOOL bWildCard,
_Recordset* CatalogNamesRS
);

Parameters

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.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogSets Object


CatalogToVendorAssociation Object

Use this object to associate catalogs with vendors.

ProgID: | Commerce.CatalogToVendorAssociation (Externally creatable)
COM Class Name: | CatalogToVendorAssociation
COM Interface Name: | _CatalogToVendorAssociation
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 Catalog Vendor Association Type Library
DLL Name: | CatalogVendorAssociation.dll
Threading Model: | Apartment

In C++, use the _CatalogToVendorAssociation interface to access the properties and methods of the CatalogToVendorAssociation object.

The methods of the CatalogToVendorAssociation object are shown in the following table.

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

Use this method to retrieve information about the vendor associated with the specified catalog.

Definition

HRESULT _CatalogToVendorAssociation::GetVendorInfoForCatalog(
BSTR szCatalogID,
_Recordset** rsVendorInfo
);

Parameters

szCatalogID

[in] A BSTR that contains the ID of the catalog for which vendor information will be returned.

rsVendorInfo

[out, retval] The address of a pointer used to return an ADO _Recordset object containing the requested vendor information.

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

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.

See Also

CatalogToVendorAssociation Object


_CatalogToVendorAssociation::GetVendorList

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

HRESULT _CatalogToVendorAssociation::GetVendorList(
BSTR szSourceAliasQualifier,
BSTR szSourceAliasValue,
BSTR szInputDocumentName,
_Recordset** rsVendorList
);

Parameters

szSourceAliasQualifier

[in] A BSTR that contains the source alias qualifier.

szSourceAliasValue

[in] A BSTR that contains the source alias value.

szInputDocumentName

[in] A BSTR that contains the input document name.

rsVendorList

[out, retval] The address of a pointer used to return an ADO _Recordset object containing the requested list of vendors.

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

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.

See Also

CatalogToVendorAssociation Object


_CatalogToVendorAssociation::Initialize

Use this method to initialize a CatalogToVendorAssociation object.

Definition

HRESULT _CatalogToVendorAssociation::Initialize(
BSTR vConnectionString
);

Parameters

vConnectionString

[in] A BSTR that contains the connection string for the database containing the catalog to vendor associations.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogToVendorAssociation Object


_CatalogToVendorAssociation::SpecifyVendorForCatalog

Use this method to associate a vendor with a particular catalog.

Definition

HRESULT _CatalogToVendorAssociation::SpecifyVendorForCatalog(
BSTR szCatalogID,
BSTR szVendorQualifier,
BSTR szVendorQualifierValue,
BSTR szVendorName
);

Parameters

szCatalogID

[in] A BSTR that contains the identifier of the catalog with which to associated the specified vendors.

szVendorQualifier

[in] A BSTR that contains the qualifier of the vendor to be associated with the specified catalog.

szVendorQualifierValue

[in] A BSTR that contains the qualifier value of the vendor to be associated with the specified catalog.

szVendorName

[in] A BSTR that contains the name of the vendor to be associated with the specified catalog.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogToVendorAssociation Object


_CatalogToVendorAssociation::UnspecifyVendorForCatalog

Use this method to disassociate a catalog with any previously associated vendors.

Definition

HRESULT _CatalogToVendorAssociation::UnspecifyVendorForCatalog(
BSTR szCatalogID
);

Parameters

szCatalogID

[in] A BSTR that contains the identifier of the catalog for which no vendors should be associated.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogToVendorAssociation Object


Category Object

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
COM Interface Name: | ICategory
Interface ID Constant: | IID_ICategory
Header File: | Catalog.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Catalog Type Library
DLL Name: | Catalog.dll
Threading Model: | Both

In C++, use the ICategory 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.

The properties of the Category object are shown in the following table.

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.
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.

The methods of the Category object are shown in the following table.

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.
SetCategoryProperties | Assigns new properties to a category.

Remarks

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


ICategory::AddChildCategory

Use this method to add a category as a child to this category.

Definition

HRESULT ICategory::AddChildCategory(
BSTR strCategoryName
);

Parameters

strCategoryName

[in] A BSTR that contains the name of the category to be added as a child to this category.

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 either standard or custom COM HRESULT 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_CATEGORY_ALREADY_ADDED | 0x8898002D | The specified category has already been added as child to this category.
E_CAT_CATEGORY_DOESNT_EXIST | 0x8898001C | The specified category did not exist.
E_CAT_INVALID_CHILDCATEGORY | 0x8898005D | The category that you specified already exists as a parent of this category.
E_CAT_INVALID_RELATION | 0x88980039 | A category cannot be a parent or child of itself.

Additional information may be available using the global Err object, which can 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Category Object

ICategory::AddParentCategory

ICategory::RemoveChildCategory


ICategory::AddParentCategory

Use this method to add the specified category as a parent of this category.

Definition

HRESULT ICategory::AddParentCategory(
BSTR strCategoryName
);

Parameters

strCategoryName

[in] A BSTR that contains the name of the category to be added as a parent to this category.

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 either standard or custom COM HRESULT 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_CATEGORY_ALREADY_ADDED | 0x8898002D | The specified category was already a child of this category.
E_CAT_CATEGORY_DOESNT_EXIST | 0x8898001C | The specified category did not exist.
E_CAT_PARENT_CAT_EXISTS_AS_CHILD | 0x88980052 | The category that you specified as a parent category already existed as a child category for this category.
E_CAT_INVALID_RELATION | 0x88980039 | A category cannot be a parent or child of itself.

Additional information may be available using the global Err object, which can 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Category Object

ICategory::AddChildCategory

ICategory::RemoveParentCategory


ICategory::AddProduct

Use this method to add the specified product to this category.

Definition

HRESULT ICategory::AddProduct(
VARIANT varProductID
);

Parameters

varProductID

[in] A VARIANT that contains the of the product to be added.

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 either standard or custom COM HRESULT 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_PRODUCT_DOESNT_EXIST | 0x8898001E | The specified product did not exist in the catalog.
E_CAT_PRODUCT_ALREADY_ADDED | 0x88980029 | The specified product was already in this category.

Additional information may be available using the global Err object, which can 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

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.

See Also

Category Object

ICategory::RemoveProduct


ICategory::AddRelationshipToCategory

Use this method to add a relationship from this category to another specified category.

Definition

HRESULT ICategory::AddRelationshipToCategory(
BSTR strRelatedCategoryName,
BSTR strRelationshipName,
VARIANT strRelationshipDescription
);

Parameters

strRelatedCategoryName

[in] A BSTR that contains the name of the category to which a relationship is to be added.

strRelationshipName

[in] A BSTR that contains a name for the relationship.

strRelationshipDescription

[in, optional] A VARIANT of sub type String that contains an optional description for the relationship.

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 either standard or custom COM HRESULT 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_CATEGORY_DOESNT_EXIST | 0x8898001C | The specified category did not exist.
E_CAT_INVALID_RELATION | 0x88980039 | The relationship was invalid. A category or product cannot be related to itself.
E_CAT_INVALID_RELATION_DESC | 0x88980055 | The relationship description exceeded 256 characters.
E_CAT_INVALID_RELATION_NAME | 0x88980054 | The relationship name exceeded 128 characters.
E_CAT_RELATIONSHIP_EXISTS | 0x88980033 | The specified relationship already existed.

Additional information may be available using the global Err object, which can 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Category Object

ICategory::RemoveRelationshipToCategory


ICategory::AddRelationshipToProduct

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

HRESULT ICategory::AddRelationshipToProduct(
VARIANT varRelatedProductID,
BSTR strRelationshipName,
VARIANT strRelationshipDescription
);

Parameters

varRelatedProductID

[in] A VARIANT that contains the ID of the related product.

strRelationshipName

[in] A BSTR that contains a name for the relationship.

strRelationshipDescription

[in, optional] A VARIANT that contains an optional description for the relationship.

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 either standard or custom COM HRESULT 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_RELATION | 0x88980039 | The relationship was invalid. A category or product cannot be related to itself
E_CAT_INVALID_RELATION_DESC | 0x88980055 | The relationship description exceeded 256 characters
E_CAT_INVALID_RELATION_NAME | 0x88980054 | The relationship name exceeded 128 characters
E_CAT_PRODUCT_DOESNT_EXIST | 0x8898001E | The specified product did not exist.
E_CAT_RELATIONSHIP_EXISTS | 0x88980033 | There was already a relationship with the specified product.

Additional information may be available using the global Err object, which can 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Category Object

ICategory::RemoveRelationshipToProduct


ICategory::get_AncestorCategories

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

HRESULT ICategory::get_AncestorCategories(
_Recordset** AncestorCategories
);

Parameters

AncestorCategories

[out, retval] A _Recordset object used to return the ancestor categories.

Return Values

This method returns an HRESULT indicating whether it completed successfully.

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

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, named Name.

See Also

Category Object

ICategory::get_ParentCategories

ICategory::get_ChildCategories


ICategory::get_CatalogName

The CatalogName property is a read-only String that contains the name of the catalog within which this category exists.

Definition

HRESULT ICategory::get_CatalogName(
BSTR* CatalogName
);

Parameters

CatalogName

[out, retval] A BSTR used to return the catalog name.

Return Values

This method returns an HRESULT indicating whether it completed successfully.

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

The CatalogName parameter contains valid data only if the property is accessed successfully.

See Also

Category Object


ICategory::get_CategoryName

The CategoryName property is a read-only String that contains the name of this category.

Definition

HRESULT ICategory::get_CategoryName(
BSTR* CategoryName
);

Parameters

CategoryName

[out, retval] A BSTR used to return the category name.

Return Values

This method returns an HRESULT indicating whether it completed successfully.

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

The CategoryName parameter contains valid data only if the property is accessed successfully.

See Also

Category Object


ICategory::get_ChildCategories

The ChildCategories property is a read-only Recordset object that contains the names of categories that exist below this category in the hierarchy.

Definition

HRESULT ICategory::get_ChildCategories(
_Recordset** ChildCategories
);

Parameters

ChildCategories

[out, retval] A _Recordset object used to return the child categories.

Return Values

This method returns an HRESULT indicating whether it completed successfully.

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

The ChildCategories parameter 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.

If this category 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

Category Object

ICategory::get_ParentCategories

ICategory::get_AncestorCategories


ICategory::get_DescendantProducts

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

HRESULT ICategory::get_DescendantProducts(
VARIANT eClassTypeRequired,
VARIANT lStartingRecord,
VARIANT lRecordsToRetrieve,
VARIANT* plTotalRecordsInQuery,
_Recordset** DescendantProducts
);

Parameters

eClassTypeRequired

[in, optional] A VARIANT that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration. For more information, see the Remarks section.

lStartingRecord

[in, optional] A VARIANT that contains the starting record.

lRecordsToRetrieve

[in, optional] A VARIANT that contains the number of records to retrieve.

plTotalRecordsInQuery

[out, optional] A pointer to a VARIANT used to return the total number of records in the query.

DescendantProducts

[out, retval] A _Recordset object used to return the descendant products.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

The DescendantProducts parameter contains valid data only if the property is accessed successfully.

This property gets all the products, which 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Category Object

ICategory::get_RelatedProducts

ICategory::get_Products


ICategory::get_GetCategoryProperties

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

HRESULT ICategory::get_GetCategoryProperties(
_Recordset** GetCategoryProperties
);

Parameters

GetCategoryProperties

[out, retval] A _Recordset object used to return the category properties.

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 either standard or custom COM HRESULT 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_CATEGORY_DOESNT_EXIST | 0x8898001C | This category has been removed from the catalog.

Additional information may be available using the global Err object, which can 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

The GetCategoryProperties parameter 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 recordset returned is updateable, but disconnected. If this category has been deleted from the database, this property returns an error.

See Also

Category Object

ICategory::SetCategoryProperties


ICategory::get_ParentCategories

The ParentCategories property is a read-only recordset that contains the names of the parent categories of this category.

Definition

HRESULT ICategory::get_ParentCategories(
_Recordset** ParentCategories
);

Parameters

ParentCategories

[out, retval] A _Recordset object used to return the parent categories.

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

The ParentCategories parameter 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 single 128-character string column named Name, and one row for each parent that exists.

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

Category Object

ICategory::get_AncestorCategories

ICategory::get_ChildCategories


ICategory::get_Products

The Products property is a read-only recordset that contains product data for all of the products that exist directly within this category.

Definition

HRESULT ICategory::get_Products(
VARIANT eClassTypeRequired,
VARIANT strPropertyToSortOn,
VARIANT lStartingRecord,
VARIANT lRecordsToRetrieve,
VARIANT* plTotalRecordsInQuery,
_Recordset** Products
);

Parameters

eClassTypeRequired

[in, optional] A VARIANT that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration. For more information, see the Remarks section.

strPropertyToSortOn

[in, optional] A VARIANT that contains the property to sort on.

lStartingRecord

[in, optional] A VARIANT that contains the starting record number.

lRecordsToRetrieve

[in, optional] A VARIANT that contains the number of records to retrieve.

plTotalRecordsInQuery

[out, optional] A pointer to a VARIANT used to return the total number of records in the query.

Products

[out, retval] A _Recordset object used to return the products.

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

The Products parameter contains valid data only if the property is accessed successfully.

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 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.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Category Object

ICategory::get_DescendantProducts

ICategory::get_RelatedProducts


ICategory::get_RelatedCategories

The RelatedCategories property is a read-only recordset that contains all categories related to this category.

Definition

HRESULT ICategory::get_RelatedCategories(
_Recordset** RelatedCategories
);

Parameters

RelatedCategories

[out, retval] A _Recordset object used to return the related categories.

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

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.

See Also

Category Object

ICategory::get_AncestorCategories

ICategory::get_ChildCategories

ICategory::get_ParentCategories

ICategory::AddRelationshipToCategory

ICategory::RemoveRelationshipToCategory


ICategory::get_RelatedProducts

The RelatedProducts property is a read-only recordset containing information about all products related to this category.

Definition

HRESULT ICategory::get_RelatedProducts(
_Recordset** RelatedProducts
);

Parameters

RelatedProducts

[out, retval] A _Recordset object used to return the related products.

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

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
<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.

See Also

Category Object

ICategory::get_DescendantProducts

ICategory::get_Products

ICategory::AddRelationshipToProduct

ICategory::RemoveRelationshipToProduct


ICategory::RemoveChildCategory

Use this method to remove a category that is a child of this category.

Definition

HRESULT ICategory::RemoveChildCategory(
BSTR strCategoryName
);

Parameters

strCategoryName

[in] A BSTR that contains the name of the category to be removed as a child of this category.

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 either standard or custom COM HRESULT 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_CATEGORY_DOESNT_EXIST | 0x8898001C | The category you specified either did not exist or was not a child of this category.

Additional information may be available using the global Err object, which can 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Category Object

ICategory::AddChildCategory

ICategory::RemoveParentCategory


ICategory::RemoveParentCategory

Use this method to remove the specified category as a parent of this category.

Definition

HRESULT ICategory::RemoveParentCategory(
BSTR strCategoryName
);

Parameters

strCategoryName

[in] A BSTR that contains the name of the category to be removed as a parent to this category.

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 either standard or custom COM HRESULT 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_CATEGORY_DOESNT_EXIST | 0x8898001C | The category you specified either did not exist or was not a parent of this category.

Additional information may be available using the global Err object, which can 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Category Object

ICategory::AddParentCategory

ICategory::RemoveChildCategory


ICategory::RemoveProduct

Use this method to remove a product from this category.

Definition

HRESULT ICategory::RemoveProduct(
VARIANT varProductID
);

Parameters

varProductID

[in] A VARIANT that contains the product ID.

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 either standard or custom COM HRESULT 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_PRODUCT_DOESNT_EXIST | 0x8898001E | The product you specified did not exist.

Additional information may be available using the global Err object, which can 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Category Object

ICategory::AddProduct


ICategory::RemoveRelationshipToCategory

Use this method to remove a relationship between the specified category and this category.

Definition

HRESULT ICategory::RemoveRelationshipToCategory(
BSTR strRelatedCategoryName,
BSTR strRelationshipName
);

Parameters

strRelatedCategoryName

[in] A BSTR that contains the name of the related category.

strRelationshipName

[in] A BSTR that contains the name of the relationship.

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 either standard or custom COM HRESULT 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_CATEGORY_DOESNT_EXIST | 0x8898001C | The category you specified either did not exist or was not a parent of this category.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | 0x88980045 | The specified relationship did not exist.

Additional information may be available using the global Err object, which can 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

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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Category Object

ICategory::AddRelationshipToCategory

ICategory::RemoveRelationshipToProduct


ICategory::RemoveRelationshipToProduct

Use this method to remove a relationship between the specified product and this category.

Definition

HRESULT ICategory::RemoveRelationshipToProduct(
VARIANT varRelatedProductID,
BSTR strRelationshipName
);

Parameters

varRelatedProductID

[in] A VARIANT that contains the ID of the related product.

strRelationshipName

[in] A BSTR that contains the name of the relationship.

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 either standard or custom COM HRESULT 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_DEFN_NO_RELATIONSHIP_EXISTS 0x88980045
            The specified relationship did not exist.
    E_CAT_PRODUCT_DOESNT_EXIST | 0x8898001E | The specified product did not exist.

    Additional information may be available using the global Err object, which can 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

    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 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.

    For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

    See Also

    Category Object

    ICategory::AddRelationshipToProduct


ICategory::SetCategoryProperties

Use this method to set values for the properties of this category.

Definition

HRESULT ICategory::SetCategoryProperties(
_Recordset* pRSCategory,
VARIANT fForceUpdate
);

Parameters

pRSCategory

[in] A reference to a Recordset object that contains the properties for this category.

fForceUpdate

[in, optional] A VARIANT that causes a forced update of the category properties.

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 either standard or custom COM HRESULT 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_CATEGORY_CHANGED | 0x88980028 | The properties of this category have changed since they were last read. This error is returned only if the fForceUpdate parameter is set to False.
E_CAT_CATEGORY_DOESNT_EXIST | 0x8898001C | This category has been removed from the catalog.
E_CAT_INVALIDVALUE_FOR_PROPERTY 0x88980038 This error is returned if:
  • One of the properties did not satisfy the Min/Max condition.

  • The properties of string or enumeration data type exceeded the maximum length.

  • The value of the enumeration property was not one of the legal values defined.
E_CAT_NULL_PRICE_NOT_ALLOWED | 0x8898003F | The OriginalPrice field in the pRSCategory recordset was blank or NULL. This field is required if the category is used as a pricing category.

Additional information may be available using the global Err object, which can 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

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 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Category Object


ContentList Object

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
COM Interface Name: | IContentList
Interface ID Constant: | IID_IContentList
Header File: | cacheint.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both

In C++, use the IContentList and IDataContainer interfaces to access the methods and properties of a ContentList object.

The properties of the ContentList object are shown in the following table.

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 or not 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.

The methods of the ContentList object are shown in the following table.

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.

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.

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.

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::get_ActiveRows

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

Get method:

HRESULT IContentList::get_ActiveRows(
IRowCollection** ActiveRows
);

Parameters

ActiveRows

[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.

Return Values

This method returns an HRESULT indicating whether or not 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

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

ContentList Object

RowCollection Object


IContentList::AdjustScore

Use this method to adjust the score of an item in the ContentList object by applying a multiplier.

Definition

HRESULT IContentList::AdjustScore(
long RowNum,
float Multiplier,
BSTR Component,
BSTR Description
);

Parameters

RowNum

[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).

Multiplier

[in] A float that contains the value by which the score will be multiplied.

Component

[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.

Description

[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.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

ContentList Object


IContentList::get_AllRows

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

Get method:

HRESULT IContentList::get_AllRows(
IRowCollection** AllRows
);

Parameters

AllRows

[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.

Return Values

This method returns an HRESULT indicating whether or not 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

This property is functionally identical to the one of the same name to be found in the ContentListFactory object.

See Also

ContentList Object


IContentList::BuildIndex

Use this method to build an index for a specific column in a ContentList object.

Definition

HRESULT IContentList::BuildIndex(
VARIANT vCol
);

Parameters

vCol

[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.

Return Values

This method returns an HRESULT indicating whether or not 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.

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.

See Also

ContentList Object


IContentList::get_Count, put_Count

The Count property is a read/write number that gets or sets the number of items in a ContentList object.

Definition

Get method:

HRESULT IContentList::get_Count(
long* Count
);

Put method:

HRESULT IContentList::put_Count(
long Count
);

Parameters

Count

[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.

Return Values

These methods return an HRESULT indicating whether or not they 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

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

ContentList Object


IContentList::get_Factory

The Factory property is a read-only pointer to the IContentListFactory interface of the ContentListFactory object that created this ContentList object.

Definition

Get method:

HRESULT IContentList::get_Factory(
IContentListFactory** Factory
);

Parameters

Factory

[out,retval] The address of a pointer used to return the IContentListFactory interface of the ContentListFactory object that created this ContentList object.

Return Values

This method returns an HRESULT indicating whether or not 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

ContentList Object


IContentList::get_Fields

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

Get method:

HRESULT IContentList::get_Fields(
long RowNum,
Fields** Fields
);

Parameters

RowNum

[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).

Fields

[out,retval] The address of a pointer used to return a Fields object for the specified row in the ContentList object.

Return Values

This method returns an HRESULT indicating whether or not 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

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

ContentList Object


IContentList::Filter

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

HRESULT IContentList::Filter(
VARIANT vColumn,
VARIANT vFilterCriteria,
FilterActionEnum FilterAction,
BSTR Component
);

Parameters

vColumn

[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.

vFilterCriteria

[in] A VARIANT that contains the filter criterion. The criterion is either a single BSTR, a SAFEARRAY of BSTRs, or an Integer.

FilterAction

[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.

Component

[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.

Return Values

This method returns an HRESULT indicating whether or not 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

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 2000 pass their own Programmatic Identifier (ProgID) for the Component parameter.

See Also

ContentList Object


IContentList::GetData

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++.

Definition

HRESULT IContentList::GetData(
long iRow,
long iCol,
BYTE* pData
);

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.

Return Values

This method returns an HRESULT indicating whether or not 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

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

ContentList Object


IContentList::GetScore

Use this method to retrieve the score of an item in a ContentList object.

Definition

HRESULT IContentList::GetScore(
long RowNum,
float* Score
);

Parameters

RowNum

[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).

Score

[out,retval] A pointer to a float used to return the score for the specified item.

Return Values

This method returns an HRESULT indicating whether or not 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

ContentList Object


IContentList::get_RowLimit, put_RowLimit

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

Get method:

HRESULT IContentList::get_RowLimit(
long* RowLimit
);

Put method:

HRESULT IContentList::put_RowLimit(
long RowLimit
);

Parameters

RowLimit

[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.

Return Values

These methods return an HRESULT indicating whether or not they 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

ContentList Object

IContentList::get_ActiveRows


IContentList::Search

Use this method to create a RowCollection object that allows access to each item in the ContentList object that matches the specified criterion.

Definition

HRESULT IContentList::Search(
VARIANT vCol,
VARIANT vSearchCriteria,
IRowCollection** ppIRowCollection
);

Parameters

vCol

[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.

vSearchCriteria

[in] A VARIANT that contains the filter criterion. The criterion is usually a BSTR, an array of BSTRs, or an Integer. The Search method will attempt to coerce other types to the type of the column being searched.

ppIRowCollection

[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

This method returns an HRESULT indicating whether or not 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.

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.

See Also

ContentList Object


IContentList::SetData

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++.

Definition

HRESULT IContentList::SetData(
long iRow,
long iCol,
BYTE* pData
);

Parameters

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

This method returns an HRESULT indicating whether or not 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

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

ContentList Object


IContentList::SetScore

Use this method to set a new score for an item in a ContentList object.

Definition

HRESULT IContentList::SetScore(
long RowNum,
float Score,
BSTR Component,
BSTR Description
);

Parameters

RowNum

[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).

Score

[in] A float that contains the new score.

Component

[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.

Description

[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.

Return Values

This method returns an HRESULT indicating whether or not 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

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 2000 pass the Programmatic Identifier (ProgID) of the component for the Component parameter.

See Also

ContentList Object


IContentList::get_Sorted, put_Sorted

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

Get method:

HRESULT IContentList::get_Sorted(
VARIANT_BOOL* Sorted
);

Put method:

HRESULT IContentList::put_Sorted(
VARIANT_BOOL Sorted
);

Parameters

Sorted

[in] When putting the property, a VARIANT_BOOL that specifies whether or not 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.

Return Values

These methods return an HRESULT indicating whether or not they 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

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

ContentList Object


IContentList::get_Threshold, put_Threshold

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

Get method:

HRESULT IContentList::get_Threshold(
float* Threshold
);

Put method:

HRESULT IContentList::put_Threshold(
float Threshold
);

Parameters

Threshold

[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.

Return Values

These methods return an HRESULT indicating whether or not they 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

ContentList Object


IContentList::get_TraceMessages

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

Get method:

HRESULT IContentList::get_TraceMessages(
long RowNum,
ISimpleList** TraceMessages
);

Parameters

RowNum

[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).

TraceMessages

[out,retval] The address of a pointer used to return the ISimpleList interface of the SimpleList object that contains the trace messages.

Return Values

These methods return an HRESULT indicating whether or not they 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

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

ContentList Object


IContentList::get_TraceMode, put_TraceMode

The TraceMode property is a read/write Boolean that controls whether score tracing is enabled or suppressed.

Definition

Get method:

HRESULT IContentList::get_TraceMode(
VARIANT_BOOL* TraceMode
);

Put method:

HRESULT IContentList::put_TraceMode(
VARIANT_BOOL TraceMode
);

Parameters

TraceMode

[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.

Return Values

These methods return an HRESULT indicating whether or not they 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

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.

See Also

ContentList Object


ContentListFactory Object

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
COM Interface Name: | IContentListFactory
Interface ID Constant: | IID_IContentListFactory
Header File: | cacheint.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both

The properties of the ContentListFactory object are shown in the following table.

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.

The methods of the ContentListFactory object are shown in the following table.

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.

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::get_AllRows

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

Get method:

HRESULT IContentListFactory::get_AllRows(
IRowCollection** AllRows
);

Parameters

AllRows

[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.

Return Values

These methods return an HRESULT indicating whether or not they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

This property is functionally identical to the one of the same name in the ContentList object.

See Also

ContentListFactory Object

RowCollection Object


IContentListFactory::BuildIndex

Use this method to build an index for a specific column in a ContentListFactory object.

Definition

HRESULT IContentListFactory::BuildIndex(
VARIANT vCol
);

Parameters

vCol

[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.

Return Values

This method returns an HRESULT indicating whether or not 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.

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.

See Also

ContentListFactory Object


IContentListFactory::ConstructFromRecordset

Use this method to initialize a new ContentListFactory object, and create and initialize a new ContentListSchema object, from an ADO Recordset object.

Definition

HRESULT IContentListFactory::ConstructFromRecordset(
_Recordset* Recordset,
VARIANT Skip,
IContentListSchema* Add
);

Parameters

Recordset

[in] A pointer to an ADO Recordset object from which the ContentList object will be constructed.

Skip

[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.

Add

[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.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

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 hierarchical Recordset objects are supported. The child Recordset objects are created in the ContentList object as a SimpleList of Dictionary objects.

See Also

ContentListFactory Object


IContentListFactory::get_Count, put_Count

The Count property is a read/write number that gets or sets the number of content items in a ContentListFactory object.

Definition

Get method:

HRESULT IContentListFactory::get_Count(
long* Count
);

Put method:

HRESULT IContentListFactory::put_Count(
long Count
);

Parameters

Count

[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.

Return Values

These methods return an HRESULT indicating whether or not they completed successfully. See the Error Values section for more details.

Error Values

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.

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

ContentListFactory Object


IContentListFactory::CreateNewContentList

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

HRESULT IContentListFactory::CreateNewContentList(
IContentList** NewList
);

Parameters

NewList

[out,retval] The address of a pointer used to return the new ContentList object.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

ContentListFactory Object


IContentListFactory::get_Fields

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

Get method:

HRESULT IContentListFactory::get_Fields(
long RowNum,
Fields** Fields
);

Parameters

RowNum

[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.

Fields

[out,retval] The address of a pointer used to return a Fields object for the specified row in the ContentListFactory object.

Return Values

These methods return an HRESULT indicating whether or not they completed successfully. See the Error Values section for more details.

Error Values

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.

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 Object


IContentListFactory::GetData

Use this method to read data from a specified row and column in a ContentListFactory object.

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++.

Definition

HRESULT IContentListFactory::GetData(
long iRow,
long iCol,
BYTE* pData
);

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.

Return Values

This method returns an HRESULT indicating whether or not 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

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

ContentListFactory Object


IContentListFactory::get_Schema, put_Schema

The Schema property is a ContentListSchema object that contains the schema used by this ContentListFactory object. The Schema property is read/write.

Definition

Get method:

HRESULT IContentListFactory::get_Schema(
IContentListSchema** Schema
);

Put method:

HRESULT IContentListFactory::put_Schema(
IContentListSchema* Schema
);

Parameters

Schema

[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.

Return Values

These methods return an HRESULT indicating whether or not they completed successfully. See the Error Values section for more details.

Error Values

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.

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

ContentListFactory Object


IContentListFactory::Search

Use this method to create a RowCollection object that allows access to each item in the ContentListFactory object that matches the specified criterion.

Definition

HRESULT IContentListFactory::Search(
VARIANT vCol,
VARIANT vSearchCriteria,
IRowCollection** ppIRowCollection
);

Parameters

vCol

[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.

vSearchCriteria

[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.

ppIRowCollection

[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

This method returns an HRESULT indicating whether or not 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.

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.

See Also

ContentListFactory Object


IContentListFactory::SetData

Use this method to write data to a specified row and column in a ContentListFactory object.

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++.

Definition

HRESULT IContentListFactory::SetData(
long iRow,
long iCol,
BYTE* pData
);

Parameters

iRow

[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

[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

[in] A pointer to the data to write into the ContentListFactory object.

Return Values

This method returns an HRESULT indicating whether or not 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

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

ContentListFactory Object


ContentListSchema Object

Use this object to manipulate the schema for a ContentListFactory object.

ProgID: | Commerce.ContentListSchema (Externally creatable)
COM Class Name: | ContentListSchema
COM Interface Name: | IContentListSchema
Interface ID Constant: | IID_IContentListSchema
Header File: | cacheint.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both

The properties of the ContentListSchema object are shown in the following table.

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.

The methods of the ContentListSchema object are shown in the following table.

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.

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::Add

Use this method to add a new column to a schema for use by a ContentListFactory object and its associated ContentList objects.

Definition

HRESULT IContentListSchema::Add(
BSTR sName,
ColumnTypeEnum Type,
long Flags,
long* ColumnNum
);

Parameters

sName

[in] A BSTR that contains a name for the new column.

Type

[in] A value from the ColumnTypeEnum enumeration. See the Remarks section for more details.

Flags

[in] A long that contains the bit mask column flag settings for the new column.

ColumnNum

[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

This method returns an HRESULT indicating whether or not 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

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.

See Also

ContentListSchema Object


IContentListSchema::get_ColumnFlags, put_ColumnFlags

The ColumnFlags property is a read/write long that contains the column flags.

Definition

Get method:

HRESULT IContentListSchema::get_ColumnFlags(
VARIANT vColumn,
long* ColumnFlags
);

Put method:

HRESULT IContentListSchema::put_ColumnFlags(
VARIANT vColumn,
long ColumnFlags
);

Parameters

vColumn

[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).

ColumnFlags

[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.

Return Values

These methods return an HRESULT indicating whether or not they completed successfully. See the Error Values section for more details.

Error Values

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.

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

ContentListSchema Object


IContentListSchema::get_ColumnName, put_ColumnName

The ColumnName property is a read/write string that contains the name of the column.

Definition

Get method:

HRESULT IContentListSchema::get_ColumnName(
VARIANT vColumn,
BSTR* ColumnName
);

Put method:

HRESULT IContentListSchema::put_ColumnName(
VARIANT vColumn,
BSTR ColumnName
);

Parameters

vColumn

[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).

ColumnName

[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.

Return Values

These methods return an HRESULT indicating whether or not they completed successfully. See the Error Values section for more details.

Error Values

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.

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

ContentListSchema Object


IContentListSchema::get_ColumnType, put_ColumnType

The ColumnType property is a read/write value from the ColumnTypeEnum enumeration, specifying the data type of the specified column.

Definition

Get method:

HRESULT IContentListSchema::get_ColumnType(
VARIANT vColumn,
ColumnTypeEnum* ColumnType
);

Put method:

HRESULT IContentListSchema::put_ColumnType(
VARIANT vColumn,
ColumnTypeEnum ColumnType
);

Parameters

vColumn

[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).

ColumnType

[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.

Return Values

These methods return an HRESULT indicating whether or not they completed successfully. See the Error Values section for more details.

Error Values

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.

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.

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.

See Also

ContentListSchema Object


IContentListSchema::get_Count

The Count property is a read-only value that contains the current number of columns in the schema.

Definition

Get method:

HRESULT IContentListSchema::get_Count(
long* Count
);

Parameters

Count

[out,retval] A pointer to a long used to return the current number of columns in the schema.

Return Values

This method returns an HRESULT indicating whether or not 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

ContentListSchema Object


IContentListSchema::FindColumn

Use this method to find the position of a column specified by name.

Definition

HRESULT IContentListSchema::FindColumn(
BSTR sName,
long* ColumnNum
);

Parameters

sName

[in] A BSTR that contains the name of the column for which the position will be returned.

ColumnNum

[out,retval] A pointer to a long used to return the position of the specified column.

Return Values

This method returns an HRESULT indicating whether or not 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

Column positions are counted from zero (0), not one (1).

See Also

ContentListSchema Object


IContentListSchema::GetSchema

Use this method to read the entire schema from a ContentListSchema object.

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++.

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 or not 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

ContentListSchema Object


IContentListSchema::get_Locked, put_Locked

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

Get method:

HRESULT IContentListSchema::get_Locked(
VARIANT_BOOL* Locked
);

Put method:

HRESULT IContentListSchema::put_Locked(
VARIANT_BOOL Locked
);

Parameters

Locked

[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.

Return Values

These methods return an HRESULT indicating whether or not they completed successfully. See the Error Values section for more details.

Error Values

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.

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

ContentListSchema Object


IContentListSchema::SetSchema

Use this method to write an entire schema to a ContentListSchema object.

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++.

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 or not 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

ContentListSchema Object


ContentSelector Object

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
COM Interface Name: | IContentSelector
Interface ID Constant: | IID_IContentSelector
Header File: | csf.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 CSF Pipeline Component 1.0 Type Library
DLL Name: | CSFComp.dll
Threading Model: | Both

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.

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

Content Selection Objects


IContentSelector::GetContent

Use this method to execute a Content Selection pipeline and return the resulting content in a SimpleList object.

Definition

HRESULT IContentSelector::get_GetContent(
IDictionary* pdictCSFContext,
ISimpleList** ppLstContent
);

Parameters

pdictCSFContext

[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.

ppLstContent

[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

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.

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.

See Also

CacheManager Object

Content Selection Pipelines

ContentSelector Object


DataFunctions Object

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
COM Interface Name: | IDataFunctions_4_0
Interface ID Constant: | IID_IDataFunctions_4_0
Header File: | commerce.h, mspu_guids.h
Type Library Name: | Commerce -- MSCSAspHelp Type Library
DLL Name: | MSCSAspHelp.dll
Threading Model: | Both

In C++, use the IDataFunctions_4_0 and IDataFunctions_3_0 interfaces to access the properties and methods of the DataFunctions object.

The properties of the DataFunctions object are shown in the following table.

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.

The methods of the DataFunctions object are shown in the following table.

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

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

HRESULT IDataFunctions_4_0::CleanString(
VARIANT vtInput,
VARIANT vtMinLen,
VARIANT vtMaxLen,
VARIANT vtStripWhite,
VARIANT vtStripReturn,
VARIANT vtCase,
VARIANT vtLocale,
VARIANT* pvarOutput
);

Parameters

vtInput

[in] A VARIANT that contains the text of the string to process.

vtMinLen

[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).

vtMaxLen

[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.

vtStripWhite

[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.

vtStripReturn

[in] A VARIANT 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

[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.

vtLocale

[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.

pvarOutput

[out, retval] A pointer used to return a VARIANT that contains the processed string.

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

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.

See Also

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale

IMSCSPage_3_0::RequestString


IDataFunctions_4_0::CloneObject

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

HRESULT IDataFunctions_4_0::CloneObject(
IDispatch* pdispSource,
IDispatch** ppdispDest
);

Parameters

pdispSource

[in] A pointer to the IDispatch interface of the SimpleList or Dictionary object to be cloned.

ppdispDest

[out, retval] The address of a pointer used to return the IDispatch interface of the SimpleList or Dictionary object clone.

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

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.

See Also

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale


IDataFunctions_4_0::ConvertDateString

Use this method to convert a date string to a date Variant, based on the default or specified locale.

Definition

HRESULT IDataFunctions_4_0::ConvertDateString(
VARIANT vtDate,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

vtDate

[in] A VARIANT that contains a string representation of the date to convert.

vtLocale

[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.

pvtRet

[out, retval] A pointer to a date VARIANT used to return the converted date.

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

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.

See Also

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::ConvertDateTimeString

IDataFunctions_4_0::Date

IDataFunctions_4_0::DateTime

IMSCSPage_3_0::RequestTime


IDataFunctions_4_0::ConvertDateTimeString

Use this method to convert a date and time string to a date/time Variant, based on the default or specified locale.

Definition

HRESULT IDataFunctions_4_0::ConvertDateTimeString(
VARIANT vtDateTime,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

vtDateTime

[in] A VARIANT that contains a string that specifies the date/time value to convert.

vtLocale

[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.

pvtRet

[out, retval] A pointer to a VARIANT used to return the converted date/time value.

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

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

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::ConvertDateString

IDataFunctions_4_0::Date

IDataFunctions_4_0::DateTime

IMSCSPage_3_0::RequestTime


IDataFunctions_4_0::ConvertFloatString

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

HRESULT IDataFunctions_4_0::ConvertFloatString(
VARIANT vtNum,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

vtNum

[in] A VARIANT that contains a string representation of the floating-point number to convert.

vtLocale

[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.

pvtRet

[out, retval] A pointer to a double VARIANT used to return the converted floating-point number.

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

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.

See Also

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::Float

IDataFunctions_4_0::ValidateFloat


IDataFunctions_4_0::ConvertMoneyStringToNumber

Use this method to convert a money string to a number, based on the default or specified locale.

Definition

HRESULT IDataFunctions_4_0::ConvertMoneyStringToNumber(
VARIANT vtMoney,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

vtMoney

[in] A VARIANT that contains a string representation of the monetary value to convert.

vtLocale

[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.

pvtRet

[out, retval] A pointer to a VARIANT used to return the converted monetary value.

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

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.

See Also

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::ConvertFloatString

IDataFunctions_4_0::ConvertNumberString


IDataFunctions_4_0::ConvertNumberString

Use this method to convert an integer represented as a string to an integer Variant, based on the default or specified locale.

Definition

HRESULT IDataFunctions_4_0::ConvertNumberString(
VARIANT vtNum,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

vtNum

[in] A VARIANT that contains a string representation of the number to convert.

vtLocale

[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.

pvtRet

[out, retval] A pointer to a VARIANT used to return the converted number.

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

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.

See Also

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::ConvertFloatString

IDataFunctions_4_0::Number

IDataFunctions_4_0::ValidateNumber


IDataFunctions_4_0::ConvertStringToCurrency

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

HRESULT IDataFunctions_4_0::ConvertStringToCurrency(
VARIANT vtMoneyString,
VARIANT vtLocale,
VARIANT vtCurrencySymbol,
VARIANT* pvtRet
);

Parameters

vtMoneyString

[in] A VARIANT that contains the currency string to convert.

vtLocale

[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.

vtCurrencySymbol

[in, optional] A VARIANT that contains the currency symbol to expect when converting the currency string.

pvtRet

[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

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.

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

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

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::LocalizeCurrency

IDataFunctions_4_0::ConvertMoneyStringToNumber


IDataFunctions_4_0::ConvertTimeString

Use this method to convert a time string to a date Variant, based on the default or specified locale.

Definition

HRESULT IDataFunctions_4_0::ConvertTimeString(
VARIANT vtDate,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

vtDate

[in] A VARIANT that specifies a string representation of the time to convert.

vtLocale

[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.

pvtRet

[out, retval] A pointer to a VARIANT used to return the converted time value.

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

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

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::Time

IDataFunctions_4_0::ValidateDateTime


IDataFunctions_4_0::get_CurrencySymbol, put_CurrencySymbol

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

Get method:

HRESULT IDataFunctions_4_0::get_CurrencySymbol(
VARIANT* CurrencySymbol
);

Put method:

HRESULT IDataFunctions_4_0::put_CurrencySymbol(
VARIANT CurrencySymbol
);

Parameters

CurrencySymbol

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

DataFunctions Object

IDataFunctions_4_0::ConvertStringToCurrency

IDataFunctions_4_0::LocalizeCurrency


IDataFunctions_4_0::Date

Use this method to convert a date Variant to a string representation of the specified date, based on the default or specified locale.

Definition

HRESULT IDataFunctions_4_0::Date(
DATE dtDate,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

dtDate

[in] A DATE VARIANT that contains the date to format.

vtLocale

[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.

pvtRet

[out, retval] A pointer to a VARIANT used to return the date value formatted as a string.

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

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

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::DateTime

IDataFunctions_4_0::ValidateDateTime

IDataFunctions_4_0::ConvertDateString


IDataFunctions_4_0::DateTime

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

HRESULT IDataFunctions_4_0::DateTime(
DATE dtDate,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

dtDate

[in] A DATE that contains the date/time value to convert.

vtLocale

[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.

pvtRet

[out, retval] A pointer to a VARIANT used to return the string representation of the specified date/time value.

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

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

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::Date

IDataFunctions_4_0::ValidateDateTime

IDataFunctions_4_0::Time


IDataFunctions_4_0::Float

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

HRESULT IDataFunctions_4_0::Float(
double fNumber,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

fNumber

[in] A double (8-byte floating point number) that contains the floating-point number to convert.

vtLocale

[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.

pvtRet

[out, retval] A pointer to a VARIANT used to return the string representation of the specified floating-point number.

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

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

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::ValidateFloat

IDataFunctions_4_0::ConvertFloatString


IDataFunctions_4_0::GetLocaleInfo

Use this method to get information on the specified locale.

Definition

HRESULT IDataFunctions_4_0::GetLocaleInfo(
long vtInfo,
VARIANT vtLocale,
VARIANT* pvarRet
);

Parameters

vtInfo

[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.

vtLocale

[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.

pvarRet

[out, retval] A pointer to a VARIANT used to return the requested locale information.

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

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.

See Also

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale


IDataFunctions_4_0::GetLocaleList

Use this method to retrieve a SimpleList object that contains the locales available on the computer.

Definition

HRESULT IDataFunctions_4_0::GetLocaleList(
VARIANT* pvarList
);

Parameters

pvarList

[out, retval] A pointer to a VARIANT used to return a SimpleList object that specifies the locales available on the computer.

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

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

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale


IDataFunctions_4_0::get_Locale, put_Locale

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

Get method:

HRESULT IDataFunctions_4_0::get_Locale(
long* Locale
);

Put method:

HRESULT IDataFunctions_4_0::put_Locale(
long Locale
);

Parameters

Locale

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

DataFunctions Object

IDataFunctions_4_0::GetLocaleList


IDataFunctions_4_0::LocalizeCurrency

Use this method to retrieve a string representation of a currency value formatted to a specified locale and currency symbol.

Definition

HRESULT IDataFunctions_4_0::LocalizeCurrency(
VARIANT cyCurrency,
VARIANT vtLocale,
VARIANT vtCurrencySymbol,
VARIANT* pvtRet
);

Parameters

cyCurrency

[in] A currency VARIANT that contains the value to format as a string.

vtLocale

[in, optional] A VARIANT that contains the locale to use when formatting the string.

vtCurrencySymbol

[in, optional] A VARIANT that contains the currency symbol to use when formatting the string.

pvtRet

[out, retval] A pointer to a VARIANT used to return the string representation of the currency value.

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

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

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::ConvertStringToCurrency


IDataFunctions_4_0::Money

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

HRESULT IDataFunctions_4_0::Money(
long lMoney,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

lMoney

[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.)

vtLocale

[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.

pvtRet

[out, retval] A pointer to a VARIANT used to return the resultant string.

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

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.

See Also

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::ConvertMoneyStringToNumber


IDataFunctions_4_0::Number

Use this method to convert a long integer to its equivalent string representation, based on the default or specified locale.

Definition

HRESULT IDataFunctions_4_0::Number(
long lNumber,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

lNumber

[in] A long that contains the number to convert to a string.

vtLocale

[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.

pvtRet

[out, retval] A pointer to a VARIANT used to return the string representation of the specified number.

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

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

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::ConvertNumberString


IDataFunctions_4_0::Time

Use this method to converts a Date to a string representation of the time.

Definition

HRESULT IDataFunctions_4_0::Time(
DATE dtDate,
VARIANT vtLocale,
VARIANT* pvtRet
);

Parameters

dtDate

[in] A DATE type that contains the time value to convert.

vtLocale

[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.

pvtRet

[out, retval] A pointer to a VARIANT used to return the string representation of the specified time value.

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

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

DataFunctions Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::ConvertTimeString


IDataFunctions_4_0::ValidateDateTime

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

HRESULT IDataFunctions_4_0::ValidateDateTime(
VARIANT vtDate,
VARIANT vtMin,
VARIANT vtMax,
VARIANT* pvtValid
);

Parameters

vtDate

[in] A VARIANT that contains the value to validate. This value can be a date, a time, or both.

vtMin

[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.

vtMax

[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.

pvtValid

[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

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

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.

See Also

DataFunctions Object

IDataFunctions_4_0::Date

IDataFunctions_4_0::DateTime

IDataFunctions_4_0::Time

IDataFunctions_4_0::ConvertDateString

IDataFunctions_4_0::ConvertDateTimeString

IDataFunctions_4_0::ConvertTimeString


IDataFunctions_4_0::ValidateFloat

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

HRESULT IDataFunctions_4_0::ValidateFloat(
VARIANT vtNumber,
VARIANT vtMin,
VARIANT vtMax,
VARIANT* pvtValid
);

Parameters

vtNumber

[in] A VARIANT that contains the floating-point number to validate.

vtMin

[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.

vtMax

[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.

pvtValid

[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

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

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.

See Also

DataFunctions Object

IDataFunctions_4_0::Float

IDataFunctions_4_0::ConvertFloatString


IDataFunctions_4_0::ValidateNumber

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

HRESULT IDataFunctions_4_0::ValidateNumber(
VARIANT vtNumber,
VARIANT vtMin,
VARIANT vtMax,
VARIANT* pvtValid
);

Parameters

vtNumber

[in] A VARIANT that contains a string representation of a number to validate.

vtMin

[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.

vtMax

[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.

pvtValid

[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

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

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.

See Also

DataFunctions Object

IDataFunctions_4_0::Number

IDataFunctions_4_0::ConvertNumberString


DBStorage Object

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
COM Interface Name: | IMSCSDBStorage_3_0
Interface ID Constant: | IID_IMSCSDBStorage_3_0
Header File: | mspu_guids.h
Type Library Name: | Commerce 1.0 Type Library
DLL Name: | Commerce.dll
Threading Model: | Both

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.

The single property of the DBStorage object is shown in the following table.

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.

The methods of the DBStorage object are shown in the following table.

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.

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::CommitData

Use this method to update the database table based on the contents of the specified Dictionary or OrderForm object.

Definition

HRESULT IMSCSDBStorage_3_0::CommitData(
VARIANT vtReserved,
IDispatch* pdispData
);

Parameters

vtReserved

[in] A VARIANT reserved for future use. The CommitData method ignores the value of this parameter.

pdispData

[in] An IDispatch interface pointer on the OrderForm or Dictionary object that contains the updated data.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

DBStorage Object

IMSCSDBStorage_3_0::InitStorage

IMSCSDBStorage_3_0::InsertData


IMSCSDBStorage_3_0::DeleteData

Use this method to delete a row from the data source, based on the data stored in the specified Dictionary or OrderForm object.

Definition

HRESULT IMSCSDBStorage_3_0::DeleteData(
VARIANT vtReserved,
IDispatch* pdispData
);

Parameters

vtReserved

[in] A VARIANT reserved for future use. This parameter is ignored by the DeleteData method.

pdispData

[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.

Return Values

This method returns an HRESULT indicating whether it or not 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

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.

See Also

DBStorage Object

IMSCSDBStorage_3_0::InitStorage

IMSCSDBStorage_3_0::DeleteDataKey

IMSCSDBStorage_3_0::InsertData


IMSCSDBStorage_3_0::DeleteDataKey

Use this method to delete a row of data, based on the specified key value.

Definition

HRESULT IMSCSDBStorage_3_0::DeleteDataKey(
VARIANT vtReserved,
VARIANT vtKey
);

Parameters

vtReserved

[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.

vtKey

[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.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

DBStorage Object

IMSCSDBStorage_3_0::InitStorage

IMSCSDBStorage_3_0::DeleteData

IMSCSDBStorage_3_0::InsertData


IMSCSDBStorage_3_0::GetData

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

HRESULT IMSCSDBStorage_3_0::GetData(
VARIANT vtReserved,
VARIANT vtKey,
VARIANT* pvtRet
);

Parameters

vtReserved

[in] A VARIANT reserved for future use. The GetData method ignores any value stored in this parameter.

vtKey

[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.

pvtRet

[out, retval] A pointer to a VARIANT used to return a Dictionary or OrderForm object used to return the retrieved row.

Return Values

This method returns an HRESULT indicating whether or not 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

The pvtRet parameter points to valid data only if the method completes successfully.

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.

See Also

DBStorage Object

IMSCSDBStorage_3_0::InitStorage

IMSCSDBStorage_3_0::LookupData


IMSCSDBStorage_3_0::InitStorage

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

HRESULT IMSCSDBStorage_3_0::InitStorage(
VARIANT vtDataSourceOrDSN,
BSTR Table,
BSTR bstrKey,
VARIANT vtProgID,
VARIANT vtMarshal,
VARIANT vtChanged
);

Parameters

vtDataSourceOrDSN

[in] A VARIANT which references a valid IDispatch pointer on a DataSource object, or which references a data source name (DSN).

Table

[in] A BSTR that contains the name of the table within the data source in which to maintain the data.

bstrKey

[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.

vtProgID

[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.

vtMarshal

[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).

vtChanged

[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.)

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

DBStorage Object


IMSCSDBStorage_3_0::InsertData

Use this method to insert the contents of the specified Dictionary object into a database row.

Definition

HRESULT IMSCSDBStorage_3_0::InsertData(
VARIANT vtReserved,
IDispatch* pdispData
);

Parameters

vtReserved

[in] A VARIANT reserved for future use. This parameter is ignored by the InsertData method.

pdispData

[in] An IDispatch pointer on the Dictionary object or OrderForm object that contains the data to insert.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

DBStorage Object

IMSCSDBStorage_3_0::InitStorage

IMSCSDBStorage_3_0::CommitData


IMSCSDBStorage_3_0::LookupData

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

HRESULT IMSCSDBStorage_3_0::LookupData(
VARIANT vtReserved,
VARIANT* pvtKeys,
VARIANT* pvtValues,
VARIANT* pvtRet
);

Parameters

vtReserved

[in] A VARIANT reserved for future use. The LookupData method ignores any value stored in this parameter.

pvtKeys

[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.

pvtValues

[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.

pvtRet

[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

This method returns an HRESULT indicating whether or not 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

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.

See Also

DBStorage Object

IMSCSDBStorage_3_0::InitStorage

IMSCSDBStorage_3_0::GetData

IMSCSDBStorage_3_0::LookupMultipleData


IMSCSDBStorage_3_0::LookupMultipleData

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

HRESULT IMSCSDBStorage_3_0::LookupMultipleData(
VARIANT vtReserved,
VARIANT* pvtKeys,
VARIANT* pvtValues,
VARIANT* pvtRet
);

Parameters

vtReserved

[in] A VARIANT reserved for future use. The LookupData method ignores any value stored in this parameter.

pvtKeys

[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.

pvtValues

[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.

pvtRet

[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

This method returns an HRESULT indicating whether or not 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

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.

See Also

DBStorage Object

IMSCSDBStorage_3_0::InitStorage

IMSCSDBStorage_3_0::GetData

IMSCSDBStorage_3_0::LookupData


IMSCSDBStorage_3_0::get_Mapping, put_Mapping

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

Get method:

HRESULT IMSCSDBStorage_3_0::get_Mapping(
IDispatch** Mapping
);

Put method:

HRESULT IMSCSDBStorage_3_0::put_Mapping(
IDispatch* Mapping
);

Parameters

Mapping

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

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.

See Also

DBStorage Object

IMSCSDBStorage_3_0::InitStorage


IMSCSDBStorage_3_0::ProcessData

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

HRESULT IMSCSDBStorage_3_0::ProcessData(
IDispatch* pdispData,
IDispatch** ppdispRet
);

Parameters

pdispData

[in] An IDispatch pointer on a Dictionary object that contains the marshaled data.

ppdispRet

[out, retval] The address of an IDispatch pointer on a Dictionary object used to return the unmarshaled data.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

DBStorage Object

IMSCSDBStorage_3_0::InitStorage


Dictionary Object

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
COM Interface Name: | IDictionary
Interface ID Constant: | IID_IDictionary
Header File: | commerce.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Core Components Type Library
DLL Name: | MscsCore.dll
Threading Model: | Both

In C++, use the IDictionary interface to access the properties and methods of the Dictionary object.

The properties of the Dictionary object are shown in the following table.

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.

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 2000 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 2000 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 2000 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

SimpleList Object


IDictionary::get_Count

The Count property is a read-only Long that contains the number of elements in the Dictionary object instance.

Definition

HRESULT IDictionary::get_Count(
long* Count
);

Parameters

Count

[out, retval] A pointer to a long in which the get_Count method stores the number of elements in the Dictionary object.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

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.

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

Dictionary Object


IDictionary::get_Prefix, put_Prefix

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

Get method:

HRESULT IDictionary::get_Prefix(
BSTR* Prefix
);

Put method:

HRESULT IDictionary::put_Prefix(
BSTR Prefix
);

Parameters

Prefix

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

The Prefix 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.

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

Dictionary Object


IDictionary::get_Value, put_Value

The Value property allows you to get or set a name/value pair in the Dictionary.

Definition

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
);

Parameters

bstrName

[in] A BSTR that contains the name of the Dictionary key for which to retrieve a value or put a value.

Value

[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.

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

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.

Remarks

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.

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.

See Also

Dictionary Object


DictionaryXMLTransforms Object

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.

ProgID: | Commerce.DictionaryXMLTransforms (Externally creatable)
COM Class Name: | DictionaryXMLTransforms
COM Interface Name: | _DictionaryXMLTransforms
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 DictionaryXMLTransform Type Library
DLL Name: | DictionaryXMLTransforms.dll
Threading Model: | Apartment

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"*", "\", etc., and foreign-language characters.

  • Every dictionary key value must be URL-encoded.

In C++, use the _DictionaryXMLTransforms interface to access the properties and methods of the DictionaryXMLTransforms object.

The methods of the DictionaryXMLTransforms object are shown in the following table.

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 a XML schema can be found in the POSchema.xml file in the Solution Sites.

See Also

General Purpose Objects

Dictionary Object


_DictionaryXMLTransforms::GenerateSampleXMLInstanceFromDictionary

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

HRESULT _DictionaryXMLTransforms::GenerateSampleXMLInstanceFromDictionary(
IDictionary* Dictionary,
BSTR ElementName,
VARIANT_BOOL bIgnoreUnderScore,
IXMLDOMNode** RetValue
);

Parameters

Dictionary

[in] A pointer to the IDictionary interface of a Dictionary object that contains the data to convert into XML.

ElementName

[in] A BSTR that contains the element name.

bIgnoreUnderScore

[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.

RetValue

[out, retval] The address of the pointer to the IXMLDOMNode interface of the newly created XMLDOMNode object containing the XML instance.

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

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.

See Also

DictionaryXMLTransforms Object


_DictionaryXMLTransforms::GenerateXMLForDictionaryUsingSchema

Use this method to extract an XML instance from the specified Dictionary object that conforms to the specified schema.

Definition

HRESULT _DictionaryXMLTransforms::GenerateXMLForDictionaryUsingSchema(
IDictionary* Dictionary,
IXMLDOMDocument* xmlSchema,
IXMLDOMNode** RetValue
);

Parameters

Dictionary

[in] A pointer to the IDictionary interface of the Dictionary object to be converted.

xmlSchema

[in] A reference to the IXMLDOMDocument interface of the XMLDOMDocument object that contains the XML schema.

RetValue

[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

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

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.

See Also

DictionaryXMLTransforms Object


_DictionaryXMLTransforms::GetXMLFromFile

Use this method to generate a XML Document Object Model (DOM) document from the specified file.

Definition

HRESULT _DictionaryXMLTransforms::GetXMLFromFile(
BSTR sFileName,
IXMLDOMDocument** RetValue
);

Parameters

sFileName

[in] A BSTR that contains the name of the file to convert.

RetValue

[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

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

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.

See Also

DictionaryXMLTransforms Object


_DictionaryXMLTransforms::ReconstructDictionaryFromXML

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

HRESULT _DictionaryXMLTransforms::ReconstructDictionaryFromXML(
BSTR szDictionaryXML,
IXMLDOMDocument* xmlSchema,
IDictionary** RetValue
);

Parameters

szDictionaryXML

[in] A BSTR that contains the XML instance.

xmlSchema

[in] A reference to the IXMLDOMDocument interface of the XMLDOMDocument object that contains the XML schema used in the conversion.

RetValue

[out, retval] The address of a pointer to receive an IDictionary interface of the reconstructed Dictionary 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

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.

See Also

DictionaryXMLTransforms Object


EuroDisplay Object

Use this object to convert and format currency amounts where multiple currencies must be displayed.

ProgID: | Commerce.EuroDisplay (Externally creatable)
COM Class Name: | EuroDisplay
COM Interface Name: | IEuroDisplay
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 Euro Display Component Type Library
DLL Name: | EuroDisp.dll
Threading Model: | Both

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.

The methods of the EuroDisplay object are shown in the following table.

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.

See Also

Display Objects


IEuroDisplay::ConvertAltStringToCurr

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

HRESULT IEuroDisplay::ConvertAltStringToCurr(
VARIANT vtMoneyString,
VARIANT* pvarNumber
);

Parameters

vtMoneyString

[in] A VARIANT that contains the currency string to convert.

pvarNumber

[out, retval] A pointer to a currency VARIANT used to return the converted currency information.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

EuroDisplay Object

IEuroDisplay::ConvertBaseStringToCurr

IEuroDisplay::FormatAltMoney


IEuroDisplay::ConvertBaseStringToCurr

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

HRESULT IEuroDisplay::ConvertBaseStringToCurr(
VARIANT vtMoneyString,
VARIANT* pvarNumber
);

Parameters

vtMoneyString

[in] A VARIANT that contains the currency string to convert.

pvarNumber

[out, retval] A pointer to a currency VARIANT used to return the converted currency information.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

EuroDisplay Object

IEuroDisplay::ConvertAltStringToCurr

IEuroDisplay::FormatBaseMoney


IEuroDisplay::ConvertMoney

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

HRESULT IEuroDisplay::ConvertMoney(
VARIANT vtCurrVal,
VARIANT* pvarConvVal
);

Parameters

vtCurrVal

[in] A currency VARIANT representing a monetary value in the base currency.

pvarConvVal

[out, retval] A pointer to a currency VARIANT representing a monetary value in the alternate currency.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

EuroDisplay Object


IEuroDisplay::FormatAltMoney

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

HRESULT IEuroDisplay::FormatAltMoney(
VARIANT vtConvMoney,
BSTR* szAltMoney
);

Parameters

vtConvMoney

[in] A currency VARIANT that contains the monetary value to convert.

szAltMoney

[out, retval] A pointer to a BSTR used to return the string representation of the specified currency VARIANT.

Return Values

This method returns an HRESULT indicating whether or not 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

The szAltMoney 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.

See Also

EuroDisplay Object

IEuroDisplay::ConvertAltStringToCurr

IEuroDisplay::FormatBaseMoney


IEuroDisplay::FormatBaseMoney

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

HRESULT IEuroDisplay::FormatBaseMoney(
VARIANT vtConvMoney,
BSTR* szBaseMoney
);

Parameters

vtConvMoney

[in] A currency VARIANT that contains the monetary value to convert.

szBaseMoney

[out, retval] A BSTR used to return the string representation of the specified currency VARIANT.

Return Values

This method returns an HRESULT indicating whether or not 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

The szBaseMoney 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

EuroDisplay Object

IEuroDisplay::ConvertBaseStringToCurr

IEuroDisplay::FormatAltMoney


IEuroDisplay::Initialize

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

HRESULT IEuroDisplay::Initialize(
BSTR szBaseCurr,
long lBaseLCID,
BSTR szAltCurr,
long lAltLCID,
double flEuroConvRate
);

Parameters

szBaseCurr

[in] A BSTR that contains the base currency symbol string.

lBaseLCID

[in] A long that contains the base locale identifier.

szAltCurr

[in] A BSTR that contains the alternate currency symbol string.

lAltLCID

[in] A long that contains the alternate locale identifier.

flEuroConvRate

[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.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

EuroDisplay Object


ExpressionEval Object

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
COM Interface Name: | IExpressionEval
Interface ID Constant: | IID_IExpressionEval
Header File: | ExprArchDLL.h, exprarch.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Expression System Type Library
DLL Name: | exprarch.dll
Threading Model: | Both

In C++, the properties and methods of the ExpressionEval object are accessed through the IExpressionEval interface.

The properties of the ExpressionEval object are shown in the following table.

Property | Type | Description
ExprCount | long | Retrieves the number of expressions loaded into the expression cache. This property is read-only.

The methods of the ExpressionEval object are shown in the following table.

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.

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

Expression Objects

Expression Recordset

Expression XML Structures

ExpressionStore Object

ProfileObject Object


IExpressionEval::Connect

Use this method to establish communication with an expression store.

Definition

HRESULT IExpressionEval::Connect(
VARIANT vConnectInfo
);

Parameters

vConnectInfo

[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.

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 either standard or custom COM HRESULT 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 | 0x8110001F | Invalid connection
E_EXPR_BADEXPRSTORE | 0x8110001E | Specified database does not contain a valid expression store
E_EXPR_NOCONNECTIONSTRING | 0x8110000D | No connection string specified
E_EXPR_STOREPERMISSIONS | 0x8110000F | Insufficient access permissions on the expression store database

Additional information may be available using the global Err object, which can 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

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.

See Also

ExpressionEval Object

ExpressionStore Object

IExpressionStore::Connect

SiteConfigReadOnly Object


IExpressionEval::CreateEvalContext

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

HRESULT IExpressionEval::CreateEvalContext(
IDictionary* pDictObjs,
IExprEvalContext** ppContext
);

Parameters

pDictObjs

[in] A pointer to the IDictionary interface of a Dictionary object that contains the set of profiles to be cached.

ppContext

[out, retval] The address of the pointer to the IExprEvalContext interface of the newly created ExprEvalContext 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

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.

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.

See Also

ExpressionEval Object

IExpressionEval::EvalInContext


IExpressionEval::Eval

Use this method to evaluate an expression.

Definition

HRESULT IExpressionEval::Eval(
long nExprID,
IDictionary* pDictObjs,
VARIANT* pvResult
);

Parameters

nExprID

[in] A long that contains the unique identifier for the expression in the expression store.

pDictObjs

[in] A pointer to the IDictionary interface of a Dictionary object that contains a set of profiles.

pvResult

[out, retval] A pointer to a VARIANT indicating the result of evaluating the expression in the given context.

Return Values

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.

Error Values

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.

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 | 0x8110001F | Invalid connection
E_EXPR_BADEXPRID | 0x8110000A | Invalid expression ID specified
E_EXPR_NOCONNECTIONSTRING | 0x8110000D | No connection string specified
E_EXPR_NOTFOUND | 0x81100012 | Could not find the specified expression ID, nExprID, in the expression store

Additional information may be available using the global Err object, which can 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

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.

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.

See Also

ExpressionEval Object

IExpressionEval::Connect

IExpressionEval::CreateEvalContext

IExpressionEval::EvalInContext

IExpressionEval::LoadExpr


IExpressionEval::EvalInContext

Use this method to evaluate an expression against a pre-established context stored in the context cache.

Definition

HRESULT IExpressionEval::EvalInContext(
long nExprID,
IExprEvalContext* pContext,
VARIANT* pvResult
);

Parameters

nExprID

[in] A long that contains the unique identification of the expression in the expression store.

pContext

[in] A pointer to an IExprEvalContext interface of an ExprEvalContext object that identifies the specific context for this evaluation.

pvResult

[out, retval] A pointer to a VARIANT indicating the result of the expression evaluated in the specified context.

Return Values

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.

Error Values

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.

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 | 0x8110001F | Invalid connection
E_EXPR_BADEXPRID | 0x8110000A | Invalid expression ID specified
E_EXPR_NOCONNECTIONSTRING | 0x8110000D | No connection string specified
E_EXPR_MISSINGPROP | 0x8110001D | Invalid ExprEvalContext object
E_EXPR_NOTFOUND | 0x81100012 | Could not find the specified expression ID, nExprID, in the expression store

Additional information may be available using the global Err object, which can 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

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.

The pvResult parameter contains valid data only if the method completes successfully.

See Also

ExpressionEval Object

IExpressionEval::Connect

IExpressionEval::CreateEvalContext

IExpressionEval::Eval

IExpressionEval::LoadExpr


IExpressionEval::EvalXML

Use this method to evaluate an expression represented as an Extensible Markup Language (XML) fragment.

Definition

HRESULT IExpressionEval::EvalXML(
BSTR bstrXMLExpr,
IDictionary* pDictObjs,
VARIANT* pvResult
);

Parameters

bstrXMLExpr

[in] A BSTR that contains the XML fragment to be evaluated.

pDictObjs

[in] A pointer to the IDictionary interface of a Dictionary object that contains a set of profiles.

pvResult

[out, retval] A pointer to a VARIANT indicating the results of evaluating the expression in the specified context.

Return Values

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.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADARGTYPE | 0x81100018 | Argument datatype information missing from expression, or unrecognized argument data type encountered in expression
E_EXPR_BADARGVALUE | 0x81100022 | Invalid expression argument value, or impossible conversion
E_EXPR_BADCLAUSE | 0x81100016 | Invalid clause encountered
E_EXPR_BADCONNECTION | 0x8110001F | Invalid connection
E_EXPR_BADOPER | 0x81100017 | Operator missing, unrecognized operator encountered, or type mismatch
E_EXPR_BADTERM | 0x81100015 | Term type missing, or unrecognized term type encountered
E_EXPR_BADXML | 0x81100014 | An unrecognized XML element was encountered
E_EXPR_NOCONNECTIONSTRING | 0x8110000D | No connection string specified
E_EXPR_XMLPARSE | 0x81100013 | XML DOM object parsing error

Additional information may be available using the global Err object, which can 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

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.

The pvResult parameter contains valid data only if the method completes successfully.

See Also

Expression Recordset

Expression XML Structures

ExpressionEval Object

IExpressionEval::Connect

IExpressionEval::Eval

IExpressionEval::ParseXML


IExpressionEval::get_ExprCount

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

HRESULT IExpressionEval::get_ExprCount(
long* pExprCount);

Parameters

pExprCount

[out, retval] A pointer to a long used to return the number of expressions loaded in the expression store.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the following 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

ExpressionEval Object

IExpressionEval::FlushAll

IExpressionEval::FlushExpr

IExpressionEval::LoadAll

IExpressionEval::LoadExpr


IExpressionEval::FlushAll

Use this method to remove all expressions from the expression cache.

Definition

HRESULT IExpressionEval::FlushAll(
);

Parameters

None.

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

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

ExpressionEval Object

IExpressionEval::get_ExprCount

IExpressionEval::FlushExpr

IExpressionEval::LoadAll

IExpressionEval::LoadExpr


IExpressionEval::FlushExpr

Use this method to remove the specified expression from the expression cache.

Definition

HRESULT IExpressionEval::FlushExpr(
long nExprID
);

Parameters

nExprID

[in] A long that contains the identifier of the expression to be removed from the expression cache.

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 either standard or custom COM HRESULT 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 | 0x8110000A | Invalid expression ID specified

Additional information may be available using the global Err object, which can 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

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

ExpressionEval Object

IExpressionEval::get_ExprCount

IExpressionEval::FlushAll

IExpressionEval::LoadAll

IExpressionEval::LoadExpr


IExpressionEval::LoadAll

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

HRESULT IExpressionEval::LoadAll(
);

Parameters

None.

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 either standard or custom COM HRESULT 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 | 0x81100018 | Argument datatype infomation missing from expression, or unrecognized argument data type encountered in expression
E_EXPR_BADARGVALUE | 0x81100022 | Invalid expression argument value, or impossible conversion
E_EXPR_BADCLAUSE | 0x81100016 | Invalid clause encountered
E_EXPR_BADCONNECTION | 0x8110001F | Invalid connection
E_EXPR_BADOPER | 0x81100017 | Operator missing, unrecognized operator encountered, or type mismatch
E_EXPR_BADTERM | 0x81100015 | Term type missing, or unrecognized term type encountered
E_EXPR_BADXML | 0x81100014 | An unrecognized XML element was encountered
E_EXPR_NOCONNECTIONSTRING | 0x8110000D | No connection string specified
E_EXPR_XMLPARSE | 0x81100013 | XML DOM object parsing error

Additional information may be available using the global Err object, which can 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

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

ExpressionEval Object

IExpressionEval::Connect

IExpressionEval::get_ExprCount

IExpressionEval::FlushAll

IExpressionEval::FlushExpr

IExpressionEval::LoadExpr


IExpressionEval::LoadExpr

Use this method to pre-compile an expression, and if successful, load the expression into the expression cache.

Definition

HRESULT IExpressionEval::LoadExpr(
long nExprID
);

Parameters

nExprID

[in] A positive long that contains the identifier of the expression to load into the expression cache.

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 either standard or custom COM HRESULT 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 | 0x81100018 | Argument datatype info missing from expression, or unrecognized argument data type encountered in expression
E_EXPR_BADARGVALUE | 0x81100022 | Invalid expression argument value, or impossible conversion
E_EXPR_BADCLAUSE | 0x81100016 | Invalid clause encountered
E_EXPR_BADCONNECTION | 0x8110001F | Invalid connection
E_EXPR_BADEXPRID | 0x8110000A | Invalid expression ID specified
E_EXPR_BADOPER | 0x81100017 | Operator missing, unrecognized operator encountered, or type mismatch
E_EXPR_BADTERM | 0x81100015 | Term type missing, or unrecognized term type encountered
E_EXPR_BADXML | 0x81100014 | An unrecognized XML element was encountered
E_EXPR_NOCONNECTIONSTRING | 0x8110000D | No connection string specified
E_EXPR_NOTFOUND | 0x81100012 | Could not find the specified expression ID, nExprID, in the expression store
E_EXPR_XMLPARSE | 0x81100013 | XML DOM object parsing error

Additional information may be available using the global Err object, which can 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

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

ExpressionEval Object

IExpressionEval::Connect

IExpressionEval::get_ExprCount

IExpressionEval::FlushAll

IExpressionEval::FlushExpr

IExpressionEval::LoadAll


IExpressionEval::ParseXML

Use this method to check whether an Extensible Markup Language (XML) fragment is a syntactically correct expression.

Definition

HRESULT IExpressionEval::ParseXML(
BSTR bstrXMLExpr,
VARIANT_BOOL* pbValid
);

Parameters

bstrXMLExpr

[in] A BSTR that contains the XML text defining an expression.

pbValid

[out, retval] A pointer to a VARIANT_BOOL indicating the validity of the expression.

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 either standard or custom COM HRESULT 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 | 0x81100018 | Argument datatype information missing from expression, or unrecognized argument data type encountered in expression
E_EXPR_BADARGVALUE | 0x81100022 | Invalid expression argument value, or impossible conversion
E_EXPR_BADCLAUSE | 0x81100016 | Invalid clause encountered
E_EXPR_BADOPER | 0x81100017 | Operator missing, unrecognized operator encountered, or type mismatch
E_EXPR_BADTERM | 0x81100015 | Term type missing, or unrecognized term type encountered
E_EXPR_BADXML | 0x81100014 | An unrecognized XML element was encountered
E_EXPR_XMLPARSE | 0x81100013 | XML DOM object parsing error

Additional information may be available using the global Err object, which can 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

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.

The pbValid parameter contains valid data only if the method completes successfully.

See Also

Expression Recordset

Expression XML Structures

ExpressionEval Object

IExpressionEval::Eval

IExpressionEval::EvalXML


ExpressionStore Object

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
COM Interface Name: | IExpressionStore
Interface ID Constant: | IID_IExpressionStore
Header File: | ExprArchDLL.h, exprarch.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Expression System Type Library
DLL Name: | exprarch.dll
Threading Model: | Both

In C++, use the IExpressionStore interface to access the methods of the ExpressionStore object.

The methods of the ExpressionStore object are shown in the following table.

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.

See Also

Expression Objects

Expression Recordset

Expression XML Structures

ExpressionEval Object


IExpressionStore::Connect

Use this method to store the connection string to an expression store.

Definition

HRESULT IExpressionStore::Connect(
BSTR strConnStr
);

Parameters

strConnStr

[in] A BSTR that contains the database connection information for the expression store.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | 0x8110001F | Invalid connection
E_EXPR_BADEXPRSTORE | 0x8110001E | Specified database does not contain a valid expression store
E_EXPR_NOCONNECTIONSTRING | 0x8110000D | No connection string specified
E_EXPR_STOREPERMISSIONS | 0x8110000F | Insufficient access permissions on the expression store database

Additional information may be available using the global Err object, which can 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

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.

See Also

ExpressionStore Object

IExpressionStore::Disconnect

SiteConfigReadOnly Object


IExpressionStore::DeleteExpression

Use this method to delete an existing expression from the expression store.

Definition

HRESULT IExpressionStore::DeleteExpression(
long nExprID,
long flags
);

Parameters

nExprID

[in] A long that specifies the expression to be deleted.

flags

[in] A long that contains the optional control flags. This parameter is currently unused and should be set to zero (0).

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | 0x8110001F | Invalid connection
E_EXPR_BADEXPRID | 0x8110000A | Invalid expression ID specified, or expression ID not found in store
E_EXPR_EXPRDELFAILED | 0x81100010 | Delete operation failed, possibly due to other expressions having dependencies on this expression
E_EXPR_NOCONNECTIONSTRING | 0x8110000D | No connection string specified

Additional information may be available using the global Err object, which can 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

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.

See Also

ExpressionStore Object

IExpressionStore::Connect

IExpressionStore::NewExpression


IExpressionStore::Disconnect

Use this method to set the connection string to the expression store to an empty string.

Definition

HRESULT IExpressionStore::Disconnect(
);

Parameters

None.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about connecting and disconnecting to an expression store, see IExpressionStore::Connect

See Also

ExpressionStore Object


IExpressionStore::Export

Use this method to export the expressions stored in the expression store to a file.

Definition

HRESULT IExpressionStore::Export(
BSTR bstrFileName
);

Parameters

bstrFileName

[in] A BSTR that contains the name of the file used to store the expressions.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | 0x8110001F | Invalid connection
E_EXPR_NOCONNECTIONSTRING | 0x8110000D | No connection string specified

Additional information may be available using the global Err object, which can 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

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.

See Also

Expression Recordset

Expression XML Structures

ExpressionStore Object

IExpressionStore::Import


IExpressionStore::GetAllExprs

Use this method to retrieve an ADO hierarchical Recordset object that contains all the expressions residing in the expression store.

Definition

HRESULT IExpressionStore::GetAllExprs(
_Recordset** ppRSExprs
);

Parameters

ppRSExprs

[out, retval] An address of a pointer to an ADO hierarchical Recordset object that contains all the expressions residing in the expression store.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | 0x8110001F | Invalid connection
E_EXPR_NOCONNECTIONSTRING | 0x8110000D | No connection string specified

Additional information may be available using the global Err object, which can 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

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.

The ppRSExprs parameter contains valid data only if the method completes successfully.

See Also

ExpressionStore Object

IExpressionStore::Connect

IExpressionStore::GetExpression


IExpressionStore::GetExpression

Use this method to retrieve an ADO hierarchical Recordset object that contains the specified expression.

Definition

HRESULT IExpressionStore::GetExpression(
long nExprID,
_Recordset** ppRSExpr
);

Parameters

nExprID

[in] A long that contains the unique identifier of the expression.

ppRSExpr

[out, retval] An address of a pointer to an ADO hierarchical Recordset object that contains the expression.

Return Values

This method returns an HRESULT indicating whether or not 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.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | 0x8110001F | Invalid connection
E_EXPR_BADEXPRID | 0x8110000A | Invalid expression ID specified, or expression ID not found in store
E_EXPR_NOCONNECTIONSTRING | 0x8110000D | No connection string specified

Additional information may be available using the global Err object, which can 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

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.

The ppRSExps parameter contains valid data only if the method completes successfully.

See Also

Expression Recordset

ExpressionStore Object

IExpressionStore::Connect

IExpressionStore::GetAllExprs

IExpressionStore::NewExpression


IExpressionStore::GetExprID

Use this method to translate the name of an expression into its corresponding expression ID.

Definition

HRESULT IExpressionStore::GetExprID(
BSTR strExprName,
long* pnExprID
);

Parameters

strExprName

[in] A BSTR that contains the expression name.

pnExprID

[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

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | 0x8110001F | Invalid connection
E_EXPR_BADEXPRNAME | 0x81100003 | Invalid expression name, or expression name not found in store
E_EXPR_NOCONNECTIONSTRING | 0x8110000D | No connection string specified

Additional information may be available using the global Err object, which can 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

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.

The ppExprID parameter contains valid data only if the method completes successfully.

See Also

ExpressionStore Object

IExpressionStore::Connect

IExpressionStore::GetExpression

IExpressionStore::GetExprName

IExpressionStore::RenameExpression


IExpressionStore::GetExprName

Use this method to translate the ID of an expression into its corresponding expression name.

Definition

HRESULT IExpressionStore::GetExprName(
long nExprID,
BSTR* pstrExprName
);

Parameters

nExprID

[in] A long that contains a unique expression ID.

pstrExprName

[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

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | 0x8110001F | Invalid connection
E_EXPR_BADEXPRID | 0x8110000A | Invalid expression ID specified, or expression ID not found in store
E_EXPR_NOCONNECTIONSTRING | 0x8110000D | No connection string specified

Additional information may be available using the global Err object, which can 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

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.

The pstrExprName parameter contains valid data only if the method completes successfully.

See Also

ExpressionStore Object

IExpressionStore::Connect

IExpressionStore::GetExprID


IExpressionStore::Import

Use this method to import expressions from a file into the expression store.

Definition

HRESULT IExpressionStore::Import(
BSTR bstrFileName
);

Parameters

bstrFileName

[in] A BSTR that contains the path and name of the file from which to import the expressions.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | 0x8110001F | Invalid connection
E_EXPR_NOCONNECTIONSTRING | 0x8110000D | No connection string specified
E_EXPR_NONEMPTYSTORE | 0x8110000C | Cannot import to a non-empty store

Additional information may be available using the global Err object, which can 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

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.

See Also

Expression Recordset

Expression XML Structures

ExpressionStore Object

IExpressionStore::Export


IExpressionStore::NewExpression

Use this method to return an ADO hierarchical Recordset object that contains an empty expression.

Definition

HRESULT IExpressionStore::NewExpression(
_Recordset** ppRSExpr
);

Parameters

ppRSExpr

[out, retval] An address of a pointer to an ADO hierarchical Recordset object that contains an empty expression.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | 0x8110001F | Invalid connection
E_EXPR_NOCONNECTIONSTRING | 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.

See Also

ExpressionStore Object

IExpressionStore::Connect

IExpressionStore::SaveExpression


IExpressionStore::Query

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

HRESULT IExpressionStore::Query(
VARIANT vName,
VARIANT vCategory,
VARIANT vProfiles,
_Recordset** ppRSExprs
);

Parameters

vName

[in, optional] When specified, a BSTR name to match expressions against. This is used in an SQL LIKE clause that permits wildcards.

vCategory

[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.

vProfiles

[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.

ppRSExprs

[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

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | 0x8110001F | Invalid connection
E_EXPR_NOCONNECTIONSTRING | 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The ppRSExprs parameter contains valid data only if the method completes successfully.

See Also

ExpressionStore Object

IExpressionStore::Connect


IExpressionStore::RenameExpression

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

HRESULT IExpressionStore::RenameExpression(
long nExprID,
BSTR strNewName
);

Parameters

nExprID

[in] A long that contains the expression ID.

strNewName

[in] A BSTR that contains the new name.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | 0x8110001F | Invalid connection
E_EXPR_BADEXPRID | 0x8110000A | Invalid expression ID specified, or expression ID not found in store
E_EXPR_BADEXPRNAME | 0x81100003 | Invalid expression name
E_EXPR_DUPEXPRNAME | 0x81100007 | Duplicate expression name
E_EXPR_INVALIDFIELDSIZE | 0x81100005 | The new name exceeds the maximum size of 30 characters
E_EXPR_NOCONNECTIONSTRING | 0x8110000D | No connection string specified

Additional information may be available using the global Err object, which can 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

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.

See Also

ExpressionStore Object

IExpressionStore::Connect

IExpressionStore::GetExprID


IExpressionStore::SaveExpression

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

HRESULT IExpressionStore::SaveExpression(
_Recordset* pRSExpr
);

Parameters

pRSExpr

[in] A pointer to the ADO hierarchical Recordset object that contains the expression.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | 0x8110001F | Invalid connection
E_EXPR_BADEXPRBODY | 0x81100004 | Invalid or missing expression body
E_EXPR_BADEXPRCATEGORY | 0x8110000A | Invalid expression category specified
E_EXPR_BADEXPRNAME | 0x81100003 | Invalid expression name
E_EXPR_CYCLEDETECTED | 0x81100006 | A cycle was detected in the expression dependencies of this expression
E_EXPR_DUPEXPRDEPS | 0x81100009 | Duplicate expression dependency
E_EXPR_DUPEXPRNAME | 0x81100007 | Duplicate expression name
E_EXPR_DUPPROFDEPS | 0x81100008 | Duplicate profile dependency
E_EXPR_INVALIDEXPRDEPS | 0x8110000B | One or more of the expression dependencies refers to an expression ID that does not exist
E_EXPR_INVALIDFIELDSIZE | 0x81100005 | The new name exceeds the maximum size of 30 characters
E_EXPR_NOCONNECTIONSTRING | 0x8110000D | No connection string specified
E_EXPR_NOPROFDEPS | 0x81100002 | Expression must have at least one profile-dependency to be saved

Additional information may be available using the global Err object, which can 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

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

ExpressionStore Object

IExpressionStore::Connect

IExpressionStore::GetExpression

IExpressionStore::NewExpression


ExprFltrQueryBldr Object

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
COM Interface Name: | IExprFltrQueryBldr
Interface ID Constant: | IID_IExprFltrQueryBldr
Header File: | exprfltrbldr.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Expression Builder Type Library
DLL Name: | exprfltrbldr.dll
Threading Model: | Apartment

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.

The methods of the ExprFltrQueryBldr object are shown in the following table.

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

Expression XML Structures


IExprFltrQueryBldr::ConvertExprToSqlFltrStr

Use this method to convert an expression in Extensible Markup Language (XML) form to a SQL filter query string.

Definition

HRESULT IExprFltrQueryBldr::ConvertExprToSqlFltrStr(
BSTR pExpression,
BSTR* pFilter
);

Parameters

pExpression

[in] A BSTR that contains the expression in XML form.

pFilter

[out, retval] A pointer to a BSTR used to return the SQL filter string.

Return Values

This method returns an HRESULT indicating the method 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

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.

See Also

ExprFltrQueryBldr Object


IExprFltrQueryBldr::ConvertExprUsingDict

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

HRESULT IExprFltrQueryBldr::ConvertExprUsingDict(
BSTR pExpr,
IDispatch* pDict,
BSTR* pDest
);

Parameters

pExpr

[in] A BSTR that contains the expression in XML form.

pDict

[in] A pointer to the IDispatch interface of a Dictionary object that contains the values referenced by the expression.

pDest

[out, retval] A pointer to a BSTR used to return the SQL filter string.

Return Values

This method returns an HRESULT indicating whether the method 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

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.

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

ExprFltrQueryBldr Object


GenID Object

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
COM Interface Name: | IGenID
Interface ID Constant: | IID_IGenID
Header File: | genid.h
Type Library Name: | Microsoft Commerce 2000 GenID Type Library
DLL Name: | GenID.dll
Threading Model: | Both

In C++, use the IGenID interface to access the methods of the GenID object.

The methods of the GenID object are shown in the following table.

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

Use this method to generate a base5 Globally Unique Identifier (GUID) string.

Definition

HRESULT IGenID::GenBase5GUIDString(
BSTR* pbstrBase5GuidString
);

Parameters

pbstrBase5GuidString

[out, retval] A pointer to a BSTR used to return the base5 GUID string.

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

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.

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

GenID Object


IGenID::GenGUIDString

Use this method to generate a Globally Unique Identifier (GUID) string.

Definition

HRESULT IGenID::GenGUIDString(
BSTR* pbstrGUID
);

Parameters

pbstrGUID

[out, retval] A pointer to a BSTR used to return the GUID.

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

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

GenID Object


IGenID::GetCounterValue

Use this method to retrieve and increment the value stored in the specified counter.

Definition

HRESULT IGenID::GetCounterValue(
BSTR bstrCounterName,
long cDigits,
BSTR* pbstrCounterValue
);

Parameters

bstrCounterName

[in] A BSTR that contains the counter name.

cDigits

[in] An long that contains the number of digits to return.

pbstrCounterValue

[out, retval] A pointer to a BSTR used to return the counter value.

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

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.

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.

See Also

GenID Object


IGenID::Initialize

Use this method to connect the GenID object to the database that stores the table of counters.

Definition

HRESULT IGenID::Initialize(
BSTR bstrDBConnectionString,
long cBlockSizeHint
);

Parameters

bstrDBConnectionString

[in] A BSTR that contains the connection information to the database.

cBlockSizeHint

[in, optional, defaultvalue (1)] Not implemented, leave blank.

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

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.

See Also

GenID Object


IGenID::InitializeCounter

Use this method to create or reset a global, sequential counter.

Definition

HRESULT IGenID::InitializeCounter(
BSTR bstrCounterName,
long dwInitialValue
);

Parameters

bstrCounterName

[in] A BSTR that contains the counter name.

dwInitialValue

[in] An Integer that contains the initial value of the counter.

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

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.

The dwInitialValue parameter contains valid data only if the method completes successfully.

See Also

GenID Object


GlobalConfig Object

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
COM Interface Name: | _GlobalConfig
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 Configuration Type Library
DLL Name: | MSCSCfg.dll
Threading Model: | Apartment

In C++, use the _GlobalConfig interface to access the properties and methods of the GlobalConfig object.

The single property of the GlobalConfig object is shown in the following table.

Property | Type | Description
Fields | Fields | Returns group-level configuration data. This property is read-only.

The methods of the GlobalConfig object are shown in the following table.

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.

See Also

Integrating Custom Resources

Configuration Objects

SiteConfig Object

SiteConfigReadOnly Object


_GlobalConfig::CreateServiceConfig

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

HRESULT _GlobalConfig::CreateServiceConfig(
BSTR bstrServiceName,
BSTR bstrConfigSchemaClass
);

Parameters

bstrServiceName

[in] A BSTR that contains the new name for the resource configuration object instance.

bstrConfigSchemaClass

[in] A BSTR that contains the resource configuration schema class name.

Return Values

This method returns an HRESULT indicating whether or not 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.

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.

See Also

GlobalConfig Object

_GlobalConfig::DeleteServiceConfig


_GlobalConfig::CreateSiteConfig

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 IIS metabase by the Commerce Server Site Packager, to ensure that the Admin objects can only be operated on by site administrators.

Definition

HRESULT _GlobalConfig::CreateSiteConfig(
BSTR bstrSiteName,
IMSCSSiteConfigAdmin** ppsca
);

Parameters

bstrSiteName

[in] A BSTR that contains the new site name.

ppsca

[out] The address of a pointer to the SiteConfig object used to return the site configuration settings.

Return Values

This method returns an HRESULT indicating whether or not 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.

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 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.

See Also

GlobalConfig Object

_GlobalConfig::DeleteSiteConfig


_GlobalConfig::DeleteServiceConfig

Use this method to delete the specified resource, and to delete the Administration database association that links this resource to the site instance.

Definition

HRESULT _GlobalConfig::DeleteServiceConfig(
BSTR bstrServiceName
);

Parameters

bstrServiceName

[in] A BSTR that contains the name of the resource configuration object to be deleted.

Return Values

This method returns an HRESULT indicating whether or not 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.

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.

See Also

GlobalConfig Object

_GlobalConfig::CreateServiceConfig


_GlobalConfig::DeleteSiteConfig

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

HRESULT _GlobalConfig::DeleteSiteConfig(
BSTR bstrSiteName
);

Parameters

bstrSiteName

[in] A BSTR that contains the site name.

Return Values

This method returns an HRESULT indicating whether or not 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.

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.

See Also

GlobalConfig Object

_GlobalConfig::CreateSiteConfig


_GlobalConfig::get_Fields

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

HRESULT _GlobalConfig::get_Fields(
Fields** pFields
);

Parameters

pFields

[out] The address of a pointer to the Fields object used to return resource configuration information.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

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.

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

GlobalConfig Object


_GlobalConfig::GetIfCollection

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

HRESULT _GlobalConfig::GetIfCollection(
VARIANT* strList,
VARIANT* retVal
);

Parameters

strList

[in] A pointer to the VARIANT that contains the encoded string to be converted.

retVal

[out, retval] A pointer to a VARIANT used to return the converted data in the appropriate data type.

Return Values

This method returns an HRESULT indicating whether or not 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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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

GlobalConfig Object


_GlobalConfig::GetResourcePropAttrib

Use this method to get a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.

Definition

HRESULT _GlobalConfig::GetResourcePropAttrib(
BSTR strResourceName,
BSTR strPropName,
IDictionary** idictResPropAttrib
);

Parameters

strResourceName

[in] A BSTR that contains the resource name.

strPropName

[in] A BSTR that contains the resource property name.

idictResPropAttrib

[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

This method returns an HRESULT indicating whether or not 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.

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 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.

See Also

GlobalConfig Object


_GlobalConfig::Initialize

Use this method to load the global configuration from the Administration database.

Definition

HRESULT _GlobalConfig::Initialize(
BSTR bstrGroupName
);

Parameters

bstrGroupName

[in, optional] A BSTR reserved for future use. This method ignores the value placed in this parameter.

Return Values

This method returns an HRESULT indicating whether or not 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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

GlobalConfig Object


_GlobalConfig::MakeArrayFromSimpleList

Use this method to convert the specified SimpleList object into an Array.

Definition

HRESULT _GlobalConfig::MakeArrayFromSimpleList(
IDispatch** list,
VARIANT* vtArray
);

Parameters

list

[in] An IDispatch interface pointer to the SimpleList object that you wish to convert into an Array.

vtArray

[out, retval] A pointer to a VARIANT containing the converted Array.

Return Values

This method returns an HRESULT indicating whether or not 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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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.

See Also

GlobalConfig Object


_GlobalConfig::MakeArrayFromString

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

HRESULT _GlobalConfig::MakeArrayFromString(
VARIANT strList,
VARIANT* vtArray
);

Parameters

strList

[in] A VARIANT that contains the encoded string.

vtArray

[out, retval] A pointer to a VARIANT used to return the converted Array or unconverted String.

Return Values

This method returns an HRESULT indicating whether or not 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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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.

See Also

GlobalConfig Object


_GlobalConfig::MakeSimpleListFromArray

Use this method to convert an Array into a SimpleList object.

Definition

HRESULT _GlobalConfig::MakeSimpleListFromArray(
VARIANT* varArray,
IDispatch** iSimpleList
);

Parameters

varArray

[in] A pointer to the VARIANT that contains the Array to convert.

iSimpleList

[out, retval] The address of an IDispatch pointer used to return the converted SimpleList object.

Return Values

This method returns an HRESULT indicating whether or not 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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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.

See Also

GlobalConfig Object


_GlobalConfig::MakeStringFromArray

Use this method to convert an Array object into an encoded string, which can be written to the Fields property.

Definition

HRESULT _GlobalConfig::MakeStringFromArray(
VARIANT* varArray,
VARIANT* vtEncodedString
);

Parameters

varArray

[in] A pointer to the VARIANT that contains the Array to encode.

vtEncodedString

[out, retval] A pointer to a VARIANT used to return the encoded string.

Return Values

This method returns an HRESULT indicating whether or not 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.

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 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.

See Also

GlobalConfig Object


_GlobalConfig::MakeStringFromSimpleList

Use this method to convert a SimpleList object into an encoded string, which can be written to the Fields property.

Definition

HRESULT _GlobalConfig::MakeStringFromSimpleList(
IDispatch** slist,
BSTR* strEncodedString
);

Parameters

slist

[in] An IDispatch interface pointer to the SimpleList object that you wish to convert into an encoded string.

strEncodedString

[out, retval] A pointer to a String used to return the encoded string.

Return Values

This method returns an HRESULT indicating whether or not 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.

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 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.

See Also

GlobalConfig Object


_GlobalConfig::SaveConfig

Use this method to save the global configuration settings to the Administration database.

Definition

HRESULT _GlobalConfig::SaveConfig(
);

Parameters

None.

Return Values

This method returns an HRESULT indicating whether or not 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.

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

GlobalConfig Object


_GlobalConfig::Sites

Use this method to retrieve a list of all the sites available in the Administration database.This method returns a Recordset object that contains a single record; the number of fields in the Fields collection is equal to the number of sites in the Commerce Server 2000 installation. Each Fields collection contains the name of one of the sites.

Definition

HRESULT _GlobalConfig::Sites (

_Recordset** rsRecordSet
);

Parameters

rsRecordSet

[out, retval] The address of a pointer to a Recordset object used to return the list of all sites available in the Administration data store.

Return Values

This method returns an HRESULT indicating whether or not 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.

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 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

GlobalConfig Object


ListManager Object

Use this object to create and manage lists of users for the User Profile Management system, lists of e-mail addresses for the Direct Mailer, lists of segment members for the Predictor resource, lists generated from Analysis reports, and lists created from files and SQL queries.

ProgID: | Commerce.ListManager (Externally creatable)
COM Class Name: | ListManager
COM Interface Name: | IListManager
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 ListManager Type Library
EXE Name: | listmanager.exe
Threading Model: | Both

The properties of the ListManager object are shown in the following table.

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.

The methods of the ListManager object are shown in the following table.

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.
CreateFromDWCalc | Creates a list from an Analysis report.
CreateFromFile | Creates a list from a file.
CreateFromSegment | Creates a list from a Predictor resource segment.
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.

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

  • An Analysis report run from the Business Desk

  • A Predictor Resource segment

  • 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

List Management Objects


IListManager::AddUserToMailingList

Use this method to add a user record to a mailing list.

Definition

HRESULT IListManager::AddUserToMailingList(
VARIANT listID,
VARIANT UserEmail,
VARIANT UserGUID,
VARIANT UserFmt,
VARIANT UserLocale,
VARIANT UserUrl
);

Parameters

listID

[in] A VARIANT that contains the ID or name of the list.

UserEmail

[in] A VARIANT that contains the e-mail address of the user.

UserGUID

[in, optional] A VARIANT that contains the ID of the user (usually a GUID).

UserFmt

[in, optional] A VARIANT that contains the message format flag. See the Remarks section for more information.

UserLocale

[in, optional] A VARIANT that contains the preferred character set of the user.

UserUrl

[in, optional] A VARIANT that contains a URL used for retrieving personalized content for the user.

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 either standard or custom COM HRESULT 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 | 0x8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | 0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | 0x8C400006 | The specified list does not exist.
E_LM_MAILABLE_LIST_NO_EMAILS | 0x8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
E_LM_MUST_BE_STATIC | 0x8C400019 | The operation requires a static list and the specified list is dynamic.
E_LM_NOT_MAILING_LIST | 0x8C400018 | The operation requires a Mailing list and the specified list is not a mailing list.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
E_LM_USER_LIST_NO_GUIDS | 0x8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

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.

See Also

ListManager Object


IListManager::CancelOperation

Use this method to cancel the specified ListManager operation.

Definition

HRESULT IListManager::CancelOperation(
VARIANT varOpID
);

Parameters

varOpID

[in] A VARIANT that specifies the Operation ID of the operation to be cancelled.

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 either standard or custom COM HRESULT 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 | 0x8C400004 | The operation ID does not represent a currently running operation.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

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 currently active 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

ListManager Object


IListManager::get_ConnectionString

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

Get method:

HRESULT IListManager::get_ConnectionString(
BSTR* ConnectionString
);

Parameters

ConnectionString

[out, retval] A pointer to a BSTR used to return the connection string.

Return Values

This method returns an HRESULT indicating whether or not 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

ListManager Object


IListManager::Copy

Use this method to copy an existing list over another existing list.

Definition

HRESULT IListManager::Copy(
VARIANT srcList,
VARIANT resList,
BOOL bAsync,
VARIANT* pvarOpID
);

Parameters

srcList

[in] A VARIANT that contains the ID or name of the source list.

resList

[in] A VARIANT that contains the ID or name of the result list.

bAsync

[in] A BOOL that specifies whether the copy operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.

pvarOpID

[out, optional] A pointer to a VARIANT used to return an Operation ID.

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 either standard or custom COM HRESULT 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 | 0x8C40001C | Cannot copy a list over itself.
E_LM_LIST_BUSY | 0x8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | 0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | 0x8C400006 | The specified list does not exist.
E_LM_OPER_CANCELED | 0x8C40000B | The operation was canceled.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

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.

See Also

ListManager Object


IListManager::CreateEmpty

Use this method to create an empty list for subsequent operations.

Definition

HRESULT IListManager::CreateEmpty(
BSTR listName,
BSTR listDesc,
long flags,
long userFlags,
VARIANT* pvarID
);

Parameters

listName

[in] A BSTR that provides the name for the new list.

listDesc

[in] A BSTR that provides a description for the new list.

flags

[in] A long that specifies the bitmask flags that control the type of list created.

userFlags

[in] A long that contains application specific user flags. Not used by the ListManager object.

pvarID

[out, retval] A pointer to a VARIANT used to return the ID of the new list.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_INVALID_FLAGS | 0x8C400005 | Invalid flags value.
E_LM_LIST_ALREADY_EXISTS | 0x8C400007 | The specified list has already been created.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

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.

See Also

ListManager Object


IListManager::CreateFromDWCalc

Use this method to create a list from an Analysis report.

Definition

HRESULT IListManager::CreateFromDWCalc(
BSTR listName,
BSTR listDesc,
long lFlags,
long userFlags,
BSTR DWConnStr,
BSTR OLAPConnStr,
BSTR ReportStatusId,
BOOL bAsync,
VARIANT* pvarOpID,
VARIANT* pvarID
);

Parameters

listName

[in] A BSTR that provides the name for the new list.

listDesc

[in] A BSTR that provides a description for the new list.

lFlags

[in] A long that specifies the bitmask flags that control the type of list created.

userFlags

[in] A long that contains application specific user flags. Not used by the ListManager object.

DWConnStr

[in] A BSTR that contains the connection string for the Data Warehouse.

OLAPConnStr

[in] A BSTR that contains the OLAP connection string.

ReportStatusId

[in] A BSTR that contains the ReportStatusID of the report to be imported.

bAsync

[in] A BOOL that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.

pvarOpID

[out, optional] A pointer to a VARIANT used to return an Operation ID.

pvarID

[out, retval] A pointer to a VARIANT used to return the ID of the new list.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_CONNECTIONFAILED | 0x8C400001 | Failed to establish database connection.
E_LM_CREATE_OBJECT | 0x8C400017 | Unable to create the object.
E_LM_INVALID_FLAGS | 0x8C400005 | Invalid flags value.
E_LM_LIST_ALREADY_EXISTS | 0x8C400007 | The specified list has already been created.
E_LM_MAILABLE_LIST_NO_EMAILS | 0x8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
E_LM_OPER_CANCELED | 0x8C40000B | The operation was canceled.
E_LM_REPORTRENDERERFAILED | 0x8C40001A | The report rendering object failed during Analysis report export to ListManager. See the Application event log message logged by that object describing the problem.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
E_LM_USER_LIST_NO_GUIDS | 0x8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

This method calls into the ReportRender object, passing it the DWConnStr, OLAPConnStr, and the 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ListManager Object


IListManager::CreateFromFile

Use this method to create a list from a text file.

Definition

HRESULT IListManager::CreateFromFile(
BSTR listName,
BSTR listDesc,
long lFlags,
long userFlags,
BSTR fileName,
long errLimit,
BOOL bAsync,
VARIANT* pvarOpID,
VARIANT* pvarID
);

Parameters

listName

[in] A BSTR that provides the name for the new list.

listDesc

[in] A BSTR that provides a description for the new list.

lFlags

[in] A long that specifies the bitmask flags that control the type of list created.

userFlags

[in] A long that contains application specific user flags. Not used by the ListManager object.

fileName

[in] A BSTR that contains the name of the file from which to create the new list.

errLimit

[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).

bAsync

[in] A BOOL that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.

pvarOpID

[out, optional] A pointer to a VARIANT used to return an Operation ID.

pvarID

[out, retval] A pointer to a VARIANT used to return the ID of the new list.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

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 | 0x8C40000A | The specified file path is not valid.
E_LM_FILE_ACCESS_DENIED | 0x8C400009 | 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 | 0x8C400015 | The specified file does not exist.
E_LM_FILESHARE_NOT_FOUND | 0x8C400016 | The network share does not exist and a full path was not specified for the file.
E_LM_INVALID_FLAGS | 0x8C400005 | Invalid flags value.
E_LM_LIST_ALREADY_EXISTS | 0x8C400007 | The specified list has already been created.
E_LM_LISTPARSE_NO_GOOD_ROWS | 0x8C40001B | All rows in the file contained parse errors. List import failed.
E_LM_NO_GENERIC_FROM_FILE | 0x8C400014 | Generic lists may not be imported from files.
E_LM_OPER_CANCELED | 0x8C40000B | The operation was canceled.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

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.

See Also

ListManager Object

IListManager::GetListFlags


IListManager::CreateFromSegment

Use this method to create a list from a Predictor resource segment.

Definition

HRESULT IListManager::CreateFromSegment(
BSTR listName,
BSTR listDesc,
long lFlags,
long userFlags,
BSTR modelName,
BSTR segmentName,
BSTR predHostName,
BSTR DWConnStr,
double fpMinProbability,
BOOL bAsync,
VARIANT* pvarOpID,
VARIANT* pvarID
);

Parameters

listName

[in] A BSTR that provides the name for the list.

listDesc

[in] A BSTR that contains the list description.

lFlags

[in] A long that specifies the bitmask flags that control the type of list created.

userFlags

[in] A long that contains application specific user flags. Not used by the ListManager object.

modelName

[in] A BSTR that contains the name of the Predictor segment model to use.

segmentName

[in] A BSTR that contains the name of the segment to import.

predHostName

[in] A BSTR that contains the name of the Predictor host server.

DWConnStr

[in] A BSTR that contains the Data Warehouse connection string.

fpMinProbability

[in] A double that contains the minimum probability associated with a given segment member for that member to be included in the list.

bAsync

[in] A BOOL that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.

pvarOpID

[out, optional] A pointer to a VARIANT used to return an Operation ID.

pvarID

[out, retval] A pointer to a VARIANT used to return the new list ID.

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 either standard or custom COM HRESULT 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 | 0x8C400001 | Failed to establish database connection.
E_LM_CREATE_OBJECT | 0x8C400017 | Unable to create the object.
E_LM_INVALID_FLAGS | 0x8C400005 | Invalid flags value.
E_LM_LIST_ALREADY_EXISTS | 0x8C400007 | The specified list has already been created.
E_LM_MAILABLE_LIST_NO_EMAILS | 0x8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
E_LM_OPER_CANCELED | 0x8C40000B | The operation was canceled.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
E_LM_USER_LIST_NO_GUIDS | 0x8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ListManager Object

IListManager::GetListFlags


IListManager::CreateFromSql

Use this method to create a list from a SQL query.

Definition

HRESULT IListManager::CreateFromSql(
BSTR listName,
BSTR listDesc,
long lFlags,
long userFlags,
BSTR connStr,
BSTR queryStr,
long errLimit,
BOOL bAsync,
VARIANT* pvarOpID,
VARIANT* pvarID
);

Parameters

listName

[in] A BSTR that provides the name for the list.

listDesc

[in] A BSTR that provides a description for the list.

lFlags

[in] A long that specifies the bitmask flags that control the type of list created.

userFlags

[in] A long that contains application specific user flags. Not used by the ListManager object.

connStr

[in] A BSTR that contains the connection string for the SQL Server database.

queryStr

[in] A BSTR that contains the SQL query for retrieving the contents of the new list.

errLimit

[in] A long that is not used.

bAsync

[in] A BOOL that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.

pvarOpID

[out, optional] A pointer to a VARIANT used to return an Operation ID.

pvarID

[out, retval] A pointer to a VARIANT used to return the ID of the new list.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_CONNECTIONFAILED | 0x8C400001 | Failed to establish database connection.
E_LM_INVALID_FLAGS | 0x8C400005 | Invalid flags value.
E_LM_LIST_ALREADY_EXISTS | 0x8C400007 | The specified list has already been created.
E_LM_MAILABLE_LIST_NO_EMAILS | 0x8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
E_LM_OPER_CANCELED | 0x8C40000B | The operation was canceled.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
E_LM_USER_LIST_NO_GUIDS | 0x8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

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.

See Also

ListManager Object

IListManager::GetListFlags


IListManager::Delete

Use this method to delete a list.

Definition

HRESULT IListManager::Delete(
VARIANT listID
);

Parameters

listID

[in] A VARIANT that specifies the ID or name of the list to be deleted.

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 either standard or custom COM HRESULT 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 | 0x8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_NOT_FOUND | 0x8C400006 | The specified list does not exist.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

To be deleted, a list cannot be busy with any operation.

The list data is also deleted.

See Also

ListManager Object


IListManager::ExportToFile

Use this method to export a Mailing list to a text file.

Definition

HRESULT IListManager::ExportToFile(
VARIANT listID,
BSTR fileName,
BOOL bUnicode,
BOOL bOverwrite,
BOOL bAsync,
VARIANT* pvarOpID
);

Parameters

listID

[in] A VARIANT that contains the ID or name of the list to be exported.

fileName

[in] A BSTR that contains the name of the file.

bUnicode

[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.

bOverwrite

[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.

bAsync

[in] A BOOL that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.

pvarOpID

[out, optional] A pointer to a VARIANT used to return an Operation ID.

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 either standard or custom COM HRESULT 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 | 0x8C40000A | The specified file path is not valid.
E_LM_FILE_ACCESS_DENIED | 0x8C400009 | 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 | 0x8C400010 | The specified file cannot be created because it already exists.
E_LM_FILESHARE_NOT_FOUND | 0x8C400016 | The network share does not exist and a full path was not specified for the file.
E_LM_LIST_BUSY | 0x8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | 0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | 0x8C400006 | The specified list does not exist.
E_LM_MAILABLE_REQUIRED | 0x8C400011 | The operation requires a mailable list and the specified list is not a mailable list.
E_LM_OPER_CANCELED | 0x8C40000B | The operation was canceled.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

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.

See Also

ListManager Object


IListManager::ExportToSql

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

HRESULT IListManager::ExportToSql(
VARIANT listID,
BSTR connStr,
BSTR resTable,
BOOL bOverwrite,
long lOptions,
BOOL bAsync,
VARIANT* pvarOpID
);

Parameters

listID

[in] A VARIANT that contains the ID or name of the list to be exported.

connStr

[in] A BSTR that contains the connection string for the SQL Server database.

resTable

[in] A BSTR that contains the name of the table into which the list will be exported.

bOverwrite

[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.

lOptions

[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.

bAsync

[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.

pvarOpID

[out, optional] A pointer to a VARIANT used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.

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 either standard or custom COM HRESULT 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 | 0x8C400001 | Failed to establish database connection.
E_LM_LIST_BUSY | 0x8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | 0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | 0x8C400006 | The specified list does not exist.
E_LM_OPER_CANCELED | 0x8C40000B | The operation was canceled.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
E_LM_TABLE_ALREADY_EXISTS | 0x8C40000F | The specified table cannot be created because it already exists.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

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.

See Also

ListManager Object

IListManager::ExtractMailingList


IListManager::ExtractMailingList

Use this method to create a new mailing list from a generic list.

Definition

HRESULT IListManager::ExtractMailingList(
VARIANT srcList,
BSTR reslistName,
BSTR reslistDesc,
long userFlags,
BOOL bAsync,
VARIANT* pvarOpID,
VARIANT* pvarID
);

Parameters

srcList

[in] A VARIANT that contains the ID or name of the generic source list.

reslistName

[in] A BSTR that contains the new mailing list name.

reslistDesc

[in] A BSTR that contains the description of the new mailing list.

userFlags

[in] A long that contains application specific user flags. Not used by the ListManager object.

bAsync

[in] A BOOL that specifies whether the export operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.

pvarOpID

[out, optional] A pointer to a VARIANT used to return an Operation ID.

pvarID

[out, retval] A pointer to a VARIANT used to return the ID of the new list.

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 either standard or custom COM HRESULT 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 | 0x8C400007 | The specified list has already been created.
E_LM_LIST_BUSY | 0x8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | 0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | 0x8C400006 | The specified list does not exist.
E_LM_MAILABLE_LIST_NO_EMAILS | 0x8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
E_LM_MAILABLE_REQUIRED | 0x8C400011 | The operation requires a mailable list and the specified list is not a mailable list.
E_LM_OPER_CANCELED | 0x8C40000B | The operation was canceled.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
E_LM_USER_LIST_NO_GUIDS | 0x8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

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.

See Also

ListManager Object


IListManager::GetListFlags

Use this method to retrieve the flags attribute for a list.

Definition

HRESULT IListManager::GetListFlags(
VARIANT listID,
long* plFlags
);

Parameters

listID

[in] A VARIANT that contains the ID or name of the list.

plFlags

[out, retval] A pointer to a long used to return the flags attribute.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_LIST_NOT_FOUND | 0x8C400006 | The specified list does not exist.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

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

ListManager Object


IListManager::GetListId

Use this method to retrieve the ID of a list given the list name.

Definition

HRESULT IListManager::GetListId(
BSTR listName,
VARIANT* pvarID
);

Parameters

listName

[in] A BSTR that contains the list name.

pvarID

[out, retval] A pointer to a VARIANT used to return the ID (a GUID) of the list.

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 either standard or custom COM HRESULT 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 | 0x8C400006 | The specified list does not exist.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ListManager Object


IListManager::GetListName

Use this method to retrieve the name of a list given the list ID.

Definition

HRESULT IListManager::GetListName(
VARIANT listID,
BSTR* plistName
);

Parameters

listID

[in] A VARIANT that contains the list ID.

plistName

[out, retval] A pointer to a BSTR used to return the name of the list.

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 either standard or custom COM HRESULT 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 | 0x8C400006 | The specified list does not exist.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ListManager Object


IListManager::GetListProperty

Use this method to retrieve a property of a list.

Definition

HRESULT IListManager::GetListProperty(
VARIANT listID,
BSTR listPropertyName,
VARIANT* pvarListProp
);

Parameters

listID

[in] A VARIANT that contains the ID or name of the list.

listPropertyName

[in] A BSTR that contains the property name (column of the lm_master table).

pvarListProp

[out, retval] A pointer to a VARIANT used to return the value of the property.

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 either standard or custom COM HRESULT 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 | 0x8C400006 | The specified list does not exist.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

For information about the available list properties, see IListManager::GetLists.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ListManager Object


IListManager::GetLists

Use this method to enumerate all lists known to the ListManager object.

Definition

HRESULT IListManager::GetLists(
IDispatch** ppRecSet
);

Parameters

ppRecSet

[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.

Return Values

This method returns an HRESULT indicating whether or not 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

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

ListManager Object


IListManager::GetListUserFlags

Use this method to retrieve the UserFlags attribute for a list.

Definition

HRESULT IListManager::GetListUserFlags(
VARIANT listID,
long* plUserFlags
);

Parameters

listID

[in] A VARIANT that contains the ID or name of the list.

plUserFlags

[out, retval] A pointer to a long used to return the UserFlags attribute.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_LIST_NOT_FOUND | 0x8C400006 | The specified list does not exist.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

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

ListManager Object


IListManager::GetOperationInfo

Use this method to retrieve a Recordset object containing columns describing the specified list operation.

Definition

HRESULT IListManager::GetOperationInfo(
VARIANT varOpID,
IDispatch** ppRecSet
);

Parameters

varOpID

[in] A VARIANT that contains the Operation ID.

ppRecSet

[out, retval] The address of a pointer to an IDispatch interface of a Recordset object used to return the operation information.

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

For more information about the returned Recordset object, see IListManager::GetOperations.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ListManager Object


IListManager::GetOperations

Use this method to enumerate all operations known to the ListManager object.

Definition

HRESULT IListManager::GetOperations(
IDispatch** ppRecSet
);

Parameters

ppRecSet

[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.

Return Values

This method returns an HRESULT indicating whether or not 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

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

ListManager Object

IListManager::CancelOperation


IListManager::Initialize

Use this method to initialize the ListManager object.

Definition

HRESULT IListManager::Initialize(
BSTR bstrConnStr,
);

Parameters

bstrConnStr

[in] A BSTR that contains the connection string for the database to which the List Manager will connect.

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 either standard or custom COM HRESULT 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 | 0x8C400002 | The ListManager object has already been initialized and may not be re-initialized.
E_LM_CONNECTIONFAILED | 0x8C400001 | Failed to establish database connection.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.

Additional information may be available using the global Err object, which can 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

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.

See Also

ListManager Object

IListManager::ExportToSQL


IListManager::RemoveUserFromMailingList

Use this method to remove a user from a mailing list

Definition

HRESULT IListManager::RemoveUserFromMailingList(
VARIANT listID,
BSTR UserEmail
);

Parameters

listID

[in] A VARIANT that contains the ID or name of the list.

UserEmail

[in] A BSTR that contains the e-mail address of the user.

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 either standard or custom COM HRESULT 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 | 0x8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | 0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | 0x8C400006 | The specified list does not exist.
E_LM_MAILABLE_LIST_NO_EMAILS | 0x8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
E_LM_MUST_BE_STATIC | 0x8C400019 | The operation requires a static list and the specified list is dynamic.
E_LM_NOT_MAILING_LIST | 0x8C400018 | The operation requires a Mailing list and the specified list is not a mailing list.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
E_LM_USER_LIST_NO_GUIDS | 0x8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ListManager Object


IListManager::Rename

Use this method to rename a list.

Definition

HRESULT IListManager::Rename(
VARIANT listID,
BSTR newListName
);

Parameters

listID

[in] A VARIANT that specifies the ID or name of the list to be renamed.

newListName

[in] A BSTR that contains the new name for the list.

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 either standard or custom COM HRESULT 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 | 0x8C400007 | The specified list has already been created
E_LM_LIST_BUSY | 0x8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | 0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | 0x8C400006 | The specified list does not exist.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

The new name must not be the same as any existing list name.

See Also

ListManager Object


IListManager::SetDesc

Use this method to provide a new description for a list.

Definition

HRESULT IListManager::SetDesc(
VARIANT listID,
BSTR newListDesc
);

Parameters

listID

[in] A VARIANT that specifies the ID or name of the list.

newListDesc

[in] A BSTR that contains the description to be associated with the list.

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 either standard or custom COM HRESULT 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 | 0x8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | 0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | 0x8C400006 | The specified list does not exist.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

ListManager Object


IListManager::SetListProperty

Use this method to set a property of a list.

Definition

HRESULT IListManager::SetListProperty(
VARIANT listID,
BSTR listPropertyName,
VARIANT ListProp
);

Parameters

listID

[in] A VARIANT that contains the ID or name of the list.

listPropertyName

[in] A BSTR that contains the property name (column of the lm_master table).

ListProp

[in] A VARIANT that contains the value to set the property.

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 either standard or custom COM HRESULT 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 | 0x8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | 0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_MUST_BE_DYNAMIC | 0x8C400012 | The operation requires a dynamic list and the specified list is not a dynamic list.
E_LM_LIST_NOT_FOUND | 0x8C400006 | The specified list does not exist.
E_LM_LISTPROP_NOT_UPDATEABLE | 0x8C400013 | The specified list property cannot be changed after the list has been created.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

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.

See Also

ListManager Object


IListManager::get_Status

The Status property is a read-only Long that contains the ListManager object status.

Definition

Get method:

HRESULT IListManager::get_Status(
long* Status
);

Parameters

Status

[out, retval] A pointer to a long is used to return the ListManager object status.

Return Values

This method returns an HRESULT indicating whether or not 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

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

ListManager Object


IListManager::Subtract

Use this method to subtract one mailing list from another mailing list, placing the result in a third list.

Definition

HRESULT IListManager::Subtract(
VARIANT srcList,
VARIANT lessList,
VARIANT resList,
long errLimit,
BOOL bAsync,
VARIANT* pvarOpID
);

Parameters

srcList

[in] A VARIANT that contains the ID or name of the list from which elements will be subtracted.

lessList

[in] A VARIANT that contains the ID or name of the less list.

resList

[in] A VARIANT that contains the ID or name of the list into which the results of the subtraction operation will be placed.

errLimit

[in] A long that is not used.

bAsync

[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.

pvarOpID

[out, optional] A pointer to a VARIANT used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.

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 either standard or custom COM HRESULT 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 | 0x8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | 0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | 0x8C400006 | The specified list does not exist.
E_LM_MAILABLE_REQUIRED | 0x8C400011 | The operation requires a mailable list and the specified list is not a mailable list.
E_LM_OPER_CANCELED | 0x8C40000B | The operation was canceled.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

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.

See Also

ListManager Object


IListManager::Union

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

HRESULT IListManager::Union(
VARIANT srcList,
VARIANT addList,
VARIANT resList,
long errLimit,
BOOL bAsync,
VARIANT* pvarOpID
);

Parameters

srcList

[in] A VARIANT that contains the ID or name of the source list.

addList

[in] A VARIANT that contains the ID or name of the add list.

resList

[in] A VARIANT that contains the ID or name of the list into which the results of the union operation will be placed.

errLimit

[in] A long that is not used.

bAsync

[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.

pvarOpID

[out, optional] A pointer to a VARIANT used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.

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 either standard or custom COM HRESULT 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 | 0x8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | 0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | 0x8C400006 | The specified list does not exist.
E_LM_MAILABLE_REQUIRED | 0x8C400011 | The operation requires a mailable list and the specified list is not a mailable list.
E_LM_OPER_CANCELED | 0x8C40000B | The operation was canceled.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

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.

See Also

ListManager Object


IListManager::WaitOnOperation

Use this method to wait until an operation is complete or a specified time period has elapsed.

Definition

HRESULT IListManager::WaitOnOperation(
VARIANT varOpID,
unsigned long timeout
);

Parameters

varOpID

[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.

timeout

[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.

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 either standard or custom COM HRESULT 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 | 0x8C400004 | The operation ID does not represent a currently running operation.
E_LM_SQLERROR | 0x8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | 0x80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object, which can 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ListManager Object


LRUCache Object

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
COM Interface Name: | ILRUCache
Interface ID Constant: | IID_ILRUCache
Header File: | cacheint.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both

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.

The methods of the LRUCache object are shown in the following table.

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

Use this method to remove the specified element from the cache.

Definition

HRESULT ILRUCache::Flush(
BSTR bstrKey
);

Parameters

bstrKey

[in, optional] A BSTR that contains the name of the element to be removed from the cache.

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

If no element is specified, all elements are removed.

See Also

CacheManager Object

LRUCache Object


ILRUCache::FlushAll

Use this method to remove all elements from the cache.

Definition

HRESULT ILRUCache::FlushAll(
);

Parameters

None.

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

CacheManager Object

LRUCache Object


ILRUCache::Insert

Use this method to add an element to the cache.

Definition

HRESULT ILRUCache::Insert(
BSTR bstrKey,
VARIANT* pvarValue
);

Parameters

bstrKey

[in] A BSTR that contains the name of the element to be added to the cache.

pvarValue

[in] A pointer to the VARIANT that contains the value of the element.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CacheManager Object

LRUCache Object


ILRUCache::Lookup

Use this method to retrieve the value of an element from the cache.

Definition

HRESULT ILRUCache::Lookup(
BSTR bstrKey,
VARIANT* pvarValue
);

Parameters

bstrKey

[in] A BSTR that contains the name of the element to be retrieved.

pvarValue

[out,retval] A pointer to a VARIANT used to return the value.

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

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.

See Also

CacheManager Object

LRUCache Object


ILRUCache::LookupObject

Use this method to retrieve an object from the cache.

Definition

HRESULT ILRUCache::LookupObject(
BSTR bstrKey,
IDispatch** ppLRUCache
);

Parameters

bstrKey

[in] A BSTR that contains the name of the object to be retrieved.

ppLRUCache

[out,retval] The address of a pointer to the IDispatch interface of an 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

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.

See Also

CacheManager Object

LRUCache Object


ILRUCache::SetSize

Use this method to set the maximum size of the cache.

Definition

HRESULT ILRUCache::SetSize(
long lSize
);

Parameters

lSize

[in] A long that specifies the size of the cache.

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

CacheManager Object

LRUCache Object


MessageManager Object

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
COM Interface Name: | IMSCSMessageManager_3_0
Interface ID Constant: | IID_IMSCSMessageManager_3_0
Header File: | commerce.h, mspu_guids.h
Type Library Name: | Commerce -- MSCSAspHelp Type Library
DLL Name: | MSCSAspHelp.dll
Threading Model: | Both

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.

The single property of the MessageManager object is shown in the following table.

Property | Type | Description
defaultLanguage | BSTR | Specifies the default message set for the MessageManager. This property is read/write.

The methods of the MessageManager object are shown in the following table.

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.

See Also

Display Objects


IMSCSMessageManager_3_0::AddLanguage

Use this method to add a message set to the MessageManager, 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

HRESULT IMSCSMessageManager_3_0::AddLanguage(
BSTR bstrLanguage,
long Locale
);

Parameters

bstrLanguage

[in] A BSTR that contains the name for the message set to add to the MessageManager object.

Locale

[in] A long that uniquely identifies the locale to associate with the added message set.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

MessageManager Object

IMSCSMessageManager_3_0::get_DefaultLanguage, put_DefaultLanguage

IDataFunctions_4_0::get_Locale, put_Locale

IMSCSMessageManager_3_0::GetMessage


IMSCSMessageManager_3_0::AddMessage

Use this method to add a message to the MessageManager object.

Definition

HRESULT IMSCSMessageManager_3_0::AddMessage(
BSTR bstrName,
BSTR bstrMessage,
VARIANT vtLanguage
);

Parameters

bstrName

[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.

bstrMessage

[in] A BSTR that contains the text of the message to add.

vtLanguage

[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.

Return Values

This method returns an HRESULT indicating whether or not 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

The following table lists the messages that are used by the default implementation of the OPP, showing the message name constant expected by the Order Processing pipeline (OOP) 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 OrderForm.
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 OrderForm 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 OrderForm.
pur_out_of_stock | FlagInventory, LocalInventory | _Purchase_Errors when an item referenced in the OrderForm is out of stock.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

MessageManager Object

IMSCSMessageManager_3_0::get_DefaultLanguage, put_DefaultLanguage

IMSCSMessageManager_3_0::GetMessage


IMSCSMessageManager_3_0::get_DefaultLanguage, put_DefaultLanguage

Use the DefaultLanguage property to specify the default message set for the MessageManager. When you use the GetMessage method, or use the AddMessage method to add messages to the MessageManager, without specifying a message set for those messages, then the messages are associated with the message set specified in this property.

Definition

Get method:

HRESULT IMSCSMessageManager_3_0::get_defaultLanguage(
BSTR* defaultLanguage
);

Put method:

HRESULT IMSCSMessageManager_3_0::put_defaultLanguage(
BSTR defaultLanguage
);

Parameters

defaultLanguage

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

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

MessageManager Object

IMSCSMessageManager_3_0::GetLocale


IMSCSMessageManager_3_0::GetLocale

Use this method to return a number that identifies the locale for the specified message set.

Definition

HRESULT IMSCSMessageManager_3_0::GetLocale(
VARIANT vtLanguage,
long* pLocale
);

Parameters

vtLanguage

[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.

pLocale

[out, retval] A pointer to a long used to identify the locale for the specified message set.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

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.

See Also

MessageManager Object

IMSCSMessageManager_3_0::GetMessage

IMSCSMessageManager_3_0::AddLanguage


IMSCSMessageManager_3_0::GetMessage

Use this method to return the text of the specified message.

Definition

HRESULT IMSCSMessageManager_3_0::GetMessage(
BSTR bstrName,
VARIANT vtLanguage,
BSTR* Message
);

Parameters

bstrName

[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.

vtLanguage

[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.

Message

[out, retval] A pointer to a BSTR used to return the text of the specified message.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

MessageManager Object

IMSCSMessageManager_3_0::AddLanguage

IMSCSMessageManager_3_0::GetLocale


MicroPipe Object

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
COM Interface Name: | IMicroPipeline
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 MicroPipe Type Library
DLL Name: | micropipe.dll
Threading Model: | Both

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.

The methods of the MicroPipe object are shown in the following table.

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.

See Also

Pipeline Objects


IMicroPipeline::Execute

Use this method to run the pipeline component specified by the SetComponent method.

Definition

HRESULT IMicroPipeline::Execute(
IDispatch* pdispOrder,
IDispatch* pdispContext,
long lFlags,
long* pErrorLevel
);

Parameters

pdispOrder

[in] A pointer to the IDispatch interface of a Dictionary object. The Dictionary object is the Order dictionary that the pipeline component will run.

pdispContext

[in] A pointer to the IDispatch interface of a Dictionary object. The Context dictionary for the pipeline component to be run.

lFlags

[in] A long integer. Reserved for future use. Must be set to zero (0).

pErrorLevel

[out,retval] A pointer to a long that returns the error level.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

In addition, the pErrorLevel parameter is set to one of the following three values:

Value | Description
1 | The pipeline component ran successfully.
2 | The pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3 | The pipeline component failed to run.

Remarks

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.

See Also

MicroPipe Object

IMicroPipeline::SetComponent

IMicroPipeline::SetLogFile


IMicroPipeline::SetComponent

Use this method to specify the pipeline component to run.

Definition

HRESULT IMicroPipeline::SetComponent(
IDispatch* pdispComponent
);

Parameters

pdispComponent

[in] A pointer to the IDispatch interface of the pipeline component to be run.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

MicroPipe Object

IMicroPipeline::Execute

IMicroPipeline::SetLogFile


IMicroPipeline::SetLogFile

Use this method to identify the file in which to log the operations of the pipeline component.

Definition

HRESULT IMicroPipeline::SetLogFile(
BSTR bstrFileName
);

Parameters

bstrFileName

[in] A BSTR containing the file name for logging.

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

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.

See Also

MicroPipe Object

IMicroPipeline::Execute

IMicroPipeline::SetComponent


MtsPipeline Object

Use this object to execute a non-transacted Microsoft Commerce Server 2000 pipeline. The pipeline may be an Order Processing pipeline (OPP).

ProgID: | Commerce.MtsPipeline (Externally creatable)
COM Class Name: | CMtsPipeline
COM Interface Name: | IPipeline
Interface ID Constant: | IID_IPipeline
Header File: | pipeline.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Order Pipeline Type Library
DLL Name: | pipeline.dll
Threading Model: | Apartment

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.

The methods of the MtsPipeline object are shown in the following table.

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::Execute

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

HRESULT IPipeline::Execute(
long lMode,
IDispatch* pdispOrder,
IDispatch* pdispContext,
long lFlags,
long* pErrorLevel
);

Parameters

lMode

[in] A long 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

[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.

pdispContext

[in] A pointer to the IDispatch interface of a Dictionary object. The Context dictionary that will be used by the pipeline.

lFlags

[in] An unused long integer parameter. Must be set to zero (0).

pErrorLevel

[out,retval] A pointer to a long that returns the error level.

Return Values

This method returns an HRESULT indicating whether or not 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.

In addition, the pErrorLevel parameter 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.

Remarks

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.

See Also

MtsPipeline Object

IPipeline::LoadPipe

IPipeline::SetLogFile

PooledPipeline Object


IPipeline::LoadPipe

Use this method to load a pipeline configuration file (.pcf) into the pipeline.

Definition

HRESULT IPipeline::LoadPipe(
BSTR pszFileName
);

Parameters

pszFileName

[in] A BSTR containing the pipeline configuration file name.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

MtsPipeline Object

IPipeline::Execute

IPipeline::SetLogFile

PooledPipeline Object


IPipeline::SetLogFile

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

HRESULT IPipeline::SetLogFile(
BSTR pszFileName
);

Parameters

pszFileName

[in] A BSTR containing the name of the file in which to log events.

Return Values

This method returns an HRESULT indicating whether or not 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

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 executing 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.

See Also

MtsPipeline Object

IPipeline::Execute

IPipeline::LoadPipe

PooledPipeline Object


MtsTxPipeline Object

Use this object to execute a transacted Microsoft Commerce Server 2000 pipeline configuration. The pipeline may be an Order Processing pipeline (OPP).

ProgID: | Commerce.MtsTxPipeline (Externally creatable)
COM Class Name: | CTxPipeline
COM Interface Name: | IPipeline
Interface ID Constant: | IID_IPipeline
Header File: | pipeline.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Order Pipeline Type Library
DLL Name: | pipeline.dll
Threading Model: | Apartment

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.

The methods of the MtsTxPipeline object are shown in the following table.

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::Execute

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

HRESULT IPipeline::Execute(
long lMode,
IDispatch* pdispOrder,
IDispatch* pdispContext,
long lFlags,
long* pErrorLevel
);

Parameters

lMode

[in] A long 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. Use a value of one (1). A value of zero (0) prevents any stages from running.

pdispOrder

[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.

pdispContext

[in] A pointer to the IDispatch interface of a Dictionary object. The Context dictionary that will be used by the pipeline.

lFlags

[in] An unused long integer parameter. Must be set to zero (0).

pErrorLevel

[out,retval] A pointer to a long that returns the error level.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. For more details, see the Error Values section.

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.

In addition, the pErrorLevel parameter 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.

Remarks

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.

See Also

MtsTxPipeline Object

IPipeline::LoadPipe

IPipeline::SetLogFile


IPipeline::LoadPipe

Use this method to load a pipeline configuration file (.pcf) into the pipeline.

Definition

HRESULT IPipeline::LoadPipe(
BSTR pszFileName
);

Parameters

pszFileName

[in] A BSTR containing the pipeline configuration file (.pcf) name.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

MtsTxPipeline Object

IPipeline::Execute

IPipeline::SetLogFile


IPipeline::SetLogFile

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

HRESULT IPipeline::SetLogFile(
BSTR pszFileName
);

Parameters

pszFileName

[in] A BSTR containing the name of the file in which to log events.

Return Values

This method returns an HRESULT indicating whether or not 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

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 executing 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.

See Also

MtsTxPipeline Object

IPipeline::LoadPipe

IPipeline::Execute


OrderForm Object

The OrderForm object provides for the in-memory storage of user and purchase information. Commerce Server 2000 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
COM Interface Name: | IOrderForm
Interface ID Constant: | IID_IOrderForm
Header File: | commerce.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Core Components Type Library
DLL Name: | MscsCore.dll
Threading Model: | Both

In C++, use the IOrderForm interface to access the properties and methods of the OrderForm object.

The methods of the OrderForm object are shown in the following table.

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

Business Process Objects

OrderGroup Object

OrderGroupManager Object

SimpleFindSearchInfo Object

SimpleFindResultInfo Object


IOrderForm::AddItem

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

HRESULT IOrderForm::AddItem(
VARIANT varSKU,
long lCount,
long lPlacedPrice,
IDispatch** ppdispItem
);

Parameters

varSKU

[in] A VARIANT that contains the stockkeeping unit (SKU) of the item to add.

lCount

[in] A long that contains the item count.

lPlacedPrice

[in] A long that contains the placed price of the item.

ppdispItem

[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

This method returns an HRESULT indicating whether or not 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

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.

See Also

OrderForm Object

IOrderForm::ClearItems

IOrderForm::ClearOrderForm


IOrderForm::ClearItems

Use this method to clear the items collection of the OrderForm object.

Definition

HRESULT IOrderForm::ClearItems(
);

Parameters

None.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

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

OrderForm Object

IOrderForm::AddItem

IOrderForm::ClearOrderForm


IOrderForm::ClearOrderForm

Use this method to clear the entire OrderForm object.

Definition

HRESULT IOrderForm::ClearOrderForm(
);

Parameters

None.

Return Values

This method returns an HRESULT indicating whether or not 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

OrderForm Object

IOrderForm::AddItem

IOrderForm::ClearItems


OrderGroup Object

The OrderGroup object is used in Commerce Server 2000 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
COM Interface Name: | _OrderGroup
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 OrderGroup Type Library
DLL Name: | requisition.dll
Threading Model: | Apartment

The properties of the OrderGroup object are shown in the following table.

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.

The methods of the OrderGroup object are shown in the following table.

Method | Description
AddItem | Adds an item to the specified OrderForm object.
AddItemsFromTemplate | Adds the line items associated with an on-disk OrderGroup 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 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 at the specified index.
GetOrderFormAsXML | Converts an OrderForm object into an XML string.
GetOrderFormValue | Gets the OrderForm 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 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.

See Also

Business Process Objects

OrderGroupManager Object

OrderForm Object

SimpleFindSearchInfo Object

SimpleFindResultInfo Object


_OrderGroup::AddItem

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

HRESULT _OrderGroup::AddItem(
IDictionary* dictItem,
VARIANT strOrderFormName,
long* lpRetVal
);

Parameters

dictItem

[in] A pointer to the IDictionary interface that contains the line item information.

strOrderFormName

[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.)

lpRetVal

[out, retval] A pointer to a long used to return the index at which the item was added.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

OrderGroup Object

_OrderGroup::RemoveItem


_OrderGroup::AddItemsFromTemplate

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

HRESULT _OrderGroup::AddItemsFromTemplate(
BSTR OrderGroupID
);

Parameters

OrderGroupID

[in] A BSTR that specifies the OrderGroup ID for the template.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

OrderGroup Object


_OrderGroup::AddOrderform

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

HRESULT _OrderGroup::AddOrderform(
IDictionary* orderform,
VARIANT strOrderFormName
);

Parameters

orderform

[in] A pointer to the IDictionary interface that contains the OrderForm object that will be added.

strOrderFormName

[in, optional] A VARIANT that specifies the OrderForm name.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

OrderGroup Object


_OrderGroup::AddXMLAsOrderForm

Use this method to add items previously saved as XML (by using the GetOrderformAsXML method) back into an OrderGroup.

Definition

HRESULT _OrderGroup::AddXMLAsOrderForm(
BSTR strXML,
long nXMLLocale,
VARIANT strOrderFormName
);

Parameters

strXML

[in] A BSTR that specifies the XML string containing the line items to add.

nXMLLocale

[in] A long that specifies the locale to use in the XML string conversion.

strOrderFormName

[in, optional] A VARIANT that specifies the OrderForm name to add.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

OrderGroup Object

_OrderGroup::GetOrderFormAsXML


_OrderGroup::AggregateOrderFormValues

Use this method to iterate across all OrderForms, compute a total of the specified key, and store the total at the OrderGroup level.

Definition

HRESULT _OrderGroup::AggregateOrderFormValues(
BSTR strOrderFormKey,
BSTR strOrderGroupKey
);

Parameters

strOrderFormKey

[in] A BSTR that specifies the OrderForm key of the value to be aggregated.

strOrderGroupKey

[in] A BSTR that specifies the OrderGroup key of the value to which the aggregated total will be written.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

OrderGroup Object


_OrderGroup::Clear

Use this method to clear the OrderGroup object of all OrderForm objects and Address dictionaries.

Definition

HRESULT _OrderGroup::Clear(
);

Parameters

None.

Return Values

This method returns an HRESULT indicating whether or not 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

OrderGroup Object


_OrderGroup::GetAddress

Use this method to get the specified address Dictionary object.

Definition

HRESULT _OrderGroup::GetAddress(
BSTR strAddressId,
IDictionary** ppRetVal
);

Parameters

strAddressId

[in] A BSTR that specifies the address ID.

ppRetVal

[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

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

If the specified address is found, this method returns a reference to that dictionary, otherwise it returns a Nothing object.

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

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.

See Also

OrderGroup Object


_OrderGroup::GetItemInfo

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

HRESULT _OrderGroup::GetItemInfo(
long nItemIndex,
VARIANT strOrderFormName,
IDictionary** ppRetVal
);

Parameters

nItemIndex

[in] A long that specifies the line-item index.

strOrderFormName

[in, optional] A VARIANT that specifies the OrderForm name.

ppRetVal

[out, retval] The address of a pointer to receive an IDictionary interface, used to return the line item information.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

OrderGroup Object


_OrderGroup::GetOrderFormAsXML

Use this method to convert an OrderForm object into an XML string.

Definition

HRESULT _OrderGroup::GetOrderFormAsXML(
BSTR nXMLLocale,
VARIANT strOrderFormName,
BSTR* pbstrRetVal
);

Parameters

nXMLLocale

[in] A BSTR that specifies the locale used in the XML string conversion.

strOrderFormName

[in, optional] A VARIANT that specifies the OrderForm.

pbstrRetVal

[out, retval] A pointer to a BSTR used to return the XML string.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

OrderGroup Object

_OrderGroup::AddXMLAsOrderForm


_OrderGroup::GetOrderFormValue

Use this method to get an attribute from an OrderForm, based on a specified key.

Definition

HRESULT _OrderGroup::GetOrderFormValue(
BSTR strKey,
VARIANT strOrderFormName,
VARIANT* pvtRetVal
);

Parameters

strKey

[in] A BSTR that contains the key that specifies the attribute to get.

strOrderFormName

[in, optional] A VARIANT that specifies the OrderForm name.

pvtRetVal

[out, retval] A pointer to a VARIANT used to return the attribute.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

OrderGroup Object


_OrderGroup::Initialize

Use this method to initialize the OrderGroup object.

Definition

HRESULT _OrderGroup::Initialize(
BSTR strConnectionString,
BSTR strUser ID
);

Parameters

strConnectionString

[in] A BSTR that contains the database connection string.

strUser ID

[in] A BSTR that specifies the user ID. All Commerce Server 2000 user ID values are GUIDs.

Return Values

This method returns an HRESULT indicating whether or not 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

Use this method to specify the connection string that the OrderGroup 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_User IDChangedBy field.

Note

  • If you are loading an OrderGroup 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 is saved back to the database. If you wish to load an OrderGroup 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.

See Also

OrderGroup Object


_OrderGroup::LoadBasket

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

HRESULT _OrderGroup::LoadBasket(
);

Parameters

None.

Return Values

This method returns an HRESULT indicating whether or not 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

OrderGroup Object

_OrderGroup::LoadOrder

_OrderGroup::LoadTemplate

_OrderGroup::SaveAsBasket


_OrderGroup::LoadOrder

Use this method to load an OrderGroup from disk. This method returns an error if the OrderGroup cannot be found.

Definition

HRESULT _OrderGroup::LoadOrder(
BSTR strOrderGroupID
);

Parameters

strOrderGroupID

[in] A BSTR that specifies the OrderGroupID of the OrderGroup to be loaded.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

OrderGroup Object

_OrderGroup::LoadBasket

_OrderGroup::LoadTemplate

_OrderGroup::Initialize

_OrderGroup::SaveAsOrder


_OrderGroup::LoadTemplate

Use this method to load the specified template from the database.

Definition

HRESULT _OrderGroup::LoadTemplate(
BSTR strOrderGroupID
);

Parameters

strOrderGroupID

[in] A BSTR that specifies the OrderGroupID of the template to be loaded.

Return Values

This method returns an HRESULT indicating whether or not 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

OrderGroup Object

_OrderGroup::LoadOrder

_OrderGroup::LoadBasket

_OrderGroup::SaveAsTemplate


_OrderGroup::get_LogFile, put_LogFile

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

Get method:

HRESULT _OrderGroup::get_LogFile(
BSTR* LogFile
);

Put method:

HRESULT _OrderGroup::put_LogFile(
BSTR LogFile
);

Parameters

LogFile

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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.

See Also

OrderGroup Object


_OrderGroup::PurgeUnreferencedAddresses

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

HRESULT _OrderGroup::PurgeUnreferencedAddresses(
);

Parameters

None.

Return Values

This method returns an HRESULT indicating whether or not 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

OrderGroup Object


_OrderGroup::PutItemValue

Use this method to put the specified values into the specified keys of the line item.

Definition

HRESULT _OrderGroup::PutItemValue(
BSTR strKey,
VARIANT vtValue,
VARIANT_BOOL bOverWrite,
VARIANT nItemIndex,
VARIANT strOrderFormName
);

Parameters

strKey

[in] A BSTR that specifies the key whose attribute will store the value specified by the vtValue parameter.

vtValue

[in] A VARIANT that specifies the value to store in the attribute of the key specified by the strKey parameter.

bOverWrite

[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.

nItemIndex

[in, optional] A VARIANT that specifies the line-item index.

strOrderFormName

[in, optional] A VARIANT that specifies the OrderForm name.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

OrderGroup Object


_OrderGroup::PutOrderFormValue

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

HRESULT _OrderGroup::PutOrderFormValue(
BSTR strKey,
VARIANT vtValue,
VARIANT strOrderFormName
);

Parameters

strKey

[in] A BSTR that specifies the key whose attribute will store the value specified by the vtValue parameter.

vtValue

[in] A VARIANT that specifies the value to store in the attribute of the key specified by the strKey parameter.

strOrderFormName

[in, optional] A VARIANT that specifies the OrderForm name.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

OrderGroup Object


_OrderGroup::RemoveItem

Use this method to remove a line item from the specified OrderForm object. The item index specified indicates which line item to remove.

If the the strOrderFormName parameter is not supplied, the strOrderFormName parameter defaults to "default".

Definition

HRESULT _OrderGroup::RemoveItem(
VARIANT nItemIndex,
VARIANT strOrderFormName
);

Parameters

nItemIndex

[in, optional] A VARIANT that specifies the line item index.

strOrderFormName

[in, optional] A VARIANT that specifies the OrderForm name.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

OrderGroup Object

_OrderGroup::AddItem


_OrderGroup::RemoveOrderForm

Use this method to remove the specified OrderForm from the OrderGroup object.

Definition

HRESULT _OrderGroup::RemoveOrderForm(
BSTR strOrderFormName
);

Parameters

strOrderFormName

[in] A BSTR that specifies the OrderForm to remove.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

OrderGroup Object

_OrderGroup::AddOrderform


_OrderGroup::RunPipe

Use this method to run the Pipeline Component File on each OrderForm in the OrderGroup object.

Definition

HRESULT _OrderGroup::RunPipe(
BSTR strPCF,
BSTR strPipelineProgID,
IDispatch* oContext,
long* lpRetVal
);

Parameters

strPCF

[in] A BSTR that specifies the Pipeline Component File file path (for example, c:\SampleDir\SampleFile.pcf).

strPipelineProgID

[in] A BSTR that specifies the pipeline ProgID.

oContext

[in] A pointer to the IDispatch interface that specifies the pipeline context.

lpRetVal

[out, retval] A pointer to a long used to return the maximum error level encountered by the pipeline runs.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

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.

See Also

Pipeline Basics

OrderGroup Object

_OrderGroup::get_LogFile, put_LogFile


_OrderGroup::SaveAsBasket

Use this method to save the OrderGroup object to the database with a basket status.

Definition

HRESULT _OrderGroup::SaveAsBasket(
VARIANT* pvtRetVal
);

Parameters

pvtRetVal

[out, retval] A pointer to a VARIANT used to return the OrderGroupID.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

OrderGroup Object

_OrderGroup::LoadBasket

_OrderGroup::SaveAsOrder

_OrderGroup::SaveAsTemplate


_OrderGroup::SaveAsOrder

Use this method to save the OrderGroup to the database with an order status.

Definition

HRESULT _OrderGroup::SaveAsOrder(
VARIANT* vtOutTrackingNumber,
VARIANT* pvtRetVal
);

Parameters

vtOutTrackingNumber

[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.

pvtRetval

[out, retval] A pointer to a VARIANT used to return the OrderGroupID.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

OrderGroup Object

_OrderGroup::SaveAsBasket

_OrderGroup::SaveAsTemplate


_OrderGroup::SaveAsTemplate

Use this method to save the OrderGroup to the database with a template status.

Definition

HRESULT _OrderGroup::SaveAsTemplate(
VARIANT strTemplateName,
VARIANT* pvtRetVal
);

Parameters

strTemplateName

[in, optional] A VARIANT that specifies the template name.

pvtRetVal

[out, retval] A pointer to a VARIANT used to return the OrderGroupID of the template.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

OrderGroup Object

_OrderGroup::SaveAsBasket

_OrderGroup::SaveAsOrder


_OrderGroup::get_SavePrefix, put_SavePrefix

Specifies a key prefix that will prevent a dictionary entry from being saved to the database.

Definition

Get method:

HRESULT _OrderGroup::get_SavePrefix(
BSTR* SavePrefix
);

Put method:

HRESULT _OrderGroup::put_SavePrefix(
BSTR SavePrefix
);

Parameters

SavePrefix

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

These properties 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.

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 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

OrderGroup Object


_OrderGroup::SetAddress

Use this method to add a specified address dictionary to the OrderGroup Addresses collection of the OrderGroup.

Definition

HRESULT _OrderGroup::SetAddress(
BSTR strAddressId,
IDictionary* oAddressDict
);

Parameters

strAddressId

[in] A BSTR that specifies the address ID of the address to be added.

oAddressDict

[in] A pointer to the IDictionary interface that contains the address dictionary to be added.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

OrderGroup Object

_OrderGroup::SetAddressFromFields


_OrderGroup::SetAddressFromFields

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

HRESULT _OrderGroup::SetAddressFromFields(
BSTR strAddressId,
Fields* flds
);

Parameters

strAddressId

[in] A BSTR that specifies the address ID of the address dictionary to be added.

flds

[in] A reference to a Fields object that contains the address information to be added.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

OrderGroup Object

_OrderGroup::SetAddress


_OrderGroup::SetShippingAddress

Use this method to set the shipping address id for the specified line items.

Definition

HRESULT _OrderGroup::SetShippingAddress(
BSTR address_id,
VARIANT_BOOL bOverWrite,
VARIANT nItemIndex,
VARIANT strOrderFormName
);

Parameters

address_id

[in] A BSTR that specifies the address ID to designate as the shipping address.

bOverWrite

[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.

nItemIndex

[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.

strOrderFormName

[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.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

OrderGroup Object


_OrderGroup::get_Value

The Value property is a read-only Variant that contains the OrderGroup-level attributes as a dictionary.

Definition

HRESULT _OrderGroup::get_Value(
VARIANT* Value
);

Parameters

Value

[out, retval] A pointer to a VARIANT used to return the Value dictionary.

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

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

OrderGroup Object


OrderGroupManager Object

Use this object to manage OrderGroups and their contents. This object allows you to search for orders or baskets without having to use SQL queries. It also allows for OrderGroup deletions.

ProgID: | Commerce.OrderGroupManager (Externally creatable)
COM Class Name: | OrderGroupManager
COM Interface Name: | _OrderGroupManager
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 OrderGroup Type Library
DLL Name: | requisition.dll
Threading Model: | Apartment

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.

The properties of the OrderGroupManager object are shown in the following table.

Property | Type | Description
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.

The methods of the OrderGroupManager object are shown in the following table.

Method | Description
DeleteOrderGroupFromDisk | Checks whether a connection to the database has been established for the specified OrderGroup then deletes the OrderGroup and all objects contained within it from the database.
Find | Performs a SQL search based on the specified SQL clause fragments.
FindTemplatesForUser | Builds and returns an ADO recordset of OrderGroup templates for the specified user.
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 items based on the specified SimpleFindSearchInfo values and SimpleFindResultInfo values. These object values contain the search criteria.

See Also

Business Process Objects

OrderGroup Object

OrderForm Object

SimpleFindSearchInfo Object

SimpleFindResultInfo Object


_OrderGroupManager::DeleteOrderGroupFromDisk

Use this method to check whether a connection to the database has been established for the specified OrderGroup, then delete the OrderGroup and all objects contained within it from the database.

Definition

HRESULT _OrderGroupManager::DeleteOrderGroupFromDisk(
BSTR OrderGroupID
);

Parameters

OrderGroupID

[in] A BSTR that contains the OrderGroup ID.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

OrderGroupManager Object


_OrderGroupManager::Find

Use this method to perform a SQL search based on the specified SQL clause fragments.

Definition

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
);

Parameters

OrderGroupCriteriaArray

[in] A VARIANT that contains the SQL clause used to search for a specific set of OrderGroups.

OrderFormCriteriaArray

[in] A VARIANT that contains the SQL clause used to search for a specific set of orderforms.

LineItemCriteriaArray

[in] A VARIANT that contains the SQL clause used to search for a specific set of line items.

SearchDateTimeColumn

[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.

SearchDateTimeStart

[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.

SearchDateTimeEnd

[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.

StatusFilter

[in, optional, defaultvalue (0)] A long that stores the OrderGroup status.

JoinOrderFormInfo

[in, optional, defaultvalue (0)] A VARIANT_BOOL indicating whether to include the OrderFormHeader table in the results.

JoinLineItemInfo

[in, optional, defaultvalue (0)] A VARIANT_BOOL indicating whether to include the OrderFormLineItems table in the results.

Columns

[in, optional] A VARIANT that contains the names of the columns to return in addition to the default columns.

OrderGroupSortColumn

[in, optional] A VARIANT that contains the OrderGroup column name to sort on.

SortDirection

[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".

PageSize

[in, optional, defaultvalue (20)] 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 a long that contains the number of line items per page. This parameter setting must be coordinated with the PageNumber parameter.

PageNumber

[in, optional, defaultvalue (1)] 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 a long that contains the page number to jump to. This parameter setting must be coordinated with the PageSize parameter.

outTotalRecordsFound

[out] A pointer to a VARIANT that specifies the total number of records found.

vtResults

[out, retval] A pointer to a VARIANT used to return the recordset containing the result set that meets the search criteria.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

OrderGroupManager Object

_OrderGroupManager::SimpleFind


_OrderGroupManager::FindTemplatesForUser

Use this method to build and return an ADO recordset of OrderGroup templates for the specified user.

Definition

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
);

Parameters

UserId

[in] A BSTR that contains the User ID GUID.

SearchDateTimeColumn

[in, optional] A VARIANT that contains the DateTime column name to use in the search.

SearchDateTimeStart

[in, optional] A VARIANT that contains the search DateTime start value.

SearchDateTimeEnd

[in, optional] A VARIANT that contains the search DateTime end value.

JoinOrderFormInfo

[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.

JoinLineItemInfo

[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.

Columns

[in, optional] A VARIANT that contains the names of columns that you want returned in addition to the default columns.

OrderGroupSortColumn

[in, optional] A VARIANT that contains the OrderGroup sort column.

SortDirection

[in, optional] A VARIANT that contains the sort direction.

PageSize

[in, optional, defaultvalue (20)] A long that contains the page size.

PageNumber

[in, optional, defaultvalue (1)] A long that contains the page number.

outTotalRecordsFound

[out, optional] A pointer to the VARIANT that contains the total number of records found.

pvtRetVal

[out, retval] A pointer to a VARIANT used to return an ADO recordset of the search results.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

OrderGroupManager Object

Business Process Objects


_OrderGroupManager::Initialize

Use this method to create a connection to the specified database.

Definition

HRESULT _OrderGroupManager::Initialize(
VARIANT* ConnectionString
);

Parameters

ConnectionString

[in] A pointer to a VARIANT that contains the database connection string.

Return Values

This method returns an HRESULT indicating whether or not 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

The ConnectionString 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

OrderGroupManager Object


_OrderGroupManager::get_OrderFormHeaderColumns

The OrderFormHeaderColumns property is a read-only Variant that contains a collection of OrderFormHeader table column names.

Definition

HRESULT _OrderGroupManager::get_OrderFormHeaderColumns(
VARIANT* OrderFormHeaderColumns
);

Parameters

OrderFormHeaderColumns

[out, retval] A pointer to a VARIANT used to return a collection of OrderForm header table column names.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

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

OrderGroupManager Object


_OrderGroupManager::get_OrderFormLineItemsColumns

The OrderFormLineItemsColumns property is a read-only Variant that contains a collection of OrderFormLineItems table column names.

Definition

HRESULT _OrderGroupManager::get_OrderFormLineItemsColumns(
VARIANT* OrderFormLineItemsColumns
);

Parameters

OrderFormLineItemsColumns

[out, retval] A pointer to a VARIANT used to return a collection of LineItem table column names.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

The OrderFormLineItemsColumns 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

OrderGroupManager Object


_OrderGroupManager::get_OrderGroupColumns

The OrderGroupColumns property is a read-only Variant that contains a collection of OrderGroup table column names.

Definition

HRESULT _OrderGroupManager::get_OrderGroupColumns(
VARIANT* OrderGroupColumns
);

Parameters

OrderGroupColumns

[out, retval] A pointer to a VARIANT used to return the collection of OrderGroup column names.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

The OrderGroupColumns 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

OrderGroupManager Object


_OrderGroupManager::SimpleDelete

Use this method to delete all entries that meet the search criteria as specified by the supplied SimpleFindSearchInfo and SimpleFindResultInfo objects.

Definition

HRESULT _OrderGroupManager::SimpleDelete(
_SimpleFindSearchInfo* sfSearchInfo,
_SimpleFindResultInfo* sfResultInfo,
);

Parameters

sfSearchInfo

[in] A reference to a _SimpleFindSearchInfo object that contains the search criteria.

sfResultInfo

[in] A reference to a _SimpleFindResultInfo object that contains the search criteria.

Return Values

This method returns an HRESULT indicating whether or not 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

The pvtRetVal 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.

See Also

OrderGroupManager Object


_OrderGroupManager::SimpleFind

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

HRESULT _OrderGroupManager::SimpleFind(
_SimpleFindSearchInfo* sfSearchInfo,
_SimpleFindResultInfo* sfResultInfo,
VARIANT* outTotalRecordsFound,
VARIANT* pvtRetVal
);

Parameters

sfSearchInfo

[in] A pointer to the _SimpleFindSearchInfo interface of a SimpleFindSearchInfo object that contains the search criteria.

sfResultInfo

[in] A pointer to the _SimpleFindResultInfo interface of a SimpleFindResultInfo object that contains the search criteria.

outTotalRecordsFound

[out] A pointer to a VARIANT that contains the total number of records found.

pvtRetVal

[out, retval] A pointer to a VARIANT used to return the search result recordset of OrderGroup items.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

Business Process Objects

OrderGroupManager Object


OrderPipeline Object

Use this object to execute a Microsoft Commerce Server 2000 Content Selection pipeline. Order Processing pipelines (OPP) should generally use a PooledPipeline, PooledTxPipeline, MtxPipeline, or MtsTxPipeline object.

ProgID: | Commerce.OrderPipeline (Externally creatable)
COM Class Name: | COrderPipeline
COM Interface Name: | IOrderPipeline
Interface ID Constant: | IID_IOrderPipeline
Header File: | pipeline.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Order Pipeline Type Library
DLL Name: | pipeline.dll
Threading Model: | Both

Note

  • The OrderPipeline 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 recreated by each thread due to the rules of COM+ transactions.

In C++, use the IOrderPipeline interface to access the properties and methods of the OrderPipeline object.

The methods of the OrderPipeline object are shown in the following table.

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 is usually created in the Global.asa and put into an application collection.


IOrderPipeline::LoadPipe

Use this method to load a pipeline configuration file (.pcf) into the pipeline.

Definition

HRESULT IOrderPipeline::LoadPipe(
BSTR pszFileName
);

Parameters

pszFileName

[in] A BSTR containing the pipeline configuration file name.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

OrderPipeline Object

IOrderPipeline::OrderExecute

IOrderPipeline::SetLogFile


IOrderPipeline::OrderExecute

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

HRESULT IOrderPipeline::OrderExecute(
long lMode,
IDispatch* pdispOrder,
IDispatch* pdispContext,
long lFlags,
long* pErrorLevel
);

Parameters

lMode

[in] A long 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. Commerce Server 2000 sites should set this parameter to one (1).

pdispOrder

[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.

pdispContext

[in] A pointer to the IDispatch interface of a Dictionary object. The Context dictionary that will be used by the pipeline.

lFlags

[in] An unused long integer parameter. Must be set to zero (0).

pErrorLevel

[out,retval] A pointer to an integer that returns the error level.

Return Values

This method returns an HRESULT indicating whether or not 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.

In addition, the pErrorLevel parameter 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.

Remarks

The pErrorLevel parameter points to valid data only if the method completes successfully.

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 2000 applications should use the value one (1) for this parameter; zero (0) will cause no stages to run.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

OrderPipeline Object

IOrderPipeline::LoadPipe

IOrderPipeline::SetLogFile


IOrderPipeline::SetLogFile

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

HRESULT IOrderPipeline::SetLogFile(
BSTR pszFileName
);

Parameters

pszFileName

[in] A BSTR containing the name of the file in which to log events.

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

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.

See Also

OrderPipeline Object

IOrderPipeline::LoadPipe

IOrderPipeline::OrderExecute


Page Object

Use this object to simplify forms processing in Active Server Pages (ASP).

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.

In C++, use the IMSCSPage_3_0 interface to access the properties and methods of the Page object.

The single property of the Page object is shown in the following table.

Property | Type | Description
Context | IDispatch | A value that contains the Microsoft Internet Information Services (IIS) scripting context. This property is read-only.

The methods of the Page object are shown in the following table.

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.

See Also

Backward Compatibility Objects

AppFrameWork Object

AuthManager Object


IMSCSPage_3_0::Check

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

HRESULT IMSCSPage_3_0::Check(
VARIANT vtCheck,
BSTR* pbstrRet
);

Parameters

vtCheck

[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.

pbstrRet

[out, retval] A pointer to a BSTR used to return the string "CHECKED" or "".

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

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

Page Object

IMSCSPage_3_0::Option


IMSCSPage_3_0::get_Context

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

HRESULT IMSCSPage_3_0::get_Context(
IDispatch** Context
);

Parameters

Context

[out, retval] An IDispatch interface used to return the ASP scripting context.

Return Values

This property returns an HRESULT indicating whether completed successfully. See the Error Values section for more details.

Error Values

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.

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

Page Object


IMSCSPage_3_0::Encode

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

HRESULT IMSCSPage_3_0::Encode(
VARIANT vtValue,
BSTR* pbstrRet
);

Parameters

vtValue

[in] A VARIANT that contains the text string to encode.

pbstrRet

[out, retval] A pointer to a BSTR used to return the encoded HTML text.

Return Values

This method returns an HRESULT indicating whether or not 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

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

Page Object

IMSCSPage_3_0::HTMLEncode


IMSCSPage_3_0::GetShopperId

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

HRESULT IMSCSPage_3_0::GetShopperId(
VARIANT* pvarShopperID
);

Parameters

pvarShopperID

[out, retval] A pointer to a VARIANT used to return the shopper ID.

Return Values

This method returns an HRESULT indicating whether or not 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

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

Page Object

StandardSManager Object

AuthManager Object

IMSCSPage_3_0::PutShopperId


IMSCSPage_3_0::HTMLEncode

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

HRESULT IMSCSPage_3_0::HTMLEncode(
VARIANT vtValue,
BSTR* pbstrRet
);

Parameters

vtValue

[in] A VARIANT that contains the text string to encode.

pbstrRet

[out, retval] A pointer to a BSTR used to return the encoded HTML text.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

Page Object

IMSCSPage_3_0::URLEncode


IMSCSPage_3_0::Option

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

HRESULT IMSCSPage_3_0::Option(
VARIANT vtVal1,
VARIANT vtVal2,
BSTR* pbstrRet
);

Parameters

vtVal1

[in] A VARIANT that contains the value of the option in the selection list.

vtVal2

[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.

pbstrRet

[out, retval] A pointer to a BSTR used to return the OPTION item.

Return Values

This method returns an HRESULT indicating whether or not 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

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

Page Object

IMSCSPage_3_0::Check


IMSCSPage_3_0::ProcessVerifyWith

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

HRESULT IMSCSPage_3_0::ProcessVerifyWith(
IDispatch* pdispOrder
);

Parameters

pdispOrder

[in] A pointer to the IDispatch interface that can be used to retrieve an OrderForm object that contains the basket for the current shopper.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Page Object

IMSCSPage_3_0::VerifyWith

Message Manager Object

OrderForm Object


IMSCSPage_3_0::PutShopperId

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

HRESULT IMSCSPage_3_0::PutShopperId(
BSTR bstrShopperID
);

Parameters

bstrShopperID

[in] A BSTR that contains the shopper ID.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

Page Object

StandardSManager Object

AuthManager Object

IMSCSPage_3_0::GetShopperId

IMSCSPage_3_0::SURL

IMSCSPage_3_0::URL


IMSCSPage_3_0::RequestDate

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

HRESULT IMSCSPage_3_0::RequestDate(
BSTR bstrName,
VARIANT vtDefault,
VARIANT vtMin,
VARIANT vtMax,
VARIANT vtLocal,
VARIANT* pvtRet
);

Parameters

bstrName

[in] A BSTR that contains the name of the URL query string or form-post variable to retrieve.

vtDefault

[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.

vtMin

[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.

vtMax

[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.

vtLocale

[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.

pvtRet

[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

This method returns an HRESULT indicating whether or not 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

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

Page Object

IDataFunctions_4_0::get_Locale, put_Locale

IMSCSPage_3_0::RequestDateTime

IDataFunctions_4_0_::ConvertDateString

IDataFunctions_4_0::Date


IMSCSPage_3_0::RequestDateTime

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

HRESULT IMSCSPage_3_0::RequestDateTime(
BSTR bstrName,
VARIANT vtDefault,
VARIANT vtMin,
VARIANT vtMax,
VARIANT vtLocal,
VARIANT* pvtRet
);

Parameters

bstrName

[in] A BSTR that contains the name of the URL query string or form-post variable to retrieve.

vtDefault

[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.

vtMin

[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.

vtMax

[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.

vtLocale

[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.

pvtRet

[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

This method returns an HRESULT indicating whether or not 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

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

Page Object

IDataFunctions_4_0::get_Locale, put_Locale

IMSCSPage_3_0::RequestDate

IDataFunctions_4_0::ConvertDateTimeString

IMSCSPage_3_0::RequestTime


IMSCSPage_3_0::RequestDefault

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

HRESULT IMSCSPage_3_0::RequestDefault(
BSTR bstrName,
VARIANT vtDefault,
VARIANT* pvtRet
);

Parameters

bstrName

[in] A BSTR that contains the name of the URL query string variable to retrieve.

vtDefault

[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.

pvtRet

[out, retval] A pointer to a VARIANT used to return the processed value as a string.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

Page Object


IMSCSPage_3_0::RequestFloat

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

HRESULT IMSCSPage_3_0::RequestFloat(
BSTR bstrName,
VARIANT vtDefault,
VARIANT vtMin,
VARIANT vtMax,
VARIANT vtLocal,
VARIANT* pvtRet
);

Parameters

bstrName

[in] A BSTR that contains the name of the URL query string or form-post variable to retrieve.

vtDefault

[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.

vtMin

[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.

vtMax

[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.

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

[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.

pvtRet

[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

This method returns an HRESULT indicating whether or not 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

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.

See Also

Page Object

IDataFunctions_4_0::get_Locale, put_Locale

IMSCSPage_3_0::RequestNumber

IDataFunctions_4_0::ConvertFloatString

IDataFunctions_4_0::Float

IDataFunctions_4_0::ValidateFloat

IMSCSPage_3_0::RequestNumber


IMSCSPage_3_0::RequestMoneyAsNumber

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

HRESULT IMSCSPage_3_0::RequestMoneyAsNumber(
BSTR bstrName,
VARIANT vtDefault,
VARIANT vtMin,
VARIANT vtMax,
VARIANT vtLocal,
VARIANT* pvtRet
);

Parameters

bstrName

[in] A BSTR that contains the name of the URL-query string or form-post variable to retrieve.

vtDefault

[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.

vtMin

[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.

vtMax

[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.

vtLocale

[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.

pvtRet

[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

This method returns an HRESULT indicating whether or not 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

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.

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

Page Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::ConvertMoneyStringToNumber

IDataFunctions_4_0::Money

IMSCSPage_3_0::RequestFloat

IMSCSPage_3_0::RequestNumber


IMSCSPage_3_0::RequestNumber

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

HRESULT IMSCSPage_3_0::RequestNumber(
BSTR bstrName,
VARIANT vtDefault,
VARIANT vtMin,
VARIANT vtMax,
VARIANT vtLocal,
VARIANT* pvtRet
);

Parameters

bstrName

[in] A BSTR that contains the name of the URL-query string or form-post variable to retrieve.

vtDefault

[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.

vtMin

[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.

vtMax

[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.

vtLocale

[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.

pvtRet

[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

This method returns an HRESULT indicating whether or not 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

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

Page Object

IDataFunctions_4_0::get_Locale, put_Locale

IMSCSPage_3_0::RequestFloat

IDataFunctions_4_0::ConvertNumberString

IDataFunctions_4_0::Number

IDataFunctions_4_0::ValidateNumber


IMSCSPage_3_0::RequestString

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

HRESULT IMSCSPage_3_0::RequestString(
BSTR bstrName,
VARIANT vtDefault,
VARIANT vtMin,
VARIANT vtMax,
VARIANT vtStripWhite,
VARIANT vtStripReturn,
VARIANT vtCase,
VARIANT vtLocal,
VARIANT* pvtRet
);

Parameters

bstrName

[in] A BSTR that contains the name of the URL-query string or form-post variable to retrieve.

vtDefault

[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.

vtMin

[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.

vtMax

[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.

vtStripWhite

[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.

vtStripReturn

[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.

vtCase

[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.

vtLocal

[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.

pvtRet

[out, retval] A pointer to a VARIANT used to return the processed string.

Return Values

This method returns an HRESULT indicating whether or not 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

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

Page Object

IDataFunctions_4_0::get_Locale, put_Locale


IMSCSPage_3_0::RequestTime

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

HRESULT IMSCSPage_3_0::RequestTime(
BSTR bstrName,
VARIANT vtDefault,
VARIANT vtMin,
VARIANT vtMax,
VARIANT vtLocal,
VARIANT* pvtRet
);

Parameters

bstrName

[in] A BSTR that contains the name of the URL-query string or form-post variable to retrieve.

vtDefault

[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.

vtMin

[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.

vtMax

[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.

vtLocale

[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.

pvtRet

[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

This method returns an HRESULT indicating whether or not 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

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

Page Object

IDataFunctions_4_0::get_Locale, put_Locale

IDataFunctions_4_0::ConvertTimeStringf

IMSCSPage_3_0::RequestDate


IMSCSPage_3_0::SiteRoot

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

HRESULT IMSCSPage_3_0::SiteRoot(
BSTR* pbstrRet
);

Parameters

pbstrRet

[out, retval] A pointer to a BSTR used to return the physical directory path.

Return Values

This method returns an HRESULT indicating whether or not 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

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

Page Object

IMSCSPage_3_0::VirtualDirectory


IMSCSPage_3_0::SURL

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

HRESULT IMSCSPage_3_0::SURL(
BSTR bstrPath,
BSTR* pbstrRet
);

Parameters

bstrPath

[in] A BSTR that contains the name of the file for the SURL to reference.

pbstrRet

[out, retval] A pointer to a BSTR used to return the properly formatted secure HTTP URL.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

Page Object

StandardSManager Object

AuthManager Object

IMSCSPage_3_0::URL


IMSCSPage_3_0::SURLPrefix

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

HRESULT IMSCSPage_3_0::SURLPrefix(
BSTR* pbstrRet
);

Parameters

pbstrRet

[out, retval] A pointer to a BSTR used to return the secure root domain string.

Return Values

This method returns an HRESULT indicating whether or not 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

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).

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Page Object

StandardSManager Object

AuthManager Object

IMSCSPage_3_0::URLPrefix

IMSCSPage_3_0::URLShopperArgs

IMSCSPage_3_0::SURL

IMSCSPage_3_0::URLArgs

IMSCSPage_3_0::VirtualDirectory


IMSCSPage_3_0::URL

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

HRESULT IMSCSPage_3_0::URL(
BSTR bstrPath,
BSTR* pbstrRet
);

Parameters

bstrPath

[in] A BSTR that contains the name of the file to reference in the URL.

pbstrRet

[out, retval] A pointer to a BSTR used to return the encoded value.

Return Values

This method returns an HRESULT indicating whether or not 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

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

Page Object

AuthManager Object

IMSCSPage_3_0::SURL


IMSCSPage_3_0::URLArgs

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

HRESULT IMSCSPage_3_0::URLArgs(
BSTR* pbstrRet
);

Parameters

pbstrRet

[out, retval] A pointer to a BSTR used to return the series of query string arguments.

Return Values

This method returns an HRESULT indicating whether or not 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

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

Page Object

AuthManager Object

IMSCSPage_3_0::VirtualDirectory

IMSCSPage_3_0::SURL

IMSCSPage_3_0::SURLPrefix

IMSCSPage_3_0::URL

IMSCSPage_3_0::URLShopperArgs


IMSCSPage_3_0::URLEncode

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

HRESULT IMSCSPage_3_0::URLEncode(
VARIANT vtValue,
BSTR* pbstrRet
);

Parameters

vtValue

[in] A VARIANT that contains the string to be encoded.

pbstrRet

[out, retval] A pointer to a BSTR used to return the URL-encoded string.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

Page Object

AuthManager Object

IMSCSPage_3_0::HTMLEncode


IMSCSPage_3_0::URLPrefix

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

HRESULT IMSCSPage_3_0::URLPrefix(
BSTR* pbstrRet
);

Parameters

pbstrRet

[out, retval] A pointer to a BSTR used to return the root domain.

Return Values

This method returns an HRESULT indicating whether or not 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

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

Page Object

AuthManager Object

IMSCSPage_3_0::SURLPrefix

IMSCSPage_3_0::VirtualDirectory

IMSCSPage_3_0::SURL

IMSCSPage_3_0::SURLPrefix

IMSCSPage_3_0::URL

IMSCSPage_3_0::URLShopperArgs

IMSCSPage_3_0::URLArgs


IMSCSPage_3_0::URLShopperArgs

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

HRESULT IMSCSPage_3_0::URLShopperArgs(
BSTR* pbstrRet
);

Parameters

pbstrRet

[out, retval] A pointer to a BSTR used to return the series of query string arguments.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Page Object

AuthManager Object


IMSCSPage_3_0::VerifyWith

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

HRESULT IMSCSPage_3_0::VerifyWith(
IDispatch* pdispOrder,
BSTR* pbstrArguments
BSTR* pbstrRet
);

Parameters

pdispOrder

[in] A pointer to the IDispatch interface that can be used to retrieve the OrderForm object that contains the fields to verify.

pbstrArguments

[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.

pbstrRet

[out, retval] A pointer to a BSTR used to return the HTML tags.

Return Values

This method returns an HRESULT indicating whether or not 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

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

Page Object

IMSCSPage_3_0::ProcessVerifyWith

OrderForm Object


IMSCSPage_3_0::VirtualDirectory

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

HRESULT IMSCSPage_3_0::VirtualDirectory(
BSTR* pbstrRet
);

Parameters

pbstrRet

[out, retval] A pointer to a BSTR used to return the site virtual directory.

Return Values

This method returns an HRESULT indicating whether or not 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

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

Page Object

IMSCSPage_3_0::SiteRoot

IMSCSPage_3_0::SURL

IMSCSPage_3_0::URL

IMSCSPage_3_0::SURLPrefix

IMSCSPage_3_0::URLArgs

IMSCSPage_3_0::URLPrefix

IMSCSPage_3_0::URLShopperArgs

StandardSManager Object


PooledPipeline Object

Use this object to execute a Microsoft Commerce Server 2000 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
COM Interface Name: | IPipeline
Interface ID Constant: | IID_IPipeline
Header File: | pipeline.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Order Pipeline Type Library
DLL Name: | pipeline.dll
Threading Model: | Both

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.

The methods of the PooledPipeline object are shown in the following table.

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 PooledPipeline should be created on each Active Server Pages (ASP) page in which it is used rather thatn 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_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.


IPipeline::Execute

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

HRESULT IPipeline::Execute(
long lMode,
IDispatch* pdispOrder,
IDispatch* pdispContext,
long lFlags,
long* pErrorLevel
);

Parameters

lMode

[in] A long 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

[in] A pointer to the IDispatch interface of the business object (typically a dictionary object or an order form object).

pdispContext

[in] A pointer to the IDispatch interface of the secondary business object (typically a context dictionary).

lFlags

[in] An unused long integer parameter. Must be set to zero (0).

pErrorLevel

[out,retval] A pointer to a long that returns the warning level.

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.

In addition, the pErrorLevel parameter 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.

Remarks

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.

See Also

PooledPipeline Object

IPipeline::LoadPipe

IPipeline::SetLogFile


IPipeline::LoadPipe

Use this method to load a pipeline configuration file (.pcf) into a pipeline.

Definition

HRESULT IPipeline::LoadPipe(
BSTR pszFileName
);

Parameters

pszFileName

[in] A BSTR containing the pipeline configuration file (.pcf) name.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

PooledPipeline Object

IPipeline::Execute

IPipeline::SetLogFile


IPipeline::SetLogFile

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

HRESULT IPipeline::SetLogFile(
BSTR pszFileName
);

Parameters

pszFileName

[in] A BSTR containing the name of the file in which to log events.

Return Values

This method returns an HRESULT indicating whether or not 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

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 executing a pipeline.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PooledPipeline Object

IPipeline::Execute

IPipeline::LoadPipe


PooledTxPipeline Object

Use this object to execute 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.

ProgID: | Commerce.PooledTxPipeline (Externally creatable)
COM Class Name: | CPooledTxPipeline
COM Interface Name: | IPipeline
Interface ID Constant: | IID_IPipeline
Header File: | pipeline.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Order Pipeline Type Library
DLL Name: | pipeline.dll
Threading Model: | Both

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.

The methods of the PooledTxPipeline object are shown in the following table.

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_POOLABLE, to the component to make it poolable.


KIPipeline::Execute

IPipeline::Execute

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

HRESULT IPipeline::Execute(
long lMode,
IDispatch* pdispOrder,
IDispatch* pdispContext,
long lFlags,
long* pErrorLevel
);

Parameters

lMode

[in] A long 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

[in] A pointer to the IDispatch interface of the business object (typically a dictionary object or an order form object).

pdispContext

[in] A pointer to the IDispatch interface of the secondary business object (typically a context dictionary object).

lFlags

[in] An unused long integer parameter. Must be set to zero (0).

pErrorLevel

[out,retval] A pointer to a long that returns the warning level.

Return Values

This method returns an HRESULT indicating whether or not 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.

In addition, the pErrorLevel parameter 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.

Remarks

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.

See Also

PooledTxPipeline Object

IPipeline::LoadPipe

IPipeline::SetLogFile


KIPipeline::LoadPipe

IPipeline::LoadPipe

Use this method to load a pipeline configuration file (.pcf) into the pipeline.

Definition

HRESULT IPipeline::LoadPipe(
BSTR pszFileName
);

Parameters

pszFileName

[in] A BSTR containing the pipeline configuration file (.pcf) name.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

PooledTxPipeline Object

IPipeline::Execute

IPipeline::SetLogFile


KIPipeline::SetLogFile

IPipeline::SetLogFile

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

HRESULT IPipeline::SetLogFile(
BSTR pszFileName
);

Parameters

pszFileName

[in] A BSTR containing the name of the file in which to log events.

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

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.

See Also

PooledTxPipeline Object

IPipeline::Execute

IPipeline::LoadPipe


PredictorClient Object

Use this object to load an analysis model, set properties controlling the prediction context, and execute the prediction algorithm. Two types of models are supported, prediction models and segment models. Results of a prediction model are used to recommend products and supply missing profile data. Results of a segment model are used to categorize a user. Prediction models provide more accurate recommendations than segment models and the use of segment models for predictions is discouraged.

ProgID: | Commerce.PredictorClient (Externally creatable)
COM Class Name: | PredictorClient
COM Interface Name: | IPredictorClient
Interface ID Constant: | IID_IPredictorClient
Header File: | PredictorClient.h
Type Library Name: | Microsoft Commerce 2000 Predictor Client Type Library
DLL Name: | PredictorClient.dll
Threading Model: | Both

In C++, use the IPredictorClient interface to access the properties and methods of the PredictorClient object.

The properties of the PredictorClient object are shown in the following table.

Property | Type | Description
fpDataFitScore | float | Stores the Data Fit Score. This property is read-only.
fpDefaultConfidence | float | Stores the threshold for confidence in a prediction. This property is read/write.
bFailOnUnknownInputAttributes | VARIANT_BOOL | Controls the behavior of the Predict method when input attributes are unknown. This property is read/write.
fpPopularityPenalty | float | Stores the penalty applied when selecting popular items to recommend. This property is read/write.
fpRecommendScore | float | Stores the Recommendation Score. This property is read-only.
sSiteName | BSTR | Stores the site name in which the PredictorClient object is running. This property is read/write.

The methods of the PredictorClient object are shown in the following table.

Method | Description
Explain | Explains the prediction of a property in terms of the relevant property/value pairs used as input to the prediction model.
LoadModelFromDB | Loads a model from a database.
LoadModelFromFile | Loads a model from the specified file.
Predict | Predicts recommend products or missing profile data.
PredictAllSegments | Calculates the probabilities that the user belongs to each segment of a population of past users.
PredictMostLikelySegment | Calculates the segment to which the user most likely belongs.
SaveModelToFile | Saves a model to the specified file.

Remarks

Applications that need to anticipate user behavior use the PredictorClient object to load analysis models and generate predictions. The models use a specified set of partial cases as the basis for their predictions. A case is all that is known about a previous user and may contain demographic information and transactional history.

Use the PredModelBuilder object to generate new models. Use the PredictorServiceAdmin object to retrieve a list of models and model configurations. Use the PredictorServiceSiteAdmin object to delete or rename models and model configurations.

Measure the effectiveness of a prediction model using the fpDataFitScore and the fpRecommendScore properties. This allows fine-tuning of the input parameters, such as SampleSize, InputAttributeFraction, and OutputAttributeFraction, when building the model.

Load a model using the LoadModelFromDB or LoadModelFromFile methods prior to using other PredictorClient methods.

For optimum performance when using a prediction model, default values for the fpDefaultConfidence and fpPopularityPenalty properties should be set in the Application_OnStart method in the global.asa file, to avoid having to explicitly set the values for every Predict method call.

See Also

Prediction Objects

Predictor Schema

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object

Running the Predictor Resource


IPredictorClient::get_fpDataFitScore

The read-only fpDataFitScore property returns the Data Fit Score, measuring the effectiveness of a prediction model to fill in missing profile data.

Definition

Get method:

HRESULT IPredictorClient::get_fpDataFitScore(
float* pVal
);

Parameters

pVal

[out, retval] A pointer to a float used to return the Data Fit Score.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the following 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

The Data Fit Score is automatically computed when a model is built, using a fraction of the data as test data. The amount of data to set aside for testing purposes is specified as the Measured Accuracy Sample Fraction. For more information, see Building a New Analysis Model and PredictorModels Table.

Use the Data Fit Score to test and fine-tune the input parameters for a prediction model. Known cases, taken from the input cases used to build the model, are tested against both the prediction model and a "stalking horse" model. The " stalking horse" model is a marginal model that assumes all properties are independent. An intermediate value is calculated by dividing the probability the prediction model assigns to a case in the test data by the probability the "stalking horse" model assigns to the same case. The score is the logarithm of the geometric average of these values for each output property. Thus, any score greater than zero means that the built model makes predictions that are more accurate than the "stalking horse" model.

Load the prediction model using the LoadModelFromDB or LoadModelFromFile methods prior to accessing this property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The pVal parameter contains valid data only if the property is accessed successfully.

See Also

PredictorClient Object

IPredictorClient::Predict


IPredictorClient::get_fpDefaultConfidence, put_fpDefaultConfidence

The read/write fpDefaultConfidence property determines the threshold below which predictions are not returned by the PredictorClient object.

Definition

Get method:

HRESULT IPredictorClient::get_fpDefaultConfidence(
float* pVal
);

Put method:

HRESULT IPredictorClient::put_fpDefaultConfidence(
float pVal
);

Parameters

pVal

[in] When putting the property, a float that contains the threshold confidence for prediction. Valid range is 0 to 100.
[out, retval] When getting the property, a pointer to a float used to return the cutoff value for prediction confidence.

Return Values

These methods return an HRESULT indicating whether or not it completed successfully. See the following Error Values section for more details.

Error Values

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.

The following standard COM error value has a particular meaning in the context of this property.

E_INVALIDARG

The value of the property is outside the valid range of 0 to 100.

Remarks

The fpDefaultConfidence property is a threshold that determines which attributes can be shown on the recommendation list. When a prediction is made, each attribute is assigned a probability of "not missing", which in most uses will correspond to the probability that the product will be purchased. If this probability (in percentage) falls below fpDefaultConfidence, then the attribute is not shown on the recommendation list even when this probability is large relative to probabilities of the other attributes being "not missing". The property should be within the range of 0 to 100, but a value of zero (0) is recommended unless the fpPopularityPenalty property is set to zero (0).

Set a default value for this property in the global.asa file to avoid setting the value for each Predict method call.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The pVal parameter contains valid data only if the property is accessed successfully.

See Also

PredictorClient Object

IPredictorClient::Predict


IPredictorClient::Explain

Use this method to return the properties and values from the current case that are relevant to a prediction of the specified unknown property. A score corresponding to each returned property/value pair explains the importance of each property/value pair to the prediction.

Definition

HRESULT IPredictorClient::Explain(
IDictionary* dCurrentCase,
BSTR sPropToExplain,
VARIANT* pvsavRelevantProps,
VARIANT* pvsavRelevantValues,
VARIANT* pvsavRelevantScores,
long lMaxExplanations
);

Parameters

dCurrentCase

[in] A pointer to the IDictionary interface of a Dictionary object that contains the current case.

sPropToExplain

[in, string] A BSTR that contains the name of the property to explain.

pvsavRelevantProps

[out] A pointer to a VARIANT used to return a SAFEARRAY containing the list of properties from the current case that are relevant to the prediction.

pvsavRelevantValues

[out] A pointer to a VARIANT used to return a SAFEARRAY containing the list of values corresponding to the relevant properties.

pvsavRelevantScores

[out] A pointer to a VARIANT used to return a SAFEARRAY containing the list of scores corresponding to the importance of each property towards the prediction.

lMaxExplanations

[in, optional, default value (-1)] A long that contains the maximum number of properties to return. The default value indicates to return all the properties.

Return Values

This method returns an HRESULT indicating whether or not 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

This method returns property/value/score triplets sorted in descending order by score. The higher the score, the greater the probability the unknown property is correctly predicted by the corresponding property/value pair.

Load the prediction model using the LoadModelFromDB or LoadModelFromFile methods prior to using this method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The pvsavReleventProps, pvsavRelevantValues, and pvsavRelevantScores parameters contain valid data only if the method completes successfully.

See Also

PredictorClient Object


IPredictorClient::get_bFailOnUnknownInputAttributes, put_bFailOnUnknownInputAttributes

The read/write bFailOnUnknownInputAttributes property controls whether the Predict method continues or fails when encountering unknown input attributes.

Definition

Get method:

HRESULT IPredictorClient::get_bFailOnUnknownInputAttributes(
VARIANT_BOOL* pbVal
);

Put method:

HRESULT IPredictorClient::put_bFailOnUnknownInputAttributes(
VARIANT_BOOL pbval
);

Parameters

pbVal

[in] When putting the property, a VARIANT_BOOL that indicates whether or not the Predict method should fail on unknown input attributes. The default value is False.
[out, retval] When getting the property, a pointer to a VARIANT_BOOL indicating whether the Predict method fails on unknown input attributes.

Return Values

These methods return an HRESULT indicating whether or not it completed successfully. See the following Error Values section for more details.

Error Values

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.

Remarks

This property is used as a debugging flag. By default, the Predict method ignores unknown input attributes. Setting this property to True causes the Predict method to fail when unknown input attributes are encountered.

When debugging, set a default value for this property in the global.asa file to avoid setting the value for each Predict method call.

Load the prediction model using the LoadModelFromDB or LoadModelFromFile methods prior to accessing this property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The pbVal parameter contains valid data only if the property is accessed successfully.

See Also

PredictorClient Object

IPredictorClient::Predict


IPredictorClient::LoadModelFromDB

Use this method to load a model stored in a database.

Definition

HRESULT IPredictorClient::LoadModelFromDB(
BSTR sModelName,
BSTR sDWConnStr
);

Parameters

sModelName

[in] A BSTR that contains the model name.

sDWConnStr

[in] A BSTR that contains the connection information for the Data Warehouse.

Return Values

This method returns an HRESULT indicating whether or not 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

A valid model must be loaded before calling the other methods of the PredictorClient object. This model, typically in the range of 100k to 10M, must be loaded onto the local Web server to ensure a timely response to a prediction request.

The information for the model is loaded from the PredictorModels table. For more information about this table, see Predictor Schema.

The sDWConnStr parameter must be a SQL OLE DB connection string.

Use the LoadModelFromFile method to load a model from a file.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorClient Object

IPredictorClient::Predict

IPredictorClient::LoadModeFromFile


IPredictorClient::LoadModelFromFile

Use this method to load a model stored in a file.

Definition

HRESULT IPredictorClient::LoadModelFromFile(
BSTR sFilePath
);

Parameters

sFilePath

[in] A BSTR that contains the file name, extension, and path.

Return Values

This method returns an HRESULT indicating whether or not 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

A valid model must be loaded before calling the other methods of the PredictorClient object. A model is originally stored in a database and must be loaded using the LoadModelFromDB method. Once loaded, the model may be saved to a file using the SaveModelToFile method.

The file path is relative to the current working directory of the calling process.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorClient Object

IPredictorClient::Predict

IPredictorClient::LoadModelFromDB


IPredictorClient::get_fpPopularityPenalty, put_fpPopularityPenalty

The read/write fpPopularityPenalty property influences the likelihood that the Predict method recommends popular items.

Definition

Get method:

HRESULT IPredictorClient::get_fpPopularityPenalty(
float* pbVal
);

Put method:

HRESULT IPredictorClient::put_fpPopularityPenalty(
float pbVal
);

Parameters

pbVal

[in] When putting the property, a float that contains the popularity penalty value to be applied to subsequent predictions. Valid range is 0.0 to less than 1. Default is zero (0).
[out, retval] When getting the property, a pointer to a float used to return the popularity penalty value used in predictions.

Return Values

These methods return an HRESULT indicating whether or not it completed successfully. See the following Error Values section for more details.

Error Values

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.

The following standard COM error value has a particular meaning in the context of this property.

E_INVALIDARG

The parameter pbVal = 1. The valid range is 0 to less than 1.

Remarks

Popular items are frequently purchased items that are so well known that they do not need to be recommended to a user. A higher penalty value reduces the probability that a popular item is included as a recommended product in the prediction results. The value ranges from 0.0 to less than 1.0. To maximize sales of the most popular items, the default popularity penalty of zero (0) is recommended. For applications where most of the users are familiar with many of the popular products, a value of 0.9 is appropriate.

Set a default value for this property in the Application_OnStart method in the global.asa file to avoid setting the value for each Predict method call.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The pbVal parameter contains valid data only if the property is accessed successfully.

See Also

PredictorClient Object

IPredictorClient::Predict


IPredictorClient::Predict

Use this method to generate predictions that are used to recommend relevant products to a user, the current case, or to fill in missing profile data associated with the user.

Definition

HRESULT IPredictorClient::Predict(
IDictionary* dCurrentCase,
ISimpleList* slPropsToPredict,
VARIANT* pvsavPredictedProps
VARIANT* pvsavPredictedVals
long lMaxPredictions,
VARIANT* pvsavDetails
);

Parameters

dCurrentCase

[in] A pointer to the IDictionary interface of a Dictionary object that contains the current case.

slPropsToPredict

[in] A pointer to the ISimpleList interface of a SimpleList object that contains the names of the properties to predict.

pvsavPredictedProps

[out] A pointer to a VARIANT used to return a SAFEARRAY containing the predicted property names.

pvsavPredictedVals

[out] A pointer to a VARIANT used to return a SAFEARRAY containing the predicted property values.

lMaxPredictions

[in, optional, defaultvalue (-1)] A long that specifies the maximum number of predictions to return. The default value indicates to return all predictions.

pvsavDetails

[out, optional] Reserved for future use.

Return Values

This method returns an HRESULT indicating whether or not 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

Predictions are made using the currently loaded prediction model based on user profile and selection information contained in the current case. The predicted property/value pairs are returned sorted in descending order of likelihood.

Set the fpDefaultConfidence and fpPopularityPenalty properties and load the prediction model using the LoadModelFromDB or LoadModelFromFile methods before using the Predict method.

Default values for the fpDefaultConfidence and fpPopularityPenalty properties may be set in the Application_OnStart method in the global.asa file to avoid having to explicitly set the values for every Predict method call.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorClient Object

IPredictorClient::LoadModelFromFile

IPredictorClient::LoadModelFromDB

IPredictorClient::get_fpDefaultConfidence, put_fpDefaultConfidence


IPredictorClient::PredictAllSegments

Use this method to predict the probabilities that a particular user, the current case, belongs to each segment of a population.

Definition

HRESULT IPredictorClient::PredictAllSegments(
IDictionary* dCurrentCase,
VARIANT* pvsavSegmentNames,
VARIANT* pvsavProbabilities
);

Parameters

dCurrentCase

[in] A pointer to the IDictionary interface that contains the current case.

pvsavSegmentNames

[out] A VARIANT used to return a SAFEARRAY containing the segment names.

pvsavProbabilities

[out] A VARIANT used to return a SAFEARRAY containing the membership probabilities associated with the segment names.

Return Values

This method returns an HRESULT indicating whether or not 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

The Microsoft Research Cluster Engine Data Modeler groups similar users into segments. Similar segments are further grouped into higher order collections of segments, creating a hierarchy from which to analyze trends and discover hidden correlations. The returned probability associated with each segment name indicates the probability that the current user belongs to that segment.

Load the segment model using the LoadModelFromDB or LoadModelFromFile methods prior to using this method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The pvsavSegmentNames and pvsavProbabilities parameters contain valid data only if the method completes successfully.

See Also

PredictorClient Object


IPredictorClient::PredictMostLikelySegment

Use this method to predict the most likely segment of a population to which a user, the current case, belongs.

Definition

HRESULT IPredictorClient::PredictMostLikelySegment(
IDictionary* dCurrentCase,
VARIANT* pvarProbability,
BSTR* pbstrSegment
);

Parameters

dCurrentCase

[in] A pointer to the IDictionary interface that contains the current case.

pvarProbability

[out, optional] A pointer to a VARIANT used to return the membership probability associated with the segment name.

pbstrSegment

[out, retval] A pointer to a BSTR used to return the name of the segment most likely to contain the given case.

Return Values

This method returns an HRESULT indicating whether or not 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

The Microsoft Research Cluster Engine Data Modeler groups similar users into segments. Similar segments are further grouped into higher order collections of segments, creating a hierarchy from which to analyze trends and discover hidden correlations.

This method returns the name of the segment most likely to contain the given case, and optionally, the probability that the user belongs to this segment.

Load the segment model using the LoadModelFromDB or LoadModelFromFile methods prior to using this method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The pvarProbability and pbstrSegment parameters contain valid data only if the method completes successfully.

See Also

PredictorClient Object


IPredictorClient::get_fpRecommendScore

The read-only fpRecommendScore property returns the Recommendation Score, which measures the quality of a ranked list of recommendations returned from a prediction model.

Definition

Get method:

HRESULT IPredictorClient::get_fpRecommendScore(
float* pVal
);

Parameters

pVal

[out, retval] A pointer to a float used to return the Recommendation Score.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the following 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

Use the Recommendation Score to test and adjust the input parameters for a prediction model. Known cases, taken from the input cases used to build the model, are tested against the prediction model with one of the transactions randomly removed. A list of recommendations is returned, and the prediction is deemed successful if the removed transaction is on the list. The score is the percentage of cases in which the model was successful.

The Recommendation Score is automatically computed when a model is built, using a fraction of the data as test data. The amount of data to set aside for testing purposes is specified as the Measured Accuracy Sample Fraction. For more information, see Building a New Analysis Model and PredictorModels Table.

Load the prediction model using the LoadModelFromDB or LoadModelFromFile methods prior to accessing this property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The pVal parameter contains valid data only if the property is accessed successfully.

See Also

PredictorClient Object

IPredictorClient::Predict


IPredictorClient::SaveModelToFile

Use this method to save the currently loaded model to a file.

Definition

HRESULT IPredictorClient::SaveModelToFile(
BSTR sFilePath
);

Parameters

sFilePath

[in] A BSTR that contains the file name, extension, and path relative to the working directory of the calling process.

Return Values

This method returns an HRESULT indicating whether or not 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

The directory where the file is saved must exist prior to the call.

A model must be loaded using the LoadModelFromDB or LoadModelFromFile methods before using the SaveModelToFile method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorClient Object

IPredictorClient::LoadModelFromFile

IPredictorClient::LoadModelFromDB


IPredictorClient::get_sSiteName, put_sSiteName

The read/write sSiteName property contains the name of the site in which the PredictorClient object is running.

Definition

Get method:

HRESULT IPredictorClient::get_sSiteName(
BSTR* psSiteName
);

Put method:

HRESULT IPredictorClient::put_ sSiteName(
BSTR psSiteName
);

Parameters

psSiteName

[in] When putting the property, a BSTR that contains the name of the site where the PredictorClient object will run.
[out, retval] When getting the property, a pointer to a BSTR used to return the name of the site in which the PredictorClient object is running.

Return Values

These methods return an HRESULT indicating whether or not it completed successfully. See the following Error Values section for more details.

Error Values

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.

Remarks

This property should be set in the On_Start method of the global.asa file to allow logging of performance monitoring counters to be aggregated over the site. Performance counters are specific to a given computer. If multiple sites are running on the same Web server, the counters give a combined total for all sites. Specifying a site name allows the counts from one site to be distinguished from the counts of other sites.

The following counters are available:

  • Total number of predictions made since the site was initialized.

  • Average time per prediction.

  • Total number of model loads from files.

  • Total number of model loads from a database.

The counters can be accessed in Microsoft Windows 2000 by clicking Control Panel, double-clicking Administrative Tools, and then double-clicking Performance. The counters can also be accessed programmatically through the performance APIs described in the Windows 2000 Platform SDK.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The psSiteName parameter contains valid data only if the property is accessed successfully.

See Also

PredictorClient Object

IPredictorClient::Predict


PredictorServiceAdmin Object

Use this object to retrieve a list of the available analysis models, a list of the available model configurations, and the date the Predictor resource was last started.

ProgID: | Commerce.PredictorServiceAdmin (Externally creatable)
COM Class Name: | PredictorServiceAdmin
COM Interface Name: | IPredictorServiceAdmin
Interface ID Constant: | IID_IPredictorServiceAdmin
Header File: | PredictorService.h
Type Library Name: | Microsoft Commerce 2000 Predictor Service Type Library
EXE Name: | PredServ.exe
Threading Model: | Both

In C++, use the IPredictorServiceAdmin interface to access the properties of the object.

The properties of the PredictorServiceAdmin object are shown in the following table.

Property | Type | Description
dateLastStarted | DATE | Retrieves the date the Predictor resource was last started. This property is read-only.
slModelConfigs | ISimpleList | Retrieves a list of currently available model configurations. This property is read-only.
slModels | ISimpleList | Retrieves a list of currently available models. This property is read-only.

Remarks

The PredictorServiceSiteAdmin object provides methods for maintaining the models and model configurations. The PredictorClient object loads the appropriate model and makes the actual predictions. Generate new models by using the PredModelBuilder object.

See Also

Prediction Objects

Predictor Schema

PredictorClient Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object

Running the Predictor Resource


IPredictorServiceAdmin::get_dateLastStarted

The dateLastStarted property is a read-only Date that indicates when the Predictor resource was last started.

Definition

HRESULT IPredictorServiceAdmin::get_dateLastStarted(
DATE* pdateVal
);

Parameters

pdateVal

[out, retval] A pointer to a DATE that specifies when the Predictor resource last started.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the following 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The pDateVal parameter contains valid data only if the property is accessed successfully.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


IPredictorServiceAdmin::get_slModelConfigs

The slModelConfigs property is a read-only SimpleList object that contains information about the available model configurations.

Definition

HRESULT IPredictorServiceAdmin::get_slModelConfigs(
ISimpleList** ppslVal
);

Parameters

ppslVal

[out, retval] The address of a pointer to the ISimpleList interface of a SimpleList object used to return the list of model configurations.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the following 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

The SimpleList object, slModelConfigs, contains a Dictionary object for each model configuration. A model configuration contains information used to build a model. The following table describes the keys of the Dictionary object which are the names of the model configuration properties.

Key Name | Type | Description
DWResourceName | BSTR | Name of the Data Warehouse resource where the model configuration is defined.
ModelCfgName | BSTR | Name of the model configuration.
SiteName | BSTR | Reserved. May not appear in the dictionary.

Use the DeleteModelConfig method of the PredictorServiceSiteAdmin object to delete a model configuration.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The ppslVal parameter contains valid data only if the property is accessed successfully.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


IPredictorServiceAdmin::get_slModels

The slModels property is a read-only SimpleList object that contains information about the available models.

Definition

HRESULT IPredictorServiceAdmin::get_slModels(
ISimpleList** ppslVal
);

Parameters

ppslVal

[out, retval] The address of a pointer to the ISimpleList interface of a SimpleList object used to return the information about the models.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the following 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

The SimpleList object, slModels, contains a Dictionary object for each available model. A model is available if a copy of it exists and is not currently being built. The keys of the Dictionary object are the names of the model properties as listed in the PredictorModels Table. The following table describes a few of these keys. For information about the remaining keys, see PredictorModels Table.

Key Name | Type | Description
DWResourceName | BSTR | Name of the Data Warehouse resource where the model configuration is defined.
ModelCfgName | BSTR | Name of the model configuration used to build the model.
ModelName | BSTR | Model name.

Use the Start method of the PredModelBuilder object to create a new model.

Use the DeleteModel method of the PredictorServiceSiteAdmin object to delete a model.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The ppslVal parameter contains valid data only if the property is accessed successfully.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


PredictorServiceSiteAdmin Object

Use this object to manage analysis models and model configurations.

ProgID: | Commerce.PredictorSiteAdmin (Externally creatable)
COM Class Name: | PredictorServiceSiteAdmin
COM Interface Name: | IPredictorServiceSiteAdmin
Interface ID Constant: | IID_IPredictorServiceSiteAdmin
Header File: | PredictorService.h
Type Library Name: | Microsoft Commerce 2000 Predictor Service Type Library
EXE Name: | PredServ.exe
Threading Model: | Both

In C++, use the IPredictorServiceSiteAdmin interface to access the properties and methods of the PredictorServiceSiteAdmin object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

The properties of the PredictorServiceSiteAdmin object are shown in the following table.

Property | Type | Description
lCaseCount | long | Retrieves the number of cases used by a model configuration. This property is read-only.
dModelInfo | IDictionary | Retrieves information on the specified model. This property is read-only.
SegmentLabels | VARIANT | Stores the segment labels for a segment model. This property is read/write.

The methods of the PredictorServiceSiteAdmin object are shown in the following table.

Method | Description
DeleteModel | Deletes the specified predictor model.
DeleteModelConfig | Deletes the specified model configuration.
GenerateSegmentList | Generates a list of members of a segment.
Init | Initializes the server.
RenameModel | Renames a predictor model.
RenameModelConfig | Renames a model configuration.

Remarks

An analysis model summarizes dependency relationships among attributes found in data. A model configuration contains information used to build the analysis model.

Two types of analysis models are available. A prediction model is used to produce a ranked list of recommendations or to fill in a missing user profile attribute. A segment model is used to group similar users into segments of a population.

The PredictorServiceAdmin object contains lists of the available models and model configurations. The PredictorClient object loads the appropriate model and makes the actual predictions. The generation of new models is controlled by the PredModelBuilder object.

See Also

Prediction Objects

Predictor Schema

PredictorClient Object

PredictorServiceAdmin Object

PredModelBuilder Object

Running the Predictor Resource


IPredictorServiceSiteAdmin::get_lCaseCount

The lCaseCount property is a read-only Long that contains a count of the number of cases used by a model configuration.

Definition

HRESULT IPredictorServiceSiteAdmin::get_lCaseCount(
BSTR sConfigName,
long* plCaseCount
);

Parameters

sConfigName

[in] A BSTR that contains the model configuration name.

plCaseCount

[out, retval] A pointer to a long that contains the number of cases for the specified model configuration.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the following 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

A case is the set of information known about a particular user. This information might include user profile data, purchase history, URL click history, or other user associated data. The number of cases used to build a model affects the accuracy of that model. In general, predictions will be more accurate when many cases are available for the model. However, the time necessary to build the model increases with the number of cases in the configuration and increases in accuracy are slight when the number of cases becomes very large (typically, greater than 50,000 cases).

Use the slModelConfigs property of the PredictorServiceAdmin object to retrieve a list of the available model configurations.

Connect to the Data Warehouse using the Init method before accessing this property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The plCaseCount parameter contains valid data only if the property is accessed successfully.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


IPredictorServiceSiteAdmin::DeleteModel

Use this method to delete the specified model.

Definition

HRESULT IPredictorServiceSiteAdmin::DeleteModel(
BSTR sModelName
);

Parameters

sModelName

[in] A BSTR that contains the name of the model to delete.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the following 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

Use the slModels property of the PredictorServiceAdmin object to retrieve a list of the available models.

Deleting a model causes its entry in the PredictorModels table in the Data Warehouse to be removed.

Passing an empty string for the model name will result in an invalid argument error.

Connect to the Data Warehouse using the Init method before calling the DeleteModel method.

Use the Start method of the PredModelBuilder object to create a new model.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


IPredictorServiceSiteAdmin::DeleteModelConfig

Use this method to delete the specified model configuration.

Definition

HRESULT IPredictorServiceSiteAdmin::DeleteModelConfig(
BSTR sModelConfigName
);

Parameters

sModelConfigName

[in] A BSTR that contains the name of the model configuration to delete.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the following 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

Use the slModelConfigs property of the PredictorServiceAdmin object to retrieve a list of the available model configurations.

Passing an empty string for the model configuration name will result in an invalid argument error.

Deleting a model configuration causes its entries in the PredictorModelCfgs and PredictorDataTables tables in the Data Warehouse to be removed, as well as the Attributes table it references. No case data is deleted.

Caution

  • For this release of Microsoft Commerce Server 2000, the user must directly modify tables in the Data Warehouse to create a new model configuration. No API function is provided.

Connect to the Data Warehouse using the Init method before calling the DeleteModelConfig method.For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


IPredictorServiceSiteAdmin::get_dModelInfo

The dModelInfo property is a read-only Dictionary object that contains information on the specified model.

Definition

HRESULT IPredModelBuilder::get_dModelInfo(
BSTR sModelName,
IDictionary** ppdictInfo
);

Parameters

sModelName

[in] A BSTR that contains the model name.

ppdictInfo

[out, retval] The address of a pointer to the IDictionary interface of a Dictionary object used to retrieve the information on the specified model.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the following Error Values section for more details. The IErrorInfo interface provides more specific error information.

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

The keys of the returned Dictionary object are the names of the model properties as listed in the PredictorModels Table. The following table describes a few of these keys. For information about the remaining keys, see PredictorModels Table.

Key Name | Type | Description
DWResourceName | BSTR | Name of the Data Warehouse resource where the model configuration is defined.
ModelCfgName | BSTR | Name of the model configuration used to build the model.
ModelName | BSTR | Model name.

Connect to the Data Warehouse using the Init method before accessing this property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The ppdictInfo parameter contains valid data only if the property is accessed successfully.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


IPredictorServiceSiteAdmin::GenerateSegmentList

Use this method to generate a list of the members of a segment.

Definition

HRESULT IPredictorServiceSiteAdmin::GenerateSegmentList(
 BSTR sLMConn,
BSTR sTableName,
BSTR sModelName,
BSTR sSegmentName
double fpMinProbability

);

Parameters

sLMConn

[in] A BSTR that specifies the connection information for the ListManager object.

sTableName

[in] A BSTR that specifies the name of the table to store the list of segment members.

sModelName

[in] A BSTR that specifies the name of the segment model to use.

sSegmentName

[in] A BSTR that specifies the name of the segment to export.

fpMinProbability

[in] A double that specifies the minimum probability associated with a segment member for that member to be exported. The valid range is between 0 and 1.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the following 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

This method is provided for use by the ListManager object and should not be called independently. The CreateFromSegment method of the ListManager object calls this method and creates the list. For more information, see IListManager::CreateFromSegment.

Passing an empty string for the model name results in an empty list.

If the segment name, sSegmentName, does not exist or is the name of a segment group, an empty list is generated. No error is returned for this case.

Connect to the Data Warehouse using the Init method before calling the GenerateSegmentList method.

A segment model classifies groups of users into segments of users with similar user properties. Similar segments are further grouped into higher order collections of segments.

Each user is assigned a probability of membership to each segment. The sum of the probabilities for all segments equals one for the user. If the probability of membership in a particular segment for the user is greater than fpMinProbability, the user will be included in the export list.

All members (individual cases) of the specified segment level with an associated probability greater than the value specified in the fpMinProbability attribute are stored in the named table, and then exported into the List Manager.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


IPredictorServiceSiteAdmin::Init

Use this method to initialize the connection to the Data Warehouse.

Definition

HRESULT IPredictorServiceSiteAdmin::Init(
BSTR sSiteName,
BSTR sDWConnStr
);

Parameters

sSiteName

[in] A BSTR that is unused. Pass in an empty string.

sDWConnStr

[in] A BSTR that contains the Data Warehouse connection string.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the following 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

The models and model configurations are stored in tables in the Data Warehouse.

Initialize the connection to the Data Warehouse before any other properties or methods of the PredictorServiceSiteAdmin object are called.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object

PredictorClient Object


IPredictorServiceSiteAdmin::RenameModel

Use this method to rename a model.

Definition

HRESULT IPredictorServiceSiteAdmin::RenameModel(
BSTR sOldModelName,
BSTR sNewModelName
);

Parameters

sOldModelName

[in] A BSTR that contains the old model name.

sNewModelName

[in] A BSTR that contains the new model name.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the following 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.

The following standard COM error value has a particular meaning in the context of this method.

E_FAIL

A model with the old name could not be found, or a model with the new name already exists.

Remarks

When renaming a model, update any sites that load the model using the LoadModelFromDB method of the PredictorClient object.

The name change is made to the model entry in the PredictorModels table in the Data Warehouse.

Use the slModels property of the PredictorServiceAdmin object to retrieve a list of available models. Use the RenameModelConfig method to rename a model configuration.

Passing an empty string for either model name will result in an invalid argument error.

Connect to the Data Warehouse using the Init method before calling the RenameModel method. For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorClient Object

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


IPredictorServiceSiteAdmin::RenameModelConfig

Use this method to rename a model configuration.

Definition

HRESULT IPredictorServiceSiteAdmin::RenameModelConfig(
BSTR sOldModelConfigName,
BSTR sNewModelConfigName
);

Parameters

sOldModelConfigName

[in] A BSTR that contains the old model configuration name.

sNewModelConfigName

[in] A BSTR that contains the new model configuration name.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the following 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.

The following standard COM error value has a particular meaning in the context of this method.

E_FAIL

A model configuration with the old name could not be found, or a model configuration with the new name already exists.

Remarks

The name change is made to the model configuration entry in the PredictorModelCfgs table in the Data Warehouse.

Use the slModelsConfigs property of the PredictorServiceAdmin object to retrieve a list of the model configurations. Use the RenameModel method to rename a model.

Passing an empty string for the model configuration name will result in an invalid argument error.

Connect to the Data Warehouse using the Init method before calling the RenameModelConfig method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


IPredictorServiceSiteAdmin::get_SegmentLabels, put_SegmentLabels

The SegmentLabels property is a read/write Variant that contains the labels for a given segment model.

Definition

Get method:

HRESULT IPredictorServiceSiteAdmin::get_SegmentLabels(
BSTR sModelName,
long lDepth,
VARIANT* pvarsaLabels
);

Put method:

HRESULT IPredictorServiceSiteAdmin::put_SegmentLabels(
BSTR sModelName,
long lDepth,
VARIANT pvarsaLabels
);

Parameters

sModelName

[in] A BSTR that contains the name of the segment model.

lDepth

[in] A long that specifies the depth in the segment hierarchy from which labels are assigned or retrieved.

pvarsaLabels

[in] When putting the property, a VARIANT that contains the segment labels.
[out, retval] When getting the property, a pointer to a VARIANT used to return the segment labels.

Return Values

These methods return an HRESULT indicating whether or not they completed successfully. See the following Error Values section for more details.

Error Values

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.

Remarks

A segment model classifies groups of users into segments of users with similar user properties. Similar segments are grouped into higher order collections of segments, creating a hierarchy. When the segments are first generated they are generically labeled (for example, Segment4 or Group2). Rename the labels to better identify the different groups.

Valid values for the lDepth parameter are -1 (returns all segments) and 2 or greater.

Connect to the Data Warehouse using the Init method before accessing this property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The pvarsaLabels parameter contains valid data only if the property is accessed successfully.

See Also

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object


PredModelBuilder Object

Use this object to control the creation of analysis models using multiple prioritized build threads.

ProgID: | Commerce.PredictorModelBuilder (Externally creatable)
COM Class Name: | PredModelBuilder
COM Interface Name: | IPredModelBuilder
Interface ID Constant: | IID_IPredModelBuilder
Header File: | PredictorService.h
Type Library Name: | Microsoft Commerce 2000 Predictor Service Type Library
EXE Name: | PredServ.exe
Threading Model: | Both

In C++, use the IPredModelBuilder interface to access the properties and methods of the PredModelBuilder object.

The properties of the PredModelBuilder object are shown in the following table.

Property | Type | Description
dModelInfo | IDictionary | Retrieves information on the specified running model. This property is read-only.
Priority | enum | Stores the build thread priority. This property is read/write.
slRunningModels | ISimpleList | Retrieves a list of running models. This property is read-only.
Status | enum | Indicates the build thread status. This property is read-only.

The methods of the PredModelBuilder object are shown in the following table.

Method | Description
Pause | Pauses a running build thread.
Resume | Resumes a paused build thread.
Start | Sets the thread identifier for a build and starts a new build thread.
Stop | Stops a running build thread.
StopAllBuilds | Stops all currently running build threads.

Remarks

Two types of analysis models are available in Microsoft Commerce Server 2000. A Prediction model is a collection of decision trees (called a dependency net) and is used either to produce a ranked list of recommendations, such as products to advertise, or to fill in missing user profile information, such as age. A Segment model is based on the process of clustering (segmentation) and is used to group similar users into segments of a population.

An analysis model is associated with a model configuration. More than one analysis model can be associated with the same model configuration. The model configuration contains attribute and case information used to build the analysis model. A case is all the information known about a user, such as profile data and transaction data. A typical model uses between 10,000 and 20,000 cases with a resulting size of between 100 kilobytes (KB) and 10 megabytes (MB).

The PredictorServiceAdmin object contains lists of the available analysis models and model configurations. The PredictorServiceSiteAdmin object provides methods for maintaining the analysis models and model configurations. The PredictorClient object loads the appropriate analysis model and makes the actual prediction.

The generation of an analysis model occurs in an individual build thread. A single instance of the PredModelBuilder object may control multiple simultaneous build threads. If a problem occurs in a build thread, that specific thread may be paused or terminated.

See Also

Prediction Objects

Predictor Schema

PredictorClient Object

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

Running the Predictor Resource


IPredModelBuilder::get_dModelInfo

The dModelInfo property is a read-only Dictionary object that contains information on the specified running model.

Definition

HRESULT IPredModelBuilder::get_dModelInfo(
long lBuildID,
IDictionary** ppdictVal
);

Parameters

lBuildID

[in] A long that contains the build identifier used to select a specific build thread.

ppdictVal

[out, retval] The address of a pointer to the IDictionary interface of a Dictionary object.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the following Error Values section for more details. The IErrorInfo interface provides more specific error information.

Error Values

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.

Remarks

The keys of this dictionary are the build parameters of the running model. For information on the build parameters, see PredictorModels Table.

Initiate the build thread using the Start method before you access the thread using the dModelInfo property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The ppdictVal parameter contains valid data only if the property is accessed successfully.

See Also

PredModelBuilder Object

IPredModelBuilder::Start

IPredModelBuilder::Stop


IPredModelBuilder::Pause

Use this method to suspend the model build thread.

Definition

HRESULT IPredModelBuilder::Pause(
long lBuildID
);

Parameters

lBuildID

[in] A long that contains the build thread identifier.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the following 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

The build thread identifier is returned by the Start method when a model build is initiated.

Use the Resume method to resume the paused build thread.

Use the Stop method to stop the execution of the build thread. A stopped thread may not be resumed. The thread must be restarted with the Start method.

Use the Status property to check the current status of a model build.

See Also

PredModelBuilder Object

IPredModelBuilder::Start

IPredModelBuilder::Resume

IPredModelBuilder::Stop

IPredModelBuilder::get_Status

IPredModelBuilder::get_Priority, put_Priority


IPredModelBuilder::get_Priority, put_Priority

The Priority property is a read/write ePredBuildPriority enumerated type. This property stores the priority of a build thread.

Definition

Get method:

HRESULT IPredModelBuilder::get_Priority(
long lBuildID,
ePredBuildPriority* pePriority
);

Put method:

HRESULT IPredModelBuilder::put_Priority(
long lBuildID,
ePredBuildPriority pePriority
);

Parameters

lBuildID

[in] A long that contains the build identifier.

pePriority

[in] When putting the property, an ePredBuildPriority enumerated priority level.
[out, retval] When getting the property, a pointer to the ePredBuildPriority enumerated priority level for the build.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the following Error Values section for more details.

Error Values

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.

Remarks

Change this property to raise or lower the priority of the build thread depending on how quickly the build is needed.

The following table defines the possible values for the ePredBuildPriority enumerated priority levels. Absolute thread priority is not supported. These priority values are relative to the spawning thread.

Name | Value | Description
PriLowest | -2 | Lowest priority.
PriBelowNormal | -1 | Lower priority.
PriNormal | 0 | Normal priority.
PriAboveNormal | 1 | Higher priority.
PriHighest | 2 | Highest priority.

Initiate the build thread with the Start method before you access the Priority property.

Use the Pause method to temporarily suspend execution of equal or higher priority threads when a particular build thread is time-critical. Threads are executed round robin for each priority level. Threads with lower priorities are not executed until all the threads with a higher priority have executed.

See the Microsoft Developer Network (MSDN) documentation for the system SetThreadPriority method for more information about thread scheduling.

The Priority method does not support the THREAD_PRIORITY_REALTIME priority.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The pePriority parameter contains valid data only if the property is accessed successfully.

See Also

PredModelBuilder Object

IPredModelBuilder Start

IPredModelBuilder Pause


IPredModelBuilder::Resume

Use this method to resume the execution of a build thread suspended by the Pause method.

Definition

HRESULT IPredModelBuilder::Resume(
long lBuildID
);

Parameters

lBuildID

[in] A long that contains the identifier of the paused build thread.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the following 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

The build thread identifier is returned by the Start method when a model build is initiated.

Use the Status property to determine if a build thread is running or paused.

See Also

PredModelBuilder Object

IPredModelBuilder::Start

IPredModelBuilder::Pause

IPredModelBuilder::Stop

IPredModelBuilder::get_Status


IPredModelBuilder::get_slRunningModels

The slRunningModels property is a read-only SimpleList object that contains information on the active (running and paused) model build threads.

Definition

HRESULT IPredModelBuilder::get_slRunningModels(
ISimpleList** ppslVal
);

Parameters

ppslVal

[out, retval] The address of a pointer to the ISimpleList interface for the SimpleList object used to return the infomation on the active model build threads.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the following 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

The SimpleList object, slRunningModels, contains a Dictionary object for each running model. The keys of the Dictionary object are the names of the model properties as listed in the PredictorModels Table except for the properties dependent on a successful finished build. The properties that are unavailable are: DateCreated, DataFitScore, RecommendScore, and BuildTime. After a successful build, these properties are available through the slModels property of the PredictorServiceAdmin object or the dModelInfo property of the PredictorServiceSiteAdmin object. The following table describes a few of the keys contained in the Dictionary object. For information about the remaining keys, see PredictorModels Table.

Key Name | Type | Description
DWResourceName | BSTR | Name of the Data Warehouse resource where the model configuration is defined.
ModelCfgName | BSTR | Name of the model configuration used to build the model.
BuildID | long | The ID of the build thread.
ModelName | BSTR | Model name.

Use the Status property to check the status of a specific model build thread.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The ppslVal parameter contains valid data only if the property is accessed successfully.

See Also

IPredictorServiceAdmin::get_slModels

IPredictorServiceSiteAdmin::get_dModelInfo

PredModelBuilder Object

IPredModelBuilder::Start

IPredModelBuilder::Stop

IPredModelBuilder::StopAllBuilds

IPredModelBuilder::get_Status


IPredModelBuilder::Start

Use this method to create a new model build thread.

Definition

HRESULT IPredModelBuilder::Start(
BSTR sDWConnStr,
BSTR sSiteName,
BSTR sConfigName,
BSTR sModelName,
BSTR sXMLBuildParams,
VARIANT_BOOL bOverWrite,
long* plBuildID
);

Parameters

sDWConnStr

[in] A BSTR that contains the connection information for the data warehouse.

sSiteName

[in] A BSTR that is not used. Pass an empty string.

sConfigName

[in] A BSTR that contains the model configuration name.

sModelName

[in] A BSTR that contains the model name.

sXMLBuildParams

[in] A BSTR that contains the run-time build parameters for the model in XML format.

bOverWrite

[in] A VARIANT_BOOL that indicates whether to overwrite the model if it already exists.

plBuildID

[out, retval] A pointer to a long that contains the identifier for the new build thread.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the following 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.

The following standard COM error value has a particular meaning in the context of this method.

E_FAIL

The overwrite flag is False, and the specified model already exists or the build thread failed.

Remarks

For information on the run-time build parameters contained in the sXMLBuildParams parameter, see PredictorModels Table. The sXMLBuildParams parameter must be passed in as the return value of the SaveXML method of the IPersistXML interface of a Dictionary object containing the build parameters. For an example of this technique, see Code to Build a New Model.

Connect to the data warehouse to access the model configuration.

Associating the site name with the PredModelBuilder object allows logging of performance monitoring counters to be aggregated over the site. See the PredictorClient object for more information.

Use the returned identifier for all subsequent access to the build thread.

If a model with the same name already exists and the overwrite parameter is False, the Start method fails.

The priority of a build thread may be set using the Priority property.

Use the Status property to check the status of a build thread.

Use the Stop method to stop a build thread that is currently running. A stopped thread may not be resumed. The thread must be restarted with the Start method.

Use the Pause method to temporarily suspend the execution of a build thread. Use the Resume method to resume execution of the suspended thread.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The plBuildID parameter contains valid data only if the method completes successfully.

See Also

PredModelBuilder Object

IPredModelBuilder::Pause

IPredModelBuilder::Resume

IPredModelBuilder::Stop

IPredModelBuilder::get_Status

IPredModelBuilder::get_Priority, put_Priority

PredictorClient Object


IPredModelBuilder::get_Status

The Status property is a read-only ePredBuildStatus enumerated type. This property indicates the current status of a model build thread.

Definition

HRESULT IPredModelBuilder::get_Status(
long lBuildID,
ePredBuildStatus* peStatus
);

Parameters

lBuildID

[in] A long that contains the build identifier used to select a specific build thread.

peStatus

[out, retval] A pointer to an ePredBuildStatus enumerated type that indicates the status of the specified thread.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the following Error Values section for more details. The IErrorInfo interface provides more specific error information.

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

The following table defines the possible values for the ePredBuildStatus enumerated build states.

Name | Value | Description
PredBldRunning | 0 | Is currently running.
PredBldPaused | 1 | Is paused.
PredBldShuttingDown | 2 | Is shutting down in response to the Stop method.

BuildIDs become invalid when a build is finished, either successfully or due to failure. For status information on finished builds, view the event log.

Initiate the build thread using the Start method before you access the thread using the Status property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The peStatus parameter contains valid data only if the property is accessed successfully.

See Also

PredModelBuilder Object

IPredModelBuilder::Start

IPredModelBuilder::Stop


IPredModelBuilder::Stop

Use this method to stop execution of a specific model build thread.

Definition

HRESULT IPredModelBuilder::Stop(
long lBuildID
);

Parameters

lBuildID

[in] A long that identifies the model build thread.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the following 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.

The following standard COM error value has a particular meaning in the context of this method.

E_FAIL

The build ID was invalid or the status of the build thread was neither running nor paused.

Remarks

The build thread identifier is returned by the Start method when a model build is initiated.

The Stop method sets a flag that signals the data modeler for the specified build thread to stop when it is ready. The data modeler checks the flag each time it updates progress information. If the flag is set, the data modeler ends thread execution and performs necessary clean-up operations.

Use the Status property to access the current status of a build thread. If the data modeler has not completed the thread termination, the build thread status is PredBldShuttingDown.

After the thread terminates, the build identifier no longer indicates a valid build thread. A stopped thread may not be resumed. The thread must be restarted with the Start method.

Use the StopAllBuilds method to halt execution of all build threads associated with the PredModelBuilder object.

See Also

PredModelBuilder Object

IPredModelBuilder::Start

IPredModelBuilder::get_Status

IPredModelBuilder::StopAllBuilds


IPredModelBuilder::StopAllBuilds

Use this method to stop execution of all model build threads associated with the PredModelBuilder object.

Definition

HRESULT IPredModelBuilder::StopAllBuilds(
);

Parameters

None.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the following 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

The StopAllBuilds method sets a flag that signals each build thread to stop when it is ready. If the flag is set for a build thread, the data modeler for that thread ends thread execution and performs necessary clean-up operations.

Use the Status property to access the current status of a build thread. If a data modeler has not completed thread termination, the thread status for the modeler is PredBldShuttingDown. After the thread terminates, the build identifier no longer indicates a valid build thread. A stopped thread may not be resumed. The thread must be restarted with the Start method.

Use the Stop method to stop a specific build thread.

See Also

PredModelBuilder Object

IPredModelBuilder::Start

IPredModelBuilder::get_Status

IPredModelBuilder::Stop


Product Object

Use this object to work with products and variants in a catalog.

ProgID: | Dependent (See Remarks for more information)
COM Class Name: | Product
COM Interface Name: | IProduct
Interface ID Constant: | IID_IProduct
Header File: | Catalog.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Catalog Type Library
DLL Name: | Catalog.dll
Threading Model: | Both

In C++, use the IProduct 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.

The properties of the Product object are shown in the following table.

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.
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.
Variants | _Recordset | Contains a recordset that describes all of the variants of this product, if any. This property is read-only.

The methods of the Product object are shown in the following table.

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.
SetVariantProperties | Sets the properties for variants of this product.

Remarks

The Product object is a dependent object. Obtain a pointer to the IProduct interface by calling one of the following methods:

  • IProductCatalog::CreateProduct

  • IProductCatalog::GetProduct


IProduct::AddRelationshipToCategory

Use this method to add a relationship to a specified category from this product.

Definition

HRESULT IProduct::AddRelationshipToCategory(
BSTR strRelatedCategoryName,
BSTR strRelationshipName,
VARIANT strRelationshipDescription
);

Parameters

strRelatedCategoryName

[in] A BSTR that contains the name of the category to which a relationship is to be added.

strRelationshipName

[in] A BSTR that contains a name for the relationship.

strRelationshipDescription

[in, optional] A VARIANT that optionally contains a description for the relationship.

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 either standard or custom COM HRESULT 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_CATEGORY_DOESNT_EXIST | 0x8898001C | The specified category did not exist.
E_CAT_INVALID_RELATION | 0x88980039 | The specified relationship was invalid. For example, a category or product cannot be related to itself.
E_CAT_INVALID_RELATION_DESC | 0x88980055 | The relationship description exceeded 256 characters.
E_CAT_INVALID_RELATION_NAME | 0x88980054 | The relationship name exceeded 128 characters.
E_CAT_RELATIONSHIP_EXISTS | 0x88980033 | The specified relationship already existed.

Additional information may be available using the global Err object, which can 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object

IProduct::AddRelationshipToProduct

IProduct::RemoveRelationshipToCategory


IProduct::AddRelationshipToProduct

Use this method to add a relationship to a specified product from this product.

Definition

HRESULT IProduct::AddRelationshipToProduct(
VARIANT varRelatedProductID,
BSTR strRelationshipName,
VARIANT strRelationshipDescription
);

Parameters

varRelatedProductID

[in] A VARIANT that contains the ID of the related product.

strRelationshipName

[in] A BSTR that contains the name of the relationship.

strRelationshipDescription

[in, optional] A VARIANT that optionally contains a description for the relationship.

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 either standard or custom COM HRESULT 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_RELATION | 0x88980039 | The specified relationship was invalid. For example, a product cannot be related to itself.
E_CAT_INVALID_RELATION_DESC | 0x88980055 | The relationship description exceeded 256 characters.
E_CAT_INVALID_RELATION_NAME | 0x88980054 | The relationship name exceeded 128 characters.
E_CAT_PRODUCT_DOESNT_EXIST | 0x8898001E | The specified product ID did not exist.
E_CAT_RELATIONSHIP_EXISTS | 0x88980033 | The specified relationship already existed.

Additional information may be available using the global Err object, which can 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object

IProduct::AddRelationshipToCategory

IProduct::RemoveRelationshipToProduct


IProduct::get_AncestorCategories

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

HRESULT IProduct::get_AncestorCategories(
_Recordset** AncestorCategories
);

Parameters

AncestorCategories

[out, retval] The address of a pointer to a _Recordset object used to return the ancestor categories.

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 either standard or custom COM HRESULT 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_CIRCULAR_REFERENCE | 0x88980037 | Circular referencing is not supported. A circular reference would put a category in more than one place in the hierarchy.

Additional information may be available using the global Err object, which can 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

The AncestorCategories parameter contains valid data only if the property was accessed successfully.

The AncestorCategories property is a Recordset object with a single 128-character field, named Name.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object

IProduct::get_ParentCategories


IProduct::get_CatalogName

The CatalogName property is a read-only String that contains the name of the catalog within which this product exists.

Definition

HRESULT IProduct::get_CatalogName(
BSTR* CatalogName
);

Parameters

CatalogName

[out, retval] A BSTR used to return the catalog name.

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

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

Product Object


IProduct::CreateVariant

Use this method to create a new product variant of the current product. Only product specifc attributes will be set in the new variant.

Definition

HRESULT IProduct::CreateVariant(
VARIANT varProductVariantID,
_Recordset** ppRSProductVariant
);

Parameters

varProductVariantID

[in] A VARIANT that contains the unique ID of the product variant.

ppRSProductVariant

[out, retval] A pointer to a Recordset object used to return the product variant.

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 either standard or custom COM HRESULT 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_BLANK_VARIANT | 0x8898004F | A blank value was specified for the VariantID.
E_CAT_CATALOG_DOESNT_SUPPORT_VARIANTS | 0x88980032 | This catalog does not support product variants. This is determined when the catalog is created and cannot be changed.
E_CAT_INVALID_VARIANTID | 0x8898005C | The VariantID exceeded 256 characters in length.
E_CAT_INVALIDVALUE_FOR_PROPERTY 0x88980038 An invalid value was specified for one of the product properties.

This error can be due to:

  • One of the values in the recordset does not satisfy the requirements of the minimum value/maximum value attributes set for the properties.

  • An enumeration property has a value that is not defined in its list of legal values.

  • Strings exceed the maximum length defined for the property or are shorter than the minimum length.
E_CAT_INVALIDVALUE_FOR_VARIANTID 0x8898004D An invalid value was specified for the VariantID.

This error can be due to the value of the VariantId being out of range.
E_CAT_NO_VARIANTS_UNDER_PRODUCT | 0x88980051 | This product does not support variants. Variants cannot be created under a regular product.
E_CAT_PRODUCT_DOESNT_EXIST | 0x8898001E | This product has been removed from the catalog.
E_CAT_VARIANT_EXISTS | 0x88980026 | The specified variant already existed.

Additional information may be available using the global Err object, which can 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

The ppRSProductVariant parameter contains valid data only if the property was accessed successfully.

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 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 for internal use 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.

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 same variant IDs within the same catalog, as long as they are in different product families and the unique Product identifier and the unique Variant identifier are different.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object

IProduct::DeleteVariant

IProduct::SetVariantProperties


IProduct::DeleteVariant

Use this method to delete the specified product variant.

Definition

HRESULT IProduct::DeleteVariant(
VARIANT varVariantID
);

Parameters

varVariantID

[in] A VARIANT that contains the unique ID of the variant.

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 either standard or custom COM HRESULT 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_SUPPORT_VARIANTS | 0x88980032 | This catalog does not support product variants. This is determined when the catalog is created and cannot be changed.
E_CAT_VARIANT_DOESNT_EXIST | 0x8898001F | Variant did not exist.

Additional information may be available using the global Err object, which can 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object

IProduct::CreateVariant


IProduct::get_GetProductProperties

The GetProductProperties property is a read-only recordset that contains the properties of this Product object.

Definition

HRESULT IProduct::get_GetProductProperties(
_Recordset** GetProductProperties
);

Parameters

GetProductProperties

[out, retval] The address of a pointer to a _Recordset object used to return the properties of this product.

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 either standard or custom COM HRESULT 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_PRODUCT_DOESNT_EXIST | 0x8898001E | This product has been deleted.

Additional information may be available using the global Err object, which can 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

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 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

Product Object

IProduct::SetProductProperties


IProduct::GetVariantProperties

Use this method to retrieve the properties for a specified product variant.

Definition

HRESULT IProduct::GetVariantProperties(
VARIANT varProductVariantID,
_Recordset** ppRSProductVariant
);

Parameters

varProductVariantID

[in] A VARIANT that contains the unique ID of the product variant.

ppRSProductVariant

[out, retval] A pointer to a Recordset object used to return the product variant properties.

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 either standard or custom COM HRESULT 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_SUPPORT_VARIANTS | 0x88980032 | This catalog does not support product variants.
E_CAT_VARIANT_DOESNT_EXIST | 0x8898001F | This product variant has been removed from the catalog.

Additional information may be available using the global Err object, which can 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object

IProduct::SetVariantProperties


IProduct::get_ParentCategories

The ParentCategories property is a read-only recordset that contains the names of categories that directly contain this product.

Definition

HRESULT IProduct::get_ParentCategories(
_Recordset** ParentCategories
);

Parameters

ParentCategories

[out, retval] A _Recordset object used to return the parent categories.

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

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 will have a single 128-character String field called Name. Each row in the recordset will contain the name of a category containing this product.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object

IProduct::get_AncestorCategories


IProduct::get_PricingCategory, put_PricingCategory

The PricingCategory property is a read/write String that contains the name of the pricing category for this product.

Definition

Get method:

HRESULT IProduct::get_PricingCategory(
BSTR* PricingCategory
);SET

Put method:

HRESULT IProduct::put_PricingCategory(
BSTR PricingCategory
);

Parameters

PricingCategory

[in] When using the put method, a BSTR that contains the pricing category.
[out, retval] When using the get method, a pointer to a BSTR used to return the pricing category.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_CATEGORY_DOESNT_EXIST | 0x8898001C | The specified category did not exist.
E_CAT_PRICING_CAT_PRICELESS | 0x8898002F | The specified category did not have a list price. Categories that do not have a list price cannot be used as a pricing category.
E_CAT_PRODUCT_DOESNT_EXIST | 0x8898001E | This product has been deleted.

Additional information may be available using the global Err object, which can 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

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

Product Object


IProduct::get_ProductID

The ProductID property is a read-only String that contains the unique ID for this product.

Definition

HRESULT IProduct::get_ProductID(
BSTR* ProductID
);

Parameters

ProductID

[out, retval] The address of a BSTR used to return the product ID.

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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object


IProduct::get_RelatedCategories

The RelatedCategories property is a read-only Recordset object that contains the names of categories that are related to this product.

Definition

HRESULT IProduct::get_RelatedCategories(
_Recordset** RelatedCategories
);

Parameters

RelatedCategories

[out, retval] A _Recordset used to return the related categories.

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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object

IProduct::get_RelatedProducts

IProduct::AddRelationshipToCategory


IProduct::get_RelatedProducts

The RelatedProducts property is a read-only Recordset object that contains the names of products that are related to this product.

Definition

HRESULT IProduct::get_RelatedProducts(
_Recordset** RelatedProducts
);

Parameters

RelatedProducts

[out, retval] A _Recordset object used to return the related products.

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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object


IProduct::RemoveRelationshipToCategory

Use this method to remove the specified relationship between the specified category and this product.

Definition

HRESULT IProduct::RemoveRelationshipToCategory(
BSTR strRelatedCategoryName,
BSTR strRelationshipName
);

Parameters

strRelatedCategoryName

[in] A BSTR that contains the name of the category that is to have its relationship to this product removed.

strRelationshipName

[in] A BSTR that contains the name of the relationship to be removed.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object

IProduct::get_RelatedCategories

IProduct::AddRelationshipToCategory

IProduct::RemoveRelationshipToProduct


IProduct::RemoveRelationshipToProduct

Use this method to remove the specified relationship between the specified product and this product.

Definition

HRESULT IProduct::RemoveRelationshipToProduct(
VARIANT varRelatedProductID,
BSTR strRelationshipName
);

Parameters

varRelatedProductID

[in] A VARIANT that contains the unique ID of the product that is to have its relationship to this product removed.

strRelationshipName

[in] A BSTR that contains the name of the relationship to be removed.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object

IProduct::get_RelatedProducts

IProduct::AddRelationshipToProduct

IProduct::RemoveRelationshipToCategory


IProduct::SetProductProperties

Use this method to set the properties for this product.

Definition

HRESULT IProduct::SetProductProperties(
_Recordset* pRSProduct,
VARIANT fForceUpdate
);

Parameters

pRSProduct

[in] A pointer to a Recordset object that contains the new product properties. This should be an updated recordset returned by the GetProductProperties method.

fForceUpdate

[in, optional] A VARIANT that determines whether to force an update of the product properties.

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 either standard or custom COM HRESULT 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_LISTPRICE | 0x8898003C | The value specified for the list price was invalid.
E_CAT_INVALIDVALUE_FOR_PROPERTY 0x88980038 An invalid value was specified for one of the product properties. This error was returned if:
  • One of the properties did not satisfy the Min/Max condition.

  • The properties of string or enumeration data type exceeded the maximum length.

  • The value of the enumeration property was not one of the legal values defined.
E_CAT_PRODUCT_CHANGED | 0x88980027 | This product's properties were changed since they were last read. This error is returned only if the fForceUpdate parameter is set to False.
E_CAT_PRODUCT_DOESNT_EXIST | 0x8898001E | The specified product ID did not exist.

Additional information may be available using the global Err object, which can 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

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 record set was read, the method will fail.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object

IProduct::GetProductProperties


IProduct::SetVariantProperties

Use this method to set the properties for a variant of this product.

Definition

HRESULT IProduct::SetVariantProperties(
_Recordset* pRSNewState,
VARIANT fForceUpdate
);

Parameters

pRSNewState

[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.

fForceUpdate

[in, optional] A VARIANT that determines whether to force an update of the product variant properties.

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 either standard or custom COM HRESULT 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_SUPPORT_VARIANTS | 0x88980032 | Catalog does not support variants.
E_CAT_INVALIDVALUE_FOR_PROPERTY 0x88980038 An invalid value was specified for one of the product properties. This error was returned if:
  • One of the properties did not satisfy the Min/Max condition.

  • The properties of string or enumeration data type exceeded the maximum length.

  • The value of the enumeration property was not one of the legal values defined.
E_CAT_PRODUCT_CHANGED | 0x88980027 | This product's properties were changed since they were last read. This error is returned only if the fForceUpdate parameter is set to False.
E_CAT_VARIANT_DOESNT_EXIST | 0x8898001F | This product variant has been removed from the catalog.

Additional information may be available using the global Err object, which can 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object

IProduct::GetVariantProperties


IProduct::get_Variants

The Variants property is a read-only recordset that describes all of the variants of this product.

Definition

HRESULT IProduct::get_Variants(
VARIANT strPropertyToSortOn,
_Recordset** Variants
);

Parameters

strPropertyToSortOn

[in, optional] A VARIANT that contains the property on which the returned Recordset object is to be sorted.

Variants

[out, retval] A pointer to a _Recordset object used to return the variants.

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

The Variants parameter contains valid data only if the property was accessed successfully.

If this product has no variants, the returned recordset will be empty, and its EOF property will be set to VARIANT_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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Product Object


ProductCatalog Object

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
COM Interface Name: | IProductCatalog
Interface ID Constant: | IID_IProductCatalog
Header File: | Catalog.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Catalog Type Library
DLL Name: | Catalog.dll
Threading Model: | Both

In C++, use the IProductCatalog 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.

The properties of the ProductCatalog object are shown in the following table.

Property | Type | Description
BaseCatalogName | BSTR | Contains the name of a base catalog for a custom catalog. This property is read-only.
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.
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.

The methods of the ProductCatalog object are shown in the following table.

Method | Description
AddSpecificationSearchClause | Adds a search constraint to the search context when performing a specification search of this 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 or product family 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.
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.
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.
RegenerateFreeTextSearchIndex | Updates the free text search index for this catalog.
RemoveSpecificationSearchClause | Removes the last search constraint from the specified search context.
SetCatalogAttributes | Sets attributes for this catalog.
SetCategoryCustomPrice | Defines a custom price for the specified category.
SetCustomCatalogAttributes | Sets attributes for the specified custom catalog.

Remarks

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

Note

  • There is limit on the number of ProductCatalogs objects upon which you can search. Above 256 ProductCatalog objects, full-text search will break. This is a limitation of SQL Server 2000.


IProductCatalog::AddSpecificationSearchClause

Use this method to add constraints to a specification search of this catalog.

Definition

HRESULT IProductCatalog::AddSpecificationSearchClause(
BSTR strClause,
VARIANT* pstrSearchHandle
);

Parameters

strClause

[in] A BSTR that contains the clause to be added to the specified specification search.

pstrSearchHandle

[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.

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

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.

See Also

ProductCatalog Object

IProductCatalog::BeginSpecificationSearch

IProductCatalog::GetSpecificationSearchClauses

IProductCatalog::PerformSpecificationSearch


IProductCatalog::get_BaseCatalogName

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

HRESULT IProductCatalog::get_BaseCatalogName(
BSTR* BaseCatalogName
);

Parameters

BaseCatalogName

[out, retval] A BSTR used to return the base catalog name.

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

The BaseCatalogName 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

ProductCatalog Object


IProductCatalog::BeginSpecificationSearch

Use this method to initialize a specification search of a catalog.

Definition

HRESULT IProductCatalog::BeginSpecificationSearch(
BSTR strCategoryName,
VARIANT* pRSInitialPropValuesList,
VARIANT* plTotalRecordsAvailable,
BSTR* pstrSearchHandle
);

Parameters

strCategoryName

[in] A BSTR that contains the name of the category in which to search.

pRSInitialPropValuesList

[out, optional] A pointer to a VARIANT used to return the recordset of initial property values.

plTotalRecordsAvailable

[out, optional] A pointer to a VARIANT used to return the total records available.

pstrSearchHandle

[out, retval] A BSTR used to return the state of the specification search.

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 either standard or custom COM HRESULT 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_CATEGORY_DOESNT_EXIST | 0x88980041 | The category you specified did not exist in the catalog.
E_CAT_CATEGORY_NOT_SEARCHABLE | 0x88980034 | The specified category was not specification searchable.

Additional information may be available using the global Err object, which can 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

The pRSInitialPropValuesList and pstrSearchHandle parameters contain valid data only if the property 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 categories 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.

See Also

ProductCatalog Object

IProductCatalog::AddSpecificationSearchClause

IProductCatalog::GetSpecificationSearchClauses

IProductCatalog::PerformSpecificationSearch


IProductCatalog::get_CatalogName

The CatalogName property is a read-only string that contains the name of this catalog.

Definition

HRESULT IProductCatalog::get_CatalogName(
BSTR* CatalogName
);

Parameters

CatalogName

[out, retval] A BSTR used to return the catalog name.

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

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

ProductCatalog Object


IProductCatalog::CreateCategory

Use this method to create a new category.

Definition

HRESULT IProductCatalog::CreateCategory(
BSTR strDefinitioName,
BSTR strCategoryName,
VARIANT strParentCategoryName,
VARIANT fIsSpecificationSearchable,
ICategory** ppCategory
);

Parameters

strDefinitioName

[in] A BSTR that contains the name of the category definition on which the category is based.

strCategoryName

[in] A BSTR that contains the name of the category to be created.

strParentCategoryName

[in, optional] A VARIANT that contains the name of the category that will be a parent to this new category, if any.

IsSpecificationSearchable

[in, optional] A VARIANT that determines whether or not this category is to be specification searchable.

ppCategory

[out, retval] A pointer to an ICategory object used to return the newly created category.

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 either standard or custom COM HRESULT 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_CATEGORY_DOESNT_EXIST | 0x8898001C | The specified parent category did not exist.
E_CAT_CATEGORY_EXISTS | 0x8898001D | The specified name for the new category was already in use. Category names must be globally unique across the entire system.
E_CAT_DEFINITION_DOESNT_EXIST | 0x8898000B | The specified definition did not exist.
E_CAT_INVALID_CATEG_LENGTH | 0x88980047 | The category name exceeded 128 characters.
E_CAT_PRODUCT_DEFN_FOR_CATEGORY | 0x8898004B | The definition specified was not a category definition but a product definition.

Additional information may be available using the global Err object, which can 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

The ppCategory 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

ProductCatalog Object

IProductCatalog::GetCategory

IProductCatalog::DeleteCategory


IProductCatalog::CreateCustomCatalog

Use this method to create a new template for a custom catalog.

Definition

HRESULT IProductCatalog::CreateCustomCatalog(
BSTR strCCName,
_Recordset** ppRSCustomCat
);

Parameters

strCCName

[in] A BSTR that contains the name of the custom catalog to be created.

ppRSCustomCat

[out, retval] A Recordset used to return the properties of the newly created custom catalog.

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 either standard or custom COM HRESULT 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_EXISTS | 0x88980001 | There was already a base catalog with the specified name. Catalog names and custom catalog names must be unique throughout the Product Catalog System.
E_CAT_CUSTOMCAT_EXISTS | 0x88980022 | There was already a custom catalog with the specified name.

Additional information may be available using the global Err object, which can 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

The ppRSCustomCat parameter contains valid data only if the property was accessed successfully.

The following table shows the fields that the returned single-row recordset contains.

Field | Data Type | Description
CustomCatalogName | String 256 characters | The name of the custom catalog.
CatalogName | String 256 characters | The name of the base catalog.
CustomCatalogID | Integer | The field name that uniquely identifies custom catalogs.
TimeStamp | Timestamp | None.

The returned recordset is disconnected and updateable.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ProductCatalog Object

IProductCatalog::DeleteCustomCatalog

IProductCatalog::GenerateCustomCatalog

IProductCatalog::SetCategoryCustomPrice


IProductCatalog::CreateProduct

Use this method to create a new product within the catalog according to specified parameters.

Definition

HRESULT IProductCatalog::CreateProduct(
BSTR strDefinitionName,
VARIANT varProductID,
CURRENCY cyListPrice,
VARIANT strParentCategoryName,
IProduct** ppProduct
);

Parameters

strDefinitionName

[in] A BSTR that contains the name of the product definition for the product.

varProductID

[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.

cyListPrice

[in] A CURRENCY object that contains the list price of the product to be created.

strParentCategoryName

[in, optional] A VARIANT that contains the name of the category to be designated as the parent category of the product to be created.

ppProduct

[out, retval] A pointer to a Product object used to return the properties of the newly created product.

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 either standard or custom COM HRESULT 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_CATEGORY_DEFN_FOR_PRODUCT | 0x8898004A | The specified definition was a category definition not a product definition
E_CAT_CATEGORY_DOESNT_EXIST | 0x8898001C | The specified category did not exist.
E_CAT_DEFINITION_DOESNT_EXIST | 0x8898000B | The specified definition did not exist.
E_CAT_PRODUCT_EXISTS | 0x8898001B | The specified product ID was already in use. The product ID must be unique throughout the catalog.
E_CAT_INVALID_PRODUCTID | 0x8898005B | The length of the ProductID exceeded 256 characters.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | 0x8898004E | An invalid value was specified for the ProductID

Additional information may be available using the global Err object, which can 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

The ppProduct parameter contains valid data only if the property 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.

See Also

ProductCatalog Object

IProductCatalog::DeleteProduct

IProductCatalog::GetProduct


IProductCatalog::DeleteCategory

Use this method to delete a category from the Product Catalog System.

Definition

HRESULT IProductCatalog::DeleteCategory(
BSTR strCategoryName
);

Parameters

strCategoryName

[in] A BSTR that contains the name of the category to be deleted.

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 either standard or custom COM HRESULT 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_CATEGORY_DOESNT_EXIST | 0x8898001C | The specified category did not exist.

Additional information may be available using the global Err object, which can 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

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.

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

See Also

ProductCatalog Object

IProductCatalog::get_RootCategories

IProductCatalog::CreateCategory

IProductCatalog::GetCategory


IProductCatalog::DeleteCustomCatalog

Use this method to delete a custom catalog from the Product Catalog System.

Definition

HRESULT IProductCatalog::DeleteCustomCatalog(
BSTR strCCName
);

Parameters

strCCName

[in] A BSTR that contains the name of the custom catalog to be deleted.

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

All data relating to the custom catalog will be deleted. If the custom catalog was generated, then the generated catalog will also be deleted.

See Also

ProductCatalog Object

IProductCatalog::CreateCustomCatalog

IProductCatalog::GenerateCustomCatalog


IProductCatalog::DeleteProduct

Use this method to delete a product from the Product Catalog System.

Definition

HRESULT IProductCatalog::DeleteProduct(
VARIANT varProductID
);

Parameters

varProductID

[in] A VARIANT that contains the unique identifier of the product to be deleted.

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 either standard or custom COM HRESULT 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_CATALOG_DOESNT_EXIST | 0x88980002 | The catalog did not exist.
E_CAT_PRODUCT_DOESNT_EXIST | 0x88980010 | The specified product did not exist.

Additional information may be available using the global Err object, which can 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

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.

See Also

ProductCatalog Object

IProductCatalog::CreateProduct

IProductCatalog::GetProduct


IProductCatalog::GenerateCustomCatalog

Use this method to populate a custom catalog with data or to update a custom catalog to reflect the latest version of the base catalog. A copy of the base catalog is made and custom prices and rules are applied to generate the custom catalog.

Definition

HRESULT IProductCatalog::GenerateCustomCatalog(
BSTR strCustomCatalogName
);

Parameters

strCustomCatalogName

[in] A BSTR that contains the custom catalog name.

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 either standard or custom COM HRESULT 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_CUSTOMCAT_DOESNT_EXIST | 0x88980024 | The specified custom catalog did not exist.

Additional information may be available using the global Err object, which can 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

Use this method to populate a custom catalog template with data. If the custom catalog already exists then the existing data will be deleted. The generated custom catalog is a copy of the base catalog at the moment when it is populated by this method. The prices of the products in the custom catalog are determined by applying the custom pricing rule that has been set with the SetCategoryCustomPrice method. After the custom catalog has been generated by this method, the custom catalog can be treated as any other catalog.

Because custom catalogs are only copies of an existing base catalog, and are not dynamically linked to the base catalog, any changes made to the base catalog will not be automatically reflected in any custom catalogs derived from it. Similarly, any changes made to a custom catalog will not automatically propagate back to the base catalog. Use this method to update the custom catalog to reflect the latest version of the base catalog.

Note

  • 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.

See Also

ProductCatalog Object

IProductCatalog::CreateCustomCatalog

IProductCatalog::DeleteCustomCatalog

IProductCatalog::SetCategoryCustomPrice


IProductCatalog::GetCatalogAttributes

Use this method to retrieve the attributes of this catalog. The returned recordset is disconnected and updateable.

Definition

HRESULT IProductCatalog::GetCatalogAttributes(
_Recordset** ppRSCatalogAttributes
);

Parameters

ppRSCatalogAttributes

[out, retval] A pointer to a Recordset used to return the attributes of this catalog.

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

Ther ppRSCatalogAttributes parameter contains valid data only if the property 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 | Boolean | A flag indicating whether this is a custom catalog. True indicates a custom catalog.
FreeTextIndexCreated | Datetime | None.
ProductTableUpdated | Datetime | None.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ProductCatalog Object

IProductCatalog::GetCustomCatalogAttributes

IProductCatalog::SetCatalogAttributes


IProductCatalog::GetCategory

Use this method to retrieve the specified category from a catalog.

Definition

HRESULT IProductCatalog::GetCategory(
BSTR strCategoryName,
ICategory** ppCategory
);

Parameters

strCategoryName

[in] A BSTR that contains the name of the category to be returned.

ppCategory

[out, retval] A pointer to an ICategory object used to return the specified category.

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 either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following standard COM error value has a particular meaning in the context of this method:

S_FALSE

The catalog specified did not exist.

Additional information may be available using the global Err object, which can 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

The ppCategory 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

ProductCatalog Object

IProductCatalog::CreateCategory

IProductCatalog::DeleteCategory


IProductCatalog::GetCategoryCustomPrice

Use this method to retrieve the custom price and custom price type for a specified custom catalog and category.

Definition

HRESULT IProductCatalog::GetCategoryCustomPrice(
BSTR strCCName,
BSTR strCategoryName,
VARIANT* peCustomPrice,
VARIANT* pfpCustomPriceAmount
);

Parameters

strCCName

[in] A BSTR that contains the name of the custom catalog.

strCategoryName

[in] A BSTR that contains the category name for which the custom price will be returned.

peCustomPrice

[out] A pointer to a VARIANT used to return the type of the custom price. Valid values are from the CatalogCustomPriceEnum enumeration, and are described in the Remarks section below.

pfpCustomPriceAmount

[out] A pointer to a VARIANT used to return the custom price adjustment.

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 either standard or custom COM HRESULT 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_CATEGORY_DOESNT_EXIST | 0x8898001C | The specified category did not exist.
E_CAT_CUSTOMCAT_DOESNT_EXIST | 0x88980024 | The specified custom catalog did not exist.

Additional information may be available using the global Err object, which can 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

The peCustomPrice and pfpCustomPriceAmount parameters contain valid data only if the property was accessed successfully.

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 is the base price multiplied by the percentage value in the pfpCustomPriceAmount parameter.
cscAddFixedAmount | 2 | The custom price is the pfpCustomPriceAmount added to the base price.
cscReplacePrice | 3 | The custom price is the pfpCustomPriceAmount.
cscInvalidCustomPrice | -1 | Reserved for future use.

If the Category has not been specified as a Custom Category then the peCustomPrice parameter and the pfpCustomPriceAmount parameter will be set to 0.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ProductCatalog Object

IProductCatalog::SetCategoryCustomPrice


IProductCatalog::GetCustomCatalogAttributes

Use this method to retrieve the attributes for a specified custom catalog.

Definition

HRESULT IProductCatalog::GetCustomCatalogAttributes(
BSTR strCCName,
_Recordset** ppRSCustomCatalog
);

Parameters

strCCName

[in] A BSTR that contains the name of the custom catalog.

ppRSCustomCatalog

[out, retval] A pointer to a Recordset used to return the custom catalog attributes.

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

The ppRSCustomCatalog parameter contains valid data only if the method competed successfully.

The following table shows the fields that the returned single-row recordset contains.

Field | Data Type | Description
CustomCatalogName | String Maximum of 128 unicode characters | The name of the custom catalog.
CatalogName | String Maximum of128 unicode characters | The name of the base catalog.
CustomCatalogID | Integer | The field name that uniquely identifies custom catalogs.
TimeStamp | Timestamp | None.

The returned recordset is disconnected and updateable. The CustomCatalogName parameter is the only field that can be modified.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ProductCatalog Object

IProductCatalog::CreateCustomCatalog

IProductCatalog::SetCustomCatalogAttributes


IProductCatalog::GetProduct

Use this method to retrieve the specified product from a catalog.

Definition

HRESULT IProductCatalog::GetProduct(
VARIANT varProductID,
IProduct** ppProduct
);

Parameters

varProductID

[in] A VARIANT that contains the unique identifier of the product.

ppProduct

[out, retval] A pointer to an IProduct object used to return the specified product.

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 either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following standard COM error value has a particular meaning in the context of this method:

S_FALSE

The catalog specified did not exist.

Additional information may be available using the global Err object, which can 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

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.

See Also

ProductCatalog Object

IProductCatalog::CreateProduct

IProductCatalog::DeleteProduct


IProductCatalog::GetProductVariant

Use this method to retrieve the properties of a specified product variant.

Definition

HRESULT IProductCatalog::GetProductVariant(
VARIANT varProductID,
VARIANT varVariantID,
_Recordset** ppRSVariant
);

Parameters

varProductID

[in] A VARIANT that contains the unique identifier of the product family.

varVariantID

[in] A VARIANT that contains the unique identifier of the product variant.

ppRSVariant

[out, retval] A pointer to hold the reference to the returned Recordset object, which will contain the properties of the variant.

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 either standard or custom COM HRESULT 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_SUPPORT_VARIANTS | 0x88980032 | This catalog does not support variants. This is determined when the catalog is created and cannot be changed.

Additional information may be available using the global Err object, which can 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

The ppRSVariant parameter contains valid data only if the property 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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ProductCatalog Object

IProductCatalog::get_IdentifyingVariantProperty


IProductCatalog::GetSpecificationSearchClauses

Use this method to retrieve the specified specification search constraints.

Definition

HRESULT IProductCatalog::GetSpecificationSearchClauses(
BSTR strSearchHandle,
_Recordset** ppRSSearchClauses
);

Parameters

strSearchHandle

[in] A BSTR that contains the specification search handle.

ppRSSearchClauses

[out, retval] A pointer to a Recordset used to return the search clauses.

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

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.

See Also

ProductCatalog Object

IProductCatalog::AddSpecificationSearchClause

IProductCatalog::RemoveSpecificationSearchClause


IProductCatalog::GuaranteedSpecificationSearch

Use this method to guarantee results when performing a specification search of a catalog.

Definition

HRESULT IProductCatalog::GuaranteedSpecificationSearch(
VARIANT* pstrSearchHandle,
VARIANT eClassTypeRequired,
VARIANT lDesiredRecords,
VARIANT* plTotalRecordsAvailable,
VARIANT* pRSNewPropValuesList,
VARIANT vrPropertiesRequired,
_Recordset** ppRSSearchResults
);

Parameters

pstrSearchHandle

[in, out]A VARIANT that contains the specification search handle.

eClassTypeRequired

[in, optional] A VARIANT that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section below.

lDesiredRecords

[in, optional] A VARIANT that contains the number of records desired.

plTotalRecordsAvailable

[out, optional] A pointer to a VARIANT used to return the total records available.

pRSNewPropValuesList

[out, optional] A Recordset used to return the new property values list.

vrPropertiesRequired

[in,optional] A VARIANT that contains the properties required in a comma delimited String.

ppRSSearchResults

[out, retval] A Recordset used to return the search results.

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 either standard or custom COM HRESULT 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
S_FALSE 0x00000001 This value is returned when the pRSNewPropValuesList parameter is specified and:
  • There are no properties in the catalog that are marked for specification search.

  • There are no products under the category selected for specification search.
E_CAT_CATEGORY_NOT_EXISTS_NOT_SEARCHABLE | 0x88980049 | The category you specified did not exist or was not specification searchable.

Additional information may be available using the global Err object, which can 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

The pstrSearchHandle, plTotalRecordsAvailable, pRSNewPropValuesList, and ppRSSearchResults parameters contain valid data only if the property 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.

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 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.

See Also

ProductCatalog Object

IProductCatalog::AddSpecificationSearchClause

IProductCatalog::PerformSpecificationSearch

IProductCatalog::RemoveSpecificationSearchClause


IProductCatalog::get_IdentifyingProductProperty

The IdentifyingProductProperty property is a read-only String that contains the name of the unique identifier field for the products in this catalog.

Definition

HRESULT IProductCatalog::get_IdentifyingProductProperty(
BSTR* IdentifyingProductProperty
);

Parameters

IdentifyingProductProperty

[out, retval] A BSTR used to return the name of the identifying product property.

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

The IdentifyingProductProperty parameter contains valid data only if the property was accessed successfully.

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

ProductCatalog Object

IProductCatalog::get_IdentifyingVariantProperty


IProductCatalog::get_IdentifyingVariantProperty

The IdentifyingProductVariantProperty property is a read-only String that contains the name of the unique identifier field for product variants in this catalog.

Definition

HRESULT IProductCatalog::get_IdentifyingVariantProperty(
BSTR* IdentifyingVariantProperty
);

Parameters

IdentifyingVariantProperty

[out, retval] A BSTR used to return the name of the identifying variant property.

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

The IdentifyingVariantProperty parameter contains valid data only if the property was accessed successfully.

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

ProductCatalog Object

IProductCatalog::get_IdentifyingProductProperty


IProductCatalog::PerformSpecificationSearch

Use this method to perform a specification search of a catalog.

Definition

HRESULT IProductCatalog::PerformSpecificationSearch(
BSTR strSearchHandle,
VARIANT eClassTypeRequired,
VARIANT lDesiredRecords,
VARIANT* plTotalRecordsAvailable,
VARIANT* pRSNewPropValuesList,
VARIANT vrPropertiesRequired,
_Recordset** ppRSSearchResults
);

Parameters

strSearchHandle

[in] A BSTR that contains the name of the search to perform.

eClassTypeRequired

[in, optional] A VARIANT that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section below.

lDesiredRecords

[in, optional] A VARIANT that contains the records desired.

plTotalRecordsAvailable

[out, optional] A pointer to a VARIANT used to return the total number of records available.

pRSNewPropValuesList

[out, optional] A pointer to a VARIANT used to return the Recordset of the new property values list.

vrPropertiesRequired

[in,optional] A VARIANT that contains the properties required in a comma-delimited String.

ppRSSearchResults

[out, retval] A pointer to hold the reference to the returned Recordset object, which will contain the search results.

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 either standard or custom COM HRESULT 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
S_FALSE 0x00000001 This value is returned when the pRSNewPropValuesList parameter is supplied and:
  • There are no properties in the catalog that are marked for specification search.

  • There are no products under the category selected for specification search.
E_CAT_CATEGORY_NOT_EXISTS_NOT_SEARCHABLE | 0x88980049 | The category you specified did not exist or was not specification searchable.

Additional information may be available using the global Err object, which can 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

The plTotalRecordsAvailable, pRSNewPropValuesList, and ppRSSearchResults parameters contain valid data only if the property was accessed successfully.

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 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.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ProductCatalog Object

IProductCatalog::AddSpecificationSearchClause

IProductCatalog::BeginSpecificationSearch

IProductCatalog::GuaranteedSpecificationSearch

IProductCatalog::RemoveSpecificationSearchClause


IProductCatalog::RegenerateFreeTextSearchIndex

Use this method to regenerate the free text search index of a catalog.

Definition

HRESULT IProductCatalog::RegenerateFreeTextSearchIndex(
VARIANT_BOOL fGenerateIncremental
);

Parameters

fGenerateIncremental

[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.

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 either standard or custom COM HRESULT 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_CANNOT_REFRESH | 0x8898004C | A catalog import operation is currently in progress. The refresh operation cannot be performed now.

Additional information may be available using the global Err object, which can 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ProductCatalog Object


IProductCatalog::RemoveSpecificationSearchClause

Use this method to remove the last constraint from a specified specification search.

Definition

HRESULT IProductCatalog::RemoveSpecificationSearchClause(
VARIANT* pstrSearchHandle,
BSTR* pstrPoppedClause
);

Parameters

pstrSearchHandle

[in, out] A VARIANT that contains the specification search handle from which a constraint is to be removed.

pstrPoppedClause

[out, retval] A pointer to a BSTR used to return the removed clause.

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

The pstrSearchHandle and pstrPoppedClause parameters contain valid data only if the property 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.

See Also

ProductCatalog Object


IProductCatalog::get_RootCategories

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

HRESULT IProductCatalog::get_RootCategories(
VARIANT vrPropertiesRequired,
_Recordset** RootCategories
);

Parameters

vrPropertiesRequired

[in,optional] A VARIANT, subtype String, that contains a comma-separated list of the required property names.

RootCategories

[out, retval] A Recordset used to return the root categories.

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

The RootCategories parameter contains valid data only if the property was accessed successfully.

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]").

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ProductCatalog Object

IProductCatalog::get_RootProducts


IProductCatalog::get_RootProducts

The RootProducts property is a read-only recordset that contains the products that exist at the root level of a catalog.

Definition

HRESULT IProductCatalog::get_RootProducts(
_Recordset** RootProducts
);

Parameters

RootProducts

[out, retval] A Recordset used to return the root products.

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

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.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ProductCatalog Object

IProductCatalog::get_RootCategories


IProductCatalog::get_SearchableCategories

The SearchableCategories property is a read-only recordset that contains the names of all searchable categories.

Definition

HRESULT IProductCatalog::get_SearchableCategories(
_Recordset** SearchableCategories
);

Parameters

SearchableCategories

[out, retval] A Recordset used to return the names of the searchable categories.

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

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

ProductCatalog Object

IProductCatalog::CreateCategory

IProductCatalog::GetCategory


IProductCatalog::SetCatalogAttributes

Use this method to set the attributes of a catalog.

Definition

HRESULT IProductCatalog::SetCatalogAttributes(
_Recordset* pRSCatalogAttributes,
VARIANT fForceUpdate
);

Parameters

pRSCatalogAttributes

[in] A Recordset containing the new attributes.

fForceUpdate

[in, optional] A VARIANT that causes a forced update of the catalog attributes.

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 either standard or custom COM HRESULT 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 | 0x88980002 | The catalog did not exist.
E_CAT_CATALOG_CHANGED | 0x88980012 | The catalog has been updated since it was last read.

Additional information may be available using the global Err object, which can 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ProductCatalog Object

IProductCatalog::GetCatalogAttributes


IProductCatalog::SetCategoryCustomPrice

Use this method to set a custom price rule for a category.

Definition

HRESULT IProductCatalog::SetCategoryCustomPrice(
BSTR strCCName,
BSTR strCategoryName,
CatalogCustomPriceEnum eCustomPrice,
DOUBLE fpCustomPriceAmount
);

Parameters

strCCName

[in] A BSTR that contains the name of the custom catalog template for which this rule will apply.

strCategoryName

[in] A BSTR that contains the name of the category for which a custom price will be set.

eCustomPrice

[in] The type of price adjustment. Valid values are from the CatalogCustomPriceEnum enumeration, and are described in the Remarks section below.

fpCustomPriceAmount

[in] A DOUBLE that contains the custom price adjustment amount.

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 either standard or custom COM HRESULT 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_CATEGORY_DOESNT_EXIST | 0x8898001C | The category did not exist.
E_CAT_CUSTOMCAT_DOESNT_EXIST | 0x88980024 | The specified custom catalog did not exist.

Additional information may be available using the global Err object, which can 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

The SetCategoryCustomPrice method defines a custom pricing rule for a category, and all the immediate child products of that category, in the specified custom catalog. The SetCategoryCustomPrice method does not affect child categories.

If a product exists within multiple categories, each having different custom prices, the custom price will not be applied to that product for either category.

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 is the base price multiplied by the percentage value in the pfpCustomPriceAmount parameter.
cscAddFixedAmount | 2 | The custom price is the pfpCustomPriceAmount added to the base price.
cscReplacePrice | 3 | The custom price is the 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.

See Also

ProductCatalog Object

IProductCatalog::GetCategoryCustomPrice


IProductCatalog::SetCustomCatalogAttributes

Use this method to set the attributes of a custom catalog.

Definition

HRESULT IProductCatalog::SetCustomCatalogAttributes(
_Recordset* pRSNewState,
VARIANT fForceUpdate
);

Parameters

pRSNewState

[in] A pointer to a Recordset object containing the new attributes.

fForceUpdate

[in, optional] A VARIANT that causes a forced update of the custom catalog attributes.

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 either standard or custom COM HRESULT 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_CANNOT_ALTER_CC | 0x88980060 | The specified changes could not be made.
E_CAT_CUSTOMCATALOG_CHANGED | 0x88980035 | The custom catalog has been altered since it was last read.

Additional information may be available using the global Err object, which can 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

Use the SetCustomCatalogAttributes method to modify the CustomCatalogName attribute of a custom catalog. No other attributes can be modified. The pRSNewState parameter specifies a Recordset object that describes the new attribute values for this custom catalog. The method will fail if the custom catalog has already been published.

Use the Recordset object returned by the GetCustomCatalogAttributes method so that its timestamp can be compared for quality assurance.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ProductCatalog Object

IProductCatalog::GetCustomCatalogAttributes


CatalogProduct Recordset

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
ParentOID | 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.

See Also

IProductCatalog::GuaranteedSpecificationSearch

IProductCatalog::PerformSpecificationSearch

IProductCatalog::get_RootCategories

IProductCatalog::get_RootProducts


ProfileObject Object

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
COM Interface Name: | IProfileObject
Interface ID Constant: | IID_IProfileObject
Header File: | mscsups.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Profile Service Type Library
DLL Name: | mscsups.dll
Threading Model: | Both

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.

The properties of the ProfileObject object are shown in the following table.

Property | Type | Description
Fields | Fields | Stores the profile property collection. This property is read-only.

The methods of the ProfileObject object are shown in the following table.

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.

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

Profile Objects

Profile Schema

Profile XML Structures

ProfileService Object


IProfileObject::get_Fields

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

HRESULT IProfileObject::get_Fields(
Fields** ppFields
);

Parameters

ppFields

[out, retval] The address of a pointer to a Fields collection used to return the profile object properties.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the following Error Values section for more details.

Error Values

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.

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

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.

The ppFields parameter contains valid data only if the property is accessed successfully.

See Also

ProfileObject Object

ProfileService Object


IProfileObject::GetProfileXML

Use this method to retrieve the XML schema and data of the profile object.

Definition

HRESULT IProfileObject::GetProfileXML (
XMLRetrieveEnum eRetrieveEnum,
VARIANT_BOOL bAttributeCentric,
BSTR* pbstrXML
);

Parameters

bAttributeCentric

[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.

pbstrXML

[out, retval] A pointer to a BSTR that contains the resulting XML fragment.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

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.

See Also

ProfileObject Object

IProfileObject::get_Fields

Profile XML Structures


IProfileObject::Update

Use this method to save ProfileObject object data to the underlying data store.

Definition

HRESULT IProfileObject::Update(
);

Parameters

None.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

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

ProfileObject Object

IProfileObject::get_Fields


ProfileService Object

Use this object to create, delete, and retrieve ProfileObject objects.

ProgID: | Commerce.ProfileService (Externally creatable)
COM Class Name: | ProfileService
COM Interface Name: | IProfileService
Interface ID Constant: | IID_IProfileService
Header File: | mscsups.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Profile Service Type Library
DLL Name: | mscsups.dll
Threading Model: | Both

In C++, use the ProfileService 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.

The properties of the ProfileService object are shown in the following table.

Property | Type | Description
Errors | Errors | Stores the collection of errors encountered in the last Profiles resource operation. This property is read-only.

The methods of the ProfileService object are shown in the following table.

Method | Description
BindAs | Sets the user credentials for accessing the underlying Profiles store.
CreateProfile | Creates the specified ProfileObject object.
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.

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 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.

Call the Initialize method before you use any other ProfileService method or property.

See Also

Profile Objects

Profile Schema

Profile XML Structures

ProfileObject Object


IProfileService::BindAs

Use this method to set the credentials used to access ProfileObject objects in the underlying Profiles store.

Definition

HRESULT IProfileService::BindAs (
BSTR sUserName,
BSTR sPassword,
);

Parameters

sUserName

[in] A BSTR that contains the user name for accessing ProfileObject objects.

sPassword

[in] A BSTR that contains the password for accessing ProfileObject objects.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

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

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.

See Also

ProfileService Object

IProfileService::UnBind


IProfileService::CreateProfile

Use this method to create a ProfileObject object.

Definition

HRESULT IProfileService::CreateProfile(
VARIANT sValue,
BSTR bstrType,
IProfileObject** ppProfileObject
);

Parameters

sValue

[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.

bstrType

[in] A BSTR that contains the schema type for the new ProfileObject object.

ppProfileObject

[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

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

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.

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.

The ppProfileObject parameter contains valid data only if the method completes successfully.

See Also

ProfileService Object

IProfileService::DeleteProfile

IProfileService::GetProfile

IProfileService::GetProfileByKey

IProfileService::Initialize

ProfileObject Object

IProfileObject::get_Fields


IProfileService::DeleteProfile

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

HRESULT IProfileService::DeleteProfile(
VARIANT sValue,
BSTR bstrType
);

Parameters

sValue

[in] A VARIANT that contains the primary key value.

bstrType

[in] A BSTR that contains the profile schema type.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

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 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.

See Also

ProfileService Object

IProfileService::CreateProfile

IProfileService::DeleteProfileByKey

ExpressionEval Object

ExpressionStore Object


IProfileService::DeleteProfileByKey

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

HRESULT IProfileService::DeleteProfileByKey(
BSTR bstrKeyMemberName,
VARIANT sValue,
BSTR bstrType
);

Parameters

bstrKeyMemberName

[in] A BSTR that contains the key member name.

sValue

[in] A VARIANT that contains the key value.

bstrType

[in] A BSTR that contains the profile schema type.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

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

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.

See Also

ProfileService Object

IProfileService::CreateProfile

IProfileService::DeleteProfile

ExpressionEval Object

ExpressionStore Object


IProfileService::get_Errors

The Errors property is a read-only ADO Errors object that stores the collection of errors encountered in the last Profiles resource operation.

Definition

HRESULT IProfileObject::get_Errors(
Errors** ppErrors
);

Parameters

ppErrors

[out, retval] The address of a pointer to an Errors object.

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) it is passed, for example, 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

ProfileObject Object

ProfileService Object


IProfileService::GetProfile

Use this method to retrieve the ProfileObject object corresponding to the specified primary key value and schema type.

Definition

HRESULT IProfileService::GetProfile(
VARIANT sValue,
BSTR bstrType,
VARIANT_BOOL bReturnError,
IProfileObject** ppProfileObject
);

Parameters

sValue

[in] A VARIANT that contains the primary key value.

bstrType

[in] A BSTR that contains the profile schema type.

bReturnError

[in, optional, defaultvalue (-1)] An optional VARIANT_BOOL.

ppProfileObject

[out, retval] The address of a pointer to the IProfileObject interface of the returned ProfileObject object.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

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 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.

The ppProfileObject parameter contains valid data only if the method completes successfully.

See Also

ProfileService Object

IProfileService::GetProfileByKey

IProfileService::Initialize

ProfileObject Object

IProfileObject::get_Fields


IProfileService::GetProfileByKey

Use this method to retrieve a ProfileObject object that corresponds to a specified key member name/value pair and schema type.

Definition

HRESULT IProfileService::GetProfileByKey(
BSTR bstrKeyMemberName,
VARIANT sValue,
BSTR bstrType,
VARIANT_BOOL bReturnError,
IProfileObject** ppProfileObject
);

Parameters

bstrKeyMemberName

[in] A BSTR that contains the key member name.

sValue

[in] A VARIANT that contains the key value.

bstrType

[in] A BSTR that contains the schema type.

bReturnError

[in, optional, defaultvalue (-1)] An optional VARIANT_BOOL.

ppProfileObject

[out, retval] The address of a pointer to the IProfileObject interface of the returned ProfileObject object.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

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 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.

The ppProfileObject parameter contains valid data only if the method completes successfully.

See Also

ProfileService Object

IProfileService::GetProfile

IProfileService::Initialize

ProfileObject Object

IProfileObject::get_Fields


IProfileService::GetProfileDefXML

Use this method to retrieve the XML definition of the named profile schema type.

Definition

HRESULT IProfileService::GetProfileDefXML(
BSTR bstrProfileName,
VARIANT_BOOL bNamesOnly,
BSTR* pbstrXML
);

Parameters

bstrProfileName

[in] A BSTR that contains the name of the profile schema type.

bNamesOnly

[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.

pbstrXML

[out, retval] A pointer to a BSTR that will contain the XML description.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

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 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.

The pbstrXML parameter contains valid data only if the method completes successfully.

See Also

ProfileService Object

Profile XML Structures


IProfileService::Initialize

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

HRESULT IProfileService::Initialize(
BSTR sConfigStore,
BSTR sCatalog
);

Parameters

sConfigStore

[in] A BSTR that contains the connection string to the Profiles store.

sCatalog

[in, optional] A BSTR that identifies the catalog. If this is specified it must be "Profile Definitions".

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

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

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 [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. Once 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, 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".

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

ProfileService Object


IProfileService::Unbind

Use this method to clear the credentials that are used to access ProfileObject objects in the underlying Profiles store.

Definition

HRESULT IProfileService::Unbind (
);

Parameters

None.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

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

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

ProfileService Object

IProfileService::BindAs


ReportRenderer Object

Use this object to render (display) or export a static report synchronously.

ProgID: | Commerce.ReportRenderer (Externally creatable)
COM Class Name: | ReportRenderer
COM Interface Name: | _ReportRenderer
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 Report Renderer Type Library
DLL Name: | ReportRenderer.dll
Threading Model: | Both

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.

The methods of the ReportRenderer object are shown in the following table.

Method | Description
Init | Initializes the object.

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 or exported from the Reports module.

Exporting a static report writes a result table to a target database. The ListManager object imports from this table using the CreateFromDWCalc method of the ListManager object.

The ReportRender object runs synchronously. Use the AsyncRpt object to run static reports asynchronously.

The ReportRenderer object is a Microsoft Visual Basic component.

See Also

Analysis/Reporting Schema

Analysis/Reporting XML Structures

Creating Custom Reports

AsyncRpt Object

ListManager Object

Running Reports


_ReportRenderer::Init

Use this method to initialize the ReportRenderer object and to render or export a static report synchronously.

Definition

HRESULT IReportRenderer::Init(
BSTR* sParamString,
VARIANT_BOOL* pvResult
);

Parameters

sParamString

[in, out] A pointer to a BSTR used to supply parameters to the ReportRenderer object.

pvResult

[out, retval] A pointer to a VARIANT_BOOL used to indicate whether the initialization was successful. True (1) indicates success.

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

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 "DRIVER={SQL Server};SERVER=Server Name;DATABASE=Database Name;UID=username;PWD=password;".

  • OLAP connection string - where the underlying OLAP data is stored. A valid connection string is of the type "DATA SOURCE=Server Name;INITIAL CATALOG=Database Name;".

  • Destination connection string - where the table that will contain the exported report data is located. A valid connection string is of the type "SERVER=Server Name;DATABASE=Database Name;UID=username;PWD=password;".

  • 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.

The pvResult parameter contains valid data only if the method completes successfully.

See Also

ReportRenderer Object

Analysis/Reporting Schema

Creating Custom Reports


RowCollection Object

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
COM Interface Name: | IRowCollection
Interface ID Constant: | IID_IRowCollection
Header File: | cacheint.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both

In C++, use the IRowCollection interface to access to the methods and properties of a RowCollection object.

The properties of the RowCollection object are shown in the following table.

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.

The methods of the RowCollection object are shown in the following table.

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.

Remarks

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


IRowCollection::get__NewEnum

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

Get method:

HRESULT IRowCollection::get__NewEnum(
IUnknown** _NewEnum
);

Parameters

_NewEnum

[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.

Return Values

This method returns an HRESULT indicating whether or not 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

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

RowCollection Object


IRowCollection::get_Count

The Count property is a read-only Long that contains the number of rows in the collection.

Definition

Get method:

HRESULT IRowCollection::get_Count(
long* Count
);

Parameters

Count

[out,retval] A long that contains the number of rows in the RowCollection object.

Return Values

This method returns an HRESULT indicating whether or not 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

RowCollection Object


IRowCollection::get_EOF

The EOF property is a read-only Boolean that returns True when the end of the collection has been reached.

Definition

Get method:

HRESULT IRowCollection::get_EOF(
VARIANT_BOOL* EOF
);

Parameters

EOF

[out,retval] A pointer to a VARIANT_BOOL used to return an indication of whether row iteration is complete.

Return Values

This method returns an HRESULT indicating whether or not 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

RowCollection Object


IRowCollection::get_Fields

The Fields property is a read-only Fields collection object that contains the Field objects for the current row.

Definition

Get method:

HRESULT IRowCollection::get_Fields(
Fields** Fields
);

Parameters

Fields

[out,retval]A pointer to an ActiveX Data Objects (ADO) Fields object used to return the fields of the current row.

Return Values

This method returns an HRESULT indicating whether or not 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

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

RowCollection Object


IRowCollection::MoveFirst

Use this method to set the current row to be the first row in a RowCollection object.

Definition

HRESULT IRowCollection::MoveFirst(
);

Parameters

None.

Return Values

This method returns an HRESULT indicating whether or not 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

RowCollection Object


IRowCollection::MoveNext

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

HRESULT IRowCollection::MoveNext(
);

Parameters

None.

Return Values

This method returns an HRESULT indicating whether or not 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

RowCollection Object


IRowCollection::get_RowNum

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

Get method:

HRESULT IRowCollection::get_RowNum(
long* RowNum
);

Parameters

RowNum

[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).

Return Values

This method returns an HRESULT indicating whether or not 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

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

RowCollection Object


Shipping Object

Use this object to create shipping cost preview information.

ProgID: | Commerce.Shipping (Externally creatable)
COM Class Name: | Shipping
COM Interface Name: | _Shipping
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 Shipping Components Type Library
DLL Name: | shipmgr.dll
Threading Model: | Apartment

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

The single method of the Shipping object is shown in the following table.

Method | Description
PreviewShipments | Divides an order into shipments and produces shipping cost previews for each shipment using each method.


_Shipping::PreviewShipments

Use this method to create shipment preview information.

Definition

HRESULT _Shipping::PreviewShipments(
VARIANT* orderform,
VARIANT* context,
VARIANT* ShipmentDistinguishers,
VARIANT* ShippingPreview
);

Parameters

orderform

[in] A pointer to a VARIANT containing the OrderForm dictionary for which to calculate shipping cost previews.

context

[in] A pointer to a VARIANT containing the Context dictionary to use to run the shipping components.

ShipmentDistinguishers

[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.

ShippingPreview

[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

This method returns an HRESULT indicating whether or not 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

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.

See Also

Previewing Shipping Costs

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager Object

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.

ProgID: | Commerce.ShippingMethodManager (Externally creatable)
COM Class Name: | ShippingMethodManager
COM Interface Name: | _ShippingMethodManager
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 Shipping Components Type Library
DLL Name: | shipmgr.dll
Threading Model: | Apartment

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

The methods of the ShippingMethodManager object are shown in the following table.

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 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 Commerce Server 2000 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 the Multiple Shipment Architecture Overview.


_ShippingMethodManager::CreateMethodInstance

Use this method to create a new shipping method.

Definition

HRESULT __ShippingMethodManager::CreateMethodInstance(
VARIANT* bOnDisk,
VARIANT* sMethodId
);

Parameters

bOnDisk

[in] A VARIANT containing a Boolean indicating whether or not to create the shipping method on disk. This parameter is usually set to True

sMethodId

[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

This method returns an HRESULT indicating whether or not 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

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.

See Also

Splitter

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::DeleteMethodInstance

Use this method to delete the current shipping method instance.

Definition

HRESULT _ShippingMethodManager::DeleteMethodInstance(void);

Parameters

None.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

Splitter

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::GetComponentConfig

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

HRESULT _ShippingMethodManager::GetComponentConfig(
VARIANT* dConfig
);

Parameters

dConfig

[out, retval] A pointer to a VARIANT containing the Configuration dictionary.

Return Values

This method returns an HRESULT indicating whether or not 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

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 dConfig 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

Splitter

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::GetInstalledMethodList

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

HRESULT _ShippingMethodManager::GetInstalledMethodList(
VARIANT* Filter,
VARIANT* OrderBy,
VARIANT* columns,
VARIANT* rsReturn
);

Parameters

Filter

[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 GetInstalledMethodList to only return enabled shipping methods.

OrderBy

[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", which will cause the results to be sorted by shipping_method_name.

columns

[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.

rsReturn

[out, retval] A pointer to a VARIANT containing an ADO Recordset object with the wanted values.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

Splitter

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::GetMethodInfo

Use this method to retrieve information about the database attributes of one or more columns in the ShippingConfig table.

Definition

HRESULT _ShippingMethodManager::GetMethodInfo(
VARIANT* columns,
VARIANT* rsResult
);

Parameters

columns

[in] A VARIANT containing a SAFEARRAY of BSTR strings containing names of the columns. Specify an empty array to return all columns.

rsResult

[out, retval] A pointer to a VARIANT containing an ADO Recordset object that contains the information about the requested database columns.

Return Values

This method returns an HRESULT indicating whether or not 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

The rsResult parameter points to valid data only if the method completes successfully.

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Splitter

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::Initialize

Use this method to initialize a ShippingMethodManager object and connect it to a database.

Definition

HRESULT _ShippingMethodManager::Initialize(
VARIANT* connection_string
);

Parameters

connection_string

[in] A pointer to a VARIANT containing a BSTR with the connection string.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Splitter

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::LoadMethodInstance

Use this method to load an instance of a given shipping method.

Definition

HRESULT _ShippingMethodManager::LoadMethodInstance(
VARIANT* methodid
);

Parameters

methodid

[in] A pointer to a VARIANT containing a BSTR that is the method ID of the shipping method.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

Splitter

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::SaveMethodConfig

Use this method to save the current shipping method information set with the SetMethodConfig method.

Definition

HRESULT __ShippingMethodManager::SaveMethodConfig(void);

Parameters

None.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

See Also

Splitter

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::SetCachableComponentConfig

Use this method to set the configuration data for the pipeline component, and other component information.

Definition

HRESULT __ShippingMethodManager::SetCachableComponentConfig(
VARIANT* progid,
VARIANT* configdict,
VARIANT* action,
VARIANT* actionfriendlyname
);

Parameters

progid

[in] A pointer to a VARIANT containing a BSTR that is the ProgID of the pipeline component.

configdict

[in] A VARIANT containing a Dictionary object holding the configuration information for the component.

action

[in] A VARIANT containing a BSTR with the name of the ASP edit page for the shipping component.

actionfriendlyname

[in] A VARIANT containing a BSTR with a friendly name for the ASP edit page for the shipping component.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Splitter

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::SetMethodConfig

Use this method to set properties such as name or description, on the current shipping method.

Definition

HRESULT _ShippingMethodManager::SetMethodConfig(
VARIANT* ParametersAndValues
);

Parameters

ParametersAndValues

[in] A pointer to a VARIANT containing a SAFEARRAY that contains name and value pairs in successive elements.

Return Values

This method returns an HRESULT indicating whether or not 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

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

Splitter

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


SimpleFindResultInfo Object

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
COM Interface Name: | _SimpleFindResultInfo
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 OrderGroup Type Library
DLL Name: | requisition.dll
Threading Model: | Apartment

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.

The properties of the SimpleFindResultInfo object are shown in the following table.

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.

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

Business Process Objects

SimpleFindSearchInfo Object

OrderGroupManager Object

OrderGroup Object

OrderForm Object


_SimpleFindResultInfo::get_Columns, put_Columns

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

Get method:

HRESULT _SimpleFindResultInfo::get_Columns(
VARIANT* Columns
);

Put method:

HRESULT _SimpleFindResultInfo::put_Columns(
VARIANT* Columns
);

Parameters

Columns

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

The Columns 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.

Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

SimpleFindResultInfo Object


_SimpleFindResultInfo::get_JoinLineItemInfo, put_JoinLineItemInfo

The JoinLineItemInfo property is a read/write Boolean that indicates whether to join the OrderFormLineItems table with the results.

Definition

Get method:

HRESULT _SimpleFindResultInfo::get_JoinLineItemInfo(
VARIANT_BOOL* JoinLineItemInfo
);

Put method:

HRESULT _SimpleFindResultInfo::put_JoinLineItemInfo(
VARIANT_BOOL JoinLineItemInfo
);

Parameters

JoinLineItemInfo

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

The JoinLineItemInfo 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.

Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

SimpleFindResultInfo Object


_SimpleFindResultInfo::get_JoinOrderFormInfo, put_JoinOrderFormInfo

The JoinOrderFormInfo property is a read/write Boolean that indicates whether the OrderFormHeader table is joined in the results.

Definition

Get method:

HRESULT _SimpleFindResultInfo::get_JoinOrderFormInfo(
VARIANT_BOOL* JoinOrderFormInfo
);

Put method:

HRESULT _SimpleFindResultInfo::put_JoinOrderFormInfo(
VARIANT_BOOL JoinOrderFormInfo
);

Parameters

JoinOrderFormInfo

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

The JoinOrderFormInfo 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.

Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

SimpleFindResultInfo Object


_SimpleFindResultInfo::get_OrderGroupSortColumn, put_OrderGroupSortColumn

The OrderGroupSortColumn property is a read/write Variant that contains the column name on which to sort.

Definition

Get method:

HRESULT _SimpleFindResultInfo::get_OrderGroupSortColumn(
VARIANT* OrderGroupSortColumn
);

Put method:

HRESULT _SimpleFindResultInfo::put_OrderGroupSortColumn(
VARIANT* OrderGroupSortColumn
);

Parameters

OrderGroupSortColumn

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

The OrderGroupSortColumn 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.

Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

SimpleFindResultInfo Object


_SimpleFindResultInfo::get_PageNumber, put_PageNumber

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

Get method:

HRESULT _SimpleFindResultInfo::get_PageNumber(
long* PageNumber
);

Put method:

HRESULT _SimpleFindResultInfo::put_PageNumber(
long PageNumber
);

Parameters

PageNumber

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

SimpleFindResultInfo Object


_SimpleFindResultInfo::get_PageSize, put_PageSize

The PageSize property is a read/write Long that contains the page size. This property setting must be coordinated with the PageNumber property.

Definition

Get method:

HRESULT _SimpleFindResultInfo::get_PageSize(
long* PageSize
);

Put method:

HRESULT _SimpleFindResultInfo::put_PageSize(
long PageSize
);

Parameters

PageSize

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

SimpleFindResultInfo Object


_SimpleFindResultInfo::get_SortDirection, put_SortDirection

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

Get method:

HRESULT _SimpleFindResultInfo::get_SortDirection(
VARIANT* SortDirection
);

Put method:

HRESULT _SimpleFindResultInfo::put_SortDirection(
VARIANT* SortDirection
);

Parameters

SortDirection

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

The SortDirection 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.

Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

SimpleFindResultInfo Object


SimpleFindSearchInfo Object

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
COM Interface Name: | _SimpleFindSearchInfo
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 OrderGroup Type Library
DLL Name: | requisition.dll
Threading Model: | Apartment

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.

The properties of the SimpleFindSearchInfo object are shown in the following table.

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

Business Process Objects

SimpleFindResultInfo Object

OrderGroupManager Object

OrderGroup Object

OrderForm Object


_SimpleFindSearchInfo::get_description, put_description

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

Get method:

HRESULT _SimpleFindSearchInfo::get_description(
VARIANT* description
);

Put method:

HRESULT _SimpleFindSearchInfo::put_description(
VARIANT* description
);

Parameters

description

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

SimpleFindSearchInfo Object

OrderGroupManager::SimpleDelete

OrderGroupManager::SimpleFind


_SimpleFindSearchInfo::get_order_number, put_order_number

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

Get method:

HRESULT _SimpleFindSearchInfo::get_order_number(
VARIANT* order_number
);

Put method:

HRESULT _SimpleFindSearchInfo::put_order_number(
VARIANT* order_number
);

Parameters

order_number

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

SimpleFindSearchInfo Object

OrderGroupManager::SimpleDelete

OrderGroupManager::SimpleFind


_SimpleFindSearchInfo::get_ordergroup_id, put_ordergroup_id

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

Get method:

HRESULT _SimpleFindSearchInfo::get_ordergroup_id(
VARIANT* ordergroup_id
);

Put method:

HRESULT _SimpleFindSearchInfo::put_ordergroup_id(
VARIANT* ordergroup_id
);

Parameters

ordergroup_id

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

SimpleFindSearchInfo Object

OrderGroupManager::SimpleDelete

OrderGroupManager::SimpleFind


_SimpleFindSearchInfo::get_po_number, put_po_number

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

Get method:

HRESULT _SimpleFindSearchInfo::get_po_number(
VARIANT* po_number
);

Put method:

HRESULT _SimpleFindSearchInfo::put_po_number(
VARIANT* po_number
);

Parameters

po_number

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

SimpleFindSearchInfo Object

OrderGroupManager::SimpleDelete

OrderGroupManager::SimpleFind


_SimpleFindSearchInfo::get_product_id, put_product_id

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

Get method:

HRESULT _SimpleFindSearchInfo::get_product_id(
VARIANT* product_id
);

Put method:

HRESULT _SimpleFindSearchInfo::put_product_id(
VARIANT* product_id
);

Parameters

product_id

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

SimpleFindSearchInfo Object

OrderGroupManager::SimpleDelete

OrderGroupManager::SimpleFind


_SimpleFindSearchInfo::get_SearchDateTimeColumn, put_SearchDateTimeColumn

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

Get method:

HRESULT _SimpleFindSearchInfo::get_SearchDateTimeColumn(
VARIANT* SearchDateTimeColumn
);

Put method:

HRESULT _SimpleFindSearchInfo::put_SearchDateTimeColumn(
VARIANT* SearchDateTimeColumn
);

Parameters

SearchDateTimeColumn

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

SimpleFindSearchInfo Object

OrderGroupManager::SimpleDelete

OrderGroupManager::SimpleFind


_SimpleFindSearchInfo::get_SearchDateTimeEnd, put_SearchDateTimeEnd

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

Get method:

HRESULT _SimpleFindSearchInfo::get_SearchDateTimeEnd(
VARIANT* SearchDateTimeEnd
);

Put method:

HRESULT _SimpleFindSearchInfo::put_SearchDateTimeEnd(
VARIANT* SearchDateTimeEnd
);

Parameters

SearchDateTimeEnd

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

The SearchDateTimeEnd 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

SimpleFindSearchInfo Object

OrderGroupManager::SimpleDelete

OrderGroupManager::SimpleFind


_SimpleFindSearchInfo::get_SearchDateTimeStart, put_SearchDateTimeStart

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

Get method:

HRESULT _SimpleFindSearchInfo::get_SearchDateTimeStart(
VARIANT* SearchDateTimeStart
);

Put method:

HRESULT _SimpleFindSearchInfo::put_SearchDateTimeStart(
VARIANT* SearchDateTimeStart
);

Parameters

SearchDateTimeStart

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

SimpleFindSearchInfo Object

OrderGroupManager::SimpleDelete

OrderGroupManager::SimpleFind


_SimpleFindSearchInfo::get_StatusFilter, put_StatusFilter

The StatusFilter property is a read/write Variant that contains the OrderGroup status.

Definition

Get method:

HRESULT _SimpleFindSearchInfo::get_StatusFilter(
long* StatusFilter
);

Put method:

HRESULT _SimpleFindSearchInfo::put_StatusFilter(
long StatusFilter
);

Parameters

StatusFilter

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

SimpleFindSearchInfo Object

OrderGroupManager::SimpleDelete

OrderGroupManager::SimpleFind


_SimpleFindSearchInfo::get_user_firstname, put_user_firstname

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

Get method:

HRESULT _SimpleFindSearchInfo::get_user_firstname(
VARIANT* user_firstname
);

Put method:

HRESULT _SimpleFindSearchInfo::put_user_firstname(
VARIANT* user_firstname
);

Parameters

user_firstname

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

SimpleFindSearchInfo Object

OrderGroupManager::SimpleDelete

OrderGroupManager::SimpleFind


_SimpleFindSearchInfo::get_user_id, put_user_id

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

Get method:

HRESULT _SimpleFindSearchInfo::get_user_id(
VARIANT* user_id
);

Put method:

HRESULT _SimpleFindSearchInfo::put_user_id(
VARIANT* user_id
);

Parameters

user_id

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

SimpleFindSearchInfo Object

OrderGroupManager::SimpleDelete

OrderGroupManager::SimpleFind


_SimpleFindSearchInfo::get_user_lastname, put_user_lastname

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

Get method:

HRESULT _SimpleFindSearchInfo::get_user_lastname(
VARIANT* user_lastname
);

Put method:

HRESULT _SimpleFindSearchInfo::put_user_lastname(
VARIANT* user_lastname
);

Parameters

user_lastname

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

Remarks

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

SimpleFindSearchInfo Object

OrderGroupManager::SimpleDelete

OrderGroupManager::SimpleFind


_SimpleFindSearchInfo::get_user_org_id, put_user_org_id

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

Get method:

HRESULT _SimpleFindSearchInfo::get_user_org_id(
VARIANT* user_org_id
);

Put method:

HRESULT _SimpleFindSearchInfo::put_user_org_id(
VARIANT* user_org_id
);

Parameters

user_org_id

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

SimpleFindSearchInfo Object

OrderGroupManager::SimpleDelete

OrderGroupManager::SimpleFind


_SimpleFindSearchInfo::get_user_org_name, put_user_org_name

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

Get method:

HRESULT _SimpleFindSearchInfo::get_user_org_name(
VARIANT* user_org_name
);

Put method:

HRESULT _SimpleFindSearchInfo::put_user_org_name(
VARIANT* user_org_name
);

Parameters

user_org_name

[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.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

SimpleFindSearchInfo Object

OrderGroupManager::SimpleDelete

OrderGroupManager::SimpleFind


SimpleList Object

Use this object to create an array of variants that supports enumeration.

ProgID: | Commerce.SimpleList (Externally creatable)
COM Class Name: | CSimpleList
COM Interface Name: | ISimpleList
Interface ID Constant: | IID_ISimpleList
Header File: | commerce.h, mspu_guids.h
Type Library Name: | Microsoft Commerce 2000 Core Components Type Library
DLL Name: | MscsCore.dll
Threading Model: | Both

In C++, use the ISimpleList interface to access the properties and methods of the SimpleList object.

The properties of the SimpleList object are shown in the following table.

Property | Type | Description
Count | long | Returns the number of elements in the SimpleList object. This property is read-only.
Item | VARIANT | Stores an element of the SimpleList object. This property is read/write.

The methods of the SimpleList object are shown in the following table.

Method | Description
Add | Adds the specified item to a SimpleList object.
Delete | Deletes a specified item from the SimpleList object.

See Also

General Purpose Objects

Dictionary Object


ISimpleList::Add

Use this method to add the specified item to this SimpleList object.

Definition

HRESULT ISimpleList::Add(
VARIANT* pVar
);

Parameters

pVar

[in] A pointer to the VARIANT to add to the SimpleList.

Return Values

This method returns an HRESULT indicating whether or not 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

SimpleList Object

ISimpleList::Delete


ISimpleList::get_Count

Use this property to return the number of elements in the SimpleList object.

Definition

HRESULT ISimpleList::get_Count(
long* Count
);

Parameters

Count

[out, retval] A pointer to a long used to return the number of items in the SimpleList.

Return Values

This method returns an HRESULT indicating whether or not 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

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

SimpleList Object


ISimpleList::Delete

Use this method to delete the specified item from the SimpleList object.

Definition

HRESULT ISimpleList::Delete(
long Index
);

Parameters

Index

[in] A long that contains the index value of the item to delete.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

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.

Additional information may be available using the global Err object, which can 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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

SimpleList Object

ISimpleList::Add

ISimpleList::get_Count


ISimpleList::get_Item, put_Item

The Item property is a read/write Variant that contains an element 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

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
);

Parameters

Index

[in] A long that contains the index of the item.

Item

[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.

Return Values

These methods return an HRESULT indicating whether or not they completed successfully. See the Error Values section for more details.

Error Values

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.

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.

Additional information may be available using the global Err object, which can 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

The Item 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.

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.

See Also

SimpleList Object


SiteConfig Object

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
COM Interface Name: | _SiteConfig
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 Configuration Type Library
DLL Name: | MSCSCfg.dll
Threading Model: | Apartment

In C++, use the _SiteConfig interface to access the properties and methods of the SiteConfig object.

The single property of the SiteConfig object is shown in the following table.

Property | Type | Description
Fields | Fields | Returns configuration fields, some of which hold configuration settings of resources. This property is read-write.

The methods of the SiteConfig object are shown in the following table.

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 2000 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 2000 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.

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.

See Also

Configuration Objects

Integrating Cutom Resources

GlobalConfig Object

SiteConfigReadOnly Object


_SiteConfig::AddRefToGroupComponent

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

HRESULT _SiteConfig::AddRefToGroupComponent(
BSTR bstrSiteResourceName,
BSTR bstrGroupResourceName
);

Parameters

bstrSiteResourceName

[in] A BSTR that contains the name of the resource configuration object to be added to the site.

bstrGroupResourceName

[in] A BSTR that contains the name of the global resource configuration object to which a reference is being added.

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.

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.

See Also

SiteConfig Object


_SiteConfig::CreateComponentConfig

Use this method to create an instance of a configuration schema class, and load it into the site recordset.

Definition

HRESULT _SiteConfig::CreateComponentConfig(
BSTR bstrConfigComponentName,
BSTR bstrConfigSchemaClass
);

Parameters

bstrConfigComponentName

[in] A BSTR that contains the new name for the resource configuration object instance.

bstrConfigSchemaClass

[in] A BSTR that contains the resource configuration schema class name.

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.

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_UPMDtsTask | Profiling System DTS Task Information

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

SiteConfig Object

_SiteConfig::DeleteComponentConfig


_SiteConfig::DeleteComponentConfig

Use this method to delete the Administration database information for the specified resource.

HRESULT _SiteConfig::DeleteComponentConfig(
BSTR bstrConfigComponentName
);

Parameters

bstrConfigComponentName

[in] A BSTR that contains the name of the resource associated with the Administration database information to delete.

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.

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.

See Also

SiteConfig Object

_SiteConfig::CreateComponentConfig


_SiteConfig::DeleteSQLScript

Use this method to delete the specified SQL script file from the Administration database.

Definition

HRESULT _SiteConfig::DeleteSQLScript(
BSTR sResource,
BSTR sScriptName
);

Parameters

sResource

[in] A BSTR that contains the name of the resource that is associated with the SQL script file that is to be deleted.

sScriptName

[in] A BSTR that contains the name of the SQL script file to delete.

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.

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

SiteConfig Object


_SiteConfig::ExportResource

Use this method to write the specified resource, resource properties, and attributes to the specified file.

Definition

HRESULT _SiteConfig::ExportResource(
BSTR bstrResourceName,
BSTR bstrFileName
);

Parameters

bstrResourceName

[in] A BSTR that contains the resource name.

bstrFileName

[in] A BSTR that contains the destination file name for the resource export.

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.

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.

See Also

SiteConfig Object


_SiteConfig::get_Fields

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

HRESULT _SiteConfig::get_Fields(
Fields** Fields
);

Parameters

Fields

[out] The address into which this method writes the pointer to the Fields object used to return resource configuration information.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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

SiteConfig Object


_SiteConfig::GetAppsInSite

Use this method to get a list of Commerce Server 2000 applications for the specified site.

Definition

HRESULT _SiteConfig::GetAppsInSite(
BSTR* strSiteName,
VARIANT* vtAppNames
);

Parameters

strSiteName

[in] A pointer to the BSTR that contains the name of the site for which you want the list of Commerce Server 2000 applications that are currently running.

vtAppNames

[out, retval] A pointer to a Variant used to return the list of Commerce Server 2000 applications.

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.

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.

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.

See Also

SiteConfig Object


_SiteConfig::GetIfCollection

Use this method to convert values read from the Fields property into the appropriate object such as a SimpleList object or Variant Array.

Definition

HRESULT _SiteConfig::GetIfCollection(
VARIANT* strList,
VARIANT* retVal
);

Parameters

strList

[in] A pointer to the VARIANT that contains the encoded string to be converted.

retVal

[out, retval] A pointer to a VARIANT used to return the converted data in the appropriate data type.

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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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.

See Also

SiteConfig Object


_SiteConfig::GetResourcePropAttrib

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

HRESULT _SiteConfig::GetResourcePropAttrib(
BSTR strResourceName,
BSTR strPropName,
IDictionary** idictResPropAttrib
);

Parameters

strResourceName

[in] A BSTR that contains the resource name.

strPropName

[in] A BSTR that contains the resource property name.

idictResPropAttrib

[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

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.

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.

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.

See Also

SiteConfig Object


_SiteConfig::GetSQLScript

Use this method to get the specified SQL script file from the Administration database.

Definition

HRESULT _SiteConfig::GetSQLScript(
BSTR sResource,
BSTR sScriptName,
BSTR* strScriptContents
);

Parameters

sResource

[in] A BSTR that contains the resource associated with the required SQL script file.

sScriptName

[in] A BSTR that contains the file name of the required SQL script file.

strScriptContents

[out, retval] A pointer to a BSTR used to return the SQL script file contents.

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.

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.

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.

See Also

SiteConfig Object


_SiteConfig::ImportResource

Use this method to read the specified resource, resource properties, and attributes from the specified file, and write them to the Commerce Server 2000 database.

Definition

HRESULT _SiteConfig::ImportResource(
BSTR bstrFileName
);

Parameters

bstrFileName

[in] A BSTR that contains the file name.

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.

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.

See Also

SiteConfig Object


_SiteConfig::Initialize

Use this method to load the site configuration from the Administration database.

Definition

HRESULT _SiteConfig::Initialize(
BSTR bstrSiteName
);

Parameters

bstrSiteName

[in] A BSTR that contains the site name.

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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

SiteConfig Object


_SiteConfig::MakeArrayFromSimpleList

Use this method to convert the specified SimpleList object into an Array.

Definition

HRESULT _SiteConfig::MakeArrayFromSimpleList(
IDispatch** list,
VARIANT* vtArray
);

Parameters

list

[in] An IDispatch interface pointer to the SimpleList object that you want to convert into an Array.

vtArray

[out, retval] A pointer to a VARIANT used to return the converted Array.

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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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.

See Also

SiteConfig Object


_SiteConfig::MakeArrayFromString

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

HRESULT _SiteConfig::MakeArrayFromString(
VARIANT strList,
VARIANT* vtArray
);

Parameters

strList

[in] A VARIANT that contains the encoded string.

vtArray

[out, retval] A pointer to a VARIANT used to return the converted Array or unconverted String.

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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

SiteConfig Object


_SiteConfig::MakeSimpleListFromArray

Use this method to convert an Array into a SimpleList object.

Definition

HRESULT _SiteConfig::MakeSimpleListFromArray(
VARIANT* varArray,
IDispatch** iSimpleList
);

Parameters

varArray

[in] A pointer to the VARIANT that contains the Array to convert.

iSimpleList

[out, retval] The address of an IDispatch interface pointer used to return the converted SimpleList 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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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.

See Also

SiteConfig Object


_SiteConfig::MakeStringFromArray

Use this method to convert an Array object into an encoded string that can be written to the Fields property.

Definition

HRESULT _SiteConfig::MakeStringFromArray(
VARIANT* varArray,
VARIANT* vtEncodedString
);

Parameters

varArray

[in] A pointer to the VARIANT that contains the Array to encode.

vtEncodedString

[out, retval] A pointer to a VARIANT used to return the encoded string.

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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

SiteConfig Object


_SiteConfig::MakeStringFromSimpleList

Use this method to convert a SimpleList object into an encoded string that can be written to the Fields property.

Definition

HRESULT _SiteConfig::MakeStringFromSimpleList(
IDispatch** slist,
BSTR* strEncodedString
);

Parameters

slist

[in] An IDispatch interface pointer to the SimpleList object that you wish to convert into an encoded string.

strEncodedString

[out, retval] A pointer to a BSTR used to return the encoded string.

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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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.

See Also

SiteConfig Object


_SiteConfig::PutSQLScript

Use this method to put the specified SQL script file into the Administration database.

Definition

HRESULT _SiteConfig::PutSQLScript(
BSTR sResource,
BSTR sScriptName,
BSTR sScriptContents
);

Parameters

sResource

[in] A BSTR that contains the name of the resource associated with the SQL script file.

sScriptName

[in] A BSTR that contains the name of the SQL script file.

sScriptContents

[in] A BSTR that contains the SQL script file contents.

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.

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

SiteConfig Object


_SiteConfig::SaveConfig

Use this method to save any site configuration settings that have been changed or updated.

Definition

HRESULT _SiteConfig::SaveConfig(
);

Parameters

None.

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.

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 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

SiteConfig Object


SiteConfigReadOnly Object

Use this object to load site configuration information from the Administration database.

ProgID: | Commerce.SiteConfigReadOnly (Externally creatable)
COM Class Name: | SiteConfigReadOnly
COM Interface Name: | _SiteConfigReadOnly
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2000 Configuration Type Library
DLL Name: | MSCSCfg.dll
Threading Model: | Apartment

In C++, use the _SiteConfigReadOnly interface to access the properties and methods of the SiteConfigReadOnly object.

The single property of the SiteConfigReadOnly object is shown in the following table.

Property | Type | Description
Fields | Fields | Returns configuration settings of the site and the site resources. This property is read-only.

The methods of the SiteConfigReadOnly object are shown in the following table.

Method | Description
GetAppsInSite | Gets a list of Commerce Server 2000 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.

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

GlobalConfig Object

SiteConfig Object


_SiteConfigReadOnly::get_Fields

The Fields property is a read-only Fields object. The Fields object contents hold the configuration settings of the site and its resources.

Definition

HRESULT _SiteConfigReadOnly::get_Fields(
Fields** Fields
);

Parameters

Fields

[out] The address into which this method will write a pointer to the Fields object used to return site and resource configuration information.

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

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.

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.

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

SiteConfigReadOnly Object

_SiteConfigReadOnly::Initialize


_SiteConfigReadOnly::GetAppsInSite

Use this method to get a list of Commerce Server 2000 applications for the specified site.

Definition

HRESULT _SiteConfig::GetAppsInSite(
BSTR* strSiteName,
VARIANT* vtAppNames
);

Parameters

strSiteName

[in] A pointer to the BSTR that contains the name of the site for which you want the list of Commerce Server 2000 applications that are currently running.

vtAppNames

[out, retval] A pointer to a VARIANT used to return the list of Commerce Server 2000 applications.

Return Values

This method returns an HRESULT indicating whether or not 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.

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.

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.

See Also

SiteConfigReadOnly Object


_SiteConfigReadOnly::GetIfCollection

Use this method to convert values read from the Fields property into the appropriate object such as a SimpleList object or Variant Array.

Definition

HRESULT _SiteConfig::GetIfCollection(
VARIANT* strList,
VARIANT* retVal
);

Parameters

strList

[in] A pointer to the VARIANT that contains the encoded string to be converted.

retVal

[out, retval] A pointer to a VARIANT used to return the converted data in the appropriate data type.

Return Values

This method returns an HRESULT indicating whether or not 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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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.

See Also

SiteConfigReadOnly Object


_SiteConfigReadOnly::Initialize

Use this method to load the site configuration from the Administration database.

Definition

HRESULT _SiteConfigReadOnly::Initialize(
BSTR bstrSiteName
);

Parameters

bstrSiteName

[in] A BSTR that contains the site name.

Return Values

This method returns an HRESULT indicating whether or not 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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before the 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

SiteConfigReadOnly Object


_SiteConfigReadOnly::MakeArrayFromSimpleList

Use this method to convert the specified SimpleList object into an Array.

Definition

HRESULT _SiteConfig::MakeArrayFromSimpleList(
IDispatch** list,
VARIANT* vtArray
);

Parameters

list

[in] A IDispatch interface pointer to the SimpleList object that you want to convert into an Array.

vtArray

[out, retval] A pointer to a VARIANT used to return the converted Array.

Return Values

This method returns an HRESULT indicating whether or not 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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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.

See Also

SiteConfigReadOnly Object


_SiteConfigReadOnly::MakeArrayFromString

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

HRESULT _SiteConfig::MakeArrayFromString(
VARIANT strList,
VARIANT* vtArray
);

Parameters

strList

[in] A VARIANT that contains the encoded string.

vtArray

[out, retval] A pointer to a VARIANT used to return the converted Array or unconverted String.

Return Values

This method returns an HRESULT indicating whether or not 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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

SiteConfigReadOnly Object


_SiteConfigReadOnly::MakeSimpleListFromArray

Use this method to convert an Array into a SimpleList object.

Definition

HRESULT _SiteConfig::MakeSimpleListFromArray(
VARIANT* varArray,
IDispatch** iSimpleList
);

Parameters

varArray

[in] A pointer to the VARIANT that contains the Array to convert.

iSimpleList

[out, retval] The address of a IDispatch interface pointer used to return the converted SimpleList object.

Return Values

This method returns an HRESULT indicating whether or not 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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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.

See Also

SiteConfigReadOnly Object


_SiteConfigReadOnly::MakeStringFromArray

Use this method to convert an Array object into an encoded string, which can be written to the Fields property.

Definition

HRESULT _SiteConfig::MakeStringFromArray(
VARIANT* varArray,
VARIANT* vtEncodedString
);

Parameters

varArray

[in] A pointer to the VARIANT that contains the Array to encode.

vtEncodedString

[out, retval] A pointer to a Variant used to return the encoded string.

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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

SiteConfigReadOnly Object


_SiteConfigReadOnly::MakeStringFromSimpleList

Use this method to convert a SimpleList object into an encoded string, which can be written to the Fields property.

Definition

HRESULT _SiteConfig::MakeStringFromSimpleList(
IDispatch** slist,
BSTR* strEncodedString
);

Parameters

slist

[in] An IDispatch interface pointer to the SimpleList object that you wish to convert into an encoded string.

strEncodedString

[out, retval] The address of a BSTR used to return the encoded string.

Return Values

This method returns an HRESULT indicating whether or not 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.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

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.

See Also

SiteConfigReadOnly Object


StandardSManager Object

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
COM Interface Name: | IMSCSStandardSManager_3_0
Interface ID Constant: | IID_IMSCSStandardSManager_3_0
Header File: | mspu_guids.h
Type Library Name: | Commerce 1.0 Type Library
DLL Name: | Commerce.dll
Threading Model: | Both

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.

The single property of the StandardSManager object is shown in the following table.

Property | Type | Description
Mode | Integer | Determines how the GetShopperID and PutShopperID methods of the Page object retrieve and store shopper IDs.

The methods of the StandardSManager object are shown in the following table.

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.

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

AuthManager Object


IMSCSStandardSManager_3_0::CreateShopperId

Use this method to create a unique shopper ID for the current user.

Definition

HRESULT IMSCSStandardSManager_3_0::CreateShopperId(
BSTR* pbstrRet
);

Parameters

pbstrRet

[out, retval] A pointer to a BSTR used to return the new shopper ID.

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

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

StandardSManager Object

IMSCSStandardSManager_3_0::InitManager

IMSCSStandardSManager_3_0::GetShopperId

IMSCSStandardSManager_3_0::PutShopperId


IMSCSStandardSManager_3_0::GetShopperId

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

HRESULT IMSCSStandardSManager_3_0::GetShopperId(
IDispatch* pdispContext,
VARIANT* pvtRet
);

Parameters

pdispContext

[in] A pointer to the IDispatch interface that contains the ASP scripting context.

pvtRet

[out, retval] A pointer to a VARIANT used to return the shopper ID.

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

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

StandardSManager Object

IMSCSStandardSManager_3_0::get_Mode, put_Mode

IMSCSStandardSManager_3_0::PutShopperId


IMSCSStandardSManager_3_0::InitManager

Use this method to initialize the StandardSManager object to the specified site name and mode.

Definition

HRESULT IMSCSStandardSManager_3_0::InitManager(
BSTR bstrStoreKey,
BSTR bstrMode
);

Parameters

bstrStoreKey

[in] A BSTR that contains the name of the site.

bstrMode

[in] A BSTR that indicates how user information is to be stored. For more information about initialization modes, see the Remarks section.

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

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.

See Also

StandardSManager Object

IMSCSStandardSManager_3_0::get_Mode, put_Mode

IMSCSStandardSManager_3_0::PutShopperId


IMSCSStandardSManager_3_0::get_Mode, put_Mode

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

Get method:

HRESULT IMSCSStandardSManager_3_0::get_Mode(
int* Mode
);

Put method:

HRESULT IMSCSStandardSManager_3_0::put_Mode(

 int Mode

);

Parameters

Mode

[in] When putting the property, an Integer that contains the mode.

[out, retval] When getting the property, an Integer used to return the mode.

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

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.

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

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

StandardSManager Object

Page Object

IMSCSStandardSManager_3_0::InitManager


IMSCSStandardSManager_3_0::PutShopperId

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

HRESULT IMSCSStandardSManager_3_0::PutShopperId(
IDispatch* pdispContext,
BSTR bstrShopperID
);

Parameters

pdispContext

[in] A pointer to the IDispatch interface used to retrieve the ASP scripting context.

bstrShopperID

[in] A BSTR that contains the shopper ID to be stored.

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

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

StandardSManager Object

IMSCSStandardSManager_3_0::get_Mode, put_Mode

IMSCSStandardSManager_3_0::GetShopperId


Interface Reference

Microsoft Commerce Server 2000 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 executed 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

    Site packager components implement the IPuP interface, allowing them to be invoked by Commerce Server 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, and conversely, to be initialized based on the contents of an XML-formatted string in a particular format.

This section provides the details of 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, a Dictionary object, or to a stream.


Pipeline Component Interfaces

Microsoft Commerce Server 2000 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

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
0 | No errors, component executed successfully.
1 | Basket or purchase errors for this operation.
2 | 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

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

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

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

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

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

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

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

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 ATL MinMaxShip Component Sample.

Header: ocidl.h

IDL File: ocidl.idl


ISpecifyPropertyPages::GetPages

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.

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 or not 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 or not 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 or not 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] A BOOLEAN flag used to turn data export on or off.

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 or not 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 or not 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 2000 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

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

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

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

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

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

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

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

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

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

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

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

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 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 Service (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 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 compatability 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 2000.
SaveHistory | Records the history string in one of three locations: the User Profile object, the 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 component looks up and runs the components to calculate shipping costs for individual shipments, it 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 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 to 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 _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 _content.

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:1 for paid, 2 for house.
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 merely 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.

Note that 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 2000 uses a new 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 new 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 Uniform Resource Locator (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 options are: 0 Default formatting 1 Plain text 2 MIME 3 MHTML This key overrides the default formatting.
rcp_personalize | Order | Use this key to indicate whether or not to personalize the message for this recipient. The options 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 Uniforml Resource Locator (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 options are: 0 Default formatting 1 Plain text 2 MIME 3 MHTML

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 may 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 multi-lingual messages using locale values from the Order dictionary (the rcp_locale key or the default_locale key). The locale values are passed to 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: 0 Do not personalize 1 Personalize This key defaults to 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 default Uniform Resource Locator (URL) is a file path and not an http:// path.

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 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.

Abbreviation | 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.

Note that the abbreviations in the table are also the keys used in the Cookie dictionary.

The user profile ID is encrypted only when the mail is sent as part of the campaign. In a stand-alone Direct Mailer job, the user profile ID is unencrypted.

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 from the 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 executed 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.

Columns in the ContentList

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 above are enumerated values for the ContentList object. For more information, see the Remarks section of 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 from the 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 executed 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.

Columns in the ContentList

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 above are enumerated values for the ContentList object. For more information, see the Remarks section of ContentListSchema.ColumnType.

Example

See the example in CacheManager Object.


CSFWriteEvents

Use this component with the CacheManager object to log events 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 from the Editor.

Configuration Values

You can determine how the CSFWriteEvents component runs by setting component properties. Use the following boxes on the CSFWriteEvents 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.

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 out 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 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 executed 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 promotion is applied.
item._product_* | Order | Optional.
_shopper_* | Order | Optional.
item._n_unadjusted | Order | The quantity of this item 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 cost for an item. May have been adjusted by the application of a promotion.
item._n_unadjusted | The quantity of this item that have not been discounted. May have been adjusted by the application of a promotion.

Remarks

The DBOrderPromoADO component executes a query to determine if the promotional conditions defined in a database table have been met by items in the OrderForm. 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 fifty 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.

The Promotions Table

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 at least the following columns:

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 componet is for backward compatibility only. The DefaultHandlingCy component operates in both Site Server 3.0 Commerce Edition compatibility mode and in Commerce Server 2000 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 both Site Server 3.0 Commerce Edition compatibility mode and in Commerce Server 2000 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 both Site Server 3.0 Commerce Edition compatibility mode and in Commerce Server 2000 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 cost of an item.

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 both Site Server 3.0 Commerce Edition compatibility mode and in Commerce Server 2000 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 both Site Server 3.0 Commerce Edition compatibility mode and in Commerce Server 2000 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 both Site Server 3.0 Commerce Edition compatibility mode and in Commerce Server 2000 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.2.
 | Mismatch | The multiplier applied when a target expression evaluates to "False." The default is 1.
Require | Match | The multiplier applied when a require expression evaluates to "True." The default is 1.
 | 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.

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 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

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 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 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 executed 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 executed 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 secton.
Size | Optional. If present, this key is created as a key in the FilterRequire dictionary. For more information, see the Remarks secton.
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 set. For more information, see the Remarks secton.
FilterExclude | Optional. This key is copied the to Context dictionary if it is set. For more information, see the Remarks secton.

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.

See Also

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.

See Also

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 2000 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 both Site Server 3.0 Commerce Edition and Commerce Server 2000 pipeline components using currency representations.

If a pipeline stage contains only Site Server 3.0 Commerce Edition or only Commerce Server 2000 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.

Configuration Values

None.

Values Read

The OrderDiscount component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
item._cy_iadjust_currentprice | Order | The current price of an item. May have been adjusted in the Item Adjust Price stage.
item.quantity | Order | The total quantity of an item.
item._cy_oadjust_adjustedprice | Order | Optional. The total cost of the item before discounts.
item._n_unadjusted | Order | Optional. The quantity of this item that have not been discounted.
item._product_* | Order | The product properties for each item. The column name is appended to form the key name. For more information, see the Remarkssection.
item.discounts_applied | Order | Optional. A dictionary containing the IDs of the discounts that applied to this item. Keys are the IDs; values are the date-time stamps of the discounts.
currency_decimal_places | Order | Optional. The number of the decimal places in the current currency. The default is two (2).
discounts_clicked | Order | Optional. The campaign item IDs of the click-required discounts that have been clicked.
Evaluator | Context | A reference to an ExpressionEval object.
CacheManager | Context | A reference to the CacheManager object to use for retrieving the discount schedule.
CacheName | Context | String. The name of the cache.
MessageManager | Context | A reference to a MessageManager object that uses the discount removed error constant (pur_discount_removed) and the discount changed error constant (pur_discount_changed) to retrieve error messages.
Language | Context | Optional. The language for messages used by the MessageManager object.
UserProfile | Context | Optional. A reference to a user profile object.
ContextProfile | Context | Optional. A reference to an ExprEvalContext (expression context profile) object for use with the expression evaluator.
SiteName | Context | Optional. The site name, used in error messages.

Values Written

The OrderDiscount component writes the following values to the Order dictionary.

Key | Description
_discounts | A ContentList object containing the schedule of discounts. For the structure of the ContentList object, see CSFLoadDiscounts.
_winners | This key contains the campaign item IDs of all discounts applied to the basket.
_event | This key contains the name of the event to record, which should always be set to SOLD. This value is used by the RecordEvent and IISAppendToLog components.
item._cy_oadjust_adjustedprice | Optional. The total price of the items that have had discounts applied.
item._n_unadjusted | Optional. The number of items whose price remains unadjusted after discounts are applied.
item.discounts_applied | Optional. 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.
_discounts_removed | Optional. A SimpleList object of campaign item IDs of discounts that no longer apply since the last time the pipeline was run. This key is written only if some discounts no longer apply.
_discounts_changed | Optional. A SimpleList object of 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.
_Basket_Errors | Error messages are written to this SimpleList object.
_<special_offer_type>_type Optional. The type of an order-level discount, 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)

Free shipping is an example of an order-level discount.
_cy_<special_offer_type>_value | Optional. The value of an order-level discount, 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. Free shipping is an example of an order-level discount.
_cy_<special_offer_type>_description | Optional. String. 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.

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


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 2000 catalog structure rather than performing product table lookups.

Intended use: Order Processing pipeline, Product Info stage.

Configuration Values

You can determine which product properties the QueryCatalogInfo component retrieves by setting component properties. Use the following box on the Query Catalog Info tab of the Component Properties dialog box to determine this information.

Box | Description
Columns | A comma-separated list of product properties to retrieve from the catalog system. Leave blank to retrieve all product properties.

Values Read

The QueryCatalogInfo component reads the following values from the indicated dictionary.

Key | Dictionary | Description
CacheManager | Context | A reference to a CacheManager object.
CatalogManager | Context | A reference to a CatalogManager object.
item.product_catalog | Context | String. The catalog containing the item.
item.product_id | Context | String. The product identifier.
item.product_variant_id | Context | Optional. String. An additional identifier used to distinguish variants of a particular product such as different colors of an item.

Values Written

The QueryCatalogInfo component writes the following values to the Order dictionary.

Key | Description
item._product_* | Product properties for each item. The column name is appended to form the key name. For more information, see the Remarks section.
item.delete | 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.

The Columns box contains a comma-separated list of properties to retrieve from the catalog. If the Columns box is left blank, the QueryCatalogInfo component retrieves all product properties related to each item.

Items are identified by a combination of the product_catalog, product_id, and product_variant_id 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.

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 each property specified in the Columns box (or for every property if nothing was specified in the Columns box). 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 QueryCatalogInfo component requires a CacheManager object with a QueryCatalogInfoCache datastructure 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 2000 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 execute, 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 both Site Server 3.0 Commerce Edition compatibility mode and in Commerce Server 2000 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 both Site Server 3.0 Commerce Edition compatibility mode and in Commerce Server 2000 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 | Order | 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 both Site Server 3.0 Commerce Edition compatibility mode and in Commerce Server 2000 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 both Site Server 3.0 Commerce Edition compatibility mode and in Commerce Server 2000 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 cost of an item before discounts.
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 cost of an item with discounts taken into account.
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 cost of an item.
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 both Site Server 3.0 Commerce Edition compatibility mode and in Commerce Server 2000 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 objectthat 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 both Site Server 3.0 Commerce Edition compatibility mode and in Commerce Server 2000 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 both Site Server 3.0 Commerce Edition compatibility mode and in Commerce Server 2000 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 both Site Server 3.0 Commerce Edition compatibility mode and in Commerce Server 2000 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 compatability 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 previously executed component, 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 2000.

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 2000. 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 cost of an item.
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 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 2000 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 and 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=sa;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 execute 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.

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 execute 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

MicroPipe Object


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.

Configuration Values

None.

Values Read

The ShippingDiscountAdjust component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
_cy_shipping_total | Order | The total shipping charges for the order before the discount is applied.
_shipping_discount_type | Order | The type of discount. The options are: 1 Discount by an amount 2 Percentage discount
_cy_shipping_discount_value | Order | The amount of the discount, either in a monetary value or a percentage value. Percentages are written as percentages rather than decimal fractions — a forty-percent discount would be represented by 40. Free shipping would be represented by 100.

Values Written

The ShippingDiscountAdjust component writes the following values to the Order dictionary.

Key | Description
_cy_shipping_total | The total shipping charges for the order with the discounts (if any) applied.

Remarks

The ShippingDiscountAdjust component examines the _shipping_discount_type key and adjusts the total shipping for the order. If the discount is blank, the component does nothing. If the discount type is 1 or 2, the component applies the discount. If the discount is none of these, the component returns an error.

The _shipping_discount_type key value is determined by the OrderDiscount object.

In Commerce Server 2000 pipelines, the ShippingDiscountAdjust component is used to provide free shipping by writing zero (0) for the _cy_shipping_total key.

See Also

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 executed 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.

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. 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 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

  2. 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

  3. 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.

  4. 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 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. 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 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 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,

  2. 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,

  3. 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.

  4. 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 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.


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. 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 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 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. 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 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 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 execute, 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 execute, 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 execute, 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 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 executes 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 execute, 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 executes 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, American Express, 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, American Express, 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. OLE DB Provider for Commerce Server provides two distinct paths of functionality. 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 provider to aggregate profile data across multiple data stores.

The Data Warehouse concentrates on bulk insertion and the ability of the provider to automatically instantiate the parent classes when a child class is created.

This section contains:

  • Data. Describes the data types and their formats supported by 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 OLE DB Provider for Commerce Server as they are used by the Data Warehouse and Analysis.

  • Profiling System and OLE DB. Describes the functionalities of OLE DB Provider for Commerce Server as they are used by the Profiling System.

See Also

Code to Perform Bulk Operations using ADO and SQL

Data Warehouse Schema

Working with the Data Warehouse


Data

The following topics describe the supported data types and their formats.

  • DateTime Format

  • Strings

  • 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.

Strings

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 semi-colon) 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 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 | Description
BINARY | Profiling System | Binary
BOOL | Both | Boolean (0 or 1)
CURRENCY | Both | 64-bit currency
DATE | Both | Standard date
DATETIME | Both | SQL Date-time
FILETIME | Data Warehouse | Standard file date/time stamp
FLOAT | Profiling System | 4-byte floating point number
IDENTITY | Data Warehouse | 48-bit numerical identifier
IDENTITY6 | Data Warehouse | 48-bit numerical identifier
IMAGE | Profiling System | 128 KB binary data
INT64 | Data Warehouse | 64-bit integer
LONG | Data Warehouse | 32-bit integer
LONGREAL | Data Warehouse | 64-bit floating point number
LONGTEXT | Profiling System | Unicode string of length 4000 characters
None | Data Warehouse | Empty type
NULL | Data Warehouse | No value
NUMBER | Profiling System | 4-byte integer
REAL | Data Warehouse | 32-bit floating point number
SHORT | Data Warehouse | 16-bit integer
STRING | Profiling System | Standard string
TIME | Data Warehouse | Standard time
UINT64 | Data Warehouse | 64-bit unsigned integer
ULONG | Data Warehouse | 32-bit unsigned integer
UUID | Data Warehouse | Packed decimal number used for globally unique identifiers (GUID)
WORD | Data Warehouse | 16-bit unsigned integer
WSTR | Data Warehouse | Unicode string of length 255
WSTR8, WSTR12. WSTR16, WSTR24, WSTR32, WSTR48, WSTR64, WSTR80, WSTR96, WSTR112, WSTR128, WSTR144, WSTR160, WSTR255, WSTR400, WSTR512 | Data Warehouse | Unicode string of designated length
WSTR1K, WSTR2K, WSTR4K | Profiling System | Unicode string of designated length


OLE DB Interface Support

The following table lists the OLE DB 2.5 objects and interfaces that are supported by 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

This section describes the functionalities of OLE DB Provider for Commerce Server as it is used by the Data Warehouse and Analysis.

This section contains:

  • Bind URLs. Describes the commands used to bind to a Row object.

  • Connection Strings for the Data Warehouse. Describes the connection strings recognized by OLE DB Provider for Commerce Server.

  • Delete Syntax. Describes the syntax for deleting data from the Data Warehouse.

  • Schema Change. Describes the steps needed to commit a change to the Data Warehouse logical schema.


Bind URLs

OLE DB Provider for Commerce Server implements a Binder object that supports direct binding to the OLE DB Row object using the Uniform Resource Locator (URL) naming convention.

The following table lists the custom bindable URLs. 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 which contains a collection of all the class names.
DimensionNames | Returns a record with a ClassNames field which contains a collection of all the dimension class names.
FactNames | Returns a record with a ClassNames field which contains a collection of all the fact class names.
RelationNames | Returns a record with a ClassNames field which 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:" & _
 "user=username:password=******"

rec.Open "FactNames", conn

savNames = rec("ClassNames")

For Each sName In savNames
   MsgBox sName
Next

rec.Close
Set rec = Nothing
Set conn = Nothing


Connection Strings for the Data Warehouse

Two types of connection strings are recognized by OLE DB Provider for Commerce Server for use with the Data Warehouse:

  • "URL=mscop://InProcConnect/Server=myserver:Database=dbname:
    Catalog=DWSchema:User=userid:Password=********:FastLoad=True"

  • "Provider=commerce.dso.1;Data Source=mscop://InProcConnect/Server=myserver:
    Catalog=DWSchema:Database=dbname:User=userid:
    Password=********:FastLoad=True"

The name of the catalog must be "DWSchema".

The Fastload option must be set to True which precludes the use of binary data.


Delete Syntax

This topic describes the syntax for programmatically deleting 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 the TaskHistoryID property. For information about the Data Deletion DTS task, see Deleting Data from the Data Warehouse.

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 child class that is not referenced by any of its parent classes.

ONLYFACT

Specifies to only delete children of BaseClassName that are marked as FACT tables.

UPDATECHILDREN

Specifies to update the children, if any, of BaseClassName.

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 preceeding 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


Schema Change

To extend the logical schema, OLE DB Provider for Commerce Server must be notified by turning on the schema change mode. Changes to the existing schema are not allowed when in schema change mode. The __Commit attribute determines whether changes are persisted to intermediate tables. The CommitSchema command persists the session changes to the actual schema tables, provided all changes pass validation.

When extending the schema, perform the following steps:

  1. Turn the schema change mode on by setting the SchemaMode attribute to 1.

  2. Create a new instance in the schema table you want (ClsDef, MemDef, and so forth).

  3. Set the attributes you want.

  4. Set the persistence of the new row using the __Commit attribute.

  5. Save the changed row using the Update method.

  6. Repeat steps 2 - 5 for each additional row to be added.

  7. Commit the session changes by executing the CommitSchema command.

  8. Turn the schema change mode off by setting the SchemaMode attribute to 0 (zero).

Commit

The __Commit attribute determines whether the data inserted into a row will be persisted and when.

When setting row data in OLE DB Provider for Commerce Server in Fastload mode, the data is buffered. Two values, Flush (do not save current row) and Save and Flush, explicitly (and synchronously) flush the data to the database.

It is recommended for C++ applications that have high load requirements to use row reuse. Normally, an application will create an instance of a blank row through the OLE DB 2.6 binder interface, populate the column data, commit the data, and release the row. The Reuse Row value allows the client to reuse the same row over and over without having to release and recreate a new row.

In order to reuse rows, set the __Commit column value to 0x201 (Save with Reuse) after populating the column data for the row. If setting the __Commit column succeeds, the row column data can be re-populated and reused.

Similar to setting the __Commit attribute to 0, the Ignore value will not persist the data in the row but still allows the row to be reused.

The following table lists the valid values for the __Commit attribute, and provides a brief description of each.

Action | Value | Description
Discard | 0x00 | Discards the row.
Save | 0x01 | Saves the current row.
Flush | 0x02 | Flushes the buffers. Must be called on a row with only the __Commit column set.
Save and Flush | 0x04 | Saves the current row and flush the buffers.
Ignore | 0x100 | Makes the row non-persistent.
Reuse Row | 0x200 | Reuses the row multiple times without rebinding.


Profiling System and OLE DB

This section describes the functionalities of 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 OLE DB Provider for Commerce Server to manipulate objects aggregated across multiple data sources.

  • Connection Strings for the Profiling System. Describes the connection strings recognized by OLE DB Provider for Commerce Server.

  • SQL Queries. Describes the subset of ANSI SQL used to manipulate objects aggregated across multiple data sources.


Aggregation Across Multiple Data Sources

This topic describes the ability of the provider 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

  • Microsoft SQL Server 7.0

  • 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 7.0 stores.

The data aggregation layer is implemented as four components:

  • Aggregation layer. This layer is part of OLE DB Provider for Commerce Server itself.

  • Directory component.

  • Microsoft SQL Server 7.0 component.

  • 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.


Connection Strings for the Profiling System

Two types of connection strings are recognized by OLE DB Provider for Commerce Server for use with the Profiling System:

  • "URL=mscop://InProcConnect/Server=myserver:Database=dbname:
    Catalog=Profile Definitions:User=userid:Password=*******"

  • "Provider=commerce.dso.1;Data Source=mscop://InProcConnect/Server=myserver:Database=dbname:
    Catalog=Profile Definitions:User=userid:Password=*******"

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 OLE DB Provider for Commerce Server:

SELECT select_list FROM class_name
   [WHERE search_condition]
   [ORDER BY order_expression]

select_list ::= * | member_name*
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.

  • Non-printable 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 wild-card searches through the '%' character only. All members in LIKE clauses must be of the String data type.

  • The semi-colon (;) is used as the delimiter for values in a multi-valued property. Thus, values in a multi-valued property must not contain a semi-colon.

  • 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'


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.
Standard XML Data Record Format | 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.

  • 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.

  • 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.

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:

  • OnBrowse

  • OnChange

  • OnError

  • OnRequire

  • OnValid

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 value in the EditField HTC changes and loses focus. 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".

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".

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.

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.

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'
       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. 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

  • OnNew

  • 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 errror message "The control could not load."

The event object property window.event.error contains a string with details about the error.

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

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

  • 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

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()'
       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

  • 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

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 errror 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 meta-data).

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 executes 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 executes 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 execute automatically when a column header is clicked. The Page operation automatically resets the current page number to whatever new page is requested and executes 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()'
       OnError='ErrorHandler()'
       OnHeaderClick='HeaderClickHandler()'
       OnGroupOpen='GroupOpenHandler'
       OnNewPage='NewPageHandler()'
       OnRowSelect='RowSelectHandler()'
       OnRowUnselect='RowUnselectHandler()'
  >Loading ListSheet, please wait...</DIV>


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 executed. 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.

Nested include files: BizDeskPaths.asp, HTTPXMLUtil.htm, 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 execute 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.
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, BDHALUtil.asp, ActionPageUtil.asp.
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, BDHALUtil.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_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.
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.
response_session.asp | This file contains code used to set, get, and clear server state via XMLHTTP. Routines in this file are intended for internal framework use only.
SharedStrings.asp This ASP file contains the definitions of string constants used within multiple Business Desk modules that ship as part of Commerce Server 2000. 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

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

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

ADO Constants (from file DBUtil.asp):

Constants to use with ActiveX Data Objects (ADO).

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


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.

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_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 Global.asa file, and its scope is Application.

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 Application.

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_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 meta-data 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 meta-data 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 meta-data 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 meta-data 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.
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 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.
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 ActionPageUtil.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.
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 ActionPageUtil.asp.
nGetMonth | Returns the month from a date string, as a number. Defined in the file ActionPageUtil.asp.
nGetYear | Returns the year from a date string, as a number. Defined in the file ActionPageUtil.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.
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.
ShowErrorDlg | Displays a standard error dialog box. Defined in the file ActionPageUtil.asp.
ShowFindBy | Shows the find pane. 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.
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

bCheckTask, CloseMenu, DoTask, ExecuteTask, GotoAction, nGetDatePart, PosttoAction, RemoveSelection, SetEditMode, SetSelection, doc_onContextMenu, doc_onDragStart, doc_onKeyDown, doc_onSelectStart, menu_onClick, menu_onKeyDown, menu_onMouseMove, menu_onMouseOver, task_onKeyDown, task_onMouseDown, task_onMouseOut, task_onMouseOver, taskWindow_onBeforeUnload, taskWindow_onLoad, taskWindow_onMouseOver

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

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

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

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)


bHasClass (client-side)

Use this routine to determine whether a particular customizable style sheet (CSS) class is associated with a specific HTML element.

Definition

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

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 ActionPageUtil.asp.

See Also

Client-Side Routines

dtGetDate (client-side)

nGetDay (client-side)

nGetMonth (client-side)

nGetYear (client-side)

sGetFormattedDate (client-side)

Server-Side Routines


ClearStatusText (client-side)

Use this routine to clear the text in the status area.

Definition

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

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


dClearServerState (client-side)

Use this routine to clear a server-state Dictionary object stored in the Session object on the server.

Definition

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

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

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

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.

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

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.

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

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

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 ActionPageUtil.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

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.

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

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.

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

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.

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

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.

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

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.

See Also

Client-Side Routines

DisableTaskMenuItem (client-side)

EnableAllTaskMenuItems (client-side)

EnableTask (client-side)

Server-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

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

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.

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

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.

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

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

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

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 ActionPageUtil.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

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 ActionPageUtil.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

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 ActionPageUtil.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

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.

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

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

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

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

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.

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

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.

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

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

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


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

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.

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

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.

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

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.

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

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

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.

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

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

sFormatString(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.

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

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 ActionPageUtil.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

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

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)


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

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

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.

See Also

Client-Side Routines

HideFindBy (client-side)

SetFindByHeight (client-side)

ToggleFindBy (client-side)

Server-Side Routines


ShowWaitDisplay (client-side)

Use this routine to show the wait display.

Definition

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

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

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 structure. These record elements contain the data that appears in the first tier of the resulting standard XML data record structure, 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 structure, 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 Standard XML Data Record Format.

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.

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

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 structure. These record elements contain the data that appears in the first tier of the resulting standard XML data record structure, 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 structure, 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 structure, 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 Standard XML Data Record Format.

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.

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)


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

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.

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

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.

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

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

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

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 structure. These record elements contain the data that appears in the first tier of the resulting standard XML data record structure, 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 structure, 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 Standard XML Data Record Format.

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.

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

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 structure. These record elements contain the data that appears in the first tier of the resulting standard XML data record structure, 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 structure, 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 structure, 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 Standard XML Data Record Format.

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.

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

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 structure. These record elements contain the data that appears in the first tier of the resulting standard XML data record structure, 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 structure, 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 Standard XML Data Record Format.

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.

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

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 structure. These record elements contain the data that appears in the first tier of the resulting standard XML data record structure, 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 structure, 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 structure, 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 Standard XML Data Record Format.

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.

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

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

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

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.
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.
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.
GetSiteConfigField | Retrieves a value from the Site Configuration store. Defined in the file ASPUtil.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.
xmlGetRequestXML | Returns the XML posted with a request as an XML DOMDocument object. Defined in the file HTTPXMLUtil.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

InsertHelpIconBtn, InsertIconBtn, InsertIconBtns, InsertNonClientArea

ASPUtil.asp

dGetErrorDict, sESCErrorText, sStripHTML

BizDeskObjects.asp

BDError, dGetCategory, DumpDict, DumpList, DumpResults, DumpSubObject, LoadActions, LoadCategories, LoadModuleConfigs, LoadModules, LoadObjects, LoadTasks, PutObjectsInApp, SetDumpStyles, sGetChildText, ShowProgress, ValidateActions, VBError, XMLError, xmlLoadConfig

DBUtil.asp

AddEmptyRecordNode, AddField, AddFormattedNode, sESCText, sStripGroupName

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

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

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

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

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


BDHALsizeButtons (server-side)

Use this routine to ensure that all buttons in the specified collection with the specified class name have the same width.

Definition

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

Server-Side Routines

BDHALsizeSelects (server-side)

Client-Side Routines


BDHALsizeSelects (server-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

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

Server-Side Routines

BDHALsizeButtons (server-side)

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

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

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

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

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


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

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

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

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

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

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

SetError(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: 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

sFormatString(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).

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

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

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

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

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

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

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 structure. These record elements contain the data that appears in the first tier of the resulting standard XML data record structure, 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 structure, 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 Standard XML Data Record Format.

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

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 structure. These record elements contain the data that appears in the first tier of the resulting standard XML data record structure, 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 structure, 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 structure, 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 Standard XML Data Record Format.

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

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


xmlGetRequestXML (server-side)

Use this routine to copy the XML in the request to an XML document.

Definition

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)


xmlGetXMLDOMDoc (server-side)

Use this routine to create an XML DOMDocument object with an empty documentElement property.

Definition

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

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

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

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

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

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 structure. These record elements contain the data that appears in the first tier of the resulting standard XML data record structure, 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 structure, 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 Standard XML Data Record Format.

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

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 structure. These record elements contain the data that appears in the first tier of the resulting standard XML data record structure, 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 structure, 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 structure, 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 Standard XML Data Record Format.

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

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. Click Refresh 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 and module targets on mouseover.

2. Disabled modules as ERROR (usually file not found) or FILTERED (by user ACLs).

3. Contents of the Request, Session, and Application objects in legend area of status bar.

4. The state of the dirty, required, and valid flags for the page in the title bar.


XML Reference

Extensible Markup Language (XML) is used extensively by Microsoft Commerce Server 2000. 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:

  • Analysis/Reporting XML Structures. Describes the XML structures used to create reports by Commerce Server Analysis.

  • 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, and those used by the various HTML Components (HTCs).

  • 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

AsyncRpt Object

Creating Custom Reports

ReportRender Object

Running Reports


Catalog XML Structures

The Microsoft Commerce 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 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 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 of the Microsoft Commerce Catalog. In the following example, unitalicized 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.

<MSCommerceCatalogCollection>
   <CatalogSchema>
      <AttributeDefinition name DataType Id />
      <Definition Name DefinitionType properties variantProperties />
      <PropertiesDefinition>
         <Property name DataType MinValue MaxValue DisplayName id
                   AssignAll DefaultValue DisplayInProductsList
                   DisplayOnSite ExportToDW IncludeInSpecSearch
                   IsFreeTextSearchable />
            <PropertyValue DisplayName />
         </Property>
      </PropertiesDefinition>
   </CatalogSchema>
   <Catalog catalogName description locale startDate endDate
            productIdentifier productVariantIdentifier currency>
      <Category name Definition isSearchable id parentCategories
                listprice>
         <Field fieldID fieldValue />
         <Relationship name description relation />
      </Category>
      <Product definition listprice id parentCategories pricingCategory>
         <Field fieldID fieldValue />
         <ProductVariant Id>
            <Field fieldID fieldValue />
         </ProductVariant>
         <Relationship name description relation />
      </Product>
   </Catalog>
</MSCommerceCatalogCollection>


XML Elements

The Microsoft Commerce Catalog Extensible Markup Language (XML) elements are divided into three groups:

  • MSCommerceCatalogCollection. The root node for a Commerce Catalog XML file.

  • Catalog Schema Elements. These elements are used to extend the catalog: CatalogSchema, AttributeDefinition, Definition, PropertiesDefinition, Property, and PropertyValue.

  • Catalog Data Elements. These elements are used for the actual catalog and its members: Catalog, Category, Field, 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 fields on top of the built in ones: name, maxSize, defaultValue, and so on.

Parent Elements: CatalogSchema

Child Elements: None

Attributes:

Name | Description
DataType | Valid types are: datetime money number string bignumber real float currency boolean
id | A unique ID for each node in the document. May not contain spaces (an XML requirement).
name | The name of the attribute definition.

Catalog

Defines an individual catalog.

Parent Elements: MSCommerceCatalogCollection

Child Elements: Category, Product

Attributes:

Name | Description
catalogName | The name of the catalog.
currency | The currency used in the catalog, expressed as a three letter ISO 4217 currency code. For example "USD", "AUD", "CDN", "GBP", "DEM", "JPY".
description | A description of the catalog.
endDate | The date the catalog validity expires. Used for documentation purposes only – Commerce Server does not apply any logic to this value.
locale | The locale of the catalog, specified using a Windows Locale ID (LCID). Used for documentation purposes to indicate which locale the catalog is intended for.
productIdentifier | The name of the property that uniquely identifies products (or product families) in the catalog.
productVariantIdentifier | 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.
startDate | The date the catalog becomes valid. Used for documentation purposes only – Commerce Server does not apply any logic to this value.

CatalogSchema

Contains the schema definition elements for the Catalog collection.

Parent Elements: MSCommerceCatalogCollection

Child Elements: AttributeDefinition, Definition, PropertiesDefinition

Attributes: None

Category

Defines an instance of a type of category.

Parent Elements: Catalog

Child Elements: Field, Relationship

Attributes:

Name | Description
Definition | The name of the category definition that the category is based on.
id | The XML ID for the category element.
isSearchable | 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 | The name of the category. This name must be unique for all categories in the same catalog.
parentCategories | The XML IDs of the categories that are immediate parents of this category.
listprice | 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.

Definition

Defines a type of product or category.

Parent Elements: CatalogSchema

Child Elements: None

Attributes:

Name | Description
DefinitionType | The type of the definition — either "product" or "category".
Name | The name of the property. This name must be unique within the XML document.
properties | The XML node IDs of the properties that are to be included in this product or category definition.
variantProperties | The XML node IDs of the properties that are to be included as variant properties for this product definition. Use this attribute only for definitions of type "product".

Field

Defines a name and value pair for a field.

Parent Elements: Category, Product, ProductVariant

Child Elements: None

Attributes:

Name | Description
fieldID | The name of the property a value is being supplied for.
fieldValue | The value for the property.

MSCommerceCatalogCollection

The root node for a Commerce Catalog XML file.

Parent Elements: None

Child Elements: CatalogSchema, Catalog

Attributes: None

Product

Defines an instance of a type of product.

Parent Elements: Catalog

Child Elements: Field, ProductVariant, Relationship

Attributes:

Name | Description
definition | The name of the product definition that the product is based on.
id | The XML ID for the product element.
listprice | The price for this product. Units for this value are determined by the currency attribute of the containing catalog.
parentCategories | The XML IDs of the categories that the product belongs to.
pricingCategory | The XML ID of the category that the product inherits pricing from. Use of this attribute is optional.

ProductVariant

Defines an instance of a variant of a product.

Parent Elements: Product

Child Elements: Field

Attributes:

Name | Description
id | The XML ID for the variant element.

PropertiesDefinition

Container for the individual property definitions.

Parent Elements: CatalogSchema

Child Elements: Property

Attributes: None

Property

Defines a property that can be used to describe an aspect of a product or category.

Parent Elements: PropertiesDefinition

Child Elements: PropertyValue

Attributes:

Name | Description
AssignAll | 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).
DataType | Legal values are: datetime enumeration filename float money number string bignumber currency boolean real
DefaultValue | The default value for instances of the property. This value will be interpreted according to the datatype specified for this property. Datetime values must be specified in XML Date format.
DisplayInProductsList | 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)
DisplayName | The display name for the property, for example, the label that will be shown next to the values for this property to site users.
DisplayOnSite | Indicates whether this property should be shown to users visiting the web site. The values are: "1" (True) or "0" (False).
ExportToDW | 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 | A unique ID for each node in the document. May not contain spaces (an XML requirement).
IncludeInSpecSearch | Indicates whether this property should be exposed to specification searches. The values are: "1" (True) or "0" (False)
IsFreeTextSearchable | 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)
MaxValue | The maximum legal value for number data types, and the maximum length for string data types.
MinValue | The minimum legal value for number data types, and the minimum length for string data types.
name | The unique name of the property.

PropertyValue

Defines a legal value for a property.

Parent Elements: Property

Child Elements: None

Attributes:

Name | Description
DisplayName | A legal value for the containing property.

Relationship

Defines a relationship between one product or category and another product or category.

Parent Elements: Category, Product

Child Elements: None

Attributes:

Name | Description
description | The description of the relationship.
name | The name of the relationship.
relation | The XML ID of a product or category in the same catalog in which to relate the containing product or category.


Import Semantics

This section describes the semantics that apply when importing a Commerce Server Catalog XML file.

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 be abandoned. Schema conflicts can include:

  • Redefining a property to use a different data type than it is already defined as.

  • Redefining a product or category definition to have a different set of member properties.

Schema elements are never deleted as a result of doing a Commerce Catalog XML import — only new schema is added.

The data types that are referenced in the Commerce 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)

Note

  • The asterisk (*) indicates data types that are only supported on SQL Server 2000.

  • The bignumber, boolean, and real data types are not currently supported byCommerce Server Business Desk.

Catalog Data Semantics

A Catalog XML 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 database, the existing catalog can be replaced by the imported catalog, or a merge import can be performed. Follow the rules listed below if you decide to run a merge import:

  • Products can be modified or added but cannot be deleted.

  • Product variants can be modified or added but cannot be deleted.

  • Categories can be modified or added but cannot be deleted.

  • 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 fields 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 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 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.

<Schema name="MSCommerceCatalogCollection" xmlns="urn:schemas-microsoft-
        com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
   <AttributeType name="name" dt:type="string" required="yes" />
   <AttributeType name="id" dt:type="id" required="yes" />
   <AttributeType name="dataType" dt:type="enumeration" dt:values="string
                  number bignumber datetime money real float currency
                  boolean enumeration filename" required="yes" />
   <AttributeType name="value" />
   <AttributeType name="parentCategories" dt:type="idrefs" />
   <AttributeType name="Definition" dt:type="string" required="yes" />
   <ElementType name="MSCommerceCatalogCollection">
      <element type="CatalogSchema" minOccurs="1" maxOccurs="1" />
      <element type="Catalog" minOccurs="0" maxOccurs="*" />
   </ElementType>
   <ElementType name="PropertiesDefinition">
      <element type="Property" minOccurs="0" maxOccurs="*" />
   </ElementType>
   <ElementType name="CatalogSchema">
      <element type="PropertiesDefinition" minOccurs="0" maxOccurs="1" />
      <element type="Definition" minOccurs="0" maxOccurs="*" />
      <element type="AttributeDefinition" minOccurs="0" maxOccurs="*" />
   </ElementType>
   <ElementType name="AttributeDefinition">
      <attribute type="name" />
      <attribute type="id" />
      <attribute type="dataType" />
   </ElementType>
   <ElementType name="PropertyValue">
      <AttributeType name="displayName" dt:type="string" required="yes" />
      <attribute type="displayName" />
   </ElementType>
   <ElementType name="Property" model="open">
      <AttributeType name="DefaultValue" dt:type="string" />
      <AttributeType name="MinValue" dt:type="string" />
      <AttributeType name="MaxValue" dt:type="string" />
      <AttributeType name="IsFreeTextSearchable" dt:type="boolean" />
      <AttributeType name="IncludeInSpecSearch" dt:type="boolean" />
      <AttributeType name="DisplayOnSite" dt:type="boolean" />
      <AttributeType name="DisplayName" dt:type="string" />
      <AttributeType name="AssignAll" dt:type="boolean" />
      <AttributeType name="ExportToDW" dt:type="boolean" />
      <AttributeType name="DisplayInProductsList" dt:type="boolean" />
      <attribute type="DefaultValue" />
      <attribute type="MinValue" />
      <attribute type="MaxValue" />
      <attribute type="IsFreeTextSearchable" />
      <attribute type="IncludeInSpecSearch" />
      <attribute type="DisplayOnSite" />
      <attribute type="DisplayName" />
      <attribute type="AssignAll" />
      <attribute type="ExportToDW" />
      <attribute type="DisplayInProductsList" />
      <attribute type="name" />
      <attribute type="DataType" />
      <attribute type="id" />
      <element type="PropertyValue" minOccurs="0" maxOccurs="*" />
   </ElementType>
   <ElementType name="Definition">
      <AttributeType name="properties" dt:type="idrefs" />
      <AttributeType name="variantProperties" dt:type="idrefs" />
      <AttributeType name="DefinitionType" required="yes" dt:type=
                     "enumeration" values="product category" />
      <attribute type="name" />
      <attribute type="DefinitionType" />
      <attribute type="properties" />
      <attribute type="variantProperties" />
   </ElementType>
   <ElementType name="Catalog">
      <AttributeType name="currency" required="yes" />
      <AttributeType name="locale" dt:type="string" />
      <AttributeType name="startDate" dt:type="string" />
      <AttributeType name="endDate" dt:type="string" />
      <AttributeType name="productIdentifier" required="yes" dt:type="string" />
      <AttributeType name="productVariantIdentifier" required="yes" dt:type="string" />
      <AttributeType name="weight_measuring_unit" dt:type="string" />
      <element type="Category" minOccurs="0" maxOccurs="*" />
      <element type="Product" minOccurs="0" maxOccurs="*" />
      <attribute type="catalogName" />
      <attribute type="description" />
      <attribute type="currency" />
      <attribute type="locale" />
      <attribute type="startDate" />
      <attribute type="endDate" />
      <attribute type="productIdentifier" />
      <attribute type="productVariantIdentifier" />
   </ElementType>
   <ElementType name="Field">
      <AttributeType name="fieldID" dt:type="idref" />
      <AttributeType name="fieldValue" dt:type="string" required="yes" />
      <attribute type="fieldID" />
      <attribute type="fieldValue" />
   </ElementType>
   <ElementType name="Category">
      <AttributeType name="isSearchable" dt:type="string" />
      <AttributeType name="listprice" dt:type="string" />
      <AttributeType name="image" dt:type="string" />
      <AttributeType name="description" dt:type="string" />
      <attribute type="listprice" />
      <attribute type="id" />
      <attribute type="name" />
      <attribute type="parentCategories" />
      <attribute type="Definition" />
      <attribute type="isSearchable" />
      <element type="Field" minOccurs="1" maxOccurs="*" />
      <element type="Relationship" minOccurs="0" maxOccurs="*" />
   </ElementType>
   <ElementType name="Product">
      <AttributeType name="pricingCategory" />
      <AttributeType name="listprice" dt:type="string" required="yes" />
      <attribute type="listprice" />
      <attribute type="id" />
      <attribute type="definition" />
      <attribute type="pricingCategory" />
      <attribute type="parentCategories" />
      <element type="Field" minOccurs="1" maxOccurs="*" />
      <element type="Relationship" minOccurs="1" maxOccurs="*" />
      <element type="ProductVariant" minOccurs="0" maxOccurs="*" />
   </ElementType>
   <ElementType name="ProductVariant">
      <attribute type="Id" />
      <element type="Field" minOccurs="1" maxOccurs="*" />
   </ElementType>
   <ElementType name="Relationship">
      <AttributeType name="description" dt:type="string" />
      <AttributeType name="relation" required="yes" dt:type="idref" />
      <attribute type="name" />
      <attribute type="description" />
      <attribute type="relation" />
   </ElementType>
</Schema>


Business Desk XML Structures

The Extensible Markup Language (XML) structures used by Commerce Server Business Desk can be divided into three 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 (HTC) Data: XML structures used to represent the data that is displayed within the various 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.

    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.

  • HTC Configuration: XML structures used to provide meta-data about the data being displayed. For example, if the data is being 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.

This section contains:

  • Master Configuration File. Describes the XML structure of the master module 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.

  • Standard XML Data Record Format. Describes the XML structure in which many of the HTCs expect data to be represented. These HTCs include the DynamicTable, EditField, EditSheet, ListEditor, and ListSheet.

  • 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.


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 a 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.

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 executed.

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 that a task menu should be used to distinguish between multiple sub-tasks.

Optional.

Legal values: The string "menu" is the only legal value

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 should not be present.

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


Standard XML Data Record Format

Many of the HTML components (HTCs) in the Commerce Server Business Desk Framework expect the data they display to be provided in a 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.

This section contains:

  • Mapping Data to Meta-data. 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 Meta-data

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 meta-data.

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 meta-data 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 meta-data 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 meta-data. There should not be a third level in the data XML structure, and the id3 attribute of the meta-data column (columns) element is not used. In this case the meta-data 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 meta-data. In this case the meta-data 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 meta-data. 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>
</document>

Two-Tier Format

<document recordcount>
    <record>
        <dataid1>Value</dataid1>
        <dataid2>Value</dataid2>
        <record>
            <dataid21>Value</dataid21>
            <dataid22>Value</dataid22>
        </record>
    </record>
</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>
</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, 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


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 OnChange event.

  • XMLlist HTC property.

XMLrecord: Not used.
ListEditor HTC XMLlist:
  • XMLlist property of the window.event object in OnChange event.

  • XMLlist HTC property.

XMLrecord:

  • XMLrecord property of the window.event object in OnEdit event.

  • XMLrecord property of the window.event object in OnNew event.
ListSheet HTC XMLlist:
  • XMLlist HTC property.

XMLrecord:

  • XMLrecord property of the window.event object in OnRowSelect event.

  • XMLrecord property of the window.event object in OnRowUnselect event.

XMLlist 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>
        <dataid1>data</dataid1>
        <dataid2>data</dataid2>
        . . .
    </record>
    <record>
        <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 four possible values: an empty string indicating that the record is unchanged, "new" indicating that the record is new, "changed" indicating that the record has been changed, and "deleted" indicating that the record has been deleted.

XMLrecord 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>
    <dataid1>data</dataid1>
    <dataid2>data</dataid2>
    . . .
</record>


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 id
            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 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, 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, 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 id
          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 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, 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, 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, type
charmask | text
error | date, numeric, text, type
format | date, numeric
label | boolean
name | boolean, date, numeric, select, text, type 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, type
select | select The option element is a child element of this element.
tooltip | boolean, date, numeric, select, text, type 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://msdn.microsoft.com

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.

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".
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.
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 id
              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 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 meta-data 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 meta-data.

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, 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, 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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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>
  <columns>
    <column format hide id width>Column name</column>
  </columns>
  <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 id
            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 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

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 meta-data 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

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, 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, 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 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
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 meta-data.

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 meta-data.

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 executed 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 executed 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 executed 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 executed 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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 Elements

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 executed, 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 Elements

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 executed 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


Expression XML Structures

The expression Extensible Markup Language (XML) schema defines the form of expressions that can be used in Commerce Server 2000. 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.

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

Expression 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.

<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 or intrinsic that is the actual data being evaluated. 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–2000 Microsoft Corporation.
Alle Rechte vorbehalten.


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 | 1 - January 2 - February 3 - March and so on | siteterm/CalendarSiteTerms.Months (number)
eee.currYear | number | number
eee.yesterday | date | date
eee.lastWeek | date | date
eee.lastMonth | Same as eee.currMonth | siteterm/CalendarSiteTerms.Months (number)

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>

The following example tests whether 10/1/2000 is a date in the previous week (last 7 days):

      <CLAUSE OPER="on-or-before">
         <PROPERTY ID="eee.lastWeek" TYPE="date" />
         <IMMED-VAL TYPE="date">10/1/2000</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
<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>


Profile XML Structures

This document contains the XML representations of the profile schemas and runtime instances for the profiles (Address, Organization, and UserObject) defined in Microsoft Commerce Server 2000. The ProfileService and ProfileObject objects expose methods that return these representations.

This section contains:

  • Schemas. Shows the XML representation of the profile schemas.

  • Runtime Representations. Shows the XML runtime representation for the profiles.

See Also

Profile Objects

Profile 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 2000. 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>


Runtime Representations

This section shows the attribute-centric Extensible Markup Language (XML) run time representations for the profiles defined in Commerce Server 2000. 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 Runtime Representation. Shows the attribute-centric runtime representation for the Address profile, which stores both user and organization addresses.

  • Organization Runtime Representation. Shows the attribute-centric runtime representation for the Organization profile, which stores information about organizations (trading partners, home companies, subsidiaries, and so forth).

  • UserObject Runtime Representation. Shows the attribute-centric runtime representation for the UserObject profile, which stores information about both registered and anonymous users.


Address Runtime Representation

This topic shows the XML attribute-centric runtime 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 Runtime Representation

This topic shows the XML attribute-centric runtime 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 Runtime Representation

This topic shows the XML attribute-centric runtime 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 2000 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.

  • Data Warehouse Schema. Describes the classes and relations that make up the logical schema and the meta-model used to create them.

  • Predictor Schema. Describes the tables used to define a Prediction model configuration.

  • Profiles Schema. Describes the pre-defined profile schemas: Address, Organization, and UserObject.


Analysis/Reporting Schema

This topic describes the schema used to create reports in Commerce Server 2000.

The section contains:

  • Architecture. Describes the overall architecture of 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

AsyncRpt Object

Creating Custom Reports

ReportRender Object

Running Reports


Architecture

Analysis and reporting in Commerce Server 2000 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. Multiple Data Warehouse and Online Analytical Processing (OLAP) data sources may be used by changing connection strings in Commerce Server Manager. The system administrator performs this task.

Reports are implemented as static or dynamic, and are based on either SQL or multidimensional expresssion (MDX) queries of SQL or OLAP databases, respectively. Static reports are HTML-based; dynamic reports are based on Microsoft Office 2000 Web Components (OWC).

Static report definitions consist of a query and parameter definitions. 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 computer that houses Commerce Server Business Desk. These reports can be opened through Business Desk and are displayed in Microsoft Internet Explorer.

Dynamic report definitions are stored as queries, and the pivot table view is stored in Extensible Markup Language (XML) in the Data Warehouse. Query results are displayed in the OWC Pivot Table component.

Definitions for the pre-defined reports are contained in the file CSReports.sql found in the Commerce Server installation directory. The CSReports.sql file populates the Report tables in the Commerce Server Data Warehouse. A "Report preparation DTS" task is available to process OLAP cubes and execute stored procedures to prepare imported data for reporting.


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 DateRangeOpnd_From or DateRangeOpnd_OnOrB4.

For DateRangeOpnd_From, the beginning date of a range to return.

For DateRangeOpnd_OnOrB4, the last date to include.

Not applicable for the other operand types.

Date format = MM/DD/YYYY

 Not applicable. Required for DateRangeOpnd_From.

The end date of a range to return.

Not applicable for the other operand types.
ParamType_Expression ExpOpnd_None

ExpOpnd_Equals

ExpOpnd_NotEquals

ExpOpnd_IsNull

ExpOpnd_IsNotNull

ExpOpnd_LessThan*

ExpOpnd_LessThanOrEquals*

ExpOpnd_GreaterThan*

ExpOpnd_GreaterThanOrEquals*

ExpOpnd_Like#

ExpOpnd_NotLike#

-------------------------

* - only used for numeric types.

# - only used for String types

 Not applicable for ExpOpnd_None.

Required for the other ParamTypes.

Valid types are:

  • Currency

  • Float

  • Integer

  • String
 Same operand types as Operand1.

Not applicable for ExpOpnd_None.

Optional for the other operand types.

Required if Operand2 is specified.
ParamType_SelectOrder SelectOrderOpnd_All*

SelectOrderOpnd_Distinct*

SelectOrderOpnd_Top

SelectOrderOpnd_Bottom#

-------------------------

* - SQL only

# - MDX only

 Required for SelectOrderOpnd_Top or SelectOrderOpnd_Bottom.

An Integer specifying the number of rows to return.

Not applicable for SelectOrderOpnd_All.

 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 SiteNameOpnd_All.

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_None | 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. This 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

The following figure identifies the report tables and their relations. Each table is described in the subsequent sections. Lastly, a table is presented showing which report tables are used for each report type.

Reporting Schema

Report
Instance
DbObject
Report
Instance
Param
Report
DbObject
Report
Status
Report
Param
Report
Dimension
Report

This section contains:

  • Report Table. Describes the attributes used in the main report definition table.

  • ReportDbObject Table. Describes database objects created for use in a static report.

  • 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.

  • 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 | Identity.
AggregationType | tinyint | NULL | None | Not used.
Category | nvarchar (128) | NULL | None | Category of the report.
ChartType | int | None | 3 | See 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 (16) | NULL | None | Long description.
Description | nvarchar (128) | NULL | None | Additional information.
DisplayName | nvarchar (128) | NULL | None | Name displayed in the user interface.
DmExport | bit | None | False (0) | True (1) specifies the report is exportable to Direct Mail.
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.
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 or MDX query.
ReportType | tinyint | NULL | None | See 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.
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) | True (1) specifies the report is exportable to User Personalization.
XMLData | ntext (16) | NULL | None | PivotTable XML data.

Chart Types

Most Microsoft Office 2000 Web Components charts can be used. The following table lists a few of the more common chart types. ChartType Enum constants can be found in the file MSOWCVBA.CHM in the folder \Program Files\Microsoft Office\Office\1033 after a full Microsoft Office installation.

ChartType | Value
Column: Clustered | 0
Bar: Clustered | 3
Line | 6
Pie | 18

Report Types

The following table lists the valid report types.

ReportType | Value
Dynamic_SQL | 0
Dynamic_MDX | 1
Static_SQL | 2
Static_MDX | 3


ReportDbObject Table

The following table describes database objects created for use in a static report.

Attribute name | Data type | Constraint | Default | Description
ReportDbObjectID | int | None | None | Identity.
ReportID | int | NOT NULL | None | ID of the report the object is associated with.
DbObjectBaseName | nvarchar (128) | NULL | None | Name of the table or view.
DbObjectDDL | ntext (16) | NULL | None | SQL query to run to create additional database objects used in the actual report query.
DbObjectType | nvarchar (128) | NULL | None | 0 = Table 1 = TempTable 2 = View


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 the dimension is associated with.
AggregationType | tinyint | None | 0 | Maps to aggregation types used by the CalcRenderer object.
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 in report query result.
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
ReportDbObjectID | int | NULL | None | ID of the report database object the dimension is associated with.
ReportStatusID | int | NOT NULL | None | ID of the report status.
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 status.
ParamName | nvarchar (128) | NULL | None | Tag name.
ParamType | tinyint | NULL | None | Type of parameter.
DataType | nvarchar (128) | NULL | None | Data type of Val1 and Val2. 0 = int 1 = float 2 = datetime 3 = char
Opnd1 | tinyint | NULL | 0 | First operand.
Val1 | nvarchar (128) | NULL | None | First value.
Opnd2 | tinyint | NULL | 0 | Second operand.
Val2 | nvarchar (128) | NULL | None | Second value.
FieldName | nvarchar (128) | NULL | None | Field in query used for expression.
Ordinal | tinyint | NULL | None | Used to specify the user interface rendering order.
AllowNull | bit | NOT NULL | False (0) | Reserved for future use.
Automatic | bit | NOT NULL | False (0) | Reserved for future use.


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.
ParamName | nvarchar (128) | NOT NULL | None | Tag name.
ParamDescription | nvarchar (128) | NOT NULL | None | Text displayed on the clickable bar.
ParamType | tinyint | NOT NULL | 0 | Type of parameter.
DataType | tinyint | NULL | None | Data type of Val1 and Val2. 0 = int 1 = float 2 = datetime 3 = char
Opnd1 | tinyint | NULL | None | First operand.
Val1 | nvarchar (128) | NULL | None | First value.
Opnd2 | tinyint | NULL | None | Second operand.
Val2 | nvarchar (128) | NULL | None | Second value.
FieldName | nvarchar (128) | NULL | None | Field in query used for expression.
Ordinal | tinyint | NULL | None | Used to specify the user interface rendering order.
AllowNull | bit | NOT NULL | False (0) | Reserved for future use
Automatic | bit | NOT NULL | False (0) | Reserved for future use.


ReportStatus Table

The following table describes the attributes used to supply status information about a report. This table is created at report run time.

Attribute name | Data type | Constraint | Default | Description
ReportStatusID | int | None | None | Identity.
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 | varchar (255) | NULL | None | Name of the person running the report.
RunDateTime | datetime | NULL | None | Date the report was run.


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
Design time table |  |  |  |
Report | X | X | X | X
ReportDbObject | X |  |  |
ReportDimension | X |  |  |
ReportParam | X | X |  |
Run time table |  |  |  |
ReportInstanceDbObject | X |  |  |
ReportInstanceParam | X | X |  |
ReportStatus | X | X |  |


Data Warehouse Schema

The Commerce Server 2000 Data Warehouse uses a logical schema to isolate applications from the underlying physical database. The basic structures of the logical schema are the class, data member, relation, and key. A meta-model containing a set of attributes (meta-data) is used to define these basic structures. Detailed knowledge of the logical schema is only needed when extending the schema to encompass a third-party data structure.

This section contains:

  • Data Warehouse Classes. Lists in alphabetical order the conceptual (logical) classes in the Data Warehouse.

  • Data Warehouse Meta-model. Describes the meta-model used to define the classes, data members, class relations, and class keys of the Data Warehouse.

  • Physical Schema. Describes the logical-to-physical mapping of the conceptual data to the underlying data store.

See Also

  • Working with the Data Warehouse


Data Warehouse Classes

This section provides an alphabetical list of the Commerce Server 2000 Data Warehouse logical classes. Information about the class data members, class relations, and class keys is included. The physical classes corresponding to these logical classes can be found in the Microsoft Management Console (MMC) under Microsoft SQL Servers\SQL Server Group\<server name>\Databases\<data warehouse database>\Tables.

The following table contains the relation types and the corresponding type codes used in the Relations table of each class description.

Relation Type | Code | Description
One-to-many | 2 | Each parent has zero or more children, each child has one parent. The identifier ("Classname"ID) of the parent is used as a foreign key by the child.
Many-to-many | 3 | Each parent has zero or more children, each child has one or more parents.
One-to-many with inheritance | 194 | Same as a one-to-many relation except all members of the parent are visible to the children. (In a regular one-to-many relation, only the key members of the parent class are visible.)

Commerce Server 2000 Data Warehouse Logical Classes

The following table contains links to the logical classes of the Data Warehouse.

Address | HttpStatus | Referrer
AdItem | ImportOptions | ReferrerDomain
Basket | IndustryCode | RegisteredUser
Campaign | IPRef | Request
CampaignEvent | LastUriByDate | RequestByDateByUriBy QueryString
CampaignEventsByDate AndUser | Level1Dir | ServerBinding
CampaignItem | Level2Dir | ServerGroup
CampaignItemTypes | Level3Dir | Site
CatalogGlobal | Level4Dir | SiteSummary
Category | Level5Dir | SiteURL
CatHierarchy | Level6Dir | SVQStringName
CommerceEvent | LinkMVQString Name | Target
Crawler | LinkSVQStringName | TargetGroup
Creative | LogUser | TargetGroupXRef
CreativeSize | MVQStringName | TaskHistory
CreativeType | OpenUserVisit | UniqueUserKey ByDate
CreativeTypeXRef | Order | URI
Customer | OrderDiscount | URIQuery
Date | OrderFormHeader | UserAgent
DMItem | OrderFormLine Items | VirtualServer
EventType | OrderGroup | Visit
FirstUriByDate | OrderGroupAddresses | VisitInfo
HitsByHour | PageGroup | Win32Status
HitsInfo | PageGroupXRef |
HostnameRef | Products


Address

This class stores user and organization addresses. By default, the Commerce Server 2000 User Profile Data Import Data Transformation Services (DTS) task imports profile data into this class.

Data Members

Data Member Name | Data Type | Default Value | Description
AddressName | WSTR | None | None
AddressType | LONG | None | 0 – Address 1 – ShipTo address 2 – BillTo address
City | WSTR | None | None
CountryCode | WSTR | None | Stores the country (ISO) code.
CountryName | WSTR | None | None
DateCreated | FILETIME | None | None
DateLastChanged | FILETIME | None | None
FirstName | WSTR | None | Stores the first name of the user.
Id | UUID | {00000000-0000-0000-0000-000000000000} | Stores the unique key for the object.
LastName | WSTR | None | Stores the last name of the user.
PostalCode | WSTR | None | Stores the postal or ZIP Code.
RegionCode | WSTR | None | None
RegionName | WSTR | None | Stores the state or region name.
SiteName | WSTR | Not available | None
TelephoneExtension | WSTR | None | None
TelephoneNumber | WSTR | None | None

Class Key

AddressKey is composed of a single data member, Id.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
AddressUserRel | Address | RegisteredUser | 2
SiteAddressRel | Site | Address | 3


AdItem

This class represents scheduled advertising content for a Web page. The class contains data members describing when the advertisement runs and codes linking the advertisement to the products it represents. The IndustryCode class provides a classification of the type of advertisement contained in the AdItem object.

Data Members

Data Member Name | Data Type | Default Value | Description
AdItemCustomerOrderNum | WSTR | None | Stores the code used by customers to order through the advertisement.
AdItemDaysOfWeekMask | SHORT | None | Indicates which days of the week the advertisement was shown.
AdItemEventsScheduled | LONG | None | Stores the number of scheduled events associated with the advertisement.
AdItemNum | LONG | 0 | Stores the unique key for the object.
AdItemTimeOfDayEnd | SHORT | None | Indicates the time of day the advertisement stopped being displayed.
AdItemTimeOfDayStart | SHORT | None | Indicates the time of day the advertisement started being displayed.
AdItemType | SHORT | None | Stores the type of advertisement.
AdItemWeight | LONG | None | Stores the relative importance of the advertisement.
CampItemNum | LONG | 0 | None
IndustryNum | LONG | 0 | None
SiteName | WSTR | None | Stores the name of the site associated with the advertisement.

Class Key

AdItemKey is composed of a single data member, AdItemNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
AdItemCampaignItem | CampaignItem | AdItem | 2
AdItemIndustryCode | IndustryCode | AdItem | 2


Basket

This class represents the business transaction involved in adding or removing a product from a shopping basket.

Data Members

Data Member Name | Data Type | Default Value | Description
EventName | WSTR | Not available | None
ProductNameCat | WSTR400 | Not available | None
SiteName | WSTR | Not available | None
TaskID | LONG | 0 | None
TimeStamp | FILETIME |  | None
URI | WSTR | Not available | None
UserId | WSTR | Not available | None
UserKey | UUID | {00000000-0000-0000-0000-000000000000} | None
VisitNum | IDENTITY | 0 | None

Class Key

No key is defined for this class. It is a dependent class.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
DateBasketTimeStamp | Date | Basket | 2
EventTypeBasketRel | EventType | Basket | 2
LogUserBasketRel | LogUser | Basket | 2
ProductsBasketRel | Products | Basket | 2
RegisteredUserBasketRel | RegisteredUser | Basket | 2
SiteBasket | Site | Basket | 2
TaskHistoryBasket | TaskHistory | Basket | 2
UriBasket | URI | Basket | 2


Campaign

This class defines the business process involved in running a marketing campaign for an advertiser. The Campaign class associates a customer (advertiser) with a set of CampaignItem objects (advertisements, discounts, direct mailings, or related sell items). A Campaign object is associated with an EventType object, which describes the marketing event.

A Customer object may have multiple Campaign objects associated with it; this represents multiple advertising campaigns for the customer over time. A Campaign may contain multiple sets of content items (CampaignItem objects). Each set of content items, in turn, may have multiple items (for example, AdItem objects), and may target multiple user groups. Finally, a Web page may contain multiple content items, and a content item may be included in multiple, distinct pages. All of these possibilities are represented through the one-to-many relations between classes.

Data Members

Data Member Name | Data Type | Default Value | Description
CampActive | SHORT | None | None
CampaignExported | FILETIME | None | Records when the Campaign object was exported.
CampaignModified | FILETIME | None | Records when the Campaign object was last modified.
CampaignModifiedBy | WSTR | None | Stores who last modified the Campaign object.
CampArchived | FILETIME | None | Records when the Campaign object was archived.
CampEnd | FILETIME | None | Records when the Campaign object was discontinued.
CampEventsSched | LONG | None | Stores the number of campaign events scheduled for the Campaign object.
CampLevelGoal | SHORT | None | None
CampName | WSTR | None | Stores the name of the Campaign object.
CampNum | LONG | 0 | Stores the unique key for the Campaign object.
CampStart | FILETIME | None | Records when the Campaign object became active.
CustomerComments | WSTR | None | Stores any comments made by the customer associated with the Campaign object.
CustomerNum | LONG | 0 | None
EventName | WSTR | Not available | None
SiteName | WSTR | None | Stores the name of the site associated with the Campaign object.

Class Key

CampaignKey is composed of a single data member, CampNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
CampaignCustomer | Customer | Campaign | 2
CampaignEventType | EventType | Campaign | 2
CampaignItemCampaign | Campaign | CampaignItem | 2


CampaignEvent

This class stores event information for marketing campaigns. An event for a marketing campaign includes hits on CampaignItem objects and business transactions involving CampaignItem objects.

Data Members

Data Member Name | Data Type | Default Value | Description
CampItemNum | LONG | 0 | None
CNT | WSTR | None | Records the number of Web events represented by the CampaignEvent object.
EventName | WSTR | Not available | None
EX | WSTR | None | None
PgNum | LONG | 0 | None
SiteName | WSTR | Not available | None
TaskID | LONG | 0 | None
TimeStamp | FILETIME |  | None
URI | WSTR | Not available | None
UserId | WSTR | Not available | None
UserKey | UUID | {00000000-0000-0000-0000-000000000000} | None
VisitNum | IDENTITY | 0 | None

Class Key

No key is defined for this class. It is a dependent class.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
CampaignItemCampaignEventRel | CampaignItem | CampaignEvent | 2
DateCampaignEventTimeStamp | Date | CampaignEvent | 2
EventTypeCampaignEventRel | EventType | CampaignEvent | 2
LogUserCampaignEventRel | LogUser | CampaignEvent | 2
PageGroupCampaignEventRel | PageGroup | CampaignEvent | 2
RegisteredUserCampaignEventRel | RegisteredUser | CampaignEvent | 2
SiteCampaignEvent | Site | CampaignEvent | 2
TaskHistoryCampaignEvent | TaskHistory | CampaignEvent | 2
UriCampaignEvent | URI | CampaignEvent | 2


CampaignItem

This class represents the content included in a marketing campaign (a Campaign object) and/or a scheduled advertisement (a Creative object). The content is represented by one or more of the following objects: AdItem, DmItem, or OrderDiscount.

A CampaignItem object may belong to a specific type of campaign item, specified by a link to a CampaignItemTypes object.

The content items may target specific groups of users; if this occurs, the CampaignItem object links to one or more TargetGroupXRef objects. The TargetGroupXRef class cross-references custom content items with targeted user groups.

Finally, the content items may be part of a Web page presenting multiple groups of custom content. A PageGroupXRef object cross-references the CampaignItem object with the page or pages containing the items.

A CampaignItem object may have multiple content items (for example, AdItem objects), and may target multiple user groups. A Web page may contain multiple content items, and a content item may be included in multiple, distinct pages. All of these possibilities are represented through the one-to-many relationships between classes.

Data Members

Data Member Name | Data Type | Default Value | Description
Active | SHORT | None | Records if the CampaignItem object is active.
ArchivedDate | FILETIME | None | Records when the CampaignItem object was archived.
CampItemNum | LONG | 0 | Stores the unique key for the CampaignItem object.
CampNum | LONG | 0 | None
Comments | WSTR | None | Records any comments regarding the objects.
CreativeNum | LONG | 0 | None
EndDate | FILETIME | None | Records when the CampaignItem object was discontinued.
ExportedDate | FILETIME | None | Records when the CampaignItem object was exported.
ExposureLimit | LONG | None | None
GUIDCampItemType | UUID | {00000000-0000-0000-0000-000000000000} | None
ModifiedBy | WSTR | None | Records who last modified the CampaignItem object.
ModifiedDate | FILETIME | None | Records when the CampaignItem object was last modified.
Name | WSTR | None | Stores the name of the CampaignItem object.
SiteName | WSTR | None | Records the name of the site associated with the CampaignItem object.
StartDate | FILETIME | None | Records when the CampaignItem object was activated.

Class Key

CampaignItemKey is composed of a single data member, CampItemNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
AdItemCampaignItem | CampaignItem | AdItem | 2
CampaignItemCampaign | Campaign | CampaignItem | 2
CampaignItemCampaignEventRel | CampaignItem | CampaignEvent | 2
CampaignItemCampaignItemEventsByDateAndUser | CampaignItem | CampaignItemEventsByDateAndUser | 2
CampaignItemCampaignItemTypes | CampaignItemTypes | CampaignItem | 2
CampaignItemCreative | Creative | CampaignItem | 2
CampaignItemPageGroupXrefRel | CampaignItem | PageGroupXref | 2
CampaignItemTargetGroupXrefRel | CampaignItem | TargetGroupXref | 2
DmItemCampaignItem | CampaignItem | DmItem | 2
OrderDiscountCampaignItem | CampaignItem | OrderDiscount | 2


CampaignItemEventsByDateAndUser

This class represents a summarization of campaign event data grouped by date and user.

Data Members

Data Member Name | Data Type | Default Value | Description
CampaignEventsCount | LONG | 0 | None
CampItemNum | LONG | 0 | Key member
EventName | WSTR | Not available | Key member
SiteName | WSTR | Not available | Key member
TaskID | LONG | 0 | Key member
TimeStamp | FILETIME | 1900-1-1 0:0:0.0 | Key member
userKey | UUID | {00000000-0000-0000-0000-000000000000} | Key member

Class Key

CampaignItemEventsByDateAndUserKey is composed of the following data members:

CampItemNum + EventName + SiteName + TaskID + TimeStamp +userKey

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
CampaignItemCampaignItemEventsByDateAndUser | CampaignItem | CampaignItemEventsByDateAndUser | 2
DateCampaignItemEventsByDateAndUser | Date | CampaignItemEventsByDateAndUser | 2
EventTypeCampaignItemEventsByDateAndUser | EventType | CampaignItemEventsByDateAndUser | 2
LogUserCampaignItemEventsByDateAndUser | LogUser | CampaignItemEventsByDateAndUser | 2
SiteCampaignItemEventsByDateAndUser | Site | CampaignItemEventsByDateAndUser | 2
TaskHistoryCampaignItemEventsByDateAndUser | TaskHistory | CampaignItemEventsByDateAndUser | 2


CampaignItemTypes

This class represents categories for custom Web page content. A CampaignItemTypes object links to zero or more CampaignItem objects.

Data Members

Data Member Name | Data Type | Default Value | Description
CampItemTypeName | WSTR | None | Stores the name of the item type.
CampItemTypeTable | WSTR | None | None
GUIDCampItemType | UUID | {00000000-0000-0000-0000-000000000000} | Stores the unique key for the object.
SiteName | WSTR | None | Stores the name of the site associated with the item type.

Class Key

CampaignItemTypesKey is composed of a single data member, GUIDCampItemType.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
CampaignItemCampaignItemTypes | CampaignItemTypes | CampaignItem | 2
CampaignItemTypesCreativeTypeXrefRel | CampaignItemTypes | CreativeTypeXref | 2


CatalogGlobal

This class represents a global catalog that stores other catalogs.

Data Members

Data Member Name | Data Type | Default Value | Description
CatalogName | WSTR | Not available | Stores the unique key (name) of the object.
Currency | WSTR | None | Not used by the Catalog system.
EndDate | DATETIME | None | Not used by the Catalog system.
Locale | LONG | None | Not used by the Catalog system.
ProductID | WSTR | None | The name of the column in the catalog that stores the ProductID.
SiteName | WSTR | Not available | None
StartDate | DATETIME | None | Not used by the Catalog system.
VariantID | WSTR | None | The name of the column in the catalog that stores the VariantID. If NULL, product variants are not supported.
WeightMeasure | WSTR | None | Not used by the Catalog system.

Class Key

CatalogGlobalKey is composed of a single data member, CatalogName.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
CatalogSite | Site | CatalogGlobal | 3


Category

This class represents a category of a sales catalog.

Data Members

Data Member Name | Data Type | Default Value | Description
CatalogName | WSTR | Not available | Stores the catalog name.
CategoryName | WSTR | Not available | Stores the category name.
CategoryNameCat | WSTR400 | Not available | Stores the unique key (catalog name concatenated with category name) for the object.

Class Key

CategoryKey is composed of a single data member, CategoryNameCat.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
Category | Category | Products | 3


CatHierarchy

This class represents a level of a hierarchical sales catalog.

Data Members

Data Member Name | Data Type | Default Value | Description
ChildCategoryCat | WSTR400 | Not available | Stores the catalog name concatenated with the child category name.
ParentCategoryCat | WSTR400 | Not available | Stores the catalog name concatenated with the parent category name.

Class Key

CatHierarchyKey is composed of the following data members:

ParentCategoryCat + ChildCategoryCat

Relations

No relations are defined for this class.


CommerceEvent

This class represents the mappings between commerce events and the logical classes that store the event data. Commerce events are specially structured query strings written by Commerce Server components.

Note

  • Two different class members should not point to the same storage member.

Data Members

Data Member Name | Data Type | Default Value | Description
CommerceEventClassName | WSTR | None | Stores the name of the event class.
CommerceEventMemberName | WSTR | None | Stores the name of the event member.
StorageClassName | WSTR | None | Stores the name of the storage class.
StorageMemberName | WSTR | None | Stores the name of the storage member.

Class Key

No key is defined for this class. It is a dependent class.

Relations

No relations are defined for this class.


Crawler

This class represents a Web crawler associated with a site. The Crawler object links to a Site object. A Site object may have more than one Crawler objects linked to it.

Data Members

Data Member Name | Data Type | Default Value | Description
CrawlerString | WSTR | Not available | Key member
SiteName | WSTR | Not available | Key member

Class Key

CrawlerKey is composed of the following data members:

CrawlerString + SiteName

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
SiteCrawlerRel | Site | Crawler | 2


Creative

This class defines the business process involved in scheduling Web content for a customer (for example, an advertiser). The type of content is recorded by a link to a CreativeType object. One or more CampaignItem objects describe the scheduled content; this content includes advertisements, discounts, related sell items, or direct mailings. A CreativeSize object defines the area of the Web page used to contain the content.

A Customer object may have multiple Creative objects associated with it; this represents multiple advertisements for the customer over time. A Creative advertisement may contain multiple sets of content items (CampaignItem objects). Each set of content items, in turn, may have multiple items (for example, AdItem objects), and may target multiple user groups. Finally, a Web page may contain multiple content items, and a content item may be included in multiple, distinct pages. All of these possibilities are represented through the one-to-many relationships between classes.

Data Members

Data Member Name | Data Type | Default Value | Description
CreativeNum | LONG | 0 | Stores the unique key for the Creative object.
CreativeReceived | FILETIME | None | None
CreativeSizeNum | LONG | 0 | None
CreativeTypeNum | LONG | 0 | None
CustomerNum | LONG | 0 | None
SiteName | WSTR | None | Stores the name of the site associated with the Creative object.

Class Key

CreativeKey is composed of a single data member, CreativeNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
CampaignItemCreative | Creative | CampaignItem | 2
CreativeCustomer | Customer | Creative | 2
CreativeSizeCreative | CreativeSize | Creative | 2
CreativeTypeCreative | CreativeType | Creative | 2


CreativeSize

This class represents the size of custom content on a Web page. A CreativeSize object links to one or more Creative objects.

Data Members

Data Member Name | Data Type | Default Value | Description
CreativeSizeNum | LONG | 0 | Stores the unique key for the object.
SiteName | WSTR | None | Stores the name of the site associated with the object.
SizeHeight | SHORT | None | Stores the height (in pixels) of the custom content size.
SizeName | WSTR | None | Stores the name of the custom content size object.
SizeTag | WSTR | None | Stores the tag associated with the custom content size.
SizeWidth | SHORT | None | Stores the width (in pixels) of the custom content size.

Class Key

CreativeSizeKey is composed of a single data member, CreativeSizeNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
CreativeSizeCreative | CreativeSize | Creative | 2


CreativeType

This class categorizes custom content for Web pages. A CreativeType object links to zero or more Creative objects.

Data Members

Data Member Name | Data Type | Default Value | Description
CreativeTypeName | WSTR | None | Stores the name of the object.
CreativeTypeNum | LONG | 0 | Stores the unique key for the object.
CreativeTypeTemplate | WSTR | None | None
SiteName | WSTR | None | None

Class Key

CreativeTypeKey is composed of a single data member, CreativeTypeNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
CreativeTypeCreative | CreativeType | Creative | 2
CreativeTypeCreativeTypeXrefRel | CreativeType | CreativeTypeXref | 2


CreativeTypeXRef

This class categorizes custom content for Web pages. One or more CreativeTypeXRef objects link to a CreativeType.

Data Members

Data Member Name | Data Type | Default Value | Description
CreativeTypeNum | LONG | 0 | Key member
GUIDCampItemType | UUID | {00000000-0000-0000-0000-000000000000} | Key member
SiteName | WSTR | Inherited | Stores the name of the site associated with the object.

Class Key

CreativeTypeXrefKey is composed of the following data members:

CreativeTypeNum + GUIDCampItemType

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
CampaignItemTypesCreativeTypeXrefRel | CampaignItemTypes | CreativeTypeXref | 2
CreativeTypeCreativeTypeXrefRel | CreativeType | CreativeTypeXref | 2


Customer

This class defines a customer who uses advertising through a Commerce Server 2000 Web site. A Customer object associates with an IndustryCode object, which defines the category of industry the customer belongs to. A link to one or more Campaign objects records the marketing campaigns for the customer. A link to one or more Creative objects records any custom advertisements for the customer.

Data Members

Data Member Name | Data Type | Default Value | Description
Address | WSTR | None | Stores the address for the Customer object.
Archived | FILETIME | None | Stores when the Customer object was archived.
Comments | WSTR | None | Stores any comments concerning the Customer object.
Contact | WSTR | None | Stores the name of the contact for the Customer object.
CustomerNum | LONG | 0 | Stores the unique key for the Customer object.
CustomerTypeNum | LONG | None | Stores a user-definable classification code.
Email | WSTR | None | Stores the e-mail address for the Customer object.
Exported | FILETIME | None | Stores when the Customer object was exported.
Fax | WSTR | None | Stores the fax number for the Customer object.
IndustryNum | LONG | 0 | None
Modified | FILETIME | None | Stores when the Customer object was last modified.
ModifiedBy | WSTR | None | Stores who last modified the Customer object.
Name | WSTR | None | Stores the name of the Customer object.
PassWord | WSTR | None | Stores the password for the Customer object.
Phone | WSTR | None | Stores the phone number for the Customer object.
SiteName | WSTR | None | Stores the name of the site associated with the Customer object.
URL | WSTR | None | Records the URL associated with the Customer object.
UserName | WSTR | None | Stores the user name for the Customer object.

Class Key

CustomerKey is composed of a single data member, CustomerNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
CampaignCustomer | Customer | Campaign | 2
CreativeCustomer | Customer | Creative | 2
CustomerIndustryCode | IndustryCode | Customer | 2


Date

This class represents dates and times.

Data Members

Data Member Name | Data Type | Default Value | Description
DTimestamp | FILETIME | 1900-1-1 0:0:0.0 | Stores the timestamp.

Class Key

DateKey is composed of a single data member, DTimestamp.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
DateBasketTimeStamp | Date | Basket | 2
DateCampaignEventTimeStamp | Date | CampaignEvent | 2
DateCampaignItemEventsByDateAndUser | Date | CampaignItemEventsByDateAndUser | 2
DateFirstUriByDate | Date | FirstUriByDate | 2
DateHitsByHour | Date | HitsByHour | 2
DateHitsInfo | Date | HitsInfo | 2
DateLastUriByDate | Date | LastUriByDate | 2
DateOrderGroup | Date | OrderGroup | 2
DateOrderTimeStamp | Date | Order | 2
DateRequestByDateByUriByQueryString | Date | RequestByDateByUriByQueryString | 2
DateToOrderFormHeader | Date | OrderFormHeader | 194
DateUniqueUserKeyByDate | Date | UniqueUserKeyByDate | 2
DateVisitInfoFirstTimeStamp | Date | VisitInfo | 2


DMItem

This class represents scheduled direct mailing items. The class contains data members detailing the direct mail content, including address and format information.

Data Members

Data Member Name | Data Type | Default Value | Description
CampItemNum | LONG | 0 | None
DmItemAttachment | WSTR | None | Stores the name of the attachment for the direct mail item.
DmItemDefformat | SHORT | None | Stores the default format code for the direct mail item.
DmItemDesc | WSTR | None | Stores a description of the direct mail item.
DmItemFrom | WSTR | None | Stores the e-mail address for the "from" field in the direct mail item.
DmItemNum | LONG | 0 | Stores the unique key for the object.
DmItemPersonalized | SHORT | None | Indicates if the direct mail item is personalized.
DmItemReplyTo | WSTR | None | Stores the "reply-to" e-mail address for the direct mail item.
DmItemScheduleId | WSTR | None | None
DmItemSource | WSTR | None | Stores the name of the source for the direct mail item.
DmItemSubj | WSTR | None | Stores the subject line for the direct mail item.
DmItemUserFlags | LONG | None | Stores an encoded set of flags governing user data associated with the direct mail item.
GUIDDmItemListId | UUID | None | None
GUIDDmItemOptout | UUID | None | None
GUIDDmItemTestListId | UUID | None | None
SiteName | WSTR | None | Stores the name of the site associated with the object.

Class Key

DmItemKey is composed of a single data member, DmItemNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
DmItemCampaignItem | CampaignItem | DmItem | 2


EventType

This class represents a categorization of marketing events. An EventType object describes a marketing event, and associates with one or more Campaign objects representing the marketing campaigns in the event.

Data Members

Data Member Name | Data Type | Default Value | Description
EventDescription | WSTR | None | Stores a description of the campaign event.
EventName | WSTR | Not available | Stores the unique key for the object.
SiteName | WSTR | None | Stores the name of the site associated with the object.

Class Key

EventTypeKey is composed of a single data member, EventName.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
CampaignEventType | EventType | Campaign | 2
EventTypeBasketRel | EventType | Basket | 2
EventTypeCampaignEventRel | EventType | CampaignEvent | 2
EventTypeCampaignItemEventsByDateAndUser | EventType | CampaignItemEventsByDateAndUser | 2
EventTypeOrderRel | EventType | Order | 2


FirstUriByDate

The class represents a summarization of information about the first Uniform Resource Identifier (URI) in each visit grouped by date.

Data Members

Data Member Name | Data Type | Default Value | Description
Date | FILETIME | 1900-1-1 0:0:0.0 | Key member
FirstUri | WSTR | Not available | Key member
SiteName | WSTR | Not available | Key member
TaskID | LONG | 0 | Key member
VisitCount | LONG | 0 | None

Class Key

FirstUriByDateKey is composed of the following data members:

Date + FirstUri + SiteName + TaskID

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
DateFirstUriByDate | Date | FirstUriByDate | 2
SiteFirstUriByDate | Site | FirstUriByDate | 2
TaskHistoryFirstUriByDate | TaskHistory | FirstUriByDate | 2
uriFirstUriByDate | URI | FirstUriByDate | 2


HitsByHour

The class represents a summarization of hits information grouped on an hour-by-hour basis.

Data Members

Data Member Name | Data Type | Default Value | Description
HitsCount | LONG | 0 | None
Hour | FILETIME | 1900-1-1 0:0:0.0 | Key member
SiteName | WSTR | Not available | Key member
TaskID | LONG | 0 | Key member
TotalBytesReceived | LONGREAL | 0 | None
TotalBytesSent | LONGREAL | 0 | None

Class Key

HitsByHourKey is composed of the following data members:

Hour + SiteName + TaskID

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
DateHitsByHour | Date | HitsByHour | 2
SiteHitsByHour | Site | HitsByHour | 2
TaskHistoryHitsByHour | TaskHistory | HitsByHour | 2


HitsInfo

This class represents summary information about hits on a Web site.

Data Members

Data Member Name | Data Type | Default Value | Description
Date | FILETIME | 1900-1-1 0:0:0.0 | Key member
HitsCount | LONG | 0 | None
HttpStatus | ULONG | 0 | Key member
IsRequest | SHORT | 0 | Key member
SiteName | WSTR | Not available | Key member
TaskID | LONG | 0 | Key member
URI | WSTR | Not available | Key member
Win32Status | ULONG | 0 | Key member

Class Key

HitsInfoKey is composed of the following data members:

Date + HttpStatus + IsRequest + SiteName + TaskID + URI + Win32Status

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
DateHitsInfo | Date | HitsInfo | 2
HttpStatusHitsInfo | HttpStatus | HitsInfo | 2
SiteHitsInfo | Site | HitsInfo | 2
TaskHistoryHitsInfo | TaskHistory | HitsInfo | 2
uriHitsInfo | URI | HitsInfo | 2
Win32StatusHitsInfo | Win32Status | HitsInfo | 2


HostnameRef

This class represents the host name reference for an Internet Protocol (IP) address. A HostnameRef object links to one or more IPRef objects.

Data Members

Data Member Name | Data Type | Default Value | Description
Hostname | WSTR | Not available | Stores the unique key for the object.

Class Key

HostnameRefKey is composed of a single data member, Hostname.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
HostnameRefIPRefRel | HostnameRef | IPRef | 2


HttpStatus

This class represents the HTTP status codes as stored in the Web log file.

Data Members

Data Member Name | Data Type | Default Value | Description
HttpStatus | ULONG | 0 | Stores the unique key for the object.
IsSuccessCode | SHORT |  | 2xx - success 3xx - redirect 4xx - failure 5xx - server setup incorrect

Class Key

HttpStatusKey is composed of a single data member, HttpStatus.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
HttpStatusHitsInfo | HttpStatus | HitsInfo | 2
HttpStatusRequest | HttpStatus | Request | 194


ImportOptions

The class represents the options for importing information.

Data Members

Data Member Name | Data Type | Default Value | Description
HitsBufferMaxSize | LONG | None | None
NumImportPipeline | LONG | None | None

Class Key

No key is defined for this class. It is a dependent class.

Relations

No relations are defined for this class.


IndustryCode

This class categorizes the type of industry a customer or advertising item represents. An IndustryCode object links to zero or more Customer objects and zero or more AdItem objects.

Data Members

Data Member Name | Data Type | Default Value | Description
IndustryCode | WSTR | None | Stores the code for the type of industry represented by the object.
IndustryNum | LONG | 0 | Stores the unique key for the object.
SiteName | WSTR | None | Stores the name of the site associated with the object.

Class Key

IndustryCodeKey is composed of a single data member, IndustryNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
AdItemIndustryCode | IndustryCode | AdItem | 2
CustomerIndustryCode | IndustryCode | Customer | 2


IPRef

This class represents an Internet Protocol (IP) reference for a LogUser object. An IPRef object contains information on the IP address, number of look-ups associated with the address, and the status of the reference.

An IPRef object associates with a HostNameRef object, describing the host associated with the IP address.

Data Members

Data Member Name | Data Type | Default Value | Description
Hostname | WSTR | Not available | None
IPAddress | WSTR | 0.0.0.0 | Stores the unique key for the object.
LastModifiedTime | FILETIME | None | Records when the object was last modified.
Status | LONG | None | Indicates whether the IP address is resolved: 0 - Unresolved 1 - Resolved

Class Key

IPRefKey is composed of a single data member, IPAddress.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
HostnameRefIPRefRel | HostnameRef | IPRef | 2
IPRefUserRel | IPRef | LogUser | 2


LastUriByDate

The class represents a summarization of information about the last URI in each visit grouped by date.

Data Members

Data Member Name | Data Type | Default Value | Description
Date | FILETIME | 1900-1-1 0:0:0.0 | Key member
LastUri | WSTR | Not available | Key member
SiteName | WSTR | Not available | Key member
TaskID | LONG | 0 | Key member
VisitCount | LONG | 0 | None

Class Key

LastUriByDateKey is composed of the following data members:

Date + LastUri + SiteName + TaskID

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
DateLastUriByDate | Date | LastUriByDate | 2
SiteLastUriByDate | Site | LastUriByDate | 2
TaskHistoryLastUriByDate | TaskHistory | LastUriByDate | 2
uriLastUriByDate | URI | LastUriByDate | 2


Level1Dir

This class represents the first level in a hierarchical directory structure. Each level contains a link to a URI object.

Data Members

Data Member Name | Data Type | Default Value | Description
DirName1 | WSTR | / | Stores the unique key for the object.

Class Key

Level1DirKey is composed of a single data member, DirName1.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
Level1DirURIRel | Level1Dir | URI | 2


Level2Dir

This class represents the second level in a hierarchical directory structure. Each level contains a link to a URI object.

Data Members

Data Member Name | Data Type | Default Value | Description
DirName2 | WSTR | * | Stores the unique key for the object.

Class Key

Level2DirKey is composed of a single data member, DirName2.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
Level2DirURIRel | Level2Dir | URI | 2


Level3Dir

This class represents the third level in a hierarchical directory structure. Each level contains a link to a URI object.

Data Members

Data Member Name | Data Type | Default Value | Description
DirName3 | WSTR | * | Stores the unique key for the object.

Class Key

Level3DirKey is composed of a single data member, DirName3.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
Level3DirURIRel | Level3Dir | URI | 2


Level4Dir

This class represents the fourth level in a hierarchical directory structure. Each level contains a link to a URI object.

Data Members

Data Member Name | Data Type | Default Value | Description
DirName4 | WSTR | * | Stores the unique key for the object.

Class Key

Level4DirKey is composed of a single data member, DirName4.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
Level4DirURIRel | Level4Dir | URI | 2


Level5Dir

This class represents the fifth level in a hierarchical directory structure. Each level contains a link to a URI object.

Data Members

Data Member Name | Data Type | Default Value | Description
DirName5 | WSTR | * | Stores the unique key for the object.

Class Key

Level5DirKey is composed of a single data member, DirName5.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
Level5DirURIRel | Level5Dir | URI | 2


Level6Dir

This class represents the sixth and final level in a hierarchical directory structure. Each level contains a link to a URI object.

Data Members

Data Member Name | Data Type | Default Value | Description
DirName6 | WSTR | * | Stores the unique key for the object.

Class Key

Level6DirKey is composed of a single data member, DirName6.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
Level6DirURIRel | Level6Dir | URI | 2


LinkMVQStringName

This class links a SiteURL object to a MVQStringName object. The MVQStringName object represents a custom query string that queries multi-value columns in the data store.

Data Members

Data Member Name | Data Type | Default Value | Description
QStringName | WSTR | DEFAULT | Key member
URL | WSTR | Not available | Key member

Class Key

LinkMVQStringNameKey is composed of the following data members:

QStringName + URLID

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
MVQStringNameLinkMVQStringNameRel | MVQStringName | LinkMVQStringName | 2
SiteURLLinkMVQStringNameRel | SiteURL | LinkMVQStringName | 2


LinkSVQStringName

This class links a SiteURL object to a SVQStringName object. The SVQStringName object represents a custom query string that queries single-value columns in the data store.

Data Members

Data Member Name | Data Type | Default Value | Description
QStringName | WSTR | DEFAULT | Key member
URL | WSTR | Not available | Key member

Class Key

LinkSVQStringNameKey is composed of the following data members:

QStringName + URL

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
SiteURLLinkSVQStringNameRel | SiteURL | LinkSVQStringName | 2
SVQStringNameLinkSVQStringNameRel | SVQStringName | LinkSVQStringName | 2


LogUser

This class stores information on user interactions with a Commerce Server 2000 Web site.

Someone who visits a Commerce Server 2000 Web site is called a user. A LogUser object is created for every user and used to record information about that user (such as cookie data, user name, and so on). A Visit object is created every time the user visits the Web site. The new Visit object is linked to the LogUser object for that user. A LogUser object may represent an anonymous user, a user who is part of an organization, or a user who is registered on the Commerce Server 2000 Web site.

The Internet Protocol (IP) information for the user is stored in an IPRef object associated with the LogUser object. A HostNameRef object stores host name information for the IPRef object.

Data Members

Data Member Name | Data Type | Default Value | Description
DateCreated | FILETIME | None | None
HasCookie | SHORT |  | None
IpAddress | WSTR | 0.0.0.0 | None
UserDomainName | WSTR | None | Stores the Domain Name Service (DNS) domain name associated with the user.
UserId | WSTR | Not available | None
UserKey | UUID | {00000000-0000-0000-0000-000000000000} | Stores the unique key for the object.
UserName | WSTR | Not available | Stores the user name (cs-username) from a World Wide Web Consortium (W3C) formatted log file.

Class Key

LogUserKey is composed of a single data member, UserKey.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
IPRefUserRel | IPRef | LogUser | 2
LogUserBasketRel | LogUser | Basket | 2
LogUserCampaignEventRel | LogUser | CampaignEvent | 2
LogUserCampaignItemEventsByDateAndUser | LogUser | CampaignItemEventsByDateAndUser | 2
LogUserOrderRel | LogUser | Order | 2
LogUserRequestRel | LogUser | Request | 2
LogUserUniqueUserKeyByDate | LogUser | UniqueUserKeyByDate | 2
RegisteredUserUserRel | RegisteredUser | LogUser | 2
UserVisit | LogUser | Visit | 194
UserVisitInfo | LogUser | VisitInfo | 2


MVQStringName

This class represents the names for custom multi-value query strings. The MVQStringName object associates with a SiteURL object through a LinkMVQStringName object.

Data Members

Data Member Name | Data Type | Default Value | Description
QStringName | WSTR | DEFAULT | Stores the name of the multi-value query string.

Class Key

MVQStringNameKey is composed of a single data member, QStringName.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
MVQStringNameLinkMVQStringNameRel | MVQStringName | LinkMVQStringName | 2


OpenUserVisit

This class represents a visit to a Web site that was open when the containing log files were imported. This allows the open visit to be connected and closed in the following log imports. After a visit is completed (closed), the OpenUserVisit object is deleted and a VisitInfo object is instantiated.

Data Members

Data Member Name | Data Type | Default Value | Description
CountOfRequest | ULONG | None | None
FirstRequestNum | IDENTITY | None | None
FirstTimeStamp | FILETIME | None | None
FirstUri | WSTR | Not available | None
LastRequestNum | IDENTITY | None | None
LastTimeStamp | FILETIME | None | None
LastUri | WSTR | Not available | None
ReferrerDomainName | WSTR | Not available | None
SecondRequestNum | IDENTITY | None | None
SecondUri | WSTR | Not available | None
SiteName | WSTR | Not available | None
TaskID | LONG | 0 | None
UserAgentName | WSTR | Not available | None
UserId | WSTR | Not available | None
UserKey | UUID | None | None
VisitNum | IDENTITY | 0 | Stores the unique key for the object.

Class Key

OpenUserVisitKey is composed of a single data member, VisitNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
ReferrerDomainOpenUserVisit | ReferrerDomain | OpenUserVisit | 2
RegisteredUserOpenUserVisit | RegisteredUser | OpenUserVisit | 2
SiteOpenUserVisitRel | Site | OpenUserVisit | 2
TaskHistoryOpenUserVisitRel | TaskHistory | OpenUserVisit | 2
UserAgentOpenUserVisit | UserAgent | OpenUserVisit | 2


Order

This class stores requests to save or submit purchase orders.

Data Members

Data Member Name | Data Type | Default Value | Description
EventName | WSTR | Not available | None
ordergroup_id | UUID | {00000000-0000-0000-0000-000000000000} | None
SiteName | WSTR | Not available | None
TaskID | LONG | 0 | None
TimeStamp | FILETIME |  | None
URI | WSTR | Not available | None
UserId | WSTR | Not available | None
UserKey | UUID | {00000000-0000-0000-0000-000000000000} | None
VisitNum | IDENTITY | 0 | None

Class Key

No key is defined for this class. It is a dependent class.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
DateOrderTimeStamp | Date | Order | 2
EventTypeOrderRel | EventType | Order | 2
LogUserOrderRel | LogUser | Order | 2
OrderGroupOrderRel | OrderGroup | Order | 2
RegisteredUserOrderRel | RegisteredUser | Order | 2
SiteOrder | Site | Order | 2
TaskHistoryOrder | TaskHistory | Order | 2
UriOrder | URI | Order | 2


OrderDiscount

This class represents discounted sale items. The class contains data members describing the items and conditions of the sale.

Data Members

Data Member Name | Data Type | Default Value | Description
CampItemNum | LONG | 0 | None
DiscAwardExpr | LONG | None | None
DiscAwardMax | LONG | None | Stores the maximum amount of discount awarded.
DiscClickRequired | SHORT | None | Indicates if a click is required to activate the discount.
DiscCondBasis | LONG | None | Stores the base condition code for the discount.
DiscCondExpr | LONG | None | None
DiscCondMin | LONGREAL | None | Stores the minimum amount that must be spent before applying the discount.
DiscDescription | WSTR | None | Stores a description of the order discount item.
DiscDisjointCondAward | SHORT | None | Indicates if there is a disjoint condition governing awards of the discount.
DiscExprUsedForDisplay | SHORT | None | Indicates if the discount item is used only for display.
DiscLimit | LONG | None | Stores the limit on discount item orders.
DiscNum | LONG | 0 | Stores the unique key for the object.
DiscOfferType LONG None Stores a code indicating the type of discount offer:
  • 1 - Flat amount

  • 2 - Percentage
DiscOfferValue | LONGREAL | None | Stores the value of the discount offer.
DiscOrderLevelDiscount | SHORT | None | None
DiscQtyCondMin | LONG | None | Stores the minimum quantity required before the discount can be applied.
DiscRank | LONG | None | Stores the relative rank for the discount item.
DiscSpecialOfferType | WSTR | None | Stores a code indicating the type of special offer associated with the discount.
DiscTemplate | LONG | None | Stores the code for the template used for the discount item.
SiteName | WSTR | None | Stores the name of the site associated with the object.

Class Key

OrderDiscountKey is composed of a single data member, DiscNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
OrderDiscountCampaignItem | CampaignItem | OrderDiscount | 2


OrderFormHeader

This class represents the header information for an order form. An OrderFormHeader object has contact information, buyer information, and other data necessary to process an order form. An OrderFormHeader object links to zero or more OrderFormLineItems objects, representing the ordered items. An OrderGroup object, representing a purchase order, links to zero or more OrderFormHeader objects.

Data Members

Data Member Name | Data Type | Default Value | Description
billing_currency | WSTR | None | None
buying_org_name | WSTR | None | Stores the name of the buyer organization.
cc_auth_number | WSTR | None | Stores the authorization code for the credit card.
d_DateCreated | DATETIME | None | None
d_DateLastChanged | DATETIME | None | None
g_UserIDChangedBy | WSTR | None | None
OrderForm_date | DATETIME | None | Stores the date of the order form.
OrderForm_date_UnNorm | DATETIME | None | None
OrderForm_Id | UUID | {00000000-0000-0000-0000-000000000000} | Stores the second part of the unique key for the object.
ordergroup_id | UUID | {00000000-0000-0000-0000-000000000000} | Stores the first part of the unique key for the object.
po_number | WSTR | None | None
receiver_email_address | WSTR | None | None
receiver_fax_number | WSTR | None | None
receiver_first_name | WSTR | None | Stores the first name of the receiver.
receiver_last_name | WSTR | None | Stores the last name of the receiver.
receiver_tel_number | WSTR | None | None
saved_cc_expiration | WSTR | None | Stores the expiration code for the saved credit card.
saved_cc_number | WSTR | None | Stores the number of the saved credit card.
saved_cy_tax_total | CURRENCY | None | None
saved_cy_total_total | CURRENCY | None | None
selling_org_name | WSTR | None | Stores the name of the seller organization.
tax_exempt_code | WSTR | None | None
tax_exempt_id | WSTR | None | None
total_lineitems | LONG | None | None
user_email_address | WSTR | None | Stores the e-mail address for the purchaser.
user_fax_number | WSTR | None | Stores the fax number for the purchaser.
user_first_name | WSTR | None | Stores the first name of the purchaser.
user_id | WSTR | None | Stores the user ID for the purchaser.
user_last_name | WSTR | None | Stores the last name of the purchaser.
user_name | WSTR | None | Stores the name of the purchaser.
user_org_id | WSTR | None | Stores the identifier of the organization for the purchaser.
user_org_name | WSTR | None | Stores the organization name of the purchaser.
user_tel_number | WSTR | None | Stores the phone number for the purchaser.

Class Key

OrderFormHeaderKey is composed of the following data members:

ordergroup_id + OrderForm_Id

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
DateToOrderFormHeader | Date | OrderFormHeader | 194
OrderFormHeaderToOrderFormLineItems | OrderFormHeader | OrderFormLineItems | 2
OrderGroupToOrderFormHeader | OrderGroup | OrderFormHeader | 2


OrderFormLineItems

This class represents the items in an order form. An OrderFormHeader object, representing the information used to process the order form, links to zero or more OrderFormLineItems objects.

Data Members

Data Member Name | Data Type | Default Value | Description
cy_lineitem_total | CURRENCY | None | None
cy_unit_price | CURRENCY | None | Stores the sales price of the item after any discounts or adjustments.
d_DateCreated | DATETIME | None | None
d_DateLastChanged | DATETIME | None | None
description | WSTR | None | None
g_UserIDChangedBy | WSTR | None | None
lineitem_id | WSTR | Not available | Key member
OrderForm_id | UUID | {00000000-0000-0000-0000-000000000000} | Key member
ordergroup_id | UUID | {00000000-0000-0000-0000-000000000000} | Key member
product_catalog | WSTR | None | None
product_catalog_base | WSTR | None | None
product_id | WSTR | None | None
product_identifying_property | WSTR | None | None
product_Variant_id | WSTR | None | None
product_variant_identifying_property | WSTR | None | None
ProductNameCat | WSTR400 | Not available | Stores the catalog name concatenated with the product name and the variant name.
quantity | LONG | None | None
shipping_address_id | WSTR | None | None
shipping_method_name | WSTR | None | None
tax_exempt_code | WSTR | None | None
tax_id | WSTR | None | None
unit_code | WSTR | None | None

Class Key

OrderFormLineItemsKey is composed of the following data members:

lineitem_id + OrderForm_id + ordergroup_id

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
OrderFormHeaderToOrderFormLineItems | OrderFormHeader | OrderFormLineItems | 2
OrderFormLineItemsToOrderGroupAddresses | OrderGroupAddresses | OrderFormLineItems | 2
OrderFormLineItemsToProducts | Products | OrderFormLineItems | 2
OrderGroupToOrderFormLineItems | OrderGroup | OrderFormLineItems | 2


OrderGroup

This class describes purchase order information. Specifically, the OrderGroup object links to one or more OrderFormHeader objects and one or more OrderGroupAddresses objects. The OrderFormHeader class represents control information for the purchase order such as billing codes, tax codes, and other data required to process the purchase order. The OrderFormHeader object links to one or more OrderFormLineItems objects, which describe the specific products to be purchased. The OrderGroupAddresses class represents mailing and shipping information for purchase orders.

Data Members

Data Member Name | Data Type | Default Value | Description
alt_currency | WSTR | None | Stores the alternate currency type for the order.
alt_lcid | LONG | None | Stores the alternate currency identifier code for the order.
billing_currency | WSTR | None | Stores the type of currency used in the order.
d_DateCreated | DATETIME | None | Records the date the order was created.
d_DateLastChanged | DATETIME | None | Records the date the order was last changed.
default_currency | WSTR | None | Stores the default type of currency used in the order.
default_lcid | LONG | None | Stores the local currency identifier code for the order.
g_UserIDChangedBy | UUID | None | Stores the globally unique identifier (GUID) of the user who last changed the order.
order_approval_decision_date | DATETIME | None | Records when the order was approved.
order_create_date | DATETIME | None | Records when the order was created.
order_number | WSTR | None | Stores the order number.
order_status_code | LONG | None | Stores a code indicating the status of the order. User definable.
ordergroup_id | UUID | {00000000-0000-0000-0000-000000000000} | Stores the unique key for the object.
previous_order_id | UUID | None | Store the previous order_id for the order, if it exists.
saved_cy_oadjust_subtotal | CURRENCY | None | Stores the adusted current year subtotal for the order.
saved_cy_total_total | CURRENCY | None | Stores the saved current year total for the order.
saved_order_name | WSTR | None | Stores the saved name for the order.
SiteName | WSTR | Not available | None
total_lineitems | LONG | None | Stores the total number of line items.
user_first_name | WSTR | None | Stores the first name of the user associated with the order.
user_id | WSTR | None | Stores the universally unique identifier (UUID) of the user associated with the order.
user_last_name | WSTR | None | Stores the last name of the user associated with the order.
user_name | WSTR | None | Stores the full name of the user associated with the order.
user_org_name | WSTR | None | Stores the name of the organization associated with the order.

Class Key

OrderGroupKey is composed of a single data member, ordergroup_id.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
DateOrderGroup | Date | OrderGroup | 2
OrderGroupOrderRel | OrderGroup | Order | 2
OrderGroupSite | Site | OrderGroup | 2
OrderGroupToOrderFormHeader | OrderGroup | OrderFormHeader | 2
OrderGroupToOrderFormLineItems | OrderGroup | OrderFormLineItems | 2
OrderGroupToOrderGroupAddresses | OrderGroup | OrderGroupAddresses | 2
UserToOrderGroup | RegisteredUser | OrderGroup | 2


OrderGroupAddresses

This class represents mailing and shipping information for purchase orders.

Data Members

Data Member Name | Data Type | Default Value | Description
Address_id | WSTR | Not available | Key member
Address_Name | WSTR | None | None
Address_type | LONG | None | None
City | WSTR | None | None
country_code | WSTR | None | None
Country_Name | WSTR | None | None
d_DateCreated | DATETIME | None | None
d_DateLastChanged | DATETIME | None | None
First_Name | WSTR | None | None
g_UserIDChangedBy | UUID | None | None
Last_Name | WSTR | None | None
ordergroup_id | UUID | {00000000-0000-0000-0000-000000000000} | Key member
Postal_Code | WSTR | None | None
region_code | WSTR | None | None
region_name | WSTR | None | None
tel_number | WSTR | None | None

Class Key

OrderGroupAddressesKey is composed of the following data members:

Address_id + ordergroup_id

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
OrderFormLineItemsToOrderGroupAddresses | OrderGroupAddresses | OrderFormLineItems | 2
OrderGroupToOrderGroupAddresses | OrderGroup | OrderGroupAddresses | 2


PageGroup

This class represents a group of custom content items used on a Web page for a marketing campaign. The page is part of one or more marketing campaign events; a link from the PageGroup object to one or more CampaignEvent objects represents this information. CampaignItem objects represent the custom content items, and link to the PageGroup object through one or more PageGroupXRef objects.

Data Members

Data Member Name | Data Type | Default Value | Description
PgDescription | WSTR | None | Stores a description of the Web page.
PgNum | LONG | 0 | Stores the unique key for the object.
PgTag | WSTR | None | Stores the HTML tag associated with the Web page.
SiteName | WSTR | None | None

Class Key

PageGroupKey is composed of a single data member, PgNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
PageGroupCampaignEventRel | PageGroup | CampaignEvent | 2
PageGroupPageGroupXRefRel | PageGroup | PageGroupXref | 2


PageGroupXRef

This class cross-references custom Web page content with the Web page or logical set of Web pages that contain the content. A PageGroupXRef associates a CampaignItem object, which describes the custom content, with a PageGroup object. The PageGroup object represents a Web page or logical set of Web pages that contains custom content.

A single piece of custom content may span multiple Web pages; this is represented by a CampaignItem object linked to multiple PageGroupXRef objects. A single Web page or logical set of Web pages may have multiple separate content items; this is represented by a PageGroup object linked to multiple PageGroupXRef objects.

Data Members

Data Member Name | Data Type | Default Value | Description
CampItemNum | LONG | 0 | Key member
PgNum | LONG | 0 | Key member
SiteName | WSTR | None | Stores the name of the site associated with the object.

Class Key

PageGroupXRefKey is composed of the following data members:

CampItemNum + PageNum

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
CampaignItemPageGroupXRefRel | CampaignItem | PageGroupXRef | 2
PageGroupPageGroupXRefRel | PageGroup | PageGroupXRef | 2


Products

This class represents the products contained in a sales catalog.

Data Members

Data Member Name | Data Type | Default Value | Description
CatalogName | WSTR | Not available | Stores the name of the catalog containing the product.
CategoryNameCat | WSTR400 | Not available | Stores the catalog name concatenated with the category name containing the product.
cy_list_price | CURRENCY | Not available | None
ProductNameCat | WSTR400 | Not available | Stores the catalog name concatenated with the product name and the variant name.
ProductId | WSTR | Not available | None
VariantId | WSTR | Not available | None

Class Key

ProductsKey is composed of a single data member, ProductNameCat.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
Category | Category | Products | 3
ProductsBasketRel | Products | Basket | 2
OrderFormLineItemsToProducts | Products | OrderFormLineItems | 2


Referrer

This class represents the referring Uniform Resource Locator (URL) for a request.

Data Members

Data Member Name | Data Type | Default Value | Description
ReferrerURL | WSTR | Not available | Stores the unique key for the object.

Class Key

ReferrerKey is composed of a single data member, ReferrerURL.

Relations

No relations are defined for this class.


ReferrerDomain

This class represents the referring domain for a request.

Data Members

Data Member Name | Data Type | Default Value | Description
ReferrerDomainName | WSTR | Not available | Stores the unique key for the object.

Class Key

ReferrerDomainKey is composed of a single data member, ReferrerDomainName.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
ReferrerDomainOpenUserVisit | ReferrerDomain | OpenUserVisit | 2
ReferrerDomainRequest | ReferrerDomain | Request | 194
ReferrerDomainVisitInfo | ReferrerDomain | VisitInfo | 194


RegisteredUser

This class represents user profile data. By default, the Commerce Server 2000 User Profile Data Import Data Transformation Services (DTS) Task imports data from the UserObject table into this class. Data in this table may or may not correspond to users of the Commerce Server 2000 Web site.

Data Members

Data Member Name | Data Type | Default Value | Description
AccountClass | LONG | None | Stores a classification code for the user account.
AccountStatus | LONG | None | Stores the account status for the user: 0 - inactive 1 - active
ApprovalLimit | LONG | None | Stores the approved spending limit for the user.
ApprovalLimitCurrency | WSTR | None | Stores the type of currency for the spending limit.
ApprovingManagerID | LONG | None | Stores an identifier code for the manager who approved the spending limit for the user.
AuthType | SHORT | None | Stores the type of authentication required for the user.
DateCreated | FILETIME | None | Records when the object was created.
DateLastChanged | FILETIME | None | Records when the object was last changed.
DateRegistered | FILETIME | None | Records the date and time when the user registered on the site.
DefaultBlanketPONumber | WSTR | None | Stores the default purchase order number for the user.
DefaultBlanketPOProfileID | LONG | None | Stores the default purchase order profile ID.
DefaultCostCenterNumber | WSTR | None | Stores the default cost center identifier.
DefaultCostCenterProfileID | LONG | None | Stores the default cost center profile identifier.
Email | WSTR | None | Stores the e-mail address for the user.
EmployeeClassID | LONG | None | Stores a classification code for the user employee ID.
FaxNumber | WSTR | None | Stores the fax number of the user.
FirstName | WSTR | None | Stores the first name of the user.
ID | UUID | {00000000-0000-0000-0000-000000000000} | None
IDCode | WSTR | None | Stores a code for the user ID.
IDCodeQualifier | WSTR | None | Stores a code for the qualifier of the user identification.
LastName | WSTR | None | Stores the last name of the user.
LocationID | LONG | None | Not used.
Logon_Name | WSTR | None | Stores the logon name of the user.
Name | WSTR | None | Not used.
OrgID | WSTR | None | Stores an identifier of the organization for the user.
ShipToID | LONG | None | Not used.
ShipToMethodCode | LONG | None | Stores a code for the method of shipping preferred by the user.
SiteName | WSTR | Not available | None
TelephoneNumber | WSTR | None | Stores the phone number of the user.
UserID | WSTR | Not available | Stores the unique key for the object.
UserIDChangedBy | WSTR | None | Records who last changed/set the UserID.
UserTitle | WSTR | None | Stores the title of the user.
UserType | LONG | Registered (1). | Stores the user type: 0 - Guest (Anonymous) 1 - Registered

Class Key

RegisteredUserKey is composed of a single data member, UserID.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
AddressUserRel | Address | RegisteredUser | 2
RegisteredUserBasketRel | RegisteredUser | Basket | 2
RegisteredUserCampaignEventRel | RegisteredUser | CampaignEvent | 2
RegisteredUserOpenUserVisit | RegisteredUser | OpenUserVisit | 2
RegisteredUserOrderRel | RegisteredUser | Order | 2
RegisteredUserRequestRel | RegisteredUser | Request | 2
RegisteredUserUserRel | RegisteredUser | LogUser | 2
RegisteredUserVisitInfoRel | RegisteredUser | VisitInfo | 2
SiteRegisteredUserRel | Site | RegisteredUser | 3
UserToOrderGroup | RegisteredUser | OrderGroup | 2


Request

This class represents a request made in the context of a visit. A Request object connects to information describing the user and other details of the visit.

A request may be a part of a Uniform Resource Identifier (URI), in which case a URI object is linked to the Request object. The query string contained in the URI is represented by a URIQuery object linked to the Request object.

Alternatively, a Request may be made through a site Uniform Resource Locator (URL). The site URL is represented by a SiteURL object linked to the Request object through a URI object. The SiteURL object may represent an actual Web site or a virtual server. If the Request object involves query strings through the site, the SiteURL object will have one or more LinkSVQStringName or LinkMVQStringName objects linking the SiteURL object to the query strings.

Data Members

Data Member Name | Data Type | Default Value | Description
BytesReceived | LONGREAL | None | Stores the number of bytes received while processing the request.
BytesSent | LONGREAL | None | Stores the number of bytes sent while processing the request.
DirName1 | WSTR | / | None
DirName2 | WSTR | Inherited | None
DirName3 | WSTR | Inherited | None
DirName4 | WSTR | Inherited | None
DirName5 | WSTR | Inherited | None
DirName6 | WSTR | Inherited | None
HasCommerceEvent | SHORT | None | None
HttpStatus | ULONG | 0 | None
IsRequest | SHORT | None | Identifies the object as a request or a link between a Visit object and Web configuration objects. 0 - Link 1 - Request
IsSecure | SHORT | None | None
IsSuccessCode | SHORT | None | None
Processed | BOOL | 0 | None
QueryString | WSTR | No query string | None
ReferrerDomainName | WSTR | Not available | None
RequestIndex | SHORT | None | None
RequestNum | IDENTITY | 0 | Stores the unique key for the object.
SiteName | WSTR | Not available | None
TaskID | LONG | 0 | None
Timestamp | FILETIME | None | Records when the object was created.
Title | WSTR | Inherited | None
URI | WSTR | Not available | None
URL | WSTR | Not available | None
UserAgentBrowserCategoryID | ULONG | 1 | None
UserAgentName | WSTR | Not available | None
UserAgentOperatingSystemID | ULONG | 1 | None
UserAgentPortalID | ULONG | 1 | None
UserAgentSecurityID | ULONG | 1 | None
UserAgentVersionID | ULONG | 1 | None
UserID | WSTR | Not available | None
UserKey | UUID | {00000000-0000-0000-0000-000000000000} | None
VisitNum | IDENTITY | 0 | None
Win32Status | ULONG | 0 | None

Class Key

RequestKey is composed of a single data member, RequestNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
HttpStatusRequest | HttpStatus | Request | 194
LogUserRequestRel | LogUser | Request | 2
ReferrerDomainRequest | ReferrerDomain | Request | 194
RegisteredUserRequestRel | RegisteredUser | Request | 2
SiteRequestRel | Site | Request | 2
TaskHistoryRequestRel | TaskHistory | Request | 2
UriQueryRequest | UriQuery | Request | 2
UriRequest | URI | Request | 194
UserAgentRequest | UserAgent | Request | 194
Win32StatusRequest | Win32Status | Request | 194


RequestByDateByUriByQueryString

The class represents a summarization.

Data Members

Data Member Name | Data Type | Default Value | Description
Date | FILETIME | 1900-1-1 0:0:0.0 | Key member
QueryString | WSTR | Not available | Key member
RequestCount | LONG | 0 | None
SiteName | WSTR | Not available | Key member
TaskID | LONG | 0 | Key member
URI | WSTR | Not available | Key member

Class Key

RequestByDateByUriByQueryStringKey is composed of the following data members:

Date + QueryString + SiteName + TaskID + URI

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
DateRequestByDateByUriByQueryString | Date | RequestByDateByUriByQueryString | 2
SiteRequestByDateByUriByQueryString | Site | RequestByDateByUriByQueryString | 2
TaskHistoryRequestByDateByUriByQueryString | TaskHistory | RequestByDateByUriByQueryString | 2
uriRequestByDateByUriByQueryString | URI | RequestByDateByUriByQueryString | 2
UriQueryRequestByDateByUriByQueryString | UriQuery | RequestByDateByUriByQueryString | 2


ServerBinding

This class represents a binding to a server for a virtual server. A VirtualServer object links to one or more ServerBinding objects.

Data Members

Data Member Name | Data Type | Default Value | Description
HostHeaderName | WSTR | Not available | Key member
IPAddress | WSTR | 0.0.0.0 | Key member
IPPort | LONG | 0 | Key member
IsSecureBinding | SHORT | None | None

Class Key

ServerBindingKey is composed of the following data members:

HostHeaderName + IPAddress + IPPort

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
ServerBindingVirtualServerRel | ServerBinding | VirtualServer | 2


ServerGroup

This class represents server groups. A ServerGroup object links to one or more VirtualServer objects.

Data Members

Data Member Name | Data Type | Default Value | Description
LogFileDir | WSTR | None | Stores the default directory used to store log files for the server group.
LogFormatID | LONG | None | None
ServerGroupName | WSTR | Not available | Stores the unique key for the object.
Timezone | LONG | None | Stores a code indicating the time zone for the server group.

Class Key

ServerGroupKey is composed of a single data member, ServerGroupName.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
ServerGroupVirtualServerRel | ServerGroup | VirtualServer | 2


Site

This class represents a Commerce Server 2000 Web site. All logged information pertaining to the use of a Commerce Server 2000 Web site is stored in or connected to a Site object. The Uniform Resource Locator (URL) for the site is a composition of a SiteURL object and a URI object.

The site may be part of a virtual server group. If this occurs, the site connects to a VirtualServer object through a SiteURL object. A business transaction may occur through a Uniform Resource Identifier (URI) query; this is represented by a link between one or more Request objects and the URI object. Any visits to the site are linked through one or more Visit objects. If the site has a crawler associated with it, a Crawler object is created and linked to the Site object.

Data Members

Data Member Name | Data Type | Default Value | Description
CookieIdentifiers | WSTR | None | None
EndImportAction | LONG | None | Stores a code for the action taken when a log import ends.
IsAdjustTimeStamps | SHORT | None | Indicates if the timestamps in the log data are adjusted for the site.
IsExcludeSpiders | SHORT | None | Indicates if the site object excludes spiders.
IsSeparateUriAndQueryString | SHORT | None | None
IsUseCookiesForInferences | SHORT | None | Indicates if the site object uses cookies for inferences.
IsUseUPMCookiesForInferences | SHORT | None | None
IsUseUsernameForInferences | SHORT | None | Indicates if the site uses user names for inferences.
OverlapAction | LONG | None | Stores a code for the action taken when log files for the site overlap.
OverlapMins | LONG | None | Stores the number of minutes consecutive log files for the site overlap between imports.
SiteName | WSTR | Not available | Stores the unique key for the site.
TimeZone | LONG | None | Stores a code for the time zone of the site.
VisitTimeout | LONG | None | Stores the time limit (in minutes) applied to visits on the Site object.
WeekStartDay | SHORT | None | Stores the day the week starts on.

Class Key

SiteKey is composed of a single data member, SiteName.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
CatalogSite | Site | CatalogGlobal | 3
OrderGroupSite | Site | OrderGroup | 2
SiteAddressRel | Site | Address | 3
SiteBasket | Site | Basket | 2
SiteCampaignEvent | Site | CampaignEvent | 2
SiteCampaignItemEventsByDateAndUser | Site | CampaignItemEventsByDateAndUser | 2
SiteCrawlerRel | Site | Crawler | 2
SiteFirstUriByDate | Site | FirstUriByDate | 2
SiteHitsByHour | Site | HitsByHour | 2
SiteHitsInfo | Site | HitsInfo | 2
SiteLastUriByDate | Site | LastUriByDate | 2
SiteOpenUserVisitRel | Site | OpenUserVisit | 2
SiteOrder | Site | Order | 2
SiteRegisteredUserRel | Site | RegisteredUser | 3
SiteRequestByDateByUriByQueryString | Site | RequestByDateByUriByQueryString | 2
SiteRequestRel | Site | Request | 2
SiteSiteSummaryRel | Site | SiteSummary | 2
SiteSiteURIRel | Site | SiteURL | 2
SiteUniqueUserKeyByDate | Site | UniqueUserKeyByDate | 2
SiteVisitInfoRel | Site | VisitInfo | 2
SiteVisitRel | Site | Visit | 2


SiteSummary

This class stores summary information, such as total visits and total hits, pertaining to a site.

Data Members

Data Member Name | Data Type | Default Value | Description
EndTime | FILETIME | None | Records when the summary finished.
SiteName | WSTR | Not available | Stores the unique key for the object.
StartTime | FILETIME | None | Records when the summary was started.
TotalBadServerCount | LONG | None | Stores the total number of bad server connections to the site.
TotalBadSiteCount | LONG | None | Stores the total number of bad site connections to the site.
TotalExcludeCriteriaCount | LONG | None | Stores the total of exclude criteria for the site.
TotalExcludeHostCount | LONG | None | Stores the total number of hosts excluded from the site.
TotalHits | LONG | None | Stores the total number of hits on the site.
TotalImportHits | LONG | None | Stores the total number of import hits on the site.
TotalMatchCrawlerCount | LONG | None | Stores the total number of crawler matches on the site.
TotalVisits | LONG | None | Stores the total number of visits to the site.

Class Key

SiteSummaryKey is composed of a single data member, SiteName.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
SiteSiteSummaryRel | Site | SiteSummary | 2


SiteURL

This class represents a Uniform Resource Locator (URL) based connection between sites and virtual servers. The relationship between a Web site and a virtual server is represented by a link to a Site object and a link to a VirtualServer object.

The SiteURL object stores the first portion, or top level, (for example, domain name) of a site. If needed, a URI object is linked to the SiteURL object to form the entire URL for the site.

If there are any query strings (SVQStringName or MVQStringName objects) associated with the site URL, they will be linked to the SiteURL object using the LinkSVQStringName or LinkMVQStringName objects.

Data Members

Data Member Name | Data Type | Default Value | Description
ExcludeCriteria | WSTR | None | Stores the exclude criteria for the URL.
ExcludeHosts | WSTR | None | Stores the hosts excluded from access through the URL.
GoodStatusCodes | WSTR | None | None
IncludeCriteria | WSTR | None | None
IsChopTopLevelDir | SHORT | None | Indicates if the top-level directory is cut from the URL.
SiteName | WSTR | Not available | None
URL | WSTR | Not available | Stores the first portion, or top level, of a site. Stores the URL as the unique key for the object.
URLExt | WSTR | None | Stores the extended data for the URL.
VServerName | WSTR | Not available | None

Class Key

SiteURLKey is composed of a single data member, URL.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
SiteSiteURIRel | Site | SiteURL | 2
SiteURLLinkMVQStringNameRel | SiteURL | LinkMVQStringName | 2
SiteURLLinkSVQStringNameRel | SiteURL | LinkSVQStringName | 2
SiteURLURIRel | SiteURL | URI | 2
VirtualServerSiteURLRel | VirtualServer | SiteURL | 3


SVQStringName

This class represents custom single-valued query strings associated with a Uniform Resource Locator (URL). An SVQStringName object associates with a SiteURL object through a LinkSVQStringName object.

Data Members

Data Member Name | Data Type | Default Value | Description
QStringName | WSTR | DEFAULT | Stores the unique key for the object.

Class Key

SVQStringNameKey is composed of a single data member, QStringName.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
SVQStringNameLinkSVQStringNameRel | SVQStringName | LinkSVQStringName | 2


Target

This class defines a target for marketing and custom Web content, such as a particular type of user. A TargetGroup object links to one or more Target objects to form target groups. The custom content for the group of targets links to the TargetGroup object through a TargetGroupXRef object.

Data Members

Data Member Name | Data Type | Default Value | Description
SiteName | WSTR | None | Stores the site name associated with the object.
TargetAction | LONG | None | Stores the action code for the target.
TargetExprID | LONG | None | Stores the expression ID for the target.
TargetGroupNum | LONG | 0 | None
TargetNum | LONG | 0 | Stores the unique key for the object.

Class Key

TargetKey is composed of a single data member, TargetNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
TargetGroupTarget | TargetGroup | Target | 2


TargetGroup

This class defines a group of targets for marketing and custom Web content. One or more Target objects linked with a TargetGroup object forms a target group. A target group links to the content for the group through a TargetGroupXRef object.

Data Members

Data Member Name | Data Type | Default Value | Description
SiteName | WSTR | None | Stores the site associated with the object.
TargetGroupName | WSTR | None | Stores the name of the group of targets.
TargetGroupNum | LONG | 0 | Stores the unique key for the object.

Class Key

TargetGroupKey is composed of a single data member, TargetGroupNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
TargetGroupTarget | TargetGroup | Target | 2
TargetGroupTargetGroupXRefRel | TargetGroup | TargetGroupXRef | 2


TargetGroupXRef

This class cross-references a target group with the custom content for the target group. Target objects form target groups by linking with a TargetGroup object. The custom content, represented by a CampaignItem object, links to the TargetGroup object through the TargetGroupXRef object.

Data Members

Data Member Name | Data Type | Default Value | Description
CampItemNum | LONG | 0 | Key member
SiteName | WSTR | None | Stores the name of the site associated with the object.
TargetGroupNum | LONG | 0 | Key member

Class Key

TargetGroupXrefKey is composed of the following data members:

CampItemNum + TargetGroupNum

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
CampaignItemTargetGroupXRefRel | CampaignItem | TargetGroupXRef | 2
TargetGroupTargetGroupXRefRel | TargetGroup | TargetGroupXRef | 2


TaskHistory

This class tracks Data Transformation Services (DTS) task execution and the outcome of the execution. It maintains a history of all the imports (and deletes) that have occurred within the Data Warehouse.

Data Members

Data Member Name | Data Type | Default Value | Description
CommerceSiteName | WSTR | None | None
Description | WSTR | None | None
DetailLevel | WSTR | None | None
EndTime | FILETIME | None | None
OlapExport | SHORT | None | None
OperationDetailID | LONG | None | None
OperationID | LONG | None | None
SourceInfo | WSTR | None | None
StartTime | FILETIME | None | None
Status | LONG | None | None
TaskID | LONG | 0 | Stores the unique key for the object.

Class Key

TaskHistoryKey is composed of a single data member, TaskID.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
TaskHistoryBasket | TaskHistory | Basket | 2
TaskHistoryCampaignEvent | TaskHistory | CampaignEvent | 2
TaskHistoryCampaignItemEventsByDateAndUser | TaskHistory | CampaignItemEventsByDateAndUser | 2
TaskHistoryFirstUriByDate | TaskHistory | FirstUriByDate | 2
TaskHistoryHitsByHour | TaskHistory | HitsByHour | 2
TaskHistoryHitsInfo | TaskHistory | HitsInfo | 2
TaskHistoryLastUriByDate | TaskHistory | LastUriByDate | 2
TaskHistoryOpenUserVisitRel | TaskHistory | OpenUserVisit | 2
TaskHistoryOrder | TaskHistory | Order | 2
TaskHistoryRequestByDateByUriByQueryString | TaskHistory | RequestByDateByUriByQueryString | 2
TaskHistoryRequestRel | TaskHistory | Request | 2
TaskHistoryUniqueUserKeyByDate | TaskHistory | UniqueUserKeyByDate | 2
TaskHistoryVisitInfoRel | TaskHistory | VisitInfo | 2
TaskHistoryVisitRel | TaskHistory | Visit | 2


UniqueUserKeyByDate

The class represents a summarization of user information grouped by date.

Data Members

Data Member Name | Data Type | Default Value | Description
CountRequests | ULONG | 0 | None
Date | FILETIME | 1900-1-1 0:0:0.0 | Key member
SiteName | WSTR | Not available | Key member
TaskID | LONG | 0 | Key member
userKey | UUID | {00000000-0000-0000-0000-000000000000} | Key member
VisitCount | LONG | 0 | None

Class Key

UniqueUserKeyByDateKey is composed of the following data members:

Date + SiteName + TaskID + userKey

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
DateUniqueUserKeyByDate | Date | UniqueUserKeyByDate | 2
LogUserUniqueUserKeyByDate | LogUser | UniqueUserKeyByDate | 2
SiteUniqueUserKeyByDate | Site | UniqueUserKeyByDate | 2
TaskHistoryUniqueUserKeyByDate | TaskHistory | UniqueUserKeyByDate | 2


URI

This class represents Uniform Resource Identifiers (URIs) used to distinguish a Uniform Resource Locator (URL), as well as make queries and transactions on Commerce Server 2000 Web sites. A URI object associates with the Commerce Server 2000 Web site through a SiteURL object.

A site is identified by a SiteURL object, which stores the first portion, or top level, (for example, domain name) of a site and a linked URI object, which stores the remainer of the URL for the site. If the URI object represents a hierarchical directory structure, it will be linked to the appropriate LevelNDir objects.

A business transaction may occur through a URI query; this is represented by a link between one or more Request objects and the URI object.

A URI object only represents a page, not graphics, banners, and so on.

Data Members

Data Member Name | Data Type | Default Value | Description
DirName1 | WSTR | / | None
DirName2 | WSTR | Inherited | None
DirName3 | WSTR | Inherited | None
DirName4 | WSTR | Inherited | None
DirName5 | WSTR | Inherited | None
DirName6 | WSTR | Inherited | None
Title | WSTR | None | Stores a title for the URI.
URI | WSTR | Not available | Stores the unique key for the object.
URL | WSTR | Not available | None

Class Key

URIKey is composed of a single data member, URI.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
Level1DirURIRel | Level1Dir | URI | 2
Level2DirURIRel | Level2Dir | URI | 2
Level3DirURIRel | Level3Dir | URI | 2
Level4DirURIRel | Level4Dir | URI | 2
Level5DirURIRel | Level5Dir | URI | 2
Level6DirURIRel | Level6Dir | URI | 2
SiteURLURIRel | SiteURL | URI | 2
UriBasket | URI | Basket | 2
UriCampaignEvent | URI | CampaignEvent | 2
uriFirstUriByDate | URI | FirstUriByDate | 2
uriHitsInfo | URI | HitsInfo | 2
uriLastUriByDate | URI | LastUriByDate | 2
UriOrder | URI | Order | 2
UriRequest | URI | Request | 194
uriRequestByDateByUriByQueryString | URI | RequestByDateByUriByQueryString | 2


URIQuery

This class represents a Uniform Resource Identifier (URI) query associated with one or more transaction requests. A URIQuery object links to one or more Request objects.

Data Members

Data Member Name | Data Type | Default Value | Description
QueryString | WSTR | No query string | Stores the unique key for the object.

Class Key

URIQueryKey is composed of a single data member, QueryString.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
URIQueryRequest | URIQuery | Request | 2
URIQueryRequestByDateByUriByQueryString | URIQuery | RequestByDateByUriByQueryString | 2


UserAgent

This class represents the software infrastructure, such as the operating system and browser, used by a user in a visit to a Web site. A UserAgent object links to one or more Request objects and one or more VisitInfo objects.

Data Members

Data Member Name | Data Type | Default Value | Description
Processed | BOOL | 0 | None
UserAgentBrowserCategoryID | ULONG | 1 | None
UserAgentName | WSTR | Not available | Stores the unique key for the object.
UserAgentOperatingSystemID | ULONG | 1 | None
UserAgentPortalID | ULONG | 1 | None
UserAgentSecurityID | ULONG | 1 | None
UserAgentVersionID | ULONG | 1 | None

Class Key

UserAgentKey is composed of a single data member, UserAgentName.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
UserAgentOpenUserVisit | UserAgent | OpenUserVisit | 2
UserAgentRequest | UserAgent | Request | 194
UserAgentVisitInfo | UserAgent | VisitInfo | 194


VirtualServer

This class represents a virtual server, which logically binds independent Web sites to one or more servers.

The Web sites associated with the virtual server are represented through a set of SiteURL objects. The binding to a server occurs through association with one or more ServerBinding objects.

The VirtualServer object may be a part of a larger group of servers. If this occurs, the VirtualServer objects will be linked through a ServerGroup object.

If business transactions are made through a Uniform Resource Identifier (URI) to the virtual server, a Request object is linked through the appropriate SiteURL and URI objects.

Data Members

Data Member Name | Data Type | Default Value | Description
Description | WSTR | None | Stores a description of the virtual server.
DirIndexes | WSTR | None | Stores the directory indices for the virtual server.
HostHeaderName | WSTR | Not available | None
IPAddress | WSTR | 0.0.0.0 | None
IPPort | LONG | 0 | None
LocalDomain | WSTR | None | Stores the name of the local domain for the virtual server.
ServerGroupName | WSTR | Not available | None
VServerName | WSTR | Not available | Stores the unique key for the object.
VServerType | LONG | None | Stores a code for the type of virtual server.

Class Key

VirtualServerKey is composed of a single data member, VServerName.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
ServerBindingVirtualServerRel | ServerBinding | VirtualServer | 2
ServerGroupVirtualServerRel | ServerGroup | VirtualServer | 2
VirtualServerSiteURLRel | VirtualServer | SiteURL | 3


Visit

This class records information describing user activity on a Commerce Server 2000 Web site. A Visit object is associated with a LogUser object and a Site object. The LogUser object contains information about the user. A Visit object describes the context of a visit, including the time and date of the visit.

Data Members

Data Member Name | Data Type | Default Value | Description
DateCreated | FILETIME | None | None
HasCookie | SHORT | None | None
IPAddress | WSTR | 0.0.0.0 | None
SiteName | WSTR | Not available | None
TaskID | LONG | 0 | None
Timestamp | FILETIME | None | Records when the visit started.
UserDomainName | WSTR | None | None
UserID | WSTR | Not available | None
UserKey | UUID | {00000000-0000-0000-0000-000000000000} | None
UserName | WSTR | Not available | None
VisitNum | IDENTITY | 0 | Stores the unique key for the object.

Class Key

VisitKey is composed of a single data member, VisitNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
SiteVisitRel | Site | Visit | 2
TaskHistoryVisitRel | TaskHistory | Visit | 2
UserVisit | LogUser | Visit | 194


VisitInfo

This class represents information about a completed visit to a Web site. If a visit has not been completed at log import time, an OpenUserVisit object is instantiated instead.

The VisitInfo class is the primary structure for recording user activity on a Commerce Server 2000 Web site. Someone who interacts with a Commerce Server 2000 Web site is called a user. The VisitInfo class records information describing user activity.

A VisitInfo object is associated with a LogUser object and a UserAgent object. The LogUser object contains information on the user. The UserAgent object contains information describing the software and computer the user is using.

A VisitInfo object describes the context of a visit, including the time and date of the visit. The VisitInfo object links to a Date structure that contains date information.

Data Members

Data Member Name | Data Type | Default Value | Description
CountOfRequest | ULONG | None | None
Duration | ULONG | None | None
FirstHTimeStamp | FILETIME | None | None
FirstRequestNum | IDENTITY | None | None
FirstTimeStamp | FILETIME | None | Stores the time the visit started.
FirstUri | WSTR | Not available | None
LastRequestNum | IDENTITY | None | None
LastUri | WSTR | Not available | None
Processed | BOOL | 0 | None
ReferrerDomainName | WSTR | Not available | None
SecondRequestNum | IDENTITY | None | None
SecondUri | WSTR | Not available | None
SiteName | WSTR | Not available | None
TaskID | LONG | 0 | None
UserAgentBrowserCategoryID | ULONG | 1 | None
UserAgentName | WSTR | Not available | None
UserAgentOperatingSystemID | ULONG | 1 | None
UserAgentPortalID | ULONG | 1 | None
UserAgentSecurityID | ULONG | 1 | None
UserAgentVersionID | ULONG | 1 | None
UserID | WSTR | Not available | None
UserKey | UUID | {00000000-0000-0000-0000-000000000000} | None
VisitNum | IDENTITY | 0 | Stores the unique key for the object.

Class Key

VisitInfoKey is composed of a single data member, VisitNum.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
DateVisitInfoFirstTimeStamp | Date | VisitInfo | 2
ReferrerDomainVisitInfo | ReferrerDomain | VisitInfo | 194
RegisteredUserVisitInfoRel | RegisteredUser | VisitInfo | 2
SiteVisitInfoRel | Site | VisitInfo | 2
TaskHistoryVisitInfoRel | TaskHistory | VisitInfo | 2
UserAgentVisitInfo | UserAgent | VisitInfo | 194
UserVisitInfo | LogUser | VisitInfo | 2


Win32Status

This class represents the Win32 status codes as stored in the Web log file.

Data Members

Data Member Name | Data Type | Default Value | Description
Win32Status | ULONG | 0 | Stores the unique key for the object.

Class Key

Win32StatusKey is composed of a single data member, Win32Status.

Relations

For a description of the relation type, see Data Warehouse Classes.

Relation Name | Parent | Child | Type
Win32StatusHitsInfo | Win32Status | HitsInfo | 2
Win32StatusRequest | Win32Status | Request | 194


Data Warehouse Meta-Model

The meta-model of the Commerce Server 2000 Data Warehouse is a set of definitions used to construct the Data Warehouse logical schema. These definitions, or meta-data, describe how to create classes, data members, relations, and keys. Additionally, the meta-data describes the data source used for the logical schema. The primary purpose of the meta-data is to separate the logical schema from the physical schema. The logical schema may be accessed and extended without detailed knowledge of the underlying physical store. Using the values given to the meta-data attributes, the OLE DB Provider for Commerce Server creates the physical tables and columns to store the user data. This ensures consistency and simplifies the use of the Data Warehouse. For information about creating a new class of objects, see Extending the Data Warehouse.

Note

  • When accessing the meta-data tables through ActiveX Data Objects (ADO), fields appear in the returned Record object in addition to those listed in the tables. ADO does not recognize the objects contained in these fields and produces a run time error. To access these objects, use OLE DB Provider for Commerce Server. The following is a partial list of these columns (ADO Field objects):

    __COMMIT, __NEXT, ALLMEMBERS, ATTRIBUTES, CHILDCLSDEF, CHILDREFMEMDEF, CLASSGUID, CLSDEF, DEFAULTVIEW, KEYDEFINITIONS, KEYMEMBERS, MEMBERDEF, MEMDEFS, MEMNONREFDEFS, PARENTCLASSES, PARENTCLSDEF, PARENTKEYDEF, PERSISTENTKEYMEMS, REFERENCEMEMBERS, REFMEMBERS, RELMEMDEFS, TOPLEVELMEMBERS

This section contains:

  • Conventions. Describes the values used in the meta-data tables.

  • Class Definition Meta-data. Describes the attributes used for the class definitions.

  • Member Definition Meta-data. Describes the attributes used for the class member definitions.

  • Key Definition Meta-data. Describes the attributes used for the class key definitions.

  • Key Member Definition Meta-data. Describes the attributes used for the key member definitions.

  • Relation Definition Meta-data. Describes the attributes used for the class relation definitions.

  • Relation Member Definition Meta-data. Describes the attributes used for the class member relation definitions.

  • Source Definition Meta-data. Describes the attributes of the data source for the Data Warehouse.


Conventions

Class/Member/Key/Relation Names

  • Valid characters are: a - z, A - Z, 0 - 9, and '_'.

  • The double underscore character, '__', is not allowed.

Requirement Column

  • A value in quotes is required and must be supplied by the user.

  • An unquoted value indicates the default, which can be overridden by the user.

  • "Leave blank" indicates that the attribute should not be assigned.

  • "Optional" indicates that the value is user-assigned but can be left blank.

  • "Required" indicates that the value is user-assigned and required.


Class Definition Meta-data

The Class meta-data contains attributes used to define a class. The OLE DB Provider for Commerce Server creates the tables and links required to store the class information based on the attribute values. A class defines a set of logically related data. Classes typically model physical objects (user, product, server, organization) or conceptual entities (visit, Web hit, event). Classes are combined into logical structures through class relations.

For an overview of the logical grouping of these classes into primary business categories, see Primary Business Categories.

For information about creating a new class, see Creating a New Class.

The following table shows the attributes used for the class definitions. A set of these attributes is stored in the ClsDef table for each class defined.

Attribute | Data Type | Constraint | Requirement | Description
ClassDefID | int | NOT NULL | Leave blank | Stores the unique identifier for the class.
BaseClassName | nvarchar (128) | NULL | Optional | Stores the name of the base class. Used for aggregations.
CatalogID | int | NULL | Leave blank | Stores the identifier for the schema catalog.
CatalogName | nvarchar (128) | NULL | Leave blank | Stores the name of the schema catalog, "DWSchema."
ClassDefName | nvarchar (128) | NULL | Required | Stores the name of the class.
ClassGUID | varbinary (16) | NULL | Leave blank | Stores the GUID for the class.
ClassType | smallint | NULL | Optional | Stores the class type. Valid types are: 0 = cdtNone 1 = cdtDimension 2 = cdtFact 3 = cdtAggregation
CreatedTime | datetime | NULL | Leave blank | Stores the time the class was created.
DefaultParentURL | nvarchar (128) | NULL | Leave blank | Stores the default parent URL for the class.
DefaultTableName | nvarchar (128) | NULL | Leave blank | Stores the default table name associated with the class. If this is left blank or if GenerateTableDef = True, the name of the class is used.
Description | nvarchar (128) | NULL | Optional | Stores the description of the class for potential UI display.
DisplayName | nvarchar (128) | NULL | Optional | Stores the name used for potential UI display.
GenerateIdentity | tinyint | NULL | Leave blank | True (1) indicates the ID for the class will be generated automatically.
GenerateKeyDef | tinyint | NULL | 1 | True (1) indicates the class key definition will be generated automatically.
GeneratePartitionDef | tinyint | NULL | Leave blank | True (1) indicates the partition definition will be generated automatically.
GenerateTableDef | tinyint | NULL | Leave blank | True (1) indicates the table definition will be generated automatically.
IdSize | int | NULL | Leave blank | Stores the size of the identifier data in bytes.
InstExclusionExpr | nvarchar (128) | NULL | Optional | Used as a filter for aggregations.
IsAbstract | tinyint | NULL | 0 | Indicates if the class is abstract.
IsActive | tinyint | NULL | 1 | Indicates if the class is active (instances may be added).
IsPersistent | tinyint | NULL | 1 | Indicates if the class is persisted in the underlying data store.
IsReadOnly | tinyint | NULL | 0 | Indicates if the class is read-only.
IsTransactioned | tinyint | NULL | Optional for PROFILING SYSTEM. Leave blank for Analysis | Used by the Profiling System.
IsUIDeletedEnabled | tinyint | NULL |  | Reserved.
MajorVersion | int | NULL | Optional | Stores the major version number for the class.
MinorVersion | int | NULL | Optional | Stores the minor version number for the class.
ModifiedTime | datetime | NULL | Leave blank | Stores the last time the class was modified.
PartCriteriaExpr | nvarchar (128) | NULL | Leave blank | Not used.
PartitionID | int | NULL | Leave blank | Reserved.
PartitionName | nvarchar (128) | NULL | Leave blank | Stores the name of the default partition for the class.
PartViewName | nvarchar (128) | NULL | Leave blank | Reserved.
SourceDefName | nvarchar (128) | NULL | Required | Stores the name of the data source.
SourceID | int | NULL | Leave blank | Stores the identifier for the data source.
Status | int | NULL | Leave blank | Reserved.


Member Definition Meta-data

The Member meta-data contains attributes used to add a data member to an existing class. The attributes of these members include the name of the data member, the data type of the data member, and others. The provider populates the tables in the underlying store with columns configured using these meta-data attribute values.

In order to create a member of a class, the Class definition must already be created. The ClassDefName attribute creates the actual link to the encompassing class; thus the class name must match the ClassDefName attribute for the encompassing class.

For information about creating a new data member for an existing class, see Creating a New Class Data Member.

The following table shows the attributes used for the data member definitions. A set of these attributes is stored in the MemDef table for each class member defined.

Attribute | Data Type | Constraint | Requirement | Description
MemberDefID | int | NOT NULL | Leave blank | Stores the unique identifier for the data member.
CatalogID | int | NULL | Leave blank | Stores the identifier for the schema catalog.
CatalogName | nvarchar (128) | NULL | Leave blank | Stores the name of the schema catalog, "DWSchema."
ClassDefID | int | NULL | Leave blank | Stores the identifier of the containing class.
ClassDefName | nvarchar (128) | NULL | Required | Stores the name of the containing class.
ColumnID | int | NULL | Leave blank | Stores the identifier of the column for the data member.
ColumnName | nvarchar (128) | NULL | Required if GenerateColumnDef = False, otherwise leave blank | Stores the name of the column for storing the data member.
CreatedTime | datetime | NULL | Leave blank | Records when the data member definition was created.
DefaultValueAsStr | nvarchar (128) | NULL | Optional | Stores the default value of the data member as a string. If this is not NULL, the IsDfltNull attribute should be set to False.
Description | nvarchar (128) | NULL | Optional | Stores the description potentially displayed in the UI.
DisplayName | nvarchar (128) | NULL | Optional | Stores the name potentially displayed in the UI.
ExpressionStr | nvarchar (128) | NULL | Optional | Used by aggregation classes. Stores the expression string using the data member. Can contain any valid base class member or aggregation function.
GenerateColumnDef | tinyint | NULL | 1 | True (1) indicates the table column definition in the underlying data store should be generated automatically.
IdxFileGroupPolicy | smallint | NULL | Leave blank | Not used.
IsActive | tinyint | NULL | 1 | Indicates if the data member is active (instances may be added).
IsCached | tinyint | NULL | 0 | Indicates if the data member is cached for fast access. Used by the Profiling System only.
IsDateDeleteMember | tinyint | NULL | Optional | Used to determine which date member (for a class with multiple date members) will be used when deleting fact data by date.
IsDfltNull | tinyint | NULL | 0 | Indicates if the default value for the data member is NULL. If a default value is specified, this should be False (0).
IsDimension | tinyint | NULL | Optional | Indicates if the data member represents a dimension.
IsEncrypted | tinyint | NULL | Optional | Indicates if the data member is encrypted. Used by the Profiling System only.
IsExported | tinyint | NULL | 0 | Indicates if children of the class inherit the data member. Used by the Profiling System only.
IsHashingKey | tinyint | NULL | Optional | Indicates if the data member is a hashing key. Used by the Profiling System only.
IsHidden | tinyint | NULL | Optional | Indicates if the data member is hidden.
IsIdentityMember | tinyint | NULL | 0 | Indicates if the data member is an identity data member.
IsJoinKey | tinyint | NULL | Leave blank | Indicates if the data member is used as a join key across classes.
IsMeasure | tinyint | NULL | Optional | Indicates if the data member represents a measure.
IsMultiValued | tinyint | NULL | Leave blank | Indicates if the data member is multi-valued.
IsPersistent | tinyint | NULL | 1 | Indicates if the data member is persisted in the underlying data store.
IsPrimaryKey | tinyint | NULL | Optional | Indicates if the data member is a part of the primary key for the class.
IsPrivate | tinyint | NULL | Optional | Indicates if the data member is private.
IsRDNAttribute | tinyint | NULL | Optional | When referring to an Active Directory data-source, True indicates this is the RDN attribute for the class.
IsRequired | tinyint | NULL | 0 | Indicates if the data member requires a value.
IsSearchable | tinyint | NULL | 0 | Indicates if the data member is searchable.
IsTextSearchable | tinyint | NULL | 0 | Indicates if the data member is searchable by a text search engine.
IsUniqueKey | tinyint | NULL | Leave blank | Indicates if the data member is part of a unique key for the class.
LinkTableName | nvarchar (128) | NULL | Leave blank | Stores the name of the link table for a multi-valued data member.
MajorVersion | int | NULL | Optional | Stores the major version number for the data member definition.
MemberDefName | nvarchar (128) | NULL | Required | Stores the name of the data member.
MinorVersion | int | NULL | Optional | Stores the minor version number for the data member.
ModifiedTime | datetime | NULL | Leave blank | Records when the data member definition was last modified.
OrdinalPosInClass | int | NULL | Leave blank | Indicates the ordinal position of the data member in the class. Used by the Profiling System only.
ParentGroupName | nvarchar (128) | NULL | Leave blank | Stores the name of the parent group. Used by the Profiling System only.
RelationName | nvarchar (128) | NULL | Leave blank | Stores the name of the relation for a member relation object.
Status | int | NULL | Leave blank | Reserved.
TypeID | int | NULL | Leave blank | Stores the identifier code for the data type of the data member.
TypeName | nvarchar (128) | NULL | Required | Stores the name of the data type for the data member. See the table immediately following this table.
UseHashInSearch | tinyint | NULL | Leave blank | Indicates whether to use a hash index when searching for this data member. Used by the Profiling System only.
ValColumnName | nvarchar (128) | NULL | Optional | Stores the name of the value column for the data member. Used when creating multi-value members.
ValTableName | nvarchar (128) | ULL | Optional | Stores the name of the value table. Used when creating multi-value members.

The following table contains the valid data types used for the TypeName attribute of the Member meta-data. Binary data is not supported.

TypeName | Description
BOOL | Boolean (0 or 1)
CURRENCY | 64-bit currency
DATE | Standard date
DATETIME | SQL datetime
FILETIME | Standard file date/time stamp
IDENTITY | 48-bit numerical identifier
IDENTITY6 | 48-bit numerical identifier
INT64 | 64-bit integer
LONG | 32-bit integer
LONGREAL | 64-bit floating point number
None | Empty type
NULL | No value
REAL | 32-bit floating point number
SHORT | 16-bit integer
TIME | Standard time
UINT64 | 64-bit unsigned integer
ULONG | 32-bit unsigned integer
UUID | Packed decimal number used for GUIDs
WORD | 16-bit unsigned integer
WSTR | Unicode string of length 255
WSTR8, WSTR12. WSTR16, WSTR24, WSTR32, WSTR48, WSTR64, WSTR80, WSTR96, WSTR112, WSTR128, WSTR144, WSTR160, WSTR255, WSTR400, WSTR512 | Unicode string of designated length


Key Definition Meta-data

The Key meta-data contains attributes for defining a key for a class. A key defines the unique identification for a class. Use the Key meta-data to manually specify a single key or to create a multi-part key.

In order to create a key, the Class definition must already be created. The ClassDefName attribute creates the actual link to the encompassing class; thus the class name in the ClassDefName attribute must match the ClassDefName attribute for the wanted class.

Instead of using the Key and Key Member meta-data, a single key may be set through the IsPrimaryKey attribute of the Member meta-data. Multi-valued keys must always be defined using the Key and Key Member meta-data.

For information about creating a new class key, see Creating a New Class Key.

The following table shows the attributes used for the class key definitions. A set of these attributes is stored in the ClsKeyDef table for each class key defined.

Attribute | Data Type | Constraint | Requirement | Description
ClassKeyDefID | int | NOT NULL | Leave blank | Stores the unique identifier for the key.
CatalogID | int | NULL | Leave blank | Stores the identifier for the Commerce Server 2000 schema catalog.
CatalogName | nvarchar (128) | NULL | Leave blank | Stores the name of the schema catalog. For this release of Commerce Server, the catalog name is "DWSchema."
ClassDefName | nvarchar (128) | NULL | Required | Stores the name of the class associated with the key.
ClassID | int | NULL | Leave blank | Stores the identifier of the class associated with the key.
ClassKeyDefName | nvarchar (128) | NULL | Required | Stores the name of the class key.
CreatedTime | datetime | NULL | Leave blank | Records when the key was created.
Description | nvarchar (128) | NULL | Optional | Stores the description for the key potentially displayed on the UI.
DisplayName | nvarchar (128) | NULL | Optional | Stores the name potentially displayed on the UI for the key.
IsPrimaryKey | tinyint | NULL | Optional | Indicates if this is the primary key. Defaults to False (0).
MajorVersion | int | NULL | Optional | Stores the major version number for the key.
MinorVersion | int | NULL | Optional | Stores the minor version number for the key.
ModifiedTime | datetime | NULL | Leave blank | Records when the key was last modified.
Status | int | NULL | Leave blank | Reserved.


Key Member Definition Meta-data

The Key Member meta-data contains attributes for defining a member of a key. The meta-data includes an indication of the ordinal position of the data member for a multi-valued key. The Key and Member definitions must already be completed. A Key Member definition is not required if the IsPrimaryKey attribute is set to True on a member definition of the class.

The following paragraph is more relevant for the Profiling System than for Data Warehouse and Analysis.

Three attributes are required to set a data member as part of a key. The MemDefName attribute of the KeyMem meta-data must be set to the MemberDefName value specified in the Member meta-data. The KeyDefName attribute for the KeyMem meta-data must be set to the ClassKeyDefName value specified in the Key meta-data. Finally, the OrdinalPosInKey attribute must be set to the position in the key for the data member. For example, if there are three data members comprising a key, the OrdinalPosInKey attributes will be set to 0, 1, and 2 for the first, second, and third data members, respectively. The sequence of data members is important for the composition of a unique key.

For information about creating a new key member for a class key, see Creating a New Class Key Member.

The following table shows the attributes used for the key member definitions. A set of these attributes is stored in the KeyMem table for each key member defined.

Attribute | Data Type | Constraint | Requirement | Description
KeyMemID | int | NOT NULL | Leave blank | Stores the unique identifier for the key member.
CatalogID | int | NULL | Leave blank | Stores the identifier for the schema catalog.
CatalogName | nvarchar (128) | NULL | Leave blank | Stores the name of the schema catalog, "DWSchema."
CreatedTime | datetime | NULL | Leave blank | Records when the key member was created.
Description | nvarchar (128) | NULL | Optional | Stores the description for the key member potentially displayed on the UI.
DisplayName | nvarchar (128) | NULL | Optional | Stores the name potentially displayed on the UI for the key member.
KeyDefID | int | NULL | Leave blank | Stores the identifier for the key containing this key member.
KeyDefName | nvarchar (128) | NULL | Required | Stores the name of the class key.
MajorVersion | int | NULL | Optional | Stores the major version number for the key member.
MemDefID | int | NULL | Leave blank | Stores the identifier for the data member used for this key member.
MemDefName | nvarchar (128) | NULL | Required | Stores the name of the data member used for this key member.
MinorVersion | int | NULL | Optional | Stores the minor version number for the key member.
ModifiedTime | datetime | NULL | Leave blank | Records when the key member was last modified.
OrdinalPosInKey | int | NULL | Required | Stores a 0-based index for the position of the key member in the key.
Status | int | NULL | Leave blank | Reserved.


Relation Definition Meta-data

The Relation meta-data contains attributes for creating a relation between two classes. In order to define the relation, the Class definition must already be created for BOTH the parent and child classes. In the Commerce Server 2000 Data Warehouse, most relations are of the one-to-many type.

To link two classes, the ParentClassName attribute for the Relation must be set to the ClassDefName of the parent Class object. Likewise, the ChildClassName attribute for the Relation must be set to the ClassDefName of the child Class object. Any data members in the parent that are marked for inheritance are copied to the child when the relation is created.

To link specific class members, create a Relation Member that defines the members to link for the relation.

For information about creating a new relation between two existing classes, see Creating a New Class Relation.

The Relation definition meta-data contains an attribute used to define the type of the relation (RelType). The following table contains the valid relation types and the corresponding type codes. In the Commerce Server 2000 Data Warehouse, most relations are of the one-to-many type.

Relation Type | Code | Description
One-to-Many | 2 | Each parent has zero or more children, each child has one parent. The identifier ("Classname"ID) of the parent is used as a foreign key by the child.
Many-to-Many | 3 | Each parent has zero or more children, each child has one or more parents.
One-to-Many with Inheritance | 194 | Same as one-to-many except all members of the parent are visible to the children. (In a regular one-to-many relation, only the key members of the parent class are visible.)

The following table shows the attributes used for the class relation definitions. A set of these attributes is stored in the RelDef table for each class relation defined.

Attribute | Data Type | Constraint | Requirement | Description
RelDefID | int | NOT NULL | Leave blank | Stores the unique identifier for the relation.
CatalogID | int | NULL | Leave blank | Stores the identifier for the schema catalog.
CatalogName | nvarchar (128) | NULL | Leave blank | Stores the name of the schema catalog, "DWSchema."
ChildClassID | int | NULL | Leave blank | Stores the class identifier of the child class for the relation.
ChildClassName | nvarchar (128) | NULL | Required | Stores the name of the child class for the relation.
CreatedTime | datetime | NULL | Leave blank | Records when the relation was created.
Description | nvarchar (128) | NULL | Optional | Stores the description potentially displayed in the UI.
DisplayName | nvarchar (128) | NULL | Optional | Stores the name potentially displayed in the UI.
MajorVersion | int | NULL | Optional | Stores the major version number for the relation.
MinorVersion | int | NULL | Optional | Stores the minor version number for the relation.
ModifiedTime | datetime | NULL | Leave blank | Records when the relation was last modified.
ParentClassID | int | NULL | Leave blank | Stores the class identifier of the parent class for the relation.
ParentClassKey | nvarchar (128) | NULL | Required | Stores the name of the key for the parent class.
ParentClassName | nvarchar (128) | NULL | Required | Stores the name of the parent class for the relation.
RelDefName | nvarchar (128) | NULL | Required | Stores the name of the relation.
RefMemName | nvarchar (128) | NULL | Leave blank | Reserved.
RelType | smallint | NULL | Required | Stores the type of the relation.
Status | int | NULL | Leave blank | Reserved.


Relation Member Definition Meta-data

The Relation Member meta-data contains attributes for denormalizing specific members from a parent class into a child class. In order to link specific members within a relation, the Relation definition must already be created. In addition, because the Relation Member specifies the members of the classes that comprise the relation, these class members must also already be defined. The RelationName attribute creates the actual link to the encompassing relation; thus the relation name in the RelationName attribute must match the RelDefName attribute for the wanted relation.

The Member meta-data contains the required fields for defining a class member. The ParentMemName and ChildMemName attributes create the link to the corresponding class members; thus, these names must match the MemberDefName attribute for the required data members in the Member object for the class.

For information about creating a new relation-member for a class, see Creating a New Class Relation Member.

The following table shows the attributes used for the relation member definitions. A set of these attributes is stored in the RelMem table for each relation member defined.

Attribute | Data Type | Constraint | Requirement | Description
RelMemDefID | int | NOT NULL | Leave blank | Stores the unique identifier for the relation member.
CatalogID | int | NULL | Leave blank | Stores the identifier for the schema catalog.
CatalogName | nvarchar (128) | NULL | Leave blank | Stores the name of the schema catalog, "DWSchema."
ChildMemID | int | NULL | Leave blank | Stores the identifier for the data member of the child class to relate.
ChildMemName | nvarchar (128) | NULL | Required | Stores the name of the data member of the child class to relate.
CreatedTime | datetime | NULL | Leave blank | Records when the relation member was created.
Description | nvarchar (128) | NULL | Optional | Stores the description for the relation member potentially displayed on the UI.
DisplayName | nvarchar (128) | NULL | Optional | Stores the name potentially displayed on the UI for the relation member.
MajorVersion | int | NULL | Optional | Stores the major version number for the relation member.
MinorVersion | int | NULL | Optional | Stores the minor version number for the relation member.
ModifiedTime | datetime | NULL | Leave blank | Records when the relation member was last modified.
ParentMemID | int | NULL | Leave blank | Stores the identifier of the data member of the parent class to relate.
ParentMemName | nvarchar (128) | NULL | Required | Stores the name of the data member of the parent class to relate.
RelationID | int | NULL | Leave blank | Stores the identifier of the relation containing the relation member.
RelationName | nvarchar (128) | NULL | Required | Stores the name of the class relation.
Status | int | NULL | Leave blank | Reserved.


Source Definition Meta-data

The Source meta-data describes the data source for the Commerce Server 2000 Data Warehouse. The SourceName and SourceID attributes of the Source meta-data are used in the SourceDefName and SourceID attributes, respectively, of the Class meta-data.

The following table defines the attributes of the SourceDef meta-data.

Attribute | Data Type | Constraint | Requirement | Description
SourceID | int | NOT NULL | Leave blank | Stores the unique identifier for the source.
SourceName | nvarchar (128) | NULL | Required | Stores the name of the data source.
ADDomainName | nvarchar (128) | NULL | Optional for PROFILING SYSTEM. Leave blank for Analysis | Used by the Profiling System only.
CatalogID | int | NULL | Leave blank | Stores the identifier for the Commerce Server 2000 schema catalog.
CatalogName | nvarchar (128) | NULL | Leave blank | Stores the name of the schema catalog. For this release of Commerce Server, the catalog name is "DWSchema."
ClsComponentID | int | NULL | Optional | Used by the Profiling System.
ConnStr | nvarchar (128) | NULL | Required | Stores the connection string for the data source.
CreatedTime | datetime | NULL | Leave blank | Records when the source definition was created.
DBCodePage | int | NULL | Optional | Used by the Profiling System.
Description | nvarchar (128) | NULL | Optional | Stores the description for the source potentially displayed on the UI.
DisplayName | nvarchar (128) | NULL | Optional | Stores the name potentially displayed on the UI for the source.
DoesDistributedTrans | tinyint | NULL | Optional | Indicates if the data source supports distributed transactions.
DoesSQLBatch | tinyint | NULL | Optional | Indicates if the data source supports SQL batch operations.
DoesSQLDelete | tinyint | NULL | Optional | Indicates if the data source supports SQL Delete operations.
DoesSQLInsert | tinyint | NULL | Optional | Indicates if the data source supports SQL Insert operations.
DoesSQLStoredProc | tinyint | NULL | Optional | Indicates if the data source supports storing SQL procedures.
DoesSQLUpdate | tinyint | NULL | Optional | Indicates if the data source supports SQL Update operations.
DoesTransactions | tinyint | NULL | Optional | Indicates if the data source supports transactions.
IsDefault | tinyint | NULL |  | Indicates if this is the default data source.
MajorVersion | int | NULL | Optional | Stores the major version number.
MaxColNameSize | int | NULL | Optional | Stores the maximum size of the names for columns in the data source.
MaxTblNameSize | int | NULL | Optional | Stores the maximum size of the names for tables in the data source.
MinorVersion | int | NULL | Optional | Stores the minor version number.
ModifiedTime | datetime | NULL | Leave blank | Records when the source definition was last modified.
SourceGroupName | nvarchar (128) | NULL | Optional for the Profiling System. Leave blank for Analysis. | Used by the Profiling System only.
Status | int | NULL | Leave blank | Reserved.
Type | int | NULL | Optional | Stores a code for the type of data store. See the table immediately following this table.

The following table contains the valid source types used for the Type attribute of the Source meta-data. This information is more relevant for the Profiling System than for Data Warehouse and Analysis.

Source Type | Code | Description
stOLEDB20 | 1 | Generic OLE DB 2.0
stSQL7x | 2 | SQL Server 7.0 or greater
stSQL65 | 3 | SQL Server 6.5
stActiveDirectory | 4 | Active Directory
stGeneric | 5 | Generic data source


Physical Schema

This topic describes the physical data store underlying the Data Warehouse.

By default, a logical class is mapped to a physical table of the same name. To override this behavior, in the ClsDef table, set the GenerateTableDef attribute to False and specify the table name in the DefaultTableName attribute.

By default, a non-inherited, non-multi-valued class member is mapped to a physical column of the same name. To override this behavior, in the MemDef table, set the GenerateColumnDef attribute to False and specify the column name in the ColumnName attribute.

Inherited class members are mapped to the associated column of the parent table.

For multi-valued class members (IsMultiValued = True in the MemDef table), the associated link and value tables are automatically generated with no provision for overriding the behavior. The names of these tables are stored in the LinkTableName and ValTableName attributes in the MemDef table.

Commerce Server 2000 does not support partitions; thus, there is one partition per data source.


Predictor Schema

This section describes the Predictor schema used for models and model configurations.

Two types of analysis models are available in Microsoft Commerce Server 2000: Prediction models and Segment models. A Prediction model is used to recommend products and fill in missing profile data. A Segment model separates users into segments which are groups of users with similar behavior and attributes. A Segment model is used to categorize a user into one or more of these segments.

These analysis models use a specified set of cases as a basis for their predictions. A case is all that is known about a previous user, and consists of attribute/value pairs. An attribute is some distinction about the world (for example, age, income, whether a particular product was purchased or not, and so on). A case typically contains transactional data and may sometimes contain demographic information.

A model configuration contains information used by the Predictor resource to build the models. This information includes pointers to the tables and views that contain the case information as well as the model build properties. The model configuration is stored as a collection of tables in a database. There is no application programming interface (API) available to create a new model configuration. The tables must be modified directly.

This topic includes descriptions of the required tables and entries, an example of creating a model configuration, and results from building both types of models.

This section contains:

  • PredictorModelCfgs Table. Describes the available model configurations.

  • PredictorDataTables Table. Serves as an index to the source data tables and an attributes table.

  • Attributes Table. Describes attributes about the properties used to build the models.

  • PredictorModels Table. Stores the actual models and the parameters that were used to build them.

  • Predictor Schema Example. Shows an example of creating a model configuration along with the results from building both Prediction and Segment models.

See Also

Prediction Objects

PredictorClient Object

PredictorServiceAdmin Object

PredictorServiceSiteAdmin Object

PredModelBuilder Object

Running the Predictor Resource


PredictorModelCfgs Table

This table lists the model configurations. The model configurations are displayed in Commerce Server Manager when the Model Configurations node, under the Predictor resource, is selected.

Column Name | Type | Description | Required?
ModelCfgName | DBTYPE_WSTR | Model configuration name | Yes
SiteName | DBTYPE_WSTR | Not used | No


PredictorDataTables Table

This table serves as an index to the source data tables and an attributes table. For each model configuration, there must be at least one Dense (Type 0) or Sparse (Type 1) source data table, and one Attributes (Type 2) table. Only one Dense table is allowed, but there can be multiple Sparse tables. A blank attributes table is created if one is not specified.

Column Name | Type | Description | Required?
ModelCfgName | DBTYPE_WSTR | Model configuration name (foreign key to the PredictorModelCfgs table). | Yes
TableName | DBTYPE_WSTR | Table name. | Yes
Type DBTYPE_UI2 Type of table:
  • 0 = Dense (1 row per user, such as for demographic information)

  • 1 = Sparse (1 row per transaction, such as for product purchases)

  • 2 = Attributes
 Yes
AggregateColumn DBTYPE_WSTR Column on which the PivotColumn is aggregated.

For example, QTY if the QTY column represents the quantity of each SKU purchased.

 Yes, if Type = Sparse.

Otherwise should be NULL.
AggregateOperation DBTYPE_UI2 Valid values are:
  • 0 = SUM (Default)

  • 1 = MAX

  • 2 = MIN

  • 3 = AVG

  • 4 = COUNT
 Yes, if Type = Sparse.

Otherwise should be NULL.
CaseColumn DBTYPE_WSTR Column in TableName where the case ID (usually UserID) is stored. Yes, if Type = Dense or Sparse.

Not applicable if Type = Attributes.
PivotColumn DBTYPE_WSTR Column in TableName that specifies the transactional property to pivot.

For example, SKU if the SKU column contains the products a user purchased.

 Yes, if Type = Sparse.

Otherwise should be NULL.


Attributes Table

This table indicates the properties of each attribute used in the model, including the distribution type for the attribute, and whether the attribute is used to build the model or is to be predicted by the model. Entries in the attributes table are not required unless the default behavior needs to be overridden. The default behavior is for each attribute to be used for the prediction as well as to be predicted. The default distribution is Autodetect. A blank attributes table is created if one is not specified.

Note

  • There is no table named Attributes. Each model configuration specifies the name of its attribute table as an entry in the PredictorDataTables table.
Column Name | Type | Description | Required?
PropID | DBTYPE_UI4 | Unique key – Property ID. | Yes.
ParentID | DBTYPE_UI4 | ID of parent (0 = root). | Yes.
Name | DBTYPE_WSTR | Name of attribute, hierarchy element, or Pivot Column. | Yes.
TableName | DBTYPE_WSTR | Not used. | No.
ColumnName | DBTYPE_WSTR | Not used. | No.
Distribution DBTYPE_UI2 Distribution type

B - Model As Binary

NB - Not Model As Binary

Valid values are:

  • 0 - Discrete, NB

  • 1 – Continuous, Normal, NB

  • 2 – Continuous, LogNormal, NB

  • 3 - Invalid

  • 4 - Discrete, Autodetect, B

  • 5 - Continuous, Normal, B

  • 6 - Continuous, Lognormal, B

  • A description of the different distribution types follows this table.
 No.

NULL implies Autodetect.

Must be NULL if row describes a hierarchy element.
Predict DBTYPE_BOOL Indicates whether this is an output property.

Valid values are:

  • True (Default) – Build a model that can predict this property.

  • False – Do not predict this property.
 No.

NULL implies True.

Must be NULL if row describes a hierarchy element.
UseToPredict DBTYPE_BOOL Indicates whether this an input property.

Valid values are:

  • True (Default) – Use as input property to predict other properties.

  • False – Do not use this property to predict other properties.
 No.

NULL implies True.

Must be NULL if row describes a hierarchy element.

Distribution Attribute

  • Discrete vs. Continuous. Discrete means that only certain data values are legal and there is no specific relationship between sequential values. For example, the two-letter state abbreviations are discrete. All non-numeric attributes are treated as discrete. Numerical attributes may or may not be discrete.

  • Normal vs. LogNormal. Certain continuous data, such as Income, is better represented as a Normal (Gaussian) distribution while other data, such as the number of products purchased, better fit a LogNormal distribution which is skewed towards 0. An attribute with a LogNormal distribution means the logarithm of the attribute has a Normal distribution.

  • Autodetect. An algorithm to auto-detect the above properties can be used. For discrete attributes, the algorithm also eliminates those attributes that have only one distinct value or too many distinct values to be useful (over 500). Note that "missing" counts as a distinct value.

  • Model As Binary. For a property that has the Model As Binary attribute, the model is only concerned with whether the property exists, not the value of the property. For example, consider the case of an attribute that corresponds to the number of products purchased, it may be more useful to model whether the product was purchased or not, rather than modeling the quantity purchased.


PredictorModels Table

The actual models and the parameters used to build them are stored in this table by the Predictor resource when the models are built. The models are displayed in Commerce Server Manager when the Models node, under the Predictor resource, is selected. In/Out specifies whether the parameter is an input or output parameter. The Model Type specifies which model type uses that parameter. The last column, Data, is a Blob containing the binary representation for the actual model data.

Column Name Data Type In/
Out 		Model
Type 		Description Required?
ModelName | DBTYPE_WSTR | In | Both | Model name. | Yes
ModelCfgName | DBTYPE_WSTR | In | Both | Model configuration name (foreign key to the PredictorModelCfgs table). | Yes
ModelType DBTYPE_UI2 In Both Algorithm used to build the model. Default is Prediction.

Valid values are:

  • 0 = Prediction (Dependency Net)

  • 1 = Segment (Clustering)
 No
BuildTime | DBTYPE_UI4 | Out | Both | Time spent building model (milliseconds). | No
ComplexityPenality DBTYPE_UI4 In Prediction Larger values prevent trees from growing too large (Prediction models only).

Valid range is 1 to MaxInt.

Default = 100

 No
DataFitScore DBTYPE_R8 Out Prediction Measures the quality of predictions made to supply missing profile data. The higher the score, the better the model.

Valid range is minus infinity to plus infinity.

 No
DateCreated DBTYPE_DB
TIMESTAMP 		Out Both Date model was built.

Default is getdate()

 Yes
InputAttributeFraction DBTYPE_R8 In Both Fraction of attributes used for feature selection as input to predictions.

The default number of attributes is 1000 or all attributes, whichever is less.

Valid range is 0 to 1.

  • 1 - use all attributes.

  • < 1 - use feature selection to identify the most significant attributes. Results in a smaller model.
 No
K DBTYPE_UI4 In Segment Number of segments to build.

The default is 10.

Valid range is 1 to 32756.

 No
MaxBufferSize DBTYPE_UI4 In Segment Maximum buffer size in bytes.

Default is 1,056,784 bytes (1 MB)

 No
MeasuredAccuracy
MaxPredictions 		DBTYPE_UI4 In Both Maximum number of recommendation made.

Valid range is 1 to MaxInt.

Default is 10.

 No
MeasuredAccuracy
SampleFraction 		DBTYPE_R8 In Both Fraction of sample data to hold out for automatic accuracy measurement.

Valid range is 0 to 1.

Default is 40% (0.4) of all cases or 1000, whichever is less.

 No
MinimumCasesToSplit DBTYPE_UI4 In Prediction Minimum number of cases for a split to occur in a tree.

Default = 5

 No
OutputAttributeFraction DBTYPE_R8 In Both Fraction of attributes used for feature selection as output of predictions.

The default number of attributes is 1000 or all attributes, whichever is less.

Valid range is 0 to 1.

  • 1 - build a model that can predict all attributes.

  • < 1 - use feature selection to identify attributes that are significant. Results in a smaller model.
 No
RecommendScore DBTYPE_R8 Out Prediction Measures the quality of a ranked list of recommendations. The higher the score, the better the model.

Valid range is 0 to 1.

 No
SampleSize DBTYPE_UI4 In Both Number of cases to randomly sample from the input data.

Default is -1 (use all data) or 20,000, whichever is less.

 No
Data | DBTYPE_BYTES | Blob containing the model data. | No


Predictor Schema Example

This example shows all the related tables and entries for a model configuration named PurchaseCfg1.

PredictorModelCfgs

ModelCfgName | SiteName
PurchaseCfg1 | Retail

This example assumes that the PurchaseCfg1 model configuration consists of three sources of data:

Demographic information from the User table (additional rows not shown).

UserID | Age | Gender | Education
jilluser@roguecellars.com | 23 | F | 19
barneyuser@arborshoes.com | 49 | M | 3
jackuser@frogkick.com | 28 | M | 13

Product Purchase information from the Purchases table (additional rows not shown).

UserID | SKU | QTY
jilluser@roguecellars.com | wine_fine_au_zin_19 | 3
jilluser@roguecellars.com | tv_big_36_m3 | 1
jilluser@roguecellars.com | pumps_bl_6 | 1

Ad Click information from the AdClicks table (additional rows not shown).

UserID | URL | Count
jilluser@roguecellars.com | www.thewinecellar.com/ad_zin12 | 3
jilluser@roguecellars.com | www.thewinecellar.com/ad_cab3 | 2
jilluser@roguecellars.com | www.arborshoes.com/ad4c | 1

PredictorDataTables

ModelCfgName | TableName | Type | Case Column | Pivot Column | Aggregate Column | Aggregate Type
PurchaseCfg1 | User | 0 | UserID | <NULL> | <NULL> | <NULL>
PurchaseCfg1 | Purchases | 1 | UserID | SKU | QTY | 0
PurchaseCfg1 | AdClicks | 1 | UserID | URL | Count | 0
PurchaseCfg1 | PurchaseCfg1_Attributes | 2 | Not applicable | <NULL> | <NULL> | <NULL>

The entries in the following table override the default behavior. The first three entries construct a hierarchy where "tv_big_36_m3" is the child of "TVs" and "TVs" is the child of "Electronic Devices". "Electronic Devices" stands at the top of the hierarchy and therefore does not have a parent. The fourth entry specifies all of the SKUs to have a Discrete and Modeled As Binary distribution. The fifth row specifies to use the Age attribute to predict other attributes, but not to be predicted. This means that no Decision Tree predicting the Age attribute will be built. The entry also specifies the Distribution to be Continuous, Lognormal and not Modeled As Binary.

PredictorAttributes_PurchaseCfg1

Prop ID | Parent ID | Name | Table Name | Column Name | Distri- bution | UseTo Predict | Predict
1 | 0 | Electronic Devices | <NULL> | <NULL> | <NULL> | <NULL> | <NULL>
2 | 1 | TVs | <NULL> | <NULL> | <NULL> | <NULL> | <NULL>
3 | 2 | tv_big_36_m3 | <NULL> | <NULL> | 4 | True | True
4 | 0 | SKU | <NULL> | <NULL> | 4 | True | True
5 | 0 | Age | <NULL> | <NULL> | 2 | True | False

The following table shows two models built from the PurchaseCfg1 model configuration. The first model, Purchase1, was built as a prediction (type 0) model. The second model, Demog1, was built as a segment (type 1) model.

PredictorModels

Model Name | ModelCfg Name | Model Type | Date Created | Build Time | Measured Accuracy Sample Fraction | Measured Accuracy Max Predictions | K
Purchase1 | PurchaseCfg1 | 0 | getdate() | 30000 | .05 | 10 | <NULL>
Demog1 | PurchaseCfg1 | 1 | getdate() | 45000 | .05 | 10 | 10

(PredictorModels continued)

Max Buffer Size | Input Attribute Fraction | Output Attribute Fraction | Sample Size | Complexity Penality | Minimum CasesTo Split | Data Fit Score | Recommend Score | Data
<NULL> | 1 | 1 | -1 | 100 | 5 | 11.08 | 0.3946 | <Binary>
1000000 | 1 | 1 | 16000 | <NULL> | <NULL> | 4.177 | 0.1874 | <Binary>


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 2000. The ability to extend or delete these schemas is readily available through the Profile Designer in Commerce Server Business Desk. The Profile Definition snap-in 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

Profile 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 2000 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 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 2000 User Import DTS Task extends and exports data into the Data Warehouse for properties with the Exported (Exp) attribute marked as True (1). The corresponding class in the Data Warehouse that the Address profiles are exported into is set via 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 | AddressID Supplied by the system.
address_line1 | Unicode String | T | F | General Info | AddressLine1
address_line2 | Unicode String | F | F | General Info | AddressLine2
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 (ISO) Code
country_name | Unicode String | F | T | General Info | Country 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 | Region or State Code
region_name | Unicode String | F | T | General Info | Region or State 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 | OrganizationID 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 2000 User Import DTS Task extends and exports data into the Data Warehouse for properties with the Exported (Exp) attribute marked as True (1). The corresponding class in the Data Warehouse that the UserObject profiles are exported into is set via 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 principle name (Commerce Server Business Desk/Partnerdesk 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 | Email (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)


Database Table Reference

This section provides a list of tables contained in Commerce Server databases. The tables are categorized by product resource. They do not necessarily reflect the distribution of these tables in your configuration. The location of these tables depends on which databases you create when you unpack your site. By default, Commerce Server creates the following databases: Administration, Direct Mailer, Commerce, and Data Warehouse. However, you can divide the Commerce database into smaller databases, based on the resources you install.

This section contains:

  • Administration Database Tables

  • Analysis/Report Database Tables

  • Data Warehouse Database Tables

  • Direct Mailer Database Tables

  • Marketing Database Tables

  • Prediction Database Tables

  • Product Catalog Database Tables

  • Profiles Database Tables

  • Transactions Database Tables

  • TransactionConfig Database Tables


Administration Database Tables

The following tables are contained in the MSCS_Admin database.

Table Name | Description
ExtendedProps | Contains schema for all properties contained in all resources in the system, except those contained in the SystemProps table.
PupDBScripts | Contains SQL scripts used with the GenericPuP object.
ResourceProps | Contains instance data for the properties whose schema are listed in the ExtendedProps table.
Resources | Contains instance data for the properties whose schema are listed in the SystemProps table.
SiteResources | Contains keys (or links) for all resources in a site.
Sites | Lists the sites contained in this database.
SystemProps | Contains schema for properties that all resources must have in common, such as flags.


Analysis/Report Database Tables

The following tables are contained in the Data Warehouse.

Table Name | Description
Report | Describes the attributes used in the main report definition table.
ReportDbObject | Describes database objects created for use in a static report.
ReportDimension | Describes the attributes used to add a dimension to a report.
ReportInstanceDbObject | Describes instances of database objects created for use in a static report.
ReportInstanceParam | Describes the attributes used to store the parameters entered through the user interface for use in query expressions.
ReportParam | Describes the attributes used to add a parameterized query expression to a static report.
ReportStatus | Describes the attributes used to supply status information about a static report.


Data Warehouse Database Tables

The Data Warehouse includes the classes and relations that make up the logical schema and the meta-model used to create them. For information about the tables contained in the Data Warehouse, see Data Warehouse Schema.


Direct Mailer Database Tables

These tables are contained in the Direct Mailer database.

Table Name | Description
Dml_attachments | Contains attributes used to specify file attachments for Direct Mailer jobs.
Dml_job_errors | Contains attributes used to describe errors that occurred during the sending of Direct Mailer messages.
Dml_jobs | Contains a list of Direct Mailer jobs.


Marketing Database Tables

The Marketing tables are found in the database referred to by the Campaigns site resource.

Table Name | Description
Ad_item | Represents scheduled advertising content for a Web page, contains data members describing when the advertisement runs and codes linking the advertisement to the products it represents.
Campaign | Defines the business process involved in running a marketing campaign for an advertiser.
Campaign_item | Represents the content included in a marketing campaign and/or a scheduled advertisement
Campaign_item_types | Describes the types of campaign items available in the marketing system.
Campaigns_version | Contains schema versioning information. If custom campaign item types are created, they should be registered here.
Creative | Contains information on how to display an advertisement or discount.
Creative_property | Describes the substitution strings contained in each creative type, with one entry per substitution string per creative type.
Creative_property_value | Contains values for creative properties.
Creative_size | Describes the size of the slot required to display a given creative on a page.
Creative_type | Contains formatting information describing how to display the creative.
Creative_type_xref | Determines which creative types (templates) are available for each type of campaign item.
Customer | Defines a customer who uses advertising through a Commerce Server 2000 Web site.
Dm_item | Describes scheduled direct mailing items such as address and format information.
Event_type | Categorizes marketing events.
Industry_code | Contains attributes that allow the selection algorithm to prevent showing two ads from the same industry and from different customers on the same page.
Order_discount | Represents discounted sale items. The class contains data members describing the items and conditions of the sale.
Order_discount_expression | Identifies the eligibility requirement expressions for discounts.
Order_discount_misc | For Internal Business Desk use only.
Page_group | Represents a group of custom content items used on a Web page for a marketing campaign.
Page_group_xref | Cross-references custom Web page content with the Web page or logical set of Web pages that contain the content.
Performance_total | Records aggregate counts of events such as clicks and requests for each campaign item.
Target | Defines a target for marketing and custom Web content, such as a particular type of user.
Target_group | Defines a group of targets for marketing and custom Web content.
Target_group_xref | Cross-references a target group with the custom content for the target group.


Prediction Database Tables

The following tables are included in the Data Warehouse.

Table Name | Description
PredictorModelCfgs | Describes the available model configurations.
PredictorDataTables | Serves as an index to the source data tables and an attributes table.
PredictorModels | Stores the actual models and the parameters that were used to build them.


Product Catalog Database Tables

The Product Catalog tables are found in the database referred to by the Product Catalog site resource.

The following table describes each of the tables in a product catalog database.

Table Name | Description
CatalogAttributes | Contains a row for each user defined catalog property definition, describing the attributes of the property.
CatalogDefinitions | Contains a row for each category or product definition.
CatalogDefinitionProperties | Relates category and product definitions to the properties they contain.
CatalogGlobal | Contains a row for each product catalog.
CatalogUsedDefinitions | Records which product or category definitions are in use by one of more catalogs.
CatalogEnumValues | Defines the legal values for the catalog enumeration data type properties.
CatalogStatus | Records the status of import and export operations.
CatalogCustomCatalogs | Contains a row for each custom catalog.
CatalogCustomPrices | Records the custom price rules applied to categories in custom catalogs.
catalogname_ProductsComplete | Contains all the products, product variants, and categories for the catalog named catalogname.
catalogname_Relationships | Contains all the relationships between products and/or categories for the catalog named catalogname.
catalogname_Hierarchy | Records the category hierarchy (parent-child relationships) for the catalog named catalogname.
CatalogSet_Catalogs | Defines the mapping of catalogs to catalog sets.
CatalogSet_Info | Contains a row for each catalog set with details about the catalog set.
CatalogToVendorAssociation | Contains details about a vendor associated with each catalog.


Profiles Database Tables

The Profiles tables are found in the database referred to by the Profiles site resource.

Table Name | Description
Addresses | Contains user and organization addresses. Used to store the Profiling System run-time data collected by the sites.
BlanketPOs | Contains purchase order information. Used to store the Profiling System run-time data collected by the sites.
ClassDef | Contains profile/Data Warehouse schema information.
ClsAttrib | Contains profile/Data Warehouse schema information.
ColDef | Contains profile/Data Warehouse schema information.
CommerceServerCatalogs | Contains profile/Data Warehouse schema information.
ES_ExprExprDeps | Contains the dependencies of expressions on one another.
ES_ExprInfo | Contains information for expressions.
ES_ExprProfDeps | Contains the dependencies of expressions on profiles.
GroupMem | Contains profile/Data Warehouse schema information.
MemAttrib | Contains profile/Data Warehouse schema information.
MemberDef | Contains profile/Data Warehouse schema information.
OrganizationObject | Contains organization object information. Used to store the Profiling System run-time data collected by the sites.
RelDef | Contains profile/Data Warehouse schema information.
SourceAttrib | Contains profile/Data Warehouse schema information.
SourceDef | Contains profile/Data Warehouse schema information.
TableDef | Contains profile/Data Warehouse schema information.
UserObject | Contains user object information. Used to store the Profiling System run-time data collected by the sites.


Transactions Database Tables

The Transactions tables are found in the database referred to by the Transactions site resource.

Table Name | Description
BasketGroup | Holds order groups with status=basket or status=template.
CatalogProducts_AuctionBid | Holds auction item bids.
CatalogProducts_AuctionItem | Describes the items being auctioned.
counters | Contains counters used by the GenId object. For example, it is used for sequential order tracking numbers.
OrderFormHeader | Stores order group information at the order form level.
OrderFormLineItems | Stores order group information at the item level.
OrderGroup | Holds outer-level order group information.
OrderGroupAddresses | Holds the addresses contained in an order group.
TransCategory | Contains the tables the Transaction DTS task will transfer.
TransDimension | Contains the columns that the DTS will display in the user interface. Key fields are transferred by default, and are not displayed in the user interface. The RequiredDim column determines the default column selection in the user interface.
UserFilter | Holds user search state, for customer and partner services.


TransactionConfig Database Tables

The TransactionConfig tables are found in the database referred to by the TransactionConfig site resource.

Table Name | Description
CatalogCache_Virtual_Directory | Contains a list of applications that are using a cache based on catalog information. This table is used by servers in a Web farm to announce that they are caching catalog information to Business Desk.
Decode | Decodes codes (for example 1=basket; 2=template; 3=order).
Region | Holds names and codes for country/region and state/province.
RegionalTax | Contains tax rates for the SampleRegionalTax pipeline component.
ShippingConfig | Contains information on available shipping methods.
TableShippingRates | Contains shipping rate information for StepwiseShipping pipeline components.
TxVirtual_Directory | Contains a list of applications that are using shipping and tax caches. It is used by servers in a Web farm to announce its caches to Business Desk.


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 makes extensive use of two such style sheet files: Bizdesk.css and Navtree.css. The former is used control the look of the content pane, and the latter is used to control the look of the navigation pane.

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:

  • Bizdesk.css. Provides information about the styles designed for controlling the look of the content pane, as defined in the file Bizdesk.css.

  • Navtree.css. Provides information about the styles designed for controlling the look of the navigation pane, as defined in the file Navtree.css.


Bizdesk.css

The customizable style sheet file, Bizdesk.css, defines the styles used within the content pane of Commerce Server Business Desk. These 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 file Bizdesk.css.

  • HTML Component Styles. Describes the HTC styles defined in the file 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 file Bizdesk.css that apply directly to the action page.

  • Title Bar Styles. Provides information about the styles in the file Bizdesk.css that apply to the title bar.

  • Task Bar Styles. Provides information about the styles in the file Bizdesk.css that apply directly to the task bar.

  • Status Bar Styles. Provides information about the styles in the file Bizdesk.css that apply directly to the status bar.

  • Find Pane Styles. Provides information about the styles in the file Bizdesk.css that apply directly to the find pane.


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 tag.

BODY

Defines base style characteristics used when rendering the body tag.

BUTTON

Defines style characteristics used when rendering a button tag.

DIV

Defines style characteristics used when rendering a DIV tag.

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.

.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.

#bdhelparea

Defines style characteristics used when rendering the help button area, located at the right end of the task bar.


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 normal task button.

.bdtaskbutton IMG

Defines style characteristics used when rendering the task icon image within a normal task button.

.bdtaskbuttonmenu

Defines style characteristics used when rendering a dropdown task button.

.bdtaskbuttonmenu IMG

Defines style characteristics used when rendering the task icon image within a dropdown task button.

.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.

.bdtaskover

Defines style characteristics used when rendering a task button with the mouse hovering over it.

.bdtaskpress

Defines style characteristics used when rendering a pressed (clicked) task button.

.bdtasktextbutton

Defines style characteristics used when rendering text-based task button (when no task icon is defined).

BUTTON.bdtaskover IMG

Defines style characteristics used when rendering the task icon image associated with a button over which the mouse is hovering.

BUTTON.bdtaskpress IMG

Defines style characteristics used when rendering the task icon image associated with a button that has been pressed (clicked).

ID Styles

#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".


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).


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 TD, .dtTableStyle TR.lsRowSelected INPUT

Defines style characteristics used when rendering a selected data table cell or 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).

.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 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 single line text boxes that contain invalid data or are required and contain an empty value.

.efInvalid TD DIV

Defines style characteristics used when rendering DIV elements within EditField HTCs that contain invalid data or are required and contain an empty value.

.efInvalid TEXTAREA

Defines style characteristics used when rendering multi-line text boxes 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 an option in a select type EditField HTC dropdown list.

.efOptionSelect

Defines style characteristics used when rendering a selected option 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 a read-only EditField HTC.

.efReadOnly INPUT

Defines style characteristics used when rendering a read-only single line text box in an 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 a read/write EditField HTC.

.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, #pmMarker, #pmProfile

Used internally by the QueryBuilder HTC (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.

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.

.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 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 .lsSortButton

Defines style characteristics used when rendering a column heading sort button 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.lsRowSelected, .lsTableStyle TR.lsRowSelected INPUT

Defines style characteristics used when rendering a selected table row within a ListSheet HTC, including one 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, .selected INPUT

Defines style characteristics used when rendering ListSheet HTC elements that are in selected rows, and single line text boxes that are children of such elements (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.

.waitDisplay

Defines style characteristics used when rendering the wait display in the content pane, ExpressionBuilder HTC, or ListSheet HTC.

ID Styles

.listSheet #btnSelectAll, .listSheet #btnUnselectAll

Defines style characteristics used when rendering the Select All and the Deselect All buttons 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, .clsQueryBldr .clsSelected TD

Defines style characteristics used when rendering child elements of the QueryBuilder HTC that have been classified as selected, as well as normal table cells within any such child elements.

.clsQueryBldr TD

Defines style characteristics used when rendering normal table cells within the QueryBuilder HTC.

.clsQueryBldr TH

Defines style characteristics used when rendering table heading 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.


Navtree.css

The customizable style sheet file Navtree.css defines the styles used within the navigation pane of Commerce Server Business Desk. There are 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 tag 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.

.categoryselect

Defines style characteristics used when rendering a selected category 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.


Problembehandlung bei Commerce Server

In diesem Abschnitt werden allgemeine Probleme behandelt, die bei der Arbeit mit Microsoft Commerce Server 2000 auftreten können.

Technischen Support erhalten Sie in den Onlinenewsgroups in der Microsoft-Website. Weitere Informationen zu Commerce Server 2000-Newsgroups finden Sie unter www.microsoft.com/germany/servers/commerceserver/2000.

Beachten Sie auch die Informationen in der Infodatei zu Microsoft Commerce Server 2000. Dieses Dokument enthält eine Liste bekannter Probleme sowie Informationen, die erst kurz vor der Veröffentlichung dieser Version von Commerce Server bekannt wurden. Sie finden das Dokument auf der Installations-CD von Commerce Server 2000.

Dieser Abschnitt beinhaltet folgende Themen:

  • Problembehandlung bei Anwendungen. Beschreibt Probleme, die bei der Entwicklung und Verwaltung von Anwendungen und Business Desk auftreten können, und bietet Lösungsvorschläge.

  • Problembehandlung bei Site Packager. Beschreibt Probleme, die bei der Arbeit mit Commerce Server Site Packager auftreten können, und bietet Lösungsvorschläge.

  • Problembehandlung bei Commerce Server-Ressourcen. Beschreibt Probleme, die bei der Verwendung von DTS-Tasks, der Vorhersageressource, der Profilressource und von Direct Mailer auftreten können, und bietet Lösungsvorschläge.

  • Weitere Informationen zur Problembehandlung. Führt weitere Ressourcen auf, die Systemadministratoren bei der Problembehandlung unterstützen.


Problembehandlung bei Anwendungen

In diesem Abschnitt werden Probleme beschrieben, die bei der Entwicklung und Verwaltung von Anwendungen und Commerce Server Business Desk auftreten können.

Dieser Abschnitt beinhaltet folgende Themen:

  • Verwenden der 64-Bit-Währung zur Sicherstellung der Verfügbarkeit

  • Aufträge im Wert von über 10 Millionen Währungseinheiten werden nicht ausgeführt

  • Aktivieren von "Computer für Delegierungszwecke vertrauen" für Webserver

  • OLAP/SQL Server benötigt Windows NT-Authentifizierung

  • Längenbegrenzung für Daten im Active Directory

  • Anzeigen bzw. Preisnachlässe werden in der Website nicht angezeigt

  • Verwenden von "regtrace.exe" mit einem Debugger

  • Anmelden bei einer Webanwendung als Administrator ist nicht möglich

  • Commerce Server unterbricht beim Ändern des Computernamens seine Funktionen

  • Das Ändern des Datumstrennzeichens des Systems verursacht einen Fehler

  • Die Suche in der Hilfe ergibt keine Suchergebnisse

  • Manche DLLs unterstützen keine Selbstregistrierung

  • Erstellen einer neuen Verwaltungsdatenbank

  • Business Desk: Das Ändern des Administratorkennworts verursacht die Trennung des Business Desk-Clients

  • Business Desk: Hinzufügen mehrwertiger Eigenschaften

  • Business Desk: Aktualisierte Konfiguration wird nicht wiedergegeben

  • Business Desk: Daten werden nicht im Listen-Manager- bzw. Benutzer-Modul angezeigt

  • Business Desk: "Bibliothek ist nicht registriert" oder andere Probleme mit "regexp"

  • Business Desk: Benutzer mit Administratorrechten haben keinen Zugriff auf Business Desk-Daten

  • Business Desk: Beim Zugriff auf Business Desk treten Laufzeitfehler auf

  • Business Desk: Bei Anmeldung als Administrator ist der Zugriff auf Sites nicht möglich

  • Berichte: Zusammenfassung der bei Berichten auftretenden Probleme

  • Berichte: Fehler in Bericht "Käuferverhalten bis zum Kauf"

  • Berichte: Dynamische SQL-Berichte können nicht angezeigt werden

  • Berichte: Berichte enthalten keine Daten

Informationen zum Debuggen von Anwendungen finden Sie in den folgenden Abschnitten:

  • Debugging Tools (englisches Thema)

  • Debugging Business Desk (englisches Thema)

  • Content Seletion Framework Concepts (englisches Thema)


Verwenden der 64-Bit-Währung zur Sicherstellung der Verfügbarkeit

Füllt ein Benutzer seinen Warenkorb mit Waren im Wert von über 10 Millionen Währungseinheiten, kann der Warenkorb nicht mehr verwendet werden. Die folgende Meldung wird angezeigt:

Überlauf bei der Verarbeitung von '_product_list_price'. Weitere Informationen über Bereichsausweitung finden Sie in der Dokumentation.

Auch alle nachfolgend durch diesen Benutzer erteilten Aufträge werden nicht ausgeführt.

Lösung

Aktualisieren Sie die Währungsunterstützung im Pipeline-Editor von 32 Bit auf 64 Bit.

So stellen Sie die 64-Bit-Währung ein

  1. Klicken Sie auf Start, zeigen Sie auf Programme, dann auf Microsoft Commerce Server 2000, und klicken Sie auf Pipeline-Editor.

  2. Klicken Sie auf Öffnen, und navigieren Sie dann zum Speicherort der Pipelinedatei. Doppelklicken Sie auf die Pipelinedatei, um diese zu öffnen.

  3. Klicken Sie im Menü Bearbeiten auf Eigenschaften.

  4. Wählen Sie im Dialogfeld Pipelineeigenschaften im Feld Währungsmodus die Option Währung (hohe Genauigkeit) aus, und klicken Sie dann auf OK.

    Anmerkung

    • Damit eine Pipeline im Modus mit hoher Genauigkeit ausgeführt werden kann, darf sie keine Pipelinekomponenten aus Microsoft Site Server 3.0 Commerce Edition enthalten. Weitere Informationen zu den Pipelinekomponenten aus Site Server 3.0 finden Sie unter Pipeline Component Reference (englisches Thema).
  5. Starten Sie den bzw. die Webserver neu.

Siehe auch

Aufträge im Wert von über 10 Millionen Währungseinheiten werden nicht ausgeführt


Aufträge im Wert von über 10 Millionen Währungseinheiten werden nicht ausgeführt

Füllt ein Benutzer seinen Warenkorb mit Waren im Wert von über 10 Millionen Währungseinheiten, kann der Warenkorb nicht mehr verwendet werden. Die folgende Meldung wird angezeigt:

Überlauf bei der Verarbeitung von '_product_list_price'. Weitere Informationen über Bereichsausweitung finden Sie in der Dokumentation.

Auch alle nachfolgend durch diesen Benutzer erteilten Aufträge werden nicht ausgeführt.

Lösung

Damit auch Aufträge im Wert von über 10 Millionen Währungseinheiten ausgeführt werden, muss die Währungsunterstützung im Pipeline-Editor von 32 Bit auf 64 Bit aktualisiert werden.

So stellen Sie die 64-Bit-Währung ein

  1. Klicken Sie auf Start, zeigen Sie auf Programme, dann auf Microsoft Commerce Server 2000, und klicken Sie auf Pipeline-Editor.

  2. Klicken Sie auf Öffnen, und navigieren Sie dann zum Speicherort der Pipelinedatei. Doppelklicken Sie auf die Pipelinedatei, um diese zu öffnen.

  3. Klicken Sie im Menü Bearbeiten auf Eigenschaften.

  4. Wählen Sie im Dialogfeld Pipelineeigenschaften im Feld Währungsmodus die Option Währung (hohe Genauigkeit) aus, und klicken Sie dann auf OK.

    Anmerkung

    • Damit eine Pipeline im Modus mit hoher Genauigkeit ausgeführt werden kann, darf sie keine Pipelinekomponenten aus Microsoft Site Server 3.0 Commerce Edition enthalten. Weitere Informationen zu den Pipelinekomponenten aus Site Server 3.0 finden Sie unter Pipeline Component Reference (englisches Thema).
  5. Starten Sie den bzw. die Webserver neu.


Aktivieren von "Computer für Delegierungszwecke vertrauen" für Webserver

Active Server Pages (ASP), die auf einem Webserver ausgeführt werden, können Benutzerkennwörter, die im Active Directory gespeichert sind, nur dann einrichten und zurücksetzen, wenn der Webserver für Delegierungszwecke als vertrauenswürdig betrachtet wird.

Lösung

Um diese Option zu aktivieren, gehen Sie in Active Directory zum Eigenschaftenblatt für das Computerkonto, und überprüfen Sie, ob das Kontrollkästchen Computer für Delegierungszwecke vertrauen aktiviert ist.

So aktivieren Sie die Option "Computer für Delegierungszwecke vertrauen"

  1. Klicken Sie auf Start, zeigen Sie auf Programme und auf Verwaltung, und klicken Sie dann auf Active Directory-Benutzer und -Computer.

  2. Navigieren Sie zu dem Computerkonto, das eingestellt werden muss, z. B. Active Directory-Benutzer und -Computer/<Domänenname>/Computer/<Computername>.

  3. Doppelklicken Sie in der Liste auf der rechten Seite auf den Computernamen. Aktivieren Sie auf der Registerkarte Konto das Kontrollkästchen Konto wird für Delegierungszwecke vertraut, und klicken Sie dann auf OK.

Möglicherweise ist es erforderlich, den zugeordneten Webserver neu zu starten, damit die Einstellung wirksam wird.


OLAP/SQL Server benötigt Windows NT-Authentifizierung

Wenn Sie von einer anderen Domäne bzw. Arbeitsgruppe eine Remoteverbindung zu einem SQL Server-Computer herstellen, tritt ein Fehler in Commerce Server Site Packager auf, wenn versucht wird, eine OLE DB-Verbindung für OLAP (Online Analytical Processing) für das Datawarehouse aufzubauen.

Lösung

Für die OLE DB-Verbindung für OLAP (Online Analytical Processing) im Datawarehouse ist eine Microsoft Windows NT-Authentifizierung erforderlich.

Diese richten Sie ein, indem Sie auf dem SQL Server-Computer der Arbeitsgruppe ein identisches Konto erstellen, z. B. <Computername>\Freigabe, sodass <Computername>\Freigabe eine Verbindung zum Datawarehouse herstellen kann.

Anmerkung

  • Wenn der SQL Server-Computer sich in einer vertrauenswürdigen Domäne befindet, muss das Domänenkonto Teil des OLAP-Verwaltungskontos sein.

Siehe auch

Aktivieren der Windows-Authentifizierung


Längenbegrenzung für Daten im Active Directory

Wenn das Commerce Server Business Desk-Modul auf die Daten in allgemeinen Namen in Active Directory angewiesen ist, kann eine Zeichenfolge höchstens 64 Zeichen lang sein. Außerdem umfassen in Active Directory gespeicherte Namen von Organisationen einen Gruppennamen (entweder _Admingroup, der 11 Zeichen lang ist, oder _Usergroup, der 10 Zeichen lang ist).

Lösung

Beachten Sie beim Speichern des Namens einer Organisation in Active Directory, dass die Kombination aus Organisationsname und Gruppenname höchstens 64 Zeichen lang sein kann. Stellen Sie sicher, dass der Name nicht mehr Zeichen enthält.


Anzeigen bzw. Preisnachlässe werden in der Website nicht angezeigt

Die von Ihnen erstellten und in der Website bereitgestellten Anzeigen bzw. Preisnachlässe werden nicht angezeigt.

Lösung

Zur Problembehandlung stehen Ihnen zwei Möglichkeiten zur Verfügung:

  • Verwenden der Datei "TraceScores.asp"

  • Verwenden der Datei "DumpContentList.asp"

So verwenden Sie die Datei "TraceScores.asp"

  1. Kopieren Sie die Datei TraceScores.asp aus Programme\Microsoft Commerce Server\SDK\Samples\Marketing\Debug in das virtuelle Verzeichnis der Site.

  2. Ändern Sie den Code zur Erstellung des ContentSelector-Objekts, indem Sie eine Zeile für die Datei TraceScores.asp hinzufügen.

  3. Fügen Sie eine Zeile hinzu, die die Eigenschaft Trace auf True einstellt.

  4. Fügen Sie eine Zeile hinzu, die die Unterroutine TraceScores aufruft.

Beispielcode

In dem folgenden Beispielcode für die Datei TraceScores.asp sind die hinzugefügten Zeilen fett formatiert dargestellt:

<!-- #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)
%>

Ausgabebeispiel

Wenn die Ablaufverfolgung aktiviert ist, werden sämtliche Änderungen an Ergebnissen von Inhaltselementen nachverfolgt. Die von der Datei TraceScore.asp gefundenen Änderungen an der Anzeige werden in dem folgenden Beispiel fett formatiert dargestellt:

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)

Wenn die erwartete Anzeige nicht in der Ablaufverfolgung angezeigt wird, ist sie nicht in den Cache geladen worden. Veröffentlichen Sie die Kampagne erneut im Modul Kampagnen veröffentlichen in Commerce Server Business Desk. Sollte die Anzeige immer noch nicht erscheinen, führen Sie folgende Aktionen durch:

  • Überprüfen Sie das Anfangs- und das Beendigungsdatum für die Anzeige.

  • Überprüfen Sie, ob Kunde, Kampagne und Kampagnenartikel aktiviert sind.

Anmerkung

  • Wenn das TraceScores-Flag auf On gesetzt ist, lässt die Leistung der CSF-Pipelines (Content Selection Framework) erheblich nach.

Siehe auch

Kampagnenartikel werden nicht wie erwartet in der Website angezeigt

Tracing and debugging (englisches Thema)

Verwenden der Datei "DumpContentList.asp"

Bei der Datei DumpContentList.asp handelt es sich um ein weiteres Tool zur Behandlung von Problemen mit Threads und Preisnachlassfunktionen. Mithilfe dieses Tools werden sämtliche Anzeigen bzw. Preisnachlässe, die zurzeit in den Arbeitsspeicher geladen sind, und deren Eigenschaften angezeigt. Des Weiteren wird das Schema des ContentList-Objekts angezeigt. Das Tool kann zum Sichern der Inhalte entweder eines ContentList-Objekts oder eines ContentListFactory-Objekts verwendet werden.

So verwenden Sie die Datei "DumpContentList.asp"

  1. Kopieren Sie die Datei DumpContentList.asp aus Programme\Microsoft Commerce Server\SDK\Samples\Marketing\Debug in das virtuelle Verzeichnis der Site.

  2. Ändern Sie den Code zur Erstellung des ContentSelector-Objekts, indem Sie eine Zeile für die Datei DumpContentList.asp hinzufügen.

  3. Fügen Sie eine Zeile hinzu, die die Unterroutine DumpContentList aufruft.

Beispielcode

In dem folgenden Beispiel werden die hinzugefügten Zeilen fett formatiert dargestellt:

<!-- #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"))
%>


Verwenden von "regtrace.exe" mit einem Debugger

Bei regtrace.exe handelt es sich um ein Tool, mit dessen Hilfe eine Ablaufverfolgung in den folgenden Anzeige- und Preisnachlasskomponenten erfolgen kann:

  • CacheManager

  • CSFLoadAdvertisements

  • CSFLoadCampaignsCommon

  • CSFLoadDiscount

  • EvalTargetGroups

  • OrderDiscount

So verwenden Sie "regtrace.exe"

  1. Klicken Sie auf Start und anschließend auf Ausführen.

  2. Geben Sie im Dialogfeld Ausführen den Befehl regtrace.exe ein, und klicken Sie dann auf OK.

  3. Wählen Sie auf der Registerkarte Traces im Dialogfeld für Ablaufverfolgungseinstellungen die Ebenen der gewünschten Ablaufverfolgung aus.

  4. Wählen Sie auf der Registerkarte Output die Option Debugger (OutputDebugString) aus.

  5. Klicken Sie auf OK.

  6. Nun müssen Sie einen Debugger wie z. B. WinDBG oder Visual C++ 6.0 mit dem Prozess verbinden, in dem der Sitecode ausgeführt wird. Da die Komponenten von dem Tool gelesen werden, werden Meldungen zur Ablaufverfolgung protokolliert und im Debugger angezeigt.

Falls keine Meldungen zur Ablaufverfolgung protokolliert werden, setzen Sie Internet-Informationsdienste (ISS) zurück, und stellen Sie dann die Verbindung zum Debugger wieder her.

Anmerkung

  • Das Aktivieren der Ablaufverfolgung hat nachteilige Auswirkungen auf die Leistung. Aus diesem Grund sollten Sie die Ablaufverfolgung stets deaktivieren, wenn Sie sie nicht verwenden.


Anmelden bei einer Webanwendung als Administrator nicht möglich

Sie können sich zwar bei Commerce Server Business Desk als Administrator anmelden, nicht aber als Administrator bei einer anderen Commerce Server-Anwendung.

Lösung

Die Ursache dieses Problems liegt in einem Konflikt zwischen Business Desk- und Windows-Domänennamen. Um dieses Problem zu umgehen, erstellen Sie Benutzer in Business Desk und weisen diesen dann Zugriffsberechtigungen zu, indem Sie sie den entsprechenden Domänengruppen hinzufügen. Benutzer, die auf Business Desk zugreifen müssen, können als Domänenadministratoren hinzugefügt werden. Sie haben dann mit ihren Standardbenutzernamen Zugriff auf Business Desk.


Commerce Server unterbricht beim Ändern des Computernamens seine Funktionen

Wenn Sie den Computernamen ändern, findet SQL Server möglicherweise die Verwaltungsdatenbank nicht automatisch. Dann wird die folgende Meldung angezeigt:

"2735 CA_ADMIN_ValidateDB"

Lösung

Ändern Sie im Commerce Server-Manager die erforderlichen Einstellungen für die Verbindungszeichenfolge, damit der neue Computername verwendet wird. Welche Einstellungen Sie ändern, hängt von der für die Bereitstellung von Commerce Server verwendeten Topologie ab. Ändern Sie die Felder in der Verwaltungsdatenbank manuell auf den neuen Namen.

Außerdem müssen Sie die aktuelle SQL Server-Registrierung löschen und anschließend eine neue Instanz von SQL Server registrieren. Sie müssen Ihren SQL Server-Benutzernamen und das Kennwort für die Verwaltungsdatenbank ändern. Dazu löschen Sie die aktuelle SQL Server-Registrierung und registrieren dann eine neue Instanz von SQL Server. Beachten Sie die folgenden Schritte zur Registrierung einer neuen SQL Server-Instanz.

So ändern Sie die SQL Server-Anmeldung und das Kennwort für die Verwaltungsdatenbank

  1. Klicken Sie in der Konsole von Microsoft Commerce Server-Manager mit der rechten Maustaste auf Commerce Server-Manager, und klicken Sie dann auf Eigenschaften.

  2. Klicken Sie im Dialogfeld Eigenschaften von Commerce Server-Manager auf der Registerkarte Verwaltungsdatenbank auf Ändern.

    Nun wird das Dialogfeld Datenverknüpfungseigenschaften angezeigt.

  3. Klicken Sie nach Durchführung der erforderlichen Änderungen im Dialogfeld Datenverknüpfungseigenschaften auf OK.

Anmerkung

  • Anweisungen zu den Einstellungen im Dialogfeld Datenverknüpfungseigenschaften erhalten Sie, indem Sie in dem Dialogfeld auf Hilfe klicken, um die Hilfedatei für Microsoft Datenverknüpfung zu öffnen.


Das Ändern des Datumstrennzeichens des Systems verursacht einen Fehler

Wenn Sie das Datumstrennzeichen des Systems auf ein Zeichen ändern, bei dem es sich nicht um einen Schrägstrich (/), einen Punkt (.) oder einen Strich (-) handelt, und dann versuchen, Commerce Server Business Desk zu öffnen, wird die folgende Fehlermeldung angezeigt:

"Fehler beim Laden eines Teils von Business Desk"

Dieser Fehler tritt nur nach einem Neustart von Internet-Informationsdienste (IIS) 5.0 auf.

Lösung

Schließen Sie Business Desk, und ändern Sie das Datumstrennzeichen des Systems wieder auf einen Schrägstrich (/).

So ändern Sie das Datumstrennzeichen des Systems

  1. Klicken Sie auf Start, zeigen Sie auf Einstellungen, und klicken Sie dann auf Systemsteuerung.

  2. Doppelklicken Sie auf Ländereinstellungen, und klicken Sie dann auf die Registerkarte Datum.

  3. Wählen Sie im Feld Datumstrennzeichen die Option / aus, und klicken Sie dann auf OK.

    Vorsicht

    • Bei einem Neustart von IIS wird die Ausführung der Website vorübergehend unterbrochen. Überprüfen Sie, ob ein Neustart von IIS erforderlich ist, bevor Sie fortfahren.
  4. Starten Sie IIS neu.

  5. Öffnen Sie Business Desk wieder.

So starten Sie IIS neu

  1. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Verwaltung, und klicken Sie dann auf Internetdienste-Manager.

  2. Klicken Sie auf das Additionszeichen (+), um die Servernamengruppe zu erweitern.

  3. Klicken Sie mit der rechten Maustaste auf Standardwebsite, und klicken Sie dann auf Beenden.

  4. Klicken Sie mit der rechten Maustaste auf Standardwebsite, und klicken Sie dann auf Starten.

IIS wird neu gestartet, und Sie können Business Desk wieder öffnen.


Die Suche in der Hilfe ergibt keine Suchergebnisse

Bei der Suche nach Wörtern bzw. Themen in der Hilfe zu Commerce Server Business Desk werden keine Suchergebnisse angezeigt. Dafür wird die folgende Meldung angezeigt:

"Keine Themen gefunden."

Lösung

Starten Sie den Indexdienst auf dem Webserver. Der Indexdienst sollte stets auf Autostart gesetzt sein, da es zwischen dem Starten des Dienstes und der Bereitstellung der Business Desk-Hilfe zu einer Zeitverzögerung kommen kann.

Weitere Informationen finden Sie unter Indexdienst in der Hilfe zu Windows 2000 Server.


Manche DLLs unterstützen keine Selbstregistrierung

In einigen DLL-Dateien (Dynamic Link Library) treten Fehler auf, wenn Sie versuchen, für diese eine Selbstregistrierung mithilfe der Datei Regsvr32.exe durchzuführen. Dabei handelt es sich um die folgenden Dateien:

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
MSCSPredDWHelper.dll
GenericPup.dll
Regionaltax.dll
ReportRenderer.dll
Requisition.dll
CSDWDTSMarketingImport.dll
Shipmgr.dll
Splitter.ocx
UPMDtsHlpr.dll
UPMDTSTask.dll


Erstellen einer neuen Verwaltungsdatenbank

Sie müssen entweder einen Rollback zu einer vorherigen Verwaltungsdatenbank ausführen oder eine neue Verwaltungsdatenbank erstellen, aber es ist nicht möglich, Commerce Server neu zu installieren. Auch die Ausführung von Commerce Server-Setup im Reparaturmodus führt nicht zu einer Neuinstallation von Commerce Server.

Lösung

Erstellen Sie zunächst eine neue Datenbank mit der Bezeichnung MSCS_Admin, und führen Sie dann für diese Datenbank unter Verwendung von SQL Query Analyzer die Datei admin_schema.sql aus. Eine neue Verwaltungsdatenbank wird erstellt. Durch die Ausführung des Skripts wird das Schema der Verwaltungsdatenbank aufgefüllt, aber es werden keine Ressourcen erstellt.

So erstellen Sie eine neue Verwaltungsdatenbank

  12. Löschen Sie gegebenenfalls die vorhandene Verwaltungsdatenbank bzw. benennen Sie sie um.

  13. Klicken Sie auf Start, zeigen Sie auf Programme, dann auf Microsoft SQL Server, und klicken Sie auf Enterprise Manager.

  14. Erweitern Sie in Enterprise Manager nacheinander Microsoft SQL Server, SQL Server-Gruppe und den Namen des Servers, auf dem die neue Verwaltungsdatenbank erstellt werden soll.

  15. Klicken Sie mit der rechten Maustaste auf Datenbanken, und klicken Sie dann auf Neue Datenbank.

  16. Klicken Sie im Dialogfeld Datenbankeigenschaften auf die Registerkarte Allgemein, und geben Sie im Feld Name die Zeichenfolge MSCS_Admin ein.

  17. Klicken Sie auf OK.

Die neue Datenbank wird nun erstellt. Als Nächstes führen Sie die Datei admin_schema.sql aus.

So führen Sie die Datei "admin_schema.sql" aus

  1. Klicken Sie in Enterprise Manager auf die Datenbank MSCS_Admin.

  2. Klicken Sie im Menü Extras auf SQL Query Analyzer.

  3. Klicken Sie im Menü Datei auf Öffnen.

  4. Wechseln Sie zu Programme\Microsoft Commerce Server, markieren Sie die Datei admin_schema, und klicken Sie dann auf Öffnen.

  5. Klicken Sie im Menü Abfrage auf Ausführen.

Sie müssen Ihre Sites erneut entpacken und den Direct Mailer-Dienst und die Vorhersageressource mit Commerce Server-Setup neu installieren.

Anmerkung

  • Unmittelbar nach der Installation der Site und bei jeder Änderung der Konfiguration der Commerce Server-Bereitstellung sollten Sie eine Sicherungskopie der Verwaltungsdatenbank anlegen und dieser einen neuen Namen geben. Anhand dieser Kopie können Sie dann jederzeit mit einem Rollback alle Änderungen rückgängig machen, die zu einem späteren Zeitpunkt vorgenommen werden.


Business Desk: Das Ändern des Administratorkennworts verursacht die Trennung des Business Desk-Clients

Wenn Sie auf dem Server, auf dem Commerce Server Business Desk installiert ist, das Administratorkennwort ändern, werden Fehlermeldungen ausgegeben, sobald Business Desk-Clientcomputer versuchen, auf Business Desk zuzugreifen. Die folgenden Meldungen werden möglicherweise angezeigt:

  • "Fehler beim Laden eines Teils von Business Desk."

  • "Fehler beim Laden der Business Desk-Anwendung."

Lösung

Wenn Sie auf dem Server das Administratorkennwort für Commerce Server ändern, müssen Sie auch das Kennwort in den Komponentendiensten ändern und dann die Datei Global.asa speichern.

So ändern Sie das Kennwort in den Komponentendiensten

  1. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Verwaltung, und klicken Sie dann auf Komponentendienste.

  2. Erweitern Sie die Knoten auf den folgenden Pfad: Komponentendienste/Computer/Arbeitsplatz/COM+-Anwendungen/Commerce-Ereignisprotokollierung.

  3. Klicken Sie mit der rechten Maustaste auf Commerce-Ereignisprotokollierung, und klicken Sie dann auf Eigenschaften.

  4. Klicken Sie im Dialogfeld Eigenschaften von Commerce-Ereignisprotokollierung auf die Registerkarte Identität, und geben Sie im Feld Kennwort das neue Kennwort ein.

  5. Geben Sie im Feld Kennwort bestätigen erneut das neue Kennwort ein, und klicken Sie dann auf OK.

Das Kennwort wird aktualisiert, und Business Desk sollte nun geöffnet werden können.

So speichern Sie die Datei "Global.asa"

  1. Wechseln Sie zum virtuellen Verzeichnis von Business Desk, z. B. C:\Inetpub\wwwroot\retailbusinessdesk.

  2. Öffnen Sie die Datei Global.asa im Editor.

  3. Zum Speichern der Kennwortänderungen klicken Sie im Menü Datei auf Speichern und dann auf Beenden.

Die Änderungen an der Datei Global.asa sind nun gespeichert. Zur Aktualisierung des geänderten Kennworts müssen sämtliche Benutzer Business Desk schließen und wieder öffnen.

Anmerkung

  • Sie müssen auch das Kennwort für Commerce Server-Dienste wie z. B. den Listen-Manager, Direct Mailer und die Vorhersageressource ändern.

Siehe auch

Ändern des Dienstkontos oder des Kennworts


Business Desk: Hinzufügen mehrwertiger Eigenschaften

Verwenden Sie bei der Eingabe mehrwertiger Daten in Commerce Server Business Desk zur Trennung der einzelnen Werte ein Semikolon (;). Dies gilt für Benutzerprofildaten, Organisationsprofildaten und Ausdrücke im Modul "Kampagnenausdrücke".

Anmerkung

  • Wenn Sie den Benutzerprofildefinitionen mehrwertige Eigenschaften hinzugefügt haben, die Datenquellen mit den Datentypen Datum oder Datum/Uhrzeit zugeordnet werden können, exportiert der Importtask für Benutzerprofildaten die Eigenschaften in das Datawarehouse. Commerce Server 2000 bietet keine Unterstützung für mehrwertige Elemente des Typs Datum bzw. Datum/Uhrzeit.


Business Desk: Aktualisierte Konfiguration wird nicht wiedergegeben

Wenn Sie die Konfiguration von Commerce Server Business Desk geändert und dann die Website angehalten und wieder gestartet haben, wird Business Desk nicht mit den vorgenommenen Änderungen aktualisiert. Die Anwendung wird nicht erneut geladen, und sie verwendet nach wie vor die alten XML-Dateien.

Lösung

Nach Änderung der Konfiguration von Business Desk müssen Sie Business Desk auf dem Webserver neu starten, damit die Änderungen angezeigt werden. Dazu öffnen und speichern Sie die Datei Global.asa, wodurch sich die Uhrzeit der letzten Bearbeitung ändert und die Änderungen an der Konfiguration in Business Desk angezeigt werden.

So öffnen und speichern Sie die Datei "Global.asa"

  1. Klicken Sie auf Start, zeigen Sie auf Programme und auf Zubehör, und klicken Sie dann auf Editor.

  2. Klicken Sie im Menü Datei auf Öffnen. Navigieren Sie zu der Datei Global.asa, und doppelklicken Sie auf die Datei, um diese zu öffnen. Klicken Sie im Menü Datei auf Speichern, um die Datei Global.asa zu speichern, ohne sie zu ändern.

  3. Klicken Sie im Menü Datei auf Beenden, um den Editor zu beenden.

Die Änderungen an der Konfiguration von Business Desk sind nun gespeichert. Damit die Konfigurationsänderungen angezeigt werden, müssen sämtliche Business Desk-Benutzer Business Desk schließen und wieder öffnen.


Business Desk: Daten werden nicht im Listen-Manager- bzw. Benutzer-Modul angezeigt

Die Verwendung des Benutzer- und Organisationsmoduls zur Durchführung von Massenaktualisierungen bzw. zur Ausführung von Vorgängen des Typs Suchen nach in umfangreichen Benutzerdatasets führt während des Vorgangs möglicherweise zu einem Timeout.

Auch wenn Sie das Listen-Manager-Modul in umfangreichen Datasets zur Erstellung einer Benutzerliste verwenden, kann dieser Timeoutfehler auftreten.

Zu einem Timeout, bei dem Sie unter Umständen die Daten nicht mehr anzeigen können, kann es aufgrund verschiedener Faktoren kommen. Einer dieser Faktoren ist möglicherweise die große Anzahl an Entitäten, die abgerufen werden.

Als weitere Faktoren kommen die Folgenden in Frage:

  • Back-End-Konfiguration (verwenden Sie nur Active Directory; nur SQL; Active Directory und SQL?)

  • Netzwerkbandbreite

  • Systemkonfiguration (schnelle oder langsame Computer)

Lösung

Möglicherweise müssen Sie Massenaktualisierungen mithilfe eines benutzerdefinierten Skripts für OLE DB Provider für Commerce Server vornehmen. Benutzerdefinierte Skripts unterliegen nicht den Einschränkungen durch die Session.Timeout-Eigenschaft für das ASP-interne Session-Objekt. Sie können die Session.Timeout-Eigenschaft wie folgt einstellen: <% Session.Timeout = 10 %>. Dadurch wird das Timeout für Sitzungen auf 10 Minuten eingestellt. Der Maximalwert für die Session.Timeout-Eigenschaft beträgt 24 Stunden.

Weitere Informationen zur Erstellung benutzerdefinierter Skripts für Massenvorgänge finden Sie unter Code to Perform Bulk Operations Using ADO and SQL (englisches Thema).

Siehe auch

WaitOnOperation (englisches Thema)


Business Desk: "Bibliothek ist nicht registriert" oder andere Probleme mit "regexp"

Wenn Sie bei der Verwendung von Commerce Server Business Desk die Meldung "Bibliothek ist nicht registriert" oder eine andere Meldung erhalten, dass ein Problem mit dem COM-Objekt regexp (Regular Expression) aufgetreten ist, müssen Sie möglicherweise die Registrierung der Datei Vbscript.dll aufheben und diese dann erneut registrieren. Die Datei befindet sich im Ordner \System32 unter Windows auf dem Server.

Diese Fehlermeldung kann auf jeder Seite auftreten, auf der sich Steuerelemente zur Textbearbeitung (EditField) befinden.

Lösung

Heben Sie die Registrierung der Datei VBScript.dll auf, und registrieren Sie sie neu. In den folgenden Anweisungen wird davon ausgegangen, dass Windows im Pfad C:\winnt installiert ist.

So heben Sie die Registrierung der Datei "VBScript.dll" auf

  • Geben Sie an der Eingabeaufforderung die folgende Zeichenfolge ein: regsvr32.exe c:/winnt/system32/VBScript.dll /u

So registrieren Sie die Datei "VBScript.dll" neu

  • Geben Sie an der Eingabeaufforderung die folgende Zeichenfolge ein: regsvr32.exe c:/winnt/system32/VBScript.dll


Business Desk: Benutzer mit Administratorrechten haben keinen Zugriff auf Business Desk-Daten

Wenn Sie unter Windows das Dienstkonto Jeder löschen oder dieser Gruppe Berechtigungen verweigern, werden Benutzer mit Administratorrechten von Commerce Server Business Desk gesperrt.

Lösung

Löschen Sie nicht die Benutzergruppe Jeder, und nehmen Sie keine Änderungen an den Standardberechtigungen vor. Anweisungen zum Ändern eines Dienstkontos oder eines Kennwortes finden Sie unter Ändern des Dienstkontos oder des Kennworts.


Business Desk: Beim Zugriff auf Business Desk treten Laufzeitfehler auf

Beim Zugriff auf Commerce Server Business Desk wird eine der folgenden Fehlermeldungen angezeigt:

  • "Laufzeitfehler."

  • "Möchten Sie debuggen?"

Lösung

Überprüfen Sie, ob der Stammordner für Business Desk so konfiguriert ist, dass die Webfreigabe möglich ist. Standardmäßig lässt Commerce Server bei diesen Ordnern die Webfreigabe zu. Gehen Sie vor, wie nachfolgend beschrieben, um für einen Business Desk-Ordner die Webfreigabe zu ermöglichen.

So ermöglichen Sie für einen Business Desk-Ordner die Webfreigabe

  1. Navigieren Sie im Windows-Explorer zu dem Ordner, der die Business Desk-Anwendung enthält. Standardmäßig befindet sich dieser Ordner im Pfad C:\Inetpub\wwwroot.

  2. Klicken Sie mit der rechten Maustaste auf den Ordnernamen (standardmäßig weist die in Commerce Server enthaltene leere Lösungssite diesem Ordner die Bezeichnung blankbizdesk zu), und klicken Sie dann auf Eigenschaften.

  3. Klicken Sie im Dialogfeld Eigenschaften auf die Registerkarte Webfreigabe.

  4. Klicken Sie auf der Registerkarte Webfreigabe auf Diesen Ordner freigeben.

  5. Wählen Sie im Feld Aliase den Eintrag blankbizdesk aus, und klicken Sie dann auf Eigenschaften bearbeiten.

  6. Wählen Sie im Dialogfeld Alias bearbeiten im Feld Zugriffsberechtigungen die Berechtigungen für diesen Alias entsprechend den folgenden Angaben aus:

    Lesen. Hiermit ermöglichen Sie Benutzern das Lesen von Dateien in dieser Site. Diese Option muss aktiviert sein.

    Schreiben. Hiermit ermöglichen Sie Benutzern das Schreiben von Dateien in diese Site.

    Skriptzugriff. Hiermit ermöglichen Sie Benutzern den Zugriff auf den Skriptquellcode.

    Verzeichnis durchsuchen. Hiermit ermöglichen Sie Benutzern das Durchsuchen des Ordnerinhalts.

  7. Wählen Sie im Feld Zugriffsberechtigungen die Anwendungsberechtigungen entsprechend den folgenden Angaben aus:

    Keine. Hiermit hindern Sie Benutzer daran, Anwendungsdateien in diesem Ordner auszuführen.

    Skripts. Hiermit ermöglichen Sie Benutzern das Ausführen von Skripts in diesem Ordner, unterbinden jedoch das Ausführen von Anwendungen.

    Ausführen (einschließlich Skripts). Hiermit ermöglichen Sie Benutzern das Ausführen von Skripts und Anwendungen in diesem Ordner.

  8. Klicken Sie auf OK. Überprüfen Sie im Dialogfeld Eigenschaften die Liste der Aliasnamen für die Freigabe, und klicken Sie dann erneut auf OK.


Business Desk: Bei Anmeldung als Administrator ist der Zugriff auf Sites nicht möglich

Sie haben sich erfolgreich bei Commerce Server Business Desk angemeldet. Dazu haben Sie das unter Microsoft Windows 2000 erstellte Administratorkonto verwendet. Aber Sie haben keinen Zugriff auf die Sites. Business Desk lässt nicht zu, dass Sie als Administrator auf eine Site zugreifen, da für diesen Namen kein Benutzerprofil in Business Desk vorhanden ist. Sie können jedoch in Business Desk keinen Benutzer mit dem Namen Administrator erstellen, da dieser Name im Computer bereits vorhanden ist.

Lösung

Melden Sie sich unter Verwendung eines in Business Desk erstellten Benutzerkontos bei Business Desk an. Stellen Sie sicher, dass dieses Konto mit den erforderlichen Zugriffsberechtigungen ausgestattet ist. Fügen Sie der Administratorgruppe gegebenenfalls weitere Business Desk-Benutzer hinzu.


Zusammenfassung der bei Berichten auftretenden Probleme

In der folgenden Tabelle finden Sie eine Zusammenfassung aller möglicherweise im Zusammenhang mit Berichten auftretenden Probleme.

Bericht | Problem
Verwendungstrends | Summe und Gesamtsumme basieren auf der Anzahl der Benutzer an einem bestimmten Tag. Dieser stimmt möglicherweise nicht mit dem angegebenen Berichtszeitraum überein.
Allgemeine Aktivitätsstatistiken | Die angegebene Anzahl der durchschnittlichen Besuche pro Wochentag ist möglicherweise ungenau. Berechnungsgrundlage ist die Anzahl der Besuche an einem bestimmten Wochentag dividiert durch die Anzahl der Wochen in dem angegebenen Zeitraum. In manchen Fällen enthält dieser Bericht nicht den exakten Durchschnittswert. Ein ähnliches Problem gibt es mit der Anzahl der Besuche pro Stunde oder pro Tag.
Käuferverhalten bis zum Kauf | Der Prozentsatz der registrierten Benutzer, die Einkäufe tätigen, basiert auf der Anzahl sämtlicher Benutzer und nicht auf der Anzahl der registrierten Benutzer, wie im Bericht angegeben.
Zusammenfassung der Kundenausgaben und Produktverkäufe | Der Einzelpreis für beide Berichte ist ungenau.


Berichte: Fehler in Bericht "Käuferverhalten bis zum Kauf"

Wenn Sie den Bericht Käuferverhalten bis zum Kauf ausführen und dabei eine Fehlermeldung ausgegeben wird, ist dies unter Umständen auf nicht aktivierte Profilsystemcookies zurückzuführen. Das führt dazu, dass keine Daten zu registrierten Benutzern in das Datawarehouse importiert und zu dem Cube Käuferbesuche hinzugefügt werden. Für den Bericht Käuferverhalten bis zum Kauf stehen keine Daten zu registrierten Benutzern zur Verfügung.

Lösung

Zur Lösung stehen Ihnen drei Möglichkeiten zur Verfügung:

  1. Aktivieren Sie zunächst die Profilsystemcookies, importieren Sie Benutzerdaten in das Datawarehouse, und führen Sie dann den DTS-Berichtsvorbereitungstask aus. Führen Sie den Bericht Käuferverhalten bis zum Kauf erneut aus.

  2. Fügen Sie benutzerdefinierte statische Berichte hinzu, die Angaben zu den Käuferaktivitäten nach registriertem Benutzer für anonyme registrierte Benutzer enthalten. Anonyme registrierte Benutzer weisen in der Tabelle dbo.RegisteredUser für Anmeldename einen NULL-Wert auf. Führen Sie diesen Bericht an Stelle des Berichts Käuferverhalten bis zum Kauf aus.

  3. Löschen Sie aus den Cubes Warenkorb und Webverwendung die gemeinsame Dimension Registrierter Benutzer. Sie können nach Aktivierung der Profilsystemcookies die gemeinsame Dimension Registrierter Benutzer wieder hinzufügen. Führen Sie den Bericht Käuferverhalten bis zum Kauf erneut aus. In dem Bericht werden keine Daten zu registrierten Benutzern angezeigt.


Berichte: Dynamische SQL-Berichte können nicht angezeigt werden

Nachdem Daten und Protokolldateien in das Datawarehouse importiert wurden und der DTS-Berichtsvorbereitungstask (Data Transformation Services) ausgeführt wurde, führen Sie einen dynamischen SQL Server-Bericht aus, woraufhin die Pivotsteuerung die folgende Fehlermeldung ausgibt:

"Die PivotTable "PivotTable" konnte keine Verbindung zur Datenquelle "" herstellen. Um weitere Informationen über die Datenquelle zu erhalten, wenden Sie sich bitte an den Ersteller der Datei. (0x80040e4d)."

Wenn Sie einen dynamischen Bericht anzeigen möchten, der auf eine SQL Server-Datenbank zugreift, für die Sie weder Lese- noch Schreibberechtigungen besitzen, können Sie den Bericht nicht anzeigen. Dieses Problem tritt bei dynamischen OLAP-Berichten nicht auf.

Die folgenden Berichte sind von diesem Problem betroffen:

  • Anzeigenreichweite und -häufigkeit pro Kampagne

  • Anzeigenreichweite und -häufigkeit pro Kampagnenartikel

  • Anzeigenreichweite und -häufigkeit pro Tag

  • Zusammenfassung der Kampagnenartikel

  • Verschiedene Benutzer und Besuche pro Woche

  • Verschiedene Benutzer pro Tag

  • Registrierte Benutzer nach Registrierungsdatum

  • Tage bis zur Registrierung

  • Benutzerregistrierungsrate

  • Besuche pro Browser, Version und Betriebssystem

Lösung

Sie müssen über Lese- und Schreibberechtigungen für die Datenbank verfügen, auf die die Berichte zugreifen. Es ist möglicherweise sinnvoll, unter Microsoft Windows 2000 eine Benutzergruppe mit Lese-/Schreibberechtigung für die SQL Server-Datenbank zu definieren. Dann können Sie Benutzer hinzufügen, die diese Berechtigungen benötigen.

So definieren Sie eine Benutzergruppe mit Lese-/Schreibberechtigung

  1. Erstellen Sie unter Windows 2000 eine neue Benutzergruppe. Fügen Sie dieser Gruppe beliebige Benutzer hinzu.

  2. Klicken Sie auf Start, zeigen Sie auf Programme, dann auf Microsoft SQL Server, und klicken Sie auf Enterprise Manager.

  3. Erweitern Sie den Stammknoten der Konsole auf Microsoft SQL Servers/<Servername>/Sicherheit/Benutzernamen.

  4. Klicken Sie mit der rechten Maustaste auf Benutzernamen, und klicken Sie auf Neuer Benutzername.

  5. Klicken Sie im Dialogfeld SQL Server-Anmeldungseigenschaften – Neuer Benutzername auf die Registerkarte Allgemein, und geben Sie im Feld Name den neuen Anmeldenamen für die Gruppe ein, oder klicken Sie auf Auslassungszeichen, um nach dem neuen Gruppennamen zu suchen.

  6. Wählen Sie SQL Server-Authentifizierung aus, und geben Sie ein Kennwort für die Gruppe ein.

  7. Klicken Sie auf Hinzufügen und anschließend auf OK.

  8. Wählen Sie auf der Registerkarte Datenbankzugriff die Option Zulassen für die Datenbank aus, für die die Berechtigungen erteilt werden sollen, z. B. Retail_dw.

    Der neue Anmeldename für die Gruppe wird in der Spalte Benutzer angezeigt.

  9. Aktivieren Sie im Feld Datenbankrollen die Kontrollkästchen Zulassen für die Datenbanken db_datareader und db_datawriter, und klicken Sie dann auf OK.

Sie können dieser Gruppe nun sich selbst und beliebige andere Benutzer für den Zugriff auf dynamische SQL Server-Berichte hinzufügen.


Berichte enthalten keine Daten

Wenn Berichte ohne Daten angezeigt werden, wurde möglicherweise die gemeinsame Dimension Site ungefiltert aus einem oder mehreren der folgenden Cubes gelöscht:

  • Bandbreite

  • Warenkorbereignisse

  • Käuferbesuche

  • Bestellereignisse

  • Benutzer

  • Webverwendung

  • Benutzertrends pro Woche

Lösung

Wenn die Dimension gelöscht wurde, müssen Sie die gemeinsame Dimension Site ungefiltert den entsprechenden Cubes im Analysis-Manager wieder hinzufügen.

So fügen Sie die gemeinsame Dimension "Site ungefiltert" hinzu

  1. Klicken Sie auf Start, zeigen Sie auf Programme, dann auf Microsoft Commerce Server 2000, und klicken Sie auf Commerce Server-Manager.

  2. Erweitern Sie den Knoten Analysis-Server auf <Servername>/<OLAP-Datenbankname>/Cubes/<Cubename>/.

  3. Klicken Sie mit der rechten Maustaste auf den Cube, und klicken Sie dann auf Bearbeiten.

  4. Klicken Sie im Dialogfeld Cube-Editor mit der rechten Maustaste auf Dimensionen, und wählen Sie dann Vorhandene Dimensionen aus.

  5. Klicken Sie im Dialogfeld Dimensions-Manager im Feld Gemeinsame Dimensionen auf Site ungefiltert, und klicken Sie dann auf die Schaltfläche mit dem nach rechts weisenden Pfeil (>).

  6. Klicken Sie auf OK und dann auf der Symbolleiste auf Speichern.

  7. Schließen Sie den Cube-Editor, und führen Sie dann erneut den DTS-Task Berichtsvorbereitung (Commerce Server) aus.

Anmerkung

  • Sie können die Cubes im Analysis-Manager auch manuell erneut aufbereiten.


Problembehandlung bei Site Packager

In diesem Abschnitt werden Probleme beschrieben, die bei der Arbeit mit Commerce Server Site Packager auftreten können, und mögliche Lösungen aufgezeigt.

Dieser Abschnitt beinhaltet folgende Themen:

  • Site Packager-Fehlermeldungen

  • Beim Entpacken des Datawarehouse wird der Fehler "Fehler bei der Anmeldung für den Benutzer" angezeigt

  • Entpacken einer Site auf einen Webserver ist nicht möglich

  • Beim Entpacken einer Site wird die Fehlermeldung "Angegebener Pfad ist nicht vorhanden" angezeigt

  • Beim Entpacken einer Site wird die Fehlermeldung "Fehler beim Aufrufen der Import-API…" angezeigt

  • Nach dem Entpacken einer Site wird die Fehlermeldung "Fehlendes Profil" angezeigt

  • Nach dem Entpacken einer Site werden die Datenbanken nicht angezeigt


Site Packager-Fehlermeldungen

Dieser Abschnitt enthält Informationen zu einigen Fehlermeldungen, die möglicherweise bei der Verwendung von Site Packager im Ereignisprotokoll von Commerce Server Site Packager (Pup.log) angezeigt werden. Es wird jedoch kein Anspruch auf Vollständigkeit erhoben.

"Fehler beim Suchen des Verzeichnisses für <Anwendung> <Fehlernummer>:<Fehlerbeschreibung>"

Site Packager hat bei der Suche nach den IIS 5.0-Metabasiseinträgen für eine Anwendung bzw. bei der Suche nach dem physischen Pfad einen Fehler festgestellt. Dieser Fehler tritt auf, wenn die Metabasis auf ein nicht vorhandenes Verzeichnis zeigt oder der Metabasiseintrag für die Anwendung gelöscht wurde. Dieser Fehler tritt nur beim Packen auf.

"Fehler beim Suchen des ISS-Objekts für <Anwendungsname>:<Fehlerbeschreibung>"

Site Packager hat beim Zugreifen auf die IIS-Einstellungen für <Anwendungsname> einen Fehler festgestellt. Entweder ist die Metabasis beschädigt, oder die Anwendung zeigt auf ein virtuelles Verzeichnis, das nicht vorhanden ist. Überprüfen Sie, ob die Anwendungen im Paket auf ein virtuelles Verzeichnis zeigen, das tatsächlich vorhanden ist.

"Fehler beim Importieren des URLs für <Anwendungsname> <Fehlernummer>:<Fehlerbeschreibung>"

Site Packager hat beim Erstellen eines virtuellen Verzeichnisses für die Anwendung bzw. beim Kopieren von Anwendungsdateien in einen Ordner einen Fehler festgestellt. Stellen Sie sicher, dass Sie über die zum Ändern von IIS-Einstellungen erforderlichen Administratorprivilegien verfügen.

"Fehler beim Exportieren von Objektdaten für <Ressourcenname> in Datei <Dateiname> <Fehlernummer>:<Fehlerbeschreibung>"

Site Packager hat beim Exportieren der Daten für eine Ressource bzw. Anwendung einen Fehler festgestellt. Entweder sind die Daten nicht vorhanden, oder es ist ein Automatisierungsfehler aufgetreten. Dieser Fehler tritt nur beim Packen auf.

"Fehler beim Importieren von Objektdaten für <Ressourcenname> aus Datei <Dateiname> <Fehlernummer>:<Fehlerbeschreibung>"

Site Packager hat beim Importieren der Daten für eine Ressource bzw. Anwendung einen Fehler festgestellt. Entweder sind die Daten beschädigt, oder es ist ein Automatisierungsfehler aufgetreten. Dieser Fehler tritt nur beim Entpacken auf.

"Fehler beim Erstellen einer Verweisressource <Verweisressource> für <Globale Ressource> <Fehlernummer>:<Fehlerbeschreibung>"

Site Packager hat beim Erstellen eines globalen Ressourcenzeigers für die benannte globale Ressource einen Fehler festgestellt. Nachdem Sie das Problem lokalisiert und behoben haben, führen Sie Site Packager erneut im Modus Benutzerdefiniert aus, um die Ressource einer vorhandenen Anwendung hinzuzufügen.

Siehe auch

Informationen zu Site Packager


Beim Entpacken des Datawarehouse wird der Fehler "Fehler bei der Anmeldung für den Benutzer" angezeigt

Wenn Sie das Datawarehouse im Modus Benutzerdefiniert unter Verwendung von Commerce Server Site Packager entpacken, wird die folgende Fehlermeldung angezeigt: "Fehler bei der Anmeldung für den Benutzer <Benutzername>". Durch Klicken auf OK wird das Dialogfeld Eigenschaften von Datawarehouse angezeigt.

Lösung

So fahren Sie mit dem Entpacken fort

  • Löschen Sie im Dialogfeld Eigenschaften von Datawarehouse im Feld Kennwort die Sternchen (**), geben Sie Ihr Kennwort ein, und klicken Sie dann auf OK.

    Füllen Sie das Feld nicht aus, wenn Sie kein Kennwort einrichten möchten.

Commerce Server Site Packager beendet nun das Entpacken der Site.


Entpacken einer Site auf einen Webserver ist nicht möglich

Commerce Server wird auf Computer A und das Datawarehouse auf Computer B installiert, aber die Site kann nicht auf Computer A entpackt werden.

Lösung

Dieses Problem tritt dann auf, wenn der Datenbankserver und der Webserver keinen gemeinsamen Sicherheitskontext verwenden. Um das Problem zu lösen, führen Sie auf dem Datenbankserver den folgenden Befehl aus:

net use \\<Webservername> /u:<lokaler_Computername>\administrator *

Geben Sie das SQL Server-Kennwort ein, wenn Sie dazu aufgefordert werden.

Des Weiteren sollten Sie die Anzahl der auf dem Computer zulässigen SQL-Verbindungen überprüfen. Bei der Installation von Microsoft SQL Server wird die Anzahl der SQL Server-Verbindungen standardmäßig auf null (0) gesetzt. Dies bedeutet, dass eine beliebige Anzahl an Verbindungen eingerichtet werden kann. Wenn Sie die Anzahl der Verbindungen ändern möchten, ordnen Sie jedem Computer in der Commerce Server-Installation vier Verbindungen zu.

So ermitteln Sie die Anzahl der derzeit verwendeten SQL Server-Verbindungen

So legen Sie SQL Server-Verbindungen fest Anmerkung

  • Es empfiehlt sich, zum Entpacken einer Site mindestens 20 Verbindungen zur Verfügung zu haben.

So ermitteln Sie die Anzahl der derzeit verwendeten SQL Server-Verbindungen

  1. Klicken Sie auf Start, zeigen Sie auf Programme, dann auf Microsoft SQL Server, und klicken Sie auf Query Analyzer.

  2. Geben Sie in dem daraufhin geöffneten Fenster die folgende Abfrage ein:
    select * from master..sysprocesses where hostname <>''

    Bei '' handelt es sich um zwei einfache Anführungszeichen.

  3. Klicken Sie auf der Symbolleiste auf die Schaltfläche Abfrage ausführen.

Query Analyzer zeigt nun die Anzahl der derzeit verwendeten SQL Server-Verbindungen an. Die Anzahl der Zeilen entspricht der Anzahl der SQL Server-Verbindungen.

So legen Sie SQL Server-Verbindungen fest

  1. Klicken Sie auf Start, zeigen Sie auf Programme, dann auf Microsoft SQL Server, und klicken Sie auf Enterprise Manager.

  2. Klicken Sie mit der rechten Maustaste auf den SQL Server-Computer, dem Verbindungen hinzugefügt werden sollen, klicken Sie auf Eigenschaften und dann auf die Registerkarte Verbindungen.

  3. Geben Sie auf der Registerkarte Verbindungen im Feld Maximum der gleichzeitigen Benutzerverbindungen (0 = unbegrenzt) die Anzahl der benötigten Verbindungen ein, und klicken Sie dann auf OK.


Beim Entpacken einer Site wird die Fehlermeldung "Angegebener Pfad ist nicht vorhanden" angezeigt

Beim Versuch, eine Site zu entpacken, wird die folgende Fehlermeldung ausgegeben:

"Angegebener Pfad ist nicht vorhanden. Überprüfen Sie den Pfad, und versuchen Sie es dann erneut."

Dieser Fehler kann auftreten, wenn Sie eine Site in einen Ordner zu entpacken versuchen, der Sonderzeichen enthält. So entpackt Commerce Server Site Packager z. B. eine Site nicht in einen Ordner mit der Bezeichnung 'eigener commerce $$%'.

Auch wenn es möglich ist, Commerce Server in einem Ordner mit Sonderzeichen zu installieren, kann in einen solchen Ordner keine Site entpackt werden.

Lösung

Kopieren Sie das Paket in ein anderes Verzeichnis, und entpacken Sie es dann.


Beim Entpacken einer Site wird die Fehlermeldung "Fehler beim Aufrufen der Import-API…" angezeigt

Beim Entpacken einer Site wird die folgende Fehlermeldung ausgegeben:

"Fehler beim Aufrufen der Import-API auf Commerce.CatalogPUP für Produktkatalog 80040E14:Quelle:Microsoft OLE DB Provider für SQL Server Beschreibung:Der Volltextdienst (Microsoft Search) ist nicht verfügbar. Der Systemadministrator muss diesen Dienst starten."

Dieser Fehler tritt auf, wenn der Microsoft Search-Dienst nicht aktiv ist, wenn Commerce Server Site Packager das Skript zur Erstellung von Katalogen ausführt.

Lösung

Starten Sie den Microsoft Search-Dienst. Dann löschen Sie entweder die Site und entpacken sie erneut, oder Sie löschen und entpacken die Katalogressource.

So starten Sie den Microsoft Search-Dienst

  1. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Verwaltung, und klicken Sie dann auf Dienste.

  2. Wählen Sie im Dialogfeld Dienste die Option Microsoft Search aus.

  3. Klicken Sie mit der rechten Maustaste auf Microsoft Search, und klicken Sie dann auf Starten.


Nach dem Entpacken einer Site wird die Fehlermeldung "Fehlendes Profil" angezeigt

  4. Diese Fehlermeldung gilt für die Lösungssite Supplier. Sie wird angezeigt, wenn der Profile-Dienst einen Benutzer in Microsoft Active Directory nicht lokalisieren kann.

"Der Benutzername ist möglicherweise nicht in den folgenden Active Directory-Containern enthalten: OU=MSCS_40_Root und OU=sitename."

Lösung

Welcher Lösungsweg der beste ist, hängt vom Zeitpunkt des Erhalts der Fehlermeldung ab.

Melden Sie sich bei der Lösungssite Supplier an. Verwenden Sie dazu einen Namen, der unter Verwendung von Laufzeitkomponenten von Microsoft Commerce Server 2000 erstellt wurde.

Wenn Sie diese Fehlermeldung unmittelbar nach dem Entpacken der Site erhalten

In diesem Fall tritt der Fehler auf, da die Site die integrierte Windows-Authentifizierung standardmäßig verwendet und der Benutzer mit einem Anmeldenamen operiert, der nicht unter Verwendung von Commerce Server Business Desk bzw. der Profilressource erstellt wurde.

Erstellen Sie mithilfe von Business Desk ein Benutzerkonto, und melden Sie sich dann beim Server als der neu eingerichtete Benutzer an. Sie sollten nun in der Lage sein, auf die Lieferantensite zuzugreifen.

Eine andere Möglichkeit besteht darin, die Standardauthentifizierung (in Internet-Informationsdienste (IIS) 5.0) für die Lieferantensite zu aktivieren. Melden Sie sich bei der Site an. Geben Sie den Benutzernamen unbedingt in einem der folgenden Formate ein:

  • domänenname\benutzername

  • benutzername@voll_gekennzeichneter_Domänenname

Wenn Sie diese Fehlermeldung (oder eine ähnliche) während der Verwendung von "AuthFilter" im Modus "Windows-Authentifizierung" erhalten

Überprüfen Sie, ob die Methode GetProfileByKey auf der Anmeldeseite ordnungsgemäß funktioniert. Wenn aufgrund dieser Methode eine Fehlermeldung in Bezug auf einen nicht autorisierten Authentifizierungsmodus angezeigt wird, hat ein anonymer Benutzer keine Berechtigung, das Benutzerprofil zu erhalten bzw. zu lesen. Weitere Informationen finden Sie unter GetProfileByKey (englisches Thema).

Überprüfen Sie in diesem Fall, ob der Benutzer über ein Windows-Benutzerkonto verfügt, das mit der Berechtigung zum Erhalt und zum Lesen der Eigenschaften des Benutzerprofils aus Active Directory ausgestattet ist.

Alternativ können Sie auch überprüfen, ob Sie ohne den ISAPI-Filter AuthFilter auf die Site zugreifen können.

So greifen Sie ohne "AuthFilter" auf die Site zu

  1. Entfernen Sie den Filter mit dem Internetdienste-Manager.

  2. Setzen Sie für die Lieferantensite den Sicherheitsmodus nur auf Standardauthentifizierung. Setzen Sie dann IIS zurück.

  3. Versuchen Sie nun mit den korrekten Anmeldeinformationen auf die Site zuzugreifen.

Sollte dies nicht funktionieren, stellen Sie sicher, dass das Benutzerkonto unter Verwendung von Business Desk erstellt wurde und aktiviert ist.

Siehe auch

Working with Site Security and Filters (englisches Thema)


Nach dem Entpacken einer Site werden die Datenbanken nicht angezeigt

Wenn Sie eine Site auf Computer A entpacken und die Datenbanken für Ressourcen auf Computer B erstellen, nachdem die Site entpackt wurde, werden die neuen Datenbanken auf Computer B nicht angezeigt.

Lösung

Lassen Sie ein paar Minuten verstreichen. Site Packager wird auf Computer A ausgeführt. Wenn nun das Netzwerk überlastet ist, kann es zu Verzögerungen bei der Erstellung der Ressourcen kommen. Sie können auch Commerce Server Site Packager erneut ausführen, um sicherzustellen, dass die Datenbanken auf Computer B und nicht auf Computer A erstellt wurden.


Problembehandlung bei Commerce Server-Ressourcen

In diesem Abschnitt werden Probleme beschrieben, die bei der Arbeit mit Commerce Server-Ressourcen auftreten können, sowie mögliche Lösungen aufgezeigt.

Dieser Abschnitt beinhaltet folgende Themen:

  • DTS-Tasks: Berichtsvorbereitungstask schlägt fehl

  • DTS-Tasks: Terminaldienste und Berichtsvorbereitungstask sind nicht kompatibel

  • DTS-Tasks: Importtask für Benutzerprofildaten unterstützt keine mehrwertigen Daten

  • Vorhersagedienst: Analysemodelle werden nicht erstellt

  • Vorhersagedienst: Die Erstellung von Analysemodellen dauert zu lange

  • Vorhersagedienst: Das Laden eines Analysemodells aus dem Datawarehouse dauert zu lange

  • Vorhersagedienst: Erstellen von mehr als einem Analysemodell für eine Anwendung

  • Vorhersagedienst: Vorhersage dauert zu lange

  • Vorhersagedienst: Gibt unabhängig von der Eingabe dieselben Vorhersageempfehlungen zurück

  • Vorhersagedienst: Keine Erstellung von Analysemodellen bei Verwendung von DBCS-Zeichen im Modellnamen

  • Profilressource: Fehler bei der Anmeldung für den Benutzer

  • Direct Mailer: Aufträge schlagen fehl, ohne dass eine Fehlermeldung angezeigt wird

  • Direct Mailer: Ermitteln von Einzelheiten zu fehlgeschlagenen Aufträgen


DTS-Tasks: Berichtsvorbereitungstask schlägt fehl

Bei der Installation des Datawarehouse auf einem Computer, auf dem Software ausgeführt wird, mit der das System in Echtzeit gescannt wird (z. B. Software zur Virenerkennung), ist möglicherweise keine erfolgreiche Ausführung des DTS-Berichtsvorbereitungstasks (Data Transformation Services) möglich.

Lösung

Um dieses Problem zu beheben, beenden Sie mit dem Aufgaben-Manager von Windows 2000 den Prozess, in dem die Scannersoftware ausgeführt wird.


DTS-Tasks: Terminaldienste und Berichtsvorbereitungstask sind nicht kompatibel

Sie müssen den DTS-Berichtsvorbereitungstask (Data Transformation Services) direkt auf dem Server ausführen. Führen Sie den DTS-Berichtsvorbereitungstask nicht von einem Paket aus, das seinerseits von den Terminaldiensten ausgeführt wird. Dies führt zu einem Fehler in DTS.

Das Problem tritt auch beim Entpacken einer Site auf. Wenn Sie das Datawarehouse entpacken, wird möglicherweise die OLAP-Datenbank nicht ordnungsgemäß erstellt.


DTS-Tasks: Importtask für Benutzerprofildaten unterstützt keine mehrwertigen Daten

Wenn Sie im Benutzerprofil mehrwertige Eigenschaften definiert haben, die Datenquellen mit den Datentypen date oder date/time zugeordnet werden können, exportiert der Importtask für Benutzerprofildaten von Commerce Server 2000 die Eigenschaften nicht in das Datawarehouse. Commerce Server 2000 bietet keine Unterstützung für mehrwertige Elemente des Typs date bzw. date/time.


Vorhersagedienst: Analysemodelle werden nicht erstellt

Sie versuchen, ein Vorhersage- bzw. Segmentmodell zu erstellen, aber die Erstellung schlägt fehl.

Lösung

Die Anforderung zur Erstellung des Modells trat entweder vor Beendigung des DTS-Berichtsvorbereitungstasks auf oder nachdem der DTS-Berichtsvorbereitungstask fehlgeschlagen war.

Führen Sie den DTS-Berichtsvorbereitungstask erneut aus. Warten Sie, bis der Task erfolgreich abgeschlossen ist, und erstellen Sie dann das Vorhersage- und das Segmentmodell.


Vorhersagedienst: Die Erstellung von Analysemodellen dauert zu lange

Die zur Erstellung eines Analysemodells erforderliche Zeit ist abhängig vom Umfang der Eingabedaten (Gesamtanzahl der Fälle), der Stichprobengröße, der Anzahl der Attribute in den Daten, verschiedenen Faktoren in Bezug auf Statistiken für die Eingabedaten und auch von Hardware- und Netzwerkeigenschaften sowie der Topologie.

Lösung

Im Folgenden werden Möglichkeiten zur Verbesserung der Erstellungsleistung aufgezeigt:

  • Wählen Sie eine kleinere Stichprobengröße. Bei größeren Stichproben kann zwar eine höhere Genauigkeit erreicht werden, allerdings nur bis zu einem bestimmten Punkt. Bei z. B. insgesamt 1.000.000 Eingabefällen beginnen Sie mit der Erstellung eines Analysemodells mit 5.000 Eingabefällen, dann mit 10.000 usw., bis Sie zu dem Punkt gelangen, an dem die Genauigkeit des Modells nicht mehr wesentlich verbessert werden kann.

  • Wenn Ihr Katalog eine hohe Anzahl an Produkten (über 1.000) enthält und Sie ein Vorhersagemodell erstellen, dann ist es zu empfehlen, im Dialogfeld Modellerstellung die Werte für Eingabeattributanteil und Ausgabeattributanteil jeweils auf weniger als 1,0 zu setzen.

Siehe auch

Erstellen eines neuen Analysemodells


Vorhersagedienst: Das Laden eines Analysemodells aus dem Datawarehouse dauert zu lange

Das Laden eines großen Analysemodells aus dem Datawarehouse kann unter Umständen sehr viel Zeit in Anspruch nehmen. Wenn Sie das Analysemodell aus einer Datei laden, kann dadurch die erforderliche Ladezeit verkürzt werden.

Lösung

Verwenden Sie nicht immer die Methode LoadModelFromDB. Speichern Sie das Modell stattdessen unter Verwendung der Methode IPredictorClient::SaveModelToFile als Datei auf dem Webserver zwischen, und laden Sie dann das Modell mithilfe der Methode LoadModelFromFile. Das Laden aus einer Datei erfolgt schneller und funktioniert auch, wenn das Datawarehouse nicht verfügbar ist.

Siehe auch

IPredictorClient::SaveModelToFile (Visual C++) (englisches Thema)

PredictorClient.SaveModelToFile (Visual Basic) (englisches Thema)


Vorhersagedienst: Erstellen von mehr als einem Analysemodell für eine Anwendung

Wenn Sie für eine bestimmte Anwendung mehrere Analysemodelle benötigen, setzen Sie die Eigenschaften an der IPredictorClient-Schnittstelle nicht pro Seite zurück, da das PredictorClient-Objekt einen Status nur dann beibehält, wenn die entsprechenden Eigenschaften für das Objekt und das aktuell geladene Analysemodell eingestellt werden.

Lösung

Zur Erstellung mehrerer Analysemodelle für eine Anwendung verwenden Sie separate Instanzen des PredictorClient-Objekts. Laden Sie nicht ein Modell für jede einzelne Seite. Erstellen Sie das PredictorClient-Objekt im Anwendungskontext mithilfe von Microsoft Internet-Informationsdienste (IIS) 5.0 in Application_OnStart, und verwenden Sie das Objekt dann auf allen einzelnen Active Server Pages (ASP).

Siehe auch

PredictorClient Object (Visual C++) (englisches Thema)

PredictorClient Object (Visual Basic) (englisches Thema)


Vorhersagedienst: Vorhersage dauert zu lange

Es dauert zu lange, ein Vorhersagemodell im Vorhersagemodell-Viewer zu öffnen bzw. ein Segmentmodell im Segment-Viewer zu öffnen.

Lösung

Die folgenden Informationen können bei einer inakzeptablen Vorhersagezeit hilfreich sein:

  • Verwenden Sie die lMaxPredictions-Schnittstelle in IPredictorClient::Predict, um die Anzahl der Vorhersagen zu beschränken, anstatt sämtliche Vorhersagen anzufordern und die Ausgabe nachzubearbeiten. Die Vorhersagezeit verkürzt sich, wenn weniger Vorhersagen angefordert werden.

  • Wenn zur Vorhersage ein Segmentmodell verwendet wird, können Sie die Anzahl der Segmente, die zur Erstellung von Segmentmodellen verwendet werden, begrenzen. Segmentmodelle werden schneller erstellt, wenn zum Zeitpunkt der Erstellung eine geringere Anzahl an Segmenten angefordert wird.

Anmerkung

  • Es empfiehlt sich, Segmentmodelle nicht für Empfehlungen in Echtzeit zu verwenden, da sie zu diesem Zweck nicht optimiert sind. Des Weiteren geben Segmentmodelle keine so genauen Empfehlungen aus wie Vorhersagemodelle. Erstellen und Verwenden Sie für Empfehlungen in Echtzeit in Ihrer Site stets Vorhersagemodelle.

Siehe auch

IPredictorClient::Predict (Visual C++) (englisches Thema)

PredictorClient.Predict (Visual Basic) (englisches Thema)

Erstellen eines neuen Analysemodells


Vorhersagedienst: Gibt unabhängig von der Eingabe dieselben Vorhersageempfehlungen zurück

Wenn Sie unabhängig von der Eingabe dieselben Empfehlungen erhalten, ist dies unter Umständen darauf zurückzuführen, dass die Vorhersageressource die Namen der Eingabeattribute nicht erkennt. Standardmäßig ignoriert das PredictorClient-Objekt Eingabeattribute, die es nicht erkennt.

Lösung

Durch Setzen von bFailOnUnknownInputAttributes auf True erzeugt das PredictorClient-Objekt zur Vorhersagezeit eine Fehlermeldung, wenn es die Eingabe nicht erkennen kann. Verwenden Sie für Vorhersagemodelle den Vorhersagemodell-Viewer, um die Strukturen anzuzeigen und erkennen zu können, welche Vorhersagen möglich sind und welche Eingabeattribute zur Vorhersage bestimmter Ausgabeattribute verwendet werden. Möglicherweise ist das Attribut, das vorhergesagt werden soll, nicht ausreichend vom Eingabeattribut abhängig, um in dem Modell berücksichtigt zu werden. Informationen zur Verwendung des Vorhersagemodell-Viewer finden Sie unter Vorhersagemodell-Viewer.

Siehe auch

PredictorClient Object (Visual C++) (englisches Thema)

PredictorClient Object (Visual Basic) (englisches Thema)


Vorhersagedienst: Keine Erstellung von Analysemodellen bei Verwendung von DBCS-Zeichen im Modellnamen

Bei der Erstellung eines Analysemodells unter Verwendung von DBCS-Zeichen (Doppelbyte-Zeichensatz) im Modellnamen wird die Fehlermeldung "Modell konnte nicht geladen werden" angezeigt.

Lösung

Stellen Sie bei Verwendung von DBCS-Zeichen im Modellnamen von Vorhersage- oder Segmentmodellen sicher, dass auf dem SQL Server-Computer, auf dem die Daten gespeichert werden, ein kompatibler Zeichensatz installiert ist.


Profilressource: Fehler bei der Anmeldung für den Benutzer

Die folgende Fehlermeldung wird angezeigt:

"Microsoft OLE DB Provider für SQL Server: Fehler bei der Anmeldung für den Benutzer <Benutzername>"

Wenn Sie eine Sicherungskopie der SQL Server-Datenbanktabellen erstellen, die mit der Profilressource verknüpft sind, und diese dann in einer anderen Datenbank entweder in derselben SQL Server-Installation oder einer anderen wiederherstellen, wird die Profilressource möglicherweise nicht initialisiert, da die Verbindungszeichenfolge(n) zu den Datenbanktabellen nach der Wiederherstellung auf dem neuen SQL Server-Computer möglicherweise nicht mehr gültig ist bzw. sind. Die Verbindungszeichenfolge(n) ist bzw. sind möglicherweise nicht gültig, da entweder die Anmeldeinformationen nicht gültig sind oder die Datenbank sich nicht in der SQL Server-Installation befindet oder beides zutrifft.

Anmerkung

  • Es ist nicht zu empfehlen, die Datenbank direkt zu sichern und wiederherzustellen. Stattdessen sollte zur Sicherung und Wiederherstellung der Datenbanken Commerce Server Site Packager verwendet werden.

Lösung

Das Profilsystem hängt von der Verbindungszeichenfolge s_CommerceProviderConnectionString ab. Diese Verbindungszeichenfolge wird vom OLE DB Provider für Commerce Server verwendet und befindet sich in der Commerce Server-Verwaltungsdatenbank. Wenn die Wiederherstellung der Verwaltungsdatenbank von der Datenbanksicherung erfolgt, erweist sich diese Verbindungszeichenfolge oftmals als ungültig und muss zurückgesetzt werden.

So setzen Sie die Verbindungszeichenfolge "s_CommerceProviderConnectionString" zurück

  1. Erweitern Sie nacheinander Commerce Server-Manager und Globale Ressourcen, klicken Sie mit der rechten Maustaste auf Profile, und klicken Sie dann auf Eigenschaften.

  2. Wählen Sie im Dialogfeld Profileigenschaften auf der Registerkarte Verbindungszeichenfolgen den Eintrag s_CommerceProvideConnectionString aus, und klicken Sie dann auf Ändern.

  3. Klicken Sie nach Durchführung der erforderlichen Änderungen im Dialogfeld Datenverknüpfungseigenschaften auf OK.

    Anmerkung

    • Informationen zum Ausfüllen des Dialogfelds Datenverknüpfungseigenschaften erhalten Sie, indem Sie im Dialogfeld Datenverknüpfungseigenschaften auf Hilfe klicken, um die Datei Hilfedatei für Microsoft Datenverknüpfung zu öffnen.


Direct Mailer: Aufträge schlagen fehl, ohne dass eine Fehlermeldung angezeigt wird

Wird der SQL Server-Agent angehalten, wenn ein geplanter Direct Mailer-Auftrag ausgeführt werden soll, wird der Auftrag nicht ausgeführt. Sie erhalten keine Meldung, dass der Auftrag nicht gestartet wurde, und es wird auch kein Fehler protokolliert.

Lösung

Um einen Auftrag zu starten, der nicht ausgeführt wurde, muss dieser manuell mit dem SQL Server-Agent in SQL Enterprise Manager ausgeführt werden.

So starten Sie einen Direct Mailer-Auftrag manuell

  1. Klicken Sie auf Start, zeigen Sie auf Programme, dann auf Microsoft SQL Server bzw. Microsoft SQL Server 7.0 (je nach installierter Datenbank), und klicken Sie auf Enterprise Manager.

  2. Erweitern Sie die Knoten auf den folgenden Pfad: \Microsoft SQL Server\SQL Server-Gruppe\<SQL Server-Name>\Management\SQL Server-Agent\Aufträge.

  3. Klicken Sie auf Aufträge. Die Direct Mailer-Aufträge werden im rechten Bereich von SQL Server Enterprise Manager angezeigt.


Direct Mailer: Ermitteln von Einzelheiten zu fehlgeschlagenen Aufträgen

Nach Beendigung eines Direct Mailer-Auftrags protokolliert Direct Mailer ein Ereignis im Ereignisprotokoll der Anwendung. Dieses enthält die Auftragsnummer, die Anfangszeit des Auftrags, die Beendigungszeit des Auftrags, die Anzahl sämtlicher Empfänger der Sendung sowie die Anzahl der aufgetretenen Fehler.

Weitere Informationen zu den fehlgeschlagenen Aufträgen finden Sie in der Direct Mailer-Datenbank in der Tabelle dml_job_errors.

Lösung

Öffnen Sie die Ereignisanzeige, und lokalisieren Sie die von Direct Mailer protokollierte Anwendungsprotokollnachricht.

So öffnen Sie die Ereignisanzeige

  1. Klicken Sie auf Start, zeigen Sie auf Programme, dann auf Microsoft Commerce Server, und klicken Sie auf Commerce Server-Manager.

  2. Erweitern Sie den Knoten Ereignisanzeige, und doppelklicken Sie auf Anwendung.

  3. Machen Sie in der Ereignisliste das Ereignis ausfindig, bei dem für Quelle der Eintrag Commerce Server Direct Mailer und für Ereigniskennung der Wert 18 enthalten ist.

  4. Doppelklicken Sie zum Öffnen des Dialogfelds Eigenschaften von Ereignis auf die Ereignismeldung.

  5. Kopieren Sie im Dialogfeld Eigenschaften von Ereignis die Auftragsnummer in die Zwischenablage von Microsoft, und öffnen Sie dann SQL Server Query Analyzer.

So öffnen Sie SQL Server Query Analyzer

  1. Klicken Sie auf Start, zeigen Sie auf Programme, dann auf Microsoft SQL Server, und klicken Sie auf Query Analyzer.

  2. Stellen Sie im Dialogfeld Verbindung mit SQL Server herstellen die Verbindung zur Direct Mailer-Datenbank her, auf die der Server zum Ausführen von Abfragen zugreift.

  3. Geben Sie im Fenster Query Analyzer die folgende Abfrage ein:
    "SELECT * FROM dml_job_errors WHERE job_id = '<job id>'

    Hier handelt es sich bei <job id> um die Auftragsnummer, die Sie in Schritt 5 unter So öffnen Sie die Ereignisanzeige kopiert haben.

Das zurückgegebene Resultset enthält Angaben zum Fehlercode und eine Beschreibung aller Fehlschläge, die im Verlauf der Verarbeitung des Direct Mailer-Auftrags aufgetreten sind.


Weitere Informationen zur Problembehandlung

Die folgenden Ressourcen enthalten weitere Informationen zur Problembehandlung:

Ressource | Verweis
Hilfethemen zum Debuggen in der Commerce Server 2000-Hilfe
  • Debugging Tools (englisches Thema)

  • Debugging Business Desk (englisches Thema)

  • Content Seletion Framework Concepts (englisches Thema)
Infodatei zu Commerce Server 2000 | Commerce Server 2000-Installations-CD
Microsoft Commerce Server-Website | www.microsoft.com/germany/servers/commerceserver/2000
Commerce Server-Lösungssites Enthält technische Informationen und Downloadversionen der Commerce Server-Lösungssites.

www.microsoft.com/germany/servers/commerceserver/2000/solutionsites.htm
TechNet Enthält technische Informationen und Tools zum Planen, Entwickeln, Bereitstellen und Verwalten von E-Commerce-Websites.

Informationen zu Commerce Server finden Sie im Menü Navigate by Product unter Commerce Server auf der linken Bildschirmseite.

www.microsoft.com/technet/ (englische Website)
Commerce Server 2000 Software Development Kit (SDK) | Enthält technische Informationen für Entwickler, die Programme bzw. intelligente Webseiten erstellen, die mit der Schnittstelle für Anwendungsprogrammierung (API) von Commerce Server integriert werden müssen. Das SDK enthält Richtlinien für Programmierer und Verweise auf verschiedene Commerce Server- und Commerce-Technologien. Des Weiteren umfasst es Beispiele und Headerdateien zur Erstellung eigener Programme. In Commerce Server 2000 enthalten (englisch).
Commerce Server 2000 Resource Kit | Das Commerce Server 2000 Resource Kit umfasst technische Informationen und Tools zum Planen, Entwickeln, Bereitstellen und Verwalten von E-Commerce-Websites. Erhältlich bei Microsoft Press.
MSDN-Informationen | Enthält Informationen zu Commerce Server 2000 und anderen Microsoft .NET Enterprise Servers. Die Informationen in dieser Site werden regelmäßig aktualisiert. Klicken Sie auf Search MSDN, und geben Sie Commerce Server 2000 ein, um verwandte Dokumente und Whitepapers aufzurufen. www.msdn.microsoft.com (englische Website)
Microsoft-Serversite Hier finden IT-Fachleute, Entwickler und Internetspezialisten umfangreiche Angaben zu sämtlichen Serverprodukten von Microsoft.

www.microsoft.com/germany/servers
Newsgroups In den Peer-to-Peer-Newsgroups können Sie sich mit anderen Administratoren, Entwicklern und Microsoft Most Valuable Professionals (MVPs) über Commerce Server unterhalten. Microsoft überwacht den Inhalt dieser Newsgroups bzw. Sites nicht und unterstützt diese auch nicht.

www.microsoft.com/germany/support/produkte/comser.htm
Premier Support Bei Premier Support for Developers handelt es sich um ein von Microsoft angebotenes Programm, das Ihnen bei der Analyse Ihrer Site und bei Problemen bei der Entwicklung helfen soll.

Einführung in Commerce Server 2000


Glossar

A

Abfrage

Eine spezifische Anforderung, Daten abzurufen, zu ändern oder zu löschen.

Abgeleitete Kategorie

Eine Kategorie, die über eine oder mehrere Parent-Child-Beziehungen einer anderen Kategorie untergeordnet ist. Auch eine untergeordnete Kategorie ist eine abgeleitete Kategorie, ebenso wie die untergeordnete Kategorie dieser Kategorie usw.

Siehe auch: Vorgängerkategorie, Untergeordnete Kategorie, Abgeleitete Produkte, Stammkategorie, Übergeordnete Kategorie

Abgeleitete Produkte

Produkte, die einer Kategorie oder einer ihr untergeordneten Kategorie zugewiesen sind.

Siehe auch: Abgeleitete Kategorie

Abgeschlossene Berichte (Modul)

Ein Modul von Commerce Server Business Desk, das zum Anzeigen des Ausführungsstatus von statischen Berichten und zum Anzeigen der vollständigen Berichte verwendet wird.

Abhängigkeitsnetzwerk

Eine grafische Zusammenfassung der in einem Vorhersagemodell enthaltenen Vorhersagebeziehungen (Abhängigkeiten). Eine grafische Zusammenfassung der in einem Vorhersagemodell enthaltenen Vorhersagebeziehungen (Abhängigkeiten). Verwenden Sie den Vorhersagemodell-Viewer zum Anzeigen eines Abhängigkeitsnetzwerks.

Siehe auch: Bogen, Entscheidungsbaum

Abonnementabschluss

Ein Vorgang, den ein Benutzer ausführt, um eine Mailingliste zu abonnieren.

Abonnementkündigung

Ein Vorgang, den ein Benutzer ausführt, um das Abonnement einer Mailingliste zu widerrufen. Der Benutzer wird zur Abonnementkündigungsliste hinzugefügt.

Abonnementkündigungsliste

Eine Liste der Benutzer, die sich entschlossen haben, das Abonnement einer Mailingliste zu kündigen.

Abonnieren

Ein Prozess, bei dem Benutzer ihre E-Mail-Adressen auf eine Liste des Listen-Managers setzen, um Inhalte zu erhalten, oder Registrierungsinformationen zur Verfügung stellen, um Inhalte abzurufen oder Zugang zu Diensten oder Sites zu erhalten.

Abrufseite (Fetch Page)

Eine bestimmte Art von ASP-Seite (Active Server Pages), mit der XML-Dokumente (Extensible Markup Language), die Daten im Standard-XML-Datenformat enthalten, abgerufen werden können. In der zurückgegebenen Seite sind ausschließlich XML-Daten vorhanden. Die ListSheet- und TreeView-HTCs erwarten dieses Datenformat, wenn sie XML/HTTP-Operationen vornehmen.

Abschluss

Der endgültige Abschluss eines Verkaufs in einer Website. Beim Einkauf in Ihrer Website wählen die Kunden u. U. verschiedene Artikel aus und speichern sie in ihrem Warenkorb. Nach dem Einkauf klicken sie auf einen Link oder eine grafische Schaltfläche, die ein Onlineformular aufrufen, in dem sie Namen, Rechnungsadresse, Zahlungsart und Lieferinformationen eingeben.

Active Directory

Der Verzeichnisdienst für Windows NT 4.0- und Windows 2000 Server. Active Directory speichert Informationen über die im Netzwerk vorhandenen Objekte und stellt sie autorisierten Systemadministratoren und Benutzern zur Verfügung. Es ermöglicht Netzwerkbenutzern mit einer einzigen Anmeldung den Zugriff auf zugelassene Ressourcen, die sich an einer beliebigen Stelle im Netzwerk befinden können. Darüber hinaus stellt Active Directory Systemadministratoren eine intuitive hierarchische Ansicht des Netzwerks und einen einzigen Administrationspunkt für alle Netzwerkobjekte zur Verfügung.

Active Directory Service Interfaces (ADSI)

Ein Verzeichnisdienstmodell, das auf Component Object Model (COM) basiert und mit dem ADSI-kompatible Clientanwendungen über einheitliche, standardisierte Schnittstellen auf eine große Zahl verschiedener Verzeichnisprotokolle wie Windows Directory Services, LDAP (Lightweight Directory Access Protocol) und NDS (Novell Directory Services) zugreifen können. ADSI schirmt die Clientanwendung von der Implementierung und den funktionalen Einzelheiten des zugrunde liegenden Datenspeichers oder Protokolls ab.

Active Server Pages (ASP)

Eine serverseitige Skriptumgebung für die Erstellung von dynamischen Webseiten oder von Webanwendungen. ASP-Seiten sind Dateien, die HTML-Tags, Text und Skriptanweisungen enthalten. ASP-Seiten können COM-Komponenten (Component Object Model) für Aufgaben wie das Verbinden mit einer Datenbank oder das Durchführen einer Berechnung aufrufen. Mit ASP können Sie interaktive Inhalte zu Webseiten hinzufügen oder ganze Webanwendungen schreiben, die HTML-Seiten als Schnittstelle zu den Kunden verwenden.

Active Template Library (ATL)

Eine Bibliothek von C++-Vorlagen für die Entwicklung von kleinen, leistungsfähigen COM-Komponenten. Von Microsoft entwickelt und als Bestandteil von Visual C++ verfügbar.

Active User Object (AUO)

Stellt einen einzigen, einheitlichen Mechanismus für den Zugriff auf sämtliche Benutzerprofilinformationen bereit. Skriptautoren müssen also keine Benutzeridentifikation und keinen Profilspeicherort mehr angeben. Ein Systemadministrator kann einen Computer so konfigurieren, dass virtuelle Namespaces aus Profilinformationen festgelegt werden. Hierzu werden die Konfigurationsinformationen angegeben, die für den Zugriff auf Profildaten aus verschiedenen Quellen erforderlich sind.

AUO ist technisch gesehen ein Container für ADSI-Objekte. Ein Systemadministrator legt die Anzahl der im AUO enthaltenen Objekte fest und stellt die Informationen zum Verwalten dieser Objekte bereit. So entsteht ein erweiterbares Modell für das Hinzufügen von neuen Speicheranbietern oder anderen Profilquellen. Durch Schreiben oder Wiederverwenden von ADSI-Anbietern können Sie auf Profilinformationen zugreifen, die sich in einem beliebigen Speicher befinden.

ActiveX Data Objects (ADO)

Ein hochentwickelter, sprachunabhängiger Satz von objektbasierten Datenzugriffsschnittstellen für Datenanwendungen. Mit ADO können Clientanwendungen mithilfe eines OLE DB-Providers auf die Daten eines Datenbankservers zugreifen und diese bearbeiten.

Siehe auch: ActiveX Data Objects (Multidimensional) (ADO MD)

ActiveX Data Objects (Multidimensional) (ADO MD)

Ein hochentwickelter, sprachunabhängiger Satz von objektbasierten Datenzugriffsschnittstellen für multidimensionale Datenanwendungen. Visual Basic und andere Automatisierungssprachen verwenden ADO MD als Schnittstelle für den Datenzugriff auf multidimensionale Datenspeicher. ADO MD ist ein Bestandteil von ADO ab Version 2.0.

Siehe auch: ActiveX Data Objects (ADO)

Administrator

Siehe Systemadministrator.

ADO

Siehe ActiveX Data Objects.

ADO MD

Siehe ActiveX Data Objects (Multidimensional) (ADO MD).

Adressenliste

Eine Liste, die mit Direct Mailer verwendet wird. Eine Adressenliste enthält fünf Standardfelder: "rcp_email", "rcp_guid", "rcp_fmt", "rcp_locale" und "rcp_url".

ADSI

Siehe Active Directory Service Interfaces.

Aggregation

Eine Tabelle oder Struktur, die vorberechnete Daten für einen OLAP-Cube (Online Analytical Processing, Analytische Onlineverarbeitung) enthält. Aggregationen ermöglichen schnelle und effiziente Abfragen in multidimensionalen Datenbanken.

Aktionsseite

Eine einzelne ASP-Datei, die einen bestimmten Aspekt der mit einem Modul in Commerce Server Business Desk verbundenen Funktionalität bereitstellt. Sie kann z. B. die Eigenschaften eines bestimmten Produkts festlegen. Aktionsseiten werden angezeigt, wenn im Navigationsbereich auf einen Modulnamen geklickt wird, oder nach dem Klicken auf eine Taskschaltfläche, die auf einer anderen Aktionsseite in demselben Modul vorhanden ist.

Siehe auch: Statusleiste

Aktualisieren

Das erneute Generieren des Indexes für die Volltextsuche. Wird ausschließlich im Modul "Katalog-Editor" in Commerce Server Business Desk verwendet.

Alternative Währung

Die Währungseinheit, die in einer Site dazu verwendet wird, eine zweite Währung für die duale Anzeige zu konvertieren und zu formatieren. Diese Eigenschaft wird vor allem in europäischen Sites verwendet, die mithilfe des EuroDisplay-Objekts Preise sowohl in der Basiswährung als auch in Euro anzeigen.

Siehe auch: Basiswährung

Alternativtext

Text, der anstelle eines Bildes angezeigt wird, während eine Webseite geladen wird, wenn Grafiken nicht angezeigt werden oder wenn der Benutzer mit der Maus auf die Grafik zeigt. Benutzer, die keinen grafischen Browser verwenden oder keine Grafiken downloaden möchten, können mithilfe des Alternativtextes die nicht angezeigte Grafik erkennen.

Analytische Onlineverarbeitung (OLAP, Online Analytical Processing)

Eine Klasse von Technologien, die zum Zwecke von Echtzeitdatenzugriff und -analyse entworfen wurde. OLAP-Daten werden in einer multidimensionalen Datenbank gespeichert, die jedes Datenattribut ( z B. Produkt, geografisches Verkaufsgebiet oder Zeitraum) als eigenständige Dimension betrachtet. OLAP-Daten werden gruppiert und über gemeinsame Dimensionen in Cubes organisiert. Das Datawarehouse verwendet OLAP-Cubes zum Speichern importierter Daten, was die Berichts- und Abfragenbearbeitung beschleunigt.

Siehe auch: Dimension, Cube

Anforderung

Jede Verbindung mit einer Internetsite, bei der Inhalte angefordert werden, die von einem URL abgerufen werden müssen. Im Gegensatz zu Zugriffen stehen Anforderungen in Beziehung zum Inhalt und zum Benutzerverhalten. Wenn beispielsweise ein Benutzer eine HTML-Seite mit drei Grafikdateien anfordert, nimmt der Webserver u. U. einen Protokolldateieintrag für die drei Grafikdateien und die HTML-Seite vor. Außerdem fügt er vielleicht einige Zeilen für den allgemeinen Aufwand hinzu. Für die Berichte, die im Analysemodul in Business Desk ausgeführt werden, wird jedoch nur eine einzige Anforderung berücksichtigt. Auch bekannt als Webanforderung oder HTTP-Anforderung.

Anforderungsdauer

Die Zeit zwischen zwei aufeinander folgenden Anforderungen im Rahmen eines Besuchs.

Anonyme Authentifizierung

Eines der Authentifizierungsverfahren, die in IIS auf Website- oder Anwendungsebene eingestellt werden können. Die anonyme Authentifizierung dient dazu, eine anonyme Web- bzw. HTTP-Verbindung ohne Angabe eines Benutzernamens oder eines Kennworts herzustellen. Sie wird üblicherweise in den öffentlichen Bereichen einer Internetsite verwendet. Wenn Sie die anonyme Authentifizierung für eine Site aktivieren, wird selbst dann eine anonyme Verbindung aufgebaut, wenn auch der authentifizierte Zugriff aktiviert wurde, es sei denn, für die angeforderte Datei gelten strengere NTFS-Rechte. Wird auch als anonymer Zugriff bezeichnet.

Anonymer Benutzer

Ein Benutzer, der ohne Angabe eines Benutzernamens und eines Kennworts auf den Inhalt in einer Website zugreift. Wird manchmal als Gastbenutzer bezeichnet.

Anonymer Zugriff

Siehe Anonyme Authentifizierung.

Anwendung

Aus Sicht der Commerce Server 2000-Verwaltung ist eine Anwendung eine ASP-Anwendung, auf die über einen einzelnen URL (Uniform Resource Locator) zugegriffen wird. Eine Anwendung wird sowohl in der Konsolenstruktur von Commerce Server als auch in der von IIS angezeigt. Die in der Commerce Server Manager-Konsolenstruktur angezeigte Anwendung ist eine logische Darstellung der Anwendung in IIS.

Anwendungsstandardkonfiguration (Ressource)

Eine durch den Commerce Server-Manager verwaltete Commerce Server-Ressource mit Eigenschaften auf Websiteebene. Verwenden Sie die Anwendungsstandardkonfiguration zum Festlegen von Eigenschaften, die die Sitefunktionalität in Bereichen wie Währungsoptionen, Rechnungsstellungsoptionen und BizTalk Server-Integration bestimmen.

Anzeige

Ein bestimmter Inhalt, der von Commerce Server basierend auf einer bestimmten, als Bereitstellungsbedarf (NOD, Need of Delivery) bezeichneten Formel übermittelt wird.

Anzeigenanforderung

Eine Gelegenheit, ein Werbeelement an einen Websitebesucher zu übermitteln. Anforderungen werden durch bestimmte Ereignisse in einer Site ausgelöst, z. B. die Anforderung einer bestimmten Seite oder den Erwerb eines bestimmten Artikels. Die Anzeige, mit der die Anforderung erfüllt wird, wird durch den Bereitstellungsbedarf (NOD, Need of Delivery) bestimmt. Wenn sie mithilfe des Moduls "Kampagnen-Manager" eine Kampagne oder einen Kampagnenartikel erstellen, können Sie die Anzahl der Anzeigenanforderungen oder Anzeigenklicks eingeben, die für die Kampagne oder den Kampagnenartikel von Commerce Server aufgezeichnet werden sollen.

Siehe auch: Anzeigenklicksatz, Kampagnenzielfestlegung, Bereitstellungsbedarf (NOD, Need of Delivery)

Anzeigen-ID

Die computergenerierte Identifizierungsnummer für eine Anzeige, die mithilfe des Moduls "Kampagnen-Manager" zu Commerce Server hinzugefügt wird.

Anzeigenklick

Das Klicken auf eine Anzeige oder ein anderes, durch einen Link verbundenes Element auf einer Webseite, das vom Server aufgezeichnet wird und zur Anzeige einer neuen Seite oder eines neuen Inhalts führt.

Siehe auch: Anzeigenklicksatz

Anzeigenklicksatz

Der Prozentsatz der Anzeigenanforderungen, die zu einem Anzeigenklick geführt haben.

Siehe auch: Anzeigenklick, Anzeigenanforderung

Anzeigenziel

Das Ergebnis eines Satzes von Ausdrücken, das die Umstände oder Benutzer beschreibt, auf die eine Anzeige ausgerichtet ist.

Apartmentthreadkomponenten

COM-Komponenten, die sich in einem einzigen Ausführungsthread befinden. Apartmentthreadkomponenten benötigen COM für die Synchronisation eingehender Aufrufe. Alle mit Visual Basic erstellten COM-Objekte sind über einen Apartmentthread verbunden.

Application Center 2000

Ein Entwicklungs- und Verwaltungstool von Microsoft für auf Windows 2000 basierende hochverfügbare Webanwendungen.

ASP

Siehe Active Server Pages (ASP).

ATL

Siehe Active Template Library (ATL).

ATL-Pipelinekomponenten-Assistent

Ein Visual C++-Assistent, der mithilfe von ATL und weiteren Vorlagen die Entwicklung von Pipelinekomponenten erleichtert.

Attribut

Ein Merkmal, das eine Eigenschaft, ein Objekt oder eine Person beschreibt. Attribute können eine Vielzahl von Informationen beinhalten, z. B. den Datentyp einer Eigenschaft (Zahl, Text, Dezimalzahl), ob die Eigenschaft in das Commerce Server-Datawarehouse exportiert wird, ob sie für Benutzer sichtbar ist oder ob sie volltextindiziert ist. Sie kann sich auf einen Satz von Werten wie beispielsweise Haarfarbe oder Alter beziehen. Abhängig davon, welche Eigenschaft oder welches Objekt beschrieben wird, könnte ein Attribut auch als Variable, Spalte oder Dimension bezeichnet werden.

Siehe auch: Knoten

AUO

Siehe Active User Object (AUO).

Ausdruck

Eine Bedingung, die gegen Profile ausgewertet wird, um zu bestimmen, ob Inhalte ausgeliefert werden sollen oder eine andere Aktion ausgeführt werden soll. Ein Ausdruck kann "user.totalvisit > 100" (mehr als 100 Besuche eines Benutzers) sein. Wenn dieser Ausdruck den Wert 'True' annimmt, wird dem Benutzer der Inhaltsbestandteil angezeigt. Verwenden Sie das Modul "Kampagnenausdrücke" dazu, Ausdrücke zu erstellen und diese Ausdrücke dann mit Aktionen zu kombinieren, die nach dem Auswerten der Ausdrücke ausgeführt werden sollen.

Siehe auch: Ausdrucksgenerator

Ausdrucksgenerator

Ein Tool, das Sie zum Erstellen eines Ausdrucks verwenden. Der Ausdrucksgenerator enthält eine Liste von gebräuchlichen Ausdrücken, aus der Sie auswählen können, um die Eigenschaften festzulegen, die Sie gezielt ansprechen wollen. Sie greifen beim Erstellen von neuen Zielausdrücken oder Katalogausdrücken vom Modul "Kampagnenausdrücke" aus auf den Ausdrucksgenerator zu.

Siehe auch: Ausdruck

Ausdrucksspeicher

Die Tabellen einer Commerce Server-Datenbank, in der Ausdrucksinformationen gespeichert werden.

Siehe auch: Speicher

Authentifizierter Zugriff

Eine Benutzerzugriffsoption, die in IIS auf Standardwebsite- oder Anwendungsebene festgelegt werden kann. Im Gegensatz zum anonymen Zugriff benötigt der Benutzer für den authentifizierten Zugriff auf die Site ein gültiges Konto und ein Kennwort. Die drei Arten des authentifizierten Zugriffs sind "Einfache Authentifizierung", "Digestauthentifizierung" und "Integrierte Windows-Authentifizierung".

Authentifizierungsdienst

Siehe CS-Authentifizierung (Ressource).

Authentifizierungsticket

Ein Ticket, das Commerce Server für registrierte Benutzer erstellt. Wird auch als MSCSAuth-Ticket bezeichnet.

Siehe auch: Ticket, Profilticket

Autorisierung

Ein Vorgang, bei dem überprüft wird, ob ein Benutzer für den Zugriff auf eine Webseite oder eine Datenbank oder zum Ausführen von Aufgaben wie das Sichern von Daten berechtigt ist. Die Autorisierung wird in der Regel von einem Systemadministrator oder Siteentwickler eingerichtet und vom Computer überprüft und erteilt. Der Benutzer stellt eine Identifikation bereit, z. B. eine Codenummer oder ein Kennwort, das vom Computer mit den internen Datensätzen verglichen wird.

B

Basiskatalog

Ein Quellkatalog, von dem ein benutzerdefinierter Katalog abgeleitet wird.

Basiswährung

Die Währungseinheit, die in der Site zum Durchführen von Berechnungen verwendet wird.

Siehe auch: Alternative Währung

Bearbeitungsseite

Eine der zwei Haupt-Aktionsseitentypen in Commerce Server Business Desk. Bearbeitungsseiten stellen Mechanismen zum Ändern von Daten in Business Desk zur Verfügung. Bearbeitungsseiten verwenden den Commerce Server Business Desk-Arbeitsbereich nicht gemeinsam mit dem Navigationsbereich. Der Navigationsbereich ist ausgeblendet, wenn Bearbeitungsseiten gerendert werden; dadurch wird das Navigieren zu einem anderen Modul so lange verhindert, bis die Bearbeitungsseite verlassen wird und der Benutzer zu einer Listenseite zurückkehrt.

Siehe auch: Listenseite

Belastungstest

Ein an einer Commerce Server-Anwendung durchgeführter Test, um sicherzustellen, dass die erwartete Anzahl gleichzeitiger Benutzer unterstützt wird und Spitzen der Benutzerlast ohne Leistungseinbußen adäquat bewältigt werden können. Der Belastungstest wird mit einem Belastungstool durchgeführt, das Belastungen erzeugt, die vom Systemadministrator definiert und dem erwarteten Verwendungsmuster der Website angenähert werden. Dies wird auch als Testen unter Belastung bezeichnet.

Benutzer

Eine Person, die eine E-Commerce-Site mindestens einmal besucht. Benutzer bezieht sich auf jede Person, die in der Website klickt, unabhängig davon, ob es sich um einen registrierten oder um einen anonymen Benutzer handelt.

Benutzerdefinierter Katalog

Ein Katalog, der dieselben Kategorien und Produkte wie der Basiskatalog und zusätzlich benutzerdefinierte Preisgestaltungsregeln für die Produkte enthält.

Benutzerdefinierter Preis

Die spezifischen Preisgestaltungsregeln, die auf Produkte in einem benutzerdefinierten Katalog anzuwenden sind. Es gibt drei Arten von benutzerdefinierten Preisen: Prozentueller Preisnachlass, Festbetragspreisnachlass und expliziter Preis.

Benutzerliste

Eine Liste mit der Spalte "rcp_guid", die Benutzer-IDs enthält.

Benutzer (Modul)

Ein Modul von Commerce Server Business Desk, das zum Ändern von Benutzerdatensätzen sowie zum Hinzufügen und Löschen von Benutzerinformationen verwendet wird.

Benutzerprofil

Ein Satz vordefinierter Eigenschaften, die einen Benutzer beschreiben. Name, Adresse und Geschlechtseigenschaften können beispielsweise ein Benutzerprofil darstellen.

Bereitstellungsbedarf (NOD, Need of Delivery)

Die Formel, die von Commerce Server zum Bestimmen der Zeit und Häufigkeit verwendet wird, mit der es einen Bestandteil des Inhalts übermittelt. Diese Formel berücksichtigt sowohl die absolute Menge des zu übermittelnden Inhalts als auch die Länge der Zeitspanne, die zur Übermittlung dieser Menge benötigt wird. Der Bereitstellungsbedarf wird für jede Anzeigenanforderung durch Content Selection Framework berechnet, nachdem es diese bearbeitet hat. Der Bereitstellungsbedarf wird auf bezahlte Anzeigen angewendet, jedoch nicht auf Eigenwerbung.

Siehe auch: Anzeigenanforderung

Berichte (Modul)

Dieses Modul von Commerce Server Business Desk dient dazu, einen Bericht auszuwählen und auszuführen.

Berichtsdefinition

Die Felder und Abfragen, die mit Daten aufgefüllt werden, wenn ein Bericht ausgeführt wird. Jeder Bericht verfügt über eine eigene Berichtsdefinition. Wenn Sie einen Bericht anpassen, wird die Berichtsdefinition angepasst, nicht der die Daten enthaltende Bericht.

Bestellformularobjekt

Ein Objekt, in dem Daten über die aktuellen und u. U. auch vergangenen Einkäufe eines bestimmten Benutzers gespeichert werden.

Bestellstatuscode

Ein numerischer Datencode, der in Commerce Server Business Desk verwendet wird, um die verschiedenen Bestellstatustypen zu identifizieren, die in Ihrer Website verwendet werden. Sie können beispielsweise Bestellstatuscodes erstellen, um gespeicherte, gelöschte oder unbearbeitete Bestellungen zu definieren.

Bestellstatus (Modul)

Dieses Modul von Commerce Server Business Desk wird dazu verwendet, Bestellstatusinformationen anzuzeigen und alle mit einer Bestellung zusammenhängenden Details darzustellen, einschließlich der Nachrichtenkopf- und Einzelposteninformationen.

Bestellung

Ein Onlineeinkauf, der von einem Benutzer an Ihre Website übermittelt wird. Eine Bestellung enthält normalerweise ein oder mehrere Artikel, den Namen und die Adresse des Kunden sowie ein Zahlungsformular für den Einkauf.

Besuch

Eine Serie von Anforderungen durch einen Benutzer. Es gibt zwei Möglichkeiten, einen Besuch zu beginnen: Der Benutzer kann durch einen Hyperlink auf die Site verwiesen werden, oder er kann den URL der Site in den Browser eingeben. Ein Besuch endet, wenn ein festgelegter Zeitraum ohne weitere Anforderungen auf der Seite verstrichen ist.

Besuchsdauer

Der Zeitraum zwischen der ersten und der letzten Anforderung eines Besuchs. Hierzu zählt nicht die Zeit, die der Benutzer mit der Anzeige der letzten Anforderung seines Besuchs verbringt.

Bewertung

Ein Maß dafür, wie genau ein Analysemodell neue Daten vorhersagt. Anhand von Bewertungen lässt sich die Effizienz von Analysemodellen messen, während im Dialogfeld "Modellerstellung" die Werte für die Stichprobengröße und die Parameter für die Eingabe- und Ausgabeattributanteile angepasst werden.

Siehe auch: Datenanpassungswert, Empfehlungsbewertung

Beziehung

Siehe Klassenbeziehung und Klassenelementbeziehung

BizTalk Server 2000

Ein Microsoft-Produkt, das die Tools und die Infrastruktur bereitstellt, die Firmen für den Austausch von Geschäftsdokumenten über verschiedene Plattformen und Betriebssysteme benötigen, ungeachtet der für die Bearbeitung eines Dokuments verwendeten Anwendung.

Bogen

Eine grafische Darstellung einer statistischen Beziehung, wie sie in einem Abhängigkeitsnetzwerk verwendet wird. Ein Bogen von Knoten A zu Knoten B bedeutet beispielsweise, dass Attribut A bei der Vorhersage von Attribut B hilft, nicht jedoch, dass Attribut B bei der Vorhersage von Attribut A hilft.

Siehe auch: Abhängigkeitsnetzwerk

Branchencode

Ein Bezeichner für einen bestimmten Industriezweig, beispielsweise für Autos, Luftfahrt oder Getränkehandel. Sie können Branchencodes mithilfe des Moduls "Referenztabellen" erstellen. Branchencodes ermöglichen Ihnen, die mit einer Anzeige verknüpfte Branche zu identifizieren, und können so verhindern, dass zwei Anzeigen von konkurrierenden Anbietern des gleichen Industriezweigs auf der gleichen Seite erscheinen. Branchencodes werden mit den Kampagnen auf Kundenebene verknüpft. Ein Branchencode wird standardmäßig für alle Werbekampagnen des Kunden verwendet. Wenn Sie den Branchencode nicht auf Kundenebene verknüpfen, müssen Sie dies auf der Anzeigenebene tun.

Business Desk

Siehe Commerce Server Business Desk.

Business Desk-Framework

Ein Satz von HTML-Komponenten (HTCs), Dienstprogrammroutinen, Include- und Konfigurationsdateien, Navigationsmechanismen und Konventionen, der eine einfache, standardisierte Implementierung von Business Desk-Modulen ermöglicht.

Businessmanager(in)

Der primäre Benutzer von Commerce Server Business Desk. Businessmanager kennen die Geschäftsziele und -strategien sowie die Abläufe zum Erstellen und Betreiben einer erfolgreichen E-Commerce-Website.

Business-To-Business-Site

Eine E-Commerce-Website für das Erstellen und Übertragen von Aufträgen zwischen Unternehmen, zwischen denen bereits eine Geschäftsbeziehung besteht. Auch als Lieferantensite oder B2B-Site bekannt.

Business-To-Consumer-Site

Eine E-Commerce-Website für den allgemeinen Verkauf an Endbenutzer. Auch als Einzelhandelssite oder B2C-Site bekannt.

C

Cache

Ein Speichersubsystem, in dem häufig verwendete Daten für einen schnelleren Zugriff dupliziert werden. Im Cache werden die Inhalte häufig aufgerufener RAM-Speicherorte sowie die Adressen, unter denen diese Daten abgelegt sind, gespeichert. Referenziert der Prozessor eine Adresse im Arbeitsspeicher, überprüft der Cache, ob er diese Adresse aufweisen kann. Ist dies der Fall, werden die Daten an den Prozessor zurückgegeben. Andernfalls findet ein regulärer Speicherzugriff statt.

Ein Cache ist nützlich, wenn der RAM-Zugriff im Vergleich zur Prozessorgeschwindigkeit langsam ist, da der Cachespeicher schneller ist als der RAM-Zugriff. Mithilfe von Commerce Server Business Desk können Sie die im Cache gespeicherten Profil-, Katalog-, Transaktions- und Kampagnendaten löschen. Bei der nächsten Anfrage an Commerce Server werden die aktualisierten Daten in die Caches geladen.

Siehe auch: Kampagnenveröffentlichung (Modul), Profilveröffentlichung (Modul), Transaktionsveröffentlichung (Modul)

Cache Loader

Eine Komponente, mit der das CacheManager-Objekt Daten in ein Cachewörterbuchobjekt lädt. Diese Komponente wurde zwar als Pipelinekomponente implementiert, wird jedoch nicht im Rahmen einer Pipeline ausgeführt.

Cache Writer

Eine Komponente, mit der das CacheManager-Objekt Aktivitätsdaten aus einem Cachewörterbuchobjekt schreibt. Diese Komponente wurde zwar als Pipelinekomponente implementiert, wird jedoch nicht im Rahmen einer Pipeline ausgeführt.

Client

Das Programm oder der Benutzer, von dem eine Anfrage in einer Client/Server-Beziehung ausgeht. Beispielsweise stellt eine Person, die Commerce Server Business Desk verwendet, Clientanforderungen an den Business Desk-Server, um Daten abzurufen.

Cluster

Eine Gruppe von Benutzern im Commerce Server-Vorhersagefeature, deren Profile gemeinsame Merkmale aufweisen. Cluster werden von der Vorhersageressource erkannt und können mit dem Modul "Segment-Viewer" angezeigt werden.

Siehe auch: Webfarm

Code für Bundesland/Kanton

Ein aus drei Zeichen bestehender Datencode, der in Commerce Server Business Desk verwendet wird, um das Bundesland oder den Kanton zu kennzeichen, in das oder den Produkte geliefert werden sollen. Der Code für Bundesland/Kanton muss festgelegt werden, um das Modul "Steuer" von Commerce Server Business Desk verwenden zu können.

Codewert

Eine Abkürzung für die Darstellung von Textinformationen für Eigenschaften wie Land/Region, Bundesland/Kanton und Bestellstatus. WA ist beispielsweise der Codewert für Washington.

COM

Siehe Component Object Model (COM).

COM-Komponente (Component Object Model)

Eine Binärdatei, die Code für eine oder mehrere ClassFactory, für COM-Klassen, Mechanismen für Registrierungseinträge, das Laden von Code usw. enthält.

Commerce-Anwendung

Siehe Anwendung.

Commerce Server Business Desk

Ein webbasiertes Siteverwaltungstool in Commerce Server 2000, das Geschäftsverwaltungsmodule für die Verwaltung und Analyse von E-Commerce-Sites bereitstellt. Beispielsweise können Sie Preisinformationen in Ihrem Katalog aktualisieren, neue Anzeigen auf bestimmte Benutzer ausrichten und anschließend Berichte ausführen, um festzustellen, wie sich diese Änderungen auf die Siteproduktivität auswirken. Auf Commerce Server Business Desk kann von jedem Computer aus zugegriffen werden, auf dem Microsoft Internet Explorer 5.5 ausgeführt wird; da das Tool webbasiert ist, kann der Zugriff sowohl lokal als auch remote erfolgen.

Standardmäßig ist mit jeder Commerce Server-Website eine einzelne Instanz von Business Desk verknüpft. Dieses Framework ist hauptsächlich als DHTML (Dynamic Hypertext Markup Language) implementiert. Es ist so konzipiert, dass Siteentwickler die von Business Desk bereitgestellten Verwaltungsfunktionalitäten verändern oder erweitern können.

Commerce Server Business Desk Framework

Eine Reihe von Diensten, die für die Verwendung durch Business Desk-Module vorgesehen sind. Es handelt sich dabei um Navigations- und Sicherheitsdienste sowie um Steuerelemente für Benutzerschnittstellen. Darüber hinaus stellt das Framework einen Satz von Standardmechanismen bereit, die festlegen, wie Module von Commerce Server Business Desk zu integrieren sind.

Commerce Server Direct Mailer

Eine globale Ressource, die gleichzeitig ein Windows 2000-Dienst ist. Direct Mailer führt Direktsendungskampagnen durch. Er verarbeitet Empfängerlisten, erstellt personalisierte Nachrichtentexte aus Webseiten oder statischen Dateien und sendet die E-Mail-Nachricht an die Empfänger. Der Commerce Server-Manager dient zum Konfigurieren und Verwalten von Direct Mailer und zum Festlegen der Verbindungszeichenfolge für die Direct Mailer-Datenbank. Commerce Server-Setup installiert Direct Mailer und die Direct Mailer-Datenbank im Rahmen der Webserverinstallation und der vollständigen Installation oder bei Auswahl von "Direct Mailer" während der benutzerdefinierten Installation.

Siehe auch: Personalisierung, Direct Mailer-Datenbank

Commerce Server-Manager

Ein Systemverwaltungstool zum Verwalten und Konfigurieren von Commerce Server-Ressourcen, -Sites, -Anwendungen und -Webservern. Commerce Server-Setup installiert es im Rahmen der Webserverinstallation und der vollständigen Installation oder bei Auswahl von "Verwaltungstools" während der benutzerdefinierten Installation. Der Commerce Server-Manager wird in MMC (Microsoft Management Console) bereitgestellt.

Commerce Server Site Packager

Ein Bereitstellungstool, mit dem Ihre Site mit allen Anwendungen und Ressourcen in eine einzige Datei (mit der Erweiterung PUP) gepackt wird, die anschließend auf einen anderen Computer verschoben werden kann. Mithilfe von Site Packager können Sie Ihre Site auf verschiedenen Computern in einer verteilten Umgebung bereitstellen. Commerce Server-Setup installiert dieses Tool im Rahmen der Webserverinstallation und der vollständigen Installation oder bei Auswahl von "Laufzeitobjekte" während der benutzerdefinierten Installation.

Component Object Model (COM)

Ein objektorientiertes Programmiermodell, in dem definiert wird, wie Objekte innerhalb einer Anwendung oder zwischen verschiedenen Anwendungen interagieren. In COM greift die Clientsoftware über einen Schnittstellenzeiger auf ein Objekt zu. Dabei ist die Schnittstelle ein verwandter Satz von Eigenschaften und Methoden.

Content Selection Framework (CSF)

Ein Entwicklungsframework für das zielgerichtete Übermitteln von Inhalten. Content Selection Framework (CSF) stellt die Komponenten bereit, die zum Aufbau von geschäftsspezifischen Messagingsystemen verwendet werden. Es bietet eine Plattform für die schnelle Entscheidungsfindung, damit Benutzern gezielt Inhalte vermittelt werden können.

Cookie

Informationen über einen Benutzer, z. B. seine Identifizierungsnummer, sein Kennwort, der Klickverlauf oder die Anzahl der Sitebesuche des Benutzers, gespeichert in einer Datei. In einem Cookie können auch Ticketdaten gespeichert werden. Commerce Server unterstützt sowohl persistent als auch nicht persistent gespeicherte Cookies. Persistent gespeicherte Cookies werden auf den Computern der Benutzer gespeichert. Nicht persistent gespeicherte Cookies werden verwendet, um die Aktivitäten von authentifizierten Benutzern bei Sitebesuchen zu verfolgen. Nicht persistent gespeicherte Cookies werden beim Beenden der Sitzung gelöscht.

Siehe auch: Ticket

Cross-Selling

Ein bestimmter Verkaufstyp, bei dem Benutzern ähnliche Produkte vorgeschlagen werden wie die, die sich bereits in ihren Warenkörben befinden. Cross-Selling-Möglichkeiten können mithilfe des Commerce Server 2000 SDK (Software Development Kit) zu einer Site hinzugefügt werden.

Siehe auch: Verwandter Verkauf

CS-Authentifizierung (Ressource)

Eine durch den Commerce Server-Manager verwaltete Commerce Server-Ressource mit Eigenschaften auf globaler Ebene. Verwenden sie die CS-Authentifizierung zum Konfigurieren der Authentifizierungsoptionen für eine Site.

CSF

Siehe Content Selection Framework (CSF).

CSV-Datei

Siehe Trennzeichengetrennte Datei (.CSV).

Cube

Eine Struktur, die eine durch gemeinsame Dimensionen und Measures festgelegte Teilmenge der Daten im Commerce Server-Datawarehouse enthält. In Commerce Server wird ein Cube während des Entpackens erstellt und durch Ausführen des DTS-Berichtvorbereitungstasks aufgefüllt und für den Datenabruf verarbeitet. Das Speichern von Daten in Cubes erhöht die Geschwindigkeit des Datenabrufs.

Siehe auch: Analytische Onlineverarbeitung (OLAP, Online Analytical Processing)

D

Darstellungsgrenze

Gibt an, wie oft einem Benutzer während einer Sitzung ein Inhaltsbestandteil gezeigt werden kann. Standardmäßig ist keine Darstellungsgrenze festgelegt. Es wird empfohlen, für die Darstellungsobergrenze keinen größeren Wert als 10 Darstellungen pro Benutzer und Sitzung festzulegen.

Data Transformation Services (DTS)

Eine Komponente von SQL Server, die zum Importieren, Exportieren und Umwandeln von Daten aus verschiedenen Datenquellen verwendet wird. Commerce Server stellt eine Reihe von DTS-Tasks zum Importieren von Daten in das Commerce Server-Datawarehouse bereit.

Datawarehouse

In Commerce Server eine Kombination aus einer SQL Server-Datenbank, einer OLAP-Datenbank (Online Analytical Processing, Analytische Onlineverarbeitung) und einer Reihe von Prozessen, die der Systemadministrator zum Importieren und Pflegen großer Datenmengen aus verschiedenen Datenquellen verwendet.

Datawarehouse-Metamodell

Ein konzeptionelles Modell, das beschreibt, wie Klassen, Datenelemente, Beziehungen und Schlüssel für das logische Datawarehouse-Schema erstellt werden.

Datawarehouse (Ressource)

Eine durch den Commerce Server-Manager verwaltete Commerce Server-Ressource mit Eigenschaften auf globaler Ebene. Verwenden Sie die Datawarehouse-Ressource zum Festlegen der Verbindungszeichenfolge für die Datawarehouse-Datenbank.

Datenanpassungswert

Ein Wert, der die Qualität der Vorhersagen darstellt, die ein Analysemodell beim Einfügen fehlender Daten erstellt.

Siehe auch: Bewertung

Datenbeschränkungen

Die Beschränkungen für die für eine Eigenschaft zulässigen Werte. Datenbeschränkungen sind datentypspezifisch. Bei einer Zahl können die Beschränkungen beispielsweise der minimale und der maximale Wert sein.

Datencode

Ein Codewert zur Darstellung von Textinformationen für Eigenschaften wie Land/Region, Bundesland/Kanton und Bestellstatus. WA ist beispielsweise der Datencode für Washington.

Datencodes (Modul)

Ein Modul von Commerce Server Business Desk, das zum Hinzufügen und Verwalten von Bestellstatuscodes, Landes-/Regionalkennzahlen und Kennzahlen für Bundesländer und Kantone verwendet wird. Landes-/Regionalkennzahlen und Kennzahlen für Bundesländer und Kantone müssen eingerichtet werden, bevor Sie das Modul "Steuersätze" zur Aktualisierung Ihrer Steuertabellen verwenden können.

Datenelement

Ein Element einer Klasse, in dem ein Datenfragment gespeichert wird. Ein Datenelement ist einer Spalte in der zugrunde liegenden relationalen Datenbank im Datawarehouse zugeordnet.

Siehe auch: Klasse

Datenmarshalling

Ein Verfahren zum Entpacken von Daten, bei dem die Daten im Speicher belassen und später durch Entpacken abgerufen werden können. Commerce Server verwendet Datenmarshalling, um die Inhalte von Wörterbuchobjekten dauerhaft in der Datenbank zu speichern.

Datenspeicher

Eine SQL Server-Datenbank oder eine andere Datenbank, die die von einer E-Commerce-Site verwendeten Daten enthält, z. B. Informationen über registrierte Benutzer, Produkte oder Anzeigen. Dieser Begriff bezieht sich auch auf den Server, der die Daten enthält (den Datenspeicherserver).

Datentyp

Eine Definition für eine Reihe von Daten, die den für die Daten möglichen Wertebereich festlegt. Beispiele für Datentypen sind: Zahl, Dezimalzahl und Text.

Dienst

Ein Programm, eine Programmroutine oder ein Prozess, die eine spezifische Systemfunktion ausführen, um andere Programmen zu unterstützen, insbesondere auf einer niedrigen, hardwarenahen Ebene. Wenn Dienste über ein Netzwerk zur Verfügung gestellt werden, können sie in Active Directory veröffentlicht werden, was eine dienstorientierte Verwaltung und Verwendung vereinfacht. Dienste verfügen über eine Reihe von gemeinsamen Verwaltungsfunktionen. Ein Dienst kann z. B. gestartet, beendet, angehalten oder fortgesetzt werden, seine Startparameter können modifiziert werden, und er kann mithilfe von Befehlszeilen-Dienstprogrammen und Skripts verwaltet werden. Commerce Server enthält die folgenden Ressourcen, die gleichzeitig auch Dienste sind: Direct Mailer, Vorhersage und Listen-Manager.

Siehe auch: Ressource

Digestauthentifizierung

Eines der Authentifizierungsverfahren, die in IIS auf Website- oder Anwendungsebene eingestellt werden können. Bei der Digestauthentifizierung wird anstelle eines Klartextkennworts ein Hashwert über das Netzwerk übertragen. Dieses Verfahren kann auch über Proxyserver und Firewalls verwendet werden und stellt eine sehr sichere Form des authentifizierten Zugriffs dar.

Dimension

Ein beschreibendes Attribut eines Measures; in der Regel ein diskretes Textattribut. Eine Dimension kann z. B. die Anzahl der Käufe beschreiben. Der numerische Wert wäre in diesem Fall das Measure.

Siehe auch: Analytische Onlineverarbeitung (OLAP, Online Analytical Processing), Measure

Direct Mailer

Siehe auch Commerce Server Direct Mailer.

Direct Mailer-Auftragsdatei

Eine Textdatei, die Informationen über den Direct Mailer-Auftrag festlegt, z. B., ob personalisierte Nachrichtentexte übermittelt werden sollen, sowie das Format des E-Mail-Nachrichtenkopfes und der Ort, an dem sich die Empfängerliste befindet. Direct Mailer-Auftragsdateien werden nur für den Standalonemodus von Direct Mailer verwendet.

Direct Mailer-Datenbank

Eine SQL Server-Datenbank, die die E-Mail-Nachrichtentexte sowie Ereignis- und Auftragsdaten enthält. Commerce Server-Setup installiert die Direct Mailer-Datenbank, wenn Sie Commerce Server Direct Mailer installieren. Die Datenbank wird auf demselben Computer installiert wie Direct Mailer. Verwenden Sie den Commerce Server-Manager zum Festlegen der Verbindungszeichenfolge von Direct Mailer zur Direct Mailer-Datenbank.

Siehe auch: Commerce Server Direct Mailer

Direkter Preis

Ein Preis, der einem bestimmten Produkt in einem Katalog und nicht einer Preiskategorie zugeordnet ist.

Siehe auch: Indirekter Preis

Direktsendung

Eine E-Mail-Nachricht, die sich an einen bestimmten Benutzer wendet und die spezifischen Anforderungen einer Direktsendungskampagne erfüllt.

Direktsendungskampagne

Eine Kampagne für die gezielte Verteilung von Anzeigen als E-Mail-Nachricht an eine bestimmte Benutzergruppe. Das Ziel einer solchen Kampagne ist das Erreichen einer möglich hohen Zahl von Antworten auf die E-Mails.

Drei-Stufen-Architektur

Eine Architektur, die eine Netwerkanwendung in drei logische Bereiche aufteilt: die Benutzerschnittstellenebene (auch: die oberste Stufe ), die Geschäftlogikebene (auch: die mittlere Stufe ) und die Datenbankebene (auch: die untere Stufe oder das Back-End). Die Stufen können eine oder mehrere Komponenten enthalten. So können z. B. mehrere Benutzerschnittstellen in der obersten Ebene liegen. Jede Benutzerschnittstelle kann mit mehreren Anwendungen der mittleren Stufe gleichzeitig kommunizieren, und die Anwendungen der mittleren Stufe können mehrere Datenbanken simultan verwenden. Komponenten einer Stufe können von einem Computer ausgeführt werden, der von den anderen Stufen getrennt ist, indem dieser mit den anderen Komponenten über ein Netzwerk kommuniziert.

Drilldownsuche

Eine Suchmethode, bei der Sie einen sich erweiternden Drilldown nach Produkten durchführen können, wobei Sie die Parametereinschränkungen festlegen können, beispielsweise eine Kategorie, ein Produkt oder eine Eigenschaft. Bei der Drilldownsuche suchen Sie nach Eigenschaften und reduzieren Sie fortwährend die Anzahl der zu den Suchkriterien passenden Produkte. Drilldownsuchen sind dann nützlich, wenn Sie nicht alle Ihre Produkte auf eine bestimmte Eigenschaft überprüfen wollen, sondern eine Produktgruppe identifizieren müssen.

DTC

Siehe Entwurfszeit-Steuerelement (DTC).

DTS

Siehe Data Transformation Services (DTS).

Dualer Schlüssel

Ein Schlüsseltyp, der sich aus einem Primärschlüssel und einem Verbindungsschlüssel zusammensetzt. Sie können duale Schlüssel verwenden, wenn Sie Profilattribute in Commerce Server Business Desk hinzufügen. Siehe auch Verbindungsschlüssel, Primärschlüssel.

Siehe auch: Verbindungsschlüssel, Primärschlüssel

Durchgeführte Pipeline

Eine Pipeline, die COM+-Transaktionen unterstützt. MtsTxPipeline und PooledTxPipeline sind die einzigen Objekte, die Transaktionen unterstützen Falls eine Komponente in einer durchgeführten Pipeline nicht ordnungsgemäß ausgeführt wird, werden die Vorgänge der vorhergehenden Komponenten in der Pipeline rückgängig gemacht und das Objekt beendet die Transaktion.

Siehe auch: Nicht durchgeführte Pipeline, Pipeline, Pipelineobjekt

DynamicTable-HTML-Komponente (HTC)

Eine HTML-Komponente (HTC), die zum Bearbeiten von Spalten in Tabellendaten verwendet wird.

Dynamischer Bericht

Ein Bericht, der zur Laufzeit erstellt wird. Jedes Mal, wenn der Bericht ausgeführt wird, sammelt er die aktuellsten Daten im Datawarehouse. Nur die Berichtsdefinition, die sich nicht ändert, wird gespeichert. (Hier unterscheidet sich der dynamische vom statischen Bericht, bei dem der Bericht zusammen mit den Daten im Datawarehouse gespeichert wird.) Sie können dynamische Berichte in einer PivotTable oder einer PivotChart anzeigen. Verwenden Sie das Modul "Berichte" zum Ausführen dynamischer Berichte.

Dynamische Liste

Eine Liste von Benutzerdatensätzen, die der Listen-Manager-Dienst zur Laufzeit bei Bedarf erstellt (z. B. beim Export der Listendaten). Jedes Mal, wenn die Liste angefordert wird, sammelt der Listen-Manager die aktuellsten Daten im Datawarehouse. Die zum Erstellen der Liste erforderlichen Informationen werden in der Listen-Manager-Datenbank gespeichert. (Hier unterscheidet sich die dynamische von der statischen Liste, bei der die gesamte Liste der Benutzerdatensätze in der Listen-Manager-Datenbank gespeichert wird.) Verwenden Sie dynamische Listen für Direktsendungskampagnen, die sie häufig durchführen, oder dann, wenn sich die Empfängerliste häufig ändert.

Siehe auch: Statische Liste

E

E-Commerce

Das Kaufen und Verkaufen von Produkten und Dienstleistungen über das Internet.

EDI

Siehe Electronic Data Interchange (EDI).

EditField-HTML-Komponente (HTC)

Eine HTML-Komponente (HTC), die zum Bearbeiten einzelner Datenelemente unterschiedlichen Typs verwendet wird. EditField-HTCs werden häufig in andere HTCs eingebettet, z. B. DynamicTable, EditSheet und ListEditor.

EditSheet-HTML-Komponente (HTC)

Eine HTML-Komponente (HTC), die zum Bündeln von Steuerelementen für die Datenbearbeitung verwendet wird.

Eigenschaft

Ein Merkmal eines Produkts, einer Kategorie oder eines Profils. Alle Eigenschaften besitzen einen Namen und einen Datentyp (z. B. "Beschreibungstext").

Eigenschaftsbasierte Suche

Eine Suchmethode, bei der Sie einen Katalog nach Produkten durchsuchen können, die Eigenschaften mit bestimmten Werten haben ( z. B. Preis > DM 20,00 und Farbe = Blau).

Eigenschaftsdefinition

Eine Spezifikation einer Eigenschaft, die für die Verwendung in Profil-, Kategorie- oder Produktdefinitionen verfügbar ist. Sie könnten z. B. eine Eigenschaftsdefinition mit dem Namen "Beschreibung" erstellen, die vom Datentyp "Zeichenfolge" ist. Sie könnten auch eine Eigenschaftsdefinition mit dem Namen "Geschlecht" erstellen, die vom Typ "Zahl" ist und lediglich zwei Werte akzeptiert: "Männlich "oder "Weiblich". Verwenden Sie die Module "Katalog-Designer" und "Profil-Designer" in Business Desk zum Verwalten von Eigenschaftsdefinitionen.

Eigenwerbung

Eine Anzeige, die angezeigt wird, wenn die bezahlten Anzeigen ihrem Bereitstellungsbedarfsplan voraus sind. Ein Kunde bestellt beispielsweise 1000 bezahlte Anzeigen, die im Verlauf von vier Monaten erscheinen sollen, aber in den ersten beiden Monaten wurde die Bestellung schon 850-mal berücksichtigt. Zum Ausgleich des Bereitstellungsbedarfsplans würde Eigenwerbung angezeigt. Eigenwerbung wird auch angezeigt, wenn es keine zur Anforderung passenden bezahlten Anzeigen gibt.

Beispielsweise wird Eigenwerbung angezeigt, weil alle bezahlten Anzeigen ein erforderliches Ziel verfehlt haben oder eine Ausschlussbedingung erfüllt ist. Eigenwerbung wird auch dazu verwendet, überschüssiges Inventar zu Sonderpreisen zu verkaufen. Sie wird auch verwendet, wenn die Anzeigen in einer Site keine bestimmten Auslieferungsziele besitzen, Sie jedoch die Anzeigen mit bestimmten Gewichtungen schalten wollen.

Siehe auch: Gewichtung

Eindeutiger Schlüssel

Ein Feld, das einen eindeutigen Bezeichner für jeden Datensatz einer Tabelle enthält So ist z. B. das Feld für die Sozialversicherungsnummer ein eindeutiger Schlüssel für Arbeitnehmerdaten.

Siehe auch: Primärschlüssel

Eindruck

Siehe Anzeigenanforderung.

Electronic Commerce

Siehe E-Commerce.

Electronic Data Interchange (EDI)

Die Übertragung von Daten zwischen verschiedenen Firmen unter Verwendung von Netzwerken, z. B. das Internet. Je mehr Firmen an das Internet angebunden sind, umso wichtiger wird EDI als einfaches Verfahren zum Kaufen, Verkaufen und Austauschen von Informationen.

Empfehlungsbewertung

Ein Wert, der die Qualität von Analysemodellen misst, wenn diese für Produktempfehlungen beim Cross-Selling verwendet werden. Dieser Wert misst die Qualität einer nach dem Rang sortierten Liste von Empfehlungen, die die Analysemodelle zurückgegeben haben.

Siehe auch: Bewertung

Entscheidungsbaum

Eine grafische Darstellung einer Sammlung von Vorhersageregeln, die die aus vorhandenen Daten abgeleitete Wahrscheinlichkeit zeigt, dass auf ein bestimmtes Ereignis ein bestimmtes zweites Ereignis folgt. Der Entscheidungsbaum für das Attribut X verschlüsselt die Wahrscheinlichkeitsverteilung p( X | Attribute, die X vorhersagen).

Siehe auch: Abhängigkeitsnetzwerk

Entwurfszeit-Steuerelement (DTC)

Ein spezieller Typ von ActiveX-Steuerelementen, der zum Erstellen von Text in einer Bearbeitungsumgebung verwendet wird. In der Regel werden dem Benutzer in dem Steuerelement verschiedene Wahlmöglichkeiten zur Verfügung gestellt; die Auswahl, die ein Benutzer trifft, nimmt Änderungen am Skript- oder HTML-Code vor, der auf der in Bearbeitung befindlichen Seite platziert wird.

Ereignis

Eine bestimmte Aktion des Benutzers. Zu den wichtigsten Ereignissen gehören das Drücken einer Taste auf der tastatur, das Klicken mit der Maus oder das Auswählen einer Schaltfläche. Ereignisse werden zusammen mit der Zeit, zu der sie auftreten, aufgezeichnet. Programmierer schreiben Code, um auf diese Aktionen zu reagieren.

Siehe auch: Häufigkeit

Erforderliche Komponente

Ein COM-Serverobjekt (Component Object Model), das die Integrität von Daten beim Verlassen der Stufe sicherstellt. Erforderliche Komponenten führen außerdem die Konvertierung von Währungswerten und ganzen Zahlen durch, so dass Stufen, die ausschließlich Komponenten von Site Server 3.0 Commerce Edition enthalten, ordnungsgemäß mit Stufen funktionieren können, die ausschließlich Commerce Server 2000-Komponenten enthalten.

Explizite Profilerstellung

Ein Prozess der Informationssammlung, bei dem die Besucher einer Website Profildaten über sich liefern. Die Benutzer tragen in einem Onlineformular beispielsweise ihre Namen, Adressen, Telefonnummern usw. ein.

Siehe auch: Implizite Profilerstellung

Expliziter Preis

Ein benutzerdefinierter Preis, durch den ein genauer Betrag festlegt wird. Ein expliziter Preis setzt einen im Basiskatalog festgelegten Preis außer Kraft.

Explizite Zielsetzung

Auslieferung zielgerichteten Inhalts unter Verwendung von Informationen, die über die Benutzer vorhanden sind, die Ihre Site durchsuchen.

ExpressionBuilder-HTML-Komponente (HTC)

Eine HTML-Komponente (HTC), mit der benannte Ausdrücke erstellt werden, die wiederum für die Zielgruppenadressierung verwendet werden können. Die ExpressionBuilder-HTC nutzt eine eingebettete Version der QueryBuilder-HTC.

Extensible Markup Language (XML)

Ein Datenformat zum Austausch strukturierter Dokumente über das Web. Sie wird Extensible Markup Language genannt, weil sie kein festes Format wie HTML aufweist. XML ist darauf ausgelegt, die Verwendung von SGML (Standard Generalized Markup Language) im World Wide Web zu ermöglichen. XML ist keine Formatierungssprache. Es ist eine Metasprache, die es dem Autor erlaubt, eine Formatierungssprache zu entwickeln. Eine reguläre Formatierungssprache stellt eine Art und Weise dar, Informationen in einer bestimmten Klasse von Dokumenten (beispielsweise HTML) zu beschreiben. Mit XML können Autoren für viele Klassen von Dokumenten ihre eigenen benutzerdefinierten Formatierungssprachen erstellen.

Extensible Markup Language-Dateninsel (XML)

Siehe XML-Dateninsel (Extensible Markup Language).

Extensible Markup Language/Hypertext Transfer Protocol-Operationen

Siehe XML/HTTP-Operationen (Extensible Markup Language/ Hypertext Transfer Protocol).

Extranet

Erweiterung eines Firmenintranets unter Verwendung der Webtechnologie zum Vereinfachen der Kommunikation zwischen den Lieferanten und Kunden einer Firma. Über ein Extranet kann Kunden und Lieferanten in begrenztem Umfang Zugriff auf das Intranet einer Firma gewährt werden, um die Kommunikationsgeschwindigkeit und die Effizienz der Geschäftsbeziehungen zu erhöhen.

F

Failover

Der Vorgang, Ressourcen entweder einzeln oder in einer Gruppe auf einem Serverclusterknoten offline und auf einem anderen Knoten wieder online zu schalten. Das Offline- und Onlineschalten erfolgt in einer vordefinierten Reihenfolge, bei der von anderen Ressourcen abhängige Ressourcen vor diesen offline geschaltet und nach diesen wieder online geschaltet werden.

Fall

Ein aus allen über einen bestimmten Benutzer bekannten Informationen bestehender Datensatz, der u. a. Benutzerprofil und Transaktionsverlauf enthält. Fälle werden auf Grundlage der Daten im Commerce Server-Datawarehouse erstellt. Sie sind die Eingabe, aus der Commerce Server das Vorhersagemodell ableitet.

Fallbezeichner

Eine eindeutige ID für jeden Benutzer.

Fallextraktion

Eine Komponente, die Daten aus dem Commerce Server-Datawarehouse liest und Fälle für die Modellerstellung erzeugt.

Firewall

Ein Sicherheitsprüfpunkt, der ein Intranet vom Internet (oder Internetgruppen) trennt. Nur bestimmte Daten dürfen einen Firewall passieren.

Freethreaded-Komponenten

COM-Komponenten, die sich in mehreren Ausführungsthreads befinden können. Die Komponenten unterstützen den Zugriff durch mehrere Clients und verwenden nicht COM, um ihre Aufrufe zu synchronisieren.

Freitextsuchbar

Ein Ja/Nein-Flag in einer Eigenschaftsdefinition, das anzeigt, ob die Eigenschaft in einer Freitextsuche gefunden werden kann. Um dieses Flag auf "Ja" zu setzen, muss die Eigenschaft vom Typ "Zeichenfolge" oder "Zahl" sein. Eine Freitextsuche findet genaue Übereinstimmungen und Wörter sowie die Flexionen dieser Wörter. Beispielsweise würden bei einer Suche nach dem Wort "fahren" auch die Wörter "fährst", "fährt", "fahrend" und "gefahren" gefunden werden.

FrontPage-Servererweiterung

Ein Satz von Programmen, die Sie zum Verwalten, Verfassen und Durchsuchen einer FrontPage-erweiterten Website verwenden können.

G

Gepoolte Pipeline

Ein Pipelineobjekt, das in COM+ registriert ist und so die Vorteile des Objektpoolings nutzen kann.

Gewichtung

Eine Möglichkeit festzulegen, wann ein Kampagnenartikel relativ zu allen Kampagnenartikeln eines bestimmten Kunden angezeigt wird. Bei einer Kampagne findet die Gewichtung nur bei Anzeigen Anwendung, für die die Zielfestlegung auf Kampagnenebene erfolgt. Bei einer Eigenwerbung ist die Gewichtung relativ zur übrigen Eigenwerbung aller Kunden und aller Kampagnen. Bei bezahlten Anzeigen ist die Gewichtung relativ zu anderen bezahlten Anzeigen der gleichen Kampagne. Verwenden Sie die Priorität und nicht die Gewichtung dazu, festzulegen, wann Preisnachlasskampagnenartikel angezeigt werden.

Siehe auch: Eigenwerbung

Global eindeutiger Bezeichner (Globally Unique Identifier, GUID)

Eine 128-Bit-Zahl, die garantiert weltweit eindeutig ist. GUIDs werden üblicherweise mit dem Befehlszeilenprogramm "Guidgen.exe" generiert. Dieses Programm erzeugt dieselbe Zahl nie zweimal, unabhängig davon, wie oft oder auf wie vielen verschiedenen Computern es ausgeführt wird. In Commerce Server können GUIDs mithilfe des GenID-Objekts generiert werden.

Globale Ressource

Eine Ressource, die für die Verwendung durch alle Sites verfügbar ist. Globale Ressourcen erscheinen als Objekte auf der globalen Ebene im Commerce Server-Manager und auf der Siteebene der Sites, die die globale Ressource verwenden. Eigenschaften von globalen Ressourcen werden auf der globalen Ebene konfiguriert.

Die folgenden globalen Ressourcen sind in Commerce Server enthalten: Commerce Server Direct Mailer und Vorhersage (die auch Windows 2000-Dienste sind), CS-Authentifizierung, Profile und Datawarehouse. Drittanbieter können benutzerdefinierte globale Ressourcen zum Arbeiten mit Commerce Server entwickeln. Verwenden Sie den Commerce Server-Manager zum Verwalten globaler Ressourcen.

Siehe auch: Ressource

Globaler Ressourcenzeiger

Ein auf Siteebene angezeigtes Ressourcenobjekt, das dazu verwendet wird, auf eine von dieser Site genutzte globale Ressource zu verweisen. Derartige globale Ressourcen können auch von anderen Sites referenziert und verwendet werden.

Grafik

Ein auf einer Webseite verwendetes optisches Element, z. B. Illustrationen, Fotografien oder eine Hintergrundtextur. Webbasierte Grafiken liegen normalerweise im GIF- oder JPEG-Format vor.

Gruppe

Ein Bereich im Commerce Server Business Desk-Bildschirm, in dem die Überschrift reduziert oder erweitert und so die Informationen in dem Bereich auf Wunsch ein- oder ausgeblendet werden können. Auch als Abschnitt bezeichnet.

GUID

Siehe Global eindeutiger Bezeichner (Globally Unique Identifier, GUID).

H

Handelspartner

Eine externe Organisation, mit der Ihre Organisation elektronische Daten austauscht. Der Austausch von Daten zwischen Handelspartnern wird durch Vereinbarungen, Pipelines und Verteilerlisten geregelt, die zwischen Ihrer Organisation und Ihren Handelspartnern erstellt werden. Der Austausch von Daten zwischen Handelspartnern erfolgt über Microsoft BizTalk Server 2000.

Hashschlüssel

Ein eindeutiger Schlüssel, häufig eine Spalte oder Spaltengruppe in einer Datenbank, der bei der Suche nach einem Element in einer umfangreichen Liste verwendet wird, um die Suchgeschwindigkeit zu erhöhen.

Häufigkeit

Die Anzahl der Ereignisse dividiert durch die Reichweite der Ereignisse.

Siehe auch: Ereignis, Reichweite

Hochgenauer Währungswert

Ein als 64-Bit-Ganzzahl dargestellter und mit 10.000 skalierter Währungswert (im Gegensatz zu den in Site Server 3.0 Commerce Edition verwendeten 32-Bit-Ganzzahlen). In Commerce Server 2000 wird DM 1,99 als 19900 angezeigt. Schlüssel, denen einen hochgenauer Währungswert zugeordnet ist, tragen das Präfix "cy_". Beispielsweise ist "_cy_oadjust_adjustedprice" die hochgenaue Währungswertversion des Schlüssels "_oadjust_adjustedprice".

Horizontale Skalierung

Erhöhen der Kapazität einer Website durch Hinzufügen weiterer Server zu einem Servercluster. Auch als "in die Breite skalieren" bezeichnet.

Siehe auch: vertikale Skalierung.

HTA

Siehe HTML-Anwendung (HTA).

HTC

Siehe HTML-Komponente (HTC).

HTML-Anwendung (HTA)

Ein Internet Explorer-Mechanismus, um HTML als eigenständige Anwendung anzuzeigen. Commerce Server Business Desk ist als HTA implementiert und enthält Code, der verhindert, dass das Programm in einer normalen Browserinstanz ausgeführt wird.

HTML-Komponente (HTC)

Ein unter Verwendung der DHTML-Verhaltensweisen von Internet Explorer implementiertes Steuerelement. HTCs werden in den Modulen von Commerce Server Business Desk zum Anzeigen und Ändern von Daten verwendet.

HTTP

Siehe Hypertext Transfer Protocol (HTTP).

Hypertext Transfer Protocol (HTTP)

Das zum Senden und Empfangen aller Daten über das World Wide Web verwendete Client/Server-Protokoll. Wenn Sie einen URL in Ihrem Browser eingeben, senden sie tatsächlich eine HTTP-Anforderung für eine Informationsseite an einen Webserver.

I

Identifizierung

Der Vorgang des Abbildens eines Objekts auf die unterstützten Identifikationsschemas oder des Empfangens der eindeutigen Benutzer-ID (UID). Normalerweise stellt das Betriebssystem, IIS oder Commerce Server diese Identifizierung bereit.

IIS

Siehe Internet-Informationsdienste (IIS).

IIS-Anwendung

Siehe Anwendung.

Implizite Profilerstellung

Ein Prozess der Informationssammlung, bei dem die Aktionen und Verhaltensweisen eines Besuchers der Website aufgezeichnet werden, während sich dieser in Ihrer Website bewegt und mit ihr interagiert.

Siehe auch: Explizite Profilerstellung, Vorhersageressource

Implizite Zielfestlegung

Übermitteln zielgerichteter Inhalte unter Verwendung von vorhandenen Benutzerdaten zum Extrapolieren unbekannter Informationen über Benutzer, die Ihre Site durchsuchen. In Commerce Server ermöglicht es Ihnen die Vorhersageressource, Ihre Benutzer zu kategorisieren, um die implizite Zielsetzung zu unterstützen.

Indirekter Preis

Ein mit einer Preiskategorie verknüpfter Preis. Das Preisfeld des Produktdatensatzes wird ignoriert.

Siehe auch: Direkter Preis

Inhaltsauswahlbewertung

Ein numerischer Wert, der die Grundlage für die Auswahl von zielgruppenorientierten Inhalten wie Anzeigen oder Preisnachlässen in Content Selection Framework (CSF) bildet. In der Stufe "Anfängliche Bewertung" wird jedem Artikel ein eine erste Bewertung zugeordnet. Wird kein Wert festgelegt, erhält der Artikel die Standardbewertung "Eins (1)". Die anfängliche Bewertung wird in Abhängigkeit davon angepasst, inwiefern der Artikel mit den Zielgruppenadressierungskriterien übereinstimmt. Die SelectWinners-Komponente wählt die Artikel mit der höchsten angepassten Bewertung aus und zeigt sie dem Benutzer der Website an. Artikel mit einer Bewertung von "Null (0)" werden nicht ausgewählt.

Inhaltsbereich

Das Fenster in Commerce Server Business Desk, in dem Aktionsseiten gerendert werden.

Inhaltsgröße

Höhen- und Breitenwerte für Inhalte (in Pixeln). Mithilfe des Moduls "Referenztabellen" können Sie neue Inhaltsgrößen festlegen. Wenn sie eine Inhaltsgröße erstellen oder ändern, wird die neue oder geänderte Inhaltsgröße in der Dropdownliste für Inhaltsgrößen im Modul "Kampagnen-Manager" angezeigt.

Inhaltsreplikation

Ein Verfahren zum Kopieren von Websiteinhalten von einem Serverknoten zu einem anderen. Sie können Dateien manuell kopieren oder mithilfe einer Replikationssoftware Inhalte automatisch kopieren. Die Replikation ist beim Clusterbetrieb eine notwendige Funktion zur Sicherstellung der Fehlertoleranz.

Integrierte Windows-Authentifizierung

Eine der Authentifizierungsmethoden, die Sie auf der Webseiten- oder Anwendungsebene in IIS festlegen können. Diese Methode verwendet den Windows-Benutzernamen und ein Kennwort zur Authentifizierung, fordert diese Information jedoch nicht vom Benutzer, es sei denn, die Authentifizierung der aktuellen Anmeldung schlägt fehl. Sie arbeitet nicht über Proxyverbindungen hinweg und wird für private Bereiche des Intranets verwendet.

Intelligentes Cross-Selling

Eine Möglichkeit zur dynamischen Anpassung der Produktempfehlungen für Benutzer basierend auf deren Kaufverhalten der Vergangenheit und den angezeigten oder zum Warenkorb hinzugefügten Produkten. Features für intelligentes Cross-Selling können mithilfe der Vorhersageressource zur Website hinzugefügt werden.

Siehe auch: Verwandter Verkauf, Up-Selling

Internet

Ein Satz unterschiedlicher Computernetzwerke, die über Gateways miteinander verbunden sind, welche die Datenübertragung und die Konvertierung von Nachrichten des sendenden Netzwerks in die von den empfangenden Netzwerken verwendeten Protokolle durchführen. Diese Netzwerke und Gateways verwenden die Protokollsuite Transmission Control Protocol/Internet Protocol (TCP/IP).

Internetadresse

Siehe Internetdomänenname.

Internetdienstanbieter (ISP)

Ein öffentlicher Anbieter von Remoteverbindungen über das Internet. Ein ISP ist ein Unternehmen, das Remotebenutzern durch Bereitstellen von Einwählverbindungen oder Installieren von Standleitungen den Zugriff auf das Internet ermöglicht. Der ISP kann E-Commerce-Sites für Kunden hosten, wobei mehrere Sites auf einem einzelnen Server oder Servercluster gehostet werden können. Er kann die Infrastruktur für alle Sites bereitstellen und allgemeine Verwaltungsaufgaben für diese durchführen, und auch die Kunden können einige Siteverwaltungsaufgaben von einem Remotecomputer aus durchführen.

Internetdomänenname

Der Name, der zum Hosten einer Site im Internet verwendet wird. Ein Internetdomänenname besteht aus einer Kombination eines Second-Level-Domänennamens wie beispielsweise "Microsoft" und eines Top-Level-Domänennamens wie zum Beispiel "com" oder "net", die durch einen Punkt getrennt sind. Vor dem Einrichten einer E-Commerce-Site im Internet muss sich ein Unternehmen zunächst bei einer Registrierungsstelle für DNS-Domänennamen (Domain Name System) um einen Second-Level-Domänennamen bewerben und ihn registrieren lassen. Dieser Name muss den Erfordernissen für externe DNS-Namensgebung entsprechen und darf nicht bereits registriert oder in Verwendung sein. Um einen Namen registrieren zu lassen, muss ein Unternehmen, oder ein damit beauftragter ISP, mindestens eine für die Verwendung im Internet gültige IP-Adresse (Internet Protocol) und die IP-Adressen von mindestens zwei aktuell aktiven DNS-Servern im Internet erhalten. Wird auch als Internetadresse, Domänenname oder URL bezeichnet.

Internet-Informationsdienste (IIS)

Die Windows 2000-Dienste, die neben anderen Funktionen die Erstellung, Konfiguration und Verwaltung von Websites unterstützen. Sie müssen IIS auf einem Server installieren, bevor Sie Commerce Server installieren.

Intranet

Ein für die Bearbeitung von Informationen innerhalb einer Firma oder Organisation konzipiertes Netzwerk. Es bietet verschiedene Dienste, z. B. Dokumenten- und Softwareverteilung, Zugriff auf Datenbanken sowie Schulungsmöglichkeiten. Ein Intranet verwendet normalerweise Anwendungen, die mit dem Internet zusammenhängen, z. B. Webseiten, Webbrowser, FTP-Sites (File Transfer Protocol), E-Mail, Newsgroups und Mailinglisten, bietet jedoch lediglich Zugriff für Personen innerhalb der Firma oder Organisation.

ISP

Siehe Internetdienstanbieter (ISP).

ISV

Siehe Unabhängiger Softwareanbieter (ISV, Independent Software Vendor).

J

Jetzt kaufen

Eine Inhaltsvorlage, die in Commerce Server zum Vereinfachen von Spontaneinkäufen verwendet wird: Benutzer können Waren von einer beliebigen Webseite im Internet erwerben. Klickt ein Benutzer auf eine Produktabbildung, wird ein Dialogfeld angezeigt, in dem der Benutzer aufgefordert wird, Versandadresse und Kreditkarteninformationen einzugeben.

K

Kampagne

Ein Marketingprogramm, das eine Reihe von Kommunikationsmitteln (z. B. Anzeigen und Direktsendungen) einsetzt, um ein bestimmtes Ziel zu erreichen, z. B. die Erweiterung des Marktanteils, die Einführung neuer Produkte oder eine verbesserte Kundenbindung.

Kampagnenartikel

Ein Kommunikationsmittel, das zu dem vorgegebenen Ergebnis einer Kampagne beiträgt. Sie können in Commerce Server drei Arten von Kampagnenartikeln erstellen: Anzeigen, Direktsendungen und Preisnachlässe. Sie können Drittanbieterprodukte verwenden, um weitere Arten von Kampagnenartikeln zu erstellen.

Kampagnenartikel-ID

Die computergenerierte Identifizierungsnummer für einen Kampagnenartikel.

Kampagnenausdrücke (Modul)

Ein Modul von Commerce Server Business Desk, das zum Erstellen und Verwalten von Ausdrücken verwendet wird.

Siehe auch: Personalisierung

Kampagnen-Manager (Modul)

Ein Modul von Commerce Server Business Desk, mit dem Benutzerkonten erstellt und Werbe-, Preisnachlass- und Direktsendungskampagnen erstellt und verwaltet werden.

Kampagnen (Ressource)

Eine durch den Commerce Server-Manager verwaltete Commerce Server-Ressource mit Eigenschaften auf Websiteebene. Wird zum Konfigurieren der Verbindungszeichenfolge für die Datenbank verwendet, die die Kampagnendaten enthält.

Kampagnenveröffentlichung (Modul)

Dieses Modul von Commerce Server Business Desk dient dazu, die Site mit neuen Kampagneninformationen zu aktualisieren. Das Modul "Kampagnenveröffentlichung" leert die Caches, in denen Kampagneninformationen für die Site gespeichert werden. Sobald die nächste Anforderung für Profildaten bei Commerce Server eingeht, werden die aktualisierten Daten in die Caches geladen.

Siehe auch: Cache

Kampagnenzielfestlegung

Das Festlegen der in einer bestimmten Zeit zu übermittelnden Anzahl von Anzeigen. Für die Zielfestlegung können sie beliebige Ereignisse verwenden, z. B. Mausklicks oder die abgesetzte Menge. Commerce Server unterstützt die Zielfestlegung für Anzeigen, jedoch nicht für Preisnachlässe. Mithilfe von Commerce Server Business Desk können Sie Kampagnenziele auf Kampagnen- oder Anzeigenebene festlegen.

Beispiel: Sie nehmen die Zielfestlegung auf Kampagnenebene vor, und Ihr Kunde bestellt 25.000 Anzeigenanforderungen. Auf Kampagnenartikelebene wird festgelegt, dass für 60 Prozent aller Anzeigenanforderungen eine Anzeige und für die übrigen 40 Prozent der Anzeigenanforderungen eine andere Anzeige dargestellt werden soll. Ändert der Kunde nun die Anzahl der Anzeigenanforderungen auf 40.000, müssen Sie nicht manuell einstellen, wie oft die Anzeigen erscheinen; sie erscheinen weiterhin zu 60 Prozent bzw. 40 Prozent. Wenn Sie die Zielfestlegung auf Kampagnenartikelebene vornehmen, legen Sie für jede Anzeige einzeln Anforderungsziele fest.

Siehe auch: Anzeigenanforderung

Kanal

Ein benannter Eigenschaftensatz, der die Quelle von Dokumenten beschreibt und bestimmte Verarbeitungsschritte festlegt, die in BizTalk Server durchgeführt werden, bevor ein Dokument an das Ziel übermittelt wird, das durch den dem Kanal zugeordneten Messagingport angegeben wird.

Kapazitätsplanung

Das Planen von Anwendungs-, Hardware- und Netzwerkanforderungen für das erwartete Zugriffsaufkommen und für die Umsetzung der Leistungsziele der Site.

Katalog

Eine Sammlung von Kategorien und Produkten.

Katalogausdruck

Ein Ausdruck, der festlegt, auf welche Produkte in einem Katalog ein Preisnachlass eingeräumt werden kann.

Katalogdaten

Der Inhalt eines Katalogs mit Daten über die einzelnen Produktartikel und die ihnen zugewiesenen Kategorien.

Katalog-Designer (Modul)

Ein Modul von Commerce Server Business Desk, das zum Erstellen und Verwalten von Katalogschemas verwendet wird. Katalogschemas bestehen aus Kategorie-, Produkt- und Eigenschaftsdefinitionen. Diese Komponenten bilden die Grundlage von Kategorien, Produkten und Eigenschaften in Katalogen.

Katalog-Editor (Modul)

Ein Modul von Commerce Server Business Desk, das zum Bearbeiten und Verwalten von Katalogen verwendet wird. Das Modul "Katalog-Editor" ermöglicht das Hinzufügen, Bearbeiten und Entfernen von Produkten und Kategorien, das Importieren und Exportieren von Katalogen und das Aktualisieren der Volltextindizierung.

Katalogeigenschaften

Die grundlegenden Eigenschaften, die einen Katalog beschreiben, wie Name, Anfangsdatum, Beendigungsdatum, Währung, Gewichtsmaßeinheit und eindeutige Produkt-ID. Katalogeigenschaften können mit dem Modul "Katalog-Editor" verwaltet werden.

Katalogsatz

Ein oder mehrere Kataloge, die Sie verschiedenen Benutzern oder Organisationen zur Verfügung stellen. So können Sie beispielsweise zwei benutzerdefinierte Kataloge für die Mitarbeiter eines bestimmten Unternehmens erstellen und zwei weitere Kataloge für ein anderes Unternehmen. In diesem Fall stehen Ihnen vier Kataloge zur Verfügung, die in zwei Katalogsätze gruppiert sind.

Katalogsätze (Modul)

Ein Modul von Commerce Server Business Desk, das zum Erstellen und Verwalten von Katalogsätzen verwendet wird.

Katalogschema

Eine Beschreibung eines Katalogs mit seinen Kategorie-, Produkt- und Eigenschaftsdefinitionen. Verschiedene Kataloge können ein Schema gemeinsam verwenden. Katalogschemas können mit dem Modul "Katalog-Designer" verwaltet werden.

Kategorie

Ein Container für Produkte oder Teilkategorien. Jede Kategorie entspricht einer einzelnen Instanz einer Kategoriedefinition. Zum Beispiel kann eine Kategorie, die auf der Kategoriedefinition "Abteilung" mit den Eigenschaften "Beschreibung" und "Manager" basiert, den Namen "Eisenwaren" erhalten und die Eigenschaften "Elektrowerkzeuge" (Beschreibung) und "Andrea Büchner" (Manager) haben. Kategorien können mit dem Modul "Katalog-Editor" verwaltet werden.

Kategoriebeziehung

Eine Möglichkeit, ein Produkt mit einem anderen Produkt oder einer anderen Kategorie zu verknüpfen. Kategoriebeziehungen haben einen Namen, eine Beschreibung und ein Ziel. Eine Kategorie kann mit einer anderen Kategorie in Beziehung stehen (z. B. die Kategorie "Hose" mit der Kategorie "Gürtel"). Eine Kategorie kann auch mit einem einzelnen Produkt in Beziehung stehen (z. B. mit einem Artikel innerhalb der Kategorie). Eine Kategorie kann mehrfache Beziehungen mit anderen Kategorien und/oder Produkten aufweisen.

Kategorie (Commerce Server Business Desk)

Ein Organisationsfeature des Navigationsbereich, das das Gruppieren ähnlicher Module in Commerce Server Business Desk ermöglicht.

Kategoriedefinition

Die in einem bestimmten Kategorietyp verfügbaren Eigenschaften. Eine Kategoriedefinition kann für mehrere Kategorien verwendet werden. Die Kategoriedefinition "Abteilung" könnte beispielsweise die Eigenschaften "Beschreibung" und "Manager" enthalten. Kategoriedefinitionen können mit dem Modul "Katalog-Designer" verwaltet werden.

Kategorieeigenschaften

Die Eigenschaften, die eine Kategoriedefinition bilden. Beispielsweise kann die Kategoriedefinition "Abteilung" die folgenden Eigenschaften haben: "Beschreibung" und "Manager". Kategorieeigenschaften können mit dem Modul "Katalog-Designer" verwaltet werden.

Kategoriehierarchie

Eine Hierarchie innerhalb einer Kategorie, bei der eine übergeordnete Kategorie und mindestens eine untergeordnete Kategorie festgelegt sind. Eine Kategorie kann nicht gleichzeitig derselben Kategorie übergeordnet und untergeordnet (von ihr abgeleitet) sein.

Klasse

Eine logische Zusammenstellung miteinander in Beziehung stehender Datenelemente. Klassen erstellen im Allgemeinen Modelle von physischen Objekten (Benutzer, Produkt) oder von konzeptionellen Einheiten (Besuch, Webzugriff). Eine Instanz einer Klasse stellt Benutzerdaten dar, die in das Commerce Server-Datawarehouse importiert wurden. Eine Klasse wird einer Tabellendefinition in der zugrunde liegenden relationalen Datenbank zugeordnet.

Siehe auch: Datenelement

Klassenbeziehung

Eine Verbindung zwischen zwei Klassen in einer Parent-Child-Beziehung. Die Beziehung legt die Anzahl der Instanzen jeder der beiden Klassen fest. Im Commerce Server-Datawarehouse sind fast alle Klassenbeziehungen n:1-Beziehungen. Das bedeutet, dass übergeordnete Klassen keine, eine oder mehrere untergeordnete Klassen haben können.

Klassenelementbeziehung

Eine Zuordnung von bestimmten Datenelementen der beiden Klassen einer Klassenbeziehung.

Klassenmetadaten

Ein konzeptionelles Modell, das die Attribute beschreibt, die zum Erstellen einer Klasse in einem logischen Datawarehouse-Schema angegeben werden müssen.

Klassenschlüssel

Die Teilmenge der Datenelemente einer Klasse, deren Werte eine Instanz der Klasse eindeutig kennzeichnen.

Siehe auch: Schlüssel

Klassenschlüsselelement

Eines der Elemente eines mehrwertigen Klassenschlüssels.

Klickhäufigkeit

Die Anzahl der Klicks dividiert durch die Reichweite der Klicks.

Siehe auch: Reichweite

Knoten

Eine grafische Darstellung eines Attributs, wie sie vom Vorhersagemodell-Viewer angezeigt wird.

Siehe auch: Attribut

Konsolenstruktur

Der linke Bereich einer MMC-Konsole, in dem die enthaltenen Elemente dargestellt werden. Standardmäßig der linke Bereich des Konsolenfensters; dieser kann jedoch ausgeblendet werden. Die Elemente in der Konsolenstruktur und ihre hierarchische Anordnung bestimmen die Konsolenfunktionen.

Kreativkonzept

Der Inhalt, der in einem Werbezeitplan platziert werden soll. Dieser Begriff wird in der Werbebranche verwendet und bezeichnet die Eigentumsrechte am Inhalt. Sie können keine Änderungen an einer Anzeige vornehmen, ohne das Einverständnis der Firma einzuholen, der die Anzeige gehört.

Kunde

Eine Firma oder eine Person, für die Sie eine Kampagne durchführen. Ein Kunde kann eine Agentur, ein Werbungstreibender oder Ihr eigenes Unternehmen sein.

L

Landes-/Regionalkennzahl

Ein aus drei Zeichen bestehender Datencode, der in Commerce Server Business Desk verwendet wird, um das Land oder die Region festzulegen, in das Produkte geliefert oder mit dem Geschäfte abgewickelt werden. Landes-/Regionalkennzahlen müssen eingerichtet werden, um das Modul "Steuersätze" in Business Desk verwenden zu können.

Lastenausgleich

Skalieren der Leistung eines serverbasierten Programms, z. B. eines Webservers, indem dessen Clientanforderungen über mehrere Server innerhalb des Serverclusters verteilt werden. Entweder legt jeder Host den Lastenanteil fest, den er übernehmen möchte, oder die Last wird gleichmäßig über alle Hosts verteilt. Weist ein Host einen Fehler auf, wird die Last dynamisch unter den verbleibenden Hosts aufgeteilt. Netzwerklastenausgleich ist die von Windows Clustering verwendete Lösung für den Lastenausgleich. Er ist jedoch nur unter Windows 2000 Advanced Server verfügbar.

LCID

Siehe Währungsgebietsschema-ID (LCID).

Lieferanten

Ein Handelspartner in einer Business-To-Business-Site Verwenden Sie Microsoft BizTalk Server zum Hinzufügen von Lieferanten zu einer Site. Auch bekannt als Verkäufer.

ListBox-HTML-Komponente (HTC)

Eine HTML-Komponente (HTC) für das Kopieren und Verschieben von Daten zwischen zwei Listen.

ListEditor-HTML-Komponente (HTC)

Eine HTML-Komponente (HTC), die zum Bearbeiten von Tabellendaten verwendet wird, wenn die Bearbeitung der einzelnen Datensätze in einer separaten Tabelle unterhalb der Tabelle mit der Liste vorgenommen wird.

Listen-Manager-Datenbank

Eine Datenbank, in der Benutzerdatensatzlisten gespeichert sind. Sie können Benutzerdatensatzlisten mithilfe des Moduls "Listen-Manager" in Commerce Server Business Desk erstellen. Diese Listen können von Direct Mailer verwendet werden, um eine Direktsendungskampagne durchzuführen, und stehen auch im Modul "Benutzer" in Business Desk zur Verfügung.

Listen-Manager-Dienst

Ein Windows 2000-Dienst, der die Tasks durchführt, die sie mithilfe des Moduls "Listen-Manager" in Commerce Server Business Desk festlegen. Sie können z. B. Benutzerdatensatzlisten erstellen, löschen, importieren, exportieren, kopieren oder zusammenführen. Zum Erstellen einer Liste können Sie Daten aus Flatfiles (unstrukturierten Dateien), einer SQL Server-Datenbank, dem Datawarehouse oder Vorhersagesegmenten importieren. Listen können in Flatfiles oder eine SQL Server-Datenbank exportiert werden.

Listen-Manager (Modul)

Das Modul von Commerce Server Business Desk, das zum Erstellen, Importieren, Exportieren, Kopieren, Löschen und Zusammenführen von Benutzerdatensatzlisten verwendet wird. Sie können beispielsweise eine Empfängerliste für eine Direktsendungskampagne erstellen.

Listenpreisaufschlag

Ein fester Betrag, der zum Listenpreis addiert wird und einen benutzerdefinierten Preis ergibt.

Listenpreisnachlass

Ein fester Betrag, der vom Listenpreis abgezogen wird und einen benutzerdefinierten Preis ergibt.

Listenseite

Eine der zwei Haupt-Aktionsseitentypen in Commerce Server Business Desk. Listenseiten stellen eine schreibgeschützte Ansicht einiger Datentypen bereit and gestatten im Allgemeinen das Filtern, Sortieren und Auswählen von Daten sowie weitere Aktionen auf diesen. Sie bestehen im Allgemeinen aus einer ListSheet-HTC und manchmal auch zusätzlich aus einem Suchbereich oberhalb der ListSheet-HTC. Listenseiten verwenden den Business Desk-Arbeitsbereich gemeinsam mit dem Navigationsbereich.

Siehe auch: Bearbeitungsseite

ListSheet-HTML-Komponente (HTC)

Eine HTML-Komponente (HTC), die zum Anzeigen einer Liste von Datensätzen und zum Auswählen von Datensätzen für die Bearbeitung verwendet wird. Die ListSheet-HTC ist schreibgeschützt.

Logisches Datawarehouse-Schema

Siehe Logisches Schema.

Logisches Schema

Ein Konzeptmodell im Datawarehouse, das den Daten in einem physischen Speicher zugeordnet ist und eine verständliche Sicht der Daten bietet. Sobald ein Entwickler Code erstellt, um auf Daten im Datawarehouse zuzugreifen oder diese zu ändern, interagiert er mit dem logischen Schema. Commerce Server-Prozesse greifen über das logische Schema auf Daten im Datawarehouse zu.

Lösungssite

Ein Satz von Commerce Server-Funktionen, die für ein bestimmtes Siteszenario vorkonfiguriert und in einer Paketdatei gebündelt sind. Commerce Server beinhaltet auch eine leere Lösungssite. Die beiden weiteren Sites, "Retail" und "Supplier" sind unter "http://www.microsoft.com/germany/servers/commerceserver/2000/solutionsites.htm" online verfügbar. Jede Lösungssite wurde so konzipiert, dass sie entpackt und den Erfordernissen der Site angepasst werden kann.

M

Masterkonfigurationsdatei

Die XML-Konfigurationsdatei, die die in einer bestimmten Instanz von Commerce Server Business Desk verfügbaren Kategorien und Module definiert. Jeder Moduleintrag identifiziert eine Modulkonfigurationsdatei, die die Konfigurationsinformationen für dieses Modul enthält.

MDX

Siehe Multidimensional Expression (MDX).

Measure

Im Allgemeinen numerische Daten, die ein Geschäftsereignis messen. Beispielsweise ist die Zahl der Käufe, die ein Benutzer tätigt, ein Measure.

Siehe auch: Dimension

Messagingport

Ein mithilfe von BizTalk Messaging Manager konfigurierter Satz von Regeln, mit dem Sie bestimmen können, wie Dokumente umwickelt, gesichert und zur vorgesehenen Zielorganisation transportiert werden.

Metadaten

Daten, die zur Beschreibung anderer Daten verwendet werden. Ein Beispiel dafür ist der Datentyp, der eine Eigenschaft weiter beschreibt

Microsoft Management Console (MMC)

Ein Rahmen zum Bereitstellen von Verwaltungstools, den so genannten Konsolen. Eine Konsole kann Tools, Ordner, andere Container, Webseiten und andere Verwaltungselemente enthalten. Diese Elemente werden im linken Bereich der Konsole, der Strukturansicht, angezeigt. Eine Konsole enthält ein oder mehrere Fenster, die Ansichten der Konsole liefern können. Das Hauptfenster von MMC stellt Befehle und Tools für Autorenkonsolen bereit.

Siehe auch: Snap-In

MIME

Siehe Multipurpose Internet Mail Extensions (MIME).

Mittels Drilldownsuche auffindbar

Ein Ja/Nein-Flag in einer Eigenschaftsdefinition, das anzeigt, ob die Eigenschaft durch eine Drilldownsuche gefunden werden kann.

MMC

Siehe Microsoft Management Console (MMC).

Modul

Eine Auswahl, die Sie im Navigationsbereich von Commerce Server Business Desk treffen können. Sie können beispielsweise das Modul "Kampagnen-Manager", "Katalog-Designer" oder "Berichte" auswählen. Jedes Modul stellt einen Satz von ASP-Dateien dar, der einen bestimmten Typ zusammenhängender Funktionalitäten bereitstellt und mit einem oder mehreren Eintrittspunkten aus dem Navigationsbereich heraus ausgestattet ist.

Modulkonfigurationsdatei

Eine XML-Konfigurationsdatei, die die Aktionen, Aufgaben und Eintrittspunkte für ein Modul oder einen Satz von Modulen von Commerce Server Business Desk festlegt. Moduleintrittspunkte identifizieren die Kategorie, der sie zugeordnet sind.

MSCSAuth-Ticket

Siehe Authentifizierungsticket.

MSCSProfile-Ticket

Siehe Profilticket.

Multidimensional Expression (MDX)

Ein Ausdruck, der zum Abfragen und Verändern der in OLAP-Servercubes gespeicherten multidimensionalen Daten verwendet wird.

Multiplechoiceeigenschaft

Eine Eigenschaft, die einen Satz von vorbestimmten Werten enthält. Sie können beispielsweise eine Multiplechoiceeigenschaft namens "Shirt_Size" erstellen und die folgenden möglichen Werte festlegen: S, M und L.

Multipurpose Internet Mail Extensions (MIME)

Ein Standard, der das Simple Mail Transfer Protocol (SMTP) erweitert, um die Übertragung von Daten wie Video, Musik und Binärdateien über Internet-E-Mail ohne vorherige Konvertierung in das ASCII-Format zu ermöglichen.

N

Nachrichtenkopf

Der erste Teil einer E-Mail-Nachricht, in dem die Adresse des Empfängers, das Nachrichtenformat, die Sprache und optional der global eindeutige Bezeichner (GUID) angegeben werden.

Nachrichtentext

Der in einer E-Mail-Nachricht übermittelte Inhalt.

Navigationsbereich

Das Fenster auf der linken Seite einer Listenseite in Commerce Server Business Desk, das die Hierarchie von Kategorien und Modulen grafisch darstellt.

NOD

Siehe Bereitstellungsbedarf (NOD, Need of Delivery).

Nicht-Commerce-Anwendung

Ein Container von Nicht-Commerce-Webservern mit den üblichen Anwendungseigenschaften. Dies stellt eine Analogie zur einer Commerce-Anwendung und ihrer Commerce-Webserverelemente dar.

Nicht-Commerce-Webserver

Ein Webserver, auf dem Commerce Server nicht installiert wurde. Dieser erzeugt eine Protokolldatei im W3C-Format, die in das Datawarehouse importiert und zur Analyse verwendet werden kann. Ein Nicht-Commerce-Webserver kann Internet-Informationsdienste (IIS) ausführen oder nicht.

Nicht durchgeführte Pipeline

Eine Pipeline, die keine COM+-Transaktionen unterstützt. MtsPipeline und PooledPipeline sind die einzigen Objekte, die nicht durchgeführte Pipelines unterstützen.

Siehe auch: Pipeline, Pipelineobjekt, Durchgeführte Pipeline

Nicht registrierter Benutzer

Eine Person, die eine Website besucht, ohne die zur Registrierung notwendigen persönlichen Daten und Identifizierungsinformationen bereitzustellen.

O

OLAP (Online Analytical Processing, Analytische Onlineverarbeitung)

Siehe Analytische Onlineverarbeitung (OLAP, Online Analytical Processing).

Operative Daten

Daten, die täglich oder auf Grundlage eines anderen Zeitintervalls gesammelt werden, normalerweise in Form von Protokolldateien. Nach der Sammlung werden operative Daten häufig in das Datawarehouse importiert.

Order Processing Pipeline

Eine Softwareinfrastruktur, durch die mehrere Komponenten verknüpft und dann in Folge ausgeführt werden. In Commerce Server 2000 sind drei Order Processing Pipelines enthalten: Produkt, Planung und Einkauf.

Organisation

Eine Firma, Gruppe, Abteilung oder eine andere Geschäftseinheit in einer Firma, die in Commerce Server Business Desk als Quelle oder Ziel für den Austausch von Geschäftsdokumenten gekennzeichnet ist. Der Satz von Eigenschaften, der die Schlüsselmerkmale einer Organisation bezüglich des elektronischen Austauschs von Dokumenten darstellt, wird auch als Organisationsprofil bezeichnet. Eine Organisation ist eine Gruppierung von Benutzern.

Siehe auch: Organisationen (Modul)

Organisationen (Modul)

Ein Modul von Commerce Server Business Desk, das zum Hinzufügen, Ändern oder Löschen von Organisationsprofilen verwendet wird.

Siehe auch: Organisation

Organisationsprofil

Ein Satz von Eigenschaften, der eine Firma, Gruppe, Abteilung oder eine andere Geschäftseinheit in einer Firma beschreibt. Name, Kontonummer, Ausgabenbegrenzungen, Firmenpreisnachlass usw. stellen beispielsweise Eigenschaften dar, aus denen ein Organisationsprofil besteht. In Commerce Server Business Desk können Sie ein Organisationsprofil für Firmen einrichten, mit denen Sie Geschäftsbeziehungen unterhalten.

P

Paket

Eine vom Bereitstellungstool Commerce Server Site Packager erstellte Datei, die alle Daten enthält, die zum Bereitstellen einer Site auf einem anderen Computer notwendig sind. Dies umfasst auch Anwendungen und Ressourcen, einschließlich der in der Verwaltungsdatenbank gespeicherten Ressourceneigenschafteneinstellungen. Ein Paket enthält jedoch keine Eigenschafteneinstellungen, die spezifisch für einen bestimmten Computer sind (z. B. Verbindungszeichenfolgen). Paketdateien haben die Erweiterung PUP.

Personalisierung

Ein Feature, mit dessen Hilfe Sie webbasierten Inhalt oder E-Mail-Nachrichten an Benutzer richten können, basierend auf deren Benutzerprofildaten und deren früheren Anfragen nach Inhalten.

Siehe auch: Zielgruppe, Kampagnenausdrücke (Modul), Commerce Server Direct Mailer, Vorhersageressource, Zielausdruck

Physischer Speicher

Die physischen Datenbanken, die das Datawarehouse enthalten.

Pipeline

Eine Softwareinfrastruktur, die eine oder mehrere Stufen eines Geschäftsprozesses definiert und miteinander verknüpft, so dass sie in korrekter Reihenfolge ausgeführt werden, um eine bestimmte Aufgabe zu erfüllen. Jede Stufe einer Pipeline enthält eine oder mehrere Pipelinekomponenten (COM-Objekte), die so konfiguriert werden können, dass Sie auf die individuellen Erfordernisse der Site abgestimmt funktionieren.

Siehe auch: Nicht durchgeführte Pipeline, Pipelineobjekt, Durchgeführte Pipeline

Pipeline-Editor

Eine Anwendung, mit der Pipelinekonfigurationsdateien (Erweiterung PCF) in Commerce Server erstellt und bearbeitet werden. Im Pipeline-Editor werden Pipelines grafisch als Rohre dargestellt. Die einzelnen Abschnitte eines Rohrs stellen die Stufen der Pipeline dar. Die in einer Stufe verwenden Komponenten erscheinen als Ventile.

Pipelinekomponente

Ein COM-Serverobjekt (Component Object Model), in dem erforderliche Schnittstellen für Pipelinekomponenten implementiert sind. Jede Komponente führt bestimmte Operationen an einem Teil eines Bestellformular- oder Wörterbuchobjekts durch, bevor sie das Objekt an die nächste Komponente oder Stufe weitergibt.

Pipelinekonfigurationsdatei

Eine Datei, die Konfigurationsdaten für eine Pipeline enthält. Die in der Datei angegebene Pipeline wird von einem Pipelineobjekt erstellt und ausgeführt. Die Datei enthält Stufen und Komponenten, die mithilfe des Pipeline-Editors angepasst werden können.

Pipelinekonfigurationsvorlage

Eine Vorlagendatei, die für die Erstellung neuer Pipelines verwendet wird. Pipelines, die mithilfe einer Pipelinekonfigurationsvorlage erstellt wurden, werden als Pipelinekonfigurationsdateien (Erweiterung PCT) gespeichert. Die Vorlagen dienen als Grundlage für die Erstellung von benutzerdefinierten Pipelines. In jeder Vorlage können Stufen und Komponenten hinzugefügt, gelöscht und umbenannt werden.

Pipelineobjekt

Ein Objekt, das unter Verwendung von Pipelinekonfigurationsdateien eine Reihe von Komponenten ausführt. In Commerce Server 2000 stehen sechs Objekte für die Pipelineausführung zur Verfügung: MtsPipeline, MtsTxPipeline, PooledPipeline, PooledTxPipeline, OrderGroup und OrderPipeline. Die Objekte "MtsPipeline" und "PooledPipeline" unterstützen keine COM+-Transaktionen.

Siehe auch: Nicht durchgeführte Pipeline, Pipeline, Durchgeführte Pipeline

PivotChart-Bericht

Ein Bericht, der in einem interaktiven Diagramm dargestellt wird. Sie können das Diagramm dazu verwenden, Daten grafisch anzuzeigen und in einer dem PivotTable-Bericht ähnlichen Weise neu anzuordnen. In Commerce Server können Sie dynamische Berichte als PivotChart-Berichte anzeigen. Verwenden Sie das Modul "Berichte" in Commerce Server Business Desk zum Anzeigen von PivotChart-Berichten.

PivotTable-Bericht

Ein Bericht, der in einer interaktiven Tabelle dargestellt wird. Sie können die Reihen und Spalten der Tabelle drehen, um verschiedene Zusammenfassungen der Quelldaten zu sehen, die Daten filtern oder Detaildaten für verschiedene Interessengebiete darstellen. In Commerce Server können Sie dynamische Berichte als PivotTable-Berichte anzeigen. Verwenden Sie das Modul "Berichte" in Commerce Server Business Desk zum Anzeigen von PivotTable-Berichten.

Popularitätsabzug

Ein Abzug, der auf eine Vorhersage angewendet wird und die Wahrscheinlichkeit reduziert, dass ein beliebter (bekannter) Artikel empfohlen wird.

Port

Siehe Messagingport

Preiskategorie

Eine Kategorie, in der jedes Produkt den Preis aus dieser Kategorie erhält. Dies bedeutet, dass die Kategorie den auf der Produktebene zugewiesenen Preis außer Kraft setzt.

Preisnachlass

Ein bestimmter Werbungstyp, bei dem Einkäufern unter bestimmten Bedingungen Preisnachlässe auf bestimmte Produkte oder Produktgruppen angeboten werden. In Commerce Server besitzen Preisnachlässe eine Zielgruppenadressierungs- und eine Anzeigenkomponente.

Primärschlüssel

Ein Feld bzw. mehrere Felder (z. B. in einer Spalte), dessen Wert oder Werte jeden Bericht in einer Tabelle eindeutig identifiziert bzw. identifizieren. Ein Primärschlüssel kann keine Nullwerte zulassen und muss einen eindeutigen Index aufweisen. Ein Primärschlüssel wird dazu verwendet, eine Verbindung einer Tabelle zu Fremdschlüsseln in einer anderen Tabelle herzustellen.

Siehe auch: Eindeutiger Schlüssel, Dualer Schlüssel

Produkt

Ein Verkaufsartikel in einem Katalog. Jedes Produkt ist eine individuelle Instanz einer Produktdefinition. Beispielsweise kann ein Produkt, das auf der Produktdefinition "Buch" basiert (die die Eigenschaften "Autor", "Titel" und "Listenpreis" aufweist), die Eigenschaften "Bill Gates", "Der Weg nach vorn. Die Zukunft der Informationsgesellschaft" und "DM 16,90" haben. Verwenden Sie das Modul "Katalog-Editor" in Business Desk zum Verwalten von Produkten.

Produktbezeichner

Eine erforderliche Eigenschaft, die Produkte innerhalb eines Katalogs eindeutig identifiziert, z. B. eine SKU (Stock-Keeping Unit). Ein Produktbezeichner kann nicht aus der Produktdefinition entfernt werden. .

Produktbeziehung

Eine Möglichkeit, ein Produkt eines Katalogs mit einem anderen Produkt oder einer Kategorie zu verknüpfen. Drucker können z. B. mit Druckerfarbbändern oder Tintenpatronen verknüpft sein; diese Produkte wären jedoch Bestandteil verschiedener Kategorien. Eine Produktbeziehung hat einen Namen, der die Art der Beziehung anzeigt (z. B. "Zubehör"), und ein Quellprodukt oder eine Quellkategorie und ein Zielprodukt oder eine Zielkategorie. Verwenden Sie das Modul "Katalog-Designer" in Business Desk zum Verwalten von Produktbeziehungen.

Produktdefinition

Die Eigenschaften, die in einem bestimmten Produkttyp verfügbar sind. Jedes Produkt ist mit einer Produktdefinition verbunden. Die Buchproduktdefinition könnte z. B. folgende Eigenschaften beinhalten: "Autor", "Titel" und "Listenpreis". Eine Produktdefinition muss einen Produktbezeichner enthalten, z. B. eine SKU (Stock-Keeping Unit), und hat immer eine Listenpreiseigenschaft. Verwenden Sie das Modul "Katalog-Designer" in Business Desk zum Verwalten von Produktdefinitionen.

Produkteigenschaften

Die Eigenschaften, die eine Produktdefinition bilden. Die Produktdefinition "Buch" z. B. kann die folgenden Produkteigenschaften haben: "Autor", "Titel" und "Listenpreis". Verwenden Sie das Modul "Katalog-Designer" in Business Desk zum Verwalten von Produkteigenschaften.

Produktfamilie

Ein Produkt, das Produktvarianten besitzt. So kann beispielsweise die Produktfamilie "Wasserabweisende Damenjacken" die folgenden Produkvarianten besitzen: rote Jacke, blaue Jacke und grüne Jacke. Eine Produktfamilie hat immer einen eindeutigen Bezeichner, z. B. den Namen des Produkts.

Produktkatalog (Ressource)

Eine durch den Commerce Server-Manager verwaltete Commerce Server-Ressource mit Eigenschaften auf Websiteebene. Verwenden Sie die Ressource "Produktkatalog" zum Konfigurieren der Verbindungszeichenfolge zu der Datenbank, die die Katalogdaten enthält.

Produktpreis

Festlegung, wie viel einem bestimmten Benutzer für ein bestimmtes Produkt berechnet wird.

Produktvariante

Ein bestimmter Artikel, der mit verwandten Varianten gruppiert ist, die gemeinsam ein Produkt bilden. Die Varianten unterscheiden sich üblicherweise in einer Eigenschaft bzw. mehreren Eigenschaften. Ein grünes Hemd der Größe M mit der SKU (Stock-Keeping Unit) 14678 ist beispielsweise eine Produktvariante des Produkts "Hemd"; zusammen bilden Größe, Farbe und SKU eine Variante. Eine Produktvariante beinhaltet immer einen eindeutigen Bezeichner, z. B. eine SKU, und einen Preis. Jede Produktvariante basiert auf derselben Produktdefinition.

Produktvarianteneigenschaften

Die Eigenschaften, die bei Produktvarianten unterschiedlich sind. Die Produktvariante "Größe M, grünes Hemd" hat z. B. zwei Produktvarianteneigenschaften: Größe und Farbe.

Profil

Ein Satz von Merkmalen, der jedes Geschäftselement definiert, z. B. einen Benutzer, ein Unternehmen oder einen Geschäftsvorgang. Jedes Profil ist eine individuelle Instanz einer Profildefinition. So könnte z. B. ein Profil, das auf der Profildefinition "Neuer Benutzer" basiert, die Eigenschaften "Andrea Büchner", "52", "Weiblich" haben. Sie können die Profildaten angeben, die das Modul "Benutzer" über die Besucher Ihrer Site sammelt. Mögliche Informationen sind Name, Alter, Geschlecht, Adresse.

Profildefinition

Die Eigenschaften, die in einem bestimmten Profiltyp verfügbar sind. Jedes Profil ist mit einer Profildefinition verknüpft. Die Profildefinition "Neuer Benutzer" könnte beispielsweise die folgenden Eigenschaften enthalten: Name, Alter, Adresse usw. Verwenden Sie das Modul "Profil-Designer" in Business Desk zum Verwalten von Profildefinitionen.

Profil-Designer (Modul)

Dieses Modul von Commerce Server Business Desk wird dazu verwendet, Profildefinitionen hinzuzufügen oder zu ändern.

ProfileDesigner-HTML-Komponente (HTC)

Eine HTML-Komponente, mit der Profile, z. B. Benutzerprofile, bearbeitet werden können.

Profileigenschaft

Ein Merkmal, das angibt, welche Profildaten gesammelt werden sollen, wenn ein Benutzer Ihre Website besucht. So legt die Eigenschaft "Vorname" z. B. fest, dass der Vorname des Benutzers erfasst werden soll. Verwenden Sie das Modul "Profil-Designer" in Business Desk zum Verwalten von Profileigenschaften.

Profileigenschaftsattribut

Ein Merkmal, das eine Profileigenschaft beschreibt. Profileigenschaftsattribute enthalten Informationen wie den Datentyp der Profileigenschaft (z. B. Zahl, Text oder Dezimal), ob die Eigenschaft einwertig ist (z. B. nur ein Vorname zugelassen ist) oder mehrwertig und ob der Benutzer, der die Website besucht, eine Suche unter Verwendung der Eigenschaft durchführen kann.

Profilressource

Eine durch den Commerce Server-Manager verwaltete Commerce Server-Ressource mit Eigenschaften auf globaler Ebene. Mithilfe der Profilressource kann die Datenbank-Verbindungszeichenfolge für die Datenbank angegeben werden, die Benutzerprofildaten enthält. Außerdem können mit der Profilressource Profileigenschaften und Profile erstellt, bearbeitet und gelöscht werden. Sie können Datenquellen, beispielsweise SQL Server-Datenbanken oder Active Directory-Datenquellen, hinzufügen und entfernen.

Profilticket

Ein von Commerce Server erstelltes Ticket für anonyme Benutzer (Gastbenutzer). Wird auch als MSCSProfile-Ticket bezeichnet.

Siehe auch: Authentifizierungsticket, Ticket

Profilveröffentlichung (Modul)

Dieses Modul von Commerce Server Business Desk dient dazu, die Site mit neuen Profilinformationen zu aktualisieren. Das Modul "Profilveröffentlichung" leert die Caches, in denen Profilinformationen für die Site gespeichert werden. Sobald die nächste Anforderung für Profildaten bei Commerce Server eingeht, werden die aktualisierten Daten in die Caches geladen.

Siehe auch: Cache

ProgID

Siehe Programmtechnischer Bezeichner (ProgID).

Programmtechnischer Bezeichner (ProgID)

Ein eindeutiger Name, der ein Programm oder ein COM-Objekt (Component Object Model) identifiziert. Im Gegensatz zu einem global eindeutigen Bezeichner (GUID) ist ein ProgID in der Regel eine sinnvolle alphanumerische Zeichenfolge, z. B. "Commerce.Dictionary".

Protokolldatei

Eine Aufzeichnung der Transaktionen oder Aktivitäten, die in einem Computersystem stattfinden. Die Datei ist entweder eine Text- oder eine Datenbankdatei. In Commerce Server werden Protokolldateien in das Datawarehouse importiert, so dass Sie mithilfe der Analysemodule in Commerce Server Business Desk die Aktivitäten in Ihrer Site analysieren können.

Proxyserver

Eine Firewallkomponente, die den Verkehr zu und von einem LAN (Local Area Network) verwaltet und andere Funktionen zur Verfügung stellen kann, z. B. das Zwischenspeichern von Dokumenten oder Zugangssteuerung. Ein Proxyserver kann die Leistung verbessern, indem häufig angeforderte Daten (z. B. eine beliebte Webseite) zwischengespeichert und bei Bedarf sofort zur Verfügung gestellt werden, und er kann Anforderungen herausfiltern und ablehnen, die der Besitzer als unzulässig definiert hat, z. B. Anforderungen für persönliche Dateien, auf die der Zugriff nicht autorisiert ist.

Prozentualer Abschlag

Der Prozentsatz, um den der Listenpreis verringert wird, um einen benutzerdefinierten Preis zu erhalten. Ein Preisnachlass von 20 Prozent bedeutet beispielsweise, dass der tatsächliche Preis 80 Prozent der Listenpreises beträgt.

Prozentualer Aufschlag

Der Prozentsatz, um den der Listenpreis erhöht wird, um einen benutzerdefinierten Ppreis zu erhalten. Eine Erhöhung um 20 Prozent bedeutet beispielsweise, dass der tatsächliche Preis 120 Prozent des Listenpreises beträgt.

PUP

Siehe Commerce Server Site Packager.

Q

QueryBuilder-HTML-Komponente (HTC)

Eine HTML-Komponente (HTC), die zum Erstellen von einfachen Abfragen verwendet wird.

R

Referenztabellen (Modul)

Dieses Modul von Commerce Server Business Desk wird dazu verwendet, Inhaltsgrößen, Branchencodes und Seitengruppen zu erstellen und zu verwalten.

Registrierter Benutzer

Eine Person, die eine Website besucht und bewusst persönliche Daten zur Verfügung stellt, z. B. den Namen, die Adresse oder die Telefonnummer. Diese Informationen werden zum Server übertragen und können genutzt werden, um festzustellen, wie viele Ihrer Kunden männlich oder weiblich sind, wie viele bestimmte Produkte gekauft haben, welche Kunden regelmäßig die gleichen Produkte kaufen und weitere bestimmte Einzelheiten.

Reichweite

Die Anzahl der eindeutigen Benutzer, die eine bestimmte Aktion durchgeführt haben (z. B. Klicken auf eine bestimmte Anzeige).

Siehe auch: Häufigkeit, Klickhäufigkeit

Replikation

Das Kopieren von Inhalten und/oder Konfigurationseinstellungen von einem Serverknoten auf den anderen. Sie können Dateien manuell kopieren oder sie mit einer Replikationssoftware automatisch kopieren. Die Replikation ist eine für das Arbeiten mit Serverclustern notwendige Funktion, um Fehlertoleranz zu gewährleisten.

Ressource

Eine Entität, die den Anwendungen in einer Commerce Server-Site Funktionalität bereitstellt. Eine Ressource enthält ein oder mehrere COM-Objekte. Diese werden auf den Webseiten einer Anwendung dazu verwendet, den Zugriff auf die zur Funktionalität der Ressource zu ermöglichen. Eine Ressource kann entweder globale Eigenschaften oder Eigenschaften auf Siteebene aufweisen. Die Eigenschaften von Ressourcen werden in der Verwaltungsdatenbank gespeichert. Eine Reihe von Ressourcen wird mit Commerce Server geliefert; einige dieser Ressourcen sind gleichzeitig Windows 2000-Dienste. Drittanbieter können kundenspezifische Ressourcen entwickeln, die mit Commerce Server zusammenarbeiten. Verwenden Sie den Commerce Server-Manager zum Verwalten von Ressourcen.

Siehe auch: Globale Ressource, Dienst, Siteressource

S

Schlüssel

Ein Bezeichner für einen Datensatz oder eine Gruppe von Datensätzen in einer Datendatei. Ein Schlüssel kennzeichnet eine spezielle Eigenschaft eines Feldes oder eines Satzes von Feldern innerhalb eines Datensatzes. Mögliche Schlüsseltypen sind duale, primäre und eindeutige Schlüssel sowie Verbindungsschlüssel.

Siehe auch: Klassenschlüssel

Segment

Eine Gruppe von Benutzern im Modul "Segment-Viewer", die ähnliche Profileigenschaften aufweisen.

Segmentgruppe

Eine Sammlung ähnlicher Segmente im Modul "Segment-Viewer".

Segmenthierarchie

Eine hierarchische Anordnung von Segmenten und Segmentgruppen im Modul "Segment-Viewer", in der ein übergeordnetes Segment alle Benutzer einschließt, die die untergeordneten Segmente beinhalten. Die Segmentgruppe auf der obersten Ebene stellt den gesamten Bestand dar.

Segmentierung

Eine Dataminingtechnik, die Gruppen von ähnlichen Fällen identifiziert. Verwenden Sie das Modul "Segment-Viewer" zum Durchführen der Segmentierung.

Segmentmodell

Eine Zusammenfassung der Daten im Modul "Segment-Viewer", die vom Segmentierungsalgorithmus verwendet werden. Verwenden Sie das Modul "Segment-Viewer" in Commerce Server Business Desk zum Anzeigen von Segmentmodellen.

Segmentvergleich

Eine Ansicht im Modul "Segment-Viewer", die Unterschiede zwischen den ausgewählten Segmenten anzeigt.

Segment-Viewer (Modul)

Dieses Modul von Commerce Server Business Desk dient dazu, Verwendungstrends zu identifizieren und Marketingentscheidungen auf der Grundlage von Ähnlichkeiten zwischen Benutzern zu treffen.

Segmentzusammenfassung

Eine sortierte Liste der wichtigsten Eigenschaften im Modul "Segment-Viewer", die ein Segment charakterisieren.

Seitengruppe

Ein Satz zusammenhängender Webseiten, den Sie unter Verwendung des Moduls "Referenztabellen" in Business Desk erstellen. Betreiben Sie beispielsweise eine Zeitungssite, könnten Sie eine Seitengruppe für Sportthemen, eine weitere für den Leitartikel und eine dritte für Lokalnachrichten erstellen. Sie können die Anzeigenpreise nach Seitengruppe festlegen, Berichte erstellen, um die Gesamtzahl der Zugriffe auf eine Seitengruppe anzuzeigen und Anzeigen so adressieren, dass sie auf bestimmten Seitengruppen ausgeführt werden. Ein Siteentwickler muss eine Webseite für Anzeigen aktivieren, bevor sie einer Seitengruppe zugeordnet werden kann.

Servercluster

Zwei oder mehr verbundene Computer, die Ressourcen gemeinsam nutzen und die Anforderungslasten teilen. Die einzelnen Mitglieder eines Serverclusters werden als Knoten bezeichnet. Die Knoten eines Serverclusters können über eigene Speichergeräte verfügen oder ein Gerät gemeinsam nutzen. Das Serverclustering ermöglicht üblicherweise auch den Lastenausgleich sowie Fehlertoleranz und Failover.

Siehe auch: Webfarm

Servererweiterungen

Ein Satz von Programmen auf einem Webserver, die das Verwalten, Verfassen und Durchsuchen einer FrontPage-erweiterten Website unterstützen.

Serverfarm

Siehe Servercluster, Webfarm.

Site

Ein Container im Commerce Server-Manager für Commerce Server-Anwendungen und Ressourcen auf Siteebene. Die Einzelhandelssite enthält beispielsweise zwei Anwendungen: die Business-To-Consumer-Website und das Commerce Server Business Desk für den Business-To-Consumer-Betrieb, wobei die Ressourcen auf Siteebene von beiden gemeinsam genutzt werden.

Sitebegriffe

Eine Liste spezieller Werte, die für die Site relevant sind. Mithilfe eines Sitebegriffs weisen Sie diese Liste von Werten, die als "Begriffe" bezeichnet werden, einer Profileigenschaft als Profiltyp zu. Sie können z. B. den Sitebegriff "Geschlecht" erstellen und die folgenden möglichen Begriffe definieren: "Weiblich", "Männlich" und "Unbekannt". Wenn Sie z. B. eine Profileigenschaft mit dem Namen "Geschlecht" erstellen und ihr den Sitebegriff "Geschlecht" als Typverweis zuordnen, können Benutzer die Werte "Weiblich", "Männlich" oder "Unbekannt" in einer Dropdownliste auszuwählen, die in der Website für die Eigenschaft "Geschlecht" angezeigt wird. Benutzer können immer nur einen der möglichen Eigenschaftswerte auswählen.

Durch Anwenden der Sitebegriffe auf Profileigenschaften führen Sie häufige Wörter ein, die allgemein in Commerce Server verwendet werden können, z. B., um Benutzern Werbeinhalte zu vermitteln.

Siehe auch: Sitebegriffs-Editor (Modul), Sitevokabular

Sitebegriffs-Editor (Modul)

Dieses Modul von Commerce Server Business Desk dient dazu, Sitebegriffe hinzuzufügen und zu bearbeiten.

Siehe auch: Sitebegriffe

Siteentwickler

Die Person, die den HTML/ASP-Code für die Website schreibt, um ihn dem Unternehmen anzupassen. Diese Person kann auch Berichte anpassen und Business Desk-Module hinzufügen oder ändern, um die Funktionalität hinsichtlich der besonderen Anforderungen des Unternehmens zu erweitern.

Sitekonfigurationsspeicher

Die Verwaltungsdatenbank mit Konfigurationseinstellungen für die Site, z. B. Basiswährung, alternative Währung und SMTP-Servername.

Site Packager

Siehe Commerce Server Site Packager.

Siteressource

Eine Ressource, die zur Verwendung durch eine spezielle Site verfügbar ist. Alle Ressourcen, die von einer Site verwendet werden, werden durch ein Objekt auf Siteebene im Commerce Server-Manager dargestellt. Eine globale Ressource kann beispielsweise auch eine Siteressource sein.: Eine globale Ressource, die von einer Site verwendet wird, wird durch ein Objekt auf der Siteebene dargestellt; die einzige dargestellte Eigenschaft des Objekts ist ein Zeiger auf die verbundene globale Ressource auf der globalen Ebene.

Die Eigenschaften einer Siteressource können entweder alle auf Siteebene oder alle auf globaler Ebene vorhanden sein, beides ist jedoch nicht möglich. Die Eigenschaften einer Site werden auf Siteebene konfiguriert. Ein Satz von Siteressourcen ist in Commerce Server enthalten, und Drittanbieter können individuelle Siteressourcen entwickeln. Verwenden Sie den Commerce Server-Manager zum Verwalten der Siteressourcen.

Siehe auch: Ressource

Sitevokabular

Ein hierarchisch strukturierter Satz von möglichen Werten für Benutzer- und Inhaltsattribute in Site Server 3.0. In Commerce Server 2000 wird das Sitevokabular zu Sitebegriffen.

Siehe auch: Sitebegriffe

Skalieren

Erweitern der Kapazität eines Webservers oder Serverclusters, um sie einem erhöhten Besuchsaufkommen in der Site anzupassen und die Leistung der Site zu verbessern.

Skalieren (horizontal)

Siehe Horizontale Skalierung.

Skalieren (vertikal)

Siehe Vertikale Skalierung.

SKU

Die Stock-Keeping Unit oder Lagerverwaltungseinheit. In Commerce Server ist die SKU, die normalerweise alphanumerisch dargestellt wird, ein eindeutiger Bezeichner für ein Produkt. Anhand der SKU kann ein Produkt zu Inventurzwecken verfolgt werden. Die SKU kann jedem käuflichen Artikel zugeordnet werden. So kann beispielsweise ein Hemd mit der Artikelnummer 3726 in der Größe 8 die SKU 3726-8 aufweisen.

Snap-In

Eine Tool, das zu einer in MMC (Microsoft Management Console) unterstützten Konsole hinzugefügt werden kann. Standalone-Snap-Ins können eigenständig hinzugefügt werden, Erweiterungs-Snap-Ins hingegen können nur hinzugefügt werden, um die Funktion eines anderen Snap-Ins zu erweitern.

Siehe auch: Microsoft Management Console (MMC)

Speicher

Ein spezifischer Tabellensatz in einer Datenbank.

Siehe auch: Ausdrucksspeicher

Sponsor

Ein Anzeigenkunde, der dafür bezahlt, Anzeigen auf bestimmten Teilen oder Seiten einer Site zu platzieren, wobei all anderen Anzeigen ausgeschlossen werden. Diese Anzeigen haben Priorität vor allen anderen Anzeigen, sogar vor zielgerichteten Anzeigen. Oft sind diese Anzeigen Botschaften, die auf ausschließlicher Basis in den Inhalt integriert sind, z. B., Wechselanzeigen mit Sponsorenhinweisen. Sowohl Seiten als auch Ziele können Sponsoren aufweisen. Um eine solche Anzeige einzurichten, verwenden Sie das Modul "Zielgruppen" in Business Desk und geben die Sponsorenaktion mit einem Zielausdruck an.

Stammkategorie

Eine Kategorie, die keiner anderen Kategorie untergeordnet ist. Eine Stammkategorie kann untergeordnete Kategorien enthalten, ist jedoch niemals einer anderen Kategorie untergeordnet.

Siehe auch: Untergeordnete Kategorie, Vorgängerkategorie, Abgeleitete Kategorie, Übergeordnete Kategorie

Stammprodukt

Ein Produkt in einem Katalog, das keiner Kategorie zugeordnet ist.

Standardkomponente

Ein COM-Serverobjekt (Component Object Model), das sicherstellt, dass die für eine Stufe entscheidenden Werte vorhanden sind. Standardkomponenten werden in der Regel am Beginn einer Stufe angezeigt.

Siehe auch: Stufe

Standardzuverlässigkeit

Ein Wert, der die Wahrscheinlichkeit eines Kaufs darstellt. Es werden nur Artikel zurückgegeben, der Verkaufswahrscheinlichkeit höher als dieser Wert ist.

Statische Liste

Eine Liste von Benutzerdatensätzen, die auf Anforderung sofort erstellt wird und anschließend in der Listen-Manager-Datenbank gespeichert wird. (Dies unterscheidet sich von der dynamischen Liste, bei der nur die zur Erstellung der Liste notwendigen Informationen in der Listen-Manager-Datenbank gespeichert werden.). Verwenden Sie die statische Liste bei Direktsendungskampagnen, die Sie weniger häufig ausführen, oder dann, wenn sich die Liste der Empfänger selten ändert.

Siehe auch: Dynamische Liste

Statischer Bericht

Ein Bericht, der auf Anforderung sofort erstellt und anschließend gemeinsam mit den Daten im Datawarehouse gespeichert wird. (Dies unterscheidet sich vom dynamischen Bericht, bei dem nur die zur Erstellung des Berichts notwendigen Daten im Datawarehouse gespeichert werden). Sie können statische Berichte in Ihrer Website bereitstellen und die Daten eines statischen Berichts in das Modul "Listen-Manager" in Business Desk exportieren. Verwenden Sie das Modul "Berichte" dazu, statische Berichte auszuführen, und das Modul "Vollständige Berichte", um diese anzuzeigen.

Statusleiste

Die schmale Anzeige im unteren Teil des Inhaltsbereichs von Commerce Server Business Desk. Diese Anzeige dient dazu, den aktuellen Taskstatus darzustellen, z. B. eine Lademeldung, und einen Schlüssel der in den HTML-Komponenten (HTCs) auf der Aktionsseite verwendeten Symbole.

Siehe auch: Aktionsseite

Steuersätze (Modul)

Ein Modul von Commerce Server Business Desk, das zum Aktualisieren von Steuertabellen und Steuersätzen für die Website verwendet wird.

Stufe

Ein Abschnitt einer Pipeline, der zur logischen Gruppierung von Komponenten dient. Beispielsweise sind in der Stufe "Steuer" Pipelinekomponenten gruppiert, die für die Berechnung der Steuer für eine bestimmte Bestellung erforderlich sind.

Siehe auch: Standardkomponente, Stufenaffinität

Stufenaffinität

Eine Qualität von Komponenten, die innerhalb einer bestimmten Stufe funktionieren können. Zur Identifikation der Stufen, zu denen eine Komponente eine Affinität besitzt, schreiben Sie die Klassen-ID der neuen Komponente unter dem Schlüssel \HKEY_CLASSES_ROOT\CLSID\component_classid\implemented categories\stage_catid in die Microsoft Windows NT-Registrierung; dabei ist stage_cat_id der global eindeutige Bezeichner (GUID) der Stufe, zu der die Komponente eine Affinität besitzen soll, und component_class_id ist die Klassen-ID der Komponente selbst.

Siehe auch: Stufe

Suchbereich

Ein Bereich im oberen Teil des Modulinhaltsbereichs auf einer Listenseite in Commerce Server Business Desk. Suchkriterien werden im Suchbereich eingegeben. Diese Kriterien werden dann in einem Suchtask verwendet. Meistens besteht der untere Teil des Modulinhaltsbereichs aus einer ListSheet-HTC, in der die Ergebnisse eines Suchtasks angezeigt werden.

Symbolleiste

Eine horizontale Leiste mit Schaltflächen im oberen Bereich des Commerce Server Business Desk-Bildschirms, die im Inhaltsbereich angezeigt wird. Die Schaltflächen dienen zum Zugriff auf die im Business Desk-Bildschirm verfügbaren Funktionen.

Systemadministrator

Der primäre Benutzer des Commerce Server-Managers. Diese Person ist verantwortlich für das Installieren, Konfigurieren und Verwalten von Commerce Server.

T

Task

Ein Vorgang in Commerce Server Business Desk, der von einer Aktionsseite ausgeführt wird und oft die Anzeige einer anderen Aktionsseite zur Folge hat, auf der die Details des Tasks ausgeführt werden. Tasks werden durch das Drücken einer Taskschaltfläche ausgelöst. Einige Tasks sind kontextbezogen, z B. "Bearbeiten" oder "Entfernen"; sie werden auf die jeweilige Auswahl in der gegenwärtigen Aktionsseite angewendet.

Testen unter Belastung

Siehe Belastungstest.

Textdatei

Eine aus Textzeichen bestehende Datei. Eine Textdatei kann eine Textverarbeitungsdatei oder eine reine ASCII-Datei sein, die in einem Format codiert ist, das von fast allen Computern gelesen werden kann. Für das Modul "Kampagnen-Manager" ist Text eine der Darstellungsarten, die für Anzeigen und Preisnachlässe verfügbar sind. Eine Anzeige dieser Art wird mit Textzeilen auf der Seite angezeigt.

Ticket

Eine Zeichenfolge aus Eigenschaft/Wertpaaren, in der Authentifizierungsinformationen und andere Daten zu einem Benutzer gespeichert werden. Beispielsweise handelt es sich bei "userID/andreauser" um ein Eigenschaft/Wertpaar. Ticketdaten können in einem Cookie oder in einer URL-Abfragezeichenfolge gespeichert werden.

Siehe auch: Authentifizierungsticket, Cookie, Profilticket

Transaktion

Eine Gruppe von Vorgängen, die protokolliert werden, so dass sie im Falle eines Fehlers rückgängig gemacht werden können. Commerce Server 2000 stellt Pipelineobjekte bereit, die Transaktionen unterstützen.

Transaktionsdaten

Daten, die generiert werden, wenn Benutzer Produkte aus Ihrer Website erwerben. Transaktionsdaten können alle Benutzeraktivitäten beinhalten, die von einer Produkt-, Warenkorb- oder Abschlussseite aufgezeichnet wurden. Sie können beispielsweise den Namen, die Lieferadresse, Datum und Uhrzeit, das erworbene Produkt und den Gesamtbestellwert enthalten.

Transaktionen (Ressource)

Eine durch den Commerce Server-Manager verwaltete Commerce Server-Ressource mit Eigenschaften auf Websiteebene. Verwenden Sie die Ressource "Transaktionen" zum Konfigurieren der Verbindungszeichenfolge für die Datenbank, die die Transaktionsmetadaten enthält.

Transaktionskonfiguration (Ressource)

Eine durch den Commerce Server-Manager verwaltete Commerce Server-Ressource mit Eigenschaften auf Websiteebene. Verwenden Sie die Ressource "Transaktionskonfiguration" zum Konfigurieren der Verbindungszeichenfolge für die Datenbank, die die Transaktionsmetadaten enthält.

Transaktionsveröffentlichung (Modul)

Dieses Modul von Commerce Server Business Desk dient dazu, die Site mit neuen Transaktionsinformationen zu aktualisieren, z. B. mit neuen Steuersätzen und Versandarten. Das Modul "Transaktionsveröffentlichung" leert die Caches, in denen Transaktionsinformationen für die Site gespeichert werden. Sobald die nächste Anforderung für Transaktionsdaten bei Commerce Server eingeht, werden die aktualisierten Daten in die Caches geladen.

Siehe auch: Cache

TreeView-HTML-Komponente (HTC)

Eine HTML-Komponente (HTC) zum Anzeigen einer XML-Struktur (Extensible Markup Language) in einer erweiterbaren Baumstruktur.

Trennzeichengetrennte Datei (.CSV)

Eine Textdatei, in der Kommas zum Trennen oder Abgrenzen von Spalten oder Datenbankfeldern verwendet werden. CSV-Dateien können von den meisten Datenbanken und auch anderen Programmen exportiert und importiert werden, so dass mit einem Programm erstellte Datenbankdateien auch von einem anderen Programm verwendet werden können.

TRUSTe

Eine unabhängige, nicht profitorientierte Initiative, die Prinzipien zur fairen Informationspraxis erarbeitet und durchsetzt, um das Vertrauen von Internetbenutzern zu stärken. Microsoft ist einer der Hauptsponsoren von TRUSTe und Mitglied des TRUSTe-Programms zur Sicherung des Datenschutzes.

U

Übergeordnete Kategorie

Eine Entität, die in Katalogen verwendet wird, um einen Satz von Produkten in einer Hierarchie anzuordnen. "Musik" ist beispielsweise eine übergeordnete Kategorie mit den untergeordneten Kategorien "Rock", "Country" und "Klassik". Sie können über- und untergeordnete Kategorien erstellen, um die in der Site angezeigten Produkte zu organisieren.

Siehe auch: Vorgängerkategorie, Untergeordnete Kategorie, Abgeleitete Kategorie, Stammkategorie

Überwachen

Verfolgen der Aktivitäten von Benutzern durch Aufzeichnen ausgewählter Ereignistypen im Sicherheitsprotokoll eines Servers oder einer Arbeitsstation.

Umschlag

Ein benannter Eigenschaftensatz, der ein bestimmtes Geschäftsdokument darstellt. Umschlagseigenschaften enthalten ein Umschlagsformat und können einen Zeiger auf eine Umschlagspezifikation enthalten. Außerdem können Kopf- und Fußinformationen oder nur Kopfinformationen enthalten sein, die elektronische Geschäftsdaten für die Übertragung kapseln.

Unabhängiger Softwareanbieter (ISV, Independent Software Vendor)

Ein unabhängiger Hersteller, der Software wie Steuer-, Versand- und Inventursoftware entwickelt, die zur Erweiterung der Funktionalität in Commerce Server integriert werden kann. Sie können einen ISV mit einem Solution Provider vergleichen, der Commerce Server für einen bestimmten Kunden oder vertikale Märkte anpasst sowie Systeme entwirft und anwendet.

Unified Modeling Language (UML oder Vereinheitlichte Modellierungssprache)

Eine visuelle Modellierungssprache für Softwaresysteme.

Uniform Resource Identifier (URI)

Identifiziert Inhaltspunkte im Internet. Der Inhalt kann eine Textseite, ein Video- oder Soundclip, ein Bild oder ein Programm sein. Der gebräuchlichste Typ eines URIs ist die Webseitenadresse, auch bekannt als Uniform Resource Locator (URL). Ein URI enthält normalerweise den Dateinamen der Ressource, den Namen des Computers, der die Ressource beinhaltet, und das für den Zugang verwendete Protokoll. Beispiel: <B<http://www.microsoft.com/sql/techinfo/security/password.htm</B>.

Uniform Resource Locator (URL)

Die Adresse einer im Internet zugänglichen Datei (Ressource). Der Ressourcentyp ist abhängig vom Protokoll der Internetanwendung. Für das im World Wide Web verwendete Hypertext Transfer Protokoll (HTTP) kann beispielsweise die Ressource eine HTML-Seite, eine Bilddatei, ein Programm (z. B. eine CGI-Anwendung (Common Gateway Interface) oder ein Java-Applet) oder jede andere von HTTP unterstützte Datei sein. Der URL enthält den Namen des Protokolls, das für den Zugriff auf die Ressource benötigt wird, einen Domänennamen, der einen bestimmten Computer im Internet identifiziert, und eine hierarchische Beschreibung eines Dateispeicherorts im Computer.

Untergeordnete Kategorie

Eine in Katalogen verwendete Einheit, mit der Produkte in einer Hierarchie gruppiert werden. Eine untergeordnete Kategorie muss immer in einer übergeordneten Kategorie enthalten sein. "Musik" ist beispielsweise eine übergeordnete Kategorie mit den untergeordneten Kategorien "Rock", "Country" und "Klassik". Sie können über- und untergeordnete Kategorien erstellen, um die in der Site angezeigten Produkte zu organisieren.

Siehe auch: Stammkategorie, Vorgängerkategorie, Abgeleitete Kategorie, Übergeordnete Kategorie

Up-Selling

Ein bestimmter Verkaufstyp, bei dem Benutzern ein qualitativ hochwertigeres Produkt anstelle des Produkts vorgeschlagen wird, das sie zurzeit anzeigen oder das sich in ihrem Warenkorb befindet. Up-Selling-Funktionen können mithilfe des SDK (Software Development Kit) zu einer Site hinzugefügt werden.

Siehe auch: Intelligentes Cross-Selling

URI

Siehe Uniform Resource Identifier (URI).

URL

Siehe Uniform Resource Locator (URL).

V

Variante

Eine eindeutige Kombination der Attribute, die für ein Produkt verfügbar sind. Für einen beliebigen Hemdtyp wäre z. B. jede Kombination von Farbe, Größe und SKU (Stock-Keeping Unit) jeweils eine Variante. Jede Produktvariante enthält immer einen eindeutigen Bezeichner, z. B. eine SKU, und einen Preis. Jede Produktvariante basiert auf der gleichen Produktdefinition.

Verbindungsschlüssel

Eine Zuordnung von einem Feld in einer Tabelle oder Abfrage und einem Feld des gleichen Datentyps in einer weiteren Tabelle oder Abfrage. Commerce Server verwendet einen Verbindungsschlüssel, um Daten eines von der Profilressource verwendeten Datenspeichers mit Daten eines ebenfalls von der Profilressource verwendeten anderen Datenspeichers in Beziehung zu setzen. Ein Verbindungsschlüssel kann beispielsweise für die Eigenschaft "Benutzername" bestehen, wobei das gemeinsam mit anderen Daten in Active Directory gespeicherte Feld "Benutzername" mit dem gemeinsam mit anderen Daten in einer SQL Server-Tabelle gespeicherten Feld "Benutzername" in Beziehung gesetzt wird.

Siehe auch: Dualer Schlüssel

Verbindungszeichenfolge

Eine Folge von durch Semikolons getrennten Argumenten, die Informationen zum Speicherort der Datenbank und zum Verbindungsaufbau enthalten.

Vererbung

Die Fähigkeit eines neu erstellten Objekts, die Eigenschaften eines bereits existierenden Objekts automatisch zu übernehmen. Ein neu erstelltes untergeordnetes Verzeichnis kann beispielsweise die Zugangssteuerungseinstellungen des übergeordneten Verzeichnisses erben.

Verfügbarkeit

Ein Maß für die Fehlertoleranz eines Computers, eines Serverclusters oder Systems und seiner Programme. Ein hochverfügbarer Computer oder ein hochverfügbares System zeichnet sich dadurch aus, dass es zu 99,9 Prozent der Zeit auf einer akzeptablen Dienstebene einsatzbereit ist.

Versandarten (Modul)

Dieses Modul von Commerce Server Business Desk dient dazu, die Versandart festzulegen, entweder nach Gewicht, Menge oder Zwischensumme.

Versendbare Liste

Eine Liste mit der Spalte "rcp_email", die Benutzer-E-Mail-Adressen enthält.

Vertikale Skalierung

Erhöhung der Kapazität der Website durch Erweiterung der Hardware (z. B. durch Hinzufügen von Arbeitsspeicher oder eines Prozessors), während die physische Grundausstattung und die Anzahl der Server im Servercluster erhalten bleiben. Auch als Heraufskalieren bezeichnet.

Siehe auch: Horizontale Skalierung

Vertrauensintervall

Eine Zahl, die die Wahrscheinlichkeit angibt, mit der ein vorhergesagter Wert innerhalb vorgegebener Grenzwerte liegen wird.

Verwaltungsdatenbank

Die SQL Server-Datenbank, in der die Konfigurationsdaten für die Ressourcen für alle Computer gespeichert werden, die in derselben (logischen) Installation von Commerce Server ausgeführt werden. Die Datenbank wird während der Installation von Commerce Server erstellt.

Verwandter Verkauf

Ein Promotiontyp, bei dem Benutzern weitere Waren angeboten werden. Hierfür wird eine Beziehung zwischen dem angezeigten Produkt oder einem Produkt im Warenkorb und anderen verwandten Produkten hergestellt. Up-Selling- und Cross-Selling-Möglichkeiten können mithilfe des Commerce Server 2000 SDK (Software Development Kit) zu einer Site hinzugefügt werden. Mithilfe der Vorhersageressource können intelligente Cross-Selling-Funktionen hinzugefügt werden.

Siehe auch: Cross-Selling, Intelligentes Cross-Selling

Verwendungsprofil

Ein Satz von Eigenschaften, die Datenverkehrsmuster in einer Website beschreiben. Ein Benutzerprofil zeigt beispielsweise, wie viele Menschen eine Website durchsuchen, wie das Verhältnis von Suchen und tatsächlichem Kauf ist und wie viele Menschen ihrem Warenkorb ein Produkt hinzufügen und es anschließend wieder entfernen. Systemadministratoren verwenden das Benutzerprofil, um die Anzahl der benötigten Webserver zu bestimmen und eine Website zu konfigurieren.

Vignettenanzeige

Eine Anzeige, die aus einem direkt neben einem Bild angeordneten Text besteht. Der Text kann sich rechts, links oder über dem Bild der Anzeige befinden.

Virtueller Server

Wird auch als Website bezeichnet (z. B. die Standardwebsite). Ein virtueller Computer, der sich auf einem HTTP-Server befindet, den Benutzern jedoch als eigenständiger HTTP-Server angezeigt wird. Mehrere virtuelle Server können sich auf einem Computer befinden; jeder Einzelne ist dabei in der Lage, eigene Programme auszuführen und individuell auf Eingabe- und Peripheriegeräte zugreifen.

Jeder virtuelle Server verfügt über einen eigenen Internetdomänennamen und eine IP-Adresse (Internet Protocol) und wird dem Benutzer als individuelle Website angezeigt. Einige Internetdienstanbieter (ISP) verwenden virtuelle Server für Kunden, die einen eigenen Domänennamen verwenden möchten. Ein ISP könnte mehrere IIS 5.0-Websites (Internet Information Services, Internet-Informationsdienste) erstellen und Commerce-Anwendungen für verschiedene Kunden auf getrennten IIS-Websites entpacken. Commerce-Anwendungen in verschiedenen IIS-Websites können globale Ressourcen gemeinsam verwenden.

Virtuelles Verzeichnis

Der Name eines Verzeichnisses in einer Webadresse, das einem physischen Verzeichnis auf dem Server entspricht; manchmal auch als URL-Zuordnung bezeichnet. Bei den Internet-Informationsdiensten (IIS 5.0) ist ein virtuelles Verzeichnis ein Element, das sich in der Konsolenstruktur von MMC (Microsoft Management Console) direkt unterhalb einer Website (des virtuellen Servers) befindet und die Eigenschaften der Website erbt. Einige dieser Eigenschaften können auf der Ebene des virtuellen Verzeichnisses geändert werden, andere dagegen nicht. Anwendungen, auch Commerce Server-Anwendungen, befinden sich auf der Ebene des virtuellen Verzeichnisses in IIS und haben dieselbe Parent/Child-Beziehung mit der Website.

Volltextindex

Der Teil eines Volltextkatalogs, der alle Volltextwörter und ihre Vorkommen für eine gegebene Tabelle speichert. Wenn Änderungen an dem Katalog vorgenommen werden (wie das Hinzufügen oder Entfernen von Produkten oder das Ändern der volltextsuchbaren Felder), muss der Volltextindex aktualisiert werden, um diesen Änderungen Rechnung zu tragen.

Volltextkatalog

Ein SQL Server-Objekt, das den Volltextindex einer Datenbank speichert.

Vorgängerkategorie

Eine Kategorie, die sich innerhalb einer oder mehrerer Parent-Child-Beziehungen näher an der Stammkategorie befindet. Auch eine übergeordnete Kategorie ist eine Vorgängerkategorie, ebenso wie die übergeordnete Kategorie dieser Kategorie usw.

Siehe auch: Untergeordnete Kategorie, Stammkategorie, Abgeleitete Kategorie, Übergeordnete Kategorie

Vorhersagemodell

Eine Zusammenfassung der Daten, die vom Algorithmus für die Vorhersage verwendet werden. Verwenden Sie den Vorhersagemodell-Viewer im Commerce Server-Manager zum Anzeigen von Vorhersagemodellen.

Vorhersagemodellkonfiguration

Eine benutzerdefinierte Beschreibung der Daten, die für ein Vorhersage- oder Segmentmodell verwendet werden.

Vorhersagemodell-Viewer

Ein Browser zur Anzeige des Abhängigkeitsnetzwerks und der individuellen Entscheidungsbäume eines Vorhersagemodells.

Vorhersageressource

Eine globale Ressource, die gleichzeitig ein Windows 2000-Dienst ist. Die Vorhersageressource wird vom Commerce Server-Manager verwaltet und besteht aus einem leistungsstarken Dataminingmodul, mit dem Sie Ihrer Website Vorhersagefähigkeiten basierend auf allen Eigenschaften der Besucher Ihrer Site verleihen können. Verwenden Sie die Vorhersageressource zum Erstellen von Analysemodellen, die Sie dann in Ihrer Website bereitstellen, um Benutzerinformationen zu analysieren.

Siehe auch: Implizite Profilerstellung, Personalisierung

W

Wahrscheinlichkeitsverteilung

Ein Satz von Wahrscheinlichkeiten für ein diskretes Attribut, wobei für jeden möglichen Wert des Attributs eine Wahrscheinlichkeit angegeben wird.

Für ein kontinuierliches Attribut x eine Funktion, die bei Integration von a nach b zu der Wahrscheinlichkeit führt, dass der Wert von x zwischen a und b liegt. Auch Wahrscheinlichkeitsdichte für x genannt.

Währungsgebietsschema-ID (LCID)

Kennzeichnet das Gebietsschema für die Währungshandhabung. Der Standardwert ist null; bei dieser Einstellung wird die Standardgebietsschema-ID des Servers verwendet.

Warenkorb

Die Liste der Artikel, die ein Benutzer in einer E-Commerce-Website zum Kauf auswählt. Die Liste wird üblicherweise in einer Datei gesammelt.

Siehe auch: Warenkorb-Manager (Modul)

Warenkorb-Manager (Modul)

Ein Modul von Commerce Server Business Desk, das zum Verwalten der Warenkörbe von Benutzern, die Ihre Site besuchen, verwendet wird. Benutzer können Warenkörbe speichern, so dass sie zu einem späteren Zeitpunkt zu der Site zurückkehren und die gewählten Artikel kaufen können. Mithilfe des Warenkorb-Managers können "verwaiste" Warenkörbe (gespeicherte Warenkörbe, die für längere Zeit inaktiv geblieben sind) gefunden und gelöscht werden.

Siehe auch: Warenkorb

Webanwendung

Siehe Anwendung.

Webfarm

Zwei oder mehrere Webserver, die verbunden sind, um Ressourcen gemeinsam zu verwenden und das Anforderungsaufkommen miteinander zu teilen. Webfarmen bieten in der Regel Unterstützung für Lastenausgleich, Fehlertoleranz und Failover und werden dem Benutzer als einzelner Server mit einer einzelnen IP-Adresse angezeigt. Webfarmen werden auch als Serverfarmen oder Servercluster bezeichnet.

Siehe auch: Cluster, Servercluster

Webserver

Im Allgemeinen ein Computer, der mit Serversoftware ausgestattet ist, die mithilfe von Internetprotokollen (z. B. HTTP) auf Webclientanforderungen in einem TCP/IP-Netzwerk (Transmission Control Protocol/Internet Protocol) reagiert.

In Commerce Server ist ein Webserver ein physischer Servercomputer, auf dem IIS 5.0 (Internet-Informationsdienste) ausgeführt wird; er erbt Eigenschaften von der IIS-Website. Ein Webserver wird in der Commerce Server-Manager-Konsole unter einer Anwendung angezeigt. Eine E-Commerce-Anwendung kann mehrere Webserver verwenden, die verschiedene Inhaltstypen für die Anwendung bereitstellen.

Website

Im Allgemeinen eine über eine Webadresse zugängliche Sammlung von Dateien und Anwendungen, die ein bestimmtes Thema behandelt und von einer bestimmten Person oder Organisation betrieben wird. Eine Website befindet sich auf mit dem Webnetzwerk verbundenen Servern und stellt Benutzern weltweit rund um die Uhr Inhalte zur Verfügung. Websites verwenden normalerweise HTML, um Informationen zu formatieren, zu präsentieren und dem Benutzer Navigationseinrichtungen zur Bewegung in der Site oder dem Web zur Verfügung zu stellen. Aus der Sicht der IIS 5.0-Verwaltung (Internet-Informationsdienste) ist mit Website ein virtueller Server (z. B. die Standardwebsite) gemeint. Ein virtueller Server ist ein virtueller Computer, der sich auf einem HTTP-Server befindet, dem Benutzer jedoch als eigenständiger HTTP-Server angezeigt wird. Mehrere virtuelle Server können sich auf einem Computer befinden; jeder Einzelne ist dabei in der Lage, eigene Programme auszuführen und individuell auf Eingabe- und Peripheriegeräte zugreifen. Jeder virtuelle Server verfügt über einen eigenen Internetdomänennamen und eine eigene IP-Adresse (Internet Protocol).

Wert

Die einer Profileigenschaft tatsächlich zugewiesenen Daten. Die Profileigenschaft "Vorname" kann beispielsweise den Wert "Andrea" haben.

Windows Media Services-Anzeige

Eine Anzeige, die Audio- und Videowerbung hoher Qualität darstellt.

Windows Script Host (WSH)

Eine sprachunabhängige Skriptumgebung für 32-Bit-Windows-Plattformen, die von Windows 2000 und IIS standardmäßig installiert wird. WSH kann dazu verwendet werden, Verwaltungsaufgaben auf einem Server unter Verwendung einer beliebigen Skriptsprache zu automatisieren.

Wörterbuchobjekt

Ein Objekt zum Erstellen, Speichern und Abrufen von Name/Wertpaaren im Arbeitsspeicher. Da jedes Element eines Wörterbuchobjekts vom Datentyp "Variant" ist, können Sie Wörterbuchobjekte erstellen, die aus (fast) beliebigen Datentypen besteht (einschließlich anderer Wörterbuchobjekte); in einem Wörterbuchobjekt kann eine beliebige Kombination von Varianttypen gespeichert werden.

WSH

Siehe Windows Script Host (WSH).

X

XML

Siehe Extensible Markup Language (XML).

XML-Dateninsel (Extensible Markup Language)

XML-Daten, die in einer ASP-Seite enthalten sind oder auf die von einer ASP-Seite aus zugegriffen werden kann. Entweder XML oder Skript wird verwendet, um eine XML-Dateninsel zu definieren, und eine bestimmte XML-Dateninsel wird über das ID-Attribut dieser Elemente referenziert. Die Daten selbst sind häufig innerhalb dieser Elemente vorhanden, können jedoch auch an einer anderen Stelle gespeichert sein, wenn mit einem Quellenattribut der URL (Uniform Resource Locator) des Speicherortes bereitgestellt wird.

XML/HTTP-Operationen (Extensible Markup Language/ Hypertext Transfer Protocol)

Ein Mechanismus, mit dem die ListSheet-HTML-Komponente (HTC) und die TreeView-HTC XML-Daten vom Server abrufen. Dabei können neue Daten angezeigt werden, ohne dass die gesamte Seite mit den Daten neu gerendert werden muss.

Z

Ziel

Ein oder mehrere Ausdrücke, die festlegen, wem, wo und wann Inhalte angezeigt werden sollen. Sie können auf demographische Gruppen abzielen, auf Teile einer Website oder auf beides.

Siehe auch: Zielgruppe, Zielausdruck

Zielaktion

Eine Option, die angibt, dass ein bestimmter Inhalt häufiger angezeigt werden soll, wenn das Ziel erfüllt wird als wenn es nicht erfüllt wird. Verwenden Sie Zielaktionen, wenn es schwierig ist, die Zielsetzung für den Kampagnenartikel zu erfüllen (wenn z. B. das Ziel nicht umfangreich genug ist, um den Inhalt darzustellen). Wenn Sie z. B. 1000 Anzeigenanforderungen von Benutzern in Alaska erhalten sollen, Sie aber in Alaska nur über 15 Benutzer verfügen, müssen Sie die Anzeigen an Benutzer senden, die nicht in Alaska leben. Verwenden Sie das Modul "Zielgruppen" in Business Desk zum Festlegen der Zielaktion für einen Ausdruck.

Zielausdruck

Ein Ausdruck, der bei Commerce Server-Kampagnen festlegt, wo, wann und wem Inhalte angezeigt werden sollen. Sie können beispielsweise den Inhalt auf Benutzer ausrichten, die spezielle Profileigenschaften besitzen. Sie können den Inhalt auch auf bestimmte Bereiche einer Website ausrichten. Sie können beispielsweise einen Zielausdruck erstellen, der bestimmte Anzeigen lediglich auf Sportseiten anzeigt.

Siehe auch: Personalisierung, Ziel

Zielfestlegung

Siehe Kampagnenzielfestlegung.

Zielfestlegung für Werbekampagnen

Siehe Kampagnenzielfestlegung.

Zielgruppe

Eine Sammlung von Zielen, denen Inhalte angezeigt werden sollen. Durch Verbinden von zwei oder mehr Ausdrücken bilden Sie eine Zielgruppe. Durch dieses Verbinden von Ausdrücken in einer Zielgruppe können Sie Ausdrücke erstellen, die mithilfe von OR-Aussagen ein größeres Publikum ansprechen können.

Siehe auch: Personalisierung, Ziel

Zielgruppen (Modul)

Ein Modul von Commerce Server Business Desk, das zum Verwalten von Zielgruppen verwendet wird.

Zielsetzung

Das Übermitteln von bestimmten Inhalten an bestimmte Benutzer.

Ziel-URL

Der URL, der angezeigt wird, wenn Benutzer auf einen Teil des Inhalts in der Website oder in einer Direktsendung klicken.

Zugriff

Eine Einzelaktion (z. B. ein Klick auf eine Anzeige) eines Besuchers der Website, die dazu führt, dass eine Datenzeile zur Webserverprotokolldatei hinzugefügt wird.

Zusammengefasster Katalog

Ein Katalog, der aus verschiedenen Quellen, z. B. verschiedenen Lieferanten, zusammengestellt wird. Sie können Daten aus einem Buchhaltungssystem oder aus anderen Dokumenten importieren oder unter Verwendung des Moduls "Katalog-Editor" eingeben.

Zuverlässigkeit

Ein Maß für die Zeitspanne zwischen Ausfällen (durchschnittliche Zeit zwischen Ausfällen), wobei ein Ausfall als das Fehlen einer akzeptablen Dienstebene für eine Anwendung, ein Computersystem oder das Netzwerksystem definiert ist. Im Gegensatz dazu bezieht der Begriff Verfügbarkeit die Zuverlässigkeit ebenso mit ein wie die Zeit, die benötigt wird, ein System nach einem Ausfall wieder in den Normalzustand zu bringen (oder heruntergefahren wurde, um geplante Wartungen oder Aktualisierungen auszuführen). Bei der Planung einer Commerce Server-Installation legen Sie fest, welche Hardwarekomponenten, welches Netzwerk und welche operationalen Prozeduren für die benötigte Zuverlässigkeitsebene erforderlich sind.

Zwischenspeichern

Das Speichern häufig verwendeter Dokumente, Bilder, CGI- oder ASP-Skripts sowie ISAPI-Erweiterungs-DLLs im Arbeitsspeicher zum Verbessern der Leistung. Weitere Informationen finden Sie in der IIS-Hilfe im Abschnitt über das Zwischenspeichern von Anwendungen. Wird auch als Datei- oder Dokumentcaching bezeichnet.

Zwischenspeichern von Dateien

Siehe Caching.


Onlinesupport
und Informationen

* | Microsoft Commerce Server 2000-Website
* | Microsoft Commerce Server 2000-Lösungssites
* | Commerce Server 2000-Website für ISV-Partner
* | Website des Microsoft-Produktsupports
* | MSDN Online
* | MSDN Library Online
* | Microsoft COM-Website
* | Microsoft SQL Server-Website
* | Microsoft Eingabehilfen-Website


Urheberrechtshinweis

Die in diesen Unterlagen enthaltenen Angaben und Daten, einschließlich URLs und anderer Verweise auf Websites im Internet, können ohne vorherige Ankündigung geändert werden. Die in den Beispielen genannten Firmen, Organisationen, Produkte, Personen und Veranstaltungen sind frei erfunden und sollen keine wirklichen Individuen, Gesellschaften, Produkte oder Veranstaltungen darstellen, soweit nichts anderes angegeben ist. Die Benutzer/innen sind verpflichtet, sich an alle anwendbaren Urheberrechtsgesetze zu halten. Unabhängig von der Anwendbarkeit der entsprechenden Urheberrechtsgesetze darf ohne ausdrückliche schriftliche Erlaubnis der Microsoft Corporation kein Teil dieses Dokuments für irgendwelche Zwecke vervielfältigt oder in einem Datenempfangssystem gespeichert oder darin eingelesen werden, unabhängig davon, auf welche Art und Weise oder mit welchen Mitteln (elektronisch, mechanisch, durch Fotokopieren, Aufzeichnen, usw.) dies geschieht.

Es ist möglich, dass Microsoft Rechte an Patenten bzw. angemeldeten Patenten, an Marken, Urheberrechten oder sonstigem geistigen Eigentum besitzt, die sich auf den fachlichen Inhalt dieses Dokuments beziehen. Die Bereitstellung dieses Dokuments gewährt keinerlei Lizenzrechte an diesen Patenten, Marken, Urheberrechten oder anderen gewerblichen Schutzrechten, es sei denn, dies wurde ausdrücklich durch einen schriftlichen Lizenzvertrag mit der Microsoft Corporation vereinbart.

© 1996-2000 Microsoft Corporation. Alle Rechte vorbehalten.

Microsoft, Active Directory, ActiveX, BackOffice, BizTalk, Developer Studio, FrontPage, Hotmail, JScript, MSDN, MS-DOS, MSN, Outlook, PivotChart, PivotTable, Verdana, Visual Basic, Visual C++, Webdings, Win32, Windows, Windows Media und Windows NT sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern.

Weitere in diesem Dokument aufgeführte Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.


Erstellen von Kategoriehierarchien

Verwenden Sie das Katalog-Editor-Modul, um Kategoriehierarchien zu erstellen. Die Erstellung von Kategoriehierarchien unterstützt Sie beim Organisieren der Produkte im Katalog und erleichtert Benutzern die Navigation in Ihrer Website. Sie können übergeordnete Kategorien und untergeordnete Kategorien zuweisen und die Produkte hierarchisch anordnen. Die Kategorie "CDs" könnte beispielsweise die untergeordneten Kategorien "Rock", "Rhythm and Blues" und "Klassik" haben. Die untergeordneten Kategorien können ihrerseits wiederum untergeordnete Kategorien enthalten. So kann die Kategorie "Rock" z. B. die untergeordnete Kategorie "Pop und Anderes" enthalten.

So weisen Sie übergeordnete und untergeordnete Kategorien zu

  1. Klicken Sie im Menü Kataloge auf Katalog-Editor.

  2. Wählen Sie im Bildschirm Kataloge den Katalog mit den Kategorien aus, denen Sie über- oder untergeordnete Kategorien zuweisen möchten, und klicken Sie anschließend auf der Symbolleiste auf Öffnen.

  3. Wählen Sie im Bildschirm Katalog - Katalogname im Bereich Kategorien die Kategorie aus, der Sie über- oder untergeordnete Kategorien zuweisen möchten, und klicken Sie anschließend auf Bearbeiten.

  23. Wählen Sie im Bereich Zugewiesene Kategorien in der Liste Verfügbare untergeordnete Kategorien die Kategorie aus, die Sie als untergeordnete Kategorie zuweisen möchten, und klicken Sie anschließend auf Hinzufügen.

    Die Kategorie wird aus der Liste im Feld Verfügbare untergeordnete Kategorien in die Liste im Feld Zugewiesene untergeordnete Kategorien verschoben.

  24. Klicken Sie auf der Symbolleiste auf Speichern und zurück, um die Zuweisung der über- und untergeordneten Kategorien zu speichern und zum Bildschirm Katalog zurückzukehren.

    Anmerkung

    • Sie können einer untergeordneten Kategorie auch weitere untergeordnete Kategorien zuweisen und damit eine Verschachtelung über mehrere Ebenen erreichen.

Siehe auch

Informationen zu Katalogen

Erstellen von Kategorie- und Produktbeziehungen

Copyright © 1996–2000 Microsoft Corporation.
Alle Rechte vorbehalten..


Direktsendungseigenschaften, Registerkarte "Verbindungszeichenfolgen"

In der folgenden Tabelle finden Sie eine Beschreibung der im Dialogfeld Direktsendungseigenschaften auf der Registerkarte Verbindungszeichenfolgen verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Verbindungszeichenfolgen in dieser Ressource | Auswählen der Verbindungszeichenfolge für Direct Mailer.
Beschreibung der ausgewählten Verbindungszeichenfolge | Enthält eine Beschreibung der ausgewählten Verbindungszeichenfolge.
Wert der ausgewählten Verbindungszeichenfolge | Stellt einen Wert für die ausgewählte Verbindungszeichenfolge zur Verfügung.


Direktsendungseigenschaften, Registerkarte "Eigenschaften"

In der folgenden Tabelle finden Sie eine Beschreibung der im Dialogfeld Direktsendungseigenschaften auf der Registerkarte Eigenschaften verfügbaren Optionen und Funktionen.

Option/Funktion | Zweck
Eigenschaften | Auswählen des Eigenschaftsnamens.
Ausgewählter Eigenschaftswert | Eingeben der Werte der ausgewählten Eigenschaft.
Beschreibung | Enthält eine Beschreibung der ausgewählten Eigenschaft.