Microsoft Commerce Server2000

Bannière de Commerce Server

Microsoft Commerce Server 2000

  • Aide en ligne de Commerce Server

  • Sites solutions Commerce Server

  • Support Technique de Microsoft

  • Support technique de Commerce Server

  • Partenaires ISV Commerce Server 2000

  • Site Web de Microsoft sur l’Accessibilité pour les personnes atteintes d’un handicap

  • Livre blanc

  • Didacticiel Business Desk

  • Commentaires
Copyright © 1996–2000 Microsoft Corporation.
Tous droits réservés.


Mise en route

Microsoft Commerce Server 2000 offre un ensemble d’outils permettant au développeur de site, à l’administrateur système et au chef d’entreprise de développer, déployer et gérer des applications de commerce pour le Web. Les rubriques de Mise en route ont pour but de vous familiariser avec les fonctionnalités et les outils Commerce Server nécessaires à la création de solutions de commerce électronique réussies, qui s’adaptent à vos besoins d’entreprise et s’intègrent aux systèmes et données existants.

Cette section contient les rubriques suivantes :

  • Présentation de Commerce Server 2000. Décrit Commerce Server et les nouvelles fonctionnalités de cette version. Décrit la manière dont Commerce Server est accessible aux personnes handicapées.

  • Utilisation de l’aide de Commerce Server. Décrit la documentation de Commerce Server, explique comment l’utiliser, et indique où trouver des ressources supplémentaires.

  • Installation de Commerce Server. Décrit la configuration matérielle et logicielle requise pour l’installation de Commerce Server. Explique comment installer et désinstaller Commerce Server Business Desk.

  • Architecture de Commerce Server. Explique comment Commerce Server peut être utilisé avec d’autres technologies .NET. Décrit également l’architecture de Commerce Server Manager et de Commerce Server Business Desk.

  • Concepts de Commerce Server. Décrit les fonctions essentielles de Commerce Server et leur utilisation.

  • Sécurité de Commerce Server. Décrit les fonctionnalités de sécurité essentielles de Commerce Server.

  • Planification de votre installation Commerce Server. Décrit les questions de planification à prendre en compte pour garantir une implémentation réussie de Commerce Server. Décrit également les outils disponibles pour faire migrer un site Site Server 3.0 Édition Commerce électronique vers Commerce Server.


Présentation de Commerce Server 2000

Microsoft Commerce Server 2000 est une solution de commerce complète et intégrée qui permet d’utiliser des fonctionnalités et des outils prêts à l’emploi, pour développer, déployer et gérer rapidement des applications de commerce pour le Web. Vous pouvez utiliser Commerce Server pour créer des applications pour des sites entreprise-client et entreprise-entreprise.

Commerce Server permet aux chefs d’entreprise d’analyser et de gérer facilement les opérations commerciales. Ce produit inclut des fonctionnalités analytiques sophistiquées et une boucle de commentaires en temps réel qui permettent aux chefs d’entreprise de répondre à l’évolution des besoins de leurs clients et partenaires. En créant des sites de commerce dynamiques et personnalisés, vous pouvez optimiser l’utilisation de ces sites pour vos clients, fidéliser vos clients et consolider votre position sur le marché du commerce électronique.

Cette section contient les rubriques suivantes :

  • Présentation rapide des fonctionnalités de Commerce Server. Décrit les fonctionnalités de Commerce Server, et comment les utiliser pour mettre à jour et gérer votre site.

  • Outils de développement. Décrit les outils du développeur de site, notamment les sites solutions et le Kit de développement de logiciel (SDK, Software Development Kit) de Commerce Server.

  • Outils d’administration. Décrit les outils de l'administrateur système, notamment Commerce Server Manager et le Gestionnaire de package de site Commerce Server.

  • Fonctionnalités de gestion de site. Décrit Commerce Server Business Desk, et comment l'utiliser en association avec les fonctionnalités de Commerce Server pour la gestion de votre site.

  • Fonctionnalités de pipeline. Décrit les fonctionnalités de pipeline de Commerce Server.

  • Accessibilité aux personnes atteintes de handicaps. Décrit les fonctionnalités d’accessibilité de Commerce Server.

  • Les Services du Support Technique Microsoft. Décrit les services de support technique de Microsoft, fournit des liens vers le Web ainsi que des numéros de téléphone pour accéder au support technique.


Présentation rapide des fonctionnalités de Commerce Server

Les fonctionnalités de Commerce Server fonctionnent ensemble de façon transparente, vous permettant ainsi de proposer des fonctionnalités de commercialisation, d’affichage des catalogues, de service clientèle et de saisie et de réception des commandes.

Le tableau suivant donne une vue d’ensemble des fonctionnalités de Commerce Server.

Fonctionnalité de Commerce Server Description
Système de catalogue de produits
  • Créer et mettre à jour des catalogues de produits à vendre.

  • Importer des catalogues de produits à partir d’autres sources de données. Importer des catalogues Commerce Server au format XML ou CSV.

  • Exporter des catalogues au format XML.

  • Ajouter des fonctionnalités de recherche intégrées permettant aux utilisateurs de trouver facilement ce qu’ils recherchent :
    • Recherche par catégorie. Navigation par catégorie de produit.

    • Recherche en texte libre. Recherche de produits à l’aide du nom complet ou partiel ou bien d’une propriété.

    • Recherche de propriétés. Recherche de produits à l’aide de la valeur d’une propriété, par exemple Prix < 60 FF.

    • Recherche avec propriété. Recherche consistant à affiner la demande de recherche jusqu’à ce que le produit soit trouvé.
  • Créer des catalogues personnalisés avec des tarifs spéciaux pour certains groupes d’utilisateurs.

  • Appliquer des remises aux produits.

  • Identifier les produits qui se vendent le mieux en exécutant des rapports Commerce Server.

  • Échanger des données de catalogue avec des fournisseurs à l’aide de Microsoft BizTalk Server 2000.
Système de profil
  • Gérer des millions d’utilisateurs et d’organisations.

  • Permettre aux utilisateurs de gérer leurs propres informations de profil et de rechercher le statut de leur commande.

  • Créer des profils pour n’importe quelle entité à caractère commercial, par exemple pour les utilisateurs et les organisations.

  • Déterminer les informations à collecter sur les utilisateurs visitant votre site.

  • Déterminer les informations à afficher pour des utilisateurs spécifiques, par exemple des catalogues personnalisés.

  • Analyser les informations de profil pour savoir qui visite votre site.

  • Créer des expressions de ciblage pour faire correspondre le contenu aux utilisateurs.

  • Créer des campagnes de publicité, de remise et de publipostage pour cibler des groupes d’utilisateurs spécifiques.
Système d’analyse commerciale
  • Importer un grand nombre de données sur l’utilisation du site collectées à partir de différentes sources de données vers Data Warehouse de Commerce Server et gérer ces données.

  • Analyser l’efficacité du site en exécutant des rapports Commerce Server ou en créant vos propres rapports personnalisés.

  • Identifier des groupes d’utilisateurs spécifiques en exécutant un rapport, puis exporter les résultats dans une liste. Utiliser cette liste dans une campagne de publipostage ou pour mettre à jour les propriétés des utilisateurs afin de cibler des produits ou du contenu.

  • Revoir les données collectées afin d’identifier des tendances cachées ou de nouveaux segments de clients et d’afficher les propriétés de ces segments.

  • Fournir des fonctionnalités de vente croisée intelligentes et recommander des produits aux utilisateurs de façon dynamique au fur et à mesure de leurs déplacements dans votre site.
Système de ciblage
  • Personnaliser le contenu proposé à l’aide d’une commercialisation ciblée.

  • Fournir le contenu optimal pour un utilisateur donné dans un contexte donné.

  • Créer, analyser et gérer des remises personnalisées et ciblées, ainsi que des campagnes marketing et publicitaires directes.

  • Ajouter des fonctionnalités de prévision à votre site Web.

  • Cibler des publicités ou des remises en fonction d’utilisateurs présentant un certain profil. Par exemple, vous pouvez cibler des publicités pour les femmes qui visitent votre site trois fois par semaine et qui ont acheté au moins trois produits.

  • Créer et planifier des campagnes marketing pour des clients concurrents travaillant dans un même secteur. Les publicités concurrentes ne sont jamais affichées sur la même page.

  • Facturer vos clients en fonction du nombre de demandes de publicité ou de clics qu’ils souhaitent pour leurs publicités.

  • Facturer vos clients en fonction de la page sur laquelle ils souhaitent afficher leur publicité.
Pipelines de processus commercial
  • Personnaliser vos processus de commande, de ciblage et de commercialisation.

  • Définir et relier les étapes d’un processus commercial.


Outils de développement

Les outils de développement de Commerce Server sont conçus pour aider les développeurs de site à créer et à personnaliser rapidement des sites, et à les mettre à la disposition des clients. Commerce Server comprend de nouveaux outils de développement ainsi que des améliorations apportées à Site Server 3.0 et Site Server 3.0, Édition Commerce électronique (SSCE).

Sites solutions

Kit de développement de logiciel (SDK) de Commerce Server

Documentation pour les programmeurs

Kit de Ressources Techniques Commerce Server 2000

Sites solutions

Commerce Server a remplacé les exemples de sites de Site Server 3.0 par trois sites solutions. Les sites solutions sont des sites de référence pour le développement qui fournissent un ensemble de fonctionnalités intégrées comprises dans Commerce Server. Les sites solutions proposent des fonctionnalités de commercialisation, d’affichage des catalogues, de service clientèle et de saisie et de réception des commandes.

Étant donné que les sites solutions fournissent des fonctionnalités de commerce électronique complètes, vous pouvez les utiliser comme base pour le développement de vos propres sites Web, puis ajouter des fonctionnalités spécifiques à votre entreprise.

Commerce Server comprend les sites solutions suivants :

  • Blank. Vous pouvez utiliser ce site solution comme point de départ pour créer votre propre site personnalisé. Il inclut toutes les ressources Commerce Server. Le site vide est inclus dans le coffret Commerce Server.

  • Retail. Vous pouvez utiliser ce site solution comme point de départ pour créer un site entreprise-client. Il inclut des fonctionnalités entreprise-client pour la personnalisation, la commercialisation, la recherche dans les catalogues, le service clientèle et l’analyse commerciale. Il inclut le Service clientèle, qui permet aux utilisateurs de gérer leurs propres informations de profil et d’afficher le statut de leurs commandes. Le site de vente au détail est disponible à l’adresse suivante : http://www.microsoft.com/commerceserver/solutionsites (en anglais).

  • Supplier. Vous pouvez utiliser ce site solution comme point de départ pour créer un site entreprise-entreprise. Il utilise Active Directory dans Microsoft Windows 2000 pour fournir une authentification sécurisée des utilisateurs et des autorisations d’accès de groupe. Il permet de gérer les bons de commande et les réquisitions et de mettre à jour et d’échanger des catalogues XML. Il fournit également un service automatique pour les partenaires commerciaux. Il inclut le Service partenaire, qui permet à un administrateur délégué (un contact chez le fournisseur) de gérer les informations sur l’entreprise, les bons de commande et le statut des commandes pour ce fournisseur. Le site de vente en gros est disponible à l’adresse suivante : http://www.microsoft.com/commerceserver/solutionsites (en anglais).

Kit de développement de logiciel (SDK) de Commerce Server

Le Kit de développement de logiciel (SDK, Software Development Kit) de Commerce Server comporte des fichiers d’en-tête, des exemples de code, des mini-sites et des outils pour le développement de solutions de commerce électronique à l’aide de Commerce Server.

Fichiers d'en-tête

Exemples de code

Mini-sites

Outils

Fichiers d’en-tête

Le dossier Include du SDK contient les fichiers d’en-tête et IDL (Interface Description Language) nécessaires pour utiliser et étendre les services fournis par Commerce Server dans Microsoft Visual C++.

Exemples de code

Vous trouverez ci-dessous une liste non exhaustive des exemples de code fournis dans le SDK :

  • Exemples d’administration. Référence pour la création de ressources Commerce Server, l’intégration et l’extension de Commerce Server Manager et la création de composants Gestionnaire de package de site Commerce Server personnalisés et de modules Commerce Server Business Desk personnalisés.

  • Infrastructure du module Business Desk. Code à utiliser comme base de travail lors du développement de nouveaux modules Business Desk. Ce code montre comment utiliser des data-islands XML et comprend des widgets Business Desk permettant de créer une riche interface utilisateur, pour une administration non technique de votre site Commerce Server. Cet exemple fournit une page de modification pour l’implémentation du widget Edit, une page de liste pour l’implémentation du widget List et une page de réponse pour la gestion des demandes à partir de l’interface de Business Desk. En outre, le script AddModuleToConfig.vbs vous montre comment installer de nouveaux modules Business Desk dans un Business Desk existant.

  • Programme d’installation de Business Desk. Composant COM simple qui montre comment utiliser l’API d’administration avec la métabase des services IIS (Internet Information Services) 5.0 et comment utiliser l’analyseur MSXML (Microsoft Extensible Markup Language) pour installer de nouveaux modules Business Desk dans un Business Desk existant.

  • Composant Gestionnaire de package de site personnalisé. Composant qui montre comment compresser et décompresser les données spécifiques aux ressources du site, créées dans un package de site Commerce Server lors du processus de compression/décompression. Le composant Gestionnaire de package de site personnalisé est une DLL Microsoft Visual Basic ActiveX qui implémente l’interface IPuP (nécessaire pour les composants Gestionnaire de package de site personnalisé), compresse les données stockées dans une base de données Microsoft SQL Server™ et décompresse ces données dans un site spécifié.

  • Navigateur de schéma de Data Warehouse. Navigateur de schéma permettant d’afficher les classes Commerce Server Data Warehouse, les propriétés de classe, les membres de classe et les relations entre classes tels qu’ils sont définis dans le schéma logique. Cet exemple montre comment utiliser le fournisseur OLE DB de Commerce Server pour accéder au schéma logique de Data Warehouse.

  • En-têtes d’évaluation de l’infrastructure de sélection de contenu. Exemple qui montre comment étendre le système de ciblage à l’aide des composants personnalisés de chargement du cache et d’évaluation des scores de l’infrastructure de sélection de contenu (CSF, Content Selection Framework). L’exemple En-têtes d’évaluation de l’infrastructure de sélection de contenu suppose que vous souhaitez cibler les en-têtes pour les utilisateurs de votre site en tenant compte de l’ancienneté de l’en-têtes et des en-têtes qui ont été affichés le plus souvent. Il montre l’intégration avec le système de ciblage à l’aide de Visual C++ et de Visual Basic.

  • Utilitaires de débogage CSF. Ensemble de pages ASP (Active Server Pages) que vous pouvez inclure dans vos scripts pour vider un cache CSF et effectuer le suivi de la logique d’évaluation des scores appliquée pour une demande de contenu. L’exemple En-têtes d’évaluation de l’infrastructure de sélection de contenu montre comment utiliser ces utilitaires de débogage.

  • Utilitaires de base de données CSF. Ensemble de scripts SQL permettant de vider entièrement les bases de données de l’infrastructure CSF, de l’Évaluateur d’expressions et du Gestionnaire de listes.

Mini-sites

Outre les exemples de code traditionnel fournis dans le SDKde Commerce Server 2000, de petits sites Commerce Server 2000 (appelés « mini-sites ») sont également inclus. Ces mini-sites montrent comment utiliser des ensembles API à partir de pages ASP sans les intégrer avec le reste des services d’exécution de Commerce Server 2000. Exécutez les mini-sites pour vous aider à isoler et comprendre les API d’une fonctionnalité spécifique sans filtrer manuellement du code sans rapport avec la tâche que vous souhaitez effectuer.

Les mini-sites suivants sont fournis dans le SDK de Commerce Server 2000 :

  • Mini-site de publicité. Montre comment utiliser le système de profil avec le système de ciblage pour afficher des publicités ciblées.

  • Mini-site d’enchères. Montre comment utiliser le composant Enchères pour implémenter des enchères Offres gagnantes. Ce mini-site inclut un module Business Desk personnalisé conçu pour gérer les enchères.

  • Mini-site de catalogue. Montre comment utiliser le système de catalogue de produits pour doter votre site de commerce électronique de fonctionnalités de recherche et de parcours dans les catalogues.

  • Mini-site de remise. Montre comment utiliser les remises ciblées lors du processus de saisie des commandes sur votre site Web.

  • Mini-site de commande. Montre comment utiliser Commerce Server pour implémenter un processus de saisie des commandes sur votre site Web.

  • Mini-site de passeport. Montre comment intégrer des fonctionnalités de signature unique Passport dans le système de profil. Avec cette fonctionnalité, vous et vos clients pouvez bénéficier d’un service d’authentification de signature unique, tout en conservant la possibilité d’utiliser le système de profil pour cibler les utilisateurs, gérer les données utilisateur, etc.

  • Mini-site de profil. Montre comment utiliser le système de profil pour enregistrer et authentifier les utilisateurs sur votre site de commerce électronique.

Outils

Le SDK de Commerce Server 2000 comprend un ensemble d’outils permettant de simplifier et d’accélérer le processus de développement pour la création de sites exécutés par Commerce Server, la création de produits qui s’intègrent avec Commerce Server et la création de composants additionnels pour Commerce Server.

  • Assistant Composant de pipeline pour Visual Basic. Cet outil fournit aux développeurs Visual Basic un environnement RAD (release and deployment) pour la création de composants de pipeline de traitement commercial. Pour installer l’Assistant Composant de pipeline pour Visual Basic, enregistrez le fichier PipelineCompWizard.dll dans le dossier VB Pipe Wizard des outils SDK. Par exemple, C:\Program Files\Microsoft Commerce Server\SDK\Tools\VB Pipe Wizard.

  • Assistant Composant de pipeline pour Visual C++. Cet outil propose un groupe de fichiers que vous pouvez ajouter à votre installation de Visual C++ 6.0 pour automatiser la création des composants de pipeline Commerce Server. L’Assistant Composant de pipeline crée les fichiers de définition d’objet et d’implémentation qui contiennent les prototypes de fonction pour toutes les interfaces que vous devez implémenter afin de créer un composant de pipeline qui fonctionne correctement. En outre, l’Assistant Composant de pipeline crée une page de propriétés pour votre projet, dans laquelle vous pouvez ajouter les contrôles permettant aux utilisateurs de définir les propriétés des composants.

  • Outil d’inscription du composant de pipeline (PipeReg). Cet outil permet d’inscrire les composants de pipeline pour l’affinité d’étape. Vous inscrivez le composant de pipeline sur l’ordinateur qui exécute l’outil et vous pouvez ensuite exporter les données vers un fichier .reg (Registry Script) pour déployer ce composant sur d’autres serveurs. L’outil d’inscription du composant de pipeline se trouve dans le dossier Registration Tool du SDK. Par exemple, C:\Program Files\Microsoft Commerce Server\SDK\Tools\Registration Tool.

Documentation pour les programmeurs

L’aide de Commerce Server 2000 fournit une documentation détaillée qui explique comment personnaliser Commerce Server. Par exemple, cette documentation contient des instructions permettant d’effectuer les opérations suivantes :

  • Building Business Desk Modules (en anglais)

  • Building Pipeline Components (en anglais)

  • Working with the Data Warehouse (en anglais)

  • Extending the Content Selection Framework (en anglais)

  • Integrating with BizTalk Server (en anglais)

  • Modifying Your Site for an International Audience (en anglais)

En outre, l’aide de Commerce Server 2000 propose un exemple de code pour chaque objet Commerce Server.

Kit de Ressources Techniques Commerce Server 2000

Le Kit de Ressources Techniques Commerce Server 2000 contient des informations détaillées sur le développement de solutions de commerce électronique à l’aide de Commerce Server. Il est disponible auprès de Microsoft Press.

Le Kit de Ressources Techniques Commerce Server 2000 comprend des informations sur les thèmes suivants :

  • Développement de sites multilingues, multidevises

  • Implémentation de l'identification et de l'authentification

  • Extension du système d’analyse commerciale

  • Implémentation de modèles de tarification complexes

  • Développement à l'aide du système de profil

  • Modification du traitement des commandes

  • Intégration à SAP

  • Intégration avec J.D. Edwards OneWorld

  • Test de votre site

  • Optimisation des performances

Voir aussi

Utilisation du Gestionnaire de package de site

Programmer’s Guide (en anglais)


Outils d'administration

Outils d’administration

Commerce Server comprend de nouveaux outils d’administration qui permettent aux administrateurs système de gérer les ressources, les sites, les applications et les serveurs Web :

  • Commerce Server Manager. Il s’agit d’un outil que vous pouvez utiliser pour gérer et configurer les ressources, sites, applications et serveurs Web Commerce Server. Microsoft Management Console (MMC), une interface Windows incluse dans Microsoft Windows 2000, héberge Commerce Server Manager.

    Commerce Server Manager offre une infrastructure commune pour la gestion de sites Web dans une interface intégrée unique. Les fonctionnalités de Commerce Server Manager ne sont pas disponibles via une administration par le Web ou une ligne de commande. En revanche, la plupart des fonctionnalités sont accessibles et manipulables par l’intermédiaire d’objets COM. Aussi est-il possible d’écrire un script WSH (Windows Script Host) ou une page ASP pour étendre l’environnement d’administration. Pour plus d’informations sur Commerce Server Manager, consultez Administration de Commerce Server.

    Remarque

    • Vous ne pouvez pas utiliser Commerce Server Manager pour gérer Site Server 3.0 ou Site Server 3.0, Édition Commerce électronique (SSCE). Pour plus d’informations sur la migration d’un site à partir de Site Server, consultez Migration depuis Site Server 3.0.
  • Gestionnaire de package de site Commerce Server. Outil que vous pouvez utiliser pour compresser un site, ses applications et ses ressources en un fichier unique, et transférer ensuite ce fichier dans un autre environnement. Cet outil permet de compresser en un seul fichier votre site Commerce Server (notamment les paramètres de métabase IIS), le système de fichiers, les ressources de la base de données d’administration ainsi que les bases de données SQL Server. Il permet également de décompresser le site Commerce Server (ou des parties de celui-ci) sur d’autres ordinateurs.

    Par exemple, après le développement ou la mise à jour de votre site, vous pouvez utiliser le Gestionnaire de package de site pour compresser et déplacer votre site de l’environnement de développement à l’environnement de test, puis de l’environnement de test à l’environnement de production.

    Dans la plupart des cas, le Gestionnaire de package de site est utilisé pour le déploiement initial de votre site. Pour les déploiements, les mises à jour incrémentielles et les rollbacks ultérieurs, utilisez d’autres outils tels que Microsoft Application Center 2000 ou d’autres produits de gestion de contenu. Pour plus d’informations sur le Gestionnaire de package de site Commerce Server, consultez Utilisation du Gestionnaire de package de site.

Voir aussi

Administration de Commerce Server

Utilisation du Gestionnaire de package de site

Migration depuis Site Server 3.0


Fonctionnalités de gestion de site

Commerce Server Business Desk est un outil extensible que les chefs d’entreprise peuvent utiliser pour gérer et analyser leurs sites Web. Par exemple, les fonctionnalités de Business Desk permettent de mettre à jour les tarifs de vos catalogues, de cibler de nouvelles publicités en fonction d’utilisateurs spécifiques et d’exécuter des rapports pour mesurer l’impact de ces modifications sur la productivité du site.

Business Desk comporte deux parties : l’application Business Desk et le client Business Desk.

  • Application Business Desk. Outil de gestion permettant de configurer, de gérer et d’analyser votre site. Après avoir installé Commerce Server, vous pouvez décompresser un site solution pour installer une application Business Desk. Business Desk est accessible depuis n’importe quel ordinateur exécutant Microsoft Internet Explorer 5.5, ce qui permet un accès à distance sécurisé.

  • Client Business Desk. Logiciel client installé localement sur votre ordinateur, qui fournit l’interface avec l’application Business Desk. Lorsque vous accédez à l’application Business Desk pour la première fois (via une adresse URL), le client Business Desk est téléchargé et installé sur votre ordinateur. Il est préférable que l’ordinateur qui exécute le client Business Desk dispose d’une connexion haute vitesse avec l’application Business Desk.

Business Desk est une amélioration de WebAdmin (Administration Web) pour Site Server 3.0 et Site Server 3.0, Édition Commerce électronique (SSCE), une interface de navigation utilisée pour administrer Site Server à partir d’un emplacement distant. WebAdmin s’adressait aux administrateurs système. Business Desk, en revanche, s’adresse aux chefs d’entreprise : aux personnes qui connaissent les objectifs, stratégies et processus commerciaux permettant de créer et d’exécuter un site Web de commerce électronique réussi, mais qui ne disposent pas du savoir technique permettant d’administrer une application serveur.

De nouvelles fonctionnalités de Business Desk ont été conçues pour permettre au chef d’entreprise de gérer facilement un site Web :

Système de profil

Système de catalogue de produits

Système de ciblage

Système d’analyse commerciale

Système de profil

Dans Site Server 3.0 et SSCE, le système de profil collecte des informations sur les utilisateurs. Dans le système de profil de Commerce Server, en revanche, vous pouvez collecter toutes les informations spécifiées dans le cadre de n’importe élément à caractère commercial. Par exemple, vous pouvez collecter des informations de profil sur les utilisateurs anonymes, un contexte (tel que la date et l’heure d’une visite) ou une organisation.

Le système de profil comprend la ressource Profiles (gérée à l’aide de Commerce Server Manager) et les modules Utilisateurs (gérés à l’aide de Commerce Server Business Desk). Les informations de profil sont stockées dans la banque de données des profils, qui peut être représentée par Active Directory, SQL Server ou les deux. Vous pouvez exporter des données de profils vers Data Warehouse, puis, à l’aide de Business Desk, vous pouvez analyser les données de profil collectées.

Remarque

  • Commerce Server ne dispose pas de l’annuaire d’abonnement Site Server 3.0. Pour plus d’informations sur la migration des informations de profil de l’annuaire d’abonnement de Site Server 3.0 vers Commerce Server, consultez Migration depuis Site Server 3.0.

Système de catalogue de produits

Le système de catalogue de produits de Commerce Server est une nouvelle fonctionnalité d’importation, d’exportation, de création et de gestion des catalogues en ligne. À l’aide des modules Catalogues Business Desk, les chefs d’entreprise peuvent créer des catalogues de produits et ajouter ou mettre à jour les données sur les produits. Il n’est pas nécessaire de posséder des connaissances particulières sur les bases de données qui stockent vos données sur les produits, même si vous assemblez un catalogue de produits à partir de différentes sources, par exemple à partir de plusieurs fournisseurs. Par exemple, vous pouvez effectuer les opérations suivantes :

  • Importer des catalogues au format XML (Extensible Markup Language) ou CSV (comma-separated value).

  • Exporter des catalogues au format XML ou CSV.

  • Échanger des catalogues avec des partenaires commerciaux à l’aide de BizTalk Server.

  • Tarifer des produits et des catégories.

  • Ajouter, mettre à jour et supprimer des catégories et des produits, ainsi qu’ils contiennent.

  • Appliquer des remises à des produits ou à des groupes.

  • Exécuter des rapports pour analyser l’activité du catalogue.

  • Appliquer des mécanismes de recherche multiples pour permettre aux utilisateurs visitant votre site de trouver ce qu’ils cherchent dans votre catalogue.

Les données du catalogue sont stockées dans la base de données Commerce Server, qui est une base de données SQL Server (7.0 ou 2000). Vous pouvez exporter des données du catalogue de la base de données Commerce Server vers Data Warehouse, puis, à l’aide de Business Desk, vous pouvez analyser les données de catalogue collectées.

Un développeur de site peut utiliser les objets COM du système de catalogue de produits pour personnaliser votre système de catalogue de produits.

Système de ciblage

Le système de ciblage est une plate-forme de haute performance, modulable, que les chefs d’entreprise utilisent pour cibler un contenu en fonction d’éléments ou de conditions à caractère commercial. Il comprend un modèle de ciblage cohérent qui permet aux chefs d’entreprise d’utiliser une seule et même technologie pour cibler différentes situations commerciales.

Le système de ciblage présente les fonctionnalités suivantes :

  • Campagnes marketing. Les modules Campagnes marketing Business Desk sont une version étendue de la fonctionnalité du Gestionnaire de publicités de SSCE. Les modules Campagnes marketing sont étroitement intégrés au système de profil et au système de catalogue de produits grâce aux expressions. Les expressions vous permettent de cibler des publicités en fonction des utilisateurs et d’appliquer des remises aux produits. Les modules Campagnes marketing sont également intégrés au système d’analyse commerciale pour vous permettre d’analyser le succès de vos campagnes marketing.

  • Infrastructure de sélection de contenu. L'infrastructure de sélection de contenu (CSF) est un système de pipeline qui détermine le contenu à fournir en matière de campagnes publicitaires et de campagnes de remise. L’infrastructure CSF permet de récupérer les multiples parties d’un contenu sous forme de jeu d’enregistrements à l’aide d’un seul appel, d’où un gain de vitesse considérable.

    L’architecture CSF prend en charge un système de définition de score ouvert qui permet aux développeurs de site de modifier l’algorithme utilisé pour déterminer la partie de contenu à fournir. En outre, du code de débogage peut servir à analyser les événements survenus durant le processus de définition de score.

  • Générateur d’expressions. Dans Commerce Server, le Générateur d’expressions fournit une interface utilisateur intuitive que les chefs d’entreprise peuvent utiliser pour créer des expressions qui ciblent le contenu en fonction d’un élément commercial doté d’un profil.

    Les utilisateurs Business Desk accèdent au Générateur d’expressions via les modules du Gestionnaire de campagnes et des Expressions de la campagne. Cependant, le Générateur d’expressions est conçu de telle sorte que les développeurs de site peuvent facilement incorporer sa fonctionnalité et son interface utilisateur dans d’autres modules Business Desk ou d’autres applications Web.

  • Gestionnaire de listes. Le Gestionnaire de listes est un service doté d’une interface utilisateur Business Desk qui permet d’importer et d’exporter des listes de profils utilisateur. Il est intégré au système d’analyse commerciale, ce qui vous permet, par exemple, d’exécuter des rapports visant à générer une liste de profils, puis d’importer cette liste vers le Gestionnaire de listes. Vous pouvez également importer des données de segments vers le Gestionnaire de listes. Après avoir importé une liste de profils utilisateur vers le Gestionnaire de listes, vous pouvez l’exporter vers le module Utilisateurs, puis mettre à jour les informations de profil nécessaires, par exemple, ajouter des propriétés aux profils utilisateur dans le cadre d’un ciblage. Vous pouvez également utiliser cette liste pour exécuter une campagne de publipostage.

  • Service de publipostage Commerce Server. Le service de publipostage est un service Windows 2000 rapide, évolutif qui vous permet d’envoyer des messages électroniques personnalisés à partir d’une page Web, ou des publipostages non personnalisés à partir d’un fichier texte simple, vers de grands groupes de destinataires. Le service de publipostage peut être utilisé sous forme de processus autonome ou être intégré aux modules Campagnes marketing dans Business Desk. Le service de publipostage effectue le suivi des messages électroniques et mémorise les messages envoyés et les messages ouverts (ceux sur lesquels le destinataire a cliqué), ce qui vous permet d’analyser le succès d’une campagne de publipostage.

    Le pipeline du service de publipostage sert à traiter des listes de destinataires. Vous pouvez ajouter de nouveaux composants au pipeline, intégrer ces composants à des systèmes professionnels de gestion d’activité, ou les remplacer par les composants de fournisseurs tiers.

Système d’analyse commerciale

Le système d’analyse commerciale apporte des améliorations aux fonctions d’analyse et Predictor de Site Server 3.0, ce qui augmente considérablement sa fonctionnalité, son efficacité et sa vitesse de traitement.

Le système d’analyse commerciale comprend les nouvelles fonctionnalités et les améliorations suivantes :

  • Analyse. Les modules Analyse Business Desk bénéficient de la fonctionnalité du Report Writer de Site Server 3.0, ainsi que de nombreuses améliorations supplémentaires. Vous pouvez utiliser les modules Analyse pour effectuer les opérations suivantes :
    • Exécuter des rapports sur l’activité du site.

    • Afficher et manipuler les rapports dans Internet Explorer à l’aide de Microsoft PivotTables (tableaux croisés dynamiques) et de Microsoft PivotCharts (graphiques croisés dynamiques).

    • Exporter les rapports vers le système de profil ou le système de ciblage, puis utiliser les données pour mettre à jour des profils ou cibler un contenu.

    • Personnaliser des rapports.

    L’exécution des rapports est bien plus rapide dans Commerce Server que dans Site Server, car les données nécessaires à un bon nombre de rapports sont stockées dans une base de données OLAP (Online Analytical Processing).

  • Data Warehouse. Data Warehouse de Commerce Server remplace la base de données d’analyse de Site Server 3.0. Data Warehouse représente l’association d’une base de données SQL Server, d’une base de données OLAP et de l’ensemble des processus utilisés par un administrateur système pour importer et gérer des données. Data Warehouse importe un grand volume de données collectées à partir de plusieurs sources de données différentes. Il collecte jour après jour des données opérationnelles sur les utilisateurs qui visitent votre site : données de profil utilisateur, données de transaction et données d’historique des clics. Il collecte également les données sur les produits et la publicité. Ces données sont rassemblées à partir de vos journaux de serveur Web, des bases de données Commerce Server et des autres sources de données spécifiées. Data Warehouse gère ensuite les données de la base de données pour les besoins de l’analyse commerciale.

    Vous pouvez configurer les propriétés de Data Warehouse pour spécifier le mode d’importation des données.

  • Predictor. La ressource Predictor est un service de Windows 2000 qui est installé en option avec Commerce Server 2000 dans le cadre d’une installation complète ou personnalisée. La ressource Predictor permet de doter votre site Web de fonctionnalités de prévision, par exemple pour afficher des recommandations sur les produits.

    La ressource Predictor de Commerce Server comprend plusieurs améliorations qui la rendent plus efficace que la ressource Predictor de Site Server 3.0. Elle comprend également des fonctionnalités supplémentaires, pour vous permettre d’analyser vos modèles.

    Predictor comprend les améliorations et fonctionnalités suivantes :

    • Modèles de segments. Outre la création de modèles de prévision, vous pouvez maintenant créer des modèles de segments. Un modèle de segment, également appelé modèle de cluster, partitionne les utilisateurs en segments ou en groupes d’utilisateurs partageant des caractéristiques ou des comportements spécifiques. Vous pouvez utiliser ces segments pour des études de marché ultérieures.

    • Afficheurs de modèles. Vous pouvez analyser des modèles de prévision à l’aide du Prediction Model Browser accessible via Commerce Server Manager, et analyser également des modèles de segments à l’aide du module Identification de segments de Business Desk.

    • Algorithme basé sur un modèle. Dans Site Server 3.0, Predictor utilisait un algorithme basé sur les données pour effectuer des prévisions. Le nouvel algorithme basé sur un modèle utilise des arborescences de décision (réseaux de dépendances) pour effectuer les prévisions, ce qui est plus précis et beaucoup plus rapide.

    • Analyse automatique des données. Predictor comprend des fonctionnalités permettant un échantillonnage automatique et efficace des données, des méthodes améliorées de sélection des attributs à modéliser et un algorithme qui « devine » automatiquement la distribution optimale pour la modélisation de ces attributs.

    • Création de modèles en mode déconnecté. Les modèles ne sont pas construits sur le serveur Web, c’est la raison pour laquelle le processus de construction n’a pas d’incidence sur les performances de votre site.

    • Tous les serveurs Web utilisent le même modèle. Dans Site Server 3.0, chaque serveur Web devait construire son propre modèle. Dans Commerce Server, tous les serveurs Web utilisent le même modèle, d’où une réduction de la consommation des ressources lors de la construction de modèles.

Voir aussi

Concepts de Commerce Server

Utilisateurs Business Desk

Catalogues Business Desk

Campagnes marketing Business Desk

Analyse Business Desk


Fonctionnalités de pipeline

Commerce Server 2000 comprend plusieurs nouvelles fonctionnalités de pipeline qui simplifient la gestion des commandes, facilitent la maintenance des modes de livraison ainsi que la gestion des remises, et rendent plus efficaces le chargement et l’exécution d’un pipeline. Ces fonctions incluent :

  • Gestion des devises haute précision

  • Gestion des livraisons multiples

  • Gestion des remises

  • Regroupement de pipelines

Voir aussi

Working with Pipelines (en anglais)

Currency Enhancements (en anglais)

Multiple Shipment Architecture (en anglais)

Discount Objects (en anglais)

Pooled Pipelines (en anglais)


Accessibilité aux personnes atteintes de handicaps

Microsoft s’engage à rendre ses produits et services plus faciles à utiliser. Cette section fournit des informations sur les fonctionnalités qui facilitent l’accès à Commerce Server 2000 aux personnes atteintes de handicaps.

Pour plus d’informations sur l’utilisation de votre clavier pour naviguer dans l’afficheur d’aide, consultez Raccourcis clavier de l’afficheur de l’aide.

Pour obtenir une liste des raccourcis clavier utilisés fréquemment au sein de Commerce Server Business Desk, consultez Utilisation des raccourcis clavier.

Fonctionnalités d’accessibilité de Microsoft Windows 2000

Pour plus d’informations sur l’accessibilité

Fonctionnalités d’accessibilité de Microsoft Windows 2000

Commerce Server 2000 prend en charge les fonctionnalités d’accessibilité de Windows 2000. Ces fonctionnalités sont présentes dans Commerce Server Business Desk, Commerce Server Manager et Pipeline Editor.

  • Loupe. Affiche une zone d’écran agrandie dans une fenêtre séparée pour une meilleure visualisation.

  • Narrateur. Lit les informations qui figurent sur votre écran, y compris les noms des boîtes de dialogue, les menus, le texte entré, etc. Le Narrateur fournit un niveau minimum d’accessibilité pour que les personnes non-voyantes ou disposant d’une vue basse puissent interagir avec Commerce Server 2000 durant la configuration ou en cas d’urgence.

    Remarque

    • Le Narrateur est uniquement disponible en anglais (U.S.).
  • Clavier visuel. Affiche un clavier virtuel pour que vous puissiez entrer des informations en utilisant un périphérique de pointage, tel qu’une souris ou un périphérique d’entrée à un bouton. Le Clavier visuel est compatible avec la plupart des claviers et leurs paramètres.

Pour plus d’informations sur leur utilisation ainsi que d’autres options d’accessibilité, consultez « Accessibilité aux personnes atteintes de handicaps » dans l’aide de Windows 2000 Server.

Pour plus d’informations sur l’accessibilité

Pour plus d’informations sur les options d’accessibilité, consultez l’aide de Windows 2000, plus particulièrement « Accessibilité aux personnes atteintes de handicaps » dans le manuel « Mise en route de Windows 2000 ».

Pour plus d’informations sur les options d’accessibilité de Microsoft SQL Server, consultez « Accessibilité aux personnes atteintes de handicaps » dans la Documentation en ligne de SQL Server.

Pour en apprendre plus sur les produits Microsoft disponibles pour les personnes atteintes de handicaps, visitez www.microsoft.com/enable/. Ce site contient les rubriques suivantes :

  • Informations complètes sur l’accessibilité des produits Microsoft.

  • Informations sur une grande variété de matériels et logiciels tiers qui sont disponibles pour faciliter l’utilisation des PC.

  • Une vue d’ensemble d’autres produits, services et ressources en matière d’accessibilité qui sont disponibles auprès de Microsoft et d’autres organisations.


Les Services du Support Technique Microsoft

Le parcours solution

Si vous avez une question ou si vous rencontrez un problème concernant l’utilisation d’un produit Microsoft, nous vous suggérons de :

  • Consulter les rubriques d'aide en ligne ou la documentation du produit.

  • Consulter les fichiers « lisez-moi » fournis avec le jeu de disques ou disquettes de votre produit. Ces fichiers contiennent des informations générales, mises à jour à la date de commercialisation du produit.

  • Visiter le site Web du Support Technique de la filiale Microsoft qui dessert votre pays (voir la rubrique Contacts ci-dessous), qui vous propose un ensemble de guides et informations techniques toujours à jour et destinées à vous aider à trouver une réponse aux problématiques les plus courantes.

  • Bénéficier de l’Assistance Utilisateur, le service qui vous permet de soumettre une demande d'assistance sur un produit Microsoft (à l'exception des logiciels pour serveur) pendant toute sa durée de vie et dans la limite de 2 incidents.

  • Visiter le site Web de la filiale Microsoft qui dessert votre pays (voir la rubrique Contacts ci-dessous) ou nous contacter pour identifier l’offre de services de Support qui répond le mieux à vos besoins.

Les ressources du service de Support en ligne

L’équipe Support en ligne vous propose de nombreuses ressources d’auto-formation, des guides d’installation et de dépannage, des téléchargements, de la documentation technique ainsi que des newsgroups spécialisés qui simplifient les échanges avec d’autres utilisateurs de produits Microsoft.

Vous pourrez ainsi obtenir rapidement et facilement une réponse à la majeure partie de vos questions 24 heures sur 24, 7 jours sur 7.

Visitez le site Web du service de Support en ligne de la filiale Microsoft qui dessert votre pays :

  • Pour la France : http://www.microsoft.com/france/support/

  • Pour le Canada : http://www.microsoft.ca/french/support/

  • Pour les autres pays, consultez les adresses Web indiquées sous la rubrique Contacts.


Les Services de Support Technique

Le Support Premier

Destiné aux grandes entreprises et aux administrations, le Support Premier offre une expertise technique et des services professionnels sur mesure, afin de garantir la meilleure disponibilité des solutions Microsoft. Cette offre homologuée ISO 9002 s’articule autour de quatre types de prestations : une relation technique suivie et personnalisée avec Microsoft ; une prévoyance accrue pour la gestion de vos solutions ; un accès privilégié au savoir-faire de Microsoft et une réactivité permanente.

Les offres Microsoft Support Premier Agrée

Bâties sur le modèle de l'offre Support Premier de Microsoft, les offres de la famille Support Premier Agréé sont spécifiquement conçues pour répondre aux attentes des entreprises possédant entre 200 et 5000 PC. Conjointement délivrées par Microsoft et ses Centres de Support Agréés, les offres Support Premier Agréé s'appuient sur la diversité des compétences et l'expérience de nos partenaires, procurant ainsi des avantages complémentaires à ceux que Microsoft pourrait fournir en intervenant seul.

Le Support Microsoft Professional

Que vous soyez un professionnel de l’informatique, un développeur, un revendeur informatique ou un consultant, l’offre de Support Professional vous garantit une assistance technique réactive de haut niveau, à votre disposition 24h heures sur 24 en cas d’incident critique. Accessible en ligne ou par téléphone, cette offre de support met à votre disposition un service d’assistance efficace 24h/24 et 7j/7 en cas de panne bloquante.

L’Assistance Technique facturée à l’incident

Disponible au Canada uniquement, l’Assistance technique facturée à l’incident est accessible du lundi au vendredi de 8 h à 23 h, et le samedi de 10 h à 18 h HNE à l'exception des jours fériés. Composez le ( 1 800 668-7975 ; le paiement de l'assistance technique pour votre incident est effectué par carte de crédit.

Pour plus d’informations

Les Services d'Information sont à votre écoute afin de vous fournir de plus amples informations sur les offres de support technique proposées par Microsoft et ses partenaires. Vous pouvez nous contacter en France au ( 0 825 827 829 code 4488, et au Canada au ( 1 800 563-9048.

Pour les autres pays, consultez les numéros de téléphone indiqués sous la rubrique Contacts.


Contacts

La liste des pays et des filiales Microsoft offrant un support après-vente pour les versions françaises est indiquée ci-dessous.

Pays | Numéros de téléphone
Belgique | Microsoft NV Téléphone : (32) 2-730-3911 Fax : (32) 2-735-1609 CompuServe : 02-2150530 (GO MSBEN) Support technique (francophone) : (32) 2-513-2268 http://www.microsoft.com/belgium/support/default.asp?lang=2
Canada | Microsoft Canada Co. Téléphone : 1 (905) 568-0434 Centre d'information : 1 (800) 563-9048 Tél. Support technique (bilingue) : 1 (905) 568-2294 Téléphone texte (TT/TDD) : 1 (905) 568-9641 http://www.microsoft.ca/french/support/
France | Microsoft France Téléphone : 0 825 827 829 (0,99 FTTC/min) suivi de 0 et du code 44 88 # Télex : MSPARIS 604322F Fax : (33) 01 64 46 06 60 http://www.microsoft.com/france/support/
Luxembourg | Microsoft NV Téléphone : (32) 2-730-3911 Service clients : (32) 2-7303922 CompuServe : (32) 2-2150530 (GO MSBEN) BBS : (32) 2-7350045 (1200/2400/9600 bauds, 8 bits, pas de parité, 1 bit de stop, émulation terminal ANSI) Support technique (francophone) : (32) 2-513-2268
Polynésie française | Voir France
Suisse | Microsoft SA Téléphone : (41) (1) 839 61 11 Fax : (41) (1) 831 08 69 Informations : Tél. : 155 59 00 Fax : 064 - 224294 Microsoft Info-Service, Postfach, 8099 Zürich Prix, mises à jour, etc. : 01/839 61 11 CompuServe : 01/273 10 28 (GO MSEURO Microsoft Europe centrale) Support technique (francophone) : (41) (22) 738 96 88 http://www.microsoft.com/switzerland/fr/support/

S'il n'existe pas de filiale Microsoft dans votre pays, veuillez contacter le revendeur auprès duquel vous avez effectué l'achat de votre produit Microsoft.

**Les services de Support Technique de Microsoft sont soumis aux prix, termes et conditions en vigueur et peuvent faire l'objet de modifications sans préavis. Ce document n’est pas un document contractuel et a uniquement pour objet de vous informer sur le Support Technique qui vous est proposé par Microsoft. Microsoft se réserve le droit d’adapter ou de modifier à tout moment le contenu de ce programme en fonction des évolutions, adaptations ou modifications qui pourraient s’avérer nécessaires.


Utilisation de l'aide de Commerce Server

Utilisation de l’aide de Commerce Server

Le système d’aide de Commerce Server 2000 contient de la documentation destinée aux développeurs de site Web, aux administrateurs système et aux chefs d’entreprise.

Cette section contient les rubriques suivantes :

  • À propos de l’aide de Commerce Server. Décrit la structure et le contenu de l’aide de Commerce Server 2000.

  • Utilisation de l’afficheur d’aide. Explique comment utiliser l’afficheur d’aide pour trouver les informations dont vous avez besoin.

  • Recherche d’une rubrique d’aide. Explique comment rechercher des expressions précises et comment trouver des rubriques en utilisant les opérateurs OU, ET, PRÈS et SANS.

  • Création d’un signet dans une rubrique d’aide. Explique comment créer un signet dans une rubrique d’aide pour pouvoir la retrouver facilement par la suite.

  • Impression d’une rubrique d’aide. Explique comment imprimer simultanément une ou plusieurs rubriques.

  • Copie d’une rubrique d’aide. Explique comment copier une rubrique d’aide et la coller dans un autre document.

  • Utilisation du filtrage de langage. Explique comment utiliser le filtrage de langage pour afficher des exemples de code de C++ ou Microsoft Visual Basic.

  • Raccourcis clavier de l’afficheur d’aide. Répertorie les raccourcis clavier pour l’utilisation de l’afficheur d’aide.

  • Autres ressources. Répertorie les autres ressources d’informations disponibles en plus de l’aide de Commerce Server 2000.


À propos de l'aide de Commerce Server

À propos de l’aide de Commerce Server

L’aide de Commerce Server 2000 a été spécialement conçue pour que les utilisateurs puissent localiser facilement le type d’informations dont ils ont besoin (déroulement des opérations, concepts, procédures ou références) pour gérer, administrer ou développer efficacement leurs sites de commerce.

Structure du système d’aide

Aide pour les développeurs

Aide de Business Desk

Structure du système d’aide

La table des matières comprend plusieurs livres, chacun de ces livres correspondant à une fonctionnalité majeure du produit. Les nœuds, ou chapitres, de chaque livre correspondent aux principales tâches que vous serez amené à effectuer dans le cadre de cette fonctionnalité ou expliquent des concepts ou technologies clés que vous devez connaître pour effectuer ces tâches.

Le tableau suivant répertorie les livres de l’aide de Commerce Server et fournit une description de chacun de ces livres.

Livre | Description | Utilisateurs
Mise en route | Décrit les fonctionnalités, outils et concepts de Commerce Server. Explique comment concevoir votre site Commerce Server et fournit un lien vers les instructions d’installation. | Tous les utilisateurs de Commerce Server
Developing Your Site (en anglais) | Explique comment configurer votre environnement de développement, programmer à l’aide d’objets Commerce Server, personnaliser des pipelines et intégrer Commerce Server avec d’autres applications. | Développeurs de site
Déploiement de votre site | Explique comment utiliser le Gestionnaire de package de site pour déployer un site utilisant SQL Server ou Active Directory et comment effectuer des mises à jour incrémentielles de votre site. Explique comment sécuriser votre site. Fournit deux exemples détaillés pour l’installation de Commerce Server avec une configuration de cluster à 4 ordinateurs et avec une configuration sans cluster à 3 ordinateurs. | Administrateurs système
Administration de Commerce Server | Décrit les ressources, les sites, les applications, les serveurs Web et la base de données d’administration de Commerce Server et explique comment les gérer. Explique comment gérer les ressources Profiles, CS Authentication, Direct Mail, Data Warehouse et Predictor. Explique comment configurer Commerce Server pour utiliser BizTalk Server. | Administrateurs système
Utilisation de Business Desk | Explique comment gérer votre site à l’aide de Business Desk. Comprend un didacticiel contenant des ateliers qui traitent de la gestion d’un site entreprise-client et d’un site entreprise-entreprise. | Chefs d’entreprise
Extending Commerce Server (en anglais) | Explique comment intégrer une ressource personnalisée dans Commerce Server, créer des modules Business Desk et créer des composants de pipeline. Explique comment créer des rapports personnalisés, étendre Data Warehouse, intégrer des catalogues de produits tiers et intégrer Microsoft Passport. | Développeurs de site
Programmer's Reference (en anglais) | Fournit une documentation de référence complète sur les composants COM, qui ont différentes fonctions dans Commerce Server. | Développeurs de site
Dépannage de Commerce Server | Décrit les symptômes et solutions pour les problèmes que vous êtes susceptible de rencontrer en utilisant Commerce Server. | Administrateurs système et développeurs de site
Glossaire | Définit les termes courants utilisés dans Commerce Server. | Tous les utilisateurs de Commerce Server

Dans chaque livre, vous trouverez des nœuds contenant les types d’informations suivants :

  • Diagrammes de déroulement des opérations. La documentation relative à chaque catégorie Business Desk contient une figure illustrant les principales tâches effectuées pour cette fonctionnalité, avec des liens vers les rubriques de tâche dans lesquelles se trouvent des instructions détaillées pour effectuer chaque tâche.

  • Mise en route. Des nœuds Mise en route sont disponibles à la fois pour Commerce Server et pour Business Desk.

  • Rubriques de base. Ces rubriques décrivent les tâches courantes et fournissent des informations de navigation concernant Business Desk, Commerce Server Manager et les pipelines.

  • Concepts. Dans les rubriques Business Desk et ailleurs, les titres qui commencent par « À propos de » signalent des rubriques présentant des concepts clés pour l’utilisation de Commerce Server et de ses composants.

  • Tâches. Les rubriques de tâche fournissent des instructions détaillées permettant d’effectuer les tâches illustrées dans le déroulement des opérations.

Aide pour les développeurs

Pour que vous puissiez afficher uniquement les informations pertinentes pour votre environnement de programmation, l’aide de Commerce Server 2000 dispose d’un outil permettant d’appliquer un filtre en fonction du langage. Dans la barre de titre des rubriques de Programmer's Reference (en anglais), vous trouverez un bouton de filtre permettant d’afficher un menu de langages. Ce menu vous permet d’afficher la documentation adaptée à Visual C++ ou à Visual Basic. Une fois que vous avez sélectionné un langage, la sélection reste effective lorsque vous affichez d’autres pages.

En plus de l’aide, vous pouvez consulter les documents suivants pour obtenir des informations sur le développement :

  • Kit de développement de logiciel (SDK, Software Development Kit) de Commerce Server. Comporte des exemples de code et de la documentation pour le développement de solutions de commerce électronique à l’aide de Commerce Server. Par exemple, le SDK explique comment développer du code pour des ventes annexes (offres de lancement, ventes croisées et ventes d’inventaires). Le SDK est installé avec Commerce Server 2000.

    Pour accéder au SDK, cliquez sur Démarrer, pointez sur Programmes, sur Microsoft Commerce Server 2000, puis cliquez sur Kit de développement de logiciel.

  • Kit de Ressources Techniques Commerce Server 2000. Fournit des informations détaillées sur la conception, le développement, le déploiement, l’évolution et l’optimisation de votre installation Commerce Server. Le Kit de Ressources Techniques Commerce Server 2000 est publié par Microsoft Press.

Aide de Business Desk

Le système d’aide de Business Desk est un sous-ensemble de l’aide de Commerce Server 2000. Les utilisateurs Business Desk peuvent afficher l’aide contenue dans le livre « Utilisation de Business Desk », mais ils n’ont pas accès aux autres livres Commerce Server à partir de leur ordinateur client.

Pour accéder à l’aide à partir de Business Desk, cliquez sur Icône Aide Business Desk dans la barre d’outils.


Utilisation de l'afficheur d'aide

Utilisation de l’afficheur d’aide

Le système d’aide de Commerce Server 2000 utilise HTML pour formater et afficher les informations. L’afficheur d’aide présente une table des matières, un index et une fonction de recherche de texte intégral pour que vous puissiez trouver facilement l’information. Les icônes de livres s’ouvrent pour révéler des sous-livres et des rubriques.

Pour développer la table des matières et afficher les rubriques contenues dans un livre, cliquez sur l’indicateur de développement (+) à côté du titre du livre. Quand vous cliquez sur l’indicateur de réduction (-), les rubriques sont masquées. L’afficheur d’aide vous permet de consulter la table des matières, l’index ou les résultats d’une recherche en même temps que vous affichez une rubrique d’aide.

L’afficheur d’aide comprend également un onglet Favoris, que vous pouvez utiliser pour créer des signets dans des rubriques. Ceci vous permet d’afficher rapidement des rubriques auxquelles vous vous reportez fréquemment.

Pour en savoir plus sur Commerce Server, vous pouvez utiliser la table des matières pour parcourir la documentation. Lorsque vous cliquez sur une rubrique de la table des matières, les informations s’affichent dans le volet de contenu de la fenêtre d’aide.

Dans l’afficheur d’aide, les options de navigation et de recherche suivantes sont disponibles :

  • Onglet Table des matières
    1. Pour parcourir la table des matières, cliquez sur l’onglet Table des matières. Double-cliquez sur les icônes de livres pour faire apparaître les entrées de rubriques et les sous-livres.

    2. Cliquez sur une entrée de table des matières pour afficher la rubrique correspondante.
  • Onglet Index
    1. Pour afficher une liste d’entrées d’index, cliquez sur l’onglet Index, puis tapez un mot ou faites défiler la liste. Les rubriques sont souvent indexées sous plus d’une entrée.

    2. Double-cliquez sur une entrée d’index pour afficher la rubrique correspondante.
  • Onglet Recherche
    1. Pour localiser chaque occurrence d’un mot ou d’une expression, cliquez sur l’onglet Recherche, tapez le mot ou l’expression recherchés, puis cliquez sur Rechercher. Pour affiner votre recherche, vous pouvez combiner plusieurs mots et expressions avec les opérateurs ET, OU, PRÈS et SANS.

    2. Double-cliquez sur une entrée de résultats de recherche pour afficher la rubrique correspondante.

    Pour plus d’informations sur la recherche d’une rubrique, consultez Recherche d’une rubrique d’aide.

  • Onglet Favoris
    1. Pour créer un signet dans une rubrique, utilisez les onglets Table des matières, Index ou Recherche pour localiser puis afficher une rubrique.

    2. Cliquez sur l’onglet Favoris, puis sur Ajouter pour enregistrer le titre de rubrique dans la liste Rubriques.

    3. Double-cliquez sur un signet de la liste Rubriques pour afficher rapidement la rubrique.

Voir aussi

Recherche d’une rubrique d’aide

Création d’un signet dans une rubrique d’aide

Impression d’une rubrique d’aide

Copie d’une rubrique d’aide

Utilisation du filtrage de langage

Raccourcis clavier de l’afficheur d’aide


Recherche d'une rubrique d'aide

Recherche d’une rubrique d’aide

  1. Pour localiser chaque occurrence d’un mot ou d’une expression, cliquez sur l’onglet Recherche, puis cliquez sur Rechercher.

  2. Pour rechercher une expression précise, mettez-la entre guillemets, par exemple, « ordinateur et moniteur » trouve les rubriques contenant l’expression précise ordinateur et moniteur.

  3. Pour affiner votre recherche, vous pouvez combiner plusieurs mots ou expressions avec les opérateurs ET, OU, PRÈS et SANS.

    Exemple :

    • La recherche ordinateur et moniteur trouve les rubriques contenant à la fois les mots ordinateur et moniteur.

    • La recherche ordinateur ou moniteur trouve les rubriques contenant ordinateur ou moniteur.

    • La recherche ordinateur près moniteur trouve les rubriques contenant à la fois les mots ordinateur et moniteur à proximité l’un de l’autre.

    • La recherche ordinateur sans moniteur trouve les rubriques contenant le mot-clé ordinateur mais ne contenant pas le mot-clé moniteur.
  4. Double-cliquez sur une entrée de résultats de recherche pour afficher la rubrique correspondante.

Voir aussi

Création d’un signet dans une rubrique d’aide

Impression d’une rubrique d’aide

Copie d’une rubrique d’aide

Utilisation du filtrage de langage

Raccourcis clavier de l’afficheur d’aide


Création d'un signet dans une rubrique d'aide

Création d’un signet dans une rubrique d’aide

  1. Utilisez les onglets Table des matières, Index ou Recherche pour localiser puis afficher la rubrique dans laquelle vous souhaitez créer un signet.

  2. Cliquez sur l’onglet Favoris, puis sur Ajouter.

L’afficheur d’aide ajoute le titre de rubrique à la liste Rubriques. Vous pouvez retourner ultérieurement à cette liste et double-cliquer sur le signet pour afficher rapidement la rubrique.

Remarques

  • Vous pouvez créer une liste des rubriques d’aide fréquemment consultées.

  • Pour supprimer un signet de la liste Rubriques, cliquez sur le signet puis sur Supprimer.

Voir aussi

Recherche d’une rubrique d’aide

Impression d’une rubrique d’aide

Copie d’une rubrique d’aide

Utilisation du filtrage de langage

Raccourcis clavier de l’afficheur d’aide


Impression d'une rubrique d'aide

Impression d’une rubrique d’aide

  • Cliquez avec le bouton droit sur la rubrique que vous souhaitez imprimer, puis cliquez sur Imprimer.

  • Pour imprimer une rubrique contextuelle, cliquez avec le bouton droit à l’intérieur de la fenêtre contextuelle, puis cliquez sur Imprimer.

  • Pour imprimer toutes les rubriques d’un livre, sous l’onglet Table des matières, sélectionnez le livre souhaité. Dans la barre d’outils de l’aide, cliquez sur Options, sur Imprimer, puis sur Imprimer le titre sélectionné et toutes les sous-rubriques.

Remarques

  • Si vous imprimez une section comportant plusieurs rubriques où figurent plusieurs illustrations, les illustrations ne seront pas imprimées.

  • L’impression d’exemples de code et de grandes illustrations peut parfois s’effectuer de manière incomplète. Si une ligne de code est très longue ou qu’une illustration très grande, le bord droit du code ou de l’illustration peut dépasser les marges et ne pas s’imprimer.

Voir aussi

Création d’un signet dans une rubrique d’aide

Recherche d’une rubrique d’aide

Copie d’une rubrique d’aide

Utilisation du filtrage de langage

Raccourcis clavier de l’afficheur d’aide


Copie d'une rubrique d'aide

Copie d’une rubrique d’aide

  1. Dans le volet de rubrique de l’afficheur d’aide, cliquez avec le bouton droit dans la rubrique que vous souhaitez copier, puis cliquez sur Sélectionner tout.

  2. Cliquez à nouveau avec le bouton droit dans la rubrique, puis cliquez sur Copier.

  3. Ouvrez le document dans lequel vous souhaitez copier la rubrique.

  4. Cliquez sur l’emplacement de votre document où vous souhaitez qu’apparaissent les informations.

  5. Dans le menu Edition, cliquez sur Coller.

Remarques

  • Si vous souhaitez copier seulement une partie d’une rubrique, sélectionnez la partie à copier, cliquez avec le bouton droit sur la sélection, puis cliquez sur Copier.

  • Les numéros d’étape ne sont pas copiés vers le Presse-papiers.

Voir aussi

Impression d’une rubrique d’aide

Création d’un signet dans une rubrique d’aide

Recherche d’une rubrique d’aide

Utilisation du filtrage de langage

Raccourcis clavier de l’afficheur d’aide


Utilisation du filtrage de langage

Pour que vous puissiez afficher uniquement les informations pertinentes pour votre environnement de programmation, l’aide de Commerce Server 2000 dispose d’un outil permettant d’appliquer un filtre en fonction du langage. Dans la barre de titre des rubriques du guide Programmer’s Reference, vous trouverez un bouton de filtre permettant d’afficher un menu de langages. Ce menu vous permet d’afficher la documentation adaptée à Visual C++ ou à Visual Basic. Une fois que vous avez sélectionné un langage, la sélection reste effective lorsque vous affichez d’autres pages.

Pour afficher les options de filtrage de langages, cliquez sur le bouton filtrer de la barre de titre, puis cliquez sur l’une des options suivantes :

  • C++

  • Visual Basic

Voir aussi

Impression d’une rubrique d’aide

Création d’un signet dans une rubrique d’aide

Recherche d’une rubrique d’aide

Raccourcis clavier de l’afficheur d’aide

Copie d’une rubrique d’aide

Autres ressources


Raccourcis clavier de l'afficheur d'aide

Raccourcis clavier de l’afficheur d’aide

Si vous ne disposez pas d’une souris ou si vous préférez utiliser le clavier, vous pouvez utiliser les commandes clavier suivantes pour naviguer dans l’afficheur d’aide.

Raccourcis clavier de l’afficheur d’aide

Appuyez sur | Pour
ALT+ESPACE | Afficher le menu système.
MAJ+F10 Afficher le menu contextuel de l’afficheur d’aide.

Remarque

  • Utilisez ce raccourci quand le focus est sur le volet de rubrique.
ALT+TAB | Basculer entre l’afficheur d’aide et les autres fenêtres ouvertes.
ALT+O | Afficher le menu Options.
ALT+O, puis T | Masquer ou afficher le volet de navigation.
CTRL+TAB | Passer à l’onglet suivant du volet de navigation.
CTRL+MAJ+TAB | Passer à l’onglet précédent du volet de navigation.
HAUT | Monter d’une rubrique dans la table des matières, l’index ou la liste des résultats de recherche.
BAS | Descendre d’une rubrique dans la table des matières, l’index ou la liste des résultats de recherche.
PG. PRÉC | Monter d’une page dans la table des matières, l’index ou la liste des résultats de recherche.
PG. SUIV | Descendre d’une page dans la table des matières, l’index ou la liste des résultats de recherche.
F6 | Basculer le focus entre le volet de navigation et le volet de rubrique.
ALT+O, puis R | Rafraîchir la rubrique qui apparaît dans le volet de rubrique.
HAUT ou BAS | Faire défiler une rubrique.
CTRL+ORIGINE | Atteindre le début d’une rubrique.
CTRL+FIN | Atteindre la fin d’une rubrique.
CTRL+A | Mettre tout le texte en surbrillance dans le volet de rubrique.
ALT+O, puis P | Imprimer une rubrique.
ALT+O, puis B | Revenir à la rubrique précédemment affichée.
ALT+O, puis F | Passer à la rubrique suivante (précédemment affichée).
ALT+F4 | Fermer l’afficheur d’aide.

Raccourcis clavier de l’onglet Table des matières

Appuyez sur | Pour
ALT+C | Afficher l’onglet Table des matières.
DROITE | Ouvrir un livre.
GAUCHE | Fermer un livre.
RETOUR ARRIÈRE | Revenir au livre ouvert précédent.
HAUT ou BAS | Sélectionner une rubrique.
ENTRÉE | Afficher la rubrique sélectionnée.

Raccourcis clavier de l’onglet Index

Appuyez sur | Pour
ALT+N | Afficher l’onglet Index.
HAUT ou BAS | Sélectionner un mot-clé dans la liste.
ALT+D ou ENTRÉE | Afficher la rubrique associée.

Raccourcis clavier de l’onglet Recherche

Appuyez sur | Pour
ALT+S | Afficher l’onglet Recherche.
ALT+L | Démarrer une recherche.
ALT+D ou ENTRÉE | Afficher la rubrique sélectionnée.

Raccourcis clavier de l’onglet Favoris

Appuyez sur | Pour
ALT+I | Afficher l’onglet Favoris.
ALT+A | Ajouter une rubrique à la liste Rubriques.
ALT+P Sélectionner une rubrique dans la liste Rubriques.

Remarque

  • Utilisez ce raccourci quand le focus est sur le volet de rubrique et que vous souhaitez passer à la liste Rubriques.
ALT+R | Supprimer une rubrique de la liste Rubriques.
ALT+D | Afficher une rubrique de la liste Rubriques.

Voir aussi

Impression d’une rubrique d’aide

Création d’un signet dans une rubrique d’aide

Recherche d’une rubrique d’aide

Utilisation du filtrage de langage

Copie d’une rubrique d’aide


Autres ressources

En complément du système d’aide de Commerce Server 2000, vous disposez des sources d’informations suivantes :

  • Kit de développement de logiciel (SDK), dans le dossier Program Files\Microsoft Commerce Server\SDK

  • Kit de Ressources Techniques Commerce Server 2000, ouvrage publié par Microsoft Press

  • Site Web Commerce Server


Installation de Commerce Server

Cette section fournit des informations sur les configurations matérielle et logicielle requises pour Microsoft Commerce Server 2000, et elle explique également comment désinstaller Commerce Server. Pour obtenir des instructions sur l’installation de Commerce Server, consultez http://www.microsoft.com/france/technet/support/faq.asp?url=depguideCS2000.xml.

Cette section contient les rubriques suivantes :

  • Configuration matérielle requise. Fournit la configuration matérielle requise pour Commerce Server 2000.

  • Configuration logicielle requise. Fournit la configuration logicielle requise pour Commerce Server 2000.

  • Installation du client Business Desk. Explique comment installer Commerce Server Business Desk sur un ordinateur client.

  • Désinstallation de Commerce Server. Explique comment désinstaller Commerce Server 2000, les bases de données Commerce Server, les répertoires virtuels ainsi que les fichiers et dossiers d’un site.

  • Désinstallation du client Business Desk. Explique comment désinstaller le client Business Desk.

Voir aussi

Installation des outils d’administration uniquement


Configuration matérielle requise

Cette section répertorie la configuration matérielle requise pour les éléments suivants :

Commerce Server

Outils d’administration

Client Business Desk

Commerce Server

La configuration matérielle requise pour l’installation d’un serveur Commerce Server 2000 est la suivante :

  • Processeur 400 MHz ou supérieur, Pentium ou compatible

  • 256 Mo de mémoire vive (RAM) (128 Mo de mémoire vive suffisent pour un environnement de développement)

  • 100 Mo d’espace disque

  • Lecteur de CD-ROM

  • Carte réseau

  • Moniteur VGA ou Super VGA

  • Souris Microsoft ou dispositif de pointage compatible

Dans votre environnement de production, il se peut que le volume de trafic généré sur votre site Web impose une configuration matérielle plus stricte pour les serveurs Web.

Outils d’administration

La configuration matérielle requise pour l’installation de Commerce Server 2000 avec les outils d’administration uniquement est la suivante :

  • Processeur 266 MHz ou supérieur, Pentium ou compatible

  • 128 Mo de mémoire vive (RAM)

  • 20 Mo d’espace disque

  • Lecteur de CD-ROM

  • Carte réseau

  • Moniteur VGA ou Super VGA configuré selon une résolution de 800 par 600 pixels, ou supérieure

  • Souris Microsoft ou dispositif de pointage compatible

Client Business Desk

La configuration matérielle requise pour un client Business Desk est la suivante :

  • Processeur 266 MHz ou supérieur, Pentium ou compatible

  • 5 Mo d’espace disque

  • Lecteur de CD-ROM ou de DVD-ROM

  • Moniteur VGA ou Super VGA configuré selon une résolution de 800 par 600 pixels, ou supérieure

  • Souris Microsoft ou dispositif de pointage compatible


Configuration logicielle requise

Cette section répertorie la configuration logicielle requise pour les éléments suivants :

Commerce Server

SQL Server

Client Business Desk

Commerce Server

Avant d’installer Commerce Server 2000, vous devez installer les logiciels suivants sur votre serveur, en respectant l’ordre de la liste :

Remarque

  • Il s’agit de la seule plate-forme prise en charge par les Services de support professionnel Microsoft. Les versions préliminaires de Windows 2000 ne sont pas prises en charge.
  1. Microsoft Windows 2000 Server ou Advanced Server.

    Si vous ne souhaitez installer que les outils d’administration ou l’aide de Commerce Server 2000, vous pouvez utiliser Microsoft Windows 2000 Professionnel.

  2. Service Pack 1 de Windows 2000 Server.

  3. Correctifs pour Microsoft Windows 2000.

    Ces correctifs s’appliquent à Microsoft Windows 2000 Server, Microsoft Windows Advanced Server et Microsoft Windows 2000 Professionnel.

En outre, une installation de SQL Server 2000 ou SQL Server 7.0 doit être à la disposition de Commerce Server, sur le même réseau. Pour connaître la configuration logicielle requise pour SQL Server, consultez SQL Server.

Remarque

  • Le service de publipostage Commerce Server doit être installé sur le même ordinateur que celui où est installé SQL Server.

Pour plus d’informations sur la configuration d’un environnement de production comprenant plusieurs ordinateurs, consultez Déploiement de votre site.

SQL Server

Commerce Server nécessite un accès à SQL Server 2000 ou à SQL Server 7.0, sur le même réseau.

Configuration requise pour SQL Server 2000

  • Outils clients SQL Server 2000

  • SQL Server 2000 Analysis Services

  • Outils clients SQL Server 2000 Analysis Services

SQL Server 2000 inclut Microsoft Data Access Components (MDAC) 2.6.

Configuration requise pour SQL Server 7.0

  • Outils clients Microsoft SQL Server 7.0

  • Service Pack 2 de Microsoft SQL Server 7.0

  • Services OLAP Microsoft SQL Server 7.0

  • Service Pack 2 des Services OLAP Microsoft SQL Server 7.0

  • Gestionnaire de compléments OLAP

  • Outils clients OLAP Server

  • Microsoft Data Access Components (MDAC) 2.6

Client Business Desk

Avant d’installer le client Commerce Server Business Desk, vous devez installer les logiciels suivants :

  • Microsoft Windows 98, Microsoft Windows Millennium Edition, Microsoft Windows NT 4.0, Windows 2000 Professionnel, Windows 2000 Server ou Windows 2000 Advanced Server

  • Internet Explorer 5.5

  • Microsoft Office Web Components ou Outils clients SQL Server 2000


Installation du client Business Desk

Vous devez installer le client Commerce Server Business Desk pour tous les ordinateurs à partir desquels vous voulez accéder à Business Desk, y compris l’ordinateur exécutant Commerce Server. Une fois que vous avez décompressé un site, vous pouvez installer le client Business Desk en vous connectant à l’adresse URL (Uniform Resource Locator) correspondant à l’application Business Desk.

Les chefs d’entreprise peuvent également télécharger et installer le client Business Desk. Les logiciels suivants doivent être installés sur l’ordinateur client avant d’installer le client Business Desk :

  • Microsoft Internet Explorer 5.5, disponible sur le CD-ROM de Commerce Server 2000.

  • Microsoft Office Web Components ou les Outils clients SQL Server 2000.

Si vous utilisez le système d’exploitation Windows 2000, vous devez disposer des droits d’accès Administrateur pour pouvoir installer le client Business Desk.

Remarques

  • Vous devez disposer d’une connexion à Internet pour installer le client Business Desk.

  • Il est fortement recommandé que votre ordinateur client dispose d’une connexion rapide vers votre application Business Desk.

Pour installer le client Business Desk

  1. Cliquez sur Démarrer, pointez sur Programmes, puis cliquez sur Internet Explorer.

  2. Dans la zone Adresse, tapez l’adresse URL correspondant à votre installation de Business Desk (par exemple, http://<nom_ordinateur>/nom_du_siteBizDesk) et appuyez sur OK.

  3. Dans la boîte de dialogue Rechercher un dossier, sélectionnez le dossier où vous souhaitez installer le client Business Desk, puis cliquez sur OK.

    L’installation du client Business Desk commence. Des conseils de dépannage sont affichés dans la partie supérieure de l’écran Programme d’installation du client Business Desk pour le téléchargement des contrôles Microsoft ActiveX nécessaires à l’installation du client Business Desk.

    Des coches apparaissent dans la partie inférieure de l’écran à mesure que chaque élément est installé. Lorsque les quatre tâches sont effectuées, l’installation de Business Desk est terminée. Un lien permettant d’accéder à Business Desk est affiché en bas de l’écran.

    Remarque

    • Si vous ne pouvez pas télécharger les contrôles ActiveX, suivez les instructions indiquées dans l’écran du programme d’installation du client Business Desk.
  4. Lorsque vous avez terminé l’installation de Business Desk, fermez Internet Explorer.

L’icône correspondant à Business Desk s’affiche à présent sous la forme d’un raccourci sur votre Bureau, et un raccourci Business Desk est ajouté au menu Démarrer.

Pour démarrer Business Desk

  • Double-cliquez sur l’icône Business Desk sur votre Bureau, ou cliquez sur le menu Démarrer, puis sur le raccourci Business Desk.

Remarques

  • Vous pouvez exécuter deux clients Business Desk en même temps pour des sites différents sur votre ordinateur.

  • Vous ne pouvez pas ouvrir deux instances du même client Business Desk pour le même site sur votre ordinateur.

Voir aussi

Configuration matérielle requise

Configuration logicielle requise

Désinstallation du client Business Desk


Désinstallation de Commerce Server

Pour désinstaller Commerce Server 2000, vous devez effectuer les étapes suivantes dans l’ordre indiqué ci-dessous. Des instructions détaillées sont indiquées plus bas pour chacune des étapes :

  1. Supprimer les sites solutions Commerce Server 2000. Effectuez cette étape pour supprimer le site vide ou d’autres sites solutions téléchargés à l’adresse http://www.microsoft.com/commerceserver/solutionsites (en anglais). Cette étape procède à la suppression des sites solutions du dossier Microsoft Commerce Server\PuP Packages, ce qui rend la décompression de ces sites désormais impossible. Elle ne supprime toutefois pas les sites solutions décompressés.

  2. Supprimer la plate-forme de Commerce Server 2000. Effectuez cette étape pour supprimer les objets d’exécution, les outils d’administration, la ressource globale Predictor et la ressource globale Service de publipostage de Commerce Server.

  3. Supprimer le dossier d’installation de Commerce Server 2000.

  4. Supprimer les bases de données Commerce Server 2000, par exemple, la base de données d’administration, la base de données du Data Warehouse, la base de données des profils et la base de données des catalogues.

  5. Supprimer les bases de données du serveur Analysis Commerce Server 2000 (appelé serveur OLAP dans SQL Server 7.0).

  6. Supprimer les répertoires virtuels de site Commerce Server 2000. N’effectuez cette étape que si vous avez décompressé un site.

  7. Supprimer le filtre ISAPI (CSAuthFilter) des services Internet (IIS). Effectuez cette étape uniquement si vous avez défini la création de cookie automatique ou modifié le paramètre Filtre d’authentification sur une application Commerce Server en définissant une valeur autre que celle par défaut définie par les packages de site solution.

  8. Supprimer les dossiers et fichiers de site Commerce Server 2000. N’effectuez cette étape que si vous avez décompressé un site.

  9. Supprimer les travaux de publipostage dans SQL Server. N’effectuez cette étape que si vous avez installé le service de publipostage et créé des travaux de publipostage. Si vous n’effectuez pas cette étape et que vous réinstallez ultérieurement le service de publipostage, les travaux de publipostage de l’installation précédente seront activés.

Une fois que vous avez effectué ces étapes, il est recommandé de redémarrer votre ordinateur.

Les procédures suivantes fournissent des instructions détaillées sur l’exécution de chacune de ces étapes.

Étape 1 : supprimer les sites solutions Commerce Server 2000

  1. Cliquez sur Démarrer, pointez sur Paramètres, puis cliquez sur Panneau de configuration.

  2. Double-cliquez sur Ajout/Suppression de programmes.

  3. Dans la boîte de dialogue Ajout/Suppression de programmes, cliquez sur Sites solutions Commerce Server, puis sur Supprimer.

Étape 2 : supprimer la plate-forme de Commerce Server 2000

  1. Cliquez sur Démarrer, pointez sur Paramètres, puis cliquez sur Panneau de configuration.

  2. Double-cliquez sur Ajout/Suppression de programmes.

  3. Dans la boîte de dialogue Ajout/Suppression de programmes, cliquez sur Commerce Server 2000, puis sur Supprimer.

  4. Cliquez sur Oui pour confirmer la suppression de Commerce Server 2000.

  5. Cliquez sur Oui pour redémarrer votre ordinateur si cela vous est demandé.

Étape 3 : supprimer le dossier d’installation de Commerce Server 2000

  1. Dans l’Explorateur Windows, accédez au dossier où est installé Commerce Server (par exemple, C:\Program Files\Microsoft Commerce Server).

  2. Cliquez avec le bouton droit sur le dossier que vous souhaitez supprimer, puis cliquez sur Supprimer.

  3. Cliquez sur Oui pour confirmer la suppression.

Étape 4 : supprimer les bases de données Commerce Server 2000

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server ou Microsoft SQL Server 7.0 (en fonction de la base de données installée), puis cliquez sur Enterprise Manager.

    Remarque

    • Dans SQL Server Enterprise Manager, assurez-vous que SQL Server est en cours d’exécution (l’icône de la fenêtre de Enterprise Manager affiche une lumière verte). Dans le cas contraire, cliquez avec le bouton droit sur le nom de l’ordinateur SQL Server, puis cliquez sur Démarrer.
  2. Développez les nœuds jusqu’au chemin suivant : \Serveurs Microsoft SQL Server\Groupe SQL Server\<Nom_Serveur_SQL>\Bases de données.

  3. Cliquez avec le bouton droit sur la base de données à supprimer, puis cliquez sur Supprimer.

    Répétez cette étape pour chaque base de données à supprimer.

Étape 5 : supprimer les bases de données du serveur Analysis Commerce Server 2000 (appelé serveur OLAP dans SQL Server 7.0)

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server, sur Analysis Services, puis cliquez sur Analysis Manager.

  2. Développez les nœuds jusqu’au chemin suivant : \Analysis Servers\Nom du serveur SQL.

  3. Cliquez avec le bouton droit sur la base de données à supprimer, puis cliquez sur Supprimer.

  4. Cliquez sur Oui pour confirmer la suppression du dossier pour chacune des bases de données à supprimer.

  5. Répétez les étapes 3 et 4 pour chaque base de données à supprimer.

Étape 6 : supprimer les répertoires virtuels de site Commerce Server 2000

  1. Cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire des services Internet.

  2. Développez les nœuds jusqu’au chemin suivant : \<nom_ordinateur>\<nom_site_Web_IIS>.

  3. Cliquez avec le bouton droit sur les répertoires virtuels que vous souhaitez supprimer (par exemple, Retail ou Supplier), puis cliquez sur Supprimer.

  4. Cliquez sur Oui pour chaque répertoire virtuel à supprimer.

  5. Répétez les étapes 3 et 4 pour chaque répertoire virtuel à supprimer.

Étape 7 : supprimer le filtre ISAPI des services Internet (IIS)

  1. Cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire des services Internet.

  2. Développez les nœuds jusqu’au chemin suivant : \<nom_ordinateur>\<nom_site_Web_IIS>. par exemple, CSServer1\ Site Web par défaut.

  3. Cliquez avec le bouton droit sur le site Web IIS, puis cliquez sur Propriétés.

  4. Sous l’onglet Filtres ISAPI, sélectionnez CSAuthFilter, puis cliquez sur Supprimer.

Étape 8 : supprimer les dossiers et fichiers de site Commerce Server 2000

  1. Dans l’Explorateur Windows, accédez au répertoire (par exemple, C:\Inetpub\wwwroot) où sont installés les fichiers de site.

  2. Cliquez avec le bouton droit sur le dossier que vous souhaitez supprimer, puis cliquez sur Supprimer.

  3. Cliquez sur Oui pour chaque dossier à supprimer.

  4. Répétez les étapes 2 et 3 pour chaque dossier à supprimer.

Étape 9 : supprimer les travaux de publipostage dans SQL Server

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server ou Microsoft SQL Server 7.0 (en fonction de la base de données installée), puis cliquez sur Enterprise Manager.

  2. Développez les nœuds jusqu’au chemin suivant : \Serveurs Microsoft SQL Server\Groupe SQL Server\<Nom_Serveur_SQL>\Gestion\Agent SQL Server\Travaux.

  3. Les travaux de publipostage s’affichent dans le volet droit de SQL Server Enterprise Manager.

  4. Sélectionnez le ou les travaux de publipostage que vous souhaitez supprimer, puis cliquez dans la barre d’outils sur le bouton Supprimer.

Une fois que vous avez effectué ces étapes, il est recommandé de redémarrer votre ordinateur.

Voir aussi

Désinstallation du client Business Desk


Désinstallation du client Business Desk

Pour désinstaller le client Business Desk

  1. Cliquez sur Démarrer, pointez sur Paramètres, puis cliquez sur Panneau de configuration.

  2. Double-cliquez sur Ajout/Suppression de programmes.

  3. Sélectionnez Commerce Server 2000 Business Desk (nom d’application), puis cliquez sur Modifier/Supprimer.

    Le client Business Desk est à présent supprimé de votre ordinateur.

Voir aussi

Installation du client Business Desk

Désinstallation de Commerce Server


Architecture de Commerce Server

Microsoft Commerce Server 2000 fournit une base riche et extensible pour la création d’applications de commerce électronique sophistiquées qui s’intègrent à vos systèmes principaux existants. Étant donné que cette architecture utilise le modèle COM (Component Object Model), il est aisé d’étendre la plate-forme en choisissant parmi le large éventail de solutions tierces intégrées disponibles ou en demandant aux développeurs de votre site de personnaliser les outils Commerce Server pour répondre à vos besoins commerciaux. Dans les deux cas, Commerce Server a été conçu pour créer des solutions de commerce électronique évolutives et personnalisées qui optimisent l’utilisation du site pour les utilisateurs et fournissent aux chefs d’entreprise les moyens de contrôler et d’analyser en temps réel leurs opérations commerciales en ligne. En outre, Commerce Server utilise pleinement les fonctionnalités de Microsoft Windows 2000 (par exemple, il prend en charge le service Microsoft Active Directory) et il est optimisé pour une utilisation avec d’autres serveurs d’entreprise .NET.

Cette section propose une synthèse des principaux composants de l’architecture de Commerce Server.

Cette section contient les rubriques suivantes :

  • Présentation de l’architecture de Commerce Server. Décrit l’architecture de Commerce Server et fournit une figure illustrant ses composants.

  • Commerce Server et serveurs d’entreprise .NET. Décrit les technologies .NET couramment utilisées avec Commerce Server.

  • Architecture de Commerce Server Manager. Décrit les ressources, les sites, les applications et les serveurs Web, ainsi que l’utilisation de chacun d’entre eux dans Commerce Server.

  • Architecture de Business Desk. Décrit les composants de Commerce Server Business Desk et l’infrastructure de Business Desk.


Présentation de l'architecture de Commerce Server

Présentation de l’architecture de Commerce Server

À un niveau élevé, Commerce Server comprend cinq systèmes principaux : le système d’analyse commerciale, le système de catalogue de produits, le système de ciblage, le système de profil et le système de pipeline de traitement des commandes. Chacun de ces systèmes peut être facilement personnalisé par un développeur de site pour répondre à vos besoins commerciaux.

Les chefs d’entreprise utilisent Commerce Server Business Desk avec les systèmes Commerce Server, par exemple pour mettre à jour les catalogues, cibler le contenu pour les utilisateurs, définir des profils pour les utilisateurs et les organisations et analyser l’utilisation et la productivité de leurs sites. Les administrateurs système utilisent Commerce Server Manager pour configurer les ressources système et gérer les applications, les bases de données et les serveurs Web.

Les systèmes Commerce Server, Business Desk, Commerce Server Manager et les bases de données Commerce Server sont préconfigurés et compressés dans les sites solutions, que les développeurs de site peuvent utiliser comme base pour la création d’un site personnalisé et l’intégration d’applications tierces.

La figure suivante donne une vue d’ensemble de l’architecture de Commerce Server.

Figure fournissant une vue d'ensemble de Commerce Server
Sites solutions
Commerce Server Manager
Business Desk
Système d'analyse commerciale
Système de ciblage
Système de catalogue de produits
Système de profil
Systèmes de pipeline de traitement commercial
SQL Server
SQL Server
SQL Server
ODBC
LDAP
Commerce Server Data Warehouse
Catalogues, Campagnes marketing, Commandes
Profils
Autres applications


Commerce Server et serveurs d'entreprise .NET

Commerce Server et serveurs d’entreprise .NET

Bien que Commerce Server 2000 soit un produit autonome, il a été conçu pour fonctionner sans problème avec d’autres produits qui, ensemble, constituent les serveurs d’entreprise .NET. Les serveurs d’entreprise .NET, famille complète d’applications serveur Microsoft, permettent de créer, de déployer et de gérer des solutions Web évolutives et intégrées, avec une mise sur le marché très rapide. Vous pouvez utiliser l’architecture des serveurs d’entreprise .NET pour créer des systèmes qui intègrent les sites Commerce Server au reste de votre système de gestion des informations. Si vous recherchez ce niveau d’intégration, vous pouvez implémenter une ou plusieurs des technologies .NET conjointement avec Commerce Server.

Certaines des technologies .NET couramment utilisées avec Commerce Server sont les suivantes :

  • Microsoft BizTalk Server 2000

  • Microsoft SQL Server 2000

  • Microsoft Application Center 2000

  • Services COM+ (extension du modèle COM)

  • Microsoft Host Integration Server 2000

BizTalk Server

Microsoft BizTalk Server 2000 fournit une solution complète d’échange de documents électroniques d’entreprise à entreprise et d’intégration de processus commerciaux. BizTalk Server fonctionne comme une passerelle pour documents commerciaux entre les partenaires commerciaux, et gère les services de traduction des données, de cryptage, de signature numérique et de suivi des documents pour de nombreux mécanismes de transport.

Vous pouvez intégrer Commerce Server et BizTalk Server, par exemple pour échanger des catalogues de produits publiés sur votre site Web ou pour envoyer des commandes entrées sur votre site Web à des fournisseurs afin qu’ils les exécutent. Pour plus d’informations sur l’intégration de Commerce Server et de BizTalk Server, consultez Integrating with BizTalk Server (en anglais) et Utilisation de BizTalk Server et de Commerce Server.

SQL Server

Microsoft SQL Server 2000 fournit une base de données évolutive qui allie la simplicité d’utilisation à des utilitaires complexes d’analyse et de stockage des données. SQL Server comprend une riche interface utilisateur graphique, ainsi qu’un environnement de développement complet pour la création d’applications pilotées par les données.

Commerce Server bénéficie des fonctionnalités de SQL Server en matière d’analyse et de stockage des données dans plusieurs domaines clés. Data Warehouse de Commerce Server, par exemple, utilise les services de transformation de données (DTS, Data Transformation Services) de SQL Server pour convertir les données stockées dans les bases de données SQL Server dans un format utilisé par les ressources de Commerce Server.

Application Center

Microsoft Application Center 2000 est un environnement de gestion et de déploiement à haute disponibilité pour les applications Web créées sur Windows 2000. Il étend l’ensemble principal des services d’applications Web présents dans Microsoft Windows 2000 (IIS 5.0, ASP (Active Server Pages), COM+, Message Queuing), et fournit une série d’utilitaires de contrôle, de test et de diagnostic non disponibles dans le système d’exploitation principal. Application Center s’adresse aux clients qui ont des besoins finaux importants en matière d’évolutivité et de disponibilité.

Vous pouvez utiliser Application Center avec Commerce Server pour effectuer des déploiements, des mises à jour incrémentielles de votre site Web et des rollbacks. Pour plus d’informations sur l’utilisation de Application Center avec Commerce Server, consultez Déploiement de votre site.

Services COM+

Les services Microsoft COM+ (services de composants comprenant MTS) constituent un modèle de programmation unifié qui est utilisé pour créer des applications à base de composants et réparties sur trois niveaux. COM+ est créé sur le modèle COM (Component Object Model) de Microsoft, grâce à l’association de COM et des fonctionnalités transactionnelles de Microsoft Transaction Server (MTS). Il étend l’environnement de programmation en ajoutant un vaste ensemble de fonctionnalités pour permettre aux développeurs de site de créer, de déployer et d’administrer plus facilement des solutions fortement évolutives et distribuées, à base de composants.

Host Integration Server

Microsoft Host Integration Server 2000 est une plate-forme d’intégration complète qui prend en charge les technologies Internet, intranet et client/serveur tout en préservant vos investissements pour les systèmes existants. En considérant que l’accès aux données existantes constitue uniquement la première étape de l’exploitation des ressources informatiques d’une entreprise, Host Integration Server fournit aux développeurs de l’entreprise les moyens de créer des applications distribuées qui utilisent au maximum les ressources informatiques client/serveur (ou Web) et les informations de l’hôte.

Voir aussi

Integrating with BizTalk Server (en anglais)

Utilisation de BizTalk Server et de Commerce Server

Déploiement de votre site

Programming with Commerce Server Objects (en anglais)


Architecture de Commerce Server Manager

Commerce Server Manager est un outil qui permet de gérer et de configurer les ressources, sites, applications et serveurs Web de Commerce Server 2000. Microsoft Management Console (MMC), une interface Windows incluse dans Microsoft Windows 2000, héberge Commerce Server Manager. Cette section décrit chaque objet Commerce Server Manager et l’interaction entre ces objets.

La figure suivante montre la console Commerce Server Manager et identifie ses composantes.

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Cette section contient les rubriques suivantes :

  • Ressources

  • Sites

  • Applications

  • Serveurs Web

  • Utilisation de Commerce Server et IIS


Ressources

Une ressource est une entité qui fournit une fonctionnalité aux applications d’un site Commerce Server.

Une ressource se compose d’un ou de plusieurs objets COM utilisés sur les pages Web d’une application pour accéder à la fonctionnalité de la ressource. Les ressources comprennent des propriétés qui sont stockées dans la base de données d’administration. Ces propriétés sont accessibles et modifiables à l’aide de Commerce Server Manager (et modifiables par programmation à l’aide des objets Config).

Il existe deux types de ressources : les ressources globales et les ressources de site. Les développeurs de sociétés tierces peuvent créer des ressources globales et des ressources de site personnalisées à utiliser avec Commerce Server. Pour plus d’informations, consultez Integrating Custom Resources (en anglais).

Ressources globales

Les ressources globales sont à la disposition de tous les sites.

Certaines ressources globales sont créées par le programme d’installation de Commerce Server ; d’autres sont créées lors de la décompression d’un site à l’aide du Gestionnaire de package de site Commerce Server. Seules les ressources ayant des propriétés de niveau global s’affichent dans Commerce Server Manager sous le nœud Ressources globales. Les sites qui utilisent une ressource globale utilisent également les propriétés affectées à cette ressource globale.

Le tableau suivant répertorie et décrit les ressources globales incluses dans Commerce Server.

Ressource globale | Description | Installée par
Service de publipostage de Commerce Server (également un service Windows 2000) | Envoie des messages électroniques personnalisés ou des messages non personnalisés vers de grands groupes de destinataires. | Programme d’installation de Commerce Server
Predictor (également un service Windows 2000) | Ajoute des fonctionnalités de prévision à votre site Web et crée des modèles d’analyse complexes que vous pouvez utiliser pour identifier des segments de population et les tendances des utilisateurs. | Programme d’installation de Commerce Server
Data Warehouse | Importe et gère les données d’un site Web à partir de fichiers journaux Web, de bases de données Commerce Server et d’autres sources de données. | Gestionnaire de package de site Commerce Server
Authentification de Commerce Server | Configure la méthode d’authentification et d’identification de votre site Commerce Server. | Gestionnaire de package de site Commerce Server
Profils | Crée des sources de données pour le stockage des données de profil ; crée et stocke des propriétés et des définitions de profil. | Gestionnaire de package de site Commerce Server

Ressources de site

Les ressources de site fournissent des fonctionnalités à un site spécifique.

Dans Commerce Server Manager, les pointeurs de ressource globale et les ressources de site s’affichent sous un site. Vous configurez les propriétés d’une ressource de site au niveau du site. Vous configurez les pointeurs de ressource globale pour qu’ils pointent vers la ressource globale propre à l’ensemble des sites Commerce Server.

Une ressource peut posséder toutes ses propriétés au niveau du site ou au niveau global, mais elle ne peut pas posséder de propriétés aux deux endroits en même temps.

Le tableau suivant répertorie et décrit les ressources de site incluses dans Commerce Server.

Ressource de site | Description
Configuration par défaut de l’application | Stocke les propriétés que vous utilisez pour configurer un site, comme les paramètres régionaux et symboles de devise, les options de facturation et de paiement, les options de confidentialité, l’unité de mesure pour le volume et les options d’intégration avec BizTalk Server.
Campagnes marketing | Assure la connexion à la base de données qui stocke les données sur les campagnes marketing (publicités, remises et publipostage).
Catalogue de produits | Assure la connexion à la base de données qui stocke le schéma du catalogue et les données sur les produits.
Transactions | Assure la connexion à la base de données qui stocke les données sur les paniers et les commandes.
Configuration de la transaction | Assure la connexion à la base de données qui stocke les données sur les taux et les modes de livraison, les taux des taxes, les codes de département et de région et les codes de statut des commandes.

Voir aussi

Gestion des ressources Commerce Server

Integrating Custom Resources (en anglais)

Integrating a Custom Snap-in Extension (en anglais)

Déploiement de votre site


Sites

Un site est un ensemble d’applications ASP qui utilisent des objets COM (Component Object Model) Commerce Server, lesquels utilisent et modifient des ressources. Un site permet d’administrer l’ensemble des applications qu’il contient.

Un site comprend généralement au moins deux applications : une application dans laquelle les utilisateurs naviguent pour consulter votre boutique en ligne, et une autre utilisée par les chefs d’entreprise pour accéder à Commerce Server Business Desk. En outre, un site peut comprendre d’autres applications. Par exemple, un site pourrait comprendre www.alpineskihouse.com, www.alpineskihouse.com/equipment, www.alpineskihouse.com/clothing et www.alpineskihouse.com/BusinessDesk. Toutes ces applications peuvent être distribuées via de nombreux serveurs.

Les sites utilisent à la fois des ressources globales, qui sont partagées sur plusieurs sites, et des ressources de site qui sont définies de manière explicite pour le site.

À partir d’un nœud de site dans Commerce Server Manager, vous pouvez compresser un site, puis ajouter ou supprimer des ressources.

Voir aussi

Gestion des sites Commerce Server

Déploiement de votre site

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs

Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs


Applications

Une application Commerce Server 2000 est un site Web. C’est une représentation logique d’une application dans IIS (Internet Information Services) 5.0 ; elle apparaît à la fois dans Commerce Server Manager et les arborescences d’IIS. Dans la console IIS, une application se situe soit au niveau du répertoire de base du site Web, soit au niveau d’un sous-répertoire du site Web.

Une application représente l’adresse Web à laquelle accède un client Web. Lorsque vous ajoutez une application à Commerce Server, la base de données d’administration est mise à jour à partir des données de configuration de l’application. Lorsque vous ajoutez un serveur Web à l’application, les fichiers ASP (Active Server Pages) sont installés sur l’ordinateur qui héberge le serveur Web.

Lorsqu’un site Commerce Server est décompressé, il installe généralement deux applications : une application pour le site Web auquel accèdent les utilisateurs pour parcourir et acheter des produits, et une autre pour Commerce Server Business Desk, qui est utilisée pour gérer le site. Une application ne peut utiliser que les ressources du site dans lequel elle se trouve.

Une application comprend ses propres serveurs Web, lesquels fournissent le contenu des pages ASP pour le site Web. Une application peut comprendre plusieurs serveurs Web ; elle inclut toujours au moins un serveur Web. Vous pouvez configurer un site au niveau de la racine d’un site Web IIS ou au niveau d’un répertoire virtuel n’importe où sous la racine.

Vous pouvez effectuer les fonctions suivantes à partir des consoles IIS et Commerce Server Manager :

  • À partir du nœud d’application dans le composant logiciel enfichable d’IIS, vous pouvez définir toutes les propriétés disponibles au niveau du répertoire virtuel, ainsi que les propriétés de répertoire virtuel, les documents par défaut, la sécurité du répertoire, les en-têtes HTTP (Hypertext Transfer Protocol) et les messages d’erreurs personnalisées. Vous pouvez également configurer des extensions serveur Microsoft FrontPage, et renommer ou supprimer l’application.

  • À partir du nœud d’application dans Commerce Server Manager, vous pouvez définir le nom d’hôte non sécurisé et sécurisé ainsi que le chemin d’accès à l’application IIS, activer HTTPS, activer la création de cookie automatique, activer un filtre d’authentification et configurer les paramètres communs à tous les serveurs Web de l’application.

Pour avoir des informations détaillées sur l’héritage des propriétés d’IIS vers Commerce Server, consultez Utilisation de Commerce Server et IIS.

Voir aussi

Gestion des applications et des serveurs Web Commerce Server

Déploiement de votre site

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs

Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs


Serveurs Web

Dans Commerce Server, un serveur Web est un ordinateur où Internet Information Services (IIS) 5.0 est installé. Pour utiliser un serveur Web avec Commerce Server 2000, vous devez installer Commerce Server sur le même ordinateur que IIS.

Dans Commerce Server, un serveur Web est associé à une ou plusieurs applications ; par conséquent, différentes applications peuvent partager le même serveur Web. Le serveur Web contient les fichiers ASP et les sous-dossiers de l’application. Une application peut comporter plusieurs serveurs Web représentant, tous ensemble, une Web farm.

Pour ajouter des fichiers ASP à un serveur Web, vous devez utiliser le Gestionnaire de package de site Commerce Server pour décompresser le serveur Web. L’objet serveur Web Commerce est ajouté à l’application lorsque la décompression est terminée. Dans Commerce Server Manager, un objet serveur Web est exposé sous l’application associée.

L’objet serveur Web contient les propriétés nécessaires au Data Warehouse pour importer les fichiers journaux. À partir du nœud de serveur Web dans Commerce Server Manager, vous pouvez afficher ou modifier les propriétés suivantes.

Propriété | Description
Nom de serveur | Nom de l’ordinateur sur lequel est installé IIS.
Adresse IP | Adresse IP (Internet Protocol) du site Web IIS de l’application.
Chemin du fichier journal | Chemin d’accès où le site Web IIS de l’application doit écrire les événements, par exemple, C:\Winnt\System32\Log1.
Durée du fichier journal | Durée de conservation du fichier journal par le site Web IIS de l’application avant que celui-ci ne remplace les données.

Lorsqu’un serveur Web est ajouté, ces propriétés sont automatiquement remplies à partir d’IIS 5.0 dans la base de données d’administration de Commerce Server.

Commerce Server prend en charge les serveurs Web qui n’exécutent pas IIS et ne comportent pas de composants Commerce Server. Cela vous permet de rendre les fichiers journaux du serveur Web disponibles pour l’importation par Data Warehouse. Pour plus d’informations, consultez Ajout d’une application et d’un serveur Web non-Commerce Server.

Il est possible de faire partager un serveur Web par différentes applications. Chaque application possède une adresse URL unique ; les adresses URL uniques peuvent être servies par un site Web IIS unique. Par exemple, www.microsoft.com et www.microsoft.com/commerceserver peuvent être servies par le même site Web IIS.

Si vous gérez une Web farm, vous devez répliquer vos serveurs Web. Il est recommandé d’utiliser Application Center Server 2000 ou un autre produit pour effectuer la réplication de contenu.

Voir aussi

Utilisation de Commerce Server et IIS

Déploiement de votre site

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs

Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs


Utilisation de Commerce Server et IIS

L’administrateur système, qui est responsable de l’administration quotidienne de Commerce Server 2000, est généralement responsable également de l’administration des services Internet Information Services (IIS) 5.0.

Bien que Commerce Server s’exécute au-dessus d’IIS, la relation entre les objets d’IIS et de Commerce Server n’est pas strictement hiérarchique. L’ensemble des propriétés qui affectent un site Commerce Server comprend des propriétés qui sont :

  • définies uniquement au niveau d’IIS ;

  • définies uniquement dans Commerce Server, indépendamment d’IIS ;

  • héritées d’IIS.

Le composant logiciel enfichable d’IIS vous permet de gérer les autorisations d’accès, la sécurité, les performances, les répertoires et les chemins d’accès de sites Web, l’identification des noms de sites Web, les adresses IP (Internet Protocol) et les ports.

Commerce Server Manager vous permet d’effectuer les tâches suivantes :

  • Gérer des ressources Commerce Server globales et de site, configurer des propriétés spécifiques à Commerce Server, configurer les chaînes de connexion de base de données pour des ressources, ajouter et supprimer des serveurs Web d’une application.

  • Au niveau application de Commerce Server, vous pouvez spécifier le chemin d’une application IIS, le site Web IIS, les noms d’hôtes non sécurisés et sécurisés, le port IP et le port IP sécurisé. Vous pouvez également configurer les propriétés permettant d’activer HTTPS, d’activer la création de cookie automatique et de sélectionner un filtre d’authentification. Ces propriétés s’appliquent à tous les serveurs Web utilisés par l’application.

    Lorsque vous modifiez les propriétés de port dans Commerce Server, celles-ci ne sont pas automatiquement modifiées dans IIS. Les propriétés de port suivantes dans IIS sont celles qui sont effectivement utilisées :

    Au niveau de l’application

    • Port TCP (Transmission Control Protocol)

    • Port SSL (Secure Sockets Layer)

    Sur chaque serveur Web

    • Adresse IP (Internet Protocol)

    • Chemin du fichier journal

    • Durée du fichier journal

    Si vous modifiez les propriétés de port dans IIS, vous devez également les modifier dans Commerce Server.

    Les propriétés de serveur Web sont héritées d’IIS et stockées dans la base de données d’administration pour en simplifier l’accès. Si les propriétés d’IIS changent, vous devez synchroniser la base de données d’administration en mettant à jour manuellement les nouvelles valeurs, ou en cliquant, dans la boîte de dialogue Propriétés de <Serveur>/<Application>, sur l’onglet Serveurs Web, puis sur le bouton Synchroniser les valeurs. Pour plus d’informations, consultez Configuration d’une application.

    Lorsque vous cliquez sur le bouton Synchroniser les valeurs, Commerce Server synchronise les propriétés au niveau de l’application ainsi que les propriétés de tous les objets de serveur Web sous-jacents à l’application. Pour les propriétés situées au niveau de l’application (port TCP et port SSL), Commerce Server lit les valeurs du premier serveur Web. Il considère que tous les serveurs Web ont été configurés de la même façon, ce qui est impératif pour le bon fonctionnement d’une Web farm.

  • Au niveau du serveur Web de Commerce Server, vous pouvez afficher et modifier les propriétés de l’adresse IP, du chemin du fichier journal et de la durée du fichier journal.

La figure suivante montre les objets situés sur les arborescences des consoles IIS et Commerce Server Manager, ainsi que les relations existant entre ces objets.

Figure illustrant les relations entre les objets dans IIS et Commerce Server Manager

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Voir aussi

Administration de Commerce Server

Ajout d’une application et d’un serveur Web non-Commerce Server

Déploiement de votre site

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs

Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs


Architecture de Business Desk

Commerce Server Business Desk est un outil de gestion de site Web inclus dans Microsoft Commerce Server 2000. Business Desk héberge des modules de gestion commerciale qui vous permettent de configurer, de gérer et d’analyser vos sites. Par exemple, les modules Business Desk permettent de mettre à jour les tarifs de vos catalogues, de cibler de nouvelles publicités en fonction d’utilisateurs spécifiques, et d’exécuter des rapports pour mesurer l’impact de ces modifications sur la productivité du site.

Business Desk comporte deux parties : l’application Business Desk et le client Business Desk.

  • Application Business Desk. Outil de gestion permettant de configurer, de gérer et d’analyser votre site. Après avoir installé Commerce Server, vous pouvez décompresser un site solution pour installer une application Business Desk. Business Desk est accessible depuis n’importe quel ordinateur exécutant Microsoft Internet Explorer 5.5, ce qui permet un accès à distance sécurisé.

  • Client Business Desk. Logiciel client installé localement sur votre ordinateur, qui fournit l’interface avec l’application Business Desk. Lorsque vous accédez à l’application Business Desk pour la première fois (via une adresse URL), le client Business Desk est téléchargé et installé sur votre ordinateur. Il est préférable que l’ordinateur qui exécute le client Business Desk dispose d’une connexion haute vitesse avec l’application Business Desk.

La figure suivante montre comment utiliser les clients Business Desk pour accéder à distance à l’application Business Desk afin de mettre à jour un site Web.

Client
Business Desk
Client
Business Desk
Client
Business Desk
Commerce Server Data Center
Application
Business Desk
Votre
site Web
Londres
Tokyo
Paris
Londres
Internet
Figure illustrant la façon dont un client Business Desk accède à l'application Business Desk

Cette section contient les rubriques suivantes :

  • Composants Business Desk

  • Mise à jour de votre site Web à l’aide de Business Desk

  • Sécurisation des modules Business Desk

  • Personnalisation de Business Desk

  • Infrastructure de Business Desk


Composants Business Desk

Les modules, principaux composants de Commerce Server Business Desk, permettent de gérer les différents aspects de votre site Web. Le tableau suivant répertorie les modules Business Desk et les catégories qui les contiennent, et décrit les tâches qu’ils permettent d’effectuer.

Catégorie | Description
Analyse Rapports Analyse de rapports Identification de segments | Exécutez et consultez les rapports représentant l’activité de votre site, et effectuez une analyse prédictive. Les modules Analyse sont fournis avec un grand nombre de rapports traitant divers aspects de votre site.
Campagnes marketing Gestionnaire de campagnes Gestionnaire de listes Expressions de la campagne marketing Groupe cible Tables de références Publier les campagnes marketing | Créez et planifiez des campagnes marketing. Vous pouvez ajouter des informations sur les clients, gérer des campagnes marketing et des éléments de la campagne, par exemple, en créant des bannières publicitaires, des travaux de publipostage, et des remises sur les produits. Chaque élément de la campagne peut être ciblé en fonction d’utilisateurs spécifiques, ce qui permet de créer un contenu à découvrir par l’utilisateur extrêmement personnalisé.
Catalogues Définition de catalogue Éditeur de catalogue Groupes de catalogues | Importez ou créez des catalogues, ajoutez et appliquez une tarification aux produits. Créez des catalogues personnalisés contenant des prix spéciaux, qui ne s’affichent que pour certains utilisateurs, par exemple, les membres d’un club.
Commandes Gestionnaire de panier Codes de données Statut de la commande Modes de livraison Taux des taxes Publier les transactions | Recherchez des informations sur les commandes existantes dans la base de données Commerce Server, et ajoutez, supprimez, approuvez ou modifiez les informations sur les commandes. Ajoutez, supprimez ou modifiez les frais de livraison et les taux de taxes.
Utilisateurs Utilisateurs Organisations Définition de profil Éditeur du glossaire du site Publier les profils | Créez et modifiez des utilisateurs, des organisations et des profils. Créez et modifiez les entrées du glossaire du site.

Voir aussi

Utilisation de Business Desk


Mise à jour de votre site Web à l'aide de Business Desk

Mise à jour de votre site Web à l’aide de Business Desk

La figure suivante montre comment utiliser les modules Commerce Server Business Desk pour mettre à jour votre site Web. Par exemple, les données du site sont collectées sur votre site Web puis importées vers Data Warehouse, ensuite, vous pouvez exécuter les rapports d’analyse. Les modules Campagnes marketing permettent de créer et d’afficher les publicités, remises et promotions. Les modules Catalogues permettent de mettre à jour les informations de votre catalogue. Les modules Commandes permettent de rechercher les commandes des utilisateurs. Les modules Utilisateurs permettent de réinitialiser les mots de passe des utilisateurs, de modifier d’autres informations du profil utilisateur, et de spécifier les données de profil à collecter.

Figure illustrant la mise à jour de votre site Web par les modules Business Desk
Utilisateurs
Commandes
Campagnes marketing
Commandes
Profils
Commerce Server
Data
Warehouse
Enregistrer les
utilisateurs
Business Desk
Bases de données Commerce Server
Votre site Web
Afficher les catalogues
Catalogues
Catalogues
Campagnes marketing
Analyse
Enregistrer
l'activité
Prendre les
commandes
Afficher les
publicités


Sécurisation des modules Business Desk

Commerce Server Business Desk fournit une sécurité basée sur les rôles : les utilisateurs Business Desk ne peuvent afficher et gérer que les modules autorisés. Par exemple, si un groupe d’utilisateurs n’utilise pas le module Définition de catalogue, vous pouvez empêcher ce module de s’afficher dans le volet de navigation lorsque ces utilisateurs accèdent à Business Desk. Une fois que le développeur de site a défini les limites d’accès utilisateur à un module, l’utilisateur qui ne dispose pas des autorisations nécessaires pour ce module ne peut pas le voir s’afficher.

Remarquez que la limitation de l’accès à des modules spécifiques de Business Desk n’est pas destinée à empêcher les violations de sécurité. En fait, elle empêche les utilisateurs de voir les modules Business Desk situés en dehors de leurs zones de responsabilité.

Les administrateurs système implémentent la sécurité. Pour sécuriser un module Business Desk, l’administrateur système doit définir des listes de contrôle d’accès Windows pour les fichiers ASP (Active Server Pages) du module. Pour plus d’informations, consultez Security (en anglais).

Remarques

  • Si vous sécurisez un des modules suivants, tous les modules sont sécurisés par défaut : Publier les profils, Publier les campagnes marketing et Publier les transactions.

  • Cette fonctionnalité ne limite pas l’accès à des données spécifiques dans Business Desk. Pour limiter l’accès aux données visibles par un utilisateur dans Business Desk, contactez votre administrateur système ou votre développeur de site pour implémenter une sécurité au niveau de la base de données. Par exemple, pour empêcher un utilisateur Business Desk de modifier un catalogue spécifique, votre développeur de site peut implémenter ce type de sécurité.

  • Si un utilisateur se connecte à Business Desk à partir d’Internet via une session non authentifiée, Internet Explorer invite à entrer le nom d’utilisateur, le mot de passe et le nom du domaine afin d’authentifier l’utilisateur par rapport à l’application Business Desk.

Voir aussi

Limitation de l’accès aux modules de Business Desk

Building Business Desk Modules (en anglais)


Personnalisation de Business Desk

Les développeurs de site et les administrateurs système peuvent personnaliser Commerce Server Business Desk pour répondre aux besoins de l’entreprise. Par exemple, un développeur de site peut ajouter ou supprimer des fonctionnalités, intégrer Business Desk à une application existante, ou modifier la manière dont Business Desk exécute certaines fonctions spécifiques.

Le tableau suivant décrit plusieurs domaines dans lesquels vous pouvez coordonner la personnalisation avec votre administrateur système ou votre développeur de site.

Composant Business Desk Personnalisation et coordination
Analyse : module Rapports
  • Votre développeur de site peut créer des rapports ou les personnaliser en fonction des besoins de l’entreprise. Vous pouvez également créer des rapports personnalisés à partir des rapports dynamiques existants du module Rapports de Business Desk.

  • L’administrateur système est responsable de l’importation des données dans Data Warehouse à intervalles réguliers. Une fois les données importées dans Data Warehouse, vous pouvez les utiliser pour exécuter des rapports, et les analyser.

  • L’administrateur système peut personnaliser les données des fichiers journaux Web qui doivent être importées dans Data Warehouse, et établir les définitions d’utilisateurs et de visites affectant les résultats des rapports exécutés.
Analyse : module Identification de segments
  • Pour afficher les modèles de segments, utilisez le module Identification de segments dans Business Desk. Votre administrateur système doit construire les modèles de segments.

  • Pour afficher les modèles Predictor, utilisez Predictor Model Browser dans Commerce Server Manager. Contactez votre administrateur système pour obtenir des informations sur l’affichage des modèles Predictor.
Utilisateurs
  • L’administrateur système crée des définitions de profils à l’aide de Commerce Server Manager, puis ajoute des sources de données, des membres de données et des objets de données. Lorsque vous utilisez Business Desk pour ajouter des propriétés de profil à la définition de profil, vous sélectionnez la source de données, le membre de données et les objets de données nécessaires.
Paramètres système généraux
  • L’administrateur système configure les paramètres système tels que les unités de mesure, les devises, les options de paiement, ainsi que les options liées à l’inscription et à la sécurité du site Web. Vous devez coordonner les modifications apportées à ces options ou à ces paramètres avec l’administrateur système.

Voir aussi

Infrastructure de Business Desk

Building Business Desk Modules (en anglais)


Infrastructure de Business Desk

Commerce Server Business Desk a une infrastructure d’interface utilisateur implémentée essentiellement sous forme de pages ASP (Active Server Pages) contenant du langage DHTML (Dynamic Hypertext Markup Language). Cette infrastructure fournit un environnement structuré dans lequel les développeurs tiers peuvent facilement étendre les fonctionnalités de gestion fournies par Commerce Server 2000. Cet environnement inclut une navigation structurée entre les pages, des mécanismes standard pour la manipulation des données, des routines utilitaires partagées et une multitude de conventions permettant de garantir la cohérence des contenus à découvrir par l’utilisateur.

Par défaut, à chaque site Web Commerce Server est associée une instance distincte de Business Desk. Bien que Business Desk partage le même ensemble de ressources Commerce Server que le site Web, telles que diverses bases de données, il existe en tant qu’application ASP distincte, avec une structure de répertoires et une racine virtuelle qui lui sont propres.

L’infrastructure de Commerce Server Business Desk fournit l’environnement dans lequel les modules Business Desk sont exécutés. La figure suivante montre comment un ensemble de fichiers de configuration fournit deux types d’informations importants nécessaires pour que l’infrastructure de Business Desk puisse prendre en charge la navigation. Le premier type d’informations détermine l’ensemble de modules classés par catégorie qui sera accessible dans Business Desk. Le second type d’informations permet de créer et de gérer la barre des tâches, qui sera peut-être unique pour chaque page d’action.

Fichier de configuration maître
Fichier de
configuration
de module
Fichier de
configuration
de module
Fichier de
configuration
de module
Menus et boutons
de barre d'outils
Volet de navigation
Analyse
Campagnes marketing
Catalogues
Commandes
Utilisateurs
Nav
Composant HTML ListSheet
Composant HTML DynamicTable
Composants HTML EditField individuels
Module 1
Module 1
Module 1
?
?
?
?
Figure fournissant une vue d'ensemble de Commerce Server

Cette figure montre également que les modules sont généralement conçus de telle façon que leur page d’action initiale soit une page de liste, à partir de laquelle les pages de modification sont accessibles à l’aide de boutons de tâche. Elle montre également la conception standard dans laquelle un utilisateur doit revenir à la page de liste initiale pour pouvoir passer dans un module différent.

L’infrastructure de Business Desk a les caractéristiques suivantes :

  • Le fichier de configuration maître, associé à un ensemble de fichiers de configuration de module, fournit les informations nécessaires à l’infrastructure de Business Desk pour gérer à la fois le volet de navigation et la barre des tâches affichée sur chaque page d’action.

  • Les pages d’action qui affichent des listes en lecture seule, appelées pages de liste, sont toujours affichées avec le volet de navigation. Cela signifie que pour passer dans un autre module, l’utilisateur doit partir d’une page de liste et non d’une page de modification. Les pages de liste sont en lecture seule (à l’exception des tâches de suppression), ce qui signifie qu’il est généralement inutile d’envoyer aux utilisateurs un message d’avertissement relatif à la sortie du module sans enregistrement des modifications apportées aux données.

  • En règle générale, la navigation entre les pages d’action doit s’effectuer à l’aide des boutons de la barre des tâches. Ce mécanisme permet à l’infrastructure de Business Desk de fournir des services qui interviennent pendant la transition entre les pages d’action. Vous devez limiter la création de liens directs entre pages d’action et boutons sur une page.

Voir aussi

Building Business Desk Modules (en anglais)


Concepts de Commerce Server

Pour optimiser votre utilisation de Microsoft Commerce Server 2000, il est important de bien comprendre ses concepts sous-jacents.

Cette section contient les rubriques suivantes :

  • Cycle de gestion d’un site. Décrit la manière dont vous pouvez utiliser Commerce Server pour collecter en permanence des données sur l’activité des utilisateurs de votre site Web, analyser ces données, puis utiliser les résultats des analyses pour mettre à jour votre site.

  • Rôles et responsabilités. Décrit la manière dont l’architecture de Commerce Server vise les compétences de trois groupes clés : les développeurs de site Web, les administrateurs système et les chefs d’entreprise. Cette rubrique répertorie également les interfaces et les outils disponibles pour chaque groupe.

  • Profils. Décrit les profils Commerce Server, leur mode de création et leur utilisation dans le cadre de la gestion d’un site Web.

  • Listes d’utilisateurs et listes de publipostage. Décrit les listes d’utilisateurs et les listes de publipostage de Commerce Server, et leur utilisation dans le cadre de la gestion d’un site Web.

  • Cookies et authentification. Décrit les cookies et leur utilisation par Commerce Server.

  • Catalogues : produits à vendre. Décrit les catalogues Commerce Server, leur utilisation dans le cadre de la gestion d’un site Web, leur structure, ainsi que leur mode de remplissage à l’aide des données produit.

  • Data Warehouse. Décrit Data Warehouse de Commerce Server, son utilisation dans le cadre de la gestion d’un site Web et son mode de remplissage à l’aide de données.

  • Prévision et extraction de données. Décrit les modèles d’analyse Commerce Server, leur mode de création et leur utilisation dans le cadre de la gestion d’un site Web.

  • Pipelines. Décrit les pipelines Commerce Server et leur utilisation.

  • Ciblage et personnalisation. Décrit le ciblage et la personnalisation, ainsi que leur utilisation dans Commerce Server.

  • Campagnes marketing : publicités, remises et publipostage. Décrit les campagnes marketing Commerce Server, leur utilisation dans le cadre de la gestion d’un site Web, leur structure, ainsi que leur mode de traitement.


Cycle de gestion d'un site

Cycle de gestion d’un site

Les sites Web de commerce électronique sont des biens que les chefs d’entreprise doivent continuellement analyser et améliorer pour que leurs sites restent compétitifs. Ces chefs d’entreprise doivent analyser rapidement l’activité des utilisateurs pour mesurer l’efficacité de leurs sites, puis utiliser les résultats des analyses pour les adapter en conséquence. Ce processus d’analyse et d’amélioration permanentes d’un site définit le cycle de gestion d’un site de commerce électronique.

Figure illustrant les étapes du cycle de gestion d'un site
Utilisateurs et clients
Chef d'entreprise
Développeur de site
Analyse
Amélioration
Déploiement
Site Web

Commerce Server 2000 propose un ensemble de fonctionnalités permettant de gérer et d’accroître l’efficacité de votre site. Avec Commerce Server, vous pouvez :

  • Collecter et stocker des données utilisateur

  • Analyser des données utilisateur

  • Mettre à jour votre site

  • Implémentation du cycle - Un travail d’équipe

En analysant les données sur l’activité des utilisateurs de votre site, vous pouvez prendre des décisions visant à améliorer votre site et à atteindre vos objectifs commerciaux.

Collecter et stocker des données utilisateur

Vous pouvez collecter trois types de données sur les utilisateurs qui visitent votre site :

  • Données de profil explicites. Elles s’obtiennent lorsque les utilisateurs fournissent des informations personnelles par l’intermédiaire des formulaires, enquêtes et sondages en ligne.

  • Historique des clics. Il s’obtient lorsque les utilisateurs visitent votre site et cliquent sur les liens permettant d’accéder aux pages de celui-ci. L’historique des clics comprend la durée passée par l’utilisateur à visiter votre site, les adresses URL de référence, les clics de publicité, la portée de la publicité, la fréquence des clics, ainsi que le chemin d’accès emprunté par l’utilisateur pour la visite du site, y compris les pages d’entrée et de sortie. Par exemple, vous pouvez collecter les données de navigation pour une session utilisateur précise, durant laquelle l’utilisateur a passé 17 minutes sur le site, a consulté les descriptions de trois produits du catalogue, a ajouté deux d’entre eux à son panier, a cliqué sur une publicité promotionnelle, puis a ajouté l’article en promotion à son panier.

  • Historique des transactions. Il s’obtient lorsque les utilisateurs achètent des produits. L’historique des transactions enregistre les paniers et les commandes. Par exemple, l’historique des transactions peut comporter le nom d'utilisateur, l’adresse de livraison, la date et l’heure, le produit acheté et la valeur totale de la commande.

Ces données sont recueillies dans les fichiers journaux du serveur Web et les bases de données Commerce Server. À intervalles réguliers, l’administrateur système importe les données des fichiers journaux du serveur Web et les bases de données Commerce Server dans Data Warehouse de Commerce Server. Data Warehouse comprend une base de données centrale qui contient un volume très important de données collectées à partir de plusieurs sources de données, telles que les fichiers journaux de serveur Web, les bases de données Commerce Server, ainsi que toutes les autres sources de données que vous spécifiez.

La figure suivante montre comment les données utilisateur sont collectées dans les journaux de serveur Web et les bases de données Commerce Server, puis stockées dans Data Warehouse.

Figure illustrant la collecte et le stockage des données utilisateur
Commerce Server Data Warehouse
Données de profil utilisateur
Données d'événement
Données de transaction
Données de campagne marketing
Données de catalogue
Base de données Commerce Server
Business Desk
collecte
importation
affichage
importation
Journaux du serveur Web
Site Web
Utilisateur

Analyser les données utilisateur

L’analyse des données contenues dans Data Warehouse vous permet de déterminer des informations importantes concernant votre activité commerciale. Vous pouvez identifier les types d’utilisateurs visitant votre site, les produits qui se vendent le mieux, ainsi que les campagnes publicitaires qui ont du succès.

Vous utilisez les modules Analyse de Commerce Server Business Desk pour analyser les données relatives à l’activité des utilisateurs sur votre site. Vous pouvez analyser l’activité des utilisateurs en exécutant des rapports sur Data Warehouse ou en affichant les modèles d’analyse générés par la ressource Predictor de Commerce Server.

La figure suivante montre comment utiliser Business Desk pour accéder aux données de Data Warehouse, puis effectuer différents types d’analyses.

Figure illustrant les possibilités d'analyse des données
Business Desk
Analyser les données utilisateur
Exécuter des rapports
Afficher les modèles de segments
Ressource Predictor
Données d'utilisation du site
Données d'utilisation du site
Commerce Server Data Warehouse

Commerce Server propose deux types de rapports qui permettent d’analyser l’activité des sites :

  • Rapports dynamiques. Transformez des données spécifiques en un format de tableau croisé dynamique via Microsoft® PivotTable® grâce auquel vous pouvez réorganiser des colonnes et créer des graphiques.

  • Rapports statiques. Ils s’affichent dans une fenêtre du navigateur au format HTML. Vous pouvez envoyer ces rapports à d’autres personnes par courrier électronique ou les publier sur votre site Web, et les modifier dans d’autres applications. Par exemple, à l’aide de Microsoft Internet Explorer, vous pouvez exporter le rapport dans un document Word, puis le modifier.

Commerce Server comprend plusieurs rapports que vous pouvez exécuter à partir de Business Desk, par exemple, des rapports sur la publicité, des rapports sur les ventes de produits et des rapports sur l’utilisation du Web. Vous pouvez utiliser un ou plusieurs de ces rapports ou votre développeur de site peut personnaliser l’un d’eux pour récupérer d’autres données. Pour obtenir une liste complète des rapports proposés par Commerce Server, consultez Rapports Commerce Server.

Outre l’analyse des rapports, vous pouvez analyser des modèles de segments à l’aide du module Identification de segments dans Business Desk. Les modèles de segments identifient les segments auxquels appartiennent les utilisateurs qui visitent votre site. Un segment est un groupe d’utilisateurs qui partagent des caractéristiques similaires. Par exemple, les utilisatrices qui achètent des livres de science-fiction peuvent constituer un segment d’utilisateurs. Les utilisateurs qui achètent des livres sur le golf peuvent constituer un autre segment. Après avoir identifié les caractéristiques d’un segment d’utilisateurs, vous pouvez utiliser ces informations pour mettre à jour votre site et cibler son contenu en fonction d’un segment d’utilisateurs bien précis.

Mettre à jour votre site

Grâce à votre analyse des données utilisateur, vous avez la possibilité de modifier votre site pour affiner votre ciblage des utilisateurs, promouvoir les pages les plus visitées ou rendre plus accessibles les produits les plus demandés. Par exemple, si vous constatez que tous vos utilisateurs consultent une page qui se trouve à quatre clics de la page d’accueil, vous pouvez redéfinir votre site de telle sorte que cette page ne soit plus qu’à un clic de portée.

Vous pouvez également exploiter les résultats de votre analyse pour cibler des groupes d’utilisateurs spécifiques, vendre certains produits spécifiques de votre catalogue, ou créer des publicités ou des remises. Supposons que vous vendiez des articles de sport sur votre site. Vous pouvez analyser l’activité des utilisateurs, puis utiliser le module Campagnes marketing Business Desk pour générer une liste des utilisateurs inscrits dont le cyclisme est une activité favorite. Vous pouvez ensuite cibler la publicité d’un nouvel accessoire vélo à l’intention de ce groupe, et faire afficher cette publicité de manière bien visible lorsque l’un des utilisateurs du groupe visite votre site. Pour plus d’informations sur le ciblage des utilisateurs, consultez Ciblage et personnalisation.

Implémentation du cycle - Un travail d’équipe

Pour implémenter efficacement le cycle de gestion d’un site, le chef d’entreprise, le développeur du site et l’administrateur système doivent communiquer et collaborer pour implémenter les mises à jour du site. Vous devez établir un processus pour faciliter cette communication. Par exemple, pour mettre à jour en bloc un vaste ensemble de profils utilisateur, le chef d’entreprise contacte l’administrateur système, qui effectue ensuite cette tâche. Pour ajouter une nouvelle fonctionnalité à Business Desk, par exemple un module de vente de chèques-cadeaux, le chef d’entreprise contacte le développeur du site pour lui communiquer ses besoins.

Dans de nombreuses organisations, il arrive que le chef d’entreprise, l’administrateur système et le développeur du site travaillent chacun dans des services, des villes ou des pays différents, c’est pourquoi il est vital d’établir un processus de communication efficace et de l’évaluer régulièrement pour s’assurer de son bon fonctionnement.

Pour avoir une vue d’ensemble des tâches généralement effectuées par le chef d’entreprise, le développeur du site et l’administrateur système, consultez Rôles et responsabilités.

Voir aussi

Ciblage et personnalisation

Rôles et responsabilités

Profils

Prévision et extraction de données

Data Warehouse


Rôles et responsabilités

Commerce Server 2000 offre un ensemble de fonctionnalités et d’outils permettant de développer, déployer et gérer des sites Web. L’utilisation de Commerce Server requiert des compétences spécifiques qui couvrent trois domaines d’expertise au sein d’une organisation. Dans le tableau suivant, les fonctionnalités de Commerce Server sont regroupées selon les trois catégories générales de rôles existant dans une organisation, et sont accompagnées des compétences correspondantes.

Rôle | Domaine d’expertise
Développeurs de site | Langage DHTML (Dynamic Hypertext Markup Language), langage XML (Extensible Markup Language), objets de données Microsoft ActiveX (ADO), composants HTML (HTC) et pages ASP (Active Server Pages)
Administrateurs système | Microsoft Windows 2000 Server, Microsoft SQL Server 2000 et Internet Information Services (IIS) 5.0
Chefs d’entreprise | Objectifs commerciaux, stratégies et processus de création et d’exécution d’un site Web populaire de commerce électronique

Dans votre organisation, ces rôles sont peut-être combinés de plusieurs manières ou portent des noms différents. Ils représentent toutefois les trois domaines de compétence distincts nécessaires à l’utilisation des fonctionnalités de Commerce Server.

Le tableau suivant répertorie les trois rôles distincts et fournit des exemples des tâches effectuées par chacun d’entre eux.

Rôle Responsabilités Outils et interfaces utilisateur
Développeur de site
  • Crée le site Web

  • Intègre le site Web aux systèmes existants

  • Fait migrer les sites et les bases de données de commerce électronique existants

  • Personnalise Commerce Server Business Desk

  • Crée des modules Business Desk

  • Ajoute de nouveaux composants logiciels enfichables d’extension à Microsoft Management Console (MMC)

  • Crée des rapports personnalisés

  • Étend Data Warehouse
  • Programmer’s Reference (en anglais)

  • Pipeline Editor (en anglais)

  • Pipeline Component Reference (en anglais)

  • Utilisation du Gestionnaire de package de site
Administrateur du système (sa)
  • Compresse et transfère les sites vers l’ordinateur de production

  • Configure et optimise les ressources de Commerce Server

  • Planifie les tâches d’importation de Data Warehouse

  • Planifie les travaux de publipostage

  • Crée des modèles d’analyse

  • Gère les bases de données Commerce Server

  • Assure le dépannage de l’environnement du site Web
  • Utilisation du Gestionnaire de package de site

  • Administration de Commerce Server
Chef d’entreprise
  • Crée les spécifications de développement du site Web

  • Détermine la manière dont le site Web doit être mis à jour pour répondre aux objectifs commerciaux

  • Demande les modules nouveaux et les modules personnalisés pour Business Desk

  • Crée des campagnes publicitaires

  • Gère les catalogues de produits

  • Analyse l’activité des utilisateurs et l’impact du site

  • Gère les utilisateurs inscrits et les partenaires commerciaux
  • Utilisation de Business Desk


Profils

Un profil est un ensemble de caractéristiques qui définissent les éléments à caractère commercial, tels qu’un utilisateur, une société ou un contexte (date et heure). Par exemple, un profil utilisateur peut comporter des caractéristiques telles que le prénom, le nom, la ville, le sexe, l’âge et l’adresse de messagerie. Un profil de société peut comporter d’autres caractéristiques, par exemple, le nom de société, le contact, la ville et l’adresse de messagerie. Un profil de contexte peut comporter des caractéristiques telles que la date et l’heure où une page est affichée, ainsi que le chemin d’accès emprunté par l’utilisateur pour accéder à la page.

La figure suivante montre différents types de profils.

Figure illustrant différents types de profils
Historique des clics
Durée de la session
Nom de la société
Contact
Ville
Adresse électronique
Historique des clics
Durée de la session
Prénom
Nom
Ville
Sexe
Âge
Adresse électronique
Historique des clics
Durée de la session

Profil de la société

Profil de l'utilisateur anonyme

Profil de l'utilisateur inscrit

Dans Commerce Server, les profils vous permettent de stocker des informations sur les éléments à caractère commercial. Par exemple, les profils sont utilisés pour collecter des données auprès des utilisateurs de votre site Web. Vous pouvez également utiliser Business Desk pour entrer directement des données dans les profils utilisateur et les profils d’organisation.

Le Système de profil de Commerce Server se compose de la ressource Profiles, gérée avec Commerce Server Manager, et du module Utilisateurs, géré avec Commerce Server Business Desk. Les données de profil sont stockées dans la banque de données des profils dans Microsoft Active Directory™, SQL Server, les deux, ou n’importe quelle autre banque de données compatible OLE DB. Vous pouvez exporter des données de la banque de données des profils dans Data Warehouse, puis utiliser Business Desk pour analyser les données de profil collectées.

Remarque

  • Commerce Server n’inclut pas l’annuaire d’abonnement de Microsoft Site Server 3.0. Pour plus d’informations sur la migration des informations de profil de l’annuaire d’abonnement vers Commerce Server, consultez Migration depuis Site Server 3.0.

Utilisation des profils dans la gestion d’un site Web

Structure d’un profil

Collecte et stockage des profils

Analyse des données utilisateur

Exemples de définitions de profils

Utilisation des profils dans la gestion d’un site Web

Les profils sont essentiels à la gestion d’un site Web car ils fournissent des informations sur les visiteurs et leur mode d’utilisation de votre site Web. Les profils vous permettent d’analyser les données utilisateur et de cibler un contenu qui leur est destiné.

À l’aide de Commerce Server Business Desk, vous pouvez :

  • Déterminer les informations à collecter sur les utilisateurs visitant votre site.

  • Analyser les informations de profil.

  • Créer des expressions de ciblage pour faire correspondre le contenu aux utilisateurs.

  • Créer des campagnes de publicité, de remise et de publipostage pour cibler des groupes d’utilisateurs spécifiques.

  • Adresser des messages de publipostage personnalisés aux utilisateurs.

Par exemple, vous possédez un site de vente d’articles de sport. Le déroulement des opérations ci-dessous illustre la manière d’utiliser Business Desk pour analyser l’activité des utilisateurs et cibler un contenu en fonction des utilisateurs.

  1. Votre administrateur système crée des définitions de profils pour les utilisateurs inscrits et les utilisateurs invités.

  2. Après avoir laissé s’écouler une certaine période d’activité sur votre site, analysez les données de profil pour mieux connaître les utilisateurs qui le visitent :
    • Exécutez des rapports pour analyser les visiteurs de votre site.

    • Exécutez des rapports pour analyser les produits de votre catalogue qui se vendent bien, et ceux qui se vendent mal.
  3. Utilisez les résultats de votre analyse pour créer une campagne marketing de ciblage du contenu en fonction des utilisateurs :
    • Utilisez les profils pour créer des expressions de ciblage et des groupes cibles.

    • Créez une campagne de remise pour offrir une remise aux utilisateurs spécifiés.
  4. Une fois la remise placée en production pendant un certain temps, analysez les résultats de la campagne marketing.
    • Exécutez des rapports pour analyser le succès de la campagne marketing.

    • Exécutez des rapports pour déterminer si le groupe d’utilisateurs a augmenté ses achats d’articles remisés.
  5. Si vos utilisateurs n’ont pas augmenté leurs achats d’articles remisés, créez une campagne de publipostage pour leur adresser des messages personnalisés en leur offrant une remise sur un produit spécifique.

Pour plus d’informations sur la création d’expressions et le ciblage de contenu destiné aux utilisateurs, consultez Ciblage et personnalisation.

Structure d’un profil

Un profil Commerce Server se compose des éléments suivants :

  • Définitions de profil. Description des données à collecter pour un type de profil déterminé. Vous pouvez posséder plusieurs profils basés sur une seule définition de profil. Par exemple, « Utilisateur » et « Adresse » sont des définitions de profils. Les administrateurs système créent des définitions de profils à l’aide de la ressource Profiles dans Commerce Server Manager.

  • Propriétés de profil. Caractéristique qui spécifie les données de profil à collecter lorsqu’un utilisateur visite votre site Web. Par exemple, la propriété Prénom indique que le prénom de l’utilisateur doit être collecté. Utilisez le module Définitions de profil de Business Desk pour créer des propriétés de profil et les ajouter aux définitions de profils.

  • Attribut. Caractéristique qui fournit des informations sur la propriété, telles que son type de données (par exemple, nombre, chaîne, décimal et glossaire du site).

  • Profil. Instance unique d’une définition de profil qui contient des données. Chaque profil est basé sur une seule définition de profil.

Le tableau suivant montre un exemple de définition de profil utilisateur, ainsi qu’une instance unique de l’exemple de définition de profil utilisateur comportant les données de Philippe Tran.

Définition de profil : Utilisateur | Écran Profil : Philippe Tran
Prénom | Philippe
Nom | Tran
Ville | Seattle
Sexe | M
Âge | 52
Adresse de messagerie | philippetran@microsoft.com

Définitions de profils

Avant que les administrateurs système puissent créer des définitions de profils, ils doivent déterminer l’emplacement de stockage des données de profil dans la base de données et ajouter la table et les colonnes correspondantes pour les données. Supposons que le chef d’entreprise demande une nouvelle définition de profil intitulée Musique, et qu’il souhaite stocker les propriétés de profil suivantes : Premier concert, Dernier concert, CD favori et deux autres propriétés que vous n’avez pas encore déterminées. Vous déterminez que le meilleur emplacement de stockage pour ces données est une nouvelle table intitulée Musique, qui se trouve dans une nouvelle base de données SQL Server appelée Arts. Pour créer la définition de profil Musique, vous effectuez les opérations suivantes :

  • Vous utilisez SQL Server Enterprise Manager pour :
    1. Créer la base de données SQL Server nommée Arts.

    2. Créer la table Musique contenue dans la base de données Arts, puis ajouter des colonnes pour les cinq membres de données qui doivent être stockés à cet emplacement.
  • Vous utilisez la ressource Profiles pour :
    1. Effectuer un mappage vers la nouvelle source de données Arts. Il n’est nécessaire d’effectuer cette étape qu’une seule fois. Une fois que vous avez mappé une nouvelle source de données vers la ressource Profiles, il n’est plus nécessaire de refaire cette opération.

    2. Créer un objet de données intitulé Musique et le mapper vers la table Musique contenue dans la base de données Arts.

    3. Créer des membres de données nommés Premier concert, Dernier concert, CD préféré, Espace_réservé1 et Espace_réservé2, et les mapper vers les colonnes correspondantes de la table Musique.

    La figure suivante illustre la façon dont les éléments d’une base de données SQL Server, la ressource Profiles et une définition de profil sont mappés entre eux.

Figure illustrant les relations entre SQL Server, la ressource Profils et une définition de profil
Enterprise Manager
Ressource Profils
Base de données SQL Server
Source de données
Définition de profils
Table
Colonne
Objet de données
Propriété
Attributs
Membre de données

Base de
données Arts

Source de
données Arts

Définition de profil Musique

Table Musique
Objet Musique
Propriété Premier concert
Colonne Premier concert
Colonne Premier concert
Valeur
unique Obligatoire

Pour obtenir des instructions détaillées sur l’utilisation de la ressource Profiles pour étendre le schéma de vos profils, consultez Exécution de la ressource Profiles.

Une fois que vous avez créé la définition de profil et les propriétés, le chef d’entreprise peut utiliser le module Définitions de profil de Business Desk pour ajouter les propriétés Premier concert, Dernier concert et CD préféré à la définition. Pour effectuer cette étape, le chef d’entreprise mappe ces propriétés vers les membres de données que vous avez créés, c’est pourquoi il est nécessaire de fournir les noms des membres de données. Si vous voulez mapper les propriétés vers les membres de données, vous pouvez le faire avec Commerce Server Manager.

Plus tard, lorsque le chef d’entreprise détermine d’autres informations à collecter à l’aide de la définition de profil Musique, il peut utiliser le module Définitions de profil pour créer deux nouvelles propriétés et les mapper vers les membres de données correspondant aux espaces réservés créés dans la table Musique.

Les sites solutions Commerce Server comportent les exemples de définitions de profils suivants : Adresse, BlanketPOs (bons de commande), Organisation, Objet utilisateur et Contexte de ciblage. L’exemple de définition de profil Objet Utilisateur comprend cinq propriétés sans nom, ce qui vous permet d’ajouter des propriétés à la définition de profil Utilisateur sans étendre votre base de données. Pour obtenir la liste des propriétés associée à chaque profil, consultez Exemples de définitions de profils.

Propriétés de profil

Une fois que l’administrateur système a créé la définition de profil, vous pouvez y ajouter des propriétés de profil en utilisant le module Définitions de profil de Business Desk. Les propriétés de profil déterminent les informations à collecter dans un profil. Par exemple, la définition d’un profil Utilisateur peut contenir les propriétés suivantes : prénom, nom, ville, sexe, âge et adresse de messagerie.

La figure suivante montre les différentes parties d’un exemple de définition de profil Utilisateur.

Figure illustrant les différentes parties d'une définition de profil
Propriété de profil
Attributs de profil
Définition de profil Utilisateur
Prénom
Valeur unique Obligatoire Indexé
Nom
Valeur unique Obligatoire Indexé
Ville
(Entrée du glossaire du site : Ville)
(Chaîne)
(Chaîne)
Mexico Madrid
Paris
Sexe
(Entrée du glossaire du site : Sexe)
Masculin
Féminin
Non communiqué
Âge
(Nombre)
Adresse de messagerie
(Chaîne)
Type de données

Attributs

Chaque propriété de profil possède des attributs. Les attributs fournissent des informations sur la propriété, telles que son type de données (par exemple, nombre, chaîne, décimal et glossaire du site), si la propriété comporte une valeur unique (par exemple, seul un prénom est autorisé) ou multiple, et si la propriété de profil est indexée, en d’autres termes, si un utilisateur visitant le site Web peut effectuer une recherche à l’aide de cette propriété.

Une entrée du glossaire du site est un type de données que vous créez. Il s’agit d’une liste de valeurs spécifiques pertinentes pour votre site. Une entrée du glossaire du site vous permet d’attribuer cette liste de valeurs à une propriété en tant qu’attribut. Par exemple, vous pouvez créer une entrée du glossaire du site intitulée Sexe et définir les valeurs possibles suivantes : Féminin, Masculin et Non communiqué. Lorsque vous créez une propriété de profil nommée Sexe, et que vous lui affectez le type de données « glossaire du site », seule une des valeurs possibles peut être attribuée au profil. Vous créez les entrées du glossaire du site à l’aide du module Éditeur d’entrées du glossaire du site de Business Desk, puis vous les attribuez à la définition de profil en utilisant le module Définitions de profil.

En appliquant le glossaire du site aux propriétés de profil, vous établissez des mots communs qu’il est possible d’utiliser n’importe où dans Commerce Server, par exemple, pour faire correspondre les préférences de l’utilisateur à un contenu. Pour plus d’informations sur l’utilisation des profils afin de délivrer un contenu, consultez Ciblage et personnalisation.

Collecte et stockage des profils

Les données de profil sont collectées sur un site Commerce Server de deux manières. Les utilisateurs qui visitent votre site fournissent des données de profil sur eux-mêmes ; cela s’appelle le profil explicite de l’utilisateur. Par exemple, lorsque des utilisateurs achètent des produits sur votre site, ils fournissent généralement leur nom, adresse postale, numéro de téléphone et adresse de messagerie. Ces informations servent à remplir leur profil utilisateur.

Vous pouvez également collecter des données grâce au profil implicite de l’utilisateur. Dans le profil implicite de l’utilisateur, les actions de l’ensemble des utilisateurs (anonymes et inscrits) sont enregistrées dans des fichiers journaux Web, au fur et à mesure que ces utilisateurs interagissent avec votre site Web. Par exemple, les fichiers journaux Web enregistrent les liens sur lesquels ont cliqué les utilisateurs anonymes, les produits qu’ils ont recherchés, la durée de leurs sessions et le temps de visite d’une page Web spécifique. Même si les utilisateurs sont anonymes (vous ignorez leur nom, leur adresse de messagerie ou toute autre information les concernant), leur mode d’utilisation de votre site reste une information importante. Par exemple, l’historique des clics fournit le chemin d’accès aux pages Web visitées ; vous pouvez utiliser ces informations pour déterminer un ensemble particulier d’intérêts. Pour plus d’informations sur l’utilisation des cookies dans Commerce Server, consultez Cookies et authentification.

La ressource Predictor de Commerce Server permet d’effectuer une autre forme de profil implicite de l’utilisateur. S’il manque une information concernant un utilisateur, par exemple sa préférence musicale, cette information peut être devinée par la ressource Predictor en fonction des propriétés de synthèse de l’ensemble des utilisateurs visitant votre site et des CD qu’ils achètent. Pour plus d’informations sur le composant de prévision, consultez Prévision et extraction de données.

Toutes les informations collectées durant une session utilisateur spécifique sont collectées dans un seul profil, c’est-à-dire une instance d’une définition de profil.

Lorsque les données de profil sont collectées initialement, elles sont d’abord stockées dans les bases de données Commerce Server et les journaux de serveur Web. L’administrateur système importe les données de profil dans Data Warehouse à intervalles réguliers. Une fois les profils importés dans Data Warehouse, vous pouvez utiliser Business Desk pour analyser les données utilisateur, puis utiliser les résultats de l’analyse afin de mettre à jour votre site Web ou appliquer des valeurs aux propriétés de profil utilisateur.

Analyse des données utilisateur

Vous pouvez analyser les données utilisateur dans les rapports ou dans les modèles de segments. Pour plus d’informations sur l’analyse des modèles de segments, consultez Analyse des segments de population.

Le tableau suivant répertorie les rapports inclus dans Commerce Server, qui vous permettent d’analyser les données utilisateur.

Rapport | Description
Utilisateurs et visites distincts par semaine | Déterminer si quelques utilisateurs visitent votre site plusieurs fois ou si de nombreux utilisateurs visitent votre site en même temps.
Utilisateurs distincts par jour | Déterminer le nombre d’utilisateurs uniques visitant votre site un jour spécifique.
Nouveaux utilisateurs inscrits | Identifier les nouveaux utilisateurs inscrits. Ces données peuvent être utilisées pour créer des campagnes promotionnelles spéciales. Par exemple, vous pouvez exporter le rapport vers le Gestionnaire de listes puis envoyer à ces utilisateurs une promotion par publipostage.
Propriétés de l’utilisateur inscrit | Examiner les informations fournies par les utilisateurs inscrits. Ces données peuvent être utilisées pour créer des campagnes promotionnelles spéciales. Par exemple, vous ciblez les publicités ou les remises pour des utilisateurs possédant certaines propriétés.
Utilisateurs inscrits par date d’inscription | Examiner le comportement des utilisateurs lors de leur inscription.
Jours avant inscription de l’utilisateur | Noter le nombre de jours moyen nécessaire aux utilisateurs invités pour s’inscrire sur votre site.
Taux d’inscription des utilisateurs | Déterminer votre capacité à convaincre les utilisateurs invités de s’inscrire sur votre site.
Tendances des utilisateurs | Déterminer votre capacité à faire revenir les visiteurs sur le site.

Pour obtenir une liste de tous les rapports Commerce Server, consultez Rapports Commerce Server. Pour plus d’informations sur l’exécution de rapports, consultez Exécution de rapports.

Exemples de définitions de profils

Les sites solutions Commerce Server comportent des exemples de définitions de profils. Si le développeur de votre site a utilisé un site solution pour créer votre site, vous devez disposer des cinq définitions de profils répertoriées dans le tableau suivant.

Définitions de profils | Propriétés (type de données) | Description
Adresse | Identificateur de l’adresse (chaîne) | Identificateur de l’adresse
 | Identificateur (chaîne) | Identificateur de l’organisation/l’utilisateur
 | Nom (chaîne) | Nom de l’utilisateur
 | Prénom (chaîne) | Prénom de l’utilisateur
 | Nom de l’adresse (chaîne) | Nom de cette adresse
 | Type d’adresse (nombre) | Adresse/adresse de livraison/adresse de facturation
 | Description (chaîne) | Description de cette adresse
 | Ligne Adresse 1 (chaîne) | Première ligne de l’adresse
 | Ligne Adresse 2 (chaîne) | Deuxième ligne de l’adresse
 | Ville (chaîne) | Nom de la ville
 | Code de région (chaîne) | Code de département, région ou province
 | Nom de département (chaîne) | Nom de département, région ou province
 | Code postal (chaîne) | Code postal
 | Code de pays (chaîne) | Code ISO (Country International Standards Organization)
 | Nom de pays (chaîne) | Nom du pays
 | Numéro de téléphone (chaîne) | Numéro de téléphone à cette adresse
 | Numéro de poste (chaîne) | Numéro de poste à cette adresse
 | Identificateur de paramètre régional (nombre) | Paramètre régional de représentation du formulaire d’adresse
 | Modifié par (chaîne) | Nom de la personne ayant modifié ce profil pour la dernière fois
 | Date de dernière modification (date/heure) | Date de la dernière modification de ce profil
 | Date de création (date/heure) | Date de création de ce profil
BlanketPOs | Identificateur du bon de commande (chaîne) | GUID faisant référence au bon de commande standard
 | Identificateur d’organisation (chaîne) | Identificateur d’organisation
 | Numéro du bon de commande (chaîne) | Numéro de bon de commande standard
 | Description (chaîne) | Description du bon de commande
 | Modifié par (chaîne) | Nom de la personne ayant modifié ce profil pour la dernière fois
 | Date de dernière modification (date/heure) | Date de la dernière modification de ce profil
 | Date de création (date/heure) | Date de création de ce profil
Organisation | Identificateur d’organisation (chaîne) | Identificateur d’organisation
 | Nom (chaîne) | Nom de l’organisation
 | Numéro de partenaire commercial | Numéro de partenaire commercial
 | Contact administratif (chaîne) | GUID du contact administratif
 | Récepteur (chaîne) | Identificateur d’utilisateur de la personne qui recevra les produits livrés par le fournisseur
 | Groupe de catalogues de l’organisation (chaîne) | Groupe de catalogues de l’organisation
 | Modifié par (chaîne) | Nom de la personne ayant modifié ce profil pour la dernière fois
 | Responsable des achats (chaîne) | Identificateur d’utilisateur du responsable des achats de l’organisation
 | Date de dernière modification (date/heure) | Date de la dernière modification de ce profil
 | Date de création (date/heure) | Date de création de ce profil
Objet utilisateur | Identificateur d’utilisateur (chaîne) | Identificateur d’utilisateur
 | Nom d’ouverture de session (chaîne) | Nom d’ouverture de session
 | Mot de passe de l’utilisateur (mot de passe) | Mot de passe de l’utilisateur
 | Messagerie (chaîne) | Adresse de messagerie
 | Type d’utilisateur (nombre) | Type d’utilisateur
 | Titre de l’utilisateur (chaîne) | Titre de l’utilisateur
 | Nom (chaîne) | Nom de l’utilisateur
 | Prénom (chaîne) | Prénom de l’utilisateur
 | Numéro de téléphone (chaîne) | Numéro de téléphone de l’utilisateur
 | Numéro de poste (chaîne) | Numéro de poste de l’utilisateur
 | Numéro de télécopie (chaîne) | Numéro de télécopie de l’utilisateur
 | Numéro de poste de télécopie (chaîne) | Numéro de poste de télécopie de l’utilisateur
 | Modifié par (chaîne) | Nom de la personne ayant modifié ce profil pour la dernière fois
 | Identificateur d’organisation (chaîne) | Identificateur d’organisation
 | État du compte (nombre) | État du compte
 | Groupe de catalogues de l’utilisateur (chaîne) | Groupe de catalogues de l’utilisateur
 | Date d’inscription (date/heure) | Date d’inscription de l’utilisateur
 | Historique de la campagne marketing (chaîne) | Historique de la campagne marketing
 | Indicateurs de rôles du Service Partenaire | Rôle du Service Partenaire
 | Date de dernière modification (date/heure) | Date de la dernière modification de ce profil
 | Date de création (date/heure) | Date de création de ce profil
Contexte de ciblage | Groupe de pages (chaîne) | Nom du groupe de pages (par exemple, pages de sports)

Voir aussi

Exécution de la ressource Profiles

Migration depuis Site Server 3.0

Migration de l’annuaire d’abonnement

Utilisateurs Business Desk

Rapports Commerce Server


Listes des utilisateurs et listes de publipostage

Les listes des utilisateurs et les listes de publipostage sont des fichiers texte qui contiennent les propriétés de profil utilisateur. Les listes d’utilisateurs permettent de rechercher et de mettre à jour des propriétés de profil utilisateur ; les listes de publipostage permettent d’effectuer des campagnes de publipostage.

Utilisation de listes dans la gestion d’un site Web

Listes de publipostage

Listes des utilisateurs

Listes génériques

Listes dynamiques et statiques

Utilisation de listes dans la gestion d’un site Web

Le module Gestionnaire de listes de Commerce Server Business Desk vous permet d’importer et d’exporter des listes des utilisateurs et des listes de publipostage dans Business Desk.

  • Ajout de listes au Gestionnaire de listes. Vous pouvez exporter un rapport d’analyse Commerce Server sous forme de liste vers le Gestionnaire de listes. Vous pouvez importer dans le Gestionnaire de listes une liste créée dans une autre application, telle que SQL Server (pour créer une table SQL), le Bloc-notes (pour créer un fichier texte ASCII), Microsoft Excel (pour créer une feuille de calcul) ou Microsoft Outlook (pour exporter un fichier .pst contenant une liste d’adresses).

    Par exemple, si vous possédez une liste d’adresses dans une feuille de calcul Microsoft Excel, vous pouvez utiliser le Gestionnaire de listes pour l’importer dans Business Desk, puis utiliser la liste dans une campagne de publipostage. Si vous identifiez une liste des utilisateurs dans un rapport d’analyse, vous avez la possibilité d’exporter les résultats du rapport sous forme de liste vers le Gestionnaire de listes, puis d’utiliser la liste dans une campagne de publipostage.

    Pour plus d’informations sur l’importation d’une liste dans le Gestionnaire de listes, consultez Importation et exportation de listes. Pour plus d’informations sur l’exportation d’un rapport d’analyse Commerce Server vers le Gestionnaire de listes, consultez Exportation d’un rapport statique.

  • Utilisation de listes du Gestionnaire de listes. Vous pouvez importer une liste des utilisateurs du module Gestionnaire de listes dans le module Utilisateurs, puis mettre à jour les profils utilisateur contenus dans la liste. Par exemple, vous exécutez le rapport Ventes client de Commerce Server afin d’identifier les utilisateurs achetant le plus grand nombre de produits, puis l’exportez sous forme de liste vers le Gestionnaire de listes. Vous importez la liste des utilisateurs du Gestionnaire de listes dans le module Utilisateurs, puis vous mettez à jour les profils utilisateur contenus dans la liste en attribuant une valeur spéciale à une propriété de profil des profils utilisateur. Vous utilisez cette valeur pour cibler des campagnes de publicité ou de remise spécifiques, destinées aux utilisateurs dont vous avez modifié les profils. Pour plus d’informations sur l’importation d’une liste dans le module Utilisateurs, consultez Importation d’une liste de profils utilisateur. Pour plus d’informations sur la modification de plusieurs profils utilisateur, consultez Modification de plusieurs utilisateurs.

    Vous avez également la possibilité d’exporter la liste vers une autre application. Vous pouvez par exemple exporter une liste générée à partir d’un rapport d’analyse vers une feuille de calcul Microsoft Excel. Pour plus d’informations sur l’exportation d’une liste vers un fichier, consultez Importation et exportation de listes.

Listes de publipostage

Les listes de publipostage contiennent des lignes d’adresses de messagerie destinées à une campagne de publipostage. Chaque ligne de la liste contient un destinataire unique et se compose des éléments suivants dans un format délimité par des virgules.

Élément | Description
Adresse de messagerie | Obligatoire. Nom ou <nom@domaine>.
GUID | Facultatif. Identificateur d’utilisateur unique utilisé pour fournir le contenu d’un message électronique personnalisé.
Format du message | Facultatif. Contrôle le type de format du message dans lequel l’objet de données de collaboration (CDO, Collaboration Data Object) traduit le résultat. Par exemple, le format texte, MHTML (MIME Encapsulation of Aggregate HTML Documents) ou MIME (Multipurpose Internet Mail Extensions).
Langue | Facultatif. Valeur de la page de code du message électronique.
Adresse URL | Facultatif. Permet de transmettre des adresses URL individuelles au niveau de chaque utilisateur à CDO.

Vous pouvez créer une liste à l’aide de n’importe quel éditeur de texte, comme le Bloc-notes. Vous pouvez ajouter une liste de publipostage à Business Desk à l’aide du module Gestionnaire de listes qui permet d’importer des fichiers texte ASCII, des fichiers provenant de Microsoft Excel ou Microsoft Outlook, ou des tables issues de bases de données SQL Server. Pour créer une liste de publipostage en utilisant des informations contenues dans un fichier .pst Microsoft Outlook, consultez la rubrique « Exportation d’éléments vers un fichier ou vers un fichier de dossiers personnels » dans l’aide en ligne de Microsoft Outlook.

Pour plus d’informations sur l’importation de listes de publipostage pour une campagne de publipostage, consultez Importation d’une liste de publipostage.

Listes des utilisateurs

Les listes des utilisateurs contiennent des lignes d’identificateurs d’utilisateurs et, facultativement, d’autres propriétés de profil utilisateur. Vous pouvez exporter des listes des utilisateurs du module Gestionnaire de listes vers le module Définitions de profil, puis effectuer des mises à jour en bloc des propriétés d’utilisateurs donnés.

Par exemple, vous pouvez importer une liste du module Identification de segments et définir une propriété dans le profil utilisateur de chaque utilisateur pour indiquer son appartenance à un segment particulier. Vous pouvez ensuite utiliser ces informations pour cibler des publicités et des remises en fonction du segment d’utilisateurs spécifié.

Listes génériques

Les listes génériques peuvent contenir toutes sortes d’éléments et peuvent inclure des en-têtes, comme dans l’exemple suivant :

Identificateur du produit | Nom du produit | Unité
1 | Chaussettes | 100
2 | Maillots | 20

Contrairement aux listes des utilisateurs et listes de publipostage, les listes génériques ne sont soumises à aucune exigence en matière de contenu. Un développeur de site doit personnaliser votre application pour permettre l’utilisation des listes génériques.

Vous pouvez par exemple utiliser les listes génériques pour définir des propriétés de produits. Vous exécutez le rapport Ventes produits de Commerce Server pour identifier les produits qui ont le plus de succès (en termes de ventes) sur votre site Web. Vous utilisez ensuite le module Gestionnaire de listes pour importer les résultats de ce rapport sous la forme d’une liste de produits, puis vous utilisez le module Éditeur de catalogue pour définir une propriété pour ces produits, les identifiant comme des produits qui se vendent bien. Vous pouvez alors utiliser cette propriété pour créer des expressions de ciblage ou pour augmenter le prix de ces produits de cinq pour cent.

Les listes génériques peuvent également être utilisées pour envoyer par messagerie électronique des bons de réduction à vos clients en ligne fréquents pour une utilisation dans votre magasin. Vous pouvez effectuer cette opération en exécutant un rapport pour analyser les achats des utilisateurs, en exportant les résultats du rapport sous la forme d’une liste qui inclut les adresses de messagerie, puis en utilisant le Gestionnaire de listes afin d’exporter cette liste pour qu’elle soit utilisée dans une application de création d’étiquettes.

Listes dynamiques et listes statiques

Les listes d’utilisateurs, les listes de publipostage et les listes génériques peuvent être dynamiques ou statiques :

  • Les listes dynamiques sont créées au moment de l’exécution, par exemple lors de l’exportation de la liste à partir du Gestionnaire de listes, pour une utilisation dans une campagne de publipostage. Chaque fois que cette liste est demandée, le Gestionnaire de listes récupère les données les plus récentes dans Data Warehouse. Seules les informations nécessaires à la création de la liste sont stockées dans la base de données utilisée par le Gestionnaire de listes. Utilisez des listes dynamiques pour les campagnes de publipostage que vous exécutez fréquemment ou pour les listes de destinataires qui sont souvent mises à jour.

  • Les listes statiques sont immédiatement créées sur demande, puis stockées dans la base de données utilisée par le Gestionnaire de listes. Utilisez des listes statiques pour les campagnes de publipostage que vous n’exécutez pas fréquemment ou pour les listes de destinataires qui ne sont pas souvent mises à jour.

Voir aussi

Importation et exportation de listes

Importation d’une liste de profils utilisateur

Gestion des listes des enregistrements utilisateur

Création d’une liste de publipostage


Cookies et authentification

Un cookie Commerce Server contient des informations concernant un utilisateur visitant votre site, telles que l’ID de connexion, la date à laquelle l’utilisateur a visité pour la dernière fois votre site, ainsi que la durée de validité du cookie. Commerce Server utilise des cookies pour identifier et authentifier les utilisateurs, et pour associer les identificateurs d’utilisateurs aux informations de profil collectées à leur sujet.

Commerce Server comprend la ressource Authentification CS, qui permet à l’administrateur système de déterminer le mode d’implémentation des cookies sur votre site. Pour configurer la ressource CS Authentication, l’administrateur système utilise Commerce Server Manager.

Utilisation des cookies

Types de cookies

Ressource Authentification CS

Authentification des utilisateurs dans une Web farm

Commerce Server et l’utilisation des cookies

Utilisation des cookies

Commerce Server offre différentes fonctionnalités à appliquer aux cookies de votre site :

  • Crypter les cookies. Vous pouvez configurer Commerce Server pour crypter les cookies générés par vos applications. En cryptant les cookies, vous avez l’assurance que seules vos applications Commerce Server pourront les lire.

  • Partager les cookies entre les domaines. L’administrateur système peut configurer Commerce Server pour permettre le partage des cookies entre différents domaines. Chaque cookie possède une propriété de domaine qui détermine le domaine dans lequel il est valide. Ce domaine est déterminé par la chaîne qui précède « .com » (ou une autre extension). Par exemple, vous possédez deux domaines : premier.microsoft.com et msn.microsoft.com. Dans cet exemple, le domaine est .microsoft.com.

  • Partager les cookies entre les applications. L’administrateur système peut configurer la ressource CS Authentication pour permettre le partage des cookies entre les applications du même site.

    Dans certains cas, il peut être souhaitable de ne pas partager les cookies entre applications du même site, car la présence de cookies peut influer sur les résultats d’analyse de l’activité des utilisateurs de votre site. Par exemple, vous possédez un site qui vend des fournitures de bureau. Si vous partagez des cookies entre une application de vente en gros et une application de vente au détail, vos résultats d’analyse ne vont pas différencier l’activité des utilisateurs entre ces deux applications. Les achats effectués sur le site de vente en gros peuvent montrer qu’un utilisateur achète des fournitures de bureau en très grande quantité, alors que le site de vente au détail peut montrer que les utilisateurs achètent leurs fournitures en petite quantité.

L’administrateur système spécifie le mode d’utilisation des cookies dans Commerce Server Manager en configurant les propriétés d’authentification pour l’application. Pour plus d’informations sur la configuration d’une application, consultez Configuration d’une application.

Types de cookies

Commerce Server crée deux types de cookies : les cookies persistants et les cookies non persistants :

  • Cookies persistants. Ils sont utilisés par Commerce Server pour effectuer le suivi des utilisateurs anonymes qui visitent votre site. Pour les utilisateurs anonymes qui autorisent les cookies, ceux-ci sont stockés sur leur ordinateur. Lorsque vous configurez la ressource CS Authentication, vous déterminez la durée de validité du cookie persistant, qui est en règle générale de plusieurs années. Les cookies persistants stockent des tickets MSCSProfile.

  • Cookies non persistants (également appelés cookies de session). Ils sont utilisés par Commerce Server pour effectuer le suivi des utilisateurs authentifiés qui visitent votre site. Ces cookies sont supprimés à la fin de la session. Les cookies non persistants stockent des tickets MSCSAuth.

Un ticket est un couple propriété/valeur tel que userID et la valeur de userID. Par exemple, userID/UtilisateurJean est un ticket. Commerce Server utilise des tickets pour stocker des informations sur les utilisateurs qui visitent un site. Un ticket peut être stocké dans un cookie ou une chaîne de requête d’adresse URL.

Les cookies persistants et les cookies non persistants peuvent être cryptés. Ces cookies contiennent les données suivantes :

  • Identificateur d’utilisateur. Il s’utilise pour les cookies persistants et non persistants. Un développeur de site peut déterminer la valeur à utiliser comme identificateur d’utilisateur. Par exemple, il peut s’agir du nom d’accès ou de l’adresse de messagerie d’un utilisateur. Pour les utilisateurs anonymes, l’identificateur d’utilisateur peut par exemple être un identificateur global unique (GUID, Globally Unique Identifier) généré par une de vos pages ASP. (Commerce Server inclut l’objet GenID, permettant de générer des GUID.)

  • Heure de la dernière connexion. Elle s’utilise pour les cookies non persistants. Si un utilisateur est authentifié, qu’il cesse de travailler sur son ordinateur sans se déconnecter (ou qu’il est inactif pendant un certain laps de temps), puis qu’il revient avant la fin de la durée de validité, cet utilisateur n’a pas besoin de s’authentifier à nouveau. Toutefois, si cet utilisateur revient après la fin de la durée de validité, il doit de nouveau se connecter.

  • Durée de validité. Elle s’utilise avec les cookies non persistants pour déterminer la durée de validité d’un cookie, en minutes.

Une fois qu’un utilisateur s’est déconnecté d’un site, l’authentification expire.

Un développeur de site peut ajouter des propriétés personnalisées aux deux types de cookies.

Ressource CS Authentication

La ressource CS Authentication comprend deux parties :

  • AuthManager. Il s’agit d’un objet COM (Component Object Model) utilisé sur chaque page ASP sécurisée pour vérifier si l’authentification de l’utilisateur lui permet d’afficher la page. Les sites solutions utilisent AuthManager. AuthManager ne dépend d’aucun des paramètres de configuration appliqués durant le processus de décompression.

    AuthManager prend en charge l’achat sans utilisation des cookies. Les données du ticket (par exemple, un GUID) sont ajoutées à la chaîne de requête.

  • AuthFilter. Il s’agit d’un filtre ISAPI (Internet Server API) qui s’utilise au niveau du site Commerce Server sur Internet Information Services (IIS) 5.0. Il peut s’appliquer à tous les utilisateurs visitant le site. Vous configurez AuthFilter après le processus de décompression.

    AuthFilter propose trois modes :

    • Mode d’authentification Windows. Vérifie la connexion d’accès utilisateur et le mot de passe par rapport à Active Directory (ou un compte SAM local).

    • Mode d’authentification personnalisée. Vérifie la connexion d’accès utilisateur et le mot de passe par rapport à une base de données SQL Server ou un autre type de base de données.

    • Mode de génération de cookie automatique. Vous pouvez générer automatiquement des cookies pour les utilisateurs anonymes, ce qui vous permet de collecter des données de profil sur le mode de navigation des utilisateurs anonymes et leur utilisation de votre site. Lorsque des utilisateurs anonymes s’inscrivent, leurs cookies persistants peuvent être mis à jour, ainsi vous ne perdez pas les données de profil collectées lorsque les utilisateurs étaient anonymes.

    • AuthFilter ne prend pas en charge l’achat sans utilisation des cookies.

Authentification des utilisateurs dans une Web farm

Lorsqu’un utilisateur se connecte à votre site, Commerce Server l’authentifie en vérifiant sa connexion d’accès et son mot de passe par rapport à la connexion d’accès et au mot de passe stockés dans la banque de données des profils. Après que Commerce Server a vérifié les informations utilisateur, il crée un cookie non persistant qu’il stocke dans le cache de filtre ISAPI pour l’application. Ce cookie indique que l’utilisateur est authentifié et qu’il est autorisé à consulter des pages sécurisées sur votre site.

Commerce Server prend en charge l’authentification unique d’un utilisateur dans un groupe de serveurs Web. Par exemple, si un utilisateur est authentifié sur un serveur Web, et qu’il est ensuite redirigé ou qu’il fait l’objet d’une répartition de charge vers un autre serveur Web, le second serveur Web ne demande pas à l’utilisateur de s’identifier à nouveau. Pour prendre en charge cette fonctionnalité, vous pouvez utiliser le filtre ISAPI (AuthFilter) que Commerce Server installe au niveau du site Web IIS. Lorsque l’utilisateur est redirigé vers le second serveur Web, le filtre ISAPI lit le cookie de l’utilisateur et reconnaît que ce cookie contient un identificateur d’utilisateur valide. Si vous utilisez le mode d’authentification personnalisée, aucune autre étape n’est effectuée. Si vous utilisez le mode d’authentification Windows, Commerce Server effectue les étapes suivantes :

  • Il redirige la demande de page sécurisée vers Login.asp, qui n’est pas visible par l’utilisateur.

  • Sur Login.asp, à l’aide de l’identificateur d’utilisateur, il interroge la banque de données des profils pour obtenir le profil de l’utilisateur. En retour, l’identificateur de la connexion d’accès et le mot de passe de l’utilisateur sont renvoyés en texte clair.

  • Il ajoute le nom d’accès et le mot de passe à l’adresse URL, puis redirige la demande de page sécurisée.

  • Le filtre intercepte la demande de page sécurisée, supprime l’identificateur d’utilisateur et le mot de passe de l’adresse URL, puis stocke l’identificateur de la connexion d’accès et le mot de passe dans le cache de filtre ISAPI.

  • Le filtre affiche ensuite la page sécurisée à l’utilisateur. L’identificateur d’utilisateur et le mot de passe ne sont pas transmis à l’utilisateur.

Commerce Server et l’utilisation des cookies

Lorsqu’un utilisateur parcourt votre site, le cookie est stocké dans des fichiers journaux Web. L’administrateur système utilise les tâches DTS de Commerce Server pour importer les données d’utilisation du site dans les fichiers journaux Web et importer les données de profil contenues dans la base de données Commerce Server dans Data Warehouse. La tâche DTS d’importation des journaux Web de Commerce Server lit les données de cookie et décrypte l’identificateur d’utilisateur, ce qui permet d’associer les données de cookie aux données de profil. Ceci vous permet d’analyser les données utilisateur.

Lorsque les données sont importées, elles sont analysées en fonction de l’identificateur d’utilisateur. Chaque instance de l’identificateur d’utilisateur devient une ligne dans Data Warehouse. L’identificateur d’utilisateur est la clé primaire de la ligne, ainsi, lors de l’analyse des données utilisateur, ces données sont accessibles par l’identificateur d’utilisateur.

Si un utilisateur interdit l’utilisation des cookies, et que vous avez implémenté AuthManager, les données du ticket (ainsi que le GUID) sont placées dans une chaîne d’adresse URL codée. La chaîne d’adresse URL peut être utilisée pour transmettre des informations utilisateur entre les pages. En associant le GUID à l’activité des utilisateurs sur le site, Commerce Server vous permet d’analyser les activités d’utilisateurs anonymes.

Voir aussi

Sécurité de Commerce Server

Planification de la sécurité

Working with Site Security and Filters (en anglais)

Site Security Objects (en anglais)

Gestion de la ressource CS Authentication


Catalogues : produits à vendre

Un catalogue est une méthode d’organisation des produits que vous voulez vendre. Business Desk vous aide à créer et à organiser les catalogues en gérant une description des propriétés que doivent posséder les différents articles de catalogue. Cette description s’appelle le schéma de catalogue. Ce schéma répertorie tous les types de catégories, produits et propriétés autorisés dans votre catalogue.

Dans Commerce Server 2000, vous utilisez les catalogues pour organiser et gérer les données sur les produits de votre base de données afin de les afficher sur votre site et de cibler les produits pour les utilisateurs.

Utilisation de catalogues pour la gestion du site Web

Remplissage du catalogue avec des données sur les produits

Échange de catalogues à l’aide de BizTalk Server

Structure du catalogue

Organisation du catalogue : hiérarchies et relations

Identificateurs uniques dans un catalogue

Catalogues de base, catalogues personnalisés et groupes de catalogues

Méthodes de tarification des produits

Analyse des ventes de catalogues

Utilisation de catalogues pour la gestion du site Web

Les modules Catalogues de Commerce Server Business Desk permettent de gérer, d’analyser et d’améliorer vos catalogues. Par exemple, lorsque votre site est en production, vous pouvez exécuter des rapports à partir de Business Desk pour identifier les produits qui ne se vendent pas, puis créer une campagne de remise pour augmenter les ventes de ces produits.

À l’aide de Business Desk, vous pouvez :

  • Importer des catalogues à partir d’autres sources de données. Vous pouvez importer des catalogues au format XML (Extensible Markup Language) ou au format de valeurs séparées par une virgule (CSV), à partir de sources externes. Par exemple, si vous avez des catalogues dans d’autres bases de données, vous pouvez les importer dans la base de données de catalogues Commerce Server, puis utiliser Business Desk pour les gérer.

    Pour convertir un catalogue au format XML ou CSV, vous pouvez utiliser votre système de gestion de base de données existant pour enregistrer le catalogue au format XML ou CSV, ou bien un développeur de site peut écrire un script à l’aide de Microsoft Visual Basic pour convertir ce catalogue.

    Avant que vous puissiez importer un catalogue, l’administrateur système doit créer un dossier partagé dans Commerce Server. Vous pouvez vous servir de l’Explorateur Windows pour copier le catalogue vers le dossier partagé, puis utiliser Business Desk pour l’importer dans la base de données Commerce Server.

  • Exporter des catalogues. Vous pouvez exporter vos catalogues au format XML. Vous pouvez exporter un catalogue si, par exemple, vous vendez des produits en gros et que vous souhaitez exporter votre catalogue à l’usage de détaillants. Vous pouvez également exporter un catalogue vers une autre application, par exemple, un système d’inventaire ou de tarification.

    Avant que vous puissiez exporter un catalogue, l’administrateur système doit créer un dossier partagé dans Commerce Server, ou vous devez connaître le nom d’un répertoire du serveur auquel vous avez accès. Vous pouvez ensuite utiliser Business Desk pour exporter le catalogue vers ce dossier partagé ou ce répertoire.

    Si vous souhaitez que Commerce Server importe ou exporte des catalogues selon une planification, vous pouvez demander à un développeur de site de fournir cette fonctionnalité.

  • Appliquer des remises aux produits. Vous pouvez appliquer des remises à tous les produits d’une catégorie, ou à certains produits répondant à des critères spécifiques. Par exemple, si un Product.price = 120,00, une remise de 10 pour cent est appliquée au prix de ce produit lorsque les utilisateurs l’ajoutent à leur panier d’achat. Pour plus d’informations sur l’application de remises aux produits, consultez Campagnes marketing : publicités, remises et publipostage. Pour connaître les instructions à suivre sur l’ajout d’une campagne de remise, consultez Ajout d’un élément de la campagne de remise.

  • Modifier des produits dans le catalogue. Vous pouvez modifier le nom, le prix, la description du produit, etc.

  • Mettre à jour les informations sur un produit en temps réel. Vous pouvez mettre à jour les informations sur un produit, par exemple son prix, et publier les modifications sur votre site Web. Par exemple, si des clients ont ajouté le produit à leur panier et que votre site est mis à jour avant qu’ils ne procèdent à la validation des achats, Commerce Server applique le nouveau prix au panier. Si des clients ont déjà enregistré leur panier, puis le reprennent après la mise à jour du prix, le nouveau prix s’affiche.

  • Identifier les produits qui se vendent bien. Vous pouvez exécuter des rapports Commerce Server pour identifier les produits les plus vendus par unité et par total des ventes, ainsi que les catégories les plus vendues par unité et par total des ventes. Vous pouvez par exemple utiliser le résultat de votre analyse pour appliquer une remise aux produits qui ne se vendent pas bien ou proposer des accessoires pour les produits qui se vendent bien. En outre, votre développeur de site peut personnaliser votre site pour permettre la prise en charge des ventes annexes telles que les offres de lancement et les ventes croisées intelligentes.

  • Rechercher des produits. Vous pouvez facilement trouver des produits en effectuant une recherche de propriétés ou une recherche en texte libre.

Remplissage du catalogue avec des données sur les produits

Vous pouvez utiliser le module Éditeur de catalogue de Business Desk pour entrer manuellement les données sur les produits. Vous pouvez également importer ces données à partir d’un fichier XML ou CSV. Par exemple, si vous possédez déjà un catalogue dans une autre base de données, votre administrateur système pour l’exporter sous la forme d’un fichier XML, puis vous pouvez utiliser le module Éditeur de catalogue pour importer le catalogue dans votre base de données des catalogues de Commerce Server.

Échange de catalogues à l’aide de BizTalk Server

BizTalk Server 2000 joue le rôle d’une passerelle pour l’échange de documents commerciaux entre votre société et vos partenaires commerciaux (également appelés fournisseurs). Si votre société et tous vos partenaires commerciaux utilisent BizTalk Server, vous pouvez échanger des catalogues, des commandes, des documents et d’autres formulaires électroniques. Par exemple, des fournisseurs peuvent vous envoyer leurs catalogues, que vous pouvez publier sur votre site Web aux côtés de votre propre catalogue. Lorsque des utilisateurs entrent des commandes sur votre site Web, celles-ci sont envoyées directement au fournisseur pour qu’il les exécute.

Chacun de vos partenaires commerciaux peut envoyer un ou plusieurs catalogues de ses produits. En fonction de la configuration de votre site Web, vous pouvez faire apparaître ces catalogues sous la forme d’un seul catalogue ou de plusieurs catalogues distincts. Pour plus d’informations sur l’utilisation de BizTalk Server, consultez Utilisation de BizTalk Server et Integrating with BizTalk Server (en anglais).

Structure du catalogue

Un catalogue Commerce Server se compose de deux éléments principaux :

  • Schéma du catalogue. Il s’agit d’une description des catégories et des produits d’un site. Le schéma du catalogue est disponible pour tous les catalogues d’un site.

  • Catalogue. Il s’agit d’une instance du schéma du catalogue qui contient des données.

Le tableau suivant montre un exemple de schéma de catalogue appelé Vêtements, puis une instance unique du schéma du catalogue Vêtements qui comporte des données pour le catalogue Vêtements de sport.

Schéma du catalogue | Catalogue : Vêtements de sport
Définition de catégorie : Rayon Propriétés de la catégorie Nom Description Fichier_image Largeur_image Hauteur_image | Catégorie : Rayon des maillots de sport Rayon des maillots de sport catalogue 2000 des maillots de sport Sports_shirts.gif 100 200
Définition de produit : Maillots Propriétés du produit : Nom Fabricant Prix Propriétés du composant produit : Taille Couleur Référence | Produit : Maillots de football Maillots de football Maillots Ace 120,00 FF M Vert 23354

Schéma du catalogue

Le schéma du catalogue décrit les caractéristiques des catégories et des produits d’un type de catalogue donné. Par exemple, le schéma de catalogue d’un catalogue de Vêtements de sport peut contenir les définitions de produits suivantes : Maillots, Shorts et Chaussures. Pour créer un schéma de catalogue, vous utilisez le module Définition de catalogue dans Business Desk.

Le schéma de catalogue se compose des définitions de catégories, des définitions de produits et des définitions de propriétés. Les définitions de catégories et les définitions de produits sont créées à l’aide des définitions de propriétés. La figure suivante montre la façon dont les définitions de propriétés sont partagées par les définitions de produits et les définitions de catégories.

Figure illustrant l'utilisation des propriétés dans les définitions de produits et les définitions de catégories
Nom (Texte)
Fabricant (Texte)
Prix (Devise)
Définition de catégorie
Couleur (Choix multiple) Description (Texte) Fichier_image (Nom de fichier) Largeur_image (Nombre) Hauteur_image (Nombre) Fabricant (Texte)
Nom (Texte)
Prix (Devise)
Taille (Choix multiple)
Référence (Nombre)
Propriétés
Définition du produit
Couleur (Choix multiple) Description (Texte) Fichier_image (Nom de fichier) Largeur_image (Nombre) Hauteur_image (Nombre) Fabricant (Texte)
Nom (Texte)
Prix (Devise)
Taille (Choix multiple)
Référence (Nombre)
Nom (Texte) Description (Texte) Fichier_image (Nom de fichier) Largeur_image (Nombre) Hauteur_image (Nombre)
Propriétés du composant
Taille (Choix multiple)
Couleur (Choix multiple)
Référence (Nombre)
Schéma du catalogue

Les définitions de catégories décrivent les caractéristiques spécifiques des catégories de votre catalogue. Ces caractéristiques sont appelées propriétés de la catégorie. Vous créez une définition de catégorie en lui attribuant des propriétés de la catégorie. Par exemple, la définition de catégorie Rayon peut avoir les propriétés de la catégorie suivantes : Nom, Description, Nom du fichier image, Hauteur d’image et Largeur d’image. Lorsque vous créerez une catégorie basée sur la définition de catégorie Rayon, vous entrerez les valeurs des propriétés de catégorie. Par exemple, la propriété de catégorie Nom peut correspondre à « Rayon des maillots de sport ».

Les définitions de produits décrivent les caractéristiques spécifiques d’un produit donné. Ces caractéristiques sont appelées propriétés du produit. Vous créez une définition de produit en lui attribuant des propriétés du produit. Par exemple, vous pouvez créer une définition de produit appelée Maillots qui comprend trois propriétés de produit : Nom, Fabricant et Prix. Lorsque vous créerez un produit basé sur la définition de produit Maillot, vous entrerez les valeurs des propriétés de produit. Par exemple, la propriété de produit Nom peut correspondre à « Maillot de football Ace ».

Les propriétés du produit et de la catégorie sont basées sur des définitions de propriétés. Une définition de propriété décrit les informations relatives à cette propriété comme le type de données de la propriété (par exemple, nombre, texte et décimal), le nom de la propriété et une valeur minimale pour la propriété. Par exemple, vous pouvez créer une propriété appelée Taille_maillot avec les valeurs Small, Medium et Large ou une propriété appelée Longueur avec une valeur minimale de 10 et une valeur maximale de 120.

Le schéma de catalogue peut être modifié. Vous pouvez modifier un schéma de catalogue même si ce catalogue comporte déjà des données. Par exemple, vous pouvez ajouter, supprimer ou renommer des définitions de propriétés ou modifier le type de données d’une propriété (pour passer par exemple d’un nombre à une chaîne).

Pour connaître les instructions à suivre sur la création d’un schéma de catalogue, consultez Création d’un schéma de catalogue.

Catalogues

Un catalogue est une instance d’un schéma de catalogue qui contient des données sur des produits et des catégories permettant de classer ces produits. Pour créer un catalogue, vous utilisez le module Éditeur de catalogue dans Business Desk.

Un catalogue se compose de catégories, de produits, de composants produit et de propriétés. La figure suivante montre les différentes parties d’un exemple de schéma de catalogue, et la manière dont elles sont mappées vers les parties d’un catalogue. Les propriétés sont utilisées dans la définition de catégorie et la définition de produit. La définition de catégorie « Rayon » est utilisée par la propriété « Maillots de football ». La définition de produit « Maillots de football » est utilisée pour le produit « Maillots de football Ace ».

Figure illustrant les différentes parties d'un exemple de schéma de catalogue et d'un exemple de catalogue
Schéma du catalogue
Données du catalogue
Définition de catégorie
Type de catégorie " RAYON "
Propriété Nom
Propriété Taille
Propriété Couleur
Propriété Référence
Prix : 20
Propriétés
Définition du produit
Maillots de football
Catégorie Maillots de football
Prix du maillot de football Ace : 20
Catalogue Vêtements de sport
Taille : S
Taille : S
Taille : M
Taille : M
Taille : L
Couleur : Vert
Référence :115
Catégorie
Catalogue
Identificateur unique de famille de produits = Nom
Identificateur unique de composant produit = Référence

Les catégories sont des instances individuelles d’une définition de catégorie. Par exemple, vous pouvez utiliser une définition de catégorie nommée Rayon pour créer la catégorie Maillots de football.

Les produits sont des éléments d’un catalogue. Un produit est une combinaison de définitions de propriétés. Par exemple, si vous disposez d’une définition de produit nommée Maillots de football, qui possède les propriétés Nom, Couleur et Taille, vous créez un produit pour chaque combinaison de nom, couleur et taille à inclure dans votre catalogue.

Les produits peuvent être classés par groupes d’éléments proches appelés familles de produits. Une famille de produits est un groupe de produits contenant des composants produit. Par exemple, un maillot vert, de taille large avec la référence 114 est un composant produit du produit Maillot de football ; la taille, la couleur et la référence forment un composant. Un composant produit comprend toujours un identificateur unique, tel qu’une référence, et un prix. Chaque composant produit est basé sur la même définition de produit.

Pour obtenir des instructions sur la création d’un catalogue, consultez Création d’un schéma de catalogue.

Organisation du catalogue : hiérarchies et relations

Vous pouvez créer des hiérarchies et des relations pour les catégories entre les catégories et les produits pour organiser les produits dans votre catalogue et faciliter la navigation des utilisateurs vers les articles qui les intéressent. Par exemple, vous pouvez créer une catégorie parent qui comprend deux catégories différentes, également appelées catégories enfants. Lorsque les utilisateurs accèdent à la catégorie parent, les catégories enfants s’affichent, ce qui permet aux utilisateurs de trouver rapidement les produits voulus.

La figure suivante illustre la manière dont une catégorie parent peut posséder plusieurs catégories enfants, et comment chaque catégorie enfant peut également être une catégorie parent.

Figure illustrant un exemple de catalogue
Collection de catalogues
Catalogue B
Catalogue C
Catalogue Vêtements de sport
Shorts
Maillots
Maillots de football
Survêtements
deux pièces
Maillots de football Ace
Shorts de football Ace
Accessoire

Taille :
Couleur :
Référence :

Taille :
Couleur :
Référence :

Taille :
Couleur :
Référence :

S
Noir
113

M
Bleu
114

L
Vert
115

Dans la figure ci-dessus, le catalogue Vêtements de sport possède deux catégories : Maillots et Shorts. La catégorie Maillots possède deux catégories enfants : Maillots de football et Survêtements deux-pièces. Cette organisation propose aux utilisateurs deux voies d’accès à la catégorie Survêtements deux pièces. Ils peuvent naviguer vers les survêtements via la catégorie Maillots ou la catégorie Shorts. Cette figure présente également une relation accessoire entre Maillots de football Ace et Shorts de football Ace. Si les utilisateurs sont intéressés par les maillots, ils peuvent également être intéressés par les shorts.

Pour obtenir des instructions sur la création des hiérarchies, consultez Création de hiérarchies de catégorie. Pour obtenir des instructions sur la création des relations, consultez Création de relations entre catégories et entre produits.

Identificateurs uniques dans un catalogue

Les produits et les composants produit ont tous deux des identificateurs uniques. Les identificateurs uniques sont soit un type de propriété texte, soit un type de propriété nombre. Par exemple, pour un catalogue de livres, le titre du livre peut être l’identificateur unique du produit et la référence ISBN l’identificateur unique du composant produit. Pour le livre « La Route du futur » la version reliée représente un composant, la version brochée représente un deuxième composant, et la version audio un troisième composant. Ces trois composants produit appartiennent à la famille de produits Le futur de l’e-commerce.

L’exemple suivant illustre les composants de la famille de produits Le futur de l’e-commerce.

Famille de produits = La Route du futur
Identificateur unique = Titre : La Route du futur

Composant produit = Version reliée de Le futur de l'e-commerce
Identificateur unique = ISBN : 1102334
Prix = 120,00

Composant produit = La Route du futur en version livre de poche
Identificateur unique = ISBN : 1102335
Prix = 60,00

Composant produit = La Route du futur en version audio
Identificateur unique = ISBN : 1102336
Prix = 90,00

Lorsque vous créez un catalogue, vous spécifiez les propriétés qui constituent les identificateurs uniques des produits et des composants produit.

Catalogues de base, catalogues personnalisés et groupes de catalogues

Vous pouvez créer deux types de catalogues. Vous pouvez également rassembler deux catalogues ou plus dans des groupes de catalogues.

  • Un catalogue de base contient des catégories et des produits, mais ne comporte pas de règles de tarification spécifiques. Pour plus d’informations sur la création d’un catalogue, consultez Création d’un catalogue.

  • Un catalogue personnalisé est issu d’un catalogue de base et spécifie des règles de tarification spécifiques pour les produits qu’il contient. Les prix d’un catalogue personnalisé remplacent les prix d’un catalogue de base. Vous utilisez des catalogues personnalisés pour le site d’un fournisseur, par exemple pour offrir à certaines sociétés des tarifs particuliers sur certains produits. Vous pouvez également utiliser des catalogues personnalisés pour le site d’un détaillant, s’il existe différents niveaux d’adhésion pour les clients et que vous souhaitez appliquer différents tarifs en fonction du niveau d’adhésion. Vous pouvez également afficher des tarifs différents pour les clients réguliers de votre site. Pour plus d’informations sur la création d’un catalogue personnalisé, consultez Création d’un catalogue personnalisé.

Vous déterminez le catalogue que l’utilisateur voit sur votre site en créant des groupes de catalogues. Un groupe de catalogues rassemble un ou plusieurs catalogues que vous rendez disponibles selon les différents utilisateurs ou organisations. Par exemple, vous pouvez créer un catalogue personnalisé, l’associer à un catalogue général, puis afficher ce groupe de catalogues aux membres d’une organisation spécifique. La figure suivante illustre la manière dont les membres d’un club de football peuvent consulter le catalogue vestimentaire d’une équipe avec des tarifs spéciaux.

Figure illustrant la manière dont différents utilisateurs peuvent afficher différents groupes de catalogues
Catalogue Vêtements de sport
Catalogue Vêtements d'hiver
Catalogue Vêtements de sport
Catalogue Vêtements d'hiver
Catalogue de vêtements pour l'équipe (tarification personnalisée au niveau de la catégorie)
Groupes de catalogues des membres du club
Membres d'un club de football
Tous les utilisateurs
Groupe de catalogues général

Pour plus d’informations sur la création de groupes de catalogues, consultez Création d’un groupe de catalogues.

Vous utilisez le module Utilisateurs Business Desk pour spécifier le groupe de catalogues qu’un utilisateur voit. Lorsque vous créez un utilisateur, vous indiquez le nom du groupe de catalogues. Pour plus d’informations sur la création d’un nouvel utilisateur et la spécification du groupe de catalogues, consultez Ajout d’un utilisateur.

Méthodes de tarification des produits

Vous pouvez définir le prix d’un produit d’un catalogue à l’aide de l’une des trois méthodes suivantes :

  • Tarification directe. Vous définissez le prix d’un produit dans la définition de produit. Vous pouvez réaliser cette opération lors de la création du produit ou lorsque vous le modifiez pour changer son prix. Pour connaître les instructions à suivre sur l’application d’une tarification directe, consultez Tarification d’un produit et Tarification au niveau du composant produit.

  • Tarification indirecte. Le prix est déterminé par son association avec une catégorie de tarification spécifique. Lorsqu’un produit est associé à une catégorie de tarification, son prix est remplacé par le prix défini dans la catégorie de tarification. La tarification indirecte est généralement utilisée pour appliquer le même prix à un groupe de produits, par exemple pour créer une catégorie spéciale dans laquelle tous les produits coûtent 9,90 FF. Pour connaître les instructions à suivre sur l’application d’une tarification indirecte, consultez Tarification des produits dans une catégorie.

  • Tarification personnalisée. Vous appliquez le prix à une catégorie. Vous pouvez ainsi créer un catalogue personnalisé. Il existe trois types de tarifications personnalisées que vous pouvez appliquer à un catalogue personnalisé :
    • Ajustement en fonction du pourcentage. Spécifie le pourcentage du prix catalogue auquel le produit doit être vendu. Par exemple, pour appliquer une remise de 10 %, vous devez taper 90, indiquant ainsi que le produit doit être vendu à 90 % du prix indiqué dans le catalogue.

    • Ajustement fixe. Il indique le montant exact à appliquer pour augmenter ou baisser le prix catalogue. Par exemple, pour retirer 12 FF par rapport au prix, vous devez taper –12 pour indiquer que le produit doit être vendu 12 FF de moins. Pour augmenter le prix de 12 FF, tapez 12 pour indiquer que le produit doit être vendu 12 FF de plus.

    • Prix défini. Spécifie le prix exact du produit. Par exemple, le produit est vendu pour exactement 60,00 FF.

    Pour connaître les instructions à suivre sur l’application d’une tarification personnalisée, consultez Tarification d’un catalogue personnalisé.

Analyse des ventes de catalogues

Le tableau suivant répertorie les rapports inclus dans Commerce Server, qui vous permettent d’analyser les données sur les ventes de catalogues.

Rapport | Description
Ventes client | Permet de consulter les détails relatifs au client, le total des ventes et le total des commandes. Ces informations permettent de cibler les clients à l’aide de campagnes marketing en ligne, par exemple les promotions par publipostage.
Événements du panier d’achat | Déterminez le moment où des articles sont ajoutés ou supprimés des paniers d’achats.
Itinéraire d’achat de l’acheteur | Analysez les schémas de visite de l’utilisateur. Ce rapport fournit des données telles que le nombre moyen de visites, les visites par achat, le total des ventes, le nombre de ventes et le comptage des visiteurs.
Ventes produits | Analysez le volume et le chiffre d’affaires des ventes par date. Ce rapport fournit des données sur le volume et le chiffre d’affaires.
Événements de commande | Analysez le moment où les commandes sont passées sur votre site. Ce rapport fournit des données telles que la date, l’heure, l’événement et le type d’utilisateur.
Synthèse des dépenses du client | Permet d’analyser le volume et chiffre d’affaires des ventes par client.

Pour obtenir une liste de tous les rapports Commerce Server, consultez Rapports Commerce Server. Pour plus d’informations sur l’exécution de rapports, consultez Exécution de rapports.

Voir aussi

Catalogues Business DesK

Ajout d’un élément de la campagne de remise

Integrating a Third-Party Product Catalog (en anglais)


Data Warehouse

Data Warehouse de Commerce Server 2000 représente un ensemble de processus utilisés par un administrateur système pour importer et gérer des données dans l’ensemble résultant de l’association d’une base de données SQL Server à une base de données OLAP (Online Analytical Processing). Data Warehouse importe un grand volume de données d’utilisation du site collectées à partir de sources de données différentes. Ces données sont rassemblées à partir de vos journaux de serveur Web, des bases de données Commerce Server (bases de données de profils, de catalogues, de campagnes marketing et de transactions) et des autres sources de données spécifiées. Data Warehouse gère ensuite les données dans les bases de données SQL Server et OLAP. Ces bases de données sont par la suite utilisées pour générer des rapports ainsi que pour analyser et visualiser les segments de population.

Data Warehouse est conçu pour prendre en charge les requêtes et les analyses avec fiabilité. Les modules Analyse de Commerce Server Business Desk vous permettent d’analyser les données de Data Warehouse, par exemple, pour identifier les tendances des utilisateurs ou analyser l’efficacité d’une campagne marketing, puis pour mettre à jour votre site et cibler un contenu en fonction de groupes d’utilisateurs bien précis ou vendre des produits spécifiques.

Utilisation de Data Warehouse dans la gestion d’un site Web

Structure de Data Warehouse

Importation de données dans Data Warehouse

Préparation des données pour une analyse à l’aide de OLAP Server

Analyse de vos données

Utilisation de Data Warehouse dans la gestion d’un site Web

Data Warehouse associe les données de plusieurs sources en une structure commune, ce qui donne aux données la cohérence nécessaire pour produire des rapports, analyser et visualiser les segments de population. Cela s’appelle le système d’analyse commerciale de Commerce Server. L’analyse commerciale est un moyen d’observer les données de votre site Web pour répondre à des questions spécifiques sur ses performances. Vous pouvez utiliser les informations fournies par l’analyse commerciale pour améliorer vos prestations vis-à-vis des clients et cibler un contenu en fonction des utilisateurs.

L’analyse commerciale permet d’effectuer des mesures spécifiques des performances de votre site Web, notamment :

  • Quelle est l’adresse URL visitée par l’utilisateur avant d’accéder à votre site (adresse URL de référence) ?

  • Quel est le type de publicité qui marche ?

  • Quelles sont les pages les plus visitées sur votre site Web ?

  • Quels sont les produits qui se vendent le mieux ?

  • Quels sont les utilisateurs qui achètent le plus ?

Vous pouvez utiliser ces mesures pour modifier votre site Web, ce qui permettra d’accroître les ventes et de fidéliser les utilisateurs. Par exemple, vous affichez une publicité pour promouvoir un nouveau produit. Après une semaine d’affichage, vous pouvez exécuter un rapport pour déterminer si la publicité a permis d’augmenter les ventes du produit. Si les ventes n’ont pas augmenté, vous pouvez mettre à jour votre site en affichant, par exemple, une remise de 10 pour cent sur le nouveau produit, et attendre une semaine pour déterminer si cette remise a permis d’augmenter les ventes.

Structure de Data Warehouse

Data Warehouse se compose de deux parties principales :

  • Base physique. Il s’agit d’une base de données Microsoft SQL Server que vous pouvez interroger à l’aide de requêtes SQL, et d’une base de données OLAP qui vous permet d’exécuter des rapports.

  • Schéma logique. Il s’agit d’un modèle conceptuel mappé vers les données de la base physique.

La figure suivante montre la relation existant entre la base physique et le schéma logique.

Figure illustrant la relation existant entre la base physique et le schéma logique
Commerce Server Data Warehouse
Schéma logique

Classe 1
Membre de données
Membre de données

Classe 2
Membre de données
Membre de données

Classe 3
Membre de données
Membre de données

est mappé vers

Base physique
Tâche DTS de préparation des rapports

Serveur OLAP

SQL Server

Base physique

La base physique de Data Warehouse comprend une base de données que vous pouvez interroger à l’aide de requêtes SQL. La base physique contient toutes les données que vous avez importées à partir de différentes sources.

Commerce Server crée automatiquement la base physique de Data Warehouse dans la base de données SQL Server et la base de données OLAP. Data Warehouse fournit les données nécessaires à tous les rapports Commerce Server disponibles dans les modules Analyse Business Desk.

Vous n’avez pas besoin de modifier directement la base physique de Data Warehouse. Si vous devez étendre Data Warehouse, par exemple pour inclure des données tierces, un développeur de site peut écrire un programme chargé d’ajouter les champs nécessaires via le schéma logique.

Schéma logique

Le schéma logique fournit une vue compréhensible des données de Data Warehouse, et prend en charge un processus d’importation efficace. Par exemple, le schéma logique permet à un développeur de site de modifier l’emplacement de stockage des données dans les tables physiques sous-jacentes. Lorsqu’un développeur de site écrit du code pour ajouter, mettre à jour ou supprimer des données dans Data Warehouse, il interagit avec le schéma logique. Lorsque Commerce Server accède aux données de Data Warehouse, il y parvient grâce au schéma logique. Seul le développeur de site a besoin d’une connaissance approfondie du schéma logique.

Un schéma logique comprend les éléments suivants :

  • Classe. Il s’agit d’une collection logique de membres de données. Par exemple, la classe Utilisateur inscrit contient des membres de données décrivant un utilisateur inscrit.

  • Membre de données. Il s’agit d’une structure qui stocke une partie de données. Par exemple, le membre de données Adresse électronique de la classe Utilisateur inscrit stocke l’adresse de messagerie d’un utilisateur inscrit.

  • Relation. Relation de type parent-enfant entre deux classes. Cette relation définit le nombre d’instances de chaque classe et fournit le mécanisme de partage des membres de données entre les classes. Par exemple, Utilisateur inscrit est un parent de la classe enfant Demande. Il peut exister de nombreuses demandes pour un utilisateur inscrit.

Le schéma logique utilise des classes, des membres de données, des relations et d’autres structures de données pour mapper les données dans la base physique.

Importation de données dans Data Warehouse

Les données contenues dans Data Warehouse proviennent généralement de plusieurs sources de données : journaux de serveur Web, bases de données Commerce Server et toutes les autres sources de données spécifiées. La figure suivante montre les sources des données opérationnelles, et la manière dont ces données peuvent être utilisées pour prendre en charge les tâches exécutées à partir de Business Desk.

Figure illustrant la manière dont les données sont importées dans le Data Warehouse
Business Desk
Exécuter des rapports et analyser les données
Gérer les profils utilisateur
Exécuter des campagnes de publipostage
Commerce Server Data Warehouse
Base de données du service de publipostage
Bases de données Commerce Server
Données de profil utilisateur Données d'événement
Données de transaction
Données de campagne marketing Données de catalogue
Autres
Données de catalogue
Données de campagne marketing
Données de transaction
Données d'utilisation du Web
Données de profil utilisateur
Fichiers journaux du serveur Web
Site Web
Utilisateur

Étant donné que Data Warehouse ne fait pas partie de votre environnement d’exécution, un administrateur système doit déterminer la fréquence à laquelle importer les données opérationnelles dans Data Warehouse. Par exemple, vous pouvez configurer Data Warehouse de telle sorte qu’il importe automatiquement les nouvelles données tous les jours ou toutes les semaines. La fréquence à laquelle vous devez importer des données dépend du volume de nouvelles données collectées quotidiennement dans vos sources de données opérationnelles. Commerce Server comprend des tâches DTS (Data Transformation Service) personnalisées qui simplifient l’importation des données dans Data Warehouse. Ces tâches DTS importent les données utilisées avec les rapports disponibles dans Business Desk.

Même si les données opérationnelles peuvent être importées à partir de différents types de bases de données —ou à partir de supports de stockage qui ne sont pas des bases de données— toutes les données sont structurées de manière cohérente après avoir été rassemblées dans Data Warehouse. Par exemple, vous pouvez posséder une source de données dans laquelle le prénom et le nom d’un utilisateur sont stockés dans le même champ, et une autre source de données dans laquelle le prénom et le nom sont stockés dans des champs séparés. Lorsque ces données sont importées dans Data Warehouse, elles sont automatiquement structurées de manière cohérente, ce qui rend ainsi possible vos activités d’analyse.

Préparation des données pour une analyse à l’aide de OLAP Server

Une fois les données importées dans la base de données SQL Server de Data Warehouse, elles doivent être préparées à l’analyse de telle sorte que les chefs d’entreprise puissent l’utiliser pour exécuter des rapports. Pour préparer les données à la création d’un rapport, l’administrateur système exécute une tâche DTS qui exporte un sous-ensemble spécifique de données de la base de données SQL Server vers la base de données OLAP. Dans la base de données OLAP, les données sont stockées dans des cubes multidimensionnels.

En stockant les données dans des cubes OLAP, au lieu des tables relationnelles de SQL Server, Data Warehouse peut extraire plus rapidement les données nécessaires à la création de rapports. Les données sont récupérées plus rapidement à partir des cubes car elles sont agrégées. En d’autres termes, ces données sont déjà associées entre elles, c’est pourquoi il est plus facile de les récupérer plutôt que de rechercher de petites parties de données dans l’ensemble d’une base de données relationnelle. Par exemple, à l’aide d’un serveur OLAP, vous pouvez exécuter un rapport qui répertorie les utilisateurs visitant votre site en fonction de l’heure de leur visite et de la première page ASP à laquelle ils accèdent. Il est extrêmement difficile d’exécuter ce type de rapport sur une base de données SQL Server de grande taille.

Dans les cubes multidimensionnels, les données sont regroupées en deux types de structures :

  • Mesures. Il s’agit des valeurs numériques analysées.

  • Dimensions. Il s’agit d’une entité commerciale, telle que la couleur, la taille, le produit ou l’heure. Par exemple, la dimension « couleur » vous permet de mettre en évidence le nombre de produits vendus de couleur rouge par rapport au nombre de produits de couleur bleue, alors que la dimension « taille » met en évidence le nombre de produits vendus de grande taille par rapport au nombre de produits de petite taille.

C’est la relation entre les structures de dimension (par exemple, la couleur) et de mesure (par exemple, le nombre de produits vendus) qui fournit la base de vos rapports sur l’activité des utilisateurs.

La figure suivante illustre les dimensions et les mesures d’un rapport.

Capture d'écran d'un rapport avec des légendes de dimension et d'indicateur

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Analyse de vos données

Vous utilisez les modules Analyse Business Desk pour analyser les données relatives à l’activité des utilisateurs sur votre site. Vous pouvez utiliser les modules Analyse pour exécuter des rapports sur Data Warehouse, ou visualiser et analyser des modèles de segments, qui identifient les segments d’utilisateurs visitant votre site.

Rapports

Commerce Server propose deux types de rapports qui permettent d’analyser les données utilisateur :

  • Les rapports dynamiques sont créés lors de l’exécution. Chaque fois que le rapport est exécuté, il récupère les données les plus récentes dans Data Warehouse. Seule la définition du rapport, qui ne change jamais, est stockée. Commerce Server n’enregistre pas les rapports dynamiques terminés ; cependant, vous pouvez exporter les résultats des rapports dynamiques vers Microsoft® Excel pour les y stocker. Pour plus d’informations sur l’exportation des résultats d’un rapport dynamique vers Microsoft Excel, consultez Exportation d’un rapport dynamique.

  • Les rapports statiques sont immédiatement exécutés sur demande, puis stockés avec leurs données dans le module Analyse de rapports. Le rapport s’affiche dans une fenêtre du navigateur au format HTML. Vous pouvez exporter les résultats d’un rapport statique vers le module Gestionnaire de listes, puis utiliser cette liste dans une campagne de publipostage. Vous pouvez envoyer ces rapports à d’autres personnes par courrier électronique, les poster sur votre site Web, et les modifier dans d’autres applications. Par exemple, à l’aide de Microsoft Internet Explorer, vous pouvez exporter le rapport dans un document Word, puis le modifier.

Commerce Server 2000 comprend plusieurs rapports que vous pouvez exécuter à partir de Business Desk, tels que le Rapport de synthèse directorial, le Rapport Produits par quantité vendue et le Rapport Nombre d’accès par utilisateur. Vous pouvez utiliser un ou plusieurs de ces rapports, ou personnaliser l’un d’eux pour récupérer d’autres données. Pour obtenir une liste des rapports inclus dans Commerce Server, consultez Rapports Commerce Server.

Modèles de segments

Les modèles de segments identifient les groupes d’utilisateurs qui partagent des caractéristiques similaires. Vous pouvez utiliser la ressource Predictor de Commerce Server pour rechercher des données de Data Warehouse et générer des modèles de segments. Vous analysez les modèles de segments à l’aide du module Identification de segments dans Business Desk. Pour obtenir des informations conceptuelles sur les modèles de segments, consultez Prévision et extraction de données.

Voir aussi

Working with the Data Warehouse (en anglais)

Exécution de Data Warehouse

Analyse Business Desk


Prévision et data mining

La ressource Predictor de Commerce Server est un puissant outil d’exploitation de données qui vous permet de doter votre site Web de fonctionnalités de prévision, par exemple pour afficher des recommandations de produits. La ressource Predictor vous permet également d’analyser les caractéristiques des utilisateurs qui visitent votre site, et d’identifier les relations existant entre ces caractéristiques. Vous pouvez ensuite utiliser ces informations pour cibler un contenu en fonction des utilisateurs possédant des caractéristiques similaires.

La ressource Predictor exploite les données collectées dans Data Warehouse. La base de données de Data Warehouse peut stocker toutes les données du site, y compris les données de profil utilisateur, les données d’historique des clics et les données de transaction. Bien que la base de données de Data Warehouse soit de taille importante, les capacités de la ressource Predictor permettent d’extraire efficacement les données.

Utilisation de la prévision dans la gestion d’un site Web

Modèles d’analyse

Création de modèles d’analyse

Utilisation de la prévision dans la gestion d’un site Web

Votre développeur de site utilise la ressource Predictor de Commerce Server pour ajouter des fonctionnalités prédictives à votre site. La ressource Predictor vous permet d’effectuer les opérations de profil et de ciblage suivantes :

  • Fournir une prise en charge intelligente de la vente croisée. Il s’agit de suggérer des articles susceptibles d’intéresser un utilisateur en établissant une corrélation entre les propriétés de cet utilisateur ou les articles qu’il a commandés, et une base de données d’articles que d’autres utilisateurs ont commandés antérieurement. Vous pouvez restreindre les articles suggérés à une partie spécifique du catalogue.

  • Segmenter les utilisateurs en fonction de leur comportement ou de leur profil. Il s’agit d’analyser les modèles de segments pour identifier les caractéristiques qui cloisonnent les utilisateurs en segments de population. Votre administrateur système construit des modèles de segments que vous pouvez analyser à l’aide du module Identification de segments de Commerce Server Business Desk.

  • Remplir les valeurs manquantes dans votre base de données de profils utilisateur. Il s’agit de prédire une valeur manquante, par exemple, une propriété de profil utilisateur non fournie par l’utilisateur.

Modèles d’analyse

La ressource Predictor permet de construire des modèles d’analyse à partir de données. Un modèle d’analyse est un ensemble de relations statistiques basées sur les propriétés connues d’anciens utilisateurs du site, sur leur historique d’achats, de clics, ou tout autre comportement. Ce modèle contient des informations sur les types d’utilisateurs qui visitent votre site mais pas sur des utilisateurs spécifiques. Les informations détaillées utilisées pour créer un modèle d’analyse sont stockées dans Data Warehouse de Commerce Server, ou une autre source de données.

Les modèles d’analyse vous permettent de réaliser un profil implicite de l’utilisateur et de cibler un contenu en fonction des utilisateurs :

  • Profil implicite de l’utilisateur. S’il manque une information de profil concernant un utilisateur, par exemple le sexe auquel il appartient, cette information peut être extrapolée par le modèle d’analyse en fonction des propriétés de synthèse de l’ensemble des utilisateurs visitant votre site.

  • Ciblage de contenu. Vous pouvez utiliser les modèles d’analyse pour ajouter des fonctionnalités prédictives à votre site Web. Par exemple, vous avez la possibilité de présenter aux utilisateurs une liste classée de produits recommandés dans votre catalogue, ou d’afficher les publicités qui peuvent les intéresser. Vous pouvez également visualiser les modèles d’analyse pour analyser les caractéristiques des utilisateurs visitant votre site, identifier les relations existant entre ces caractéristiques, puis cibler un contenu en fonction des utilisateurs possédant des caractéristiques similaires.

Deux types de modèles d’analyse sont utilisés dans Commerce Server : les modèles de prévision et les modèles de segments.

Modèles de prévision

Un modèle de prévision, ensemble d’arborescences de décision également appelé réseau de dépendances, permet de fournir des conseils d’achat en temps réel aux utilisateurs qui visitent votre site, et de deviner les propriétés de profil encore inconnues de certains utilisateurs. Un modèle de prévision synthétise les relations existant entre les données sous forme de règles. Par exemple, un modèle de prévision peut indiquer qu’un visiteur de votre site, du sexe masculin, de plus de 55 ans et qui achète des vêtements de sport, est susceptible d’acheter également du matériel de golf. Vous pouvez utiliser ce modèle pour proposer des conseils en temps réel en matière d’achat de matériel de golf aux utilisateurs correspondant au profil.

Les modèles de prévision proposent généralement des conseils plus précis que les règles élaborées par des personnes, car leurs prévisions sont basées sur l’historique des activités du site ; par conséquent, cela se traduit par une augmentation des ventes.

Pour analyser les modèles de prévision, vous pouvez utiliser le Prediction Model Viewer dans Commerce Server. Pour plus d’informations sur l’affichage de modèles de prévision, consultez Affichage des modèles d’analyse.

Modèles de segments

Un modèle de segment, également appelé modèle de cluster, partitionne les utilisateurs qui ont tendance à posséder des propriétés ou des comportements similaires en segments. Vous pouvez utiliser ces segments pour mieux comprendre les utilisateurs qui visitent votre site, et adopter ainsi une stratégie de marketing appropriée. Par exemple, vous remarquez une explosion des ventes pour un livre de récits imaginaires pour enfants. Vous constatez que la plupart des achats de ce livre sont effectués par des utilisateurs appartenant à un segment dont les caractéristiques sont les suivantes : femme de plus de 40 ans, avec des revenus supérieurs à 300 000 FF par an et un niveau d’études supérieures. Vous pouvez à présent offrir des produits similaires aux utilisateurs de ce segment.

Vous utilisez le module Identification de segments dans Business Desk pour analyser les modèles de segments. Pour plus d’informations sur le module Identification de segments, consultez Analyse des segments de population.

Création de modèles d’analyse

Chaque modèle d’analyse est basé sur une configuration de modèle, qui est une description des données à utiliser pour créer le modèle. Une configuration de modèle permet de spécifier les éléments suivants :

  • Une source de données pour la création du modèle d’analyse. En règle générale, la source de données est représentée par Data Warehouse car il contient d’importants volumes de données utilisateur. Cependant, vous pouvez utiliser une base de données externe pour construire un modèle d’analyse.

  • Des attributs du modèle. Un attribut identifie les colonnes de données utilisateur (représentées dans une table) à inclure dans le modèle. Un attribut peut inclure des données de profil utilisateur, un historique des achats ou un historique des clics.

Commerce Server comprend une configuration de modèle des transactions, qui est définie dans le schéma de Data Warehouse. La configuration de modèle des transactions vous permet de construire des modèles à partir de l’historique des achats. Si votre site requiert une configuration de modèle personnalisée, un développeur de site peut en créer une nouvelle. Pour plus d’informations sur la création de configurations de modèles personnalisées, consultez Predictor Schema (en anglais).

Dès que vous avez collecté des données, vous pouvez utiliser les configurations de modèles pour créer des modèles d’analyse. Pour construire un modèle d’analyse, l’administrateur système utilise la ressource Predictor dans Commerce Server Manager. Les modèles ne sont pas construits sur le serveur Web, c’est la raison pour laquelle le processus de construction n’a pas d’incidence sur les performances de votre site.

Une fois le modèle construit, l’administrateur système peut transférer une copie de celui-ci vers chacun de vos serveurs Web (tous les serveurs Web utilisent le même modèle), puis activer les fonctionnalités prédictives sur votre site. Vous pouvez afficher le modèle de prévision ou le modèle de segment pour analyser les caractéristiques des utilisateurs visitant votre site.

Une fois que vous avez rassemblé un volume important de nouvelles données, votre administrateur système doit reconstruire vos modèles d’analyse. Cependant, vous créez rarement des configurations de modèle d’analyse, seulement pour modifier ce que vous essayez de prévoir ou d’analyser.

Voir aussi

Predictor Schema (en anglais)

Exécution de la ressource Predictor

Analyse des segments de population

Programmer’s Reference (en anglais)

Ciblage et personnalisation


Pipelines

Un pipeline est une infrastructure logicielle extensible qui définit et relie entre elles une ou plusieurs étapes d’un processus commercial, en les exécutant sous forme séquentielle pour effectuer une tâche spécifique. Par exemple, le pipeline de traitement des commandes fournit la séquence des étapes utilisées pour traiter les achats de votre site. Au cours de la première étape du pipeline de traitement des commandes, vous récupérez les informations sur le produit à partir de la base de données stockant les données de catalogue. Au cours de l’étape suivante, vous ajoutez l’adresse de l’utilisateur à la commande. Chaque étape du pipeline représente une catégorie de travail. L’ordre des étapes détermine la séquence d’exécution du travail.

Commerce Server 2000 comprend un ensemble de pipelines qui effectuent une bonne partie du traitement standard requis par un site Commerce Server. Un développeur de site peut personnaliser ces pipelines de telle sorte qu’ils répondent aux besoins spécifiques du site. Par exemple, un développeur de site peut ajouter de nouvelles étapes au pipeline, intégrer les composants du pipeline à votre système existant, ou remplacer ces composants par d’autres fournis par des tierces parties.

Types de pipelines

Structure d’un pipeline

Création et modification des pipelines

Types de pipelines

Commerce Server comprend les types de pipelines suivants :

  • Pipeline de sélection de contenu. Il sélectionne le contenu à afficher aux utilisateurs. Par exemple, il détermine les publicités qu’un utilisateur doit voir ou les remises qu’il doit recevoir, en fonction des expressions de ciblage créées à l’aide de Commerce Server Business Desk, ainsi que le nombre de publicités à proposer, et d’autres facteurs.

  • Pipeline de traitement des événements. Il enregistre les événements liés au contenu affiché (par exemple, un utilisateur cliquant sur une publicité) qu’il stocke dans les bases de données Commerce Server. Ces informations sont ensuite utilisées pour la création de rapports, par exemple, sur le nombre d’utilisateurs ayant cliqué sur une publicité.

  • Pipeline du service de publipostage. Il crée et envoie des messages pour les campagnes de publipostage. Il peut créer des messages électroniques personnalisés ou des messages avec un contenu statique.

  • Pipeline de traitement des commandes. Il traite les commandes au niveau de la relation entreprise-client (vente au détail) ou entreprise-entreprise (vente en gros). Ces pipelines sont une garantie que la commande passe par toutes les étapes nécessaires pour être traitée de manière appropriée. Par exemple, ce type de pipeline récupère la description du produit dans le catalogue, l’adresse de livraison de l’utilisateur, calcule le montant des taxes ainsi que le prix total.

    Commerce Server comprend les types de pipelines de traitement des commandes suivants :

    • Pipeline de produit. Il calcule le prix et les remises d’un produit.

    • Pipeline de planification. Il vérifie l’intégrité de la commande. Par exemple, si la commande ne contient aucun élément, une erreur est générée.

    • Pipeline d’achat. Il accepte l’achat final résultant d’un bon de commande, stocke la commande dans une base de données, puis de manière facultative, il finalise le reçu et écrit le contenu de la commande dans la base de données des reçus.

Structure d’un pipeline

Un pipeline se définit dans un fichier de configuration de pipeline, lequel possède l’extension .pcf. Dans le fichier .pcf, vous pouvez identifier les étapes du pipeline. Chaque étape contient un ou plusieurs composants de pipeline. Un développeur de site peut configurer chaque étape afin de travailler sur les besoins spécifiques à votre site.

La figure suivante montre les étapes du Pipeline d’achat au détail (fichier Purchase.pcf).

Figure illustrant les étapes du pipeline d'achat au détail

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Les informations sont transmises d’une page ASP au pipeline à l’aide des deux dictionnaires suivants :

  • Dictionnaire de contextes. Il s’agit d’un dictionnaire en lecture seule qui fournit au pipeline des informations sur l’environnement. Par exemple, il peut contenir la chaîne de connexion d’une base de données.

  • Dictionnaire de commandes. Il s’agit d’un dictionnaire en lecture-écriture qui fournit les données que le pipeline doit traiter. Par exemple, lorsqu’un utilisateur passe une commande, toutes les informations sont rassemblées dans le dictionnaire de commandes, puis sont transmises au pipeline de traitement des commandes.

Le contenu de chaque dictionnaire est dépendant du type de pipeline. Un développeur de site spécifie les informations à inclure dans le dictionnaire sur la page ASP.

Les pipelines Commerce Server peuvent être exécutés comme des transactions, ce qui permet au pipeline d’annuler le processus en cas d’erreur. En outre, les pipelines Commerce Server tirent parti de la fonctionnalité de mise en pool des objets de Microsoft Windows 2000 Server pour augmenter considérablement la vitesse de traitement. Pour plus d’informations sur la mise en pool des objets, consultez la documentation en ligne de Windows 2000 Server.

Création et modification des pipelines

Pipeline Editor permet à un développeur de site de créer de nouveaux pipelines ou de modifier ceux qui existent déjà. Commerce Server fournit sept modèles de pipeline préconfigurés que vous pouvez utiliser comme base pour créer votre pipeline personnalisé. Les fichiers modèles permettant de créer de nouveaux pipelines portent l’extension .pct (modèle de configuration de pipeline). Vous pouvez modifier les noms d’étapes, et ajouter ou supprimer des étapes. Vous pouvez ajouter ou supprimer des composants dans n’importe quelle étape. Pour plus d’informations, consultez « Working with Pipelines » dans l’aide de Commerce Server 2000.

Voir aussi

Working with Pipelines (en anglais)

Building Pipeline Components (en anglais)

Pipeline Component Reference (en anglais)

Extending the Content Selection Framework (en anglais)


Ciblage et personnalisation

Le ciblage et la personnalisation sont des processus de fourniture de contenu personnalisé à un ou plusieurs utilisateurs, ou à n’importe quelle autre entité commerciale dotée d’un profil. Par exemple, si vous gérez un site Web sur le sport, vous pouvez fournir des informations axées sur le tennis uniquement aux joueurs de tennis ou aux utilisateurs intéressés par le tennis. Vous pouvez réaliser des annonces concernant les prochains tournois de tennis, ou des publicités et des promotions pour les produits liés au tennis.

Commerce Server 2000 vous permet d’effectuer deux types de ciblage :

  • Ciblage basé sur des expressions. Également appelé ciblage explicite. Il s’utilise lorsque vous connaissez les propriétés de profil des utilisateurs auxquels vous fournissez du contenu, ou lorsque le contexte vous est familier et que vous savez quel est le contenu à offrir. Les modules Campagnes marketing de Commerce Server Business Desk vous permettent de spécifier ce type d’informations et de fournir le contenu souhaité aux utilisateurs.

  • Prévision. Également appelé ciblage implicite. Il s’utilise lorsque vous ne connaissez pas toutes les propriétés de profil nécessaires pour cibler l’utilisateur, ou que vous n’avez pas de contenu spécifique à fournir. La ressource Predictor de Commerce Server vous permet d’extrapoler ce type d’informations à partir des données utilisateur existantes, de manière à fournir un contenu intéressant chaque utilisateur. Pour obtenir des informations conceptuelles sur la prévision, consultez « Prévision et data mining », plus haut dans ce chapitre.

Le ciblage basé sur des expressions et la prévision améliorent votre capacité à fournir un contenu intéressant les utilisateurs qui le reçoivent. Les utilisateurs sont plus enclins à revenir sur votre site lorsqu’ils s’attendent à recevoir un contenu personnalisé.

Utilisation des méthodes de ciblage dans la gestion d’un site Web

Ciblage basé sur des expressions

Générateur d’expressions

Traitement des expressions

Utilisation des méthodes de ciblage dans la gestion d’un site Web

Vous pouvez cibler un contenu en fonction de n’importe quel élément à caractère commercial possédant un profil. Par exemple, vous pouvez cibler un contenu en fonction d’utilisateurs anonymes, d’utilisateurs inscrits, de sociétés ou de contextes. Pour obtenir des informations conceptuelles sur les profils, consultez Profils.

Business Desk vous permet de cibler un contenu en fonction d’éléments à caractère commercial. Par exemple, vous pouvez effectuer les actions suivantes :

  • Créer une campagne de publipostage pour adresser des messages personnalisés aux utilisateurs.

  • Fournir aux utilisateurs un contenu tel que de la publicité, d’après certaines propriétés de profil utilisateur. Par exemple, vous avez la possibilité d’afficher des publicités pour des vélos aux utilisateurs dont la propriété Sport favori est « Cyclisme ».

  • Identifier des groupes de pages Web, puis cibler le contenu à afficher uniquement sur ces pages, ou seulement lorsque des utilisateurs possédant des propriétés spécifiques accèdent à ces pages.

  • Afficher un contenu sur une page en fonction des propriétés d’un autre contenu sur cette page. Par exemple, si votre site Web propose des actualités, vous pouvez attribuer des profils au contenu en spécifiant si la propriété « Type_Temps » est « Chaud » ou « Froid ». Si Type_temps = Chaud, vous pouvez afficher une publicité pour des climatiseurs.

  • Appliquer des remises à certains produits de votre catalogue d’après leurs caractéristiques ou en fonction du profil utilisateur.

  • Choisir le moment où une remise doit être affichée et celui où elle doit être appliquée à la commande. Par exemple, vous pouvez appliquer une remise au moment où les utilisateurs placent l’article dans leur panier ou lorsqu’ils procèdent à la validation des achats.

Ciblage basé sur des expressions

Le ciblage basé sur des expressions est un processus de création d’expressions qui définit les utilisateurs ou le contexte à cibler, ainsi que le contenu à fournir. Une expression est une condition qui est évaluée par rapport à des profils afin de déterminer si un contenu doit être fourni ou si une autre action doit être effectuée. Par exemple, user.totalvisit > 100 est un exemple d’expression. Si cette expression prend la valeur « True », un contenu spécifique s’affiche pour l’utilisateur.

Les modules Campagnes marketing Business Desk vous permettent de créer des expressions, puis d’associer ces expressions à l’action à effectuer une fois l’expression évaluée. Vous pouvez créer deux types d’expressions :

  • Expressions de ciblage. Elles identifient l’emplacement, le moment et le destinataire du contenu à afficher. Par exemple, vous pouvez cibler un contenu pour des utilisateurs possédant des propriétés de profil spécifiques. Vous pouvez également cibler un contenu en fonction des sections spécifiques d’un site Web, appelées groupes de pages. Par exemple, vous pouvez créer une expression de ciblage qui affiche certaines publicités uniquement sur les pages de sport.

  • Expressions de catalogue. Elles indiquent les produits d’un catalogue auxquels il est possible d’appliquer une remise. Par exemple, Prix du produit = 120,00 peut être une expression de catalogue. Si cette expression prend la valeur « Vrai » pour un produit donné, une remise de 10 pour cent est appliquée au prix de ce produit lorsque les utilisateurs l’ajoutent à leur panier d’achat.

Après avoir créé des expressions de ciblage, vous pouvez les associer pour former un groupe cible. Un groupe cible est un ensemble d’expressions et d’actions. Par exemple, vous créez une expression destinée à afficher un contenu spécifique aux utilisateurs ayant visité le site 10 fois, et une autre expression pour afficher un contenu aux utilisateurs ayant acheté un maillot de football. Vous pouvez associer les deux expressions en un groupe cible à l’aide des instructions ET ou OU. Exemple :

Si l’utilisateur a visité le site 10 fois ET l’utilisateur a acheté un maillot de football,

Afficher une publicité pour un produit lié au football.

Dans un groupe cible, vous associez les expressions en spécifiant l’action à entreprendre lorsque chaque expression prend la valeur « True ». Chaque action possède deux multiplicateurs : un multiplicateur à appliquer si l’expression prend la valeur « Vrai », et un multiplicateur à appliquer si l’expression prend la valeur « Faux ». Lorsque le multiplicateur est appliqué, l’expression reçoit un score qui détermine si le contenu peut être fourni ou non. Vous pouvez spécifier les actions suivantes :

  • Cibler. Si l’expression prend la valeur « True », le score augmente, de même que la probabilité d’affichage du contenu. Si l’expression prend la valeur « False », le score n’est pas modifié. Dans ces deux scénarios, le contenu peut être fourni.

  • Exiger. Si l’expression prend la valeur « True », le contenu peut être fourni ; si la valeur est « False », le contenu ne peut pas être fourni.

  • Exclure. Si l’expression prend la valeur « True », le contenu ne peut pas être fourni ; si la valeur est « False », le contenu peut être fourni.

  • Sponsoriser. Si l’expression prend la valeur « True », le contenu peut être fourni et aucun autre contenu n’est possible sauf s’il possède également une expression avec action = Sponsoriser. (Sponsoriser ne possède qu’un seul multiplicateur.) Par exemple, si Microsoft sponsorise une publicité sur une page d’accueil, seules les publicités de Microsoft s’affichent ; cependant, s’il existe plusieurs publicités d’autres sociétés sponsorisant la page d’accueil, ces publicités peuvent également être affichées.

Un développeur de site peut modifier les valeurs des multiplicateurs livrés avec Commerce Server. Cette opération se justifie si vous voulez donner aux expressions comportant un seul type d’action une priorité plus élevée qu’aux expressions comportant un type d’action différent.

Générateur d’expressions

La fonctionnalité de Commerce Server qui permet aux chefs d’entreprise de créer, modifier et afficher des expressions s’appelle le Générateur d’expressions. Le Générateur d’expressions fournit l’interface utilisateur nécessaire à la création d’expressions. Il accède aux propriétés appropriées pour créer une expression, la nommer et la stocker dans les bases de données Commerce Server.

Le Générateur d’expressions est conçu de telle sorte que les développeurs de site peuvent facilement incorporer sa fonctionnalité et son interface utilisateur dans d’autres modules Business Desk. En outre, il peut être appelé par n’importe quelle application Web qui utilise et manipule des expressions, ce qui vous permet de l’intégrer à d’autres processus. Par exemple, si vous possédez déjà un processus de gestion de contenu, vous pouvez y incorporer la fonctionnalité du Générateur d’expressions, puis cibler le contenu en fonction des utilisateurs.

Pour créer des applications qui utilisent le Générateur d’expressions, vous effectuez les actions suivantes :

  • Définir des profils. Vous spécifiez les profils à utiliser par l’expression, et le Générateur d’expressions charge ces définitions de profils pour élaborer l’expression. Vous pouvez également spécifier un filtre de propriétés de profil pour limiter les propriétés du profil qui seront à la disposition d’un utilisateur du Générateur d’expressions.

  • Enregistrer des expressions. Vous pouvez spécifier l’utilisation d’une banque d’expressions/de profils, dans laquelle le Générateur d’expressions charge et enregistre les expressions.

  • Afficher des messages aux utilisateurs. Vous pouvez personnaliser les messages affichés dans l’interface utilisateur du Générateur d’expressions. Par exemple, le message de titre par défaut est « Créer une expression » mais pour les besoins de votre implémentation, vous pouvez modifier ce message en « Créer une expression de ciblage publicitaire ».

Le Générateur d’expressions utilise le DHTML (Dynamic Hypertext Markup Language) pour son interface utilisateur, aussi les feuilles de style de l’application s’appliquent à l’interface utilisateur du Générateur d’expressions, et donnent ainsi à votre application un aspect cohérent.

Traitement des expressions

Commerce Server effectue plusieurs étapes pour spécifier le contenu qui doit être affiché à l’utilisateur. Les composants suivants sont utilisés lors du processus :

  • ExpressionEval. Cet objet COM (Component Object Model) prend l’expression et les données utilisateur comme entrée, puis traite l’expression pour déterminer si elle prend la valeur « True » ou « False ».

  • Infrastructure de sélection de contenu (CSF, Content Selection Framework). Cette infrastructure au niveau de la plate-forme comprend un ensemble de composants et de pipelines (le pipeline de sélection de contenu et le pipeline de traitement des événements) qui détermine l’action à exécuter comme résultat de l’expression.

La figure suivante illustre la manière dont les expressions de ciblage, les expressions de catalogue, les données utilisateur et les données de contexte sont entrées dans l’Évaluateur d’expressions, ce qui produit des résultats ayant une valeur True, False ou non définie. Le résultat est entré dans l’infrastructure CSF, qui détermine alors l’action à exécuter.

Figure illustrant le traitement des expressions par l'Évaluateur d'expressions et l'infrastructure de sélection de contenu
Expression de ciblage
Expression de catalogue
Données d'utilisateur
Données de contexte
Évaluateur d'expressions
Vrai, Faux ou résultat indéfini
Infrastructure de sélection de contenu
Détermine l'action en fonction du résultat

Voir aussi

Extending the Content Selection Framework (en anglais)

Prévision et extraction de données

Campagnes marketing : publicités, remises et publipostage.

Campagnes marketing


Campagnes marketing : publicités, remises et publipostage

Une campagne marketing est un programme spécialisé qui utilise de nombreux moyens de communication pour parvenir à un résultat spécifique, par exemple, l’augmentation des parts de marché, l’introduction de nouveaux produits ou la fidélisation des clients. Commerce Server offre plusieurs mécanismes de production de vos campagnes marketing en ligne. Par exemple, vous pouvez créer des campagnes marketing pour des publicités, des remises, du publipostage, et vous pouvez également utiliser les fonctionnalités d’analyse pour cibler vos campagnes marketing sur des groupes d’utilisateurs spécifiques.

Utilisation de campagnes marketing dans la gestion d’un site Web

Structure de la campagne marketing

But quantitatif de la campagne

Tables de références

Publicités

Remises

Service de publipostage

Analyse de l’efficacité de la campagne marketing

Utilisation de campagnes marketing dans la gestion d’un site Web

Les modules Campagnes marketing ont été conçus pour vous permettre de travailler avec vos clients de manière à optimiser l’effet des publicités, remises et publipostage. Avec les modules Campagnes marketing, vous pouvez :

  • Cibler des publicités ou des remises en fonction d’utilisateurs présentant un certain profil. Vous définissez un profil utilisateur à l’aide du module Définitions de profil, puis vous l’intégrez dans une campagne marketing. Pour chaque page de publicité individuelle, vous pouvez spécifier si le profil de l’utilisateur qui visite cette page doit être pris en compte pour le contenu ciblé, ou s’il doit être ignoré.

  • Exécuter des campagnes marketing pour des clients concurrents travaillant dans le même domaine d’activité. Les publicités concurrentes ne sont jamais affichées sur la même page.

  • Facturer vos clients en fonction du nombre de demandes de publicité qu’ils souhaitent pour leurs publicités. L’infrastructure de sélection de contenu prend ce facteur en compte lors du classement du contenu.

Structure d’une campagne marketing

Les campagnes marketing et les éléments de la campagne associés sont regroupés par client. Les informations sur les clients, telles que l’adresse de facturation, sont utilisées pour toutes les campagnes marketing créées pour ce client, ainsi que pour la création de rapports. Vous pouvez afficher tous vos clients par ordre alphabétique dans le Gestionnaire de campagnes.

Une campagne marketing est une structure permettant de regrouper des éléments de la campagne. Il existe trois types d’éléments de campagne : publicité, remise et publipostage. Chaque campagne marketing peut être composée de plusieurs éléments de la campagne. Par exemple, une campagne marketing de promotion d’un nouveau produit peut inclure trois éléments de la campagne : une bannière de publicité sur la page d’accueil, un message de publipostage personnalisé annonçant le nouveau produit, et un élément de la campagne de remise offrant une remise de 10 pour cent aux utilisateurs qui achètent le produit durant le mois de juin.

Tous les éléments de la campagne d’une campagne marketing ont un client et une plage de dates communs. Par exemple, dans la section Voyages du site d’un journal, un annonceur peut demander la livraison de 10 000 demandes en l’espace d’une semaine pour les utilisateurs du Nord-Ouest. L’annonceur peut décider d’exécuter trois publicités différentes pour ces 10 000 demandes, puis voir laquelle de ces trois publicités attire le plus grand nombre de visiteurs. Chaque publicité est un élément de la campagne.

But quantitatif de la campagne

Le but quantitatif de la campagne constitue le processus qui permet de spécifier le nombre de publicités à fournir (but) dans un laps de temps déterminé. Vous pouvez définir un but quantitatif en termes de clics sur une publicité ou de demandes pour une publicité. Vous pouvez définir des buts quantitatifs pour une campagne marketing au niveau de la campagne ou au niveau de la publicité.

  • Le but quantitatif de niveau campagne permet d’appliquer les buts quantitatifs à tous les éléments de la campagne (publicités) d’une campagne marketing, en utilisant une distribution pondérée du nombre total des demandes.

    Supposons que vous définissiez un but quantitatif au niveau de la campagne pour un client. Ce client vous donne deux publicités et commande 25 000 demandes de publicité. Au niveau de la campagne, une publicité est définie pour afficher 60 pour cent des demandes de publicité et une autre publicité est définie pour afficher 40 pour cent des demandes de publicité. Si le client décide de changer le nombre de demandes de publicité pour passer à 40 000, vous n’aurez pas à modifier manuellement le nombre d’affichages des publicités : vous conserverez les proportions de 60 % et de 40 %.

  • Le but quantitatif de niveau publicité permet d’appliquer les buts quantitatifs au niveau de l’élément de la campagne. Le nombre total de demandes pour la campagne marketing sera égal au nombre total de demandes commandées pour chaque élément de la campagne. Par exemple, un client commande 50 000 demandes à livrer en un mois. Un élément de publicité unique doit être délivré 50 000 fois.

Vous pouvez permuter les buts quantitatifs de niveau campagne et de niveau publicité. Par exemple, un client commande l’exécution à proportion égale de deux éléments de la campagne de publicité, pour une quantité commandée de 1 000 demandes de publicité. Vous effectuez les opérations suivantes :

  1. Vous ajoutez les éléments de la campagne à une campagne marketing et vous attribuez à chaque élément un volume équivalant à 1. La quantité commandée pour chaque élément est de 500 demandes de publicité.

  2. Plus tard, le même client commande 500 demandes de plus pour la publicité 1. Vous ouvrez la campagne marketing et vous modifiez le but quantitatif pour que ce soit un but de niveau publicité, vous sélectionnez la publicité 1, puis ajoutez 500 éléments à la quantité.

    La quantité commandée pour la publicité 1 est égale à 1 000. La quantité commandée pour la publicité 2 est égale à 500. La quantité totale commandée n’est pas visible dans le Gestionnaire de campagnes pour les campagnes faisant l’objet d’un but quantitatif en matière de publicité.

  3. Finalement, le client veut répartir de nouveau la distribution de la commande de telle sorte que la publicité 1 soit affichée selon un taux de 3 pour 1 par rapport à la publicité 2. Vous changez le but quantitatif pour passer à un but quantitatif de niveau campagne. La quantité commandée est de nouveau visible et représente la somme de la quantité commandée pour l’ensemble des publicités, soit 1 500. À présent, les volumes pour chacune des publicités correspondent à la quantité commandée.

    À ce niveau, vous pouvez modifier les volumes de chacune des publicités de sorte qu’ils correspondent à un rapport de 3 pour 1. Commerce Server calcule alors les nouvelles quantités, ou détermine que les nouveaux volumes payés correspondent à 1 125 et 375.

Dans un autre cas de figure, par exemple après la deuxième étape, le client veut que la campagne marketing soit exécutée selon un rapport de 2 pour 1 et qu’une troisième publicité ait également un volume égal à 1. Si vous ajoutez une publicité à une campagne marketing qui est passée d’un but quantitatif de niveau publicité à un but quantitatif de niveau campagne, et que vous laissez un volume égal à 1 sans modifier les volumes payés des autres publicités, la livraison de la publicité sera erronée. Vous devrez rouvrir le Gestionnaire de campagnes et attribuer de nouveaux volumes à l’ensemble des publicités, puis vérifier les calculs réels.

Tables de références

Le module Tables de références de Business Desk vous permet de définir les tailles du contenu affiché sur votre site, de gérer les noms des groupes de pages, ainsi que d’établir des codes d’activité que vous pouvez utiliser afin d’éviter l’affichage simultané sur une même page de deux publicités pour le même secteur d’activité. Les propriétés contenues dans le module Tables de références garantissent la cohérence du contenu publicitaire sur votre site.

  • Les tailles de contenu correspondent aux tailles que vous voulez attribuer à votre contenu (publicités et remises). Commerce Server 2000 fournit plusieurs tailles de contenu par défaut. Ces tailles de contenu proviennent d’une liste de tailles fréquemment utilisées approuvée par le bureau Internet Advertising Bureau (IAB). Les tailles de contenu sont validées par l’intermédiaire de la section Taille du contenu du module Tables de références.

    Les tailles de contenu des tables de références sont disponibles lorsque vous sélectionnez la taille souhaitée pour le contenu d’un élément de la campagne. Vous pouvez afficher, modifier et supprimer n’importe laquelle des tailles prédéfinies. Vous pouvez également créer une taille de contenu adaptée à vos besoins.

  • Les codes d’activité correspondent à des codes pour les différents secteurs d’activité, par exemple le secteur automobile, aéronautique ou les boissons. Les codes d’activité permettent d’identifier le secteur d’activité associé à une publicité, afin d’éviter que deux publicités de sociétés concurrentes d’un même secteur d’activité s’affichent sur la même page. Les codes d’activité ne s’appliquent pas aux remises.

    Vous pouvez mettre à jour vos codes d’activité, par exemple pour inclure plusieurs codes pour les boissons, tels qu’un code pour du café et un autre pour du lait, de sorte que des publicités pour différentes boissons puissent s’afficher sur la même page. Il est par exemple tolérable de mettre sur la même page une publicité pour du café et une publicité pour du lait. Vous pouvez définir le niveau d’analyse des conflits du secteur d’activité en contrôlant le nombre d’entrées de cette table.

    Commerce Server fournit plusieurs codes d’activité courants. Les codes d’activité utilisés dans les publicités sont validés par l’intermédiaire de la section Code d’activité du module Tables de références. Les codes d’activité des tables de références sont disponibles lorsque vous sélectionnez le code d’activité souhaité pour un élément de la campagne. Vous pouvez afficher une liste de tous les codes d’activité disponibles, ajouter de nouveaux codes, modifier des codes existants et supprimer des codes de la section Code d’activité du module Tables de références.

  • Les groupes de pages représentent un ensemble de pages Web apparentées, indiquées par un nom de groupe de pages particulier et qui sont utilisées pour le ciblage des publicités. Par exemple, pour le site d’un journal, vous pouvez créer un groupe de pages pour les sports, un autre pour les nouvelles principales et un autre pour les nouvelles locales. Vous pouvez ensuite cibler les publicités pour qu’elles s’affichent uniquement sur les pages de certains groupes de pages.

    Lorsque vous facturez à vos clients l’affichage de publicités sur votre site, vous pouvez établir les taux de publicité par groupe de pages. Par exemple, vous pouvez faire payer le montant maximal pour les publicités affichées sur votre page d’accueil, et un montant moins important pour les publicités affichées sur les autres pages.

    Remarque

    • Pour que vous puissiez utiliser un groupe de pages, vous devez préalablement activer la page pour la publicité. Pour connaître les instructions à suivre, consultez le Kit de développement de logiciel (SDK, Software Development Kit) de Commerce Server.

Publicités

Commerce Server prend en charge deux types de publicités : les publicités payées et les publicités maison.

  • Les publicités payées sont un contenu que Commerce Server délivre en fonction d’une formule de livraison spécifique appelée estimation de livraison.

  • Les publicités maison sont un contenu fourni lorsque les publicités payées ont pris de l’avance sur leur planification d’estimation de livraison. Par exemple, un client commande 1 000 publicités payées à livrer sur quatre mois, mais au cours des deux premiers mois, la publicité a été affichée 850 fois. Dans ce cas, pour rééquilibrer la planification d’estimation de livraison, des publicités maison sont affichées.

    Les publicités maison sont essentielles pour garantir une livraison uniforme des publicités payées. Des publicités maison sont également affichées lorsqu’aucune publicité payée ne convient pour la demande. Par exemple, une publicité maison est affichée si aucune publicité payée ne convient à une cible donnée.

    Les publicités maison peuvent également permettre de vendre le stock invendu à prix réduit. Elles peuvent également être utilisées si les publicités du site n’ont pas de but de livraison spécifique, mais que vous souhaitez exécuter des publicités selon des volumes spécifiés.

Composants d’une publicité

Dans Commerce Server, les publicités se composent de quatre éléments :

  • Les propriétés de la publicité correspondent au nom de la publicité, à son type (publicité payée ou publicité maison), à son volume ou au nombre de demandes ou de clics à livrer planifié (publicité payée et publicité maison), à sa limite d’exposition, et au secteur d’activité qui y est associé.

  • La planification de la publicité correspond à la date/heure de début et la date/heure de fin. Vous pouvez sélectionner les jours de la semaine pendant lesquels la publicité doit être affichée, et les heures correspondant à chaque jour.

  • La Cible publicitaire identifie les pages et les groupes cibles auxquels la remise doit être appliquée.

  • L’affichage de la publicité identifie la taille de la publicité, son type (par exemple, image, texte ou HTML), et si nécessaire, l’image et/ou l’adresse URL sur laquelle l’utilisateur peut cliquer pour aller sur une autre page (ou un autre site Web). Vous pouvez afficher les publicités sous forme d’images, de texte, de pages HTML, d’images non associées à un lien hypertexte, de publicités d’achat immédiat, de Services Windows Media ou de vignette. (Une vignette publicitaire est composée d’un texte affiché à côté de l’image correspondant à la publicité.)

Ciblage des publicités

Commerce Server vous permet de déterminer le moment où une publicité doit être affichée, son emplacement et son destinataire. Lorsque vous créez une publicité, vous spécifiez les éléments suivants :

  • Limite d’exposition. Nombre de fois où la publicité peut être affichée à un utilisateur au cours d’une session.

  • Volume. Moyen permettant de déterminer la fréquence à laquelle une publicité doit être affichée, par rapport à tous les éléments de la campagne d’un client donné. Dans une campagne marketing, le volume s’applique uniquement aux publicités dont le but quantitatif a été défini au niveau de la campagne. Si les publicités ont un but quantitatif de niveau élément, le volume n’est pas utilisé pour les publicités payées.

    Pour les publicités maison, le volume est déterminé en fonction de toutes les autres publicités maison pour tous les clients et toutes les campagnes marketing. Pour les publicités payées, le volume est déterminé en fonction des autres publicités payées de la même campagne marketing. Le volume d’un élément de la campagne est calculé par rapport au volume de tous les autres éléments de la campagne.

    Supposons que vous ayez quatre publicités pour vendre de la peinture et que vous définissiez le volume de la manière suivante :

Publicité | Volume | Pourcentage d’affichage
Peinture bleue | 1 | 10
Peinture verte | 2 | 20
Peinture rouge | 3 | 30
Peinture jaune | 4 | 40
Volume total | 10 | 100

Le volume total de toutes les publicités est de 10 (1+2+3+4 = 10). La publicité pour la peinture bleue ayant un volume de 1, elle sera affichée une fois toutes les dix demandes de publicité.

Pour les publicités payées, le volume correspond au rapport entre une publicité et la somme des éléments de la campagne de cette campagne marketing. Pour les publicités maison, le volume correspond à la somme des volumes de toutes les autres publicités maison de la campagne marketing.

Pour les publicités dont le but quantitatif est défini au niveau de l’élément de la campagne, le volume n’est pas utilisé pour déterminer la livraison de la publicité. Vous spécifiez directement le nombre de demandes ou de clics à fournir.

  • Groupes de pages. Ensemble de pages Web apparentées, indiquées par un nom de groupe de pages particulier, et utilisées pour le ciblage des publicités. Par exemple, pour le site d’un journal, vous pouvez créer un groupe de pages pour les sports, un autre pour les nouvelles principales et un autre pour les nouvelles locales. Vous pouvez ensuite cibler les publicités pour qu’elles s’affichent uniquement sur les pages de certains groupes de pages.

    Les groupes de pages sont créés à l’aide du module Tables de références.

  • Groupes cibles. Ensemble de cibles où du contenu sera affiché. Par exemple, vous pouvez cibler des publicités pour des utilisateurs possédant des propriétés de profil spécifiques. Pour plus d’informations sur les cibles et les groupes cibles, consultez Ciblage et personnalisation.

Traitement des éléments de la campagne de publicité

L’infrastructure de sélection de contenu (CSF) traite les variables spécifiées pour une publicité : but quantitatif de la campagne, limite d’exposition, planification, volume, groupes de pages et groupes cibles. Chaque fois qu’un utilisateur visite votre site, l’infrastructure détermine si la publicité doit être affichée.

L’infrastructure de sélection de contenu pour la publicité utilise une formule appelée estimation de livraison (NOD) pour attribuer initialement aux publicités un score définissant leur état d’avancement par rapport à la planification. Cette formule tient compte de la quantité totale de contenu à livrer et de la période sur laquelle cette quantité doit être livrée. L’estimation de livraison est calculée par l’infrastructure de sélection de contenu pour chaque demande de publicité, une fois la demande de publicité traitée. L’estimation de livraison est appliquée aux publicités payées uniquement ; elle n’est pas appliquée aux publicités maison.

Si vous possédez plusieurs publicités et que vous vouliez savoir sur quelle base elles sont affichées, contactez votre développeur de site. Commerce Server comprend un outil appelé TraceScores que votre développeur de site peut utiliser pour suivre le processus de sélection. Utilisez TraceScores pour connaître le fonctionnement exact du processus de décision de contenu interne.

Si vous envisagez d’exécuter de nombreuses campagnes marketing simultanément sur Commerce Server, à l’aide du même groupe cible et de la même priorité, l’infrastructure de sélection de contenu (CSF) sélectionne la publicité à afficher en fonction de son type. Si les publicités sont des publicités maison, la sélection de publicité est effectuée de manière aléatoire en utilisant les volumes comme probabilités relatives. Si les publicités sont des publicités payées, la sélection s’effectue en fonction du calcul de l’estimation de livraison (qui prend en compte la date de début, la date de fin, le nombre d’événements planifiés et le nombre d’événements qui se sont produits à ce jour). La pénalité d’historique peut modifier le score ; elle applique une pénalité décroissante aux publicités récemment affichées par l’utilisateur. Lorsque la pénalité d’historique est activée, les publicités font l’objet de « rotations » dans le temps.

Remises

Vous pouvez appliquer des remises à tous les éléments de votre catalogue. Vous pouvez appliquer une remise sur une commande entière (remise au niveau de la commande), ou sur les articles spécifiques d’une commande (remise au niveau de l’article).

  • Les remises au niveau de la commande s’appliquent à tous les produits d’un panier d’achat. Par exemple, la livraison gratuite est un type de remise au niveau de la commande : vous pouvez accorder aux utilisateurs une livraison gratuite pour tous les produits de leur panier. La livraison gratuite est la seule remise au niveau de la commande fournie avec Commerce Server. Pour offrir un autre type de remise au niveau de la commande en plus de la livraison gratuite, par exemple, une remise de 10 pour cent aux utilisateurs privilégiés, un développeur de site doit apporter des modifications personnalisées à votre site.

  • Les remises au niveau de l’article s’appliquent à des produits spécifiques du panier.

Si vous appliquez une remise à l’intégralité d’une commande, la remise est appliquée à chaque article de manière individuelle. Une seule remise peut être appliquée à l’unité pour un article d’une commande. Il est impossible d’appliquer deux remises à l’unité pour le même article.

Vous pouvez utiliser Commerce Server pour créer et appliquer les types de remises suivants :

  • Les remises sur clic ne sont appliquées que si l’utilisateur clique sur l’adresse URL de la remise, qui peut être représentée par une image du produit indiquant, par exemple, « 10 pour cent de remise ». Les développeurs de site peuvent étendre ce type de remise à d’autres usages, tels que des coupons de réduction, que les utilisateurs doivent posséder pour bénéficier de la remise.

  • Les remises supplémentaires sont basées sur l’achat d’autres produits. Par exemple, lorsque les utilisateurs ajoutent un téléphone dans leur panier, lors de la totalisation de leurs achats, vous pouvez leur offrir un répertoire d’adresses gratuit, qu’ils peuvent accepter en l’ajoutant dans leur panier. Vous pouvez également leur proposer un autre accessoire à un prix remisé.

  • Les remises en pourcentage réduisent le prix des produits en fonction d’un pourcentage, plutôt que d’un montant en francs. Par exemple, vous pouvez appliquer une remise de 10 pour cent à des produits, puis modifier le prix de ces produits, si besoin est. Lorsque vous modifiez le prix des produits, le montant de la remise est mis à jour automatiquement.

  • Les remises en francs réduisent le prix des produits selon un montant fixe. Par exemple, vous pouvez offrir une remise de 30,00 FF sur certains produits. Même si vous modifiez le prix des produits, le montant de la remise (30,00 FF) reste le même.

  • Les remises « planifiées » réduisent le prix des produits à certaines dates. Pour planifier l’application de remises à certaines heures, vous pouvez créer des expressions qui évaluent la propriété Heure actuelle. Par exemple si Heure actuelle > 17:00 et Heure actuelle < 21:00, vous appliquez une remise de 10 pour cent au produit.

Vous pouvez appliquer ces remises à des produits individuels, à tous les produits d’une catégorie, ou vous pouvez créer une expression pour appliquer une remise aux produits répondant à des critères spécifiques, par exemple, offrir une remise de 10 pour cent sur tous les articles d’un fabricant particulier.

Vous pouvez par exemple créer des remises qui s’appliquent dans les situations suivantes :

  • Le prix du produit est supérieur à 120,00 FF. Il s’agit d’une expression de condition de remise. Les expressions de condition de remise se basent sur une propriété de produit.

  • L’utilisateur achète 2 articles. Il s’agit d’un critère obligatoire de condition de remise.

  • L’utilisateur clique sur une publicité de remise dans la page des sports. Il s’agit de la partie de la remise sur clic.

  • L’utilisateur est inscrit. Il s’agit d’une expression d’éligibilité pour la remise. Les expressions d’éligibilité pour la remise sont basées sur les profils utilisateur et les profils de contexte.

Vous ne pouvez pas appliquer simultanément plusieurs remises à un même produit. Un client ne peut bénéficier que d’une remise par produit, ou une condition ne peut s’appliquer qu’à une seule remise. Une fois qu’un produit a été utilisé comme condition ou comme remise exceptionnelle pour une remise, il ne peut l’être à nouveau pour une autre remise.

Composants d’une remise

Un élément de la campagne de remise possède les composants suivants : propriétés de la remise, définition de la remise, cible de la remise et affichage de la remise. Le Gestionnaire de campagnes vous permet de définir ces composants lorsque vous créez la remise.

  • Les propriétés de la remise correspondent au nom de la remise, à sa priorité, à sa date de début et à sa date de fin.

  • La définition de la remise spécifie l’objet de la remise, son montant et son bénéficiaire. Une définition de la remise possède les composants suivants :
    • L’expression de ciblage identifie l’objet de la remise. Par exemple, l’expression de ciblage Prix_livre > 120 applique la remise à tous les livres qui répondent à ce critère.

    • Les conditions identifient l’utilisateur et/ou le contexte dans lequel la remise est affichée. Par exemple, si l’utilisateur est une femme inscrite, qui a acheté pour 300 FF de marchandises lors de sa dernière visite, vous pouvez proposer une remise. Ou, si l’utilisateur effectue des achats sur votre site un jour particulier ou qu’il consulte une page spécifique, il peut répondre aux exigences du contexte et recevoir une remise de 10 pour cent.

    • La remise exceptionnelle identifie ce que les utilisateurs obtiennent, par exemple, une remise de 10 pour cent ou une livraison gratuite. La condition de remise exceptionnelle doit être vraie pour permettre l’application de la remise. La condition de remise exceptionnelle est évaluée pour chaque article du bon de commande. Une condition de remise exceptionnelle peut être une expression spécifiant que la remise s’applique à un article en particulier ou à l’ensemble des articles.
  • La cible de la remise identifie les pages et les groupes cibles sur lesquels la remise doit s’afficher.

  • L’affichage de la remise identifie le nombre de fois que la remise est affichée à un utilisateur, l’image et/ou l’adresse URL sur laquelle l’utilisateur doit cliquer pour obtenir la remise, ainsi que les informations de remise affichées dans le panier lorsque l’utilisateur procède à la validation de ses achats.

Priorité d’une remise

Vous attribuez à chaque remise une priorité qui détermine le moment où elle doit être appliquée, par rapport à d’autres remises qui peuvent également s’appliquer à un produit. (À la différence des publicités, les remises n’utilisent pas de volume pour déterminer le moment où elles sont appliquées.) Par exemple, vous créez trois remises en attribuant une priorité à chacune d’elles, comme l’illustre le tableau suivant.

Remise | Priorité
Remise de 10 pour cent sur les téléphones | 10
Remise de 30 pour cent pour les premiers utilisateurs qui achètent des téléphones, radios ou ordinateurs | 20
Livraison gratuite | 30

Si un premier utilisateur navigue sur votre site et qu’il achète un téléphone, ainsi que d’autres articles, seule une remise de 10 pour cent sera appliquée au téléphone. Ni la remise de 30 pour cent ni celle de livraison gratuite ne s’appliquent à l’achat du téléphone, car il s’agit de remises d’une priorité inférieure.

Si deux remises possèdent la même priorité, le type de base de données peut influer sur la remise qui est appliquée. Les résultats sont indéterminés pour les remises de même priorité.

Remises en fonction de la quantité ou de la valeur achetée

Vous pouvez appliquer des remises en fonction de la quantité ou de la valeur des achats effectués par les utilisateurs. Par exemple, vous pouvez créer une remise qui s’applique lorsqu’un utilisateur achète trois packs de jus de fruits (quantité), ou une remise qui s’applique lorsqu’un utilisateur achète du jus de fruits pour une somme de 120,00 FF (valeur).

Vous pouvez appliquer une remise par quantité ou par valeur. Supposons que le rayon boissons de votre boutique en ligne propose une offre spéciale pour l’été : pour un pack de jus de fruits acheté, le second est à moitié prix. Votre boutique en ligne propose en outre une autre offre spéciale : une remise de 10 pour cent sur tous les produits de la catégorie des boissons. Supposons que vous attribuiez des priorités à ces remises, comme l’illustre le tableau suivant.

Remise | Priorité
Pour un pack de jus de fruits acheté, le second est à moitié prix | 10
10 pour cent de remise sur tous les produits de la catégorie des boissons | 20

Si un utilisateur achète quatre packs de jus de fruits, les remises sont appliquées comme suit :

  • Pack 1 : Aucune remise

  • Pack 2 : 50 pour cent de remise

  • Pack 3 : 10 pour cent de remise

  • Pack 4 : 50 pour cent de remise, seulement si aucune limite n’a été fixée pour la remise « Pour un pack de jus de fruits acheté, le second est à moitié prix ». La remise de 50 pour cent s’appliquera de nouveau au lieu des 10 pour cent car vous lui avez attribué une priorité supérieure.

Limites de remise

Vous pouvez limiter le nombre de remises applicables à un panier. Si la valeur de la limite de remise est égale à zéro (0), les remises sont illimitées : la remise peut être appliquée plusieurs fois, si les conditions requises sont satisfaites à plusieurs reprises dans le panier. Une limite de remise est spécifique à un panier et ne s’applique pas à un ensemble de paniers. Par exemple, si un utilisateur règle le montant de ses achats, puis revient acheter les mêmes articles remisés, il bénéficie de la même remise.

Traitement des éléments de la campagne de remise

Les campagnes de remise sont traitées par le pipeline de sélection de contenu pour les remises et le composant de pipeline Remise de commande. Le pipeline de sélection de contenu pour les remises vous permet d’afficher la remise la plus appropriée à un utilisateur. Le composant Remise de commande contenu dans le pipeline Panier vous permet d’appliquer des remises au panier d’achat.

  • Le pipeline de sélection de contenu pour les remises vérifie les dates de début et de fin des remises, puis ajuste les scores figurant dans la liste des remises possibles. Il garantit que les remises les plus appropriées pour l’utilisateur en cours reçoivent la priorité la plus élevée.

  • Le composant de pipeline Remise de commande applique d’abord les conditions préalables aux remises disponibles. En fonction de la remise concernée, il utilise les informations de profil utilisateur et de profil de contexte pour évaluer les expressions de ciblage. En outre, si une remise nécessite qu’un clic soit effectué, il vérifie la liste des identificateurs des éléments de la campagne de tous les éléments sur lesquels un clic a été exécuté. Ensuite, le pipeline des commandes traite chaque élément, en testant les conditions et les remises exceptionnelles. Les remises sont appliquées par ordre de priorité, de la plus élevée à la moins élevée. Si deux remises ont la même priorité, la remise est indéterminée, en d’autres termes, les propriétés qui ne sont pas de type prioritaire déterminent l’ordre d’application des remises.

Publipostage

Vous créez un élément de la campagne de publipostage pour diffuser des publicités sous forme de messages électroniques à un groupe d’utilisateurs ciblé. L’objectif est d’obtenir un taux de réponse élevé à ces publipostages. Vous pouvez envoyer des messages électroniques personnalisés à partir d’une page Web, ou des messages non personnalisés à partir d’un fichier texte simple. Vous pouvez créer des messages de publipostage qui comprennent des pièces jointes, telles que des images, remises ou adresses URL. Le service de publipostage est conçu pour envoyer en bloc des messages électroniques personnalisés à des millions d’utilisateurs.

Pour créer une campagne de publipostage, vous devez utiliser le module Gestionnaire de campagnes dans Business Desk. Les éléments de campagne de publipostage sont traités par le service de publipostage, qui est un puissant moteur capable d’envoyer un grand nombre de messages électroniques très rapidement.

Pour créer un élément de la campagne de publipostage, vous devez effectuer les étapes suivantes :

  • Créer le message. Pour pouvoir créer des messages électroniques personnalisés, votre développeur de site doit au préalable créer des pages ASP comportant le texte personnalisé, puis les ajouter au serveur Web. Il doit vous donner l’adresse URL correspondant à l’emplacement des pages ASP. Pour créer un message non personnalisé, vous pouvez taper le texte dans un fichier texte simple, par exemple, à l’aide du Bloc-notes.

  • Générer une liste de destinataires. Vous pouvez générer une liste de destinataires pour la campagne de publipostage grâce aux puissants outils d’analyse de Commerce Server. Par exemple, à l’aide du module Rapports de Business Desk, vous pouvez exécuter un rapport sur les données de Data Warehouse, et obtenir une liste d’utilisateurs spécifiques. Vous pouvez ensuite exporter la liste résultante vers le Gestionnaire de listes. Sinon, vous pouvez utiliser la ressource Predictor pour générer une liste d’utilisateurs dans un segment de population, puis exporter cette liste vers le Gestionnaire de listes. Une fois qu’une liste se trouve dans le Gestionnaire de listes, elle est disponible pour le service de publipostage.

    Vous ne pouvez pas utiliser de groupes cibles pour envoyer directement le publipostage aux adresses de messagerie des utilisateurs.

  • Créer et planifier la campagne de publipostage. Utilisez le module Gestionnaire de campagnes pour spécifier le nom de la campagne marketing, le nom de la liste de destinataires, l’heure et la date de début de l’élément de la campagne, ainsi que l’adresse URL (pour les messages personnalisés) ou le fichier statique où le service de publipostage doit trouver le corps du message.

Pour plus d’informations sur l’ajout d’éléments de la campagne de publipostage, consultez Ajout d’un élément de la campagne de publipostage.

Listes d’annulations d’abonnements

Le service de publipostage prend en charge la fonctionnalité d’annulation d’abonnement. Pour les travaux de publipostage s’exécutant dans le cadre d’un élément de la campagne, les destinataires individuels peuvent demander d’annuler l’abonnement à un élément de la campagne de publipostage. Vous pouvez filtrer une liste de publipostage par rapport à une liste d’annulations d’abonnements à l’aide d’une page ASP d’annulation d’abonnement fournie avec les sites solutions.

Le développeur chargé de créer la page ASP pour les travaux de publipostage à partir du serveur Web peut fournir des liens vers une page ASP d’annulation d’abonnement, permettant ainsi au destinataire d’annuler son abonnement au site ou à l’élément de la campagne de publipostage en cliquant sur le lien approprié. Lorsqu’un travail de publipostage s’exécute dans le cadre d’un élément de la campagne, le service de publipostage recherche la présence de la liste d’annulations d’abonnements au niveau du site et au niveau de l’élément de la campagne. Si l’une des listes existe, elle est retirée de la liste de publipostage d’origine laissant ainsi à la liste résultante le rôle de nouvelle liste de publipostage.

Traitement des éléments de la campagne de publipostage

Le service de publipostage effectue les tâches suivantes :

  • Il gère les travaux de publipostage.

  • Il élabore les corps de messages personnalisés et non personnalisés.

  • Il met en forme les en-têtes de messages électroniques.

  • Il définit la valeur de la page de code (langue) et convertit les corps de messages selon le type de message correct : MHTML (MIME Encapsulation of Aggregate HTML Documents), MIME (Multipurpose Internet Mail Extensions) ou texte.

  • Il envoie des messages électroniques aux destinataires.

Le pipeline du service de publipostage sert à traiter des listes de destinataires. Vous pouvez ajouter de nouveaux composants au pipeline, intégrer ces composants à des systèmes professionnels de gestion d’activité, ou les remplacer par les composants de fournisseurs tiers.

Analyse de l’efficacité de la campagne marketing

Le tableau suivant répertorie les rapports inclus dans Commerce Server, qui vous permettent d’analyser l’efficacité d’un élément de la campagne.

Rapport | Description
Synthèse de l’élément de la campagne | Consultez une synthèse de l’activité de la campagne marketing sur votre site. Ce rapport affiche des informations, telles que le nombre et le pourcentage de clics et le nombre de demandes de publicité restantes.
Portée et fréquence d’accès à la publicité par jour | Analysez le comportement des utilisateurs uniques quotidiens qui interagissent avec votre campagne marketing. Utilisez ce rapport pour comprendre l’interaction des utilisateurs uniques quotidiens avec vos campagnes marketing.
Portée et fréquence d’accès à la publicité par élément de la campagne | Analysez l’interaction des utilisateurs uniques avec vos éléments de campagne. Ce rapport affiche le comportement des utilisateurs uniques qui interagissent avec vos éléments de campagne dans le temps.
Portée et fréquence d’accès à la publicité par campagne | Analysez l’interaction des utilisateurs uniques avec vos campagnes marketing. Ce rapport affiche le comportement des utilisateurs uniques qui interagissent avec vos campagnes marketing dans le temps.
Synthèse de l’événement de la campagne | Analysez l’efficacité des campagnes marketing sur votre site. Ce rapport affiche une synthèse de l’activité de la campagne marketing sur votre site.
Insertion de publicité | Analysez l’emplacement le plus efficace pour les publicités sur votre site. Ce rapport affiche une synthèse de l’activité des campagnes marketing selon l’emplacement sur votre site.

Pour obtenir une liste de tous les rapports Commerce Server, consultez Rapports Commerce Server. Pour plus d’informations sur l’exécution de rapports, consultez Exécution de rapports.

Voir aussi

Campagnes marketing

Exécution du service de publipostage

Working with Pipelines (en anglais)

Extending the Content Selection Framework (en anglais)

Ciblage et personnalisation


Sécurité de Commerce Server

Commerce Server fournit deux outils pour gérer l’authentification et l’identification des utilisateurs : l’objet AuthManager et AuthFilter.

  • AuthManager est un objet COM (Component Object Model) qui expose les méthodes permettant d’identifier les utilisateurs et de contrôler l’accès au contenu généré dynamiquement. Par exemple, un développeur de site peut appeler la méthode GetUserID de AuthManager pour identifier un utilisateur à partir d’un cookie ou d’une chaîne de requête.

  • AuthFilter est un filtre ISAPI (Internet Server API) qui s’utilise au niveau de l’application Commerce Server sur Internet Information Services (IIS). Il peut s’appliquer à tous les utilisateurs visitant l’application. La configuration des propriétés utilisées par AuthFilter s’effectue au niveau de la ressource CS Authentication globale. La configuration du mode d’authentification s’effectue au niveau de l’application. Vous pouvez choisir les modes d’authentification suivants : Authentification Windows, Authentification personnalisée et Création de cookie automatique.

Lorsque vous configurez l’objet AuthManager et AuthFilter, les propriétés d’authentification sont stockées dans la base de données d’administration. La ressource CS Authentication interagit avec les objets Config pour stocker et extraire les propriétés de la base de données d’administration.

Les sites solutions n’utilisent pas AuthFilter car ils sont conçus pour prendre en charge l’achat sans utilisation des cookies.

Le tableau suivant récapitule les différences entre les fonctionnalités prises en charge par AuthFilter, l’objet AuthManager et les sites solutions.

Fonctionnalité | AuthFilter | AuthManager | Sites solutions
Vérification de la prise en charge des cookies de session (cookies non persistants) | Oui | Non | Oui
Prise en charge de l’achat sans utilisation des cookies | Non | Oui | Oui
Fourniture d’un contrôle d'accès granulaire à l’aide de listes de contrôle d’accès (ACL) | Oui | Non | Non
Prise en charge de pages de connexion personnalisées pour extraire les informations d'identification Windows | Oui | Oui | Non
Correction de la casse dans les adresses URL | Oui | Non | Oui

Cette section contient les rubriques suivantes :

  • Éléments de sécurité généraux. Décrit les principaux éléments de sécurité qui sont utilisés lors de l’installation de Commerce Server.

  • Méthodes d’authentification Commerce Server. Décrit l’objet AuthManager et AuthFilter.

  • Tickets d’authentification. Décrit les tickets MSCSProfile et MSCSAuth, et explique comment Commerce Server les utilise pour identifier les utilisateurs invités et les utilisateurs inscrits.

  • Méthodes d’authentification IIS. Décrit les méthodes d’authentification Internet Information Services (IIS) 5.0 utilisées avec Commerce Server.

  • Pour plus d’informations sur la sécurité. Répertorie les ressources supplémentaires d’informations sur le développement avec l’objet AuthManager et AuthFilter, ainsi que les liens vers les rubriques concernant la sécurisation d’un site.

Voir aussi

Planification de la sécurité

Working with Site Security and Filters (en anglais)

Site Security Objects (en anglais)

Gestion de la ressource CS Authentication

Liste de contrôle de la sécurité

Sécurisation de votre site


Éléments de sécurité généraux

Cette rubrique décrit les principaux éléments de sécurité qui sont utilisés lors d’une installation de Commerce Server : authentification, contrôle d’accès, cryptage, audit et certificats.

Vue d’ensemble de l’authentification

Vue d’ensemble du contrôle d’accès

Vue d’ensemble des certificats

Vue d’ensemble du cryptage

Vue d’ensemble de l’audit

Vue d’ensemble de l’authentification

Commerce Server prend en charge sept méthodes d’authentification : trois méthodes d’authentification fournies par Commerce Server (Authentification Windows, Authentification personnalisée et Création de cookie automatique), et quatre méthodes d’authentification fournies par Internet Information Services (IIS) (Anonyme, De base, Intégrée et Certificats).

Commerce Server ne sait pas quelle méthode d’authentification IIS est utilisée. Lorsque vous utilisez une de ces méthodes d’authentification, à l’exception de la méthode d’authentification anonyme, Commerce Server peut accéder à l’environnement ASP (Active Server Pages) et demander par programme le nom de l’utilisateur (actuellement connecté) à l’aide de variables de requête de serveur.

IIS fournit des fonctionnalités de sécurité qui sont totalement intégrées à Windows. Commerce Server prend en charge quatre méthodes d’authentification IIS afin que vous puissiez confirmer l’identité de toute personne demandant l’accès à vos sites Web. Ces méthodes d’authentification IIS sont les suivantes :

  • L’authentification anonyme permet l’accès à tout le monde sans demander de nom d’utilisateur ni de mot de passe.

  • L’authentification de base invite l’utilisateur à entrer un nom d’utilisateur et un mot de passe, qui sont envoyés non cryptés sur le réseau.

  • L’authentification intégrée Windows utilise une technologie de hachage pour identifier l’utilisateur sans envoyer réellement le mot de passe sur le réseau.

  • Les certificats sont des informations d’identification numériques qui peuvent être utilisées pour établir une connexion SSL (Secure Sockets Layer). Ils peuvent également être utilisés à des fins d’authentification.

Vous pouvez utiliser ces méthodes pour accorder l’accès aux zones publiques de votre site, tout en empêchant tout accès non autorisé à vos fichiers et répertoires privés. Pour plus d’informations sur ces méthodes, consultez Méthodes d’authentification IIS.

Vue d’ensemble du contrôle d’accès

Avec les autorisations d’accès NTFS, la base de la sécurité pour votre serveur Web, vous pouvez définir le niveau d’accès aux fichiers et aux répertoires accordé aux utilisateurs et aux groupes Windows. Par exemple, si une entreprise décidait de publier son catalogue sur votre serveur Web, vous devriez créer un compte d’utilisateur Windows pour cette entreprise, puis configurer les autorisations pour le fichier, le répertoire ou le site Web spécifique. Ces autorisations permettraient uniquement à l’administrateur du serveur et au propriétaire de l’entreprise de mettre à jour le contenu du site Web. Les utilisateurs publics seraient autorisés à consulter le site Web, mais ils ne pourraient pas en modifier le contenu. Pour plus de détails sur la définition des autorisations NTFS, consultez « Définition des autorisations NTFS pour un répertoire ou un fichier » dans la documentation relative à IIS 5.0.

WebDAV est une extension du protocole HTTP 1.1, qui facilite les manipulations de fichiers et de répertoires via une connexion HTTP. En utilisant les « verbes », ou commandes, de WebDAV, il est possible d’ajouter des propriétés à des fichiers et des répertoires, ou de lire des propriétés à partir de fichiers et de répertoires. Les fichiers et répertoires peuvent également être créés, supprimés, déplacés ou copiés à distance. Il est possible de configurer un contrôle d’accès supplémentaire par le biais des autorisations de serveur Web et de NTFS. Pour plus d’informations, voir « À propos du contrôle d’accès » ou « Publication WebDAV » dans la documentation relative à IIS 5.0.

Vue d’ensemble des certificats

Les certificats sont des documents d’identification numériques qui permettent aux serveurs et aux clients de s’entre-authentifier. Pour pouvoir configurer une connexion SSL permettant l’envoi d’informations cryptées, ils sont obligatoires aussi bien pour le serveur que pour le navigateur appartenant au client. Dans IIS, les fonctionnalités SSL basées sur des certificats comportent un certificat de serveur, un certificat client et diverses clés numériques. Vous pouvez créer ces certificats à l’aide des services de certificats Microsoft, ou les obtenir auprès d’une organisation tierce digne de confiance, appelée autorité de certification (CA). Pour plus d’informations sur la configuration des certificats et des clés, consultez « Configuration de SSL sur votre serveur » dans la documentation relative à IIS 5.0.

Certificats de serveur

Les certificats de serveur donnent le moyen aux utilisateurs de confirmer l’identité de votre site Web. Un certificat de serveur contient des informations d’identification détaillées, telles que le nom de l’organisation affiliée au contenu du serveur, le nom de l’organisation qui a émis le certificat, et une clé publique utilisée pour établir une connexion cryptée. Ces informations permettent d’assurer les utilisateurs de l’authenticité du contenu du serveur Web et de l’intégrité de la connexion HTTP sécurisée.

Certificats clients

Avec SSL, votre serveur Web a également la possibilité d’authentifier les utilisateurs en vérifiant le contenu de leurs certificats clients. Un certificat client type contient des informations d’identification détaillées sur un utilisateur et sur l’organisation qui a émis le certificat, ainsi qu’une clé publique. Vous pouvez utiliser l’authentification par certificat client, avec le cryptage SSL, pour implémenter une méthode extrêmement sécurisée de vérification de l’identité de vos utilisateurs.

Vue d’ensemble du cryptage

Vous pouvez permettre aux utilisateurs d’échanger des informations privées avec votre serveur, telles que des numéros de carte de crédit ou des numéros de téléphone, de façon sécurisée à l’aide du cryptage. Le cryptage « brouille » les informations avant de les envoyer, et le décryptage les « déchiffre » après réception. Dans IIS, la base de ce cryptage est le protocole SSL 3.0, qui offre un moyen sécurisé d’établir une liaison de communication cryptée avec les utilisateurs. SSL confirme l’authenticité de votre site Web et, éventuellement, l’identité des utilisateurs qui accèdent aux sites Web réservés.

Les certificats contiennent des clés utilisées pour établir une connexion SSL sécurisée. Une clé est une valeur unique utilisée pour authentifier le serveur et le client lors de l’établissement d’une connexion SSL. Une clé publique et une clé privée forment une paire de clés SSL. Votre serveur Web utilise cette paire de clés pour négocier une connexion sécurisée avec le navigateur Web afin de déterminer le niveau de cryptage requis pour sécuriser les communications.

Pour ce type de connexion, votre serveur Web et le navigateur Web doivent tous deux être équipés de fonctionnalités de cryptage et de décryptage compatibles. Au cours de l’échange, une clé de cryptage, ou de session, est créée. Votre serveur et le navigateur Web utilisent tous deux cette clé de session pour crypter ou décrypter les informations transmises. Le niveau de cryptage, ou puissance, d’une clé de session se mesure en bits. Plus le nombre de bits de la clé de session est important, plus le niveau de cryptage et de sécurité est élevé. Bien que les puissances de clé de cryptage plus élevées offrent une sécurité accrue, elles nécessitent également l’implémentation de davantage de ressources serveur. La clé de session de votre serveur Web est généralement une clé de 40 bits, mais il peut s’agir d’une clé de 128 bits selon le niveau de sécurité dont vous avez besoin.

Vous pouvez utiliser Commerce Server pour générer de nouvelles clés de cryptage. Pour plus d’information, consultez Génération d’une nouvelle clé de cryptage.

Vue d’ensemble de l’audit

Vous pouvez utiliser les techniques d’audit de sécurité pour contrôler un grand nombre d’activités de sécurité au niveau du serveur Web et des utilisateurs. Il est recommandé d’auditer à l’aide de routines la configuration de votre serveur pour détecter les zones où des ressources risquent des tentatives d’accès non autorisé ou de falsification. Vous pouvez utiliser les utilitaires Windows intégrés ou les fonctionnalités de journalisation intégrées à IIS 5.0, ou encore les applications ASP pour créer vos propres journaux d’audit. Pour plus d’informations, consultez « Audit » dans la documentation relative à IIS 5.0.


Méthodes d'authentification Commerce Server

Méthodes d’authentification Commerce Server

Commerce Server 2000 étend les méthodes d’authentification prises en charge par les services Internet Information Services (IIS) 5.0 de deux manières. En premier lieu, il ajoute un contrôle d’accès granulaire pour contenu dynamique via AuthManager, un filtre ISAPI (Internet Server API). Ensuite, il permet l’utilisation de l’authentification Windows ou de l’authentification personnalisée dans un environnement Internet, dans lequel vous devez répondre aux exigences d’un grand nombre de navigateurs. Commerce Server assure la prise en charge de l'authentification Windows et personnalisée.

Lorsque vous utilisez AuthFilter, vous pouvez choisir les modes d’authentification suivants :

  • Mode Aucun filtre. AuthFilter n’est pas activé.

  • Authentification Windows. AuthFilter utilise l’authentification Windows pour contrôler l’accès au site. Il vérifie la connexion d’accès utilisateur et le mot de passe par rapport à Active Directory (ou un compte SAM local). Lorsque vous utilisez l’authentification Windows, vous pouvez demander une connexion d’accès pour certains répertoires et pages ASP (Active Server Pages) spécifiés uniquement. Pour utiliser l’authentification Windows, consultez Activation de l’authentification Windows.

  • Authentification personnalisée. AuthFilter vérifie la connexion d’accès utilisateur et le mot de passe (ticket MSCSAuth) par rapport à une base de données SQL Server ou un autre type de base de données. La connexion d’accès est requise pour chaque page ASP et répertoire du site Commerce Server. AuthFilter vérifie le répertoire virtuel pour le site Commerce Server, et il vérifie la base de données d’administration Commerce Server pour déterminer si l’authentification personnalisée est activée pour ce site. Si le ticket MSCSAuth n’est pas valide, AuthFilter demande à l’utilisateur d’entrer des informations de connexion.

    Lorsque vous utilisez l’authentification personnalisée, la connexion d’accès est requise pour chaque page ASP et répertoire du site Commerce Server. Pour utiliser l’authentification personnalisée, consultez Activation de l’authentification personnalisée.

  • Mode de génération de cookie automatique. Vous pouvez générer automatiquement des cookies, qui stockent des tickets, pour les utilisateurs invités. (Lorsqu’un utilisateur anonyme obtient un ticket MSCSProfile, cet utilisateur devient un utilisateur invité.) Les tickets MSCSProfile vous permettent de collecter des données de profil relatives à l’exploration et l’utilisation de votre site par les utilisateurs invités.

    Si vous sélectionnez le mode de génération de cookie automatique et le mode Aucun filtre, il n’y a aucun utilisateur inscrit.

    Si vous utilisez le mode de génération de cookie automatique avec le mode d’authentification Windows ou le mode d’authentification personnalisée, c’est-à-dire le mode mixte, lorsque les utilisateurs invités s’inscrivent, leurs cookies persistants peuvent être mis à jour, et vous ne perdez pas les données de profil qui ont été rassemblées lorsque l’utilisateur était un invité. Pour utiliser le mode de génération de cookie automatique, consultez Activation de la génération de cookies automatiques.

Si vous activez le mode mixte, AuthFilter génère les tickets suivants :

  • La première fois que l’utilisateur se connecte au site, il génère un ticket MSCSProfile.

  • Si l’utilisateur est authentifié, il génère le ticket MSCSAuth, qui contiendra l'identificateur d'utilisateur. Vous pouvez utiliser le ticket MSCSAuth pour appliquer un contrôle d’accès.

  • Si l’utilisateur n’est pas authentifié (pas de ticket MSCSAuth), le ticket MSCSProfile indiquera que cet utilisateur est anonyme.

Pour plus d’informations sur les tickets, consultez Tickets d’authentification.

Voir aussi

Planification de la sécurité

Working with Site Security and Filters (en anglais)

Site Security Objects (en anglais)

Gestion de la ressource CS Authentication

Liste de contrôle de la sécurité

Sécurisation de votre site


Tickets d'authentification

Tickets d’authentification

Un ticket est une paire propriété/valeur telle que Identificateur d’utilisateur et la valeur de Identificateur d’utilisateur. Par exemple, Identificateur d’utilisateur/JeanUtilisateur est un ticket. Commerce Server utilise des tickets pour stocker des informations sur les utilisateurs qui visitent un site. Un ticket peut être stocké dans un cookie ou dans une chaîne de requête d’adresse URL.

Commerce Server prend en charge deux types de tickets :

  • Le ticket MSCSProfile est utilisé pour identifier et effectuer le suivi des utilisateurs anonymes/invités qui visitent votre site. Les tickets MSCSProfile sont stockés dans des cookies persistants pour les utilisateurs qui autorisent les cookies persistants. Lorsque vous configurez la ressource Authentification CS, vous déterminez la durée de validité du cookie, qui est en règle générale de plusieurs années.

    Bien que les utilisateurs anonymes n’aient pas de ticket, dans certaines configurations en mode d’authentification Windows, les utilisateurs anonymes doivent obtenir un ticket, devenant ainsi des utilisateurs invités. Si vous utilisez le mode de génération de cookie automatique, par exemple, les utilisateurs anonymes deviennent des utilisateurs invités.

  • Le ticket MSCSAuth est utilisé pour identifier et effectuer le suivi des utilisateurs inscrits (authentifiés). Les tickets MSCSAuth sont stockés dans des cookies non persistants pour les utilisateurs qui autorisent les cookies. Si les utilisateurs n’autorisent pas les cookies, les données du ticket sont stockées dans une chaîne de requête d’adresse URL. Les cookies sont supprimés à la fin de la session.

Le type de ticket émis détermine les ressources auxquelles l’utilisateur peut accéder sur votre site Web.

Les cookies persistants et les cookies non persistants peuvent être cryptés. Ces cookies contiennent les données suivantes :

  • Identificateur d’utilisateur (ticket). Il s’utilise pour les cookies persistants et non persistants. Un développeur de site peut déterminer la valeur à utiliser comme identificateur d’utilisateur. Par exemple, il peut s’agir du nom d’accès ou de l’adresse de messagerie d’un utilisateur. Pour les utilisateurs anonymes, l’identificateur d’utilisateur peut par exemple être un identificateur global unique (GUID, Globally Unique Identifier) généré par une de vos pages ASP. (Commerce Server inclut l’objet GenID, permettant de générer des GUID.)

  • Heure de la dernière connexion. Elle s’utilise pour les cookies non persistants. L’« heure de la dernière connexion » détermine quand les utilisateurs doivent s’authentifier à nouveau. Par exemple, les utilisateurs n’ont pas besoin de s’authentifier à nouveau s’ils s’inscrivent sur votre site Web, cessent de travailler sur leur ordinateur sans se déconnecter (ou restent inactifs pendant un certain laps de temps), puis reprennent le travail avant la fin de la durée de validité. Toutefois, si les utilisateurs reviennent après la fin de la durée de validité, ils doivent se reconnecter.

  • Durée de validité. Elle s’utilise avec les cookies non persistants pour déterminer la durée de validité d’un cookie, en minutes.

Une fois qu’un utilisateur s’est déconnecté d’un site, l’authentification expire. Un développeur de site peut ajouter des propriétés personnalisées aux deux types de cookies.

Voir aussi

Cookies et authentification

Planification de la sécurité

Working with Site Security and Filters (en anglais)

Gestion de la ressource CS Authentication

Liste de contrôle de la sécurité

Sécurisation de votre site


Méthodes d'authentification IIS

Méthodes d’authentification IIS

Commerce Server prend en charge les quatre méthodes d’authentification suivantes fournies par Internet Information Services (IIS) 5.0 :

Authentification anonyme

Authentification de base

Authentification intégrée de Windows

Authentification par certificat

Authentification anonyme

L’authentification anonyme donne aux utilisateurs accès aux zones publiques de votre site Web sans leur demander d’entrer un nom d’utilisateur ou un mot de passe. Lorsqu’un utilisateur tente de se connecter à votre site Web public, votre serveur Web affecte à cet utilisateur le compte d’utilisateur Windows nommé IUSR_<nom_ordinateur>, où <nom_ordinateur> est le nom du serveur sur lequel s’exécute IIS.

Par défaut, le compte IUSR_<nom_ordinateur> est inclus dans le groupe d’utilisateurs Windows Invités. Ce groupe a des restrictions de sécurité, imposées par les autorisations NTFS qui désignent le niveau d’accès et le type de contenu disponibles pour les utilisateurs publics.

Si vous avez plusieurs sites sur votre serveur, ou si des zones de votre site nécessitent des privilèges d’accès différents, vous pouvez créer plusieurs comptes anonymes : un pour chaque site Web ou FTP, répertoire ou fichier. En donnant à ces comptes des autorisations d’accès différentes, ou en affectant ces comptes à des groupes d’utilisateurs Windows différents, vous pouvez accorder aux utilisateurs anonymes l’accès à différentes zones de votre site Web ou FTP public.

IIS utilise le compte IUSR_<nom_ordinateur> de la manière suivante :

  1. Le compte IUSR_<nom_ordinateur> est ajouté au groupe Invités sur l’ordinateur.

  2. Lorsqu’une demande est reçue, IIS représente l’identité du compte IUSR_<nom_ordinateur> avant d’exécuter le code ou d’accéder aux fichiers. IIS est capable de représenter l’identité du compte IUSR_<nom_ordinateur> car il connaît le nom d’utilisateur et le mot de passe associés à ce compte.

  3. Avant de renvoyer une page au client, IIS vérifie les autorisations pour les fichiers et les répertoires NTFS afin de voir si le compte IUSR_<nom_ordinateur> est autorisé à accéder au fichier.

  4. Si l’accès est autorisé, l’authentification est terminée et les ressources sont à la disposition de l’utilisateur.

  5. Si l’accès n’est pas autorisé, IIS va tenter d’utiliser une autre méthode d’authentification. Si aucune méthode n’est sélectionnée, IIS renvoie au navigateur un message d’erreur de type « HTTP 403 Accès refusé ».

Remarques

  • Si l’authentification anonyme est activée, IIS va toujours essayer d’authentifier l’utilisateur en utilisant cette méthode en premier, même si d’autres méthodes sont activées.

  • Dans certains cas, le navigateur invitera l’utilisateur à entrer un nom d’utilisateur et un mot de passe.

Vous pouvez modifier le compte qui est utilisé pour l’authentification anonyme dans le composant logiciel enfichable IIS, soit au niveau de service du serveur Web, soit pour des fichiers et des répertoires virtuels individuels. Le compte anonyme doit avoir le droit de l’utilisateur d’ouvrir une session locale. Si le compte n’a pas l’autorisation Ouvrir une session localement, IIS ne pourra pas traiter les demandes anonymes. L’installation IIS accorde spécialement l’autorisation Ouvrir une session localement au compte IUSR_<nom_ordinateur>. Par défaut, les comptes IUSR_<nom_ordinateur> sur les contrôleurs de domaine ne sont pas attribués aux comptes invités ; ils doivent être modifiés pour avoir l’autorisation Ouvrir une session localement afin d’autoriser les connexions anonymes.

Remarque

  • Vous pouvez modifier les autorisations Ouvrir une session localement requises à l’aide de ADSI (Active Directory Service Interfaces). Pour plus d’informations, consultez la référence « LogonMethod » dans la section Guide Active Server Pages de la documentation relative à IIS 5.0.

Vous pouvez également modifier les privilèges de sécurité du compte IUSR_<nom_ordinateur> dans Windows à l’aide du composant logiciel enfichable Gestionnaire de Stratégie de groupe de Microsoft Management Console (MMC). Cependant, si le compte d’utilisateur anonyme n’a pas l’autorisation d’accéder à un fichier ou une ressource spécifique, votre serveur Web refusera d’établir une connexion anonyme pour cette ressource. Pour plus d’informations, consultez « Définition d'autorisations de serveur Web » dans la documentation relative à IIS 5.0.

Important

  • Si vous modifiez le compte IUSR_<nom_ordinateur>, les modifications affecteront chaque demande HTTP anonyme traitée par un serveur Web. Soyez donc très prudent si vous modifiez ce compte.

Authentification de base

La méthode d’authentification de base est une méthode classique largement utilisée pour collecter des informations sur les noms d’utilisateur et mots de passe. L’authentification de base s’effectue de la manière suivante :

  1. Le navigateur Web de l’ordinateur client affiche une boîte de dialogue dans laquelle les utilisateurs peuvent entrer les noms d’utilisateur et mots de passe précédemment affectés à leur compte Windows 2000.

  2. Le navigateur Web tente ensuite d’établir une connexion à l’aide de ces informations. (Le mot de passe est encodé en Base64 avant d’être envoyé sur le réseau).

  3. Si le serveur rejette les informations, le navigateur Web affiche la boîte de dialogue de façon répétée jusqu’à ce que l’utilisateur entre un nom d’utilisateur et un mot de passe valides, ou jusqu’à ce qu’il ferme la boîte de dialogue.

  4. Lorsque votre serveur Web vérifie que le nom d’utilisateur et le mot de passe correspondent à un compte d’utilisateur Windows valide, une connexion est établie.

Pour plus d’informations sur la configuration de l’authentification de base, consultez « Activation et configuration de l'authentification » dans la documentation en ligne d’IIS 5.0.

L’authentification de base présente l’avantage de faire partie de la spécification HTTP, et d’être prise en charge par la plupart des navigateurs. Le désavantage est que les navigateurs Web qui utilisent l’authentification de base transmettent les mots de passe sous forme non cryptée. En analysant les communications sur votre réseau, quelqu’un pourrait facilement intercepter et déchiffrer ces mots de passe à l’aide d’outils publiquement disponibles. Par conséquent, l’authentification de base n’est pas recommandée, sauf si vous êtes certain que la connexion entre l’utilisateur et votre serveur Web est sécurisée, comme une connexion par câble directe ou une ligne dédiée.

Remarque

  • L’authentification intégrée de Windows est prioritaire sur l’authentification de base. Le navigateur choisira l’authentification intégrée de Windows et tentera d’utiliser les informations de connexion Windows actuelles avant d’inviter l’utilisateur à entrer un nom d’utilisateur et un mot de passe. Actuellement, seul Internet Explorer, versions 2.0 et ultérieures, prend en charge l’authentification intégrée de Windows.

Authentification intégrée de Windows

L’authentification intégrée de Windows (précédemment appelée authentification stimulation/réponse de Windows NT ou NTLM) est une forme d’authentification sécurisée car le nom d’utilisateur et le mot de passe ne sont pas envoyés sur le réseau. Lorsque vous activez l’authentification intégrée de Windows, le navigateur de l’utilisateur prouve sa connaissance du mot de passe par le biais d’un échange cryptographique avec votre serveur Web, impliquant un hachage. (Les informations d’identification pour authentification sont transmises via un processus à sens unique, souvent appelé hachage. Le résultat de ce processus est appelé un hachage, ou message résumé, et il est impossible de le décrypter. Plus exactement, le texte d’origine ne peut pas être déchiffré à partir du hachage.)

L’authentification intégrée de Windows peut utiliser le protocole d’authentification Kerberos v5 et son propre protocole d’authentification stimulation/réponse. Si les services d’annuaire sont installés sur le serveur et si le navigateur est compatible avec le protocole d’authentification Kerberos v5, le protocole Kerberos v5 et le protocole stimulation/réponse sont tous deux utilisés ; sinon, seul le protocole stimulation/réponse est utilisé.

Le protocole d’authentification Kerberos v5 est une fonctionnalité de l’architecture Windows 2000 Distributed Services. Pour que l’authentification Kerberos v5 aboutisse, le client et le serveur doivent tous deux avoir une connexion approuvée avec un centre de distribution de clés (KDC, Key Distribution Center) et être compatibles avec Directory Services. Pour plus d’informations sur ce protocole, consultez la documentation relative à Windows 2000.

L’authentification intégrée de Windows s’effectue de la manière suivante :

  1. À la différence de l’authentification de base, elle n’invite pas initialement les utilisateurs à entrer un nom d’utilisateur et un mot de passe. Les informations utilisateur Windows actuelles stockées sur l’ordinateur client sont utilisées pour l’authentification intégrée de Windows.

    Remarque

    • Internet Explorer, versions 4.0 et ultérieures, peut être configuré pour demander initialement les informations utilisateur si nécessaire. Pour plus d’informations, consultez la documentation relative à Internet Explorer.
  2. Cependant, si l’échange d’authentification ne réussit pas initialement à identifier l’utilisateur, le navigateur invite l’utilisateur à entrer un nom d’utilisateur et un mot de passe de compte d’utilisateur Windows, qu’il traitera à l’aide de l’authentification intégrée de Windows.

  3. Internet Explorer continuera à afficher des invites jusqu’à ce que l’utilisateur entre un nom d’utilisateur et un mot de passe valides, ou jusqu’à ce qu’il ferme la boîte de dialogue d’invite.

Bien que l’authentification intégrée de Windows soit sécurisée, elle comporte trois limitations :

  1. Seul Microsoft Internet Explorer, versions 2.0 et ultérieures, prend en charge cette méthode d’authentification.

  2. L’authentification intégrée de Windows ne fonctionne pas sur les connexions proxy HTTP.

  3. Il est nécessaire d’ouvrir des ports TCP supplémentaires dans le pare-feu.

Par conséquent, l’authentification intégrée de Windows est idéale pour un environnement intranet, où les ordinateurs de l’utilisateur et du serveur Web se trouvent tous deux dans le même domaine, et où les administrateurs peuvent s’assurer que chaque utilisateur dispose de Microsoft Internet Explorer version 2.0 ou ultérieure.

Authentification par certificat

Vous pouvez également utiliser les fonctionnalités de sécurité SSL (Secure Sockets Layer) de votre serveur Web pour deux types d’authentification. Vous pouvez utiliser un certificat de serveur pour permettre aux utilisateurs d’authentifier votre site Web avant de transmettre leurs informations personnelles, telles qu’un numéro de carte de crédit. Vous pouvez également utiliser des certificats clients pour authentifier les utilisateurs demandant des informations sur votre site Web. SSL effectue l’authentification en vérifiant le contenu d’une identification numérique cryptée soumise par le navigateur Web pour l’utilisateur au cours du processus de connexion. (Les utilisateurs obtiennent les certificats clients auprès d’une organisation tierce digne de confiance.) Les certificats de serveur contiennent généralement des informations sur votre entreprise et l’organisation qui a émis le certificat. Les certificats clients contiennent généralement des informations d’identification sur l’utilisateur et l’organisation qui a émis le certificat.

Mappage de certificat client

Vous pouvez associer, ou mapper, des certificats clients et des comptes d’utilisateur sur votre serveur Web. Une fois qu’un mappage de certificat a été créé et activé, chaque fois qu’un utilisateur se connecte avec un certificat client, votre serveur Web associe automatiquement cet utilisateur au compte d’utilisateur Windows approprié. De cette façon, vous pouvez automatiquement authentifier les utilisateurs qui se connectent avec des certificats clients, sans avoir à utiliser l’authentification de base, l’authentification intégrée de Windows ou Messaging Digest. Vous pouvez mapper au choix un certificat client vers un compte d’utilisateur Windows, ou plusieurs certificats clients vers un compte. Par exemple, si votre serveur hébergeait plusieurs entreprises ou services différents ayant chacun son propre site Web, vous pourriez utiliser le mappage de type plusieurs-à-un pour mapper l’ensemble des certificats clients de chaque service ou entreprise vers son propre site Web. De cette façon, chaque site fournirait l’accès à ses propres clients uniquement. Pour plus d’informations, consultez « Mappage des certificats clients avec les comptes d’utilisateur » dans la documentation en ligne d’IIS 5.0.


Pour plus d'informations sur la sécurité

Pour plus d’informations sur la sécurité

L’aide de Commerce Server 2000 fournit les rubriques suivantes concernant la sécurité :

  • Cookies et authentification. Décrit les cookies de Commerce Server et leur utilisation par Commerce Server dans une Web farm.

  • Planification de la sécurité. Fournit des recommandations pour les questions concernant l’implémentation de la sécurité.

  • Working with Site Security and Filters (en anglais). Fournit des informations détaillées sur le développement d’un site à l’aide de AuthFilter.

  • Site Security Objects (en anglais). Décrit l’utilisation des objets AuthManager et BizDeskSecurity. Fournit un exemple de code pour les objets de sécurité du site.

  • Gestion de la ressource CS Authentication. Explique comment utiliser la ressource CS Authentication pour établir ou modifier la méthode d’authentification de votre site Commerce Server. Fournit des exemples de code de Login.asp pour activer AuthFilter pour les sites solutions Retail et Supplier.

  • Liste de contrôle de la sécurité. Fournit une liste de points de sécurité spécifiques à Commerce Server, tels que la sécurisation des sessions Commerce Server Business Desk, et explique comment les implémenter.

  • Sécurisation de votre site. Explique comment sécuriser un site Commerce Server, y compris comment limiter l’accès à votre site, au module Business Desk et à la base de données d’administration.

Pour plus d’informations sur la sécurité, consultez les ressources suivantes :

  • Kit de Ressources Techniques Commerce Server 2000. Explique comment implémenter la sécurité lors du développement d’un site solution Commerce Server. Le Kit de Ressources Techniques Commerce Server 2000 est disponible auprès de Microsoft Press.

  • Documentation en ligne d’Internet Information Services (IIS)

  • Kit de Ressources Techniques Microsoft Windows 2000 Server

  • Site de sécurité de Microsoft, à l’adresse http://www.microsoft.com/security/

  • Site de sécurité Windows de Microsoft, à l’adresse http://www.microsoft.com/ntserver/security/default.asp


Planification de votre installation Commerce Server

Vous devez prendre certaines décisions en matière de planification avant de développer et de déployer votre installation de Microsoft® Commerce Server 2000. Pour développer et déployer correctement Commerce Server, il est important de bien tenir compte de ces problèmes de planification et d’en rechercher les implications en consultant d’autres sections de l’aide de Commerce Server 2000.

La planification de votre implémentation de Commerce Server est la première phase, et peut-être la plus importante, du cycle planification-développement-déploiement-gestion. En effet, la planification rigoureuse de votre site, ainsi que la prise en compte de son expansion future, peuvent vous éviter de perdre du temps et de l’argent en modifications ultérieures.

Commerce Server comprend cinq sous-systèmes étroitement intégrés. Outre la planification de ces sous-systèmes, vous devez également planifier la gestion et l’administration de votre implémentation. Les rubriques de cette section traitent de la planification de chacun des sous-systèmes.

Cette section contient les rubriques suivantes :

  • Planification des outils d’administration et de gestion. Fournit des recommandations sur les questions relatives à la gestion et l’administration de votre site.

  • Planification du système d’analyse commerciale. Fournit des recommandations sur les questions relatives à l’accès et la mise à jour de vos données.

  • Planification des pipelines de processus commercial. Fournit des recommandations sur les questions relatives à la fonctionnalité d’un pipeline.

  • Planification du système de catalogue de produits. Fournit des recommandations sur les questions relatives à votre système de catalogue de produits.

  • Planification du système de profil. Fournit des recommandations sur les questions relatives à votre système de profil.

  • Planification du système de ciblage. Fournit des recommandations sur les questions relatives à votre système de ciblage.

  • Planification de l’architecture et de la sécurité du site. Fournit des recommandations sur les questions relatives à l’architecture et la sécurité de votre site.

  • Planification du déploiement. Fournit des recommandations sur les questions relatives à la planification du déploiement de votre site.


Planification des outils d'administration et de gestion

Planification des outils d’administration et de gestion

Commerce Server 2000 comprend trois outils de gestion et d’administration de votre installation : Commerce Server Business Desk, Partner Service et Commerce Server Manager.

Business Desk vous permet de configurer de nombreuses options et de gérer le marketing et l’analyse quotidienne des activités liées au site. Vous devez prendre certaines décisions concernant votre site pour utiliser Business Desk de manière optimale.

Le tableau suivant répertorie certaines questions auxquelles vous devez répondre lors de la planification des outils d’administration et de gestion.

Question liée à la planification | Recommandation
Votre site s’adresse-t-il principalement à des consommateurs ou à des partenaires commerciaux ? Si votre site s’adresse à des consommateurs, vous devez procéder à son développement à l’aide du site solution Retail car il inclut le Service clientèle, qui permet aux utilisateurs d’accéder à leurs informations de profil.

Si votre site s’adresse à des partenaires commerciaux, vous devez procéder à son développement à l’aide du site solution Supplier car il inclut Partner Service, qui permet aux partenaires commerciaux d’accéder à leurs comptes.

Pour télécharger les sites solutions, consultez le site http://www.microsoft.com/commerceserver/solutionsites (en anglais).
Si vous envisagez une interaction avec des partenaires commerciaux, devez-vous échanger des documents commerciaux avec eux ? | Vous devez planifier l’intégration de Microsoft BizTalk Server 2000 à votre implémentation si vous envisagez d’échanger des documents commerciaux avec vos partenaires commerciaux.
Quelles sont les options de paiement prises en charge par votre site ? | Vous devez contacter un établissement bancaire si vous envisagez de prendre en charge le paiement par carte de crédit.
Quelles sont les devises prises en charge par votre site ? | Si votre site doit afficher des informations dans plusieurs devises, vous devez étendre le système de catalogue de produits.
Les chefs d’entreprise doivent-ils avoir accès à de gros volumes de données ? | Certains aspects de la gestion de site ne se prêtent pas à l’accès à de gros volumes de données via Business Desk. Par exemple, si votre catalogue de produits inclut plus de 100 000 articles, vous devrez peut-être publier les mises à jour à l’aide d’un script plutôt que par l’intermédiaire des modules Catalogues fournis dans Business Desk. Vous devez planifier les besoins de Business Desk en matière de capacité.

Voir aussi

Localizing Currencies (en anglais)

Utilisation de BizTalk Server et de Commerce Server

Planification de la capacité et des performances

Configuration des propriétés de la ressource configuration par défaut de l’application


Planification du système d'analyse commerciale

Planification du système d’analyse commerciale

Data Warehouse de Commerce Server 2000 vous permet de collecter jour après jour les données opérationnelles concernant les utilisateurs qui visitent votre site, y compris les données de profil utilisateur, les données de transaction et les données d’historique des clics. Les modules Analyse vous permettent d’analyser des données, par exemple, pour identifier les tendances des utilisateurs ou analyser l’efficacité d’une campagne marketing, puis mettre à jour votre site et cibler un contenu en fonction de groupes d’utilisateurs bien précis, ou vendre des produits spécifiques, etc.

Le tableau suivant répertorie certaines questions auxquelles vous devez répondre lors de la planification du système d’analyse commerciale.

Question liée à la planification | Recommandation
Comment l’analyse des données va-t-elle affecter les décisions commerciales majeures que vous devez prendre à propos de votre site ? Quels sont les rapports dont vous avez besoin pour prendre ces décisions ? | Pour examiner les rapports disponibles dans le système d’analyse commerciale, consultez la section Rapports Commerce Server. Si les rapports ne répondent pas à vos besoins, consultez Creating Custom Reports (en anglais) pour avoir plus d’informations sur la modification des rapports existants ou la création de nouveaux rapports. Il existe également un certain nombre de fournisseurs de logiciels tiers disposant de solutions de création de rapports, capables d’interagir avec le système d’analyse commerciale.
Qui doit accéder aux données au sein de votre organisation ? À quelle fréquence doivent-ils exécuter les rapports, et quel est le niveau de détail escompté lors des mises à jour ? | Vous devez établir une planification pour l’exécution des rapports. Vous devez exécuter les rapports statiques périodiquement, sinon les données seront périmées. Vous devez synchroniser l’exécution des rapports et l’exécution des tâches des services de transformation de données (DTS, Data Transformation Services).
À quelle fréquence allez-vous traiter les journaux de serveur Web ? | Le volume et la nature des données stockées dans vos journaux détermineront votre réponse. Plus vous traitez les journaux, plus ils sont petits. Des fichiers journaux volumineux offrent un ensemble de données plus important, mais ils sont plus longs à traiter. Vous devez déterminer la fréquence de traitement appropriée dans votre environnement de test, puis l’appliquer à votre environnement de production.

Voir aussi

Rapports Commerce Server

Rapports personnalisés

Data Warehouse

Working with the Data Warehouse (en anglais)


Planification des pipelines de processus commercial

Les pipelines vous permettent de définir et de relier entre elles une ou plusieurs étapes d’un processus commercial, avant de les exécuter sous forme séquentielle pour effectuer une tâche spécifique. Chaque étape d’un pipeline contient un ou plusieurs composants de pipeline, qui sont des objets COM (Component Object Model) pouvant être configurés en fonction des besoins spécifiques d’un site.

Les développeurs de site utilisent cette infrastructure pour implémenter deux modèles de pipelines : le pipeline de traitement des commandes (OPP) et le pipeline de sélection de contenu (CSP).

Le tableau suivant répertorie certaines questions auxquelles vous devez répondre lors de la planification des pipelines de processus commercial.

Question liée à la planification | Recommandation
Les composants de pipeline inclus dans Commerce Server répondent-ils à vos besoins ? Dans la négative, voulez-vous créer vos propres composants ou les acheter à un développeur de composants de pipeline tiers ? | Examinez la fonctionnalité offerte par les pipelines inclus dans Commerce Server 2000. Déterminez si les étapes de traitement correspondent à vos besoins. Dans la négative, développez vous-même les fonctionnalités des pipelines, ou achetez des composants de pipeline auprès d’un développeur de composants de pipeline tiers. Par exemple, vous pouvez ajouter des composants de pipeline tiers pour effectuer des calculs complexes de frais de livraison et de taxes avec paiement par carte de crédit.

Voir aussi

Working with Pipelines (en anglais)

Building Pipeline Components (en anglais)

Extending the Content Selection Framework (en anglais)


Planification du système de catalogue de produits

Le système de catalogue de produits permet de créer des catalogues de produits, mais également d’ajouter et de mettre à jour les données sur les produits. Ce système offre des fonctionnalités d’importation et d’exportation, et vous permet de définir ou de modifier le schéma des catalogues.

Le tableau suivant répertorie certaines questions auxquelles vous devez répondre lors de la planification du système de catalogue de produits.

Question liée à la planification | Recommandation
Envisagez-vous de synchroniser les informations du système de catalogue de produits avec un catalogue hors connexion ? | Si vous synchronisez les informations du système de catalogue de produits avec votre catalogue hors connexion, vous devez développer un logiciel personnalisé. Pour obtenir cette fonctionnalité, contactez votre administrateur système.
Quel est le meilleur schéma d’organisation pour votre catalogue ? | Le système de catalogue de produits est suffisamment versatile pour accepter une grande variété de schémas. Si vous créez un nouveau catalogue, veillez à inclure un nombre important de possibilités d’expansion dans le schéma.
Utilisez-vous des modèles de tarification complexes ou avez-vous d’autres besoins dépassant les fonctionnalités du système de catalogue de produits ? | Dans ce cas, envisagez l’utilisation d’une solution de gestion de catalogue tierce. Un certain nombre de fournisseurs de solutions de gestion de catalogue proposent des produits qui prennent en charge Commerce Server et qui offrent des fonctionnalités supplémentaires. Vous pouvez également étendre le système de catalogue de produits en créant vos propres composants de pipeline pour répondre à vos besoins en matière de tarification complexe.
Voulez-vous fournir des catalogues personnalisés à différents groupes d’utilisateurs ? | Créez un catalogue de base que vous pourrez ensuite modifier en fonction des propriétés des utilisateurs. La planification de ces catalogues personnalisés doit s’effectuer conjointement avec la planification du système de profil.
Quelles sont les données du catalogue que vous devez exporter vers Data Warehouse ? | Vous devez exporter les informations requises pour créer les rapports que vous avez identifiés lorsque vous avez planifié l’utilisation du système d’analyse commerciale.
Voulez-vous échanger des catalogues avec vos partenaires commerciaux ? | Dans ce cas, incluez Microsoft BizTalk Server 2000 dans votre stratégie de déploiement. Il offre les fonctionnalités nécessaires pour échanger des catalogues.

Voir aussi

À propos des catalogues

Catalogues Business Desk

Utilisation de BizTalk Server et de Commerce Server

Integrating a Third-Party Product Catalog (en anglais)


Planification du système de profil

Dans Commerce Server 2000, les profils vous permettent de collecter et de stocker des informations sur les utilisateurs qui visitent votre site Web. Les données qui constituent un profil proviennent de plusieurs sources de données, notamment les fichiers journaux Web et les bases de données Commerce Server. Après avoir importé les données de profil dans Data Warehouse et les avoir analysées, vous pouvez utiliser les résultats obtenus pour cibler un contenu vers des groupes d’utilisateurs.

Le tableau suivant répertorie certaines questions auxquelles vous devez répondre lors de la planification du système de profil.

Question liée à la planification | Recommandation
Quelles sont les décisions commerciales que vous devez prendre concernant les informations collectées dans le système de profil ? | Commencez la planification du système de profil en répondant à cette question. Votre réponse va déterminer le reste de vos décisions de planification pour ce système.
Pour quels types d’entités commerciales (par exemple, clients, sociétés, produits, bons de commande ou comptes) stockez-vous actuellement des informations ? Parmi celles-ci, sur quelles entités devez-vous stocker des informations dans le système de profil ? | Le système de profil est suffisamment flexible pour capturer et stocker des informations sur une grande variété d’entités commerciales. Il peut rassembler ces informations à partir de sources de données disparates. Vous configurez le système en définissant les entités et les sources de données. Vous devez coordonner cet effort de planification avec l’administrateur de base de données pour avoir la garantie que les entités de données définies sont compatibles avec les entités qui existent dans votre système de gestion de base de données.
Quelles sont les informations de profil que vous devez exporter vers Data Warehouse ? | Vous devez exporter les informations à utiliser pour créer les rapports que vous avez identifiés en réponse à la question de la section Planification du système d’analyse commerciale.
Quelles sont les informations que vous devez collecter sur les utilisateurs ? | Vous pouvez collecter les informations directement chez les utilisateurs ou utiliser la ressource Predictor pour compléter les informations manquantes (ciblage implicite).
Quelle banque de données voulez-vous utiliser pour le stockage des profils ? | Si vous devez authentifier les utilisateurs à l’aide du contexte de sécurité de Microsoft Windows 2000, vous devez stocker certaines informations de profil dans Microsoft Active Directory. Dans le cas contraire, utilisez Microsoft SQL Server 2000 pour stocker les données de profil.
Existe-t-il des comptes d’utilisateur que vous devez transférer vers le système de profil ? Voulez-vous transférer tous les attributs du système actuel ? | Si vous effectuez un transfert de comptes d’utilisateur depuis l’annuaire d’abonnement de Microsoft Site Server 3.0, utilisez la boîte à outils de migration d’annuaire. N’envisagez pas de gérer l’annuaire d’abonnement une fois la migration effectuée.

Voir aussi

À propos de la ressource Profiles

Exécution de la ressource Profiles

Exécution de la ressource Predictor

Migration de l’annuaire d’abonnement


Planification du système de ciblage

Le système de ciblage vous permet d’offrir un contenu à un ou plusieurs utilisateurs. Le système de ciblage comprend quatre sous-systèmes distincts, dont vous devez tenir compte lors de sa planification.

Cette section contient les rubriques suivantes :

  • Planification de l’infrastructure de sélection de contenu

  • Planification du service de publipostage

  • Planification de l’Évaluateur d’expressions

  • Planification de la ressource Predictor


Planification de l'infrastructure de sélection de contenu

Planification de l’infrastructure de sélection de contenu

L’infrastructure de sélection de contenu (CSF) repose sur l’architecture de pipeline de Commerce Server 2000. Vous pouvez utiliser principalement l’infrastructure de sélection de contenu pour gérer une campagne marketing (remise de publicités et de promotions), mais sa souplesse d’utilisation vous permet également de classer, sélectionner et planifier n’importe quel type de contenu.

Le tableau suivant répertorie certaines questions auxquelles vous devez répondre lors de la planification de vos campagnes marketing en ligne.

Question liée à la planification | Recommandation
Voulez-vous cibler des campagnes marketing en fonction de groupes d’utilisateurs bien précis ? Dans ce cas, quels sont les attributs utilisateur que vous voulez cibler ? | Utilisez le système d’analyse commerciale pour déterminer les schémas d’achat courants sur votre site et incorporer ces informations dans votre système de ciblage. La planification de ce domaine est un processus constant.
Voulez-vous vendre de la publicité à d’autres organisations ? Dans ce cas, quel est le prix envisagé pour la publicité ? | Établissez une tarification si vous n’en possédez pas déjà. Vous devez disposer de cette information lors de la création des campagnes marketing dans Commerce Server Business Desk.
Qui doit prendre les décisions concernant la gestion des remises ? Quelles stratégies comptez-vous appliquer pour prendre ces décisions ? | Coordonnez vos remises avec vos campagnes publicitaires pour amplifier leur efficacité.
Quelles sont les informations dont vous avez besoin de la part du système d’analyse commerciale pour prendre des décisions concernant la tarification ? | Déterminez vos besoins en informations pour l’infrastructure de sélection de contenu, et utilisez cette estimation pour évaluer et modifier, si nécessaire, les rapports fournis par le système d’analyse commerciale.
Vos campagnes marketing doivent-elles utiliser la ressource Predictor ? Dans ce cas, quels sont les segments d’utilisateurs clés que vous devez cibler ? | Collectez des informations sur les schémas d’utilisation dans Data Warehouse de Commerce Server, utilisez la ressource Predictor pour identifier les segments d’utilisateurs, puis intégrez ces informations dans vos campagnes marketing.

Voir aussi

Extending the Content Selection Framework (en anglais)

Exécution de la ressource Predictor


Planification du service de publipostage

Le service de publipostage de Commerce Server vous permet de gérer des listes de publipostage utilisateur et de coordonner l’envoi de publipostage aux membres de ces listes. Le message électronique que vous créez peut être personnalisé à l’aide de pages ASP (Active Server Pages), ou représenter un fichier statique. Vous pouvez utiliser le module Gestionnaire de listes pour importer des adresses de messagerie à partir d’un fichier standard ou d’une base de données Microsoft SQL Server dans une base de données de publipostage.

Le tableau suivant répertorie certaines questions auxquelles vous devez répondre lors de la planification de vos campagnes de publipostage.

Question liée à la planification | Recommandation
Qui recevra les publipostages directs que vous créez ? Quelles règles allez-vous utiliser pour définir la liste de publipostage ? | Utilisez le système d’analyse commerciale pour identifier les segments d’utilisateurs que vous voulez cibler, puis créez les listes correspondantes.
Comment les utilisateurs vont-ils vous indiquer qu’ils souhaitent être retirés de la liste de publipostage ? | Incluez toujours une option d’annulation d’abonnement dans vos publipostages directs.
À quelle fréquence voulez-vous envoyer vos publipostages ? | Établissez un calendrier et créez un script pour automatiser le processus.
Le publipostage doit-il être personnalisé ? Dans ce cas, quelles sont les informations de profil utilisateur que vous voulez inclure dans la personnalisation ? | Un message personnalisé a davantage d’impact. Créez vos profils utilisateur de manière à inclure les attributs à utiliser pour vos cibles de publipostage.

Voir aussi

À propos du service de publipostage

Pipeline du service de publipostage

Exécution du service de publipostage

Développement d’un contenu de publipostage


Planification de l'Évaluateur d'expressions

Planification de l’Évaluateur d’expressions

L’Évaluateur d’expressions vous permet de créer des règles commerciales pour fournir des publicités, des remises et des contenus personnalisés. Ces règles sont des expressions conditionnelles.

Le tableau suivant répertorie certaines questions auxquelles vous devez répondre lors de la planification de l’Évaluateur d’expressions.

Question liée à la planification | Recommandation
Quel contenu voulez-vous faire découvrir à vos utilisateurs ? Quelles règles commerciales devez-vous créer pour implémenter ce type de découverte ? | Vous devez créer des expressions qui seront évaluées par l’Évaluateur d’expressions afin de créer les contenus spécifiques à découvrir par l’utilisateur. Basez vos expressions sur les exigences de personnalisation que vous avez développées pour le système de ciblage. Par exemple, si vous avez décidé d’afficher un contenu en fonction d’une adresse URL (Uniform Resource Locator) de référence, vous pouvez créer l’expression Point d’accès égal URL.
Quelles sont les entrées du glossaire du site nécessaires pour créer les règles commerciales requises ? | Créez les entrées du glossaire du site nécessaires pour prendre en charge les expressions que vous avez identifiées. Dans l’exemple précédent, vous devez développer une entrée du glossaire du site appelée « Point d’accès ».

Voir aussi

Générateur d’expressions

Ciblage basé sur des expressions

Ciblage d’une publicité ou d’une remise

Ajout d’une entrée du glossaire du site


Planification de la ressource Predictor

La ressource Predictor permet principalement d’accroître l’analyse d’un certain type de données, comme les données de transaction ou les données des journaux Web. La ressource Predictor sert également à conseiller des produits aux utilisateurs en ligne et à compléter les propriétés de profil utilisateur manquantes.

Avant d’utiliser la ressource Predictor, vous devez vérifier que les rapports d’analyse fournissent les informations dont vous avez besoin. Vous devez collecter des données sur quelques milliers d’utilisateurs différents au moins avant de créer des modèles à l’aide de la ressource Predictor.

Le tableau suivant répertorie certaines questions auxquelles vous devez répondre lors de la planification de la ressource Predictor.

Question liée à la planification | Recommandation
Envisagez-vous d’offrir aux utilisateurs des recommandations de produits et un ciblage plus restreint ? | Implémentez la ressource Predictor sur votre site en construisant des modèles de comportement utilisateur, après avoir collecté suffisamment de données préliminaires dans Data Warehouse de Commerce Server.
Quels sont les segments d’utilisateurs clés que vous devez identifier pour rendre vos recommandations significatives ? | Utilisez la ressource Predictor pour identifier les segments significatifs, et les afficher à l’aide du module Identification de segments.
Voulez-vous compléter les données de profil utilisateur par inférence, ou établir des recommandations basées uniquement sur les données explicitement fournies par les utilisateurs ? | Vous pouvez utiliser la ressource Predictor pour identifier par inférence des données sur les utilisateurs pour lesquels vous ne disposez pas d’informations complètes (par exemple, les utilisateurs invités). Si vous envisagez d’identifier les propriétés de l’utilisateur par inférence, utilisez le module Identification de segments dans Business Desk conjointement avec la vue du réseau de dépendances dans Commerce Server Manager pour vous concentrer sur les attributs utilisateur clés à utiliser lors des prévisions. Vous pouvez ensuite utiliser ces attributs pour cibler le contenu vers les utilisateurs qui possèdent des caractéristiques similaires.

Voir aussi

À propos de la ressource Predictor

Exécution de la ressource Predictor

Predictor Schema (en anglais)

Prediction Objects (en anglais)


Planification de l'architecture et de la sécurité du site

Planification de l’architecture et de la sécurité du site

La planification de l’ensemble de l’architecture de votre site de commerce électronique comprend la planification de sa croissance, la définition des objectifs de performances, et l’établissement des exigences en matière de sécurité. Cette section décrit certaines questions liées à la planification dans chacun de ces domaines.

Remarques

  • L’architecture du site de Commerce Server 2000 peut inclure Microsoft SQL Server 2000 ou SQL Server 7.0.

  • La fonctionnalité de recherche de texte intégral de SQL Server 7.0 utilisée par la fonctionnalité d’index de texte intégral du système de catalogue de produits ne peut pas être utilisée dans un environnement de gestion de clusters Microsoft Windows NT.

Cette section contient les rubriques suivantes :

  • Planification de la capacité et des performances

  • Planification de la croissance

  • Planification de l’intégration aux systèmes existants

  • Planification d’une haute disponibilité

  • Planification de la sécurité

  • Planification de l’intégration à Active Directory


Planification de la capacité et des performances

Il est difficile de prévoir la façon dont les variables associées à la structure du site, les règles d’écriture du code, le comportement de l’utilisateur et l’architecture du site vont se combiner pour affecter les performances du site. C’est pourquoi il est important de planifier et de tester la capacité et les performances de votre site avant de rendre ce dernier opérationnel dans un environnement de production.

Si vous faites migrer un site existant, vous pouvez analyser les données existantes en les considérant comme une base pour la planification du nouveau site. Si vous créez un site pour la première fois, utilisez les instructions de dimensionnement fournies dans le Kit de Ressources Techniques Commerce Server 2000 pour créer un site de test, que vous pouvez ensuite charger, tester et optimiser avant de le rendre réellement opérationnel.

La planification des performances et la planification de la capacité sont indissociables ; cependant, chaque processus implique une perspective différente. La planification des performances répond aux aspects techniques du site en se concentrant sur les valeurs métriques des performances, par exemple, le débit des pages ASP (Active Server Pages) et la latence ASP. La planification de la capacité répond à une perspective commerciale, en se concentrant sur l’élargissement du nombre d’utilisateurs que le site peut gérer.

De ces deux processus, la planification des performances est le plus simple. Il est relativement facile de mesurer le nombre de transactions de validation par seconde, et d’établir des comparaisons avec les autres sites de commerce. Pour plus d’informations sur les outils de mesure des performances, consultez Utilisation des outils d’analyse des performances. Des outils supplémentaires sont disponibles dans le Kit de Ressources Techniques Commerce Server 2000.

L’analyse de la capacité d’utilisateurs est un petit peu plus complexe. Avant de pouvoir prévoir la capacité maximale d’utilisateurs, vous devez d’abord établir le profil du comportement de l’utilisateur, puis utiliser ces informations de profil utilisateur conjointement avec les valeurs métriques des performances, afin de calculer la capacité. Le comportement de l’utilisateur varie d’un site à un autre, en fonction de la richesse de l’expérience d’achat (structure de la page, structure du site et temps de réponse), ainsi que des types de produits vendus et de l’étendue de la gamme de produits. En raison des différences qui existent au niveau du comportement de l’utilisateur, un site peut prendre en charge 1 000 utilisateurs, alors qu’un autre site installé sur une plate-forme identique peut ne prendre en charge que 200 utilisateurs.

Pour plus d’informations sur l’analyse des performances et la planification de la capacité, consultez le livre blanc Sizing Guidelines for Windows 2000 Domain Controller and Global Catalog Server, disponible à l’adresse suivante : http://www.microsoft.com/WINDOWS2000/library/planning/management/dcsize.asp (en anglais).

Le tableau suivant répertorie certaines questions auxquelles vous devez répondre lors de la planification des performances.

Question liée à la planification | Recommandation
Quels sont les éléments clés à mesurer pour déterminer les performances du site ? | Sélectionnez les facteurs les plus proches de vos objectifs en ce qui concerne le contenu à découvrir par l’utilisateur. Par exemple, si votre objectif consiste à permettre aux utilisateurs de naviguer rapidement dans le catalogue, mesurez la vitesse à laquelle est renvoyée une demande de navigation dans le catalogue.
Quels sont les profils d’utilisation clés pour la mesure des performances du site ? | Déterminez la manière dont vous voulez que les utilisateurs se connectent à votre site, ainsi que la charge prévue. Utilisez ce profil d’utilisation dans votre environnement de test, puis confirmez l’exactitude des profils lorsque vous avez collecté les informations relatives à l’utilisation dans Data Warehouse de Commerce Server.
Quels sont les outils et les ressources nécessaires pour mesurer les performances de votre site ? | Examinez les outils de performance fournis dans le Kit de Ressources Techniques Commerce Server 2000 pour déterminer s’ils correspondent à vos besoins.
De combien de serveurs avez-vous besoin pour votre site ? Comment doivent-ils être configurés ? | Commencez par examiner les informations de configuration du scénario d’utilisation fournies dans le Kit de Ressources Techniques Commerce Server 2000. Comparez ces scénarios avec les besoins de votre site, puis modifiez les informations de configuration selon la nature de vos besoins.
Quelles sont vos attentes concernant le rythme de croissance de l’utilisation de votre site ? | Prenez en compte le dépassement de capacité lors des premières étapes du déploiement de votre site. Comparez régulièrement la croissance effective à vos projections.
Comment voulez-vous équilibrer la charge entre les serveurs de votre site ? | Consultez le Kit de Ressources Techniques Windows 2000 et le Kit de Ressources Techniques Commerce Server 2000 pour obtenir des informations sur l’utilisation de l’équilibrage de charge réseau (NLB, Network Load Balancing).

Voir aussi

Optimisation de Commerce Server

Utilisation des outils d’analyse des performances

Analyse des sites Commerce Server


Planification de la croissance

La structure préliminaire de votre site doit prendre en compte les possibilités d’expansion future. Un site correctement planifié peut être étendu ou adapté de manière efficace pour gérer l’augmentation du trafic tout en préservant les performances.

Pour planifier la future croissance de votre site, vous devez diviser l’architecture de votre site en deux larges couches : les serveurs Web frontaux et les systèmes principaux, qui stockent les données et contiennent vos systèmes de traitement commercial. Chacune de ces couches peut être subdivisée en plusieurs niveaux pour correspondre au schéma de croissance prévu pour votre site. Étant donné que Commerce Server 2000 est flexible, vous pouvez choisir l’architecture qui répond le mieux à vos besoins.

Vous ajustez généralement la partie principale en premier lieu, en procédant à un ajustement vertical (par la mise à jour du serveur et l’ajout d’un stockage de masse). Ensuite, vous pouvez également subdiviser la couche de données par fonction entre deux ou plusieurs serveurs. Par exemple, Data Warehouse de Commerce Server peut être placé sur un serveur, et la base de données de stockage des informations de profil sur un autre. À l’aide de Commerce Server, vous pouvez répartir des fonctions entre plusieurs serveurs lors de l’installation, ou effectuer cette procédure ultérieurement à l’aide de Commerce Server Manager. Pour les sites de grande taille, il est possible de partitionner les bases de données individuellement sur plusieurs serveurs.

Le tableau suivant répertorie certaines questions auxquelles vous devez répondre lors de la planification de la croissance.

Question liée à la planification | Recommandation
Quelle est l’architecture de site qui répond le mieux à vos besoins en matière d’augmentation constante de la capacité ? | Examinez les informations de configuration du scénario d’utilisation fournies dans le Kit de Ressources Techniques Commerce Server 2000. Sélectionnez la configuration qui répond le mieux à vos besoins.
Comment voulez-vous accroître la capacité de votre site parallèlement aux besoins d’utilisation ? | Planifiez une amélioration de chaque type de serveur, chaque connexion réseau et chaque fonction de Commerce Server. Cette planification doit inclure vos prévisions en matière d’amélioration du site lorsque les seuils spécifiés (tels que le nombre d’utilisateurs simultanés, l’utilisation de la mémoire ou du disque) sont atteints.

Voir aussi

Déploiement de votre site


Planification de l'intégration aux systèmes existants

Planification de l’intégration aux systèmes existants

Durant le processus de planification, vous devez évaluer les systèmes et données existants, puis déterminer les méthodes les plus efficaces pour les intégrer aux composants de Commerce Server 2000 ou pour les convertir aux formats pouvant être importés dans les bases de données Commerce Server. En outre, vous devez planifier l’intégration de vos sous-systèmes de commerce électronique.

Le tableau suivant répertorie certaines questions auxquelles vous devez répondre lors de la planification de l’intégration.

Question liée à la planification | Recommandation
Voulez-vous intégrer les bases de données et serveurs de base de données existants, qui contiennent des données telles que des catalogues et des profils utilisateur ou des clients ? | Si vous envisagez de gérer des sources de données distinctes pour vos activités hors connexion et en ligne, vous devez établir un système de synchronisation des données. Intégrez Microsoft Host Integration Server 2000 et Microsoft Application Center 2000 à l’ensemble de la structure de votre système.
Voulez-vous intégrer les systèmes existants de traitement des commandes, de transaction de paiement, de gestion des stocks et d’exécution des commandes à Commerce Server ? | Si vous envisagez d’intégrer ces systèmes, développez des composants COM (Component Object Model) pour les connecter à Commerce Server. Incorporez également Microsoft BizTalk Server 2000 à l’ensemble de la structure de votre système.
Devez-vous intégrer des systèmes ERP (Enterprise Resource Planning) comprenant des fournisseurs et des partenaires commerciaux ? | Si vous envisagez d’intégrer des systèmes ERP, vous devez incorporer BizTalk Server à l’ensemble de la structure de votre système.
Quels sont vos besoins en matière de conversion des données ? | Établissez un système permettant de transformer les données de leur format d’origine en un format utilisable dans Commerce Server. Par exemple, vous devez convertir au format XML (Extensible Markup Language) des données de catalogue existantes ayant un format délimité par des tabulations, avant de les importer dans le système de catalogue de produits.
Quels sont vos besoins en matière de développement personnalisé ? | Bien que Commerce Server soit un produit très complet, il a été conçu pour vous permettre de personnaliser de nombreuses fonctionnalités afin de répondre le mieux possible à vos besoins commerciaux. Examinez attentivement la liste des fonctionnalités dans Présentation rapide des fonctionnalités de Commerce Server et lisez également l'aide de Commerce Server 2000 ainsi que le Kit de Ressources Techniques Commerce Server 2000 avant de planifier un développement personnalisé.
Voulez-vous réaliser le développement personnalisé en interne ou travailler en collaboration avec un éditeur de logiciels ? | Consultez les informations relatives à Microsoft Solution Providers and Partners à l’adresse suivante : http://www.microsoft.com/commerceserver/thirdparty/partners.htm (en anglais).

Voir aussi

Integrating with BizTalk Server (en anglais)

Integrating a Third-Party Product Catalog (en anglais)

Ajout d’une application et d’un serveur Web non-Commerce Server


Planification d'une haute disponibilité

Planification d’une haute disponibilité

La disponibilité est une mesure de la tolérance de pannes pour un ordinateur, un cluster ou un système, et ses programmes. Cette mesure représente à la fois le temps moyen entre les pannes (MTBF, Mean Time Between Failures) et le temps moyen de réparation (MTTR, Mean Time To Repair), et comprend également le temps d’immobilisation des événements planifiés et non planifiés. De nombreux sites de commerce électronique sont des sites à missions critiques, par conséquent, ils doivent être conçus pour offrir une haute disponibilité ; en d’autres termes, ils doivent être actifs et opérationnels à un niveau de service acceptable d’au moins 99,9 pour cent du temps.

La planification d’une haute disponibilité comprend l’évaluation des configurations matérielles et logicielles, ainsi que la définition et le test des procédures de fonctionnement.

Le tableau suivant répertorie certaines questions auxquelles vous devez répondre lors de la planification de la disponibilité.

Question liée à la planification | Recommandation
Quel est le niveau de disponibilité que vous exigez ? | Comparez le coût de la disponibilité au coût commercial du temps d’immobilisation, et établissez un niveau de disponibilité approprié.
Comment voulez-vous répliquer vos données sur vos serveurs ? | Utilisez Microsoft SQL Server pour répliquer les bases de données.
Comment voulez-vous analyser la disponibilité ? | Créez un processus pour déterminer si vous avez atteint vos objectifs en matière de disponibilité.
Comment allez-vous réagir face aux incidents majeurs ? | Développez un plan de récupération des données en cas d’incident grave sur une partie ou l’ensemble de votre système. Testez ce plan en simulant une défaillance grave.

Voir aussi

Liste de contrôle de la haute disponibilité


Planification de la sécurité

Lorsque vous planifiez la sécurité de Commerce Server 2000, vous devez élaborer une stratégie de protection contre les atteintes à la sécurité du site pour toutes les fonctionnalités déployées, et également sélectionner les stratégies et les outils nécessaires pour implémenter le niveau de sécurité souhaité.

Pour créer un site adapté aux normes de sécurité conseillées, vous devez configurer SSL (Secure Sockets Layer) de telle sorte que certaines pages (par exemple, celles où sont demandées des informations sur la carte de crédit) soient gérées via SSL. Pour ce faire, vous devez obtenir un certificat de serveur et configurer les services Microsoft Internet Information Services (IIS) 5.0 pour utiliser SSL. Pour plus d’informations, consultez la documentation du produit IIS à l’adresse suivante : http://localhost/iisHelp.

En outre, vous pouvez spécifier un nom d’hôte sécurisé pour chaque application Commerce Server dans Microsoft Management Console (MMC). L’objet AuthManager utilise le nom d’hôte sécurisé pour créer des liens vers les pages sécurisées. Ces liens peuvent mener à une autre application Commerce Server ou à une partie sécurisée de la même application.

Pour minimiser la probabilité d’une faille dans la sécurité, vous devez être capable de :

  • verrouiller le site, c’est-à-dire contrôler l’accès aux fichiers, pages et applications par des listes de contrôle d’accès, pour les fichiers utilisant le système de fichier NTFS ;

  • contrôler l’accès en lecture, l’exécution de scripts et l’accès en écriture dans plusieurs dossiers définis sur votre site pour la sécurité IIS ;

  • authentifier les visiteurs du site.

Le tableau suivant répertorie certaines questions auxquelles vous devez répondre pour décider du contenu à verrouiller, du mode de contrôle de l’accès et du mode d’authentification.

Question liée à la planification | Recommandation
Devez-vous authentifier les visiteurs du site à l’aide de leur contexte de sécurité Windows 2000 ? | Ajoutez Microsoft Active Directory à votre configuration du site si vous envisagez d’authentifier les utilisateurs à l’aide de leur contexte de sécurité Microsoft Windows 2000.
Quel type de contenu devez-vous verrouiller ? | Si vous sécurisez un contenu statique, vous devez utiliser le filtre ISAPI (Internet Server Application Programming Interface) de AuthFilter, car l’objet AuthManager ne fonctionne que sur le contenu généré dynamiquement.
Voulez-vous obliger les utilisateurs à accepter les cookies ? | AuthFilter peut générer automatiquement un cookie pour tous les nouveaux visiteurs de votre site.
Envisagez-vous d’utiliser un modèle d’authentification par formulaire ? | Si vous envisagez d’authentifier les utilisateurs à l’aide d’un modèle d’authentification personnalisé, vous devez exécuter l’objet AuthFilter en mode Personnalisé.
Quelle architecture de site répond le mieux à vos besoins en matière de sécurité ? | Consultez les synthèses des solutions de pare-feu dans Configurations de pare-feu et déterminez quelle est la solution la plus appropriée pour votre installation.

Voir aussi

Sécurité de Commerce Server

Configurations de pare-feu

Liste de contrôle de la sécurité de Commerce Server

Gestion de la ressource d’authentification de Commerce Server


Planification de l'intégration à Active Directory

Planification de l’intégration à Active Directory

Active Directory est un service d’annuaire intégré à Microsoft Windows 2000. Vous pouvez utiliser Active Directory pour ajouter, modifier, supprimer et organiser les entités commerciales de votre organisation. Par exemple, les comptes d’utilisateur, comptes d’ordinateur, groupes de sécurité et de distribution, ainsi que les ressources publiées de Windows 2000 sont tous accessibles via Active Directory.

Vous pouvez utiliser Active Directory comme source de données pour les données de profil. Le système de profil rassemble les données de Active Directory et d’autres sources de données en une entité commerciale unique, que vous pouvez ensuite utiliser lors de l’implémentation de Commerce Server. Par exemple, vous pouvez stocker le numéro de compte et le mot de passe d’un utilisateur dans Active Directory, puis stocker le reste des informations du compte (contacts, seuil de crédit, préférences, etc.) dans Microsoft SQL Server. Le système de profil rassemble ensuite les données provenant de ces deux sources de données en un profil unique, que vous pouvez utiliser pour des opérations de ciblage ou d’analyse.

Active Directory est une technologie d’une grande robustesse et évolutivité ; cependant, il est important que l’architecture de votre site soit conçue pour pouvoir l’utiliser de manière appropriée.

Si vous envisagez de répartir les utilisateurs en groupes dans Active Directory, vous devez prendre toutes les précautions nécessaires pour vous assurer que les performances du serveur Active Directory sont appropriées. L’ajout d’utilisateurs à des groupes est une opération relativement lourde dans Active Directory ; en outre, la limite est de 5 000 utilisateurs par groupe. Pour contourner cette limite, le Kit de développement de logiciel (SDK, Software Development Kit) de Commerce Server comprend un objet appelé Subgroup Manager qui permet de stocker plus de 5 000 utilisateurs dans un groupe « virtuel », en masquant les groupes réels dans lesquels les utilisateurs sont stockés. Pour plus d’informations, consultez Subgroup Manager (en anglais). Étant donné que l’utilisation de cet objet entraîne une surcharge de travail dans un processus déjà très sollicité, vous devez prendre ce facteur en considération lors du choix du matériel approprié pour le composant de votre site Web.

Le tableau suivant répertorie certaines questions auxquelles vous devez répondre pour déterminer la meilleure façon d’utiliser Active Directory lors de la conception de votre site.

Question liée à la planification | Recommandation
Quelles données voulez-vous stocker dans Active Directory ? | Vous ne devez stocker que des données non volatiles dans Active Directory.
Quel volume de données allez-vous stocker dans Active Directory ? Vous pouvez inclure jusqu’à un million de comptes d’utilisateur dans un seul domaine Active Directory. Cette estimation se base sur les hypothèses suivantes :
  • À un moment donné, 1 pour cent (10 000) des utilisateurs utilisera le site de manière active.

  • Le rapport entre le nombre d’éléments écrits dans Active Directory et le nombre d’éléments lus dans Active Directory ne dépasse pas 14 pour cent.

Si vous devez accueillir plus d’un million d’utilisateurs dans votre banque Active Directory, vous pouvez rassembler plusieurs domaines contenant chacun un million d’utilisateurs.

Si vous envisagez d’utiliser Active Directory pour des implémentations à plus large échelle, sollicitez les services de Conseil de Microsoft (MCS) pour vous aider dans votre tâche de planification.

Voir aussi

Configuration d’un site de petite taille avec Active Directory

Configuration de vos serveurs Active Directory

Migration de l’annuaire d’abonnement

Exemple : Création d’une définition de profil avec deux sources de données


Planification du déploiement

Le déploiement de Commerce Server 2000 et des applications de votre site Web demande une planification rigoureuse. Prenez le temps nécessaire pour mettre au point un plan de développement complet qui répondra à vos besoins commerciaux de manière rapide et organisée. Avant de transférer de manière effective vos applications de développement sur un site Web, consultez les informations présentées ici et dans le Kit de Ressources Techniques Commerce Server 2000.

Surtout, assurez-vous que votre organisation a développé son propre plan, et qu’il comprend des informations provenant des chefs d’entreprise, administrateurs système et développeurs de site.

Le déploiement implique le passage de votre site Web par trois environnements matériels différents (développement, test et production). La figure suivante illustre ces environnements de manière simplifiée.

Environnements de développement, test et production
Réseau local d'entreprise
Internet
Pare-feu
Pare-feu
Production
Test
Développement
Réseau local ISP/ASP

L’aspect réel de ces environnements dépend de la taille de votre site et de vos objectifs commerciaux. L’aide de Commerce Server 2000 offre des informations de base sur le déploiement d’un site de petite taille, composé de quatre à six ordinateurs. Les informations relatives aux déploiements de plus grande envergure se trouvent dans le Kit de Ressources Techniques Commerce Server 2000.

Cette section contient les rubriques suivantes :

  • Configuration d’un site de petite taille. Décrit les configurations matérielles pour un site Web contenant entre quatre et six ordinateurs.

  • Configuration d’un site de grande taille. Décrit l’environnement de production d’un site contenant entre 10 et 100 ordinateurs.

  • Configuration d’un site international. Décrit le concept d’un environnement de production pour un site international.

  • Configurations de pare-feu. Décrit les avantages et désavantages liés aux différentes options de configuration de pare-feu.

Voir aussi

Déploiement de votre site

Migration depuis Site Server 3.0

Migration de l’annuaire d’abonnement


Configuration d'un site de petite taille

Configuration d’un site de petite taille

Bien qu’il soit possible d’installer tous les composants de Commerce Server 2000 sur un seul serveur, une configuration composée de quatre ordinateurs est nécessaire pour séparer les niveaux de logique commerciale et de base de données, et offrir une protection face aux pannes.

Cette configuration à quatre ordinateurs comporte deux serveurs à chaque niveau : deux serveurs Web identiques et deux serveurs de base de données identiques. La figure suivante montre un environnement de production à quatre ordinateurs.

Déploiement de petite taille de Commerce Server 2000
Client
Réseau local d'entreprise
Niveau de base de données :
Administration
Catalogue
Data Warehouse
Marketing
Profil
Transaction
Logique de traitement commercial :
Analyse commerciale
Catalogue
Gestionnaire de listes
Composants de pipeline
Client Predictor
Service Profils
Système de ciblage
Cluster d'équilibrage de charge réseau
Pare-feu
Serveur
Web
SQL Server
SQL Server
Réseau local
ISP/ASP
Serveur
Web
Cluster serveur
Pare-feu
Base de données
Client
Accès Internet

Dans cette configuration, les serveurs Web sont répliqués à l’aide de l’équilibrage de charge réseau. Une seule adresse IP est utilisée par chacun des serveurs Web pour offrir une haute disponibilité. Les deux serveurs Web contiennent les outils d’administration de Commerce Server, les services, Commerce Server Business Desk et les applications. Les serveurs de base de données sont configurés sous forme de serveur Windows en cluster possédant une base de données Microsoft SQL Server partagée. Ils contiennent la base de données d’administration, Data Warehouse et les autres bases de données Commerce Server.

Deux pare-feu sont utilisés dans cette configuration : le premier permet de sécuriser les entrées en provenance d’Internet, le second permet de sécuriser les entrées et les sorties du réseau d’entreprise.

Le tableau suivant répertorie les spécifications matérielles d’une configuration de petite taille.

Type de serveur | Spécification matérielle
Serveurs Web | Deux serveurs bi-processeur cadencés à 400 MHz, avec 1 Go de mémoire vive (RAM)
Serveurs de base de données | Deux serveurs quadri-processeur cadencés à 500 MHz, avec 2 Go de mémoire vive (RAM)

Cette configuration utilise SQL Server pour authentifier les utilisateurs. Vous pouvez également utiliser Microsoft Active Directory pour authentifier les utilisateurs. Cela permet d’accroître la sécurité, mais nécessite l’ajout de contrôleurs de domaine à votre environnement de production.

Configuration d’un site de petite taille avec Active Directory

Environnement de développement d’un site de petite taille

Configuration d’un site de petite taille avec Active Directory

Vous pouvez décider d’utiliser Active Directory pour offrir un contexte de sécurité à votre site Commerce Server. Active Directory est utile si vous devez exécuter les tâches suivantes :

  • Contrôler l’accès aux ressources du site en fonction des informations d’autorisation sécurisées d’un utilisateur.

  • Offrir une sécurité aux autres applications.

Si vous décidez d’implémenter Active Directory sur votre site, vous devez ajouter deux serveurs supplémentaires à votre configuration. La figure suivante illustre une configuration de petite taille pour Commerce Server, qui comprend des serveurs Active Directory.

Déploiement de petite taille de Commerce Server 2000 à l'aide de Active Directory
Client
Réseau local d'entreprise
Niveau de base de données :
Administration
Catalogue
Data Warehouse
Marketing
Profil
Transaction
Logique de traitement commercial :
Analyse commerciale
Catalogue
Gestionnaire de listes
Composants de pipeline
Client Predictor
Service Profils
Système de ciblage
Cluster d'équilibrage de charge réseau
Pare-feu
Serveur
Web
SQL Server
SQL Server
Réseau local
ISP/ASP
Serveur
Web
Cluster serveur
Pare-feu
Base de données
Réplication
Active Directory
Client
Accès Internet

Pour offrir une haute disponibilité, il est conseillé d’utiliser deux contrôleurs de domaine Active Directory répliqués. Active Directory utilise sa propre réplication pour vérifier que ses données restent cohérentes entre les contrôleurs de domaine. Les serveurs Web et les serveurs de base de données de cette configuration sont identiques à ceux de la configuration à quatre ordinateurs. Étant donné que la charge de traitement de Active Directory est relativement légère, vous pouvez placer le serveur Active Directory sur le même cluster que les serveurs SQL Server.

Environnement de développement d’un site de petite taille

La figure suivante montre un exemple d’environnement de développement pour un site de petite taille.

Environnement de développement de petite taille pour Commerce Server 2000
Référentiel source
Système existant
Administrateur
Développeur(s)
Chef(s) d'entreprise
SQL Server
Serveur Web
Internet

Cet environnement de développement est physiquement séparé des environnements de production intermédiaires ou de test. Il se trouve à l’intérieur du réseau d’entreprise.


Configuration d'un site de grande taille

Configuration d’un site de grande taille

Plus vos besoins en capacité augmentent, plus vous pouvez améliorer les performances du site, grâce à l’une des opérations suivantes :

  • Ajout de serveurs à votre environnement de production

  • Mise à jour des serveurs existants

  • Amélioration de l’architecture du site

La figure suivante montre un exemple d’environnement de production pour un site de grande taille comprenant de 10 à 100 serveurs.

Tâches de gestion du Data Warehouse
Stockage du Data Warehouse
Data Warehouse
Cluster serveur Profil
Système de réplication de catalogues
Configuration d'un site de grande taille

Client

Cluster d'équilibrage de charge réseau

Serveurs de catalogues

Réseau local d'entreprise

Cluster d'équilibrage de charge réseau

Serveur du
service de publipostage

Cluster serveur
Marketing

Serveur
Business Desk

Contrôleur de domaine 2

Contrôleur de domaine 1

Logique de traitement commercial :

Analyse commerciale
Catalogue
Gestionnaire de listes
Composants de pipeline
Client Predictor
Service Profils
Système de ciblage

Cluster serveur
Transactions

Cluster serveur Administration

Cluster serveur Web

Active Directory

Accès
Internet

Cette configuration sépare chacune des bases de données de composants sur ses propres clusters Microsoft SQL Server. En outre, la base de données des catalogues est installée sur plusieurs clusters faisant l’objet d’une répartition de charge. Des serveurs Web supplémentaires sont ajoutés pour répartir la charge sur les services et applications Commerce Server.

Pour plus d’informations sur la planification et le déploiement de la configuration d’un site de grande taille, consultez le Kit de Ressources Techniques Commerce Server 2000.


Configuration d'un site international

Configuration d’un site international

Un site international comprend généralement plusieurs grands sites répartis dans le monde entier, qui sont connectés par un réseau WAN dédié, ou un ou plusieurs fournisseurs de services/d’applications utilisant un réseau WAN.

La figure suivante montre un exemple de configuration d’un site international.

Configuration d'un site international
Chicago
Paris
Réseau étendu Internet
Production
Production
Production
Test
Test
Test
Développement
Développement
Développement
Berlin

Pour plus d’informations sur la planification et le déploiement de la configuration d’un site international, consultez le Kit de Ressources Techniques Commerce Server 2000.


Configurations de pare-feu

Quelle que soit la taille de votre configuration Commerce Server 2000, vous devez décider comment déployer les pare-feu. L’ajout de pare-feu supplémentaires augmente vos coûts, mais vous permet d’isoler les clients, les employés de votre entreprise et les données sensibles. Cependant, le coût n’est pas le seul point à prendre en compte. Chaque solution de pare-feu à ses avantages et ses désavantages.

Cette section contient les rubriques suivantes :

  • Utilisation d’une configuration avec pare-feu unique

  • Utilisation d’une configuration avec double pare-feu

  • Utilisation d’une configuration avec triple pare-feu


Utilisation d'une configuration avec pare-feu unique

Utilisation d’une configuration avec pare-feu unique

La solution la moins onéreuse pour la configuration d’un site de petite taille consiste à séparer les navigateurs Internet, votre site et votre réseau interne à l’aide d’un pare-feu. C’est possible si le pare-feu contient trois cartes réseau, chacune d’entre elles étant connectée à un des trois environnements.

Votre environnement de développement est le type d’environnement où vous pouvez souhaiter n’utiliser qu’un seul pare-feu. Pour voir une figure montrant une configuration avec pare-feu unique, consultez Environnement de développement d’un site de petite taille.

Les avantages de la solution avec pare-feu unique sont les suivants :

  • Le réseau ISP (contenant les serveurs Web et les serveurs de base de données) est séparé physiquement des autres réseaux, ce qui limite les risques d’intrusions sur le site. Si une personne parvient à exploiter un serveur accessible publiquement, elle ne peut pas avoir directement accès au réseau interne.

  • Il n’y a qu’un seul pare-feu à acheter et à gérer.

  • Le réseau interne ne dépend pas de l’environnement du site Web pour fonctionner. Si le site connaît des problèmes de réseau, la connectivité du réseau interne n’est pas perdue pour autant.

  • Cette structure s’implémente facilement dans une architecture existante où un pare-feu permet déjà de séparer le réseau interne d’Internet. Il vous suffit peut-être d’ajouter une troisième carte réseau au pare-feu existant.

Les désavantages de la solution avec pare-feu unique sont les suivants :

  • Les serveurs de base de données ne sont pas séparés des serveurs Web. Les protocoles HTTP (Hypertext Transfer Protocol) et HTTPS (Hypertext Transfer Protocol Secure) sont les seuls protocoles admis pour les transferts depuis Internet vers le site Web.

  • Un intrus réussissant à obtenir l’accès à un serveur du réseau ISP peut obtenir l’accès aux autres serveurs du site. Une solution de sécurité supplémentaire est nécessaire pour protéger ces serveurs.

  • La communication entre les serveurs Web et les serveurs de base de données s’opère sans protection sur le réseau ISP.

  • Étant donné que les ordinateurs Commerce Server Business Desk partagent le trafic réseau avec les serveurs Web, vous devez exécuter HTTPS sur les ordinateurs Business Desk pour garantir la sécurité des données.

  • Certains fournisseurs de logiciels pare-feu ne prennent pas en charge trois interfaces.


Utilisation d'une configuration avec double pare-feu

Utilisation d’une configuration avec double pare-feu

Dans cette configuration, un pare-feu sépare Internet des serveurs Web, et le second pare-feu sépare les serveurs Web du réseau interne, qui contient les serveurs de base de données et les ordinateurs Commerce Server Business Desk. Pour voir une figure montrant une configuration avec double pare-feu, consultez Configuration d’un site de petite taille.

Les avantages de la solution avec double pare-feu sont les suivants :

  • L’administrateur système peut séparer le réseau interne des serveurs Web et des navigateurs Internet. La gestion du site est effectuée en dehors du réseau ISP, sur le réseau interne. Le réseau interne devient beaucoup plus difficile d’accès pour un intrus.

  • Une couche de protection est implémentée pour protéger les serveurs de base de données des défauts de sécurité qui ne résultent pas de la relation entre les serveurs Web et les serveurs de base de données. De tels défauts peuvent entraîner des agressions contre la protection du service.

  • Le nombre d’ordinateurs accessibles depuis les navigateurs Internet est réduit. En utilisant deux pare-feu, il est plus difficile d’interrompre ou d’utiliser abusivement les serveurs de base de données et le serveur Business Desk.

  • Il n’est pas nécessaire d’exécuter Business Desk en mode HTTPS (Hypertext Transfer Protocol Secure), car le client Business Desk et le serveur se trouvent sur le même réseau.

  • Il n’est pas nécessaire de crypter la communication entre Business Desk et les serveurs de base de données car la communication ne s’opère jamais sur un réseau public.

  • Il est plus facile d’empêcher un navigateur Internet de représenter l’identité d’un utilisateur autorisé. Par exemple, un serveur Web peut recevoir l’instruction d’écouter uniquement les demandes de serveurs de base de données provenant d’une adresse IP spécifique. Étant donné que les deux connexions sont contrôlées par un pare-feu, ces adresses ne peuvent pas être détournées.

  • Les serveurs Web sont séparés physiquement des autres réseaux, ce qui limite les risques d’intrusions sur le site. Si une personne parvient à exploiter un serveur accessible publiquement, elle ne peut pas avoir directement accès au réseau interne.

Les désavantages de la solution avec double pare-feu sont les suivants :

  • Il est plus difficile et plus coûteux de gérer deux pare-feu avec des configurations différentes.

  • La communication entre les serveurs Web et les serveurs de base de données s’opère sans protection sur le réseau ISP. Une solution de sécurité supplémentaire est nécessaire pour protéger cette communication.

  • Le réseau interne de l’entreprise dépend du site Web pour fonctionner. Si le site Web connaît des problèmes de réseau, la connectivité du réseau interne risque d’être perdue. Vous devez fournir une ligne réseau distincte pour connecter les ordinateurs du réseau interne à Internet, en contournant le réseau ISP. Cette connexion distincte permettrait de contourner le pare-feu qui sépare le réseau ISP du réseau interne.

  • Tout trafic autorisé entre le réseau interne et Internet l’est également entre le réseau ISP et Internet, de même qu’entre le réseau de serveurs de base de données et Internet. Les ramifications au niveau de la sécurité sont déterminées par les protocoles autorisés par la stratégie de sécurité par défaut de l’utilisateur.


Utilisation d'une configuration avec triple pare-feu

Utilisation d’une configuration avec triple pare-feu

Cette configuration est similaire à la configuration avec double pare-feu, avec l’ajout d’un troisième pare-feu qui sépare le réseau interne des serveurs de base de données et des ordinateurs Commerce Server Business Desk. Pour voir une figure montrant une configuration avec triple pare-feu, consultez Configuration d’un site de grande taille.

Les avantages de la solution avec triple pare-feu sont les suivants :

  • Le site Web (serveurs Web, serveurs de base de données et serveur Business Desk) est séparé physiquement des autres réseaux, ce qui garantit une protection maximale contre les intrus.

  • Il est plus facile d’empêcher un navigateur Internet de représenter l’identité d’un utilisateur autorisé. Par exemple, un serveur Web peut être configuré pour répondre uniquement aux demandes de serveurs de base de données provenant d’une adresse IP spécifique. Étant donné que les deux connexions sont contrôlées par un pare-feu, ces adresses ne peuvent pas être détournées.

  • Une couche de protection est implémentée pour protéger les serveurs de base de données des défauts de sécurité qui ne résultent pas de la relation entre les serveurs Web et les serveurs de base de données. De tels défauts peuvent entraîner des agressions contre la protection du service.

  • L’ajout de trois pare-feu réduit le nombre d’ordinateurs accessibles directement via Internet. Il est plus difficile d’interrompre ou d’utiliser abusivement les serveurs de base de données et le serveur Business Desk.

  • Les serveurs de base de données et les serveurs Business Desk sont protégés contre les intrus qui résident sur le réseau interne.

Les désavantages de la solution avec triple pare-feu sont les suivants :

  • Il est plus difficile et plus coûteux de gérer trois pare-feu avec des configurations différentes.

  • La communication entre les serveurs Web et les serveurs de base de données s’opère sans protection sur le réseau ISP. Une solution de sécurité supplémentaire est nécessaire pour protéger cette communication.

  • Tout trafic autorisé entre le réseau interne et Internet l’est également entre le réseau ISP et Internet, de même qu’entre le réseau de serveurs de base de données et Internet. Les ramifications au niveau de la sécurité sont déterminées par les protocoles autorisés par la stratégie de sécurité par défaut de l’utilisateur.

  • Ce type de configuration est plus difficile à installer et à gérer.

Voir aussi

Déploiement de votre site

Migration depuis Site Server 3.0

Migration de l’annuaire d’abonnement


Migration depuis Site Server 3.0

Commerce Server 2000 offre des outils vous permettant de faire migrer un site Site Server 3.0 ou Site Server 3.0, Édition Commerce électronique, vers Commerce Server. Ces outils sont conçus pour les développeurs de site, qui peuvent les personnaliser pour répondre aux besoins de votre site en matière de migration.

Cette section contient les rubriques suivantes :

  • Fonctionnalités de Site Server 3.0 liées à la migration

  • Planification de la migration depuis Site Server vers Commerce Server

  • Vue d’ensemble des outils de migration

  • Vue d’ensemble de la documentation sur la migration


Fonctionnalités de Site Server 3.0 liées à la migration

Commerce Server offre un chemin de migration pour les fonctionnalités de Site Server 3.0 et Site Server 3.0, Édition Commerce électronique, qui ont été incorporées dans Commerce Server.

La majorité des fonctionnalités de Site Server 3.0 a été incorporée dans Commerce Server. Certaines d’entre elles, cependant, ont été incorporées dans d’autres produits Microsoft. Les tableaux suivants répertorient les fonctionnalités de Site Server 3.0 et SSCE qui ont été migrées, et identifient les produits et fonctionnalités vers lesquels elles ont été migrées.

Fonctionnalités de Site Server 3.0 et Site Server 3.0, Édition Commerce électronique (SSCE), incorporées dans Commerce Server.

Fonctionnalités de Site Server 3.0 | Fonctionnalités de Commerce Server 2000
Ad Server / Ad Manager | Infrastructure de sélection de contenu (CSF, Content Selection Framework) / Module Gestionnaire de campagnes
Analyse : Report Writer, Custom Import, Usage Import | Analyse : Rapports, Custom Import, Data Warehouse, Business Analysis
Publipostage | Publipostage
Pipelines | Pipelines
Boutique en ligne | Système de catalogue
Personalization & Membership | Profils utilisateur
Lexique du site | Entrées du glossaire du site
Créateur de règle | Générateur d’expressions
Predictor | Ressource Predictor
Exemples de sites | Sites solutions
Transactions | Transactions
Content Deployment et Content Replication System | Gestionnaire de package de site Commerce Server (prend en charge quelques aspects du déploiement du contenu et de la réplication).

Fonctionnalités de Site Server 3.0 et Site Server 3.0, Édition Commerce électronique (SSCE), incorporées dans d’autres produits Microsoft.

Fonctionnalités de Site Server 3.0 | Produits Microsoft
Content Deployment et Content Replication System | Microsoft Application Center 2000 (prend en charge quelques aspects du déploiement du contenu et de la réplication).
Pipeline Commerce Interchange | Microsoft BizTalk Server 2000
Internet Locator Service (ILS) / Annuaire dynamique | Microsoft Windows 2000 – Services ILS Site Server
Recherche : Index, Analyse, Scripts | Incorporée dans la version préliminaire Bêta 2 de Microsoft (nommée « Tahoe »)
Knowledge Manager | Incorporé dans la version Tahoe
Posting Acceptor | Microsoft WebDAV

Les fonctionnalités suivantes de Site Server 3.0 n’ont pas été incorporées dans Commerce Server ni d’autres produits Microsoft et ne sont plus prises en charge : Assistant Publication, Push (Active Channel Multicaster, Serveur Active Channel), Content Analyzer et Tag Tool.

Remarque

  • L’application Internet Information Services (IIS) a modifié les paramètres par défaut de la mise en mémoire tampon automatique dans la version 5.0. Dans la version 4.0, la mise en mémoire tampon automatique était désactivée par défaut ; dans la version 5.0, elle est activée. Les pages ASP (Active Server Pages) qui sont migrées depuis un site Site Server 3.0, Édition Commerce électronique, vers un site Commerce Server 2000 doivent prendre cela en compte.


Planification de la migration depuis Site Server vers Commerce Server

Les questions suivantes sont à considérer lorsque vous planifiez la migration de votre site depuis Site Server 3.0, Édition Commerce électronique, vers Commerce Server 2000 :

  • Il est impossible de faire migrer vers des composants individuels de Commerce Server un par un.

  • Vous devez créer un nouveau site, lequel devient opérationnel une fois la migration du comportement, du contenu et des données du nouveau site effectuée avec succès.

  • La migration du code du site est nécessaire pour déplacer avec succès votre site SSCE vers Commerce Server.

Bien qu’il existe plusieurs stratégies disponibles pour planifier une migration réussie, vous devez considérer deux stratégies principales : Web farm parallèle et double système d’initialisation.

Web farm parallèle

La stratégie de Web farm parallèle signifie l’exécution simultanée côte à côte de Commerce Server et Site Server depuis deux emplacements différents durant la procédure entière de migration. La construction d’une Web farm parallèle permet de répliquer la fonctionnalité du site SSCE existant à l’aide des technologies Commerce Server. Bien que la migration par le biais d’une Web farm parallèle consomme beaucoup de ressources, il s’agit de la méthode de migration qui fournit la meilleure gestion des risques pour les sites qui gèrent de façon active les risques d’instabilité des sites.

Avantages de l’utilisation d’une Web farm parallèle

  • Le site SSCE placé en production n’est pas affecté avant que le site Commerce Server ne soit complètement opérationnel et prenne des clients en charge.

  • Le nouveau site Commerce Server peut faire l’objet de tests de fonctionnalité et de performance sous le stress de la charge d’un utilisateur simulée et générée par des outils tels que l’outil WAS (Web Application Stress) de Microsoft.

  • La migration du code et des données du site peut être complètement testée avant que le site ne soit ouvert aux utilisateurs.

  • Toutes les procédures de fonctionnement peuvent être établies et documentées avant que le nouveau site Commerce Server ne devienne réellement opérationnel.

Désavantages de l’utilisation d’une Web farm parallèle

  • Consomme beaucoup de ressources en termes de matériel, espace et infrastructure réseau.

Double système d’initialisation

La stratégie d’un double système d’initialisation signifie que vous installez une nouvelle instance de Microsoft Windows 2000 sur votre serveur SSCE, sur un système de disque distinct. Une fois le nouveau système d’exploitation installé, vous pouvez installer Commerce Server sur la nouvelle partition. Vous devez installer les bases de données Commerce Server sur un serveur distinct, car la configuration SQL pour Commerce Server est différente de celle pour SSCE.

Un exemple de stratégie d’un double système d’initialisation :

Un serveur exécutant SSCE peut avoir la configuration de disque suivante :

  • Lecteur C : Lecteur du système d’exploitation

  • Lecteur D : IIS, SSCE et lecteur du code du site

  • Lecteur E : IIS et lecteur de journalisation système

Après avoir implémenté la stratégie du double système d’initialisation par l’ajout de lecteur(s) de disque, la configuration de votre serveur peut ressembler à ce qui suit :

  • Lecteur C : Lecteur du système d’exploitation

  • Lecteur D : IIS, SSCE et lecteur du code du site

  • Lecteur E : IIS et lecteur de journalisation système

  • Lecteur F : Lecteur du système d’exploitation (Windows 2000 installé pour Commerce Server)

  • Lecteur G : IIS, Commerce Server et lecteur du code du site (Windows 2000 installé pour Commerce Server)

  • Lecteur H : IIS et lecteur de journalisation système (Windows 2000 installé pour Commerce Server)

Dans cet exemple, lorsque votre serveur démarre, il est configuré pour s’initialiser soit sur le lecteur C, soit sur le lecteur F, selon le site qui doit être opérationnel.

Avantages d’une stratégie de double système d’initialisation :

  • Configuration matérielle requise réduite.

  • Utilisation de l’infrastructure réseau existante.

  • Utilisation d’un matériel éprouvé qui répond à vos besoins commerciaux.

Désavantages d’une stratégie de double système d’initialisation :

  • Un seul site peut être opérationnel à la fois. Ce peut être un site SSCE ou un site Commerce Server, mais pas les deux.

  • Le nouveau site Commerce Server ne peut être entièrement testé pour ses fonctionnalités et performances en tant que plate-forme intégrale à moins que le site SSCE entier ne soit mis hors ligne et que le serveur soit initialisé via l’instance de Commerce Server.

  • Les bases de données doivent être migrées vers un serveur distinct avant la migration.


Vue d'ensemble des outils de migration

Vue d’ensemble des outils de migration

Vous pouvez personnaliser les outils de migration de Commerce Server selon vos besoins. Le code source, aussi bien que le Kit de développement de logiciel (SDK, Software Development Kit) qui explique comment personnaliser et développer les outils, est fourni avec Commerce Server 2000. Cette section fournit une vue d’ensemble des outils de migration et leur emploi.

Boîte à outils de migration d’annuaire

Outil de migration Ad Server

Boîte à outils de migration d’annuaire

La boîte à outils de migration d’annuaire est un ensemble d’outils et d’objets COM (Component Object Model) écrits en C++. Elle comprend les objets suivants : MigrationMainObj, MigrationReadObj, MigrationWriteObj, MigrationModifyObj et MigrationLogObj. Utilisez ces objets pour faire migrer les données utilisateur de votre annuaire d’abonnement vers vos bases de données des profils Commerce Server. La boîte à outils de migration d’annuaire est livrée avec son code source, qui peut ainsi être modifié pour répondre aux exigences d’une implémentation spécifique d’un annuaire d’abonnement.

La figure suivante offre une vue d’ensemble du fonctionnement des objets de migration.

Figure illustrant une vue d'ensemble du fonctionnement de l'outil de migration d'annuaire.
Objet d'écriture
Objet de lecture
Annuaire des inscriptions
AUO/LDAP
Objet de migration
Site Server
Édition Commerce électronique
Commerce Server
Demande de migration
SQL
Active Directory
Objet de profil utilisateur

Objet de
modification

L’un des composants essentiels de la boîte à outils de migration d’annuaire est l’outil de migration d’annuaire, qui effectue la migration véritable. L’outil de migration d’annuaire est conçu pour gérer un état entre les implémentations de plusieurs instances du mode Temps réel et d’une instance unique du mode Batch. Cet équilibre permet d’éviter les situations de concurrence entre les instances de l’outil de migration d’annuaire qui tentent de faire migrer le même compte. Vous pouvez utiliser l’outil de migration d’annuaire selon deux modes :

  • Mode Temps réel. Ce mode est conçu pour faire migrer les utilisateurs lorsqu’ils essaient de s’authentifier via le fichier Login.asp. Le code normal de Login.asp est étendu de telle sorte que si une authentification échoue parce que le profil utilisateur est absent de la base de données, l’outil de migration peut être appelé pour effectuer une migration en « temps réel » du profil utilisateur vers le nouveau système de profil utilisateur. Une fois la migration correctement effectuée, le fichier Login.asp termine l’authentification de l’utilisateur et le processus peut reprendre un cours normal.

  • Mode Batch. Ce mode est conçu pour faire migrer les utilisateurs de l’annuaire d’abonnement vers la banque de profils utilisée par le service Profils de Commerce Server. Il permet de traiter une liste entière d’utilisateurs sur un serveur autonome. Une fois la liste traitée, l’ensemble du processus de migration se termine, sauf en ce qui concerne l’adressage des échecs de migration qui sont enregistrés pour pouvoir être résolus. Après avoir résolu la cause d’un échec, vous devez soumettre à nouveau les processus de migration des comptes ayant échoué pour les faire migrer de manière correcte.

Outil de migration Ad Server

L’outil de migration Ad Server est utilisé pour effectuer la migration des données publicitaires depuis SSCE vers Commerce Server. Cet outil appelé adservermigration.exe se trouve dans le dossier « SDK\Tools\Migration\Ad Server » du dossier d’installation de Commerce Server.

L’outil de migration Ad Server crée des expressions pour l’évaluation de cibles et déplace les publicités entre les sites Web. Cet outil utilise également des expressions courantes pour diriger le processus de sélection des publicités. Pour plus d’informations sur l’Outil de migration Ad Server, consultez « Migrating a Site Server 3.0 Commerce Edition Site to Commerce Server 2000 » (en anglais) dans le Kit de Ressources Techniques Commerce Server 2000 de Microsoft.

Voir aussi

Migration de l’annuaire d’abonnement


Vue d'ensemble de la documentation sur la migration

Vue d’ensemble de la documentation sur la migration

Pour plus d’informations sur la migration de l’annuaire d’abonnement, consultez Migration de l’annuaire d’abonnement.

Pour plus d’informations sur la migration, consultez « Migrating a Site Server 3.0 Commerce Edition Site to Commerce Server 2000 » (en anglais) dans le Kit de Ressources Techniques Commerce Server 2000 de Microsoft.

Pipelines

Les pipelines de Commerce Server sont compatibles avec les pipelines de Site Server 3.0, Édition Commerce électronique (SSCE) en ce qui concerne leur API (Application Programming Interface). Les composants de pipeline tiers utilisés avec SSCE fonctionnent sous Commerce Server 2000, à l’exception des éléments suivants :

  • La devise est devenue une valeur de 64 bits (dans SSCE, la devise était un entier de 32 bits.)

  • Les informations d’adresse/de livraison ont été modifiées pour pouvoir gérer les adresses de livraison multiples.

Si vos composants tiers interagissent avec les données de pipeline au niveau de l’objet Dictionary, ces modifications n’affecteront pas votre site. Cependant, si vos composants tiers interagissent avec des données de pipeline au niveau de la base de données, à l’emplacement où les données sont effectivement stockées, vos composants seront affectés car la couche de base de données a été modifiée dans Commerce Server.

Catalogues

Il existe une différence significative entre Commerce Server et les catalogues SSCE. L’Assistant SSCE a seulement généré un catalogue de base appelé boutique en ligne. Par contraste, les catalogues créés dans Commerce Server sont plus complexes et offrent une plus grande souplesse. La plupart des déploiements de SSCE utilisent des solutions de catalogues personnalisés et empêchent le développement d’un outil générique pour la migration vers le système de catalogue de produits de Commerce Server.

Avant de faire migrer votre boutique en ligne ou une solution de catalogue personnalisé vers un catalogue Commerce Server, vous devez créer un catalogue pour Commerce Server. Vous devez, de façon à créer un catalogue Commerce Server, d’abord créer un schéma de catalogue. Une fois cela réalisé, vous devez créer un catalogue et le remplir avec des produits.

Vous pouvez utiliser les stratégies suivantes pour faire migrer votre boutique en ligne ou votre catalogue personnalisé vers un catalogue Commerce Server :

  • Créez un fichier XML contenant vos données de catalogue et importez-le dans le système de catalogue de produits de Commerce Server. Le fichier XML doit être dans un format que le système de catalogue de produits est capable d’importer. Un fichier de catalogue XML doit contenir la définition du schéma ainsi que les données de catalogue.

    Une autre technique pour déterminer le format XML précis des données de catalogue nécessaire à l’importation consiste à construire le schéma de catalogue souhaité et à le remplir avec plusieurs exemples de produits. Procédez ensuite à l’exportation de ce catalogue sous le format XML et étudiez le fichier XML qui en résulte. Les données de votre boutique en ligne ou de la solution du catalogue personnalisé doivent respecter ce format.

    Pour plus d’informations sur le format XML compatible avec le système de catalogue de produits, consultez Catalog XML Structures (en anglais).

    Pour plus d’informations sur l’importation du fichier XML une fois qu’il a été construit, consultez Importation d’un fichier de catalogue XML.

  • Créez un fichier CSV (valeurs séparées par une virgule) contenant vos données de catalogue et importez-le dans le système de catalogue de produits de Commerce Server. Le fichier CSV doit être dans un format que le système de catalogue de produits est capable d’importer, et compatible avec le schéma que vous avez défini pour votre catalogue Commerce Server.

    Pour plus d’informations sur le format CSV compatible avec le système de catalogue de produits, consultez Catalog XML Structures (en anglais).

    Pour plus d’informations sur le format CSV compatible avec le système de catalogue de produits et sur l’importation du fichier CSV une fois que vous l’avez construit, consultez Importation d'un fichier de catalogue CSV.

  • Créez un script utilitaire qui lit la structure et les données de catalogue de votre boutique en ligne ou votre solution de catalogue personnalisé, puis utilisez les objets de catalogue Commerce Server pour créer un catalogue Commerce Server avec le schéma souhaité et remplissez le catalogue avec des données sur les produits. Un exemple de script pour ce scénario existe sur le CD-ROM du Kit de Ressources Techniques Commerce Server 2000 de Microsoft.

    Pour plus d’informations sur les objets de catalogue Commerce Server, consultez Product Catalog Objects (en anglais).

Voir aussi

Création d’un schéma de catalogue

Création d’un catalogue

Ajout d’un produit à un catalogue


Developing your site

Microsoft Commerce Server 2000 fournit les outils et services qui vous permettent de développer rapidement et facilement un site Web commercial de niveau international. Cette section présente le développement Commerce Server, et elle fournit des informations conceptuelles sur les divers aspects du développement de sites Web à l’aide de Commerce Server.

Cette section contient les rubriques suivantes :

  • Introduction to Programming with Commerce Server (en anglais). Décrit les divers aspects du développement de sites Web dans Commerce Server.

  • Programming with Commerce Server Objects (en anglais). Classe par catégorie les objets COM (Component Object Model) fournis avec Commerce Server, et fournit des informations conceptuelles et des exemples de codes pour ces catégories.

  • Working with Site Security and Filters (en anglais). Décrit les mécanismes Commerce Server de sécurisation des sites Web.

  • Working with Pipelines (en anglais). Décrit les pipelines Commerce Server, indique où ils sont employés dans Commerce Server, et explique comment ils peuvent être utilisés de façon optimale.

  • Integrating with BizTalk Server (en anglais). Explique comment Commerce Server peut être intégré à Microsoft BizTalk Server pour fournir une solution complète de chaîne d’approvisionnement.

  • Customizing Style Sheets (en anglais). Explique comment l’aspect de Commerce Server Business Desk peut être facilement modifié à l’aide de ses feuilles de style personnalisables.

  • Modifying Your Site for an International Audience (en anglais). Décrit les problèmes liés à la création d’un site Web international.

  • Migrating the Membership Directory (en anglais). Explique comment faire migrer les utilisateurs existants d’un site Web Microsoft Site Server 3.0 Édition Commerce électronique vers un site Web Commerce Server 2000.


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.
Tous droits réservés.


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>


Déploiement de votre site

Vous déployez un site Web Microsoft Commerce Server 2000 en vous procurant et en configurant les éléments matériels et logiciels requis, en installant Commerce Server 2000, en décompressant votre site et en mettant en place les procédures d’analyse et de gestion. Le processus de déploiement général comprend les étapes décrites dans cette section.

Cette section contient les rubriques suivantes :

  • Avant le déploiement. Décrit les étapes qui doivent être suivies avant d’entamer le processus de déploiement.

  • Configuration de vos plates-formes de serveur. Explique comment configurer les environnements de développement, de test et de production afin que vous puissiez transférer votre site depuis un environnement de développement, le tester, puis le déployer. Explique comment configurer votre plate-forme logicielle avant d’installer Commerce Server.

  • Installation de votre site. Explique comment installer Commerce Server et décompresser vos sites Web sur deux configurations de site de petite taille différentes.

  • Sécurisation de votre site Explique comment configurer vos sites pour empêcher tout accès non autorisé.

  • Sauvegarde de votre site. Explique comment sauvegarder votre site.

  • Mise à jour de votre site. Explique comment mettre à jour le contenu de votre site et de vos bases de données après le développement initial.

  • Utilisation du Gestionnaire de package de site Décrit ce que vous pouvez réaliser avec le Gestionnaire de package de site Commerce Server et explique en termes généraux comment compresser et décompresser un site. Répertorie également les informations de référence pour le Gestionnaire de package de site.

Voir aussi

Planification du déploiement

Planification de votre installation Commerce Server


Avant le déploiement

Avant de déployer votre site, examinez les listes de contrôle suivantes pour vérifier que votre planification est terminée.

Cette section contient les rubriques suivantes :

  • Liste de contrôle de l’architecture du site. Fournit une liste de contrôle pour la planification et l’implémentation de votre architecture de site.

  • Liste de contrôle de la haute disponibilité. Fournit une liste de contrôle pour se protéger contre les pannes de serveur.

  • Liste de contrôle de développement et de test de site. Fournit une liste de contrôle pour accomplir le développement et le test de votre site.

  • Liste de contrôle des processus commerciaux. Fournit une liste de contrôle pour la planification et l’implémentation de vos processus commerciaux.

  • Liste de contrôle de la sécurité de la plate-forme. Fournit une liste de contrôle pour la sécurisation de votre plate-forme Windows 2000 et les services Internet (IIS) 5.0.

  • Liste de contrôle de la sécurité Commerce Server. Fournit une liste de contrôle pour la définition de la sécurité sur votre site.

Voir aussi

Planification du déploiement

Planification de votre installation Commerce Server

Configuration matérielle requise

Configuration logicielle requise


Liste de contrôle de l'architecture du site

Liste de contrôle de l’architecture du site

Avant de déployer votre site, vous devez avoir planifié et mis en oeuvre votre architecture de site. Vérifiez les points suivants :

  • Un réseau Microsoft Windows 2000 Server est en place et il contient au minimum un contrôleur de domaine Active Directory. Windows 2000 Advanced Server est recommandé si vous utilisez l’équilibrage de charge réseau (NLB, Network Load Balancing) ou créez des clusters serveur, lesquels renforcent la disponibilité de votre site.

  • Idéalement, vous avez besoin de deux ordinateurs pour gérer efficacement Active Directory. Ils serviront de contrôleurs de domaine répliqués. Vos autres ordinateurs rejoindront alors le domaine. Pour plus d’informations, consultez Configuration de vos serveurs Active Directory.

  • L’architecture de domaine Windows 2000 pour les serveurs Commerce Server a été déterminée et est documentée.

  • Les noms, rôles, ports et services requis de serveurs sont identifiés et documentés.

    Remarque

    • Si possible, ne modifiez pas les noms de vos serveurs. Pour plus d’informations, consultez Modification des noms des serveurs.
  • Les noms de domaine Internet et les adresses IP (Internet Protocol) nécessaires ont été attribués.

  • Les modèles de sécurité Windows 2000, IIS (Internet Information Services) 5.0 et Microsoft SQL Server ont été déterminés.

  • Internet Explorer version 5.0 ou version ultérieure est installé. Les ordinateurs client Commerce Server Business Desk nécessitent Internet Explorer 5.5.

  • Des pare-feu (firewall) et des serveurs proxy sont en place.

  • Les utilisateurs, groupes, autorisations et stratégies initiaux sont configurés.

  • Le matériel du serveur est installé sur le site.

  • Le matériel client pour les ordinateurs client Business Desk est installé sur le site.

  • Le matériel et les connexions réseau sont en place et la connectivité à Internet a été établie.

  • Le matériel de rechange est disponible sur le site.

  • Les services Terminal Server Windows 2000 ont été configurés, si vous prévoyez d’utiliser des ordinateurs distants pour les sessions Business Desk. Pour plus d’informations, consultez la documentation en ligne des services Terminal Server.

  • Tous les logiciels nécessaires définis dans Planification de votre installation Commerce Server sont disponibles sur le site.


Liste de contrôle de la haute disponibilité

Avant de déployer votre site, vous devez avoir prévu une protection contre les pannes de serveur en combinant les méthodes suivantes :

  • Centres de données dispersés géographiquement.

  • Onduleurs.

  • Sauvegardes de données.

  • Serveurs de bases de données en clusters. Dans le clustering Windows, deux serveurs qui se partagent des données communes forment un cluster qui fonctionne comme un système unique. Pour plus d’informations, consultez Configuration d’un cluster serveur.

  • Réplication de données. La réplication Microsoft SQL Server sert à garantir la synchronisation entre les serveurs de bases de données pour un site. SQL Server offre des options de réplication comme la réplication de capture instantanée et la réplication transactionnelle. Pour plus d’informations, consultez Utilisation de SQL Server pour répliquer des bases de données.

  • Clusters faisant l’objet d’une répartition de charge réseau pour serveurs Web. L’équilibrage de charge réseau (NLB, Network Load Balancing) fournit aux applications Web (IIS/ASP) la disponibilité et l’équilibrage de charge.

Pour plus d’informations sur la prévention des pannes de site, consultez Planification de la haute disponibilité et le Kit de Ressource Techniques Commerce Server 2000.


Liste de contrôle de développement et de test de site

Avant de déployer votre site, vous devez avoir terminé les phases de développement et de test. Vérifiez les points suivants :

  • Le développement du site est terminé.

  • Le site est compressé.

  • Une liste des ressources de site a été documentée.

  • Des noms ont été définis pour les serveurs du site.

  • Des noms de bases de données, des noms d’utilisateurs et des mots de passe ont été définis.

  • Le test est terminé. Vous avez testé les points suivants : contenu, compatibilité du navigateur, performances, charge du serveur, bases de données, options de recherche, temps de réponse aux requêtes, validité et intégrité des données, restauration du système, cohérence visuelle, liens et routeurs. Vous avez testé les performances de votre site à l’aide de l’outil Web Application Stress.

  • Une société externe indépendante a réalisé un audit de sécurité de votre site. Un tel examen constitue un moyen efficace de découvrir les risques au niveau de la sécurité.

  • Pour plus d’informations sur le test de votre site, consultez le Kit de Ressources Techniques Commerce Server 2000.


Liste de contrôle des processus commerciaux

Avant de déployer votre site, vous devez avoir planifié et implémenté vos processus commerciaux. Vérifiez les points suivants :

  • Le déroulement des opérations a été déterminé et testé.

  • Les administrateurs système ont reçu une formation initiale et les chefs d’entreprise, principaux utilisateurs de Commerce Server Business Desk, ont passé en revue le didacticiel Business Desk.

  • L’équipe d’environnement de serveur a été identifiée et des procédures de fonctionnement ont été déterminées (par exemple, demande de modification, journal de contrôle des modifications, mise à jour de serveur, planification de la maintenance et procédures d’escalade des problèmes).

Pour plus d’informations, consultez Planification des pipelines de processus commercial.


Liste de contrôle de la sécurité de la plate-forme

Il existe plusieurs façons de renforcer la sécurité d’un ordinateur publiant des informations sur un intranet ou sur Internet. Si vous êtes soucieux de la sécurité de votre système, examinez cette liste de contrôle afin de déterminer si des aspects de votre sécurité peuvent être améliorés.

Remarque

  • Pour des informations à caractère très sensible, faites appel à l’assistance d’une société de conseil en matière de sécurité. Une société de conseil peut vous aider à établir des stratégies et des procédures de sécurité appropriées.

Sécurité Windows

Sécurité des services Internet Information Services

Sécurité physique

Sécurité du personnel

Sécurité Windows

Les fonctionnalités de sécurité de Commerce Server sont basées sur celles de Windows. Les paramètres suivants de Windows vous aideront à sécuriser votre site Web.

Système de fichiers

 | Action | Raison
 | Utiliser NTFS | Le système NTFS est plus sûr que le système FAT. Pour plus d’informations sur la conversion du système FAT au système NTFS du disque dur de votre ordinateur, consultez la documentation Windows.
 | Examiner les autorisations de répertoire | Par défaut, Windows crée de nouveaux dossiers et attribue des autorisations de Contrôle total au groupe Tout le monde.
 | Définir le contrôle d’accès pour le compte IUSR_nomordinateur | Ceci permet de limiter l’accès des utilisateurs anonymes à votre ordinateur.
 | Stocker les fichiers exécutables dans un répertoire distinct | Ceci facilite l’attribution d’autorisations d’accès et l’audit.
 | Vérifier les autorisations NTFS sur les lecteurs réseau | Par défaut, Windows crée de nouvelles ressources partagées et attribue des autorisations de Contrôle total au groupe Tout le monde.

Comptes d’utilisateur

 | Action | Raison
 | Vérifier souvent les comptes d’utilisateur | Recherchez les nouveaux comptes qui n’ont pas été créés par un administrateur valide. Vérifiez les droits attribués au compte IUSR_nomordinateur. Tous les utilisateurs qui obtiennent un accès anonyme à votre site disposent des droits attribués à ce compte. Vous pouvez également utiliser l’audit pour analyser le moment où les stratégies de sécurité sont modifiées et par qui.
 | Choisir des mots de passe complexes | Les mots de passe sont plus difficiles à deviner s’ils sont constitués d’une combinaison de lettres en minuscules et en majuscules, de nombres et de caractères spéciaux.
 | Maintenir des stratégies de compte strictes | Gardez la trace des types d’accès qui sont octroyés à des comptes d’utilisateur et des groupes d’utilisateurs importants. Ceci implique de savoir qui a la capacité de modifier les stratégies de sécurité.
 | Limiter l’appartenance du groupe des administrateurs | Ce groupe dispose en règle générale d’un accès total à l’ordinateur.
 | Attribuer un mot de passe au compte d’administrateur | Par défaut, le mot de passe utilisé pour le compte de l’administrateur est vide. Pour améliorer la sécurité, définissez un mot de passe complexe pour ce compte, comme décrit précédemment.

Services et autres questions

 | Action | Raison
 | Exécuter des services minimaux | Exécutez uniquement les services qui sont absolument nécessaires pour atteindre vos objectifs. Chaque service supplémentaire que vous exécutez constitue un point d’entrée contre les attaques pernicieuses. Pour plus d’informations sur les services et la sécurité, consultez le Kit de Ressources Techniques Commerce Server 2000.
 | Ne pas utiliser le contrôleur principal de domaine en tant que serveur | Le contrôleur principal de domaine (PDC, primary domain controller) traite en permanence les demandes d’authentification. L’exécution d’un service Web sur le PDC diminue les performances. Cela peut également exposer votre PDC à des attaques qui pourraient affecter votre réseau tout entier.
 | Activer l’audit | L’audit est un outil très précieux pour surveiller l’accès à des fichiers sécurisés ou importants. Il peut également être utilisé pour le suivi des événements sur le serveur, tels qu’une modification dans votre stratégie de sécurité. Les journaux d’audit peuvent être archivés pour une utilisation ultérieure.
 | Utiliser le cryptage si vous administrez votre ordinateur à distance | En règle générale, l’administration à distance implique l’échange d’informations à caractère sensible, telles que le mot de passe pour le compte de l’administrateur. Pour protéger ces informations sur des réseaux ouverts, utilisez le cryptage SSL (Secured Sockets Layer).
 | Utiliser un compte de bas niveau pour naviguer sur Internet | L’utilisation du compte d’administrateur, d’utilisateur avec pouvoir, ou d’un autre compte hautement privilégié pour naviguer sur Internet peut ouvrir des points d’entrée sur votre ordinateur contre les attaques. De même, ne naviguez jamais sur Internet à partir du contrôleur principal de domaine (PDC).
 | Sauvegarder fréquemment les fichiers vitaux et le Registre | Aucune mesure de sécurité ne peut garantir la sécurité des données. Pour plus d’informations, consultez le Kit de Ressources Techniques Commerce Server 2000.
 | Lancer régulièrement des contrôles anti-virus | Tout ordinateur connecté à un réseau ouvert est exposé aux virus informatiques. Des vérifications régulières peuvent permettre d’éviter des pertes inutiles de données.
 | Supprimer la liaison de vos cartes adaptateurs de réseau avec les services inutiles | Avertissement Consultez votre administrateur système avant de supprimer la liaison avec des services, car cela peut avoir des effets néfastes sur les autres utilisateurs de votre système.

Sécurité des services Internet Information Services

Les services IIS fournissent une sécurité de première main pour votre site Web, avec notamment l’authentification et les autorisations Web.

Authentification

 | Action | Raison
 | Utiliser la forme d’authentification la plus sûre possible | Utilisez la forme d’authentification la plus sûre que vos clients peuvent prendre en charge. Par exemple, l’authentification intégrée de Windows et l’authentification Digest sont plus sûres que l’authentification de base. Les certificats client peuvent également être utilisés pour une authentification hautement sécurisée.
 | Mappage un-à-un et mappage plusieurs-à-un | Vous pouvez utiliser l’une de ces méthodes ou les deux pour mapper les certificats client vers les comptes d’utilisateur Windows. Le mappage un-à-un offre un niveau de certitude plus élevé, mais nécessite le stockage sur le serveur d’une copie du certificat client. Le mappage plusieurs-à-un est plus facile à mettre en oeuvre et ne nécessite pas le stockage sur le serveur d’une copie du certificat.

Autorisations Web

 | Action | Raison
 | Synchroniser les autorisations Web et les autorisations NTFS | Si les autorisations Web et les autorisations NTFS ne sont pas synchronisées, la plus restrictive des deux est utilisée. La synchronisation peut être effectuée manuellement, ou à l’aide de l’Assistant Autorisations.
 | Utiliser la restriction d’adresse IP si IIS est administré à distance | Pour plus d’informations, consultez « Accord et refus de l’accès aux ordinateurs » dans la documentation IIS.
 | Utiliser l’autorisation la plus restrictive possible | Par exemple, si votre site Web est uniquement utilisé pour la visualisation d’informations, attribuez seulement des autorisations de lecture. Si un répertoire ou un site contient des applications ASP, attribuez des autorisations Scripts seulement plutôt que des autorisations Scripts et exécutables. Pour plus d’informations, consultez « Définition d’autorisations de serveur Web » dans la documentation IIS.
 | Autorisations d’écriture et autorisations Scripts et exécutables | Utilisez cette combinaison avec la plus grande prudence. Elle peut permettre à quelqu’un de télécharger des fichiers exécutables potentiellement dangereux sur votre serveur, et de les exécuter. Pour plus d’informations, consultez « Définition d’autorisations de serveur Web » dans la documentation IIS.

Sécurité physique

 | Action | Raison
 | Verrouiller la station de travail quand vous vous absentez | Quand vous ne travaillez plus sur votre poste de travail, verrouillez le bureau en appuyant sur les touches de raccourci CTRL + ALT + SUPPR, et en sélectionnant Verrouiller la station de travail.
 | Utiliser un écran de veille protégé par un mot de passe | Le délai doit être court afin que personne n’ait le temps d’utiliser l’ordinateur lorsque vous ne travaillez pas dessus. L’écran de veille doit être noir ; les écrans de veille animés peuvent réduire les performances du serveur.
 | Verrouiller l’ordinateur | Verrouillez l’ordinateur dans un local sécurisé afin de réduire toute possibilité d’accès par des individus mal intentionnés.

Sécurité du personnel

 | Action | Raison
 | Utiliser des comptes d’administrateur différents | Chaque individu qui dispose de privilèges d’administration doit recevoir un compte et un mot de passe d’utilisateur distincts. Cela permettra de suivre plus aisément tout changement effectué.
 | Utiliser des accords de confidentialité | Une plus grande responsabilisation peut être imposée par des accords de confidentialité.
 | Réattribuer périodiquement les comptes | Pour réduire le risque que les informations de compte d’utilisateur soient divulguées, attribuez de nouveaux comptes d’utilisateur aux membres du personnel disposant de privilèges d’administrateur ou de privilèges de haut niveau.
 | Supprimer rapidement les comptes inutilisés | Cela réduira le risque qu’un ancien employé ou fournisseur mécontent n’accède à votre réseau.


Liste de contrôle de la sécurité Commerce Server

Avant de déployer votre site, vous devez avoir planifié et mis en oeuvre sa sécurité.

Respectez les directives suivantes pour la mise en oeuvre de la sécurité de votre site :

  • Chaque fois que possible, installez Internet Information Services (IIS) 5.0 et SQL Server sur des ordinateurs séparés. Les utilisateurs se connectant aux ordinateurs qui stockent vos bases de données mettent la sécurité de vos données en péril. Vous devez garder les applications Web et les bases de données sur des ordinateurs séparés.

  • Mettez toujours les données sensibles à l’abri derrière un pare-feu.

Respectez les directives de déploiement suivantes pour protéger votre site contre les attaques internes :

  • Limitez l’accès physique à tous les ordinateurs.

  • Limitez le nombre d’utilisateurs connectés à tous les ordinateurs ; n’attribuez aux utilisateurs que les privilèges minimum nécessaires pour accomplir leur travail.

  • Changez fréquemment les mots de passe, surtout si un employé quitte l’entreprise.

  • Tenez des journaux de toutes les activités du système et consultez-les fréquemment.

  • Conservez toutes les sauvegardes en lieu sûr.

  • Utilisez la ressource CS Authentication pour établir ou modifier la méthode d’authentification et d’identification de votre site Microsoft Commerce Server 2000. Pour plus d’informations, consultez Gestion de la ressource CS Authentication.

Voici une liste d’autres éléments de sécurité à prendre en compte pendant ou immédiatement après le déploiement de votre site :

  • Limitez l’accès aux dossiers et fichiers de Commerce Server.

  • Limitez l’accès aux services de Commerce Server.

  • Limitez l’accès aux modules Business Desk.

  • Limitez l’accès à la base de données d’administration.

  • Sécurisez les fichiers journaux.

  • Activez uniquement la version la plus sécurisée de l’authentification intégrée de Windows (NTLM).

  • Supprimez la connexion d’administration SQL « sa ».

  • Attribuez un accès total aux administrateurs de bases de données.

Pour plus d’informations sur les éléments de sécurité consécutifs à l’installation, consultez Sécurisation de votre site.

Cette section contient les rubriques suivantes :

  • Sécurisation des sessions Business Desk

  • Utilisation de Active Directory pour stocker les informations utilisateur

  • Séparation des utilisateurs des domaines internes

  • Protection des mots de passe SQL Server

  • Définition des autorisations de Data Warehouse

  • Sécurisation des cookies

  • Utilisation de scripts pour définir des autorisations sur des dossiers contenant votre site

  • Hébergement de sites pour des clients externes

Sécurisation de sessions Business Desk

Quand le Gestionnaire de package de site Commerce Server décompresse une application Commerce Server Business Desk, elle est configurée pour utiliser l’authentification intégrée de Windows. Bien que cela sécurise l’authentification client, la session Business Desk elle-même transmet les données en texte clair. Pour garantir la sécurité des sessions Business Desk, n’autorisez que les clients Business Desk à l’intérieur de votre pare-feu Internet. Pour une sécurité renforcée, vous pouvez utiliser SSL (Secure Sockets Layer) pour les connexions Business Desk. Pour plus d’informations sur SSL, consultez « Configuration de SSL sur votre serveur » dans la documentation IIS 5.0.

Utilisation de Active Directory pour stocker les informations utilisateur

Les informations utilisateur, y compris les mots de passe, les numéros de carte de crédit et les numéros de téléphone sont stockés en texte clair dans la base de données des profils de Commerce Server. SQL Server sécurise ces informations contre tout accès non autorisé, mais, pour améliorer sa sécurité, utilisez Active Directory pour stocker les données utilisateurs sensibles. Pour plus d’informations, consultez Planification de l’intégration de Active Directory.

Vous pouvez également envisager d’utiliser des produits tiers pour crypter les données SQL Server.

Séparation des utilisateurs des domaines internes

Si vous utilisez Microsoft Active Directory pour votre site et pour votre organisation interne, utilisez des domaines séparés. L’administration des données utilisateur de votre réseau d’entreprise peut entraîner une charge de travail accrue, mais l’amélioration de la sécurité en vaut la peine. Si vous partagez un domaine pour une utilisation interne et externe, il est possible que les données utilisateur externes aboutissent dans votre catalogue global Active Directory interne. Si vous avez une raison d’utiliser votre Active Directory interne sur votre site, c’est une bonne idée que de placer votre serveur Commerce Server Business Desk sur le même côté du pare-feu que votre contrôleur de domaine Active Directory. Les risques relatifs au partage des informations Active Directory internes et externes sont notamment une altération du site, des achats frauduleux, des modifications de compte, refus de service et insertions de virus.

Protection des mots de passe SQL Server

Quand un serveur Web se connecte à un serveur SQL, le mot de passe SQL est transmis en texte clair. Pour protéger une connexion SQL Server contre les intrusions, utilisez le pilote de réseau multiprotocole de SQL Server, qui permet de crypter les connexions de session. Si vous utilisez l’authentification Windows NT, ce mot de passe sera protégé, sauf dans le programme d’installation de Commerce Server et si vous choisissez l’option Décompression rapide dans le Gestionnaire de package de site Commerce Server.

Définition des autorisations de Data Warehouse

Une façon de donner aux utilisateurs Commerce Server Business Desk la possibilité de lire et de modifier les objets de Data Warehouse de Commerce Server est de leur attribuer un compte d’administrateur Windows. Toutefois, vous pourrez limiter certains utilisateurs Business Desk à la lecture de rapports. Pour cela, vous attribuerez des rôles de base de données SQL Server spécifiques à différents utilisateurs. Le rôle db_datareader autorise les utilisateurs à visualiser toutes les données de toutes les tables d’une base de données. Le rôle db_datawriter autorise les utilisateurs à ajouter, modifier ou supprimer les données des tables de la base de données.

Pour ajouter un utilisateur à un rôle de base de données SQL Server

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server, puis cliquez sur Enterprise Manager.

  2. Dans SQL Server Enterprise Manager, développez un groupe de serveurs, puis le serveur souhaité.

  3. Développez Bases de données, développez la base de données où se trouve le rôle, puis cliquez sur Rôles.

  4. Dans le volet des informations, cliquez avec le bouton droit sur le rôle auquel l’utilisateur sera ajouté, puis cliquez sur Propriétés.

  5. Dans la boîte de dialogue Propriétés du rôle de base de données, cliquez sur Ajouter.

  6. Dans la boîte de dialogue Ajouter des membres de rôle, sélectionnez l’utilisateur souhaité, puis cliquez sur OK.

    Seuls les utilisateurs de la base de données sélectionnée peuvent être ajoutés au rôle.

Sécurisation des cookies

Par défaut, les cookies sont transmis en texte clair. Il est possible à des intrus d’intercepter des informations contenues dans des cookies et d’utiliser ces informations pour se faire passer pour des utilisateurs. Cependant, les cookies peuvent être cryptés. Commerce Server 2000 fait appel à l’authentification et à des cookies anonymes cryptés pour améliorer la sécurité. Pour mieux sécuriser les cookies, utilisez le cryptage et intégrez-leur l’adresse IP (Internet Protocol) du client. Ceci permet au serveur cible de vérifier que les cookies sont bien envoyés par le bon utilisateur.

Utilisation de scripts pour définir des autorisations sur des dossiers contenant votre site

Le Gestionnaire de package de site Commerce Server ne compresse ni ne décompresse aucun dossier ou aucune autorisation NTFS (listes de contrôle d’accès). Veillez à sécuriser les fichiers et dossiers contenant votre site après l’avoir décompressé. Une bonne façon de procéder est d’utiliser les points de raccordement de script (scripting hooks) du Gestionnaire de package de site pour modifier les autorisations de dossier pendant ou après l’exécution du Gestionnaire de package de site. Pour plus d’informations, consultez Utilisation de scripts avec le Gestionnaire de package de site.

Hébergement de sites pour des clients externes

Si vous êtes un Fournisseur d’Accès Internet assurant l’hébergement de sites pour des clients externes, n’hébergez pas plusieurs sites sur un même ordinateur. Le site de chaque client doit posséder sa propre base de données d’administration. Les utilisateurs d’un site peuvent lire des données d’autres sites si plusieurs sites partagent la même base de données d’administration. Si les utilisateurs peuvent télécharger des scripts sur votre site, le risque de sécurité est plus grand car ces scripts peuvent contenir du code qui lit et écrit à partir de la base de données d’administration et d’autres bases de données Commerce Server.


Configuration de vos plates-formes de serveur

L’installation décrite dans cette rubrique est une configuration à quatre ordinateurs contenant une paire de serveurs Web utilisant l’équilibrage de charge réseau (NLB, Network Load Balancing) et une paire de serveurs de cluster SQL Server. Pour plus d’informations sur cette configuration, consultez Configuration d’un site de petite taille.

Suivez ces étapes pour installer des serveurs pour un site Web Commerce Server 2000 :

  • Passez en revue la configuration informatique que vous avez planifiée.

  • Incorporez tout changement de configuration découvert à l’occasion des tests.

  • Créez une configuration standard pour chaque rôle de l’ordinateur. Dans une configuration de petite taille, les rôles incluent les serveurs Web et les serveurs de bases de données.

  • Installez Microsoft Windows 2000 Server ou Advanced Server sur tous les ordinateurs de votre environnement de test, en les configurant en fonction de votre documentation de configuration avec appartenance appropriées au domaine, adresses IP (Internet Protocol), configuration client DNS (Domain Name System), services et Microsoft SQL Server.

    Vous pouvez également créer une image de serveur pour chaque rôle et utiliser Microsoft Application Center 2000 pour répliquer l’image vers d’autres serveurs de ce rôle, si votre matériel de serveur remplit les conditions pour la gestion d’images. Pour plus d’informations, consultez la documentation relative à Microsoft Application Center 2000.

Cette section contient les rubriques suivantes :

  • Configuration de vos serveurs Web. Explique comment installer des clusters utilisant l’équilibrage de charge réseau et installer des serveurs Web dans un domaine Active Directory dans une configuration à quatre ordinateurs.

  • Configuration de vos serveurs de bases de données. Explique comment installer deux serveurs de cluster SQL Server sur une configuration à quatre ordinateurs.

  • Configuration de vos serveurs Active Directory Explique comment configurer deux serveurs Web en utilisant l’équilibrage de charge réseau, deux serveurs de cluster SQL Server, et deux contrôleurs de domaine Microsoft Active Directory dans une configuration à six ordinateurs.


Configuration de vos serveurs Web

Cette section s’applique à une configuration à quatre ordinateurs contenant une paire de serveurs Web utilisant l’équilibrage de charge réseau et une paire de serveurs de cluster SQL Server. Pour plus d’informations sur cette configuration, consultez Configuration d’un site de petite taille.

Pour configurer vos serveurs Web, procédez ainsi :

  • Vérifiez que vos serveurs Web sont les ordinateurs que vous utiliserez pour héberger vos sites Web et les composants d’exécution Commerce Server. Pour séparer la couche logique d’entreprise de la couche de base de données, vos serveurs Web ne doivent contenir aucune de vos bases de données. Avant d’installer Commerce Server 2000, vous devez veiller à ce que la plate-forme logicielle requise existe sur vos serveurs Web. Pour plus d’informations, consultez Configuration logicielle requise.

  • Installation de Windows 2000 Server ou Advanced Server

  • Vérifiez que les clusters Windows 2000 NLB ont été configurés.

  • Vérifiez qu’un site Web Internet Information Services (IIS) 5.0 a été créé pour chacun de vos sites.

Cette section contient les rubriques suivantes :

  • Installation de clusters avec équilibrage de charge réseau

  • Jonction de serveurs Web à un domaine Active Directory

  • Configuration de IIS

Voir aussi

Serveurs Web


Installation de clusters à équilibrage de charge réseau

Microsoft Windows 2000 Network Load Balancing (NLB) améliore la disponibilité et l’évolutivité des applications Commerce Server. En combinant les ressources de deux serveurs Web ou plus dans un cluster faisant l’objet d’une répartition de charge, vous pouvez délivrer un site Web plus fiable.

Chaque serveur exécute des copies distinctes de vos applications Commerce Server. NLB équilibre la charge de travail entre chaque serveur en permettant que le groupe qu’ils forment soit adressé par le même ensemble d’adresses IP (Internet Protocol) de cluster.

Vous pouvez installer NLB en utilisant n’importe lequel des programmes suivants :

  • Microsoft® Application Center 2000

  • Windows 2000 Advanced Server

  • Windows 2000 Advanced Server

Pour plus d’informations sur l’installation de NLB, y compris sur les conditions matérielles requises, consultez la documentation relative au produit que vous utiliserez pour l’installation.


Jonction de serveurs Web à un domaine Active Directory

Si vous créez un domaine Microsoft Active Directory, veillez à ce que vos serveurs Web appartiennent au domaine avant d’installer Commerce Server 2000. Pour plus d’informations sur Active Directory, consultez Configuration de vos serveurs Active Directory.

Remarque

  • Vous devez être connecté en tant qu’administrateur à l’ordinateur local et posséder un nom d’utilisateur et un mot de passe valide pour joindre l’ordinateur à un domaine. Si vous ne savez pas quel nom d’utilisateur et quel mot de passe utiliser, contactez votre administrateur système.

Pour joindre un domaine

  1. Cliquez sur Démarrer, pointez sur Paramètres, cliquez sur Panneau de configuration, puis sur Système.

  2. Dans la boîte de dialogue Propriétés Système, sur l’onglet Identification réseau, cliquez sur Propriétés.

  3. Dans la boîte de dialogue Modifications de l’identification, dans la zone Membre de, sélectionnez Domaine, tapez le nom du domaine que vous voulez joindre, puis cliquez sur OK.

    Vous êtes invité à fournir un nom d’utilisateur et un mot de passe pour joindre l’ordinateur au domaine.

    Remarque

    • Si vous voulez que des noms longs soient reconnus par le domaine Active Directory, l’administrateur de domaine doit activer l’enregistrement des noms Domain Name System (DNS) de 16 octets ou plus.
  4. Pour fermer la boîte de dialogue Propriétés Système après avoir entré le nom d’utilisateur et le mot de passe, cliquez sur OK.

Vous êtes invité à redémarrer votre ordinateur pour appliquer vos modifications.

Voir aussi

  • Configuration de vos serveurs Active Directory


Configuration de IIS

Internet Information Services (IIS) 5.0 est installé par défaut sur Microsoft Windows 2000 Server et sur Advanced Server.

Pour assurer une sécurité supplémentaire à vos sites Web, vous devez créer un nouveau site Web IIS pour chaque site que vous prévoyez d’installer avec Commerce Server. Par défaut, Commerce Server installe votre site dans le site Web IIS par défaut. Quand vous utilisez le Gestionnaire de package de site Commerce Server pour décompresser votre site, vous pouvez spécifier qu’il réside dans le site Web IIS que vous avez créé plutôt que dans le site Web par défaut.

Pour créer un nouveau site Web IIS

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Outils d’administration, puis cliquez sur Gestionnaire des services Internet.

  2. Dans la boîte de dialogue Internet Information Services, cliquez avec le bouton droit sur le nom de l’ordinateur sur lequel vous voulez créer le nouveau site IIS, pointez sur Nouveau, puis cliquez sur Site Web.

  3. Dans la boîte de dialogue Assistant Création de site Web, cliquez sur Suivant.

  4. Dans la boîte de dialogue Description de site Web, dans la boîte Description, tapez un nom pour le nouveau site Web. Ce nom apparaît en tant que nom de site dans le Gestionnaire des services Internet. Cliquez sur Suivant.

  5. Dans la boîte de dialogue Adresse IP et port, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Entrez l’adresse IP à utiliser pour ce site Web | Taper ou sélectionner dans la liste déroulante l’adresse IP (Internet Protocol) de ce site Web. La valeur Toutes non attribuées sur la liste déroulante renvoie aux adresses IP qui sont assignées à un ordinateur mais pas à un site spécifique. Le site Web par défaut utilise toutes les adresses IP qui ne sont pas attribuées à d’autres sites. Seulement un site peut être configuré pour utiliser des adresses IP non attribuées.
    Port TCP à utiliser par ce site Web (par défaut : 80) | Taper l’adresse de port pour ce site Web.
    En-tête de l’hôte pour ce site (Par défaut : Aucun) | Attribuez le nom de l’en-tête de l’hôte pour ce site Web. Si vous ajoutez des sites supplémentaires à une adresse IP unique en utilisant des en-têtes d’hôte, vous devez attribuer un nom d’en-tête d’hôte.

  6. Cliquez sur Suivant.

  7. Dans la boîte de dialogue Répertoire de base du site Web, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Chemin | Tapez l’emplacement dans votre système de fichiers Windows pour le répertoire racine de votre site.
    Autoriser les accès anonymes à ce site Web | Autoriser les utilisateurs distants à se connecter à ce site sans nom d’utilisateur ou mot de passe.

  8. Cliquez sur Suivant.

  9. Dans la boîte de dialogue Autorisations d’accès au site Web, spécifiez les autorisations que vous voulez attribuer aux utilisateurs qui accèdent au répertoire de base du site Web, spécifié dans les étapes précédentes, puis cliquez sur Suivant.

  10. Pour fermer l’Assistant, cliquez sur Terminer.

Remarques

  • Il est conseillé d’installer le service DNS (Domain Name System) sur un ordinateur de votre intranet. Si votre intranet est de petite taille, vous pouvez utiliser des fichiers Hosts ou Lmhosts sur tous les ordinateurs de votre réseau. DNS permet aux utilisateurs d’accéder à votre site avec des noms plutôt qu’avec des adresses IP.

  • Pour des motifs de sécurité, il est recommandé de formater tous les lecteurs utilisés avec IIS avec NTFS.

Voir aussi

Utilisation de Commerce Server et IIS


Configuration de vos serveurs de bases de données

Cette section s’applique à une configuration à quatre ordinateurs contenant une paire de serveurs Web utilisant l’équilibrage de charge réseau (NLB) et une paire de serveurs de cluster SQL Server. Pour plus d’informations sur cette configuration, consultez Configuration d’un site de petite taille.

Vos serveurs de bases de données sont les ordinateurs que vous utilisez pour héberger vos bases de données Commerce Server et vos bases de données d’application, ainsi que les ressources Direct Mailer et Predictor de Commerce Server, si vous décidez de les installer. Pour séparer la couche logique d’entreprise de la couche de base de données, vos serveurs de bases de données ne doivent contenir aucune de vos applications ou aucun de vos outils d’administration. Direct Mailer est un cas particulier ; vous pouvez l’installer sur votre serveur de base de données dans une configuration de site de petite taille. Avant d’installer Commerce Server 2000, vous devez veiller à ce que la plate-forme logicielle requise existe sur vos serveurs de bases de données. Pour plus d’informations, consultez Configuration logicielle requise.

Remarque

  • Commerce Server ne prend pas en charge une configuration mixte SQL Server 7.0 et SQL Server 2000 pour Data Warehouse et les bases de données de serveur OLAP.

Installation d’un cluster serveur

Afin de garantir la haute disponibilité de vos bases de données SQL Server, nous vous recommandons de les stocker sur des clusters serveur. Les serveurs configurés en clusters se partagent des données communes et fonctionnent comme un seul et même système. Chaque serveur peut fonctionner de façon indépendante des autres serveurs du cluster. Si un serveur est défaillant, un autre serveur prend le relais et assure ses fonctions.

Avant d’installer un cluster serveur, les serveurs du cluster doivent être configurés avec des disques, des cartes réseau et des contrôleurs de disques compatibles. Pour plus d’informations sur ces exigences matérielles, consultez votre fournisseur de matériels.

Il existe diverses techniques de mise en cluster, comme les disques partagés et en miroir, dont vous pouvez envisager l’utilisation, selon vos besoins et votre budget. Également, vous pouvez configurer vos serveurs en actif/inactif, où chaque serveur exécute des applications tout en servant de serveur de secours pour l’autre serveur, ou en actif/passif, où un serveur exécute des applications pendant que l’autre sert de serveur de secours. Pour prendre la bonne décision, vous devez étudier le rôle des clusters serveur dans votre site. Avant de créer des clusters serveur, vous devez les planifier avec soin. Pour plus d’informations sur la planification des clusters serveur, consultez le Guide de planification et de déploiement de Microsoft Windows 2000 Server.

Après avoir développé un projet de cluster serveur, utilisez l’Assistant Configuration du service de cluster afin de créer et de configurer votre cluster de serveurs. Pour plus d’informations, consultez Step-by-Step Guide to Installing Cluster Service (en anglais).

Après avoir installé des clusters serveur, il est important d’installer les applications dans l’ordre prescrit. Pour plus d’informations sur la façon d’installer SQL Server sur un cluster serveur, consultez le site Web des Services de Support Technique de Microsoft.

Remarque

  • Dans la version initiale de Commerce Server 2000, Commerce Server Direct Mailer ne prend pas en charge l’installation vers un cluster virtuel SQL Server. Installez Direct Mailer sur un noeud physique du cluster virtuel SQL Server en utilisant le nom de l’ordinateur physique, et utilisez une instance de SQL Server distincte de l’instance virtuelle. Consultez le site Web Microsoft Commerce Server pour la dernière solution disponible.


Configuration de vos serveurs Active Directory

Cette section s’applique à une configuration à six ordinateurs contenant une paire de serveurs Web utilisant l’équilibrage de charge réseau (NLB), une paire de clusters serveur SQL Server et une paire de contrôleurs de domaine Microsoft Active Directory. Pour plus d’informations sur cette configuration, consultez Configuration d’un site de petite taille.

Si vous décidez d’implémenter Active Directory pour stocker un profil utilisateur ou d’autres données, vous devez suivre différentes étapes qui sont décrites dans les rubriques suivantes.

Remarque

  • Avant d’effectuer une quelconque de ces étapes, il est important que vous compreniez Active Directory et le rôle qu’il joue dans votre plan de site. Pour plus d’informations sur Active Directory, consultez Vue d’ensemble de Active Directory.

Cette section contient les rubriques suivantes :

  • Création d’un domaine Active Directory. Explique comment configurer un contrôleur de domaine Active Directory. Disposer d’un domaine distinct pour chaque site, séparé des domaines sur le réseau d’entreprise, renforce la sécurité du site.

  • Ajout d’un contrôleur de domaine à un domaine existant. Explique comment ajouter une application à un domaine existant. Bien que cette étape ne soit pas obligatoire, il est hautement recommandé de garantir la disponibilité de toute donnée de profil utilisateur que vous stockez dans Active Directory.

  • Activation de serveurs Web pour authentifier les utilisateurs sur d’autres serveurs. Explique comment configurer Windows afin de garantir que les utilisateurs puissent accéder à tous les serveurs Commerce Server.

Voir aussi

Planification du système de profil

Planification de l’intégration à Active Directory


Création d'un domaine Active Directory

Création d’un domaine Active Directory

Avant de pouvoir activer l’authentification Active Directory pour vos informations de profil utilisateur de site Web Commerce Server, vous devez configurer un domaine Active Directory sur votre site. Il est recommandé de dédier une paire de serveurs répliqués à cet effet.

N’utilisez ces procédures que si vous maîtrisez les concepts Active Directory, et si vous avez planifié votre structure Active Directory. Pour plus d’informations sur Active Directory, consultez le Guide de planification et de déploiement de Microsoft Windows 2000 Server.

Pour configurer un domaine Active Directory en créant une nouvelle arborescence de domaine

Pour configurer un domaine Active Directory en créant un nouveau domaine enfant dans une arborescence de domaine existante

Pour configurer un domaine Active Directory en créant une nouvelle arborescence de domaine

  1. Cliquez sur Démarrer, puis sur Exécuter.

  2. Dans la boîte de dialogue Exécuter, dans la zone Ouvrir, tapez dcpromo, puis cliquez sur OK.

  3. Dans l’Assistant Installation de Active Directory, cliquez sur Suivant.

  4. Dans la boîte de dialogue Type de contrôleur de domaine, sélectionnez Contrôleur de domaine pour un nouveau domaine, puis cliquez sur Suivant.

  5. Dans la boîte de dialogue Créer une arborescence ou un domaine enfant, sélectionnez Créer une nouvelle arborescence de domaine, puis cliquez sur Suivant.

  6. Dans la boîte de dialogue Créer ou rejoindre une forêt, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Créer une nouvelle forêt d’arborescence de domaines | Sélectionnez cette option s’il s’agit du premier domaine dans votre application, ou si vous souhaitez que la nouvelle arborescence de domaine que vous créez soit complètement indépendante de votre forêt actuelle.
    Placer cette nouvelle arborescence de domaine dans une forêt existante | Sélectionnez cette option si vous souhaitez que les utilisateurs dans la nouvelle arborescence de domaine aient accès aux ressources des arborescences de domaine existantes, et vice versa.

  7. Si vous avez sélectionné l’option Créer une nouvelle forêt d’arborescence de domaines, dans la boîte de dialogue Nouveau nom de domaine, dans la zone Nom DNS complet pour le nouveau domaine, tapez le nom de NDS (Domain Name System) complet pour le nouveau domaine.

  8. Dans la boîte de dialogue Nom de domaine NetBIOS, dans la zone Nom de domaine NetBIOS, tapez le nom que les utilisateurs des précédentes versions de Microsoft Windows utiliseront pour identifier le domaine. Il est recommandé d’accepter la valeur par défaut, qui est une version raccourcie du nom DNS complet. Cliquez sur Suivant.

  9. Dans la boîte de dialogue Emplacement de la base de données et du journal, acceptez les paramètres par défaut à moins que vous n’ayez une raison précise de les modifier.

  10. Dans la boîte de dialogue Volume système partagé, acceptez les paramètres par défaut à moins que vous n’ayez une raison précise de les modifier.

  11. Si DNS n’est pas installé sur votre ordinateur, vous serez invité à l’installer. Sélectionnez Oui, je veux installer et configurer le service DNS sur cet ordinateur, puis cliquez sur Suivant.

  12. Dans la boîte de dialogue Autorisations, sélectionnez l’option Autorisations compatibles uniquement avec les serveurs Windows 2000, puis cliquez sur Suivant.

Attention

  • Autoriser la compatibilité descendante peut conduire à des problèmes de sécurité avec Commerce Server 2000.
  13. Dans la boîte de dialogue Mot de passe administrateur de Restauration des services d’annuaire, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Mot de passe | Tapez le mot de passe que vous voulez attribuer au compte d’administrateur pour le serveur.
    Confirmer le mot de passe | Tapez à nouveau le mot de passe pour le confirmer.

  14. Dans la boîte de dialogue Résumé, passez en revue les options que vous avez sélectionnées afin de vous assurer que votre configuration Active Directory est correcte. Si c’est le cas, cliquez sur Suivant, ou, pour reconfigurer vos options, cliquez sur Précédent.

    La boîte de dialogue Configuration de Active Directory en cours, signalant que le Active Directory que vous avez configuré est en cours d’installation sur votre ordinateur.

  15. Dans la boîte de dialogue Fin de l’Assistant Installation de Active Directory, cliquez sur Suivant.

Pour configurer un domaine Active Directory en créant un nouveau domaine enfant dans une arborescence de domaine existante

  1. Cliquez sur Démarrer, puis sur Exécuter.

  2. Dans la boîte de dialogue Exécuter, dans la zone ouvrir, tapez dcpromo, puis cliquez sur OK.

  3. Dans l’Assistant Installation de Active Directory, cliquez sur Suivant.

  4. Dans la boîte de dialogue Type de contrôleur de domaine, sélectionnez Contrôleur de domaine pour un nouveau domaine, puis cliquez sur Suivant.

  5. Dans la boîte de dialogue Créer une arborescence ou un domaine enfant, sélectionnez l’option Créer un nouveau domaine enfant dans une arborescence de domaine existante, puis cliquez sur Suivant.

  6. Dans la boîte de dialogue Installation d’un domaine enfant, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Domaine parent | Tapez le nom du domaine parent.
    Domaine enfant | Tapez le nom du domaine enfant.

  7. Dans la boîte de dialogue NetBIOS Domain Name, dans la zone Nom de domaine NetBIOS, tapez le nom que les utilisateurs des précédentes versions de Microsoft Windows utiliseront pour identifier le domaine. Il est recommandé d’accepter la valeur par défaut, qui est une version raccourcie du nom DNS complet. Cliquez sur Suivant.

  8. Dans la boîte de dialogue Emplacement de la base de données et du journal, acceptez les paramètres par défaut à moins que vous n’ayez une raison précise de les modifier.

  9. Dans la boîte de dialogue Volume système partagé, acceptez les paramètres par défaut à moins que vous n’ayez une raison précise de les modifier.

  10. Si DNS n’est pas installé sur votre ordinateur, vous serez invité à l’installer. Sélectionnez Oui, je veux installer et configurer le service DNS sur cet ordinateur, puis cliquez sur Suivant.

  11. Dans la boîte de dialogue Autorisations, sélectionnez l’option Autorisations compatibles uniquement avec les serveurs Windows 2000, puis cliquez sur Suivant.

Attention

  • Autoriser la compatibilité descendante peut conduire à des problèmes de sécurité avec Commerce Server 2000.
  12. Dans la boîte de dialogue Mot de passe administrateur de Restauration des services d’annuaire, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Mot de passe | Tapez le mot de passe que vous voulez attribuer au compte d’administrateur pour le serveur.
    Confirmer le mot de passe | Tapez à nouveau le mot de passe pour le confirmer.

    La boîte de dialogue Configuration de Active Directory en cours, signalant que le Active Directory que vous avez configuré est en cours d’installation sur votre ordinateur.

  13. Dans la boîte de dialogue Fin de l’Assistant Installation de Active Directory, cliquez sur Suivant.

Voir aussi

Configuration d’un site de petite taille

Jonction de serveurs Web à un domaine Active Directory


Ajout d'un contrôleur de domaine à un domaine existant

Ajout d’un contrôleur de domaine à un domaine existant

Après que vous avez créé plusieurs contrôleurs de domaine, Active Directory réplique fréquemment et automatiquement les informations de répertoire entre elles. Si un contrôleur de domaine devient indisponible, les informations de répertoire sont toujours disponibles via les autres contrôleurs de domaine.

Pour ajouter un contrôleur de domaine supplémentaire à un domaine existant

  1. Cliquez sur Démarrer, puis sur Exécuter.

  2. Dans la boîte de dialogue Exécuter, dans la zone Ouvrir, tapez dcpromo, puis cliquez sur OK.

  3. Dans la boîte de dialogue Type de contrôleur de domaine, sélectionnez Contrôleur de domaine supplémentaire. Ceci crée le contrôleur de domaine en tant que partenaire de réplication.

  4. Dans la boîte de dialogue Informations d’identification réseau, tapez le nom d’utilisateur d’un administrateur de domaine, le mot de passe et le nom du domaine, puis cliquez sur Suivant.

  5. Dans la boîte de dialogue Contrôleur de domaine supplémentaire, cliquez sur Suivant.

  6. Dans la boîte de dialogue Emplacement de la base de données et du journal, acceptez les paramètres par défaut, puis cliquez sur Suivant.

  7. Dans la boîte de dialogue Volume système partagé, cliquez sur Suivant.

  8. Dans la boîte de dialogue Mot de passe administrateur de Restauration des services d’annuaire, laissez les zones vides, et cliquez sur Suivant.

  9. Sur la boîte de dialogue Résumé, cliquez sur Suivant.

  10. Quand la boîte de dialogue Fin de l’installation de Active Directory apparaît, cliquez sur Terminer, puis redémarrez Windows.


Activation de serveurs Web pour authentifier les utilisateurs sur d'autres serveurs

Activation de serveurs Web pour authentifier les utilisateurs sur d’autres serveurs

Commerce Server 2000 requiert qu’un serveur Web soit capable d’authentifier des utilisateurs pour accéder à des services situés sur d’autres serveurs. Vous devez veiller à ce que Microsoft Windows soit configuré pour permettre un tel accès.

Remarque

  • Pour activer la délégation, vous devez disposer de privilèges d’administration suffisants dans votre domaine Windows 2000.

Pour permettre à un serveur Web d’authentifier des clients d’autres serveurs

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft Commerce Server 2000, puis cliquez sur Commerce Server Manager.

  2. Dans la console Commerce Server Manager, développez Utilisateurs et ordinateurs Active Directory, cliquez avec le bouton droit sur le noeud de domaine, puis cliquez sur Rechercher. Ou, si vous savez dans quelle unité d’organisation se trouve l’ordinateur, cliquez avec le bouton droit sur l’unité d’organisation, puis cliquez sur Rechercher. (Ou, vous pouvez naviguer jusqu’au compte d’ordinateur que vous souhaitez modifier sans utiliser la commande Rechercher, puis passer à l’étape 9.)

  3. Dans la boîte de dialogue Rechercher Utilisateurs, contacts et groupes, dans la zone Rechercher, sélectionnez Ordinateurs dans la liste déroulante.

  4. Sur l’onglet Ordinateurs, dans la zone Nom, tapez le nom de l’ordinateur que vous recherchez.

  5. Dans la zone Dans, sélectionnez le domaine ou l’unité d’organisation que vous voulez rechercher dans la liste déroulante, ou cliquez sur Parcourir pour sélectionner un dossier ou un domaine dans lequel vous voulez commencer votre recherche.

  6. (Facultatif) Dans la zone Propriétaire, tapez le nom de la personne dont l’ordinateur se trouve dans le domaine.

  7. (Facultatif) Dans la zone N'importe lequel, sélectionnez le rôle de l’ordinateur dans la liste. Vous pouvez rechercher tous les ordinateurs sur le réseau, des ordinateurs qui sont des stations de travail et des serveurs, ou des ordinateurs qui sont des contrôleurs de domaine.

  8. Cliquez sur Rechercher.

    Le nom de l’ordinateur souhaité apparaît dans la liste en bas de la boîte de dialogue Rechercher les ordinateurs.

  9. Cliquez avec le bouton droit sur l’ordinateur, puis cliquez sur Propriétés.

  10. Dans la boîte de dialogue Propriétés de <nom ordinateur>, sélectionnez l’option Approuver l’ordinateur pour la délégation, puis cliquez sur OK.


Installation de votre site

Cette section s’applique à une configuration à quatre ordinateurs contenant une paire de serveurs Web utilisant l’équilibrage de charge réseau (NLB) et une paire de serveurs cluster SQL Server. Pour plus d’informations sur cette configuration, consultez Configuration d’un site de petite taille.

Pour plus d’informations sur l’installation de Commerce Server 2000 dans un environnement à plus grande échelle, consultez le Kit de Ressources Techniques Microsoft Commerce Server 2000.

Cette section contient les rubriques suivantes :

  • Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs. Décrit comment installer Commerce Server 2000 et décompresser les applications sur une configuration à quatre ordinateurs.

  • Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs. Décrit comment installer Commerce Server 2000 sur votre serveur Web, puis déployer vos bases de données Commerce Server sur un ordinateur différent.


Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs

Cette rubrique contient des procédures décrivant comment installer Commerce Server 2000 et décompresser les applications sur une configuration à quatre ordinateurs comprenant :

  • Deux serveurs Web dans un cluster NLB (Network Load Balancing). Ces serveurs contiennent également les outils d’administration Commerce Server.

  • Deux serveurs SQL configurés comme un cluster serveur unique. Ces serveurs sont référencés par leur nom de cluster partagé.

Pour voir une figure illustrant cette configuration, consultez Configuration d’un site de petite taille.

Étape 1 : Pour installer Commerce Server sur les serveurs Web

Étape 2 : Pour installer Commerce Server sur le cluster SQL Server

Étape 3 : Pour décompresser votre site Web et vos applications

Étape 1 : Pour installer Commerce Server sur les serveurs Web

  1. Insérez le CD-ROM de Commerce Server 2000 dans son lecteur, puis exécutez le programme d’installation de Commerce Server 2000. Acceptez le contrat de licence, tapez vos informations client, et acceptez le dossier de destination par défaut.

  2. Dans la boîte de dialogue Type d’installation, sélectionnez Personnalisée, puis cliquez sur Suivant.

  3. Dans la boîte de dialogue Installation personnalisée, sélectionnez les options Outils d’administration, Gestionnaire de package de site Commerce Server et Documentation en ligne. Si vous le souhaitez, vous pouvez également sélectionner Predictor Service, si vous prévoyez de l’utiliser.

  4. Vérifiez que les options Analyse et Data Warehouse et Service de publipostage ne sont pas sélectionnées (aucune case à cocher ne doit contenir de X, indiquant que vous ne la sélectionnez pas). La figure suivante présente la boîte de dialogue Installation personnalisée.
    Boîte de dialogue Installation personnalisée

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  5. Cliquez sur Suivant.

  6. Dans la boîte de dialogue Configuration de la base de données d’administration, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Ordinateur SQL Server | Taper le nom de l’ordinateur pour le serveur de base de données.
    Nom d’utilisateur SQL Server | Taper le mot de passe de connexion SQL Server pour cet ordinateur. Pour créer une base de données, vous devez utiliser une connexion d’accès membre d’un des rôles SQL Server suivants : sysadmin ou dbcreator. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').
    Mot de passe de connexion SQL Server | Taper le mot de passe de connexion SQL Server pour ce nom d’utilisateur. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').

    La base de données d’administration se trouve sur le cluster SQL, aussi, au cours de cette étape, vous devez faire pointer cet ordinateur vers cette base de données. La figure suivante présente la boîte de dialogue Configuration de la base de données d’administration.

    Boîte de dialogue Configuration de la base de données d'administration

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  7. Cliquez sur Suivant.

  8. Dans la boîte de dialogue Comptes de services, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’utilisateur | Taper le nom d’utilisateur Windows du compte sous lequel les services Commerce Server s’exécuteront sur cet ordinateur.
    Mot de passe | Taper le mot de passe du compte Windows.
    Domaine | Taper le domaine du compte Windows.

    La figure suivante présente la boîte de dialogue Comptes de services.

    Boîte de dialogue Comptes de services

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  9. Cliquez sur Suivant.

  10. Dans la boîte de dialogue Prêt pour l’installation, cliquez sur Installer.

    Le programme d’installation de Commerce Server installe les outils d’administration et les packages de site.

  11. Pour quitter le programme d’installation, cliquez sur Terminer.

Étape 2 : Pour installer Commerce Server sur le cluster SQL Server

  1. Insérez le CD-ROM de Commerce Server 2000 dans son lecteur, puis exécutez le programme d’installation de Commerce Server 2000. Acceptez le contrat de licence, tapez vos informations client, et acceptez le dossier de destination par défaut.

  2. Dans la boîte de dialogue Type d’installation, sélectionnez Personnalisée, puis cliquez sur Suivant.

  3. Dans la boîte de dialogue Installation personnalisée, sélectionnez l’option Analyse et Data Warehouse.

  4. Vérifiez que vous avez effacé toutes les autres options (chaque case à cocher doit contenir un X, indiquant que vous ne la sélectionnez pas). La figure suivante présente la boîte de dialogue Installation personnalisée.
    Installation personnalisée, exemple A, cluster serveur

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

Remarque

  • Dans la version initiale de Commerce Server 2000, Commerce Server Direct Mailer ne prend pas en charge l’installation vers un cluster virtuel SQL Server. Installez Direct Mailer sur un noeud physique du cluster virtuel SQL Server en utilisant le nom de l’ordinateur physique, et utilisez une instance SQL Server qui est séparée de l’instance virtuelle. Consultez le site Web Microsoft Commerce Server pour la dernière solution disponible.
  5. Cliquez sur Suivant.

  6. Dans la boîte de dialogue Configuration de la base de données d’administration, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Ordinateur SQL Server | Taper le nom de cluster de ce cluster serveur.
    Nom d’utilisateur SQL Server | Taper le nom d’utilisateur SQL Server qui sera utilisé pour accéder à la base de données d’administration. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').
    Mot de passe de connexion SQL Server | Taper le mot de passe pour la connexion SQL Server. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').

    La figure suivante présente la boîte de dialogue Configuration de la base de données d’administration.

    Boîte de dialogue Configuration de la base de données d'administration

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  7. Cliquez sur Suivant.

  8. Dans la boîte de dialogue Comptes de services, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’utilisateur | Taper le nom d’utilisateur Windows du compte sous lequel les services Commerce Server s’exécuteront sur cet ordinateur.
    Mot de passe | Taper le mot de passe du compte Windows.
    Domaine | Taper le domaine du compte Windows.

  9. Cliquez sur Suivant.

  10. Dans la boîte de dialogue Prêt pour l’installation, cliquez sur Installer.

    Le programme d’installation de Commerce Server installe les fonctionnalités Analyse et Data Warehouse sur le cluster SQL Server.

  11. Pour quitter le programme d’installation, cliquez sur Terminer.

Étape 3 : Pour décompresser votre site Web et vos applications

  1. Sur le serveur Web souhaité, cliquez sur Démarrer, pointez sur Programmes, sur Microsoft Commerce Server 2000, puis cliquez sur Commerce Server Manager.

  2. Développez Commerce Server Manager, puis cliquez sur Sites de commerce.

  3. Cliquez avec le bouton droit sur Sites de commerce, pointez sur Nouveau, puis cliquez sur Décompresser un site.

  4. Dans la boîte de dialogue Décompresser un site à partir de, accédez au dossier contenant le fichier à décompresser, sélectionnez-le, puis cliquez sur Ouvrir.

    Le Gestionnaire de package de site Commerce Server est démarré.

  5. Dans la boîte de dialogue Décompresser, sélectionnez Décompression personnalisée, puis cliquez sur Suivant.

    La figure suivante présente la boîte de dialogue Décompresser.

    Boîte de dialogue Décompresser

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  6. Dans la boîte de dialogue Méthode de décompression, sélectionnez Créer un nouveau site, puis cliquez sur Suivant.

    La figure suivante présente la boîte de dialogue Méthode de décompression.

    Boîte de dialogue Méthode de décompression

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  7. Dans la boîte de dialogue Nom du site, dans la zone Nom du site, tapez le nom du site ou acceptez le nom par défaut, puis cliquez sur Suivant.

    La figure suivante présente la boîte de dialogue Nom du site.

    Boîte de dialogue Nom du site

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

    Remarques

    • Pour éviter les erreurs de décompression, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ') dans votre nom de site. Par défaut, les noms de bases de données d’un site portent comme préfixe le nom du site, et les caractères spéciaux peuvent ne pas être reconnus dans SQL Server.

    • Ne spécifiez jamais un nom de site de plus de 256 caractères simple octet ou 128 caractères double octet.

    • N’affectez pas le nom « Commerce » à votre site. Il s’agit d’un nom de base de données OLAP réservé. Si vous affectez le nom « Commerce » à votre site, cela risque d’entraîner l’écrasement de votre base de données OLAP la prochaine fois que vous décompresserez un site.
  8. Dans la boîte de dialogue Sélectionner les ressources, conservez toutes les ressources dans la liste de droite, à l’exception de Publipostage. Pour supprimer Service de publipostage Commerce Server, sélectionnez Service de publipostage, puis cliquez sur Supprimer. La figure suivante présente la boîte de dialogue Sélectionner les ressources.
    Boîte de dialogue Sélectionner des ressources, pas de service de publipostage

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  9. Si vous n’installez pas la ressource Predictor, sélectionnez Predictor, puis cliquez sur Supprimer.

    Remarque

    • Vous devez installer les ressources CS Authentication et Profiles simultanément. Elles ne fonctionnent pas si elles ne sont pas installées toutes les deux.
  10. Dans la boîte de dialogue Pointeurs de ressource globale, cliquez sur Suivant.

    Cette boîte de dialogue vous permet d’effectuer un mappage vers les ressources globales existantes ou d’en créer de nouvelles. Vous pouvez également l’utiliser si vous avez déjà décompressé les ressources globales sur votre ordinateur et que vous souhaitez à présent décompresser des pointeurs de ressource globale dans un site utilisant ces ressources globales.

    La figure suivante montre un exemple d’écran de la boîte de dialogue Pointeurs de ressource globale.

    Boîte de dialogue Pointeurs de ressource globale, pas de service de publipostage

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

    Dans la boîte de dialogue Chaînes de connexion de bases de données, le Gestionnaire de package de site répertorie les bases de données qu’il utilisera et les serveurs sur lesquels elles se trouvent. La figure suivante montre comment s’affiche la boîte de dialogue Chaînes de connexion de bases de données avec des paramètres par défaut.

    Chaînes de connexion de base de données 1, exemple A

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

    Dans la boîte de dialogue Chaînes de connexion de bases de données, cliquez sur Nouvelle base de données. Parce que vous placez les bases de données sur le cluster serveur de base de données, vous devez créer la base de données.

  11. Dans la boîte de dialogue Nouvelle base de données, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Ordinateur SQL Server | Taper le nom du cluster SQL Server.
    Nom de la base de données | Taper le nom voulu pour la base de données de Data Warehouse.
    Nom d’utilisateur SQL | Pour créer une base de données, vous devez utiliser une connexion d’accès membre d’un des rôles SQL Server suivants : sysadmin ou dbcreator. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').
    Mot de passe SQL | Taper le mot de passe d’ouverture de session SQL Server. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').

    La figure suivante présente la boîte de dialogue Nouvelle base de données.

    Boîte de dialogue Nouvelle base de données

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  12. Cliquez sur Créer la base de données pour créer la nouvelle base de données.

    Les autres banques de données (telles que catalogues et transactions) seront stockées dans une autre base de données sur le cluster serveur de base de données. Vous devrez également créer ces bases de données.

    Les bases de données sont créées sur le cluster serveur de base de données.

  13. Quand vous êtes renvoyé à la boîte de dialogue Chaînes de connexion de base de données, sélectionnez Data Warehouse global, puis cliquez sur Modifier.

  14. Dans la boîte de dialogue Propriétés des liaisons de données, sur l’onglet Connexion, dans la zone Sélectionnez ou entrez un nom de serveur, tapez le nom du cluster serveur de base de données. Dans la zone Sélectionnez la base de données sur le serveur, sélectionnez le nom que vous avez attribué à la base de données de Data Warehouse que vous avez créée, puis cliquez sur OK.

    Remarque

    • Assurez-vous que la case à cocher Autoriser l’enregistrement du mot de passe soit sélectionnée. Si ce n’est pas le cas, le Gestionnaire de package de site ne créera pas la base de données.

    La figure suivante présente la boîte de dialogue Propriétés des liaisons de données.

    Boîte de dialogue Propriétés des liaisons de données, Data Warehouse

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  15. Quand vous êtes renvoyé à la boîte de dialogue Chaînes de connexion de base de données, sélectionnez toutes les autres bases de données, puis cliquez sur Modifier.

  16. Dans la boîte de dialogue Propriétés des liaisons de données, sur l’onglet Connexion, dans la zone Sélectionnez ou entrez un nom de serveur, tapez le nom du cluster serveur de base de données. Dans la zone Sélectionnez la base de données sur le serveur, sélectionnez le nom que vous avez attribué à l’autre base de données que vous avez créée, puis cliquez sur OK.

    Remarque

    • Assurez-vous que la case à cocher Autoriser l’enregistrement du mot de passe soit sélectionnée. Si ce n’est pas le cas, le Gestionnaire de package de site ne créera pas la base de données.

    La figure suivante montre comment s’affiche la boîte de dialogue Chaînes de connexion de bases de données après que vous l’ayez modifiée.

    Chaînes de connexion de base de données 2, exemple A

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  17. Cliquez sur Suivant.

  18. Dans la boîte de dialogue Sélectionner des applications, vérifiez que les applications à décompresser sont sélectionnées, puis cliquez sur Suivant. La figure suivante présente la boîte de dialogue Sélectionner des applications.
    Boîte de dialogue Sélectionner des applications

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  19. Dans la boîte de dialogue Sélectionner des sites Web IIS et des répertoires virtuels, vérifiez que le chemin IIS et du site Web IIS est correct pour chaque application. Pour modifier le site Web IIS pour une application, sélectionnez l’application dans la liste et choisissez le site Web IIS dans la liste déroulante.

    Pour modifier le nom du répertoire virtuel pour une application, sélectionnez l’application dans la liste. Dans la zone Répertoire virtuel IIS, tapez le nom souhaité.

    Remarques

    • Pour éviter les erreurs IIS, vous devez éviter d’inclure des caractères spéciaux (tels que #, @, % et ') dans vos noms de répertoires virtuels IIS.

    • Le Gestionnaire de package de site ne prend pas en charge la décompression d’un site sur un ordinateur distant.

    • Le gestionnaire de package de site décompressera chaque application sous le répertoire de base de son site Web IIS correspondant. À l’intérieur du répertoire de base, le Gestionnaire de package de site crée un sous-dossier utilisant le nom de répertoire virtuel IIS de l’application.

    La figure suivante présente la boîte de dialogue Sélectionner des sites Web IIS et des répertoires virtuels.

    Boîte de dialogue Sélectionner des sites Web IIS et des répertoires virtuels

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  20. Cliquez sur Suivant.

  21. Si la boîte de dialogue Data Warehouse apparaît, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom que vous voulez attribuer à la ressource Data Warehouse globale.
    Serveur | Taper le nom de l’ordinateur SQL Analysis (OLAP).
    Base de données | Taper le nom de la base de données Analysis (OLAP) à utiliser.

  22. Cliquez sur Suivant.

  23. Si la première boîte de dialogue Système de profil apparaît, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Définition de schéma de profil | Spécifier la définition de schéma de profil à importer.
    Définition des entrées du glossaire de site | Spécifier la définition des entrées du glossaire de site à importer.
    Définition d’expression | Spécifier la définition d’expression à importer.

  24. Cliquez sur Suivant.

  25. Si la deuxième boîte de dialogue Système de profil apparaît, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Chaîne de connexion du système de profil | Spécifier les fichiers à importer dans la banque de données OLEDB. Cliquez sur Modifier pour spécifier une autre base de données.
    Scripts de définition de schéma (*.sql, *.vbs) | Spécifier les scripts de définition de schéma à importer.
    Scripts de remplissage des données (*.sql) | Spécifier les scripts de remplissage des données à importer.

  26. Cliquez sur Suivant.

  27. Dans la boîte de dialogue Décompression terminée, consultez la liste des bases de données SQL et applications IIS qui ont été créées. Pour consulter la liste des événements contenus dans le fichier journal du Gestionnaire de package de site, cliquez sur Afficher le fichier journal.

  28. Pour fermer le Gestionnaire de package de site, cliquez sur Terminer.

Remarques

  • Immédiatement après avoir installé votre site, et chaque fois que vous apportez des modifications de configuration majeures à votre déploiement Commerce Server, vous devez sauvegarder votre base de données d’administration sous un nom différent. Vous pouvez, si nécessaire, utiliser cette sauvegarde pour annuler tout changement effectué ultérieurement.

  • N’exécutez pas plus d’une instance du Gestionnaire de package de site à la fois.

Voir aussi

Utilisation de scripts avec le Gestionnaire de package de site


Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs

Le Gestionnaire de package de site Commerce Server vous permet de déployer des ressources de site à partir de n’importe quel ordinateur Commerce Server vers la base de données d’administration. Si vous possédez trois ordinateurs par exemple, vous pouvez installer Commerce Server sur votre serveur Web, et déployer vos bases de données Commerce Server sur un ordinateur différent. Vous pouvez les configurer comme suit :

  • Ordinateur A. Utilisé pour la base de données d’administration et les outils d’administration. Cet ordinateur sert à gérer Commerce Server.

  • Ordinateur B. Utilisé pour Data Warehouse et d’autres bases de données.

  • Ordinateur C. Utilisé comme serveur Web, il contient les pages ASP de votre application.

Dans ces instructions, il est supposé que vous avez installé Microsoft Windows 2000 Server sur les trois ordinateurs, ainsi que Microsoft SQL Server 7.0 ou SQL Server 2000 sur les ordinateurs A et B. Si cela n’est pas le cas, consultez Installation de Commerce Server pour connaître les instructions à suivre.

Étape 1 : Installer Commerce Server sur l’ordinateur A

Étape 2 : Installer Commerce Server sur l’ordinateur B, en sélectionnant seulement Data Warehouse

Étape 3 : Installer un serveur Web Commerce Server sur l’ordinateur C

Étape 4 : Décompresser votre site à partir de l’ordinateur A

Étape 5 : Ajouter le serveur Web Commerce Server (ordinateur C) à votre application

Étape 1 : Installer Commerce Server sur l’ordinateur A

  1. Insérez le CD-ROM de Commerce Server 2000 dans son lecteur, puis exécutez le programme d’installation de Commerce Server 2000. Acceptez le contrat de licence, tapez vos informations client, et acceptez le dossier de destination par défaut.

  2. Dans la boîte de dialogue Type d’installation, sélectionnez Personnalisée, puis cliquez sur Suivant.

  3. Dans la boîte de dialogue Installation personnalisée, sous le dossier Objets d’exécution, vérifiez que l’option Analyse et Data Warehouse n’est pas activée (la case à cocher doit contenir un X, ce qui indique que vous ne l’avez pas activée). Activez les autres fonctionnalités à installer, telles que Predictor. La figure suivante présente la boîte de dialogue Installation personnalisée.
    Custom Setup dialog box

    Click the illustration to enlarge or reduce.

  4. Dans la boîte de dialogue Configuration de la base de données d’administration, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Ordinateur SQL Server | Taper le nom de l’ordinateur pour le serveur de base de données (ordinateur B).
    Nom d’utilisateur SQL Server | Taper le mot de passe d’ouverture de session SQL Server pour cet ordinateur. Pour créer une base de données, vous devez utiliser une connexion d’accès membre d’un des rôles SQL Server suivants : sysadmin ou dbcreator. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').
    Mot de passe de connexion SQL Server | Taper le mot de passe SQL Server pour cet ordinateur. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').

  5. Cliquez sur Suivant.

  6. Dans la boîte de dialogue Comptes de services, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’utilisateur | Taper le nom d’utilisateur Windows du compte sous lequel les services Commerce Server s’exécuteront sur cet ordinateur.
    Mot de passe | Taper le mot de passe du compte Windows.
    Domaine | Taper le domaine du compte Windows.

  7. Cliquez sur Suivant.

  8. Dans la boîte de dialogue Prêt pour l’installation, cliquez sur Installer.

    Le programme d’installation de Commerce Server installe les fonctionnalités spécifiées sur l’ordinateur A, y compris les outils d’administration. Cet ordinateur vous permet de gérer votre installation de Commerce Server.

  9. Pour quitter le programme d’installation, cliquez sur Terminer.

Étape 2 : Installer Commerce Server sur l’ordinateur B, en sélectionnant uniquement Data Warehouse.

  1. Insérez le CD-ROM de Commerce Server 2000 dans son lecteur, puis exécutez le programme d’installation de Commerce Server 2000. Acceptez le contrat de licence, tapez vos informations client, et acceptez le dossier de destination par défaut.

  2. Dans la boîte de dialogue Type d’installation, sélectionnez Personnalisée, puis cliquez sur Suivant.

  3. Dans la boîte de dialogue Installation personnalisée, sous le dossier Objets d’exécution, activez l’option Analyse et Data Warehouse, et désactivez toutes les autres options. Cliquez sur Suivant. La figure suivante présente la boîte de dialogue Installation personnalisée.
    Boîte de dialogue Installation personnalisée

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  4. Dans la boîte de dialogue Configuration de la base de données d’administration, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Ordinateur SQL Server | Taper le nom de l’ordinateur pour le serveur de base de données (ordinateur B).
    Nom d’utilisateur SQL Server | Taper le mot de passe d’ouverture de session SQL Server pour cet ordinateur. Pour créer une base de données, vous devez utiliser une connexion d’accès membre d’un des rôles SQL Server suivants : sysadmin ou dbcreator. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').
    Mot de passe de connexion SQL Server | Taper le mot de passe SQL Server pour cet ordinateur. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').

  5. Si vous installez le service de publipostage, dans la boîte de dialogue Configuration de la base de données du service de publipostage, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Ordinateur SQL Server | Accepter l’ordinateur par défaut (ordinateur B).
    Nom d’utilisateur SQL Server | Taper le mot de passe d’ouverture de session SQL Server pour cet ordinateur. Pour créer une base de données, vous devez utiliser une connexion d’accès membre d’un des rôles SQL Server suivants : sysadmin ou dbcreator. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').
    Mot de passe de connexion SQL Server | Taper le mot de passe de connexion SQL Server pour ce serveur. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').

  6. Dans la boîte de dialogue Comptes de services, tapez le nom d’utilisateur Windows et le mot de passe du compte sous lequel les services Commerce Server s’exécuteront sur cet ordinateur, puis cliquez sur Suivant.

  7. Dans la boîte de dialogue Prêt pour l’installation, cliquez sur Installer.

    Le programme d’installation de Commerce Server installe les fonctionnalités Analyse et Data Warehouse sur l’ordinateur B.

  8. Pour quitter le programme d’installation, cliquez sur Terminer.

Étape 3 : Installer un serveur Web Commerce Server sur l’ordinateur C

  1. Insérez le CD-ROM de Commerce Server 2000 dans son lecteur, puis exécutez le Programme d’installation de Commerce Server 2000 en utilisant l’option d’installation Serveur Web. Acceptez le contrat de licence, tapez vos informations client, et acceptez le dossier de destination par défaut.

  2. Cliquez sur Suivant.

  3. Dans la boîte de dialogue Configuration de la base de données d’administration, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Ordinateur SQL Server | Taper le nom de l’ordinateur pour le serveur de base de données (ordinateur B).
    Nom d’utilisateur SQL Server | Taper le mot de passe d’ouverture de session SQL Server pour cet ordinateur. Pour créer une base de données, vous devez utiliser une connexion d’accès membre d’un des rôles SQL Server suivants : sysadmin ou dbcreator. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').
    Mot de passe de connexion SQL Server | Taper le mot de passe SQL Server pour cet ordinateur. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').

  4. Cliquez sur Suivant.

  5. Dans la boîte de dialogue Comptes de services, tapez le nom d’utilisateur Windows et le mot de passe du compte de l’utilisateur autorisé à accéder aux services Commerce Server sur cet ordinateur. Cliquez ensuite sur Suivant.

  6. Dans la boîte de dialogue Prêt pour l’installation, cliquez sur Installer.

    Le programme d’installation de Commerce Server installe les objets d’exécution et les packages de site Commerce Server sur l’ordinateur C.

  7. Pour quitter le programme d’installation, cliquez sur Terminer.

Étape 4 : Décompresser votre site à partir de l’ordinateur A

  1. Sur l’ordinateur A, cliquez sur Démarrer, pointez sur Programmes, sur Microsoft Commerce Server 2000, puis cliquez sur Commerce Server Manager.

  2. Développez Commerce Server Manager, puis cliquez sur Sites de commerce.

  3. Cliquez avec le bouton droit sur Sites de commerce, pointez sur Nouveau, puis cliquez sur Décompresser un site.

  4. Dans la boîte de dialogue Décompresser un site à partir de, naviguez vers le dossier contenant le fichier à décompresser, sélectionnez-le, puis cliquez sur Ouvrir.

    Le Gestionnaire de package de site Commerce Server est démarré.

  5. Dans la boîte de dialogue Décompresser, sélectionnez Décompression personnalisée, puis cliquez sur Suivant. La figure suivante présente la boîte de dialogue Décompresser.
    Boîte de dialogue Décompresser

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  6. Dans la boîte de dialogue Méthode de décompression, sélectionnez Créer un nouveau site, puis cliquez sur Suivant. La figure suivante présente la boîte de dialogue Méthode de décompression.
    Boîte de dialogue Méthode de décompression

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  7. Dans la zone Nom du site, le nom de site par défaut s’affiche. Modifiez le nom comme vous le souhaitez, puis cliquez sur Suivant.

    Remarques

    • Pour éviter les erreurs de décompression, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ') dans votre nom de site. Par défaut, les noms de bases de données d’un site portent comme préfixe le nom du site, et les caractères spéciaux peuvent ne pas être reconnus dans SQL Server.

    • Ne spécifiez jamais un nom de site de plus de 256 caractères simple octet ou 128 caractères double octet.

    • N’affectez pas le nom « Commerce » à votre site. Il s’agit d’un nom de base de données OLAP réservé. Si vous affectez le nom « Commerce » à votre site, cela risque d’entraîner la suppression de votre base de données OLAP la prochaine fois que vous décompresserez un site.
  8. Dans la boîte de dialogue Sélectionner les ressources, sélectionnez toutes les ressources. Si vous n’installez pas Service de publipostage Commerce Server, sélectionnez Service de publipostage, puis cliquez sur Supprimer. Si vous n’installez pas la ressource Predictor, sélectionnez Predictor, puis cliquez sur Supprimer. La figure suivante présente la boîte de dialogue Sélectionner les ressources.
    Boîte de dialogue Sélectionner des ressources, toutes

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

    Remarque

    • Vous devez installer les ressources CS Authentication et Profiles simultanément. Elles ne fonctionnent pas si elles ne sont pas installées toutes les deux.
  9. Dans la boîte de dialogue Pointeurs de ressource globale, cliquez sur Suivant.

    Cet écran vous permet d’effectuer un mappage vers les ressources globales existantes ou d’en créer de nouvelles. Vous pouvez également l’utiliser si vous avez déjà décompressé les ressources globales sur votre ordinateur et que vous souhaitez à présent décompresser des pointeurs de ressource globale dans un site utilisant ces ressources globales.

    Dans la boîte de dialogue Chaînes de connexion de bases de données, le Gestionnaire de package de site répertorie les bases de données qu’il utilisera et les serveurs sur lesquels elles se trouvent.

    Parce que vous placez Data Warehouse sur un ordinateur différent, vous devez créer la base de données. Pour créer une base de données nommée Blank_dw pour Data Warehouse sur l’ordinateur B, cliquez sur Nouvelle base de données.

  10. Dans la boîte de dialogue Nouvelle base de données, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Ordinateur SQL Server | Taper le nom de l’ordinateur SQL Server (ordinateur B).
    Nom de la base de données | Taper Blank_dw pour la base de données de Data Warehouse.
    Nom d’utilisateur SQL | Pour créer une base de données, vous devez utiliser une connexion d’accès membre d’un des rôles SQL Server suivants : sysadmin ou dbcreator. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').
    Mot de passe SQL | Taper le mot de passe d’ouverture de session SQL Server. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').

    La figure suivante présente la boîte de dialogue Nouvelle base de données.

    Boîte de dialogue Nouvelle base de données, exemple B, 1

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  11. Cliquez sur Créer la base de données. La base de données Blank_dw est créée sur l’ordinateur B.

  12. Quand vous retournez dans la boîte de dialogue Chaînes de connexion de bases de données, cliquez sur Nouvelle base de données.

    Vous placez également les autres bases de données Commerce Server sur l’ordinateur B.

  13. Pour créer une base de données séparée nommée Blank_commerce pour grouper ces bases de données, répétez l’étape 11 et tapez plutôt Blank_commerce dans la zone Nom de la base de données. La figure suivante présente la boîte de dialogue Nouvelle base de données avec la base de données Blank_commerce.
    Boîte de dialogue Nouvelle base de données, exemple B, 2

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  14. Cliquez sur Créer la base de données. La base de données Blank_commerce est créée sur l’ordinateur B.

  15. Quand vous retournez à la boîte de dialogue Chaînes de connexion de base de données, sélectionnez Data Warehouse, puis cliquez sur Modifier.

  16. Dans la boîte de dialogue Propriétés des liaisons de données, dans la zone Sélectionnez ou tapez un nom de serveur, tapez le nom de l’ordinateur B. Dans la zone Sélectionnez la base de données sur le serveur, sélectionnez le nom (Blank_dw) que vous avez attribué au Data Warehouse que vous avez créé sur l’ordinateur B, puis cliquez sur OK.

    Remarque

    • Assurez-vous que la case à cocher Autoriser l’enregistrement du mot de passe soit sélectionnée. Si ce n’est pas le cas, le Gestionnaire de package de site ne créera pas la base de données.

    La figure suivante présente la boîte de dialogue Propriétés des liaisons de données.

    Boîte de dialogue Propriétés des liaisons de données, blank_dw

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  17. Une fois retourné à la boîte de dialogue Chaînes de connexion de base de données, sélectionnez toutes les autres bases de données (excepté Data Warehouse), puis cliquez sur Modifier.

  18. Dans la boîte de dialogue Propriétés des liaisons de données, dans la zone Sélectionnez ou tapez un nom de serveur, tapez le nom de l’ordinateur B. Dans la zone Sélectionnez la base de données sur le serveur, sélectionnez le nom (blank_commerce) que vous avez attribué à la base de données, puis cliquez sur OK.

    Remarque

    • Assurez-vous que la case à cocher Autoriser l’enregistrement du mot de passe soit sélectionnée. Si ce n’est pas le cas, le Gestionnaire de package de site ne créera pas la base de données.

    La figure suivante montre comment s’affiche la boîte de dialogue Chaînes de connexion de bases de données après que vous l’ayez modifiée.

    Boîte de dialogue Chaînes de connexion de base de données, exemple B

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  19. Cliquez sur Suivant.

  20. Dans la boîte de dialogue Sélectionner des applications, vérifiez que les applications à décompresser sont sélectionnées, puis cliquez sur Suivant. La figure suivante présente la boîte de dialogue Sélectionner des applications.
    Boîte de dialogue Sélectionner des applications

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  21. Dans la boîte de dialogue Sélectionner des sites Web IIS et des répertoires virtuels, vérifiez que le chemin de site Web IIS (Internet Information Services) 5.0 et IIS est correct pour chaque application. Pour modifier le site Web IIS pour une application, sélectionnez l’application dans la liste et choisissez le site Web IIS dans la liste déroulante.

    Pour modifier le nom du répertoire virtuel pour une application, sélectionnez l’application dans la liste. Dans la zone Répertoire virtuel IIS, tapez que le nom souhaité.

    Remarques

    • Pour éviter les erreurs IIS, vous devez éviter d’inclure des caractères spéciaux (tels que #, @, % et ') dans vos noms de répertoires virtuels IIS.

    • Le Gestionnaire de package de site ne prend pas en charge la décompression d’un site sur un ordinateur distant.

    • Le gestionnaire de package de site décompressera chaque application sous le répertoire de base de son site Web IIS correspondant. À l’intérieur du répertoire de base, le Gestionnaire de package de site crée un sous-dossier utilisant le nom de répertoire virtuel IIS de l’application.

    La figure suivante présente la boîte de dialogue Sélectionner des sites Web IIS et des répertoires virtuels.

    Boîte de dialogue Sélectionner des sites Web IIS et des répertoires virtuels

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  22. Dans la boîte de dialogue Data Warehouse, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom que vous voulez attribuer à la ressource Data Warehouse globale.
    Serveur | Taper le nom de l’ordinateur SQL Analysis (OLAP).
    Base de données | Taper le nom de la base de données Analysis (OLAP) à utiliser.
  23. Cliquez sur Suivant.

  24. Si la première boîte de dialogue Système de profil apparaît, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Définition de schéma de profil | Spécifier la définition de schéma de profil à importer.
    Définition des entrées du glossaire de site | Spécifier la définition des entrées du glossaire de site à importer.
    Définition d’expression | Spécifier la définition d’expression à importer.

  25. Cliquez sur Suivant.

  26. Si la deuxième boîte de dialogue Système de profil apparaît, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Chaîne de connexion du système de profil | Spécifier les fichiers à importer dans la banque de données OLEDB. Cliquez sur Modifier pour spécifier une autre base de données.
    Scripts de définition de schéma (*.sql, *.vbs) | Spécifier les scripts de définition de schéma à importer.
    Scripts de remplissage des données (*.sql) | Spécifier les scripts de remplissage des données à importer.

  27. Cliquez sur Suivant.

  28. Dans la boîte de dialogue Décompression terminée, consultez la liste des bases de données SQL et applications IIS qui ont été créées. Pour consulter la liste des événements contenus dans le fichier journal du Gestionnaire de package de site, cliquez sur Afficher le fichier journal.

  29. Pour fermer le Gestionnaire de package de site, cliquez sur Terminer.

Étape 5 : Ajouter le serveur Web Commerce Server (ordinateur C) à votre application

  1. Sur l’ordinateur C, le serveur Web que vous souhaitez ajouter à l’application, développez Commerce Server Manager, puis Sites de commerce, puis cliquez sur le site que vous souhaitez administrer.

  2. Développez Applications, puis cliquez sur le nom de l’application à laquelle vous voulez ajouter le serveur Web. Cliquez avec le bouton droit sur ce nom, pointez sur Nouveau, puis cliquez sur Ajouter un serveur Web.

    La boîte de dialogue Ouvrir, contenant une listes des fichiers de package existant, apparaît.

  3. Dans la boîte de dialogue Ouvrir, sélectionnez le fichier de package contenant les fichiers de serveur Web que vous voulez ajouter au serveur Web, puis cliquez sur Ouvrir.

    Le Gestionnaire de package de site Commerce Server est démarré.

  4. La boîte de dialogue Sélectionner des sites Web IIS et des répertoires virtuels affiche le nom du site Web IIS où sera installée l’application ainsi que le répertoire virtuel IIS pour chaque application Commerce. Ces informations sont en lecture seule ; le site Web IIS et le répertoire virtuel doivent être identiques sur tous les serveurs Web de l’application. Cliquez sur Suivant.

    Le Gestionnaire de package de site ajoute vos fichiers au serveur Web, puis ajoute l’objet serveur Web Commerce à l’application sélectionnée. Lorsque vous ouvrez Commerce Server Manager, l’objet serveur Web Commerce s’affiche sous l’application.

    Remarque

    • Le Gestionnaire de package de site ne prend pas en charge la décompression d’un serveur Web sur un ordinateur distant.
  5. Dans la boîte de dialogue Décompression terminée, consultez le fichier journal, puis cliquez sur Fermer.

Après l’ajout d’un serveur Web à une application, l’objet serveur Web Commerce s’affiche sous le noeud d’application dans Commerce Server Manager. L’objet serveur Web Commerce contient les propriétés nécessaires à la ressource Data Warehouse pour importer les fichiers journaux : nom du serveur, adresse IP (Internet Protocol), chemin du fichier journal et durée du fichier journal. Ces propriétés sont remplies automatiquement à partir d’IIS lorsque vous ajoutez un objet serveur Web Commerce à une application. Pour obtenir des instructions sur la configuration des propriétés de serveur Web, consultez Configuration d’un serveur Web.

Remarques

  • Immédiatement après avoir installé votre site, et chaque fois que vous apportez des modifications de configuration importantes à votre déploiement Commerce Server, vous devez sauvegarder votre base de données d’administration sous un nom différent. Vous pouvez utiliser cette sauvegarde pour annuler tout changement effectué ultérieurement.

  • N’exécutez pas plus d’une instance du Gestionnaire de package de site à la fois.

Voir aussi

Configuration d’un serveur Web


Sécurisation de votre site

Une fois la décompression de votre site terminée, vous devez le sécuriser pour interdire tout accès non autorisé à vos fichiers Commerce Server et d’application.

Cette section contient les rubriques suivantes :

  • Limitation de l’accès à votre site. Explique comment utiliser des autorisations NTFS pour limiter l’accès aux fichiers de site.

  • Limitation de l’accès aux services de Commerce Server. Explique comment accorder l’accès aux services de Commerce Server pour des comptes Windows spécifiques.

  • Limitation de l’accès aux modules de Business Desk. Explique comment empêcher des utilisateurs spécifiques d’accéder à des modules Commerce Server Business Desk particuliers.

  • Limitation de l’accès à la base de données d’administration. Explique comment limiter l’accès à la base de données d’administration à l’aide de l’éditeur de Registre Windows.

  • Ouverture d’accès aux ressources de Commerce Server. Explique comment fournir l’accès à la base de données SQL Server qui correspond aux ressources Commerce Server.

  • Sécurisation des fichiers journaux. Décrit comment déplacer vos fichiers journaux de vos serveurs Web à un emplacement plus sécurisé.

  • Activation uniquement de la version la plus sécurisée de l’Authentification intégrée de Windows. Décrit comment configurer votre serveur Web afin d’utiliser la version la plus puissante d’authentification intégrée de Windows.

  • Utilisation du compte d’administration SQL sa. Explique des recommandations pour ne pas utiliser la connexion « sa » que SQL Server crée par défaut.

  • Différenciation de l’accès aux ressources. Explique les privilèges d’accès pour des utilisateurs de site Commerce différents.

  • Modification du mot de passe de Data Warehouse. Explique comment modifier le mot de passe de Data Warehouse.

Voir aussi

Planification de la sécurité

Liste de contrôle de la sécurité Commerce Server


Limitation de l'accès à votre site

Limitation de l’accès à votre site

Le Gestionnaire de package de site Commerce Server n’affecte pas les listes de contrôle d’accès (ACL) Windows. Après avoir décompressé un site, vous devez verrouiller certains fichiers et dossiers de votre site Commerce Server en modifiant leurs autorisations. Vous pouvez également limiter l’accès aux fichiers en définissant des autorisations de serveur Web. Pour plus d’informations, consultez Définition des autorisations Web Server.

Cette rubrique explique comment utiliser des autorisations NTFS pour limiter l’accès aux fichiers de site. Quand vous limitez l’accès aux fichiers et dossiers de votre site, tenez compte des points suivants :

  • Un utilisateur de Business Desk doit avoir accès au fichier journal qui se trouve dans le dossier Profils avant d’enregistrer des changements à une définition de profil. Un chef d’entreprise doit également avoir accès au fichier journal qui se trouve dans le dossier Profils pour pouvoir enregistrer tout changement effectué dans le module Définitions de profil. Les autorisations de serveur Web IIS ont l’accès en lecture désactivé par défaut quand les sites solutions Commerce Server sont utilisés, mais vous pouvez augmenter la sécurité en refusant également l’accès en lecture sur les autorisations NTFS de ce dossier.

  • Si vous utilisez la consignation enregistrement pour déboguer un pipeline, n’oubliez pas que les informations à caractère sensible apparaissent en texte clair dans le fichier journal. Prenez soin de protéger contre l’accès en lecture le dossier Pipeline\Logfiles, qui contient ces fichiers journaux de pipeline.

  • Vous devez utiliser les restrictions d’accès d’adresse IP pour limiter les autorisations sur Bdrefresh.asp et RefreshApp.asp afin que les utilisateurs non autorisés ne puissent exécuter ces scripts. Par défaut, Bdrefresh.asp et Refreshapp.asp sont paramétrés pour un accès anonyme, ce qui est obligatoire pour que les utilisateurs de Business Desk publient les modifications vers le site Web. Pour sécuriser ces fichiers, accordez l’accès à des utilisateurs Business Desk spécifiques en utilisant les restrictions d’accès d’adresse IP dans ISS (Internet Information Services) 5.0. Pour obtenir des instructions, consultez Pour définir des restrictions d’accès d’adresse IP.

    Le script Bdrefresh.asp efface le cache Business Desk. Le script RefreshApp.asp efface le cache Profiles. L’effacement répété de l’un ou l’autre de ces caches peut conduire à un refus de service pour les utilisateurs. Ces fichiers se trouvent dans le répertoire racine d’un site solution décompressé.

    D’autres fichiers similaires sont inclus avec les sites solutions Commerce Server. Pour plus d’informations sur les autres fichiers à protéger, consultez le Commerce Server Solution Sites (en anglais).

  • Si, lorsque vous décompressez une application non-Business Desk, vous utilisez un fichier script unpack.vbs que vous avez créé, veillez à supprimer ou sécuriser le fichier immédiatement après la décompression. Le fichier existe dans le répertoire racine, et les utilisateurs anonymes peuvent y accéder. L’utilisation non autorisée de ce script pourrait conduire au refus de service ou à l’altération des paramètres de site. La présence de ce fichier n’est pas nécessaire ; toutefois, si vous recompressez le site.

    Dans les sites solutions Commerce Server, le fichier unpack.vbs est sécurisé par défaut.

  • Vous pouvez définir des autorisations de fichier et de dossier uniquement sur les unités formatées pour utiliser NTFS.

  • Pour modifier les autorisations, vous devez être administrateur système ou avoir été autorisé à le faire par l’administrateur système.

  • Les groupes ou utilisateurs ayant reçu le Contrôle total d’un dossier peuvent supprimer des fichiers et des sous-dossiers à l’intérieur de ce dossier quelles que soient les autorisations protégeant les fichiers et les sous-dossiers.

  • Si les cases à cocher sous Autorisations sont ombrées ou si le bouton Supprimer n’est pas disponible, alors le fichier ou le dossier a hérité des autorisations du dossier parent.

Pour définir, afficher, modifier ou supprimer des autorisations de fichier et de dossier

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Accessoires, puis cliquez sur Explorateur Windows.

  2. Dans la fenêtre de l’Explorateur Windows, accédez au fichier ou au dossier souhaité, cliquez sur Propriétés, puis sur l’onglet Sécurité.

  3. Sur l’onglet Sécurité, effectuez l’une des opérations suivantes :
    • Pour modifier les autorisations d’un groupe ou d’un utilisateur existant, dans la zone Nom, sélectionnez le nom du groupe ou de l’utilisateur. Dans zone Autorisations, sélectionnez Autoriser ou Refuser pour chaque autorisation que vous voulez modifier.

    • Pour supprimer le groupe ou l’utilisateur de la liste des autorisations, dans la zone Nom, sélectionnez le groupe ou l’utilisateur, puis cliquez sur Supprimer.

    • Pour définir des autorisations pour un nouveau groupe ou un nouvel utilisateur, cliquez sur Ajouter. Dans la boîte de dialogue Sélectionner les utilisateurs, les ordinateurs ou les groupes, tapez le nom du groupe ou de l’utilisateur souhaité pour définir des autorisations pour l’utilisation du format nom_domaine\nom_utilisateur, puis cliquez sur OK.
  4. Pour fermer la boîte de dialogue Propriétés, cliquez sur OK.

Pour définir des restrictions d’accès d’adresse IP

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Outils d’administration, puis cliquez sur Gestionnaire des services Internet.

  2. Dans Internet Information Services, accédez au fichier Bdrefresh.asp file.

  3. Cliquez avec le bouton droit sur Bdrefresh.asp, puis cliquez sur Propriétés.

  4. Sur l’onglet Sécurité de fichier, dans la section Restrictions par adresse IP et nom de domaine, cliquez sur Modifier.

  5. Dans la boîte de dialogue Restrictions par adresse IP et nom de domaine, cliquez sur Ajouter pour ajouter les ordinateurs auxquels vous voulez accorder l’accès à Bdresfresh.asp, cliquez sur Refusé, puis sur OK.

  6. Accédez à Refreshapp.asp, cliquez avec le bouton droit sur Refreshapp.asp, puis sur Propriétés.

  7. Répétez les étapes 4 et 5 pour sécuriser Refreshapp.asp.


Limitation de l'accès aux services de Commerce Server

Limitation de l’accès aux services de Commerce Server

Pendant l’installation de Commerce Server, dans la boîte de dialogue Compte services, vous spécifiez le nom d’utilisateur Windows et le mot de passe pour les services Commerce Server suivants : Gestionnaire de listes, service de publipostage et Predictor. Le programme d’installation accorde automatiquement à ces comptes Windows le droit Ouvrir une session en tant que service. La figure suivante présente la boîte de dialogue Compte de services.

Boîte de dialogue Comptes de services

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Dans la même boîte de dialogue, vous spécifiez un compte sous lequel l’Enregistrement des événements sera effectué. Ce dernier compte est utilisé dans le package Commerce Event Logging COM+ qui est créé par le programme d’installation.

Veillez à spécifier le compte approprié pour chaque service. Pour le Gestionnaire de listes, vos utilisateurs Commerce Server Business Desk doivent pouvoir lire les dossiers à partir desquels ils importent les listes et écrire sur les dossiers vers lesquels ils exportent des listes. Le compte de service Gestionnaire de listes doit posséder des autorisations NTFS appropriées sur les dossiers à partir desquels les utilisateurs importeront ou exporteront les listes.

Également, le programme d’installation ne nous permet pas de configurer ces services pour utiliser le Compte système local. Bien qu’il soit possible de le faire manuellement après l’installation, ce n’est pas conseillé car vous pourriez octroyer aux services plus d’autorisations que nécessaire.


Limitation de l'accès aux modules de Business Desk

Limitation de l’accès aux modules de Business Desk

Vous pouvez empêcher des utilisateurs spécifiques d’accéder à des modules Commerce Server Business Desk particuliers. Pour cela, vous définissez des entrées de contrôle d’accès (ACE) sur les fichiers ASP Business Desk. Chaque module Business Desk possède un fichier ASP principal où les ACE sont recherchées avant qu’il ne soit ajouté au volet de navigation de Business Desk. Si l’utilisateur en cours exécutant Business Desk ne dispose pas d’autorisation Lecture sur le fichier ASP principal de ce module, le module ne sera pas affiché dans le volet de navigation de l’utilisateur.

Pour limiter l’accès aux modules de Business Desk

  1. Dans l’Explorateur Windows, accédez au dossier qui contient vos fichiers d’application Business Desk.

    Il s’agit du dossier où réside votre site Web IIS. Par défaut, ce dossier réside dans le dossier Inetpub\wwwroot.

  2. Cliquez sur le dossier contenant le module dont vous voulez limiter l’accès.

  3. En suivant les informations présentées dans le tableau suivant, cliquez avec le bouton droit sur le nom des fichiers dont vous voulez limiter l’accès. Cliquez ensuite sur Propriétés.

  4. Cliquez sur l’onglet Sécurité.

  5. Sur l’onglet Sécurité, vous pouvez gérer les ACE contenues dans la liste de contrôle d’accès (ACL) de ce fichier.

    Le tableau suivant montre les fichiers sur lesquels vous pouvez définir des ACE pour chaque module Business Desk.

    Pour contrôler l’accès à cette catégorie/module | Définissez une ACE sur ce fichier ASP
    Analyse/rapports | Analysis\Analysis_reports.asp
    Analyse/rapports achevés | Analysis\Analysis report viewer.asp
    Analyse/>Identification de segments | Segviewer\Modellist.asp
    Campagnes/Gestionnaire de campagnes | Marketing\Cmanager.asp
    Campagnes/Gestionnaire de listes | Marketing\Listmanager.asp
    Campagnes marketing/Expressions de la campagne marketing | Marketing\Targetexpr.asp
    Campagnes marketing/Groupe cible | Marketing\Target_group.asp
    Campagnes marketing/Tables de références | Marketing\Reftable.asp
    Campagnes marketing/Publier les campagnes marketing | Productionrefresh\refresh.asp
    Catalogues/Définition de catalogue | Catalogs\Designer\List_categorydefinitions.asp
    Catalogues/Éditeur de catalogue | Catalogs\Editor\List_catalogs.asp
    Catalogues/Groupes de catalogues | Catalogsets\Catalogsets_list.asp
    Commandes/Gestionnaire de panier | Orders\Basket_list.asp
    Commandes/Codes de données | Application\Datacodes_list.asp
    Commandes/Statut de la commande | Orders\Orderstatus_list.asp
    Commandes/Publier les transactions | Productionrefresh\refresh.asp
    Commandes/Modes de livraison | Shipping\Shipping_list.asp
    Commandes/Taux des taxes | Tax\Regionaltax.asp
    Utilisateurs/Utilisateurs | Users\Registered.asp
    Utilisateurs/Organisations | Organizations\Orgs.asp
    Utilisateurs/Définitions de profil | Profiles\Profileselector.asp
    Utilisateurs/Éditeur d’entrées du glossaire du site | Profiles\Profileeditor.asp
    Utilisateurs/Publier les profils | Profiles\Refreshprofilesvcall.asp

Remarques

  • Si un utilisateur individuel et le groupe Utilisateurs authentifiés ont accès à un module Commerce Server Business Desk, et que vous retirez l’autorisation à l’utilisateur individuel, redémarrez l’ordinateur client afin de redessiner la barre de navigation, afin que les modules que l’utilisateur est autorisé à utiliser soient rafraîchis dans la barre de navigation.

  • Si vous incluez une ACE pour le compte d’administrateur, vous devez également accorder des autorisations au groupe Tout le monde. L’ensemble exact des autorisations n’est pas significatif, mais le groupe Tout le monde doit figurer dans la liste d’utilisateurs et de groupes. Si le groupe Tout le monde ne dispose pas d’autorisations pour un module Business Desk, un administrateur ne pourra pas accéder à ce module.

  • Si vous sécurisez l’un des modules suivants, tous les trois modules sont sécurisés par défaut : Publier les profils, Publier les campagnes marketing et Publier les transactions.


Limitation de l'accès à la base de données d'administration

Limitation de l’accès à la base de données d’administration

Il est important de verrouiller le serveur qui héberge la base de données d’administration pour votre site. Quand vous exécutez le programme d’installation de Commerce Server, vous donnez aux utilisateurs de cet ordinateur un contrôle total sur la base de données d’administration. Bien que le mot de passe SQL pour la connexion à la base de données d’administration soit crypté dans le Registre Windows, les utilisateurs peuvent y accéder en utilisant un script qui accède à l’un de ces objets de programmation : SiteConfigReadOnly, SiteConfig ou GlobalConfig. Assurez-vous que les utilisateurs ne puissent avoir accès à l’ordinateur ou y exécuter des scripts une fois le programme d’installation achevé. Désactivez le compte Invité et interdisez l’accès à tous les utilisateurs ne disposant pas de privilèges d’administration.

Vous pouvez restreindre l’utilisation des objets SiteConfig et GlobalConfig en modifiant les listes de contrôle d’accès (ACL) sur les clés de registre pour ces classes d’objet. Pour restreindre l’accès à ces objets, modifiez les autorisations à l’aide de l’éditeur de Registre Windows.

Pour modifier les autorisations sur un objet administratif

  1. Cliquez sur Démarrer, puis sur Exécuter.

  2. Dans la boîte de dialogue Exécuter, dans la zone Ouvrir, tapez regedt32.

  3. Cliquez sur HKEY_LOCAL_MACHINE.

  4. Sur le menu Affichage, cliquez sur Rechercher une clé.

  5. Dans la boîte de dialogue Recherche, dans la zone Rechercher, tapez la clé appropriée, comme l’illustre le tableau suivant.
    Pour trouver la clé pour cet objet | Tapez cela
    SiteConfig | 31B031AE-8877-4973-BC58-FEE0EF8CE07B
    GlobalConfig | CB438FDD-81EC-45FF-9DBB-9F9FBBF717AF
  6. Désactivez la case à cocher Mot entier, puis cliquez sur Suivant.

    Une liste de clés s’affiche. La clé que vous avez demandée sera marquée comme sélectionnée avec une fine bordure noire. Vous devrez faire défiler la liste si vous ne voyez pas la clé sélectionnée.

  7. Cliquez sur le noeud de la clé pour laquelle vous avez effectué la recherche.

  8. Dans le menu Sécurité, cliquez sur Autorisations.

  9. Dans la boîte de dialogue Autorisations, définissez les autorisations appropriées, en fonction de vos besoins. Limitez les autorisations Lecture aux comptes qui ont besoin de modifier la base de données d’administration.

Remarque

  • L’objet SiteConfigReadOnly doit être accessible par tous les comptes d’utilisateur qui accéderont aux applications Commerce Server. Si vous souhaitez autoriser l’accès anonyme, l’objet doit être accessible au compte anonyme, nommé IUSR_<nom_ordinateur>. La clé pour l’objet SiteConfigReadOnly est D1AA04A4-B00D-4D30-88AA-E3070DAE8040.


Ouverture d'accès aux ressources de Commerce Server

Ouverture d’accès aux ressources de Commerce Server

Pour que les utilisateurs ou les administrateurs de Commerce Server Business Desk accèdent aux ressources, telles que Catalogue de produits, ils doivent posséder des autorisations suffisantes pour accéder à la base de données SQL Server qui correspond à la ressource. Un utilisateur doit posséder un nom d’utilisateur SQL Server lié à un utilisateur SQL Server qui a le rôle de base de données db_owner. Ou, pour plus de granularité, vous voulez affecter l’utilisateur aux rôles db_ddladmin, db_datareader et db_datawriter.

Pour vérifier les rôles SQL Server attribués à un nom d’utilisateur

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server, puis cliquez sur Enterprise Manager.

  2. Dans SQL Server Enterprise Manager, développez Microsoft SQL Servers, SQL Server Group, puis le nom du serveur de base de données contenant la base de ressources souhaitée.

  3. Développez Bases de données, développez la base de données correspondant à la ressource souhaitée, puis cliquez sur Utilisateurs.

  4. Dans le volet de droite, double-cliquez sur le nom d’utilisateur.

  5. Dans la boîte de dialogue Propriétés d’utilisateur de base de données, assurez-vous que la case db_owner est sélectionnée, puis cliquez sur OK.

    Ou assurez-vous que les cases db_ddladmin, db_datareader et db_datawriter sont sélectionnées, puis cliquez sur OK.

Remarque

  • Vous pouvez également modifier ces paramètres en modifiant les propriétés de la connexion dans SQL Server Enterprise Manager. Développez le noeud du serveur de base de données souhaité, développez Sécurité, puis cliquez sur Connexions pour afficher la liste des noms d’utilisateur. Double-cliquez sur un nom pour modifier ses rôles de base de données.

Si le nom d’utilisateur que vous avez spécifié ne figure pas dans la liste des utilisateurs de base de données, vous pouvez ajouter un nouvel utilisateur SQL Server.

Pour ajouter un nouvel utilisateur SQL Server à un rôle de base de données SQL Server

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server, puis cliquez sur Enterprise Manager.

  2. Dans SQL Server Enterprise Manager, développez Microsoft SQL Servers, SQL Server Group et le nom du serveur de base de données contenant la base de ressources souhaitée.

  3. Développez Bases de données, puis la base de données correspondant à la ressource souhaitée, cliquez avec le bouton droit sur Utilisateurs, puis cliquez sur Nouvel utilisateur de base de données.

  4. Dans la boîte de dialogue Propriétés d’utilisateur de base de données, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de connexion | Sélectionner ou taper le nom de connexion utilisé pour accéder à la base de données.
    Nom d’utilisateur | Taper le nom de d’utilisateur SQL Server que vous voulez attribuer à ce nom de connexion. Le nom d’utilisateur attribue les nouvelles autorisations utilisateur aux objets de la base de données.
    Membre du rôle de base de données | Sélectionner les rôles que le nouvel utilisateur doit avoir. Sélectionner la case db_owner pour donner au nouvel utilisateur l’accès à la ressource. Ou, sélectionner les cases db_ddladmin, db_datareader et db_datawriter.

  5. Cliquez sur OK.


Sécurisation des fichiers journaux

Il est conseillé de déplacer vos fichiers journaux de vos serveurs Web vers un emplacement plus sécurisé. Quand vous déplacez ces fichiers, prenez le maximum de précautions. Utilisez des lignes réseau séparées qui s’exécutent directement à partir de votre environnement de transfert vers votre environnement de production. Cette ligne séparée constitue un excellent moyen de mettre à jour le contenu et de déplacer des fichiers journaux vers des serveurs sécurisés. Une autre moyen de déplacer des fichiers journaux sans risque est à travers SSL (Secure Sockets Layer) via HTTP ou FTP (File Transfer Protocol).

Si vous utilisez la consignation enregistrement de pipeline pour déboguer un pipeline, n’oubliez pas que les informations à caractère sensible apparaissent en texte clair dans le fichier journal. Veillez à sécuriser le dossier contenant ces fichiers journaux de pipeline (par défaut, le dossier \Pipeline\Logfiles dans l’application).


Activation uniquement de la version la plus sécurisée de l'Authentification intégrée de Windows

Activation uniquement de la version la plus sécurisée de l’Authentification intégrée de Windows

Si vous utilisez L’authentification intégrée de Windows et que les ordinateurs clients se connectant à votre serveur Web utilisent Microsoft Windows 2000, ou Microsoft Windows NT 4.0 Service Pack 3 ou version ultérieure, vous pouvez configurer votre serveur Web pour utiliser uniquement la version la plus puissante d’authentification intégrée de Windows, NTLMv2.

Vous pouvez définir une stratégie Windows pour spécifier l’utilisation exclusive de la dernière version de NTLM. Dans la Stratégie de sécurité locale de vos serveurs Web, définissez la stratégie de niveau d’authentification LAN Manager à Envoyer uniquement les réponses NTLMv2\refuser LM et NTLM pour utiliser le paramètre le plus sûr.


Utilisation de la connexion d'administration SQL sa

Utilisation de la connexion d’administration SQL sa

Il est recommandé de ne pas utiliser la connexion « sa » que SQL Server crée par défaut. Vous devez spécifier un nom d’accès administratif différent pour vos serveurs de bases de données. Si vous utilisez tout de même la connexion « sa »s, n’y associez pas un mot de passe vide. Cela augmenterait en effet les risques de sécurité pour votre site.


Différenciation de l'accès aux ressources

Différenciation de l’accès aux ressources

Les ressources Commerce Server disposent de chaînes de connexion uniques vers chaque base de données. De ce fait, vous ne pouvez pas spécifier des privilèges d’accès différents pour des utilisateurs de site Commerce différents.


Modification du mot de passe de Data Warehouse

Si vous modifiez le mot de passe pour votre ordinateur SQL Server, vous devez également modifier le mot de passe dans Data Warehouse Commerce Server et les chaînes de connexion pour toutes les ressources.

Pour modifier le mot de passe de Data Warehouse

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft Commerce Server 2000, puis cliquez sur Commerce Server Manager.

  2. Dans la console Commerce Server Manager, développez Ressources globales, cliquez avec le bouton droit sur Data Warehouse pour lequel vous voulez modifier le mot de passe, puis cliquez sur Propriétés.

  3. Dans la boîte de dialogue Propriétés de Data Warehouse 1, cliquez sur l’onglet Connexion.

  4. Sur l’onglet Connexion, dans la zone Mot de passe, tapez le nouveau mot de passe, puis cliquez sur OK.

Voir aussi

Configuration d’une ressource globale


Sauvegarde de votre site

Après avoir déployé et configuré votre site, vous devez sauvegarder tous les fichiers qu’il contient pour pouvoir le restaurer en cas de panne de serveur. Si votre site est de petite taille, la méthode la plus simple de le recompresser en utilisant le Gestionnaire de package de site Commerce Server. Le nouveau package enregistrera nombre des paramètres de configuration spécifiques à votre site actuel. Le Gestionnaire de package de site ne compresse pas les propriétés spécifiques à l’ordinateur sur lequel vous vous trouvez. Par exemple, les propriétés de serveur Web et certaines propriétés d’application définies dans Commerce Server Manager ne sont pas compressées. Pour obtenir une liste des données compressées pour chaque ressource, consultez Informations de référence sur le Gestionnaire de package de site.

Veillez à recompresser votre site chaque fois que vous modifiez sa configuration. Pour plus d’informations sur la façon de compresser un site, consultez Compression d’un site.

Si votre site est de grande taille, la création d’un fichier de package pour ce dernier peut s’avérer difficile. Dans ce cas, vous devez sauvegarder chaque composant (applications et bases de données, par exemple) en appliquant une méthode appropriée pour ce composant. Le tableau suivant répertorie les outils de sauvegarde appropriés pour chaque type de composant Commerce Server.

Pour sauvegarder ce type de composant | Utilisez ceci
Fichiers d’application et Registre Windows | Sauvegarde Windows ou Microsoft Application Center 2000
Bases de données | Sauvegarde SQL Server
Information de domaine | Réplication Active Directory entre plusieurs contrôleurs de domaine

Voir aussi

Sauvegarde et restauration de Commerce Server

Sauvegarde et restauration d’une base de données SQL


Mise à jour de votre site

Le déploiement est un processus permanent. Dès qu’il sera opérationnel, vous devrez mettre à jour le contenu et la configuration de votre site pour répondre à l’évolution des besoins. Cette section contient des informations de base sur la mise à jour de votre site. Pour des informations plus détaillées, consultez le Kit de Ressources Techniques Commerce Server 2000.

Cette section contient les rubriques suivantes :

  • Utilisation de votre environnement de test pour les mises à jour. Explique comment utiliser votre environnement de test avant la mise à jour de vos serveurs de production.

  • Ajout de serveurs Web. Explique comment installer un serveur Web Commerce.

  • Ajout de serveurs Web sans le Gestionnaire de package de site. Explique comment installer un serveur Web Commerce sans utiliser le Gestionnaire de package de site.

  • Mise à jour du contenu du site. Explique comment mettre à jour les composants Commerce Server.

  • Utilisation de SQL Server pour répliquer les bases de données. Explique comment utiliser SQL Server pour répliquer vos bases de données Commerce Server.

  • Modification des noms des serveurs. Explique comment modifier les noms de vos serveurs.


Utilisation de votre environnement de test pour les mises à jour

Avant de mettre à jour les serveurs dans votre environnement de production, déployez et testez toujours vos mises à jour dans un environnement de transfert/test. Ceci vous permettra de déployer efficacement un site entièrement testé et mis à jour.

Par exemple, supposez que vous mettez à jour votre catalogue de produits. Avant de modifier les catalogues dans votre environnement de production, mettez d’abord à jour ceux de votre environnement de transfert. Testez dans cet environnement les catalogues mis à jour. Si vous estimez que ces mises à jour sont pleinement fonctionnelles, utilisez SQL Server pour répliquer les mises à jour vers vos serveurs de production.

Voir aussi

Mise à jour du contenu du site

Utilisation de SQL Server pour répliquer les bases de données


Ajout de serveurs Web

Pour ajouter des serveurs Web à un site existant, vous devez exécuter le programme d’installation de Commerce Server et le Gestionnaire de package de site sur le nouveau serveur Web. Assurez-vous de disposer préalablement du matériel et du logiciel requis.

Pour installer un serveur Web Commerce Server

  1. Insérez le CD-ROM de Commerce Server 2000 dans son lecteur, puis exécutez le programme d’installation de Commerce Server 2000 en utilisant l’option d’installation Serveur Web.

  2. Cliquez sur Suivant.

  3. Dans la boîte de dialogue Configuration de la base de données d’administration, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Ordinateur SQL Server | Taper le nom de ce serveur.
    Nom d’utilisateur SQL Server | Taper le nom d’utilisateur SQL Server qui sera utilisé pour accéder à la base de données d’administration. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').
    Mot de passe de connexion SQL Server | Taper le mot de passe pour la connexion SQL Server. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').

  4. Cliquez sur Suivant.

  5. Dans la boîte de dialogue Comptes de services, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’utilisateur | Taper le nom d’utilisateur Windows du compte sous lequel les services Commerce Server s’exécuteront sur cet ordinateur.
    Mot de passe | Taper le mot de passe du compte Windows.
    Domaine | Taper le domaine du compte Windows.

  6. Cliquez sur Suivant.

  7. Dans la boîte de dialogue Prêt pour l’installation, cliquez sur Suivant.

    Le programme d’installation de Commerce Server installe les objets d’exécution et les packages de site Commerce Server sur ce serveur.

  8. Pour quitter le programme d’installation, cliquez sur Terminer.

Vous devez à présent décompresser les applications souhaitées sur le nouveau serveur Web. Utilisez la procédure suivante après avoir installé Commerce Server sur un nouveau serveur Web.

Pour ajouter un nouveau serveur Web à une application

  1. Sur le serveur Web physique que vous souhaitez ajouter à l’application, développez Commerce Server Manager, puis Sites de commerce, puis le site que vous souhaitez administrer.

  2. Développez Applications, cliquez avec le bouton droit sur le nom de l’application à laquelle vous souhaitez ajouter le serveur Web, pointez sur Nouveau, puis cliquez sur Ajouter un serveur Web.

  3. Dans la boîte de dialogue Ajouter un serveur Web à partir de, sélectionnez le fichier de package contenant les fichiers de serveur Web que vous voulez ajouter au serveur Web, puis cliquez sur Ouvrir.

    Le Gestionnaire de package de site Commerce Server démarre.

  4. La boîte de dialogue Sélectionner des sites Web IIS et des répertoires virtuels affiche le nom du site Web IIS (Internet Information Services) 5.0 où sera installée l’application ainsi que le répertoire virtuel IIS pour chaque application Commerce. Ces informations sont en lecture seule ; le site Web IIS et le répertoire virtuel doivent être identiques sur tous les serveurs Web de l’application. Cliquez sur Suivant.

    Le Gestionnaire de package de site ajoute vos fichiers au serveur Web, puis ajoute l’objet serveur Web Commerce à l’application sélectionnée. Lorsque vous ouvrez Commerce Server Manager, l’objet serveur Web Commerce s’affiche sous l’application.

  5. Dans la boîte de dialogue Décompression terminée, consultez le fichier journal, puis cliquez sur Fermer.

Après avoir ajouté un serveur Web à une application, l’objet serveur Web Commerce s’affiche sous le noeud d’application dans Commerce Server Manager. L’objet de serveur Web Commerce contient les propriétés nécessaires à la ressource Data Warehouse pour importer les fichiers journaux : nom du serveur, adresse IP (Internet Protocol), chemin du fichier journal et durée du fichier journal. Ces propriétés sont remplies automatiquement à partir d’IIS lorsque vous ajoutez un objet serveur Web Commerce à une application. Pour obtenir des instructions sur la configuration des propriétés de serveur Web, consultez Configuration d’un serveur Web.

Remarque

  • Pour ajouter un serveur Web à une application existante, vous devez utiliser un package qui contient une image de cette application. Par exemple, supposez que vous décompressez un site nommé ShoeStore contenant une application nommée Retail. Si vous renommez l’application Retail en Retail2, vous devez recompresser le site avec cette application renommée puis utiliser le nouveau package pour ajouter des serveurs Web à l’application.

Voir aussi

Configuration matérielle requise

Configuration logicielle requise

Ajout de serveurs Web sans le Gestionnaire de package de site


Ajout de serveurs Web sans le Gestionnaire de package de site

Vous pouvez ajouter des serveurs Web à une application sans utiliser le Gestionnaire de package de site Commerce Server Site. D’abord, copiez les fichiers de l’application sur le serveur et configurez l’application IIS (Internet Information Services) 5.0 sur le nouveau serveur. Vous pouvez utiliser Microsoft Application Center 2000 à cet effet. Au premier chargement de l’application sur le nouveau serveur, le nouveau serveur sera ajouté en tant que serveur Web sous l’application appropriée dans la base de données d’administration de Commerce Server. La fonction qui met à jour la base de données d’administration est JoinWebFarm, qui est incluse dans les sites solutions de Commerce Server. Elle se trouve dans le fichier Global_siteconfig_lib.asp, dans le dossier Include des sites solutions Commerce Server décompressés.

Après avoir ajouté le serveur Web à l’application, vous devez synchroniser les propriétés de serveur Web suivantes de Commerce Server avec celles de IIS :

  • Port TCP

  • Port SSL

  • Adresse IP (Internet Protocol)

  • Chemin du fichier journal

  • Durée du fichier journal

Pour synchroniser les propriétés, mettez à jour manuellement les valeurs dans Commerce Server Manager, ou bien cliquez sur le bouton Synchroniser les valeurs sur l’onglet Serveurs Web de la boîte de dialogue Propriétés de l’application. Pour plus d’informations, consultez Configuration d’une application.

Lorsque vous cliquez sur Synchroniser les valeurs, Commerce Server synchronise les propriétés de IIS au niveau de l’application, et les propriétés de tous les objets serveurs Web sous-jacents à l’application. Pour les propriétés situées au niveau de l’application (port TCP et port SSL), Commerce Server lit les valeurs du premier serveur Web. Il considère que tous les serveurs Web ont été configurés de la même façon, ce qui est impératif pour le bon fonctionnement d’une Web farm.

Parce que le code JoinWebFarm utilise l’objet SiteConfig, il fonctionne uniquement si l’utilisateur dispose d’autorisations pour utiliser SiteConfig. Si vous avez précédemment refusé l’autorisation sur SiteConfig, vous pouvez utiliser l’éditeur de Registre Windows pour rétablir l’autorisation sur cet objet. Pour plus d’informations, consultez Limitation de l’accès à la base de données d’administration.

Remarque

  • Application Center 2000 synchronise les fichiers et les paramètres IIS, mais il ne met pas à jour la base de données d’administration Commerce Server, c’est pourquoi un script supplémentaire incluant la fonction JoinWebFarm doit être utilisé. Pour plus d’informations sur Application Center 2000, consultez la documentation relative à Application Center.


Mise à jour du contenu du site

Quand vous déployez initialement votre site Web, vous utilisez le Gestionnaire de package de site Commerce Server. Pour mettre à jour le contenu de votre site, vous utilisez divers outils en fonction du composant que vous mettez à jour. Le tableau suivant montre où se trouvent les composants de Commerce Server et explique comment les mettre à jour.

Pour mettre à jour ce type de contenu | Procédez ainsi
Pages Web (fichiers ASP et HTML) | Utilisez Microsoft Visual Studio, Microsoft Application Center 2000, l’outil Content Deployment, ou un autre outil de publication de pages Web. Pour plus d’informations, consultez la documentation relative à Visual Studio ou à Microsoft Application Center 2000.
Applications COM (Component Object Model) | Transférez les DLL appropriées vers le serveur Web, puis enregistrez-les à l’aide de la commande regsvr32 <nom_fichier dll>.
Profil utilisateur et schémas de catalogue | Créer un script. Pour une description de ces schémas, consultez Profile Schema (en anglais) et Création d’un schéma de catalogue.
Données de catalogue, campagnes marketing, publicités et promotions | Créez et exécutez une tâche des services de transformation de données (DTS, Data Transformation Services). Lors de la mise à jour de campagnes marketing, publicités et promotions, ne déplacez que les tables contenant ces enregistrements. N’écrasez pas la table de performances. Pour plus d’informations sur les tâches DTS, consultez Exécution de Data Warehouse.
Pipelines | Copier les fichiers de pipeline (.pcf) appropriés.

Remarque

  • Avant de mettre à jour un quelconque contenu de serveur, assurez-vous qu’aucun utilisateur n’est connecté à ce serveur. Sinon, les utilisateurs pourraient trouver des liens inopérants dans votre site Web.

Voir aussi

Utilisation de SQL Server pour répliquer les bases de données


Utilisation de SQL Server pour répliquer les bases de données

Pour garantir la disponibilité et l’évolutivité des sites Commerce Server 2000 de grande envergure, la réplication de votre base de données de catalogue peut s’avérer nécessaire. Pour ce faire, utilisez SQL Server pour répliquer vos serveurs ou clusters serveur de catalogue à l’intérieur d’un cluster à équilibrage de charge réseau (NLB, Network Load Balancing). Pour un schéma de cette configuration, consultez Configuration d’un site de grande taille.

Utilisez SQL Server pour répliquer vos bases de données Commerce Server. Que vous utilisiez une réplication de capture instantanée, transactionnelle, ou de fusion, les étapes suivantes vous aideront à mettre en oeuvre la réplication.

Étape | Tâches
Configuration de la réplication | Identifier l’éditeur, le distributeur et les abonnés dans votre topologie. Utiliser SQL Server Enterprise Manager, SQL-DMO ou les procédures stockées et scripts du système Transact-SQL pour configurer l’éditeur, créer une base de données de distribution et activer les abonnés.
Publication des données et des objets de base de données | Créez la publication et définissez les données et articles d’objet de base de données dans la publication, et appliquez tous les filtres nécessaires aux données qui seront publiées.
Abonnement aux publications | Créez des abonnements push, pull ou anonymes pour indiquer si les publications doivent être propagées à des abonnés individuels, et à quel moment.
Génération de la capture instantanée initiale | Indiquez où enregistrez les fichiers de capture instantanée, s’ils sont compressés, et quels scripts exécuter avant ou après l’application de la capture instantanée initiale.
Application de la capture instantanée initiale | Appliquez la capture instantanée automatiquement en synchronisant l’abonnement à l’aide de l’Agent de distribution ou de l’Agent de fusion. La capture instantanée peut être appliquée à partir du dossier de capture instantanée par défaut ou à partir d’un média amovible qui peut être transporté manuellement à l’abonné avant l’application de la capture instantanée.
Synchronisation des données La synchronisation des données se produit lorsque les exécutions et mises à jour de l’Agent de capture instantanée, de l’Agent de distribution ou de l’Agent de fusion sont propagées entre l’éditeur et les abonnés.

Pour la réplication de capture instantanée, une capture instantanée sera prise et propagée aux abonnés. Pour la réplication transactionnelle, l’Agent de lecture du journal stockera des mises à jour dans la base de données de distribution et l’Agent de distribution propagera des mises à jour vers les abonnés.

Si vous utilisez des abonnements qui peuvent être mis à jour avec la réplication de capture instantanée ou la réplication transactionnelle, les données seront propagées de l’abonné à l’éditeur et vers d’autres abonnés.

Pour la réplication de fusion, les données sont synchronisées durant le processus de fusion quand les modifications de données sur tous les serveurs sont centralisées. Les conflits sont le cas échéant détectés et résolus.

Voir aussi

Mise à jour du contenu du site


Modification des noms des serveurs

Il est fortement recommandé de ne pas modifier les noms de serveur après l’installation de Commerce Server 2000. Si vous devez modifier le nom NetBIOS d’un serveur, vous devez désinstaller Commerce Server, modifier le nom, redémarrer le serveur, vérifier que la plate-forme est correctement configurée, puis réinstaller Commerce Server.

Commerce Server nomme les chaînes de connexion entre ressources d’après les noms de serveur. Si vous modifiez un nom, les connexions entre ressources peuvent se rompre. Vous devrez modifier ces chaînes de connexion manuellement dans Commerce Server Manager.

Les ressources globales de Predictor, du service de publipostage Commerce Server et de Profils disposent de noms complets contenant le nom du serveur sur lequel elles ont été créées. Si vous modifiez le nom du serveur, vous pouvez utiliser le programme d’installation de Commerce Server pour supprimer puis réinstaller Predictor et le service de publipostage. Vous pouvez utiliser le Gestionnaire de package de site Commerce Server pour créer une ressource globale Profiles nouvellement nommée. Vous devez ensuite modifier la propriété de référence dans le pointeur de ressource globale Profiles pour tous les sites qui utilisaient cette ressource globale Profiles.

Lorsque vous utilisez Microsoft Application Center 2000 to recharger une application sur un serveur Web renommé, la fonction JoinWebFarm, appelée par le fichier Global.asa pendant l’événement Application_OnStart, crée un nouveau noeud de serveur Web dans la base de données d’administration. Vous devez utiliser Commerce Server Manager pour supprimer l’ancien nom de serveur du site.


Utilisation du Gestionnaire de package de site

Le Gestionnaire de package de site Commerce Server est un outil de déploiement présentant deux utilisations principales. Il permet de compresser votre site Commerce Server, notamment les paramètres d’IIS 5.0 (métabase), le système de fichiers, les ressources de la base de données d’administration ainsi que les bases de données SQL Server, en un seul fichier. Il permet également de décompresser le site Commerce Server (ou des parties de celui-ci) sur d’autres ordinateurs.

Dans la plupart des cas, le Gestionnaire de package de site est utilisé pour le déploiement initial de votre site. Pour les déploiements, les mises à jour incrémentielles et les rollbacks ultérieurs, utilisez d’autres outils tels que Microsoft Application Center 2000 ou d’autres produits de gestion de contenu.

Cette section contient les rubriques suivantes :

  • À propos du Gestionnaire de package de site. Décrit ce que vous pouvez réaliser avec le Gestionnaire de package de site, la composition d’un package, et la manière dont les ressources globales sont décompressées.

  • Compression d’un site. Explique comment compresser un site en un fichier de package.

  • Décompression d’un site. Explique comment décompresser un site à partir d’un fichier de package.

  • Utilisation de scripts avec le Gestionnaire de package de site. Explique comment utiliser les scripts antérieurs et postérieurs à l’installation avec le Gestionnaire de package de site.

  • Exécution du Gestionnaire de package de site à partir de la ligne de commande. Explique comment utiliser le Gestionnaire de package de site à partir de la ligne de commande.

  • Personnalisation des fichiers .ini du Gestionnaire de package de site. Décrit les fichiers .ini inclus avec les sites solutions Commerce Server, et comment vous pouvez utiliser ces fichiers .ini comme modèles pour créer des fichiers .ini personnalisés pour vos propres packages.

  • Informations de référence sur le Gestionnaire de package de site. Répertorie les données et paramètres définis dans SQL Server lorsque vous décompressez un site.


À propos du Gestionnaire de package de site

Le Gestionnaire de package de site Commerce Server compresse et décompresse des sites Web et des paramètres pour vous faciliter le déploiement de vos applications.

Packages

Options de décompression

Sites solutions

Création des noms de bases de données et d’applications

Décompression des ressources globales

Emplacement des bases de données

Définition des autorisations de serveur Web

Packages

Un package est un fichier Commerce Server possédant une mise en forme particulière. Chaque package est identifié par une extension .pup. Un package contient toujours un site unique, qui comprend des ressources, les données correspondantes et les applications d’un site Commerce Server.

Outre les ressources de site, les applications et les paramètres d’IIS 5.0 nécessaires pour recréer les configurations de serveur Web, le Gestionnaire de package de site comprend également les valeurs de propriété de la base de données d’administration. Par exemple, lorsque vous compressez la ressource Configuration par défaut de l’application, toutes les valeurs de propriété en cours sont également compressées. Lorsque vous décompressez la ressource Configuration par défaut de l’application, les valeurs de propriété sont décompressées dans la base de données d’administration.

Le package comprend des pointeurs de ressource globale mais pas les ressources globales elles-mêmes. Les chaînes de connexion sont compressées sans les champs du nom d’utilisateur et du mot de passe.

Durant le processus de compression de l’application, le Gestionnaire de package de site recherche la métabase des services Internet Information Services (IIS) sur votre ordinateur local, puis recherche le répertoire physique servant de racine à l’application. Il démarre ensuite au niveau de ce répertoire racine et compresse tous les sous-répertoires inférieurs dans l’arborescence en un nouveau fichier doté de l’extension .pup. Le Gestionnaire de package de site conserve certains paramètres dans IIS tels que les autorisations et les droits d’accès.

Le Gestionnaire de package de site ne compresse pas les propriétés spécifiques à l’ordinateur sur lequel vous vous trouvez. Par exemple, les propriétés de serveur Web et certaines propriétés d’application définies dans Commerce Server Manager ne sont pas compressées. Pour obtenir une liste des données compressées pour chaque ressource, consultez Informations de référence sur le Gestionnaire de package de site.

Décompression des options

Par défaut, le Gestionnaire de package de site décompresse chaque application du site Web par défaut IIS dans un répertoire virtuel qui correspond au nom de l’application. Afin de renforcer la sécurité de votre site, vous devez créer un nouveau site Web IIS plutôt que d’utiliser le site Web par défaut pour les sites Commerce Server que vous décompressez. Vous pouvez modifier le nom du répertoire virtuel contenant chaque application. Pour modifier le site Web IIS ou le répertoire virtuel pendant la décompression, vous devez utiliser le mode Personnalisé du Gestionnaire de package de site.

Lorsque vous décompressez un autre serveur Web vers une application (ou que vous créez une Web farm), vous ne pouvez modifier aucune information de configuration de l’application durant le processus de décompression car tous les serveurs Web doivent utiliser des paramètres identiques. Le Gestionnaire de package de site affiche le nom du site Web IIS où sera installée l’application ainsi que le chemin d’application IIS pour chaque application Commerce Server.

Lorsque vous décompressez un site et une application qui existent déjà dans la base de données d’administration, le Gestionnaire de package de site considère que vous ajoutez un serveur Web à l’application.

Sites solutions

Les sites solutions sont des packages qui contiennent les ressources nécessaires à la construction d’un site. Après avoir installé Commerce Server, vous pouvez décompresser l’un de ces sites solutions, et l’utiliser comme base de construction de votre propre site.

Commerce Server comprend les sites solutions suivants :

  • Blank. Contient toutes les ressources Commerce Server nécessaires à la construction d’un site personnalisé.

D’autres sites solutions sont disponibles sur le site Web Commerce Server, comme par exemple :

  • Retail. Contient les ressources Commerce Server nécessaires à la construction d’un site de vente au détail.

  • Supplier. Contient les ressources Commerce Server nécessaires à la construction d’un site de fournisseur compatible avec Active Directory.

Création des noms de bases de données et d’applications

Le Gestionnaire de package de site Commerce Server récupère les noms de bases de données et les noms d’applications à partir du package.

Une application IIS est créée pour chaque application du package. Le chemin d’accès complet de chaque application est stocké dans le package.

Décompression des ressources globales

Deux ressources globales (Predictor et Service de publipostage) sont installées via le programme d’installation de Commerce Server ; les autres le sont via le Gestionnaire de package de site. Avant de décompresser un site nécessitant les ressources globales Predictor ou Service de publipostage, celles-ci doivent être installées à partir du programme d’installation de Commerce Server. Pour obtenir des informations sur l’installation d’une ressource globale, consultez Installation et désinstallation des ressources globales.

Emplacement des bases de données

Le Gestionnaire de package de site ne vous demande pas de spécifier les emplacements des fichiers de base de données. À la place, il accepte des dossiers par défaut de SQL Server. Vérifiez qu’il y a suffisamment d’espace disque pour créer les bases de données sur les serveurs de bases de données.

Définition des autorisations de serveur

Les autorisations de serveur Web IIS peuvent être définies pour limiter l’accès des utilisateurs anonymes à vos applications, et peuvent également être utilisées pour limiter la visualisation du code source sur Internet, même aux utilisateurs disposant d’autorisations Windows (ou d’entrées de contrôle d’accès).

Il est important de saisir la distinction entre les autorisations de serveur Web et les autorisations NTFS. Contrairement aux autorisations NTFS, les autorisations de serveur Web s’appliquent à tous les utilisateurs qui accèdent à vos sites Web. Les autorisations NTFS ne s’appliquent qu’à un utilisateur spécifique ou à un groupe d’utilisateurs disposant d’un compte Windows valide. NTFS contrôle l’accès aux répertoires physiques sur votre serveur, alors que les autorisations Web contrôlent l’accès aux répertoires virtuels sur votre site Web.

Quand vous compressez un site, il sélectionne les autorisations de serveur Web telles qu’elles sont définies dans le site source. Par exemple, si le paramètre Autorisations d’exécution est défini sur Scripts et exécutables dans le dossier racine de l’application sur l’ordinateur source, le dossier racine virtuel sur l’ordinateur de destination aura le même paramètre.

Par exemple, le tableau suivant décrit comment les autorisations IIS sont définies dans les packages fournis pas Microsoft.

Dossier | Autorisations
Root | Autorisation d’exécution définie à Scripts et exécutables.
Pipeline, Include, Template | Refus de l’autorisation de lecture, écriture et exécution.

Remarque

  • Le Gestionnaire de package de site ne conserve pas les listes de contrôle d’accès (ACL) Windows qui contiennent des autorisations NTFS. Les listes de contrôle d’accès décrivent les groupes et les individus qui ont accès à des objets spécifiques dans Windows 2000. Ces objets sont notamment les objets Microsoft Active Directory, les fichiers et dossiers locaux NTFS, le Registre et les imprimantes.

Voir aussi

Utilisation de Commerce Server et IIS

Compression d’un site

Décompression d’un site

Informations de référence sur le Gestionnaire de package de site

Exécution du Gestionnaire de package de site à partir de la ligne de commande


Compression d'un site

Compression d’un site

Quand vous compressez un site, vous enregistrez vos applications et paramètres dans un seul fichier de package.

Pour compresser un site

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft Commerce Server 2000, puis cliquez sur Commerce Site Packager.

  2. Dans la boîte de dialogue Gestionnaire de package de site Commerce Server, sélectionnez l’option Compresser un site existant, puis cliquez sur Suivant.

  3. Dans la boîte de dialogue Compresser un site, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Site à compresser | Sélectionner le site que vous souhaitez compresser dans la liste de sites disponibles.
    Fichier de package à créer | Taper le nom du fichier de package à créer.

  4. Cliquez sur Parcourir.

  5. Dans la boîte de dialogue Enregistrer sous, accédez au dossier où vous souhaitez créer le package, indiquez le nom de fichier, puis cliquez sur Enregistrer. Lorsque vous retournez à l’écran Gestionnaire de package de site Commerce Server, cliquez sur OK.

  6. Dans la boîte de dialogue Système de profil, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Scripts de définition de schéma Spécifier les scripts de définition de schéma que vous souhaitez inclure dans le package. Cliquez sur Parcourir pour spécifier l’emplacement de ces scripts.

    Le Gestionnaire de package de site utilise un script de définition de schéma par défaut. Si vous modifiez la table UserObject ou d’autres définitions de schéma de profil, vous devez utiliser SQL Server Enterprise Manager pour générer un script à utiliser ici. Pour plus d’informations, consultez Compression d’un schéma de profil étendu.
    Scripts de remplissage des données | Spécifier les scripts de remplissage des données que vous souhaitez inclure dans le package. Cliquez sur Parcourir pour spécifier l’emplacement de ces scripts.

  7. Cliquez sur OK.

  8. Dans la boîte de dialogue Compression terminée, pour consulter la liste des événements contenus dans le fichier journal du Gestionnaire de package de site, cliquez sur Afficher le fichier journal.

  9. Pour fermer le Gestionnaire de package de site, cliquez sur Terminer.

Remarques

  • Si vous compressez une application Commerce Server dont le répertoire virtuel IIS contient des applications IIS enfant, le Gestionnaire de package de site compressera les dossiers et les fichiers des applications enfant. Si vous ne voulez pas les dossiers et les fichiers des applications enfants, vous devrez les supprimer après avoir décompressé l’application Commerce Server parent.

  • Le Gestionnaire de package de site ne compresse pas les fichiers dans les répertoires virtuels enfants de l’application IIS. Si vous devez compresser des fichiers dans des répertoires virtuels enfants, déplacez les dossiers et fichiers vers les dossiers physiques parents du dossier racine de l’application IIS avant de compresser votre site.

  • Pour pouvoir compresser un site dont certaines applications (par exemple, Retail et RetailBusinessDesk) se trouvent sur des serveurs Web séparés, vous devez ajouter l’un des serveurs Web à l’autre application. Par exemple, si Retail est installée sur l’ordinateur A et RetailBizDesk sur l’ordinateur B, vous pouvez exécuter le Gestionnaire de package de site sur l’ordinateur B pour l’ajouter en tant que serveur Web pour Retail. Vous pouvez ensuite compresser le site à partir de l’ordinateur B. (Inversement, vous pourriez ajouter l’ordinateur A à RetailBizDesk, et compresser le site à cet emplacement). Pour plus d’informations, consultez Ajout d’un serveur Web à une application.

Voir aussi

À propos du Gestionnaire de package de site

Décompression d’un site

Exécution du Gestionnaire de package de site à partir de la ligne de commande


Décompression d'un site

Décompression d’un site

Le Gestionnaire de package de site Commerce Server vous permet de décompresser un site ou le sous-ensemble d’un site sur un ou plusieurs ordinateurs. Quand vous exécutez le Gestionnaire de package de site, vous devez disposer des autorisations appropriées pour copier des fichiers vers leurs dossiers de destination.

Pour décompresser un site rapidement, en acceptant la plupart des paramètres par défaut

Pour compresser un site, en spécifiant vous-même tous les paramètres

Remarques

  • N’exécutez pas plus d’une instance du Gestionnaire de package de site à la fois.

  • Pour décompresser un site sur un site Web IIS (Internet Information Services) 5.0 autre que le site par défaut, utilisez le mode Personnalisé du Gestionnaire de package de site.

  • Si vous décompressez la ressource Direct Mailer après avoir décompressé une application Business Desk et installé le client Business Desk, vous devez redémarrer Internet Information Services (IIS) 5.0 sur le serveur Web qui héberge l’application Business Desk afin que l’ajout de Direct Mailer soit détecté. Les clients Business Desk doivent se reconnecter à l’application. Pour des instructions sur le redémarrage d’IIS, consultez Redémarrage d’IIS.

  • Les modules Business Desk ne sont pas automatiquement supprimés de l’application Business Desk si vous choisissez de ne pas décompresser une ressource requise. Par exemple, si vous ne décompressez pas Catalogue de produits, les modules Catalogs apparaîtront quand même dans Business Desk, mais ils ne fonctionneront pas.

Utilisez la procédure suivante si vous configurez cet ordinateur en serveur Web, et si vous comptez placer tous vos fichiers de base de données sur un serveur SQL Server.

Pour décompresser un site rapidement, en acceptant la plupart des paramètres par défaut

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft Commerce Server 2000, puis cliquez sur Gestionnaire de package de site Commerce Server.

  2. Dans la boîte de dialogue Gestionnaire de site Commerce Server, sélectionnez Décompresser à partir d’un fichier de package, puis cliquez sur Suivant.

  3. Dans la boîte de dialogue Décompresser, cliquez sur le bouton Parcourir, à côté de la zone Fichier à décompresser.

  4. Dans la boîte de dialogue Ouvrir, accédez au dossier contenant le fichier à décompresser, sélectionnez-le, puis cliquez sur Ouvrir.

  5. Quand vous retournez dans la boîte de dialogue Décompresser, sélectionnez Décompression rapide, puis cliquez sur Suivant.

  6. Dans la boîte de dialogue Décompression rapide, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom du site | Taper le nom du site, si vous voulez le modifier. N’incluez pas de caractères spéciaux (tels que #, @, % et ') dans le nom. N’affectez pas le nom « Commerce » à votre site.
    Site Web IIS | Sélectionner le nom du site Web IIS sur lequel la ou les application(s) seront installées.
    Ordinateur SQL Server | Taper le nom du serveur SQL qui contiendra les bases de données pour le site.
    Nom d’utilisateur SQL | Taper le nom de connexion SQL pour les bases de données.
    Mot de passe SQL | Taper le mot de passe d’ouverture de session SQL.

  7. Si la boîte de dialogue Data Warehouse apparaît, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom que vous voulez attribuer à la ressource Data Warehouse globale.
    Serveur | Taper le nom de l’ordinateur SQL Analysis (OLAP).
    Base de données | Taper le nom de la base de données Analysis (OLAP) à utiliser.

  8. Cliquez sur Suivant.

  9. Si la première boîte de dialogue Système de profil apparaît, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Définition de schéma de profil | Spécifier la définition de schéma de profil à importer.
    Définition des entrées du glossaire de site | Spécifier la définition des entrées du glossaire de site à importer.
    Définition d’expression | Spécifier la définition d’expression à importer.

  10. Cliquez sur Suivant.

  11. Si la deuxième boîte de dialogue Système de profil apparaît, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Chaîne de connexion du système de profil | Spécifier les fichiers à importer dans la banque de données OLEDB. Cliquez sur Modifier pour spécifier une autre base de données.
    Scripts de définition de schéma (*.sql, *.vbs) | Spécifier les scripts de définition de schéma à importer.
    Scripts de remplissage des données (*.sql) | Spécifier les scripts de remplissage des données à importer.

  12. Cliquez sur Suivant.

  13. Dans la boîte de dialogue Décompression terminée, consultez la liste des bases de données SQL et applications IIS qui ont été créées. Pour consulter la liste des événements contenus dans le fichier journal du Gestionnaire de package de site, cliquez sur Afficher le fichier journal.

  14. Pour fermer le Gestionnaire de package de site, cliquez sur Terminer.

Utilisez la procédure suivante si vous ajoutez ce serveur Web à une application existante, ou si vous souhaitez spécifier l’utilisation de plus d’un serveur de base de données avec le site.

Pour compresser un site, en spécifiant vous-même tous les paramètres

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft Commerce Server 2000, puis cliquez sur Gestionnaire de package de site Commerce Server.

  2. Dans la boîte de dialogue Gestionnaire de site Commerce Server, sélectionnez Décompresser à partir d’un fichier de package, puis cliquez sur Suivant.

  3. Dans la boîte de dialogue Décompresser, cliquez sur le bouton Parcourir, à côté de la zone Fichier à décompresser.

  4. Dans la boîte de dialogue Ouvrir, accédez au dossier contenant le fichier à décompresser, sélectionnez-le, puis cliquez sur Ouvrir.

  5. Quand vous retournez dans la boîte de dialogue Décompresser, sélectionnez Décompression personnalisée, puis cliquez sur Suivant.

  6. Dans la boîte de dialogue Méthode de décompression, sélectionnez Décompression personnalisée, puis cliquez sur Suivant.

  7. Dans la zone Nom du site, tapez le nom du site, puis cliquez sur Suivant.

    Remarques

    • Pour éviter les erreurs de décompression, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ') dans votre nom de site. Par défaut, les noms de bases de données d’un site portent comme préfixe le nom du site, et les caractères spéciaux peuvent ne pas être reconnus dans SQL Server.

    • Ne spécifiez jamais un nom de site de plus de 256 caractères simple octet ou 128 caractères double octet.

    • N’affectez pas le nom « Commerce » à votre site. Il s’agit d’un nom de base de données OLAP réservé. Si vous affectez le nom « Commerce » à votre site, cela risque d’entraîner l’écrasement de votre base de données OLAP la prochaine fois que vous décompresserez un site.
  8. Dans la boîte de dialogue Sélectionner les applications ou Sélectionner les ressources, sélectionnez les éléments que vous souhaitez installer, puis cliquez sur Suivant.

    Remarque

    • Dans la boîte de dialogue Sélectionner les ressources, vous devez installer les ressources CS Authentication et Profiles simultanément. Elles ne fonctionnent pas si elles ne sont pas installées toutes les deux.
  9. Dans la boîte de dialogue Pointeurs de ressource globale, cliquez sur Suivant.

    Cette boîte de dialogue vous permet d’effectuer un mappage vers les ressources globales existantes ou d’en créer de nouvelles.

  10. Dans la boîte de dialogue Chaînes de connexion de bases de données, le Gestionnaire de package de site répertorie les bases de données qu’il utilisera et les serveurs sur lesquels il les créera. Vérifiez que les bases de données sont correctes, puis cliquez sur Suivant.

  11. Dans la boîte de dialogue Sélectionner les applications, vérifiez que les applications à décompresser sont sélectionnées, puis cliquez sur Suivant.

  12. Dans la boîte de dialogue Sélectionner des sites Web IIS et des répertoires virtuels, vérifiez que les chemins de sites Web IIS et d’application IIS sont corrects, puis cliquez sur Suivant.

    Remarques

    • Pour éviter les erreurs IIS, vous ne devez pas inclure de caractères spéciaux (tels que #, @, % et ') dans vos noms de répertoires virtuels IIS.

    • Le Gestionnaire de package de site ne prend pas en charge la décompression d’un site sur un ordinateur distant.

    • Le gestionnaire de package de site décompressera chaque application sous le répertoire de base de son site Web IIS correspondant. À l’intérieur du répertoire de base, le Gestionnaire de package de site crée un sous-dossier utilisant le nom de répertoire virtuel IIS de l’application.
  13. Si la boîte de dialogue Data Warehouse apparaît, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom que vous voulez attribuer à la ressource Data Warehouse globale.
    Serveur | Taper le nom de l’ordinateur SQL Analysis (OLAP).
    Base de données | Taper le nom de la base de données Analysis (OLAP) à utiliser.

  14. Cliquez sur Suivant.

  15. Si la première boîte de dialogue Système de profil apparaît, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Définition de schéma de profil | Spécifier la définition de schéma de profil à importer.
    Définition des entrées du glossaire de site | Spécifier la définition des entrées du glossaire de site à importer.
    Définition d’expression | Spécifier la définition d’expression à importer.

  16. Cliquez sur Suivant.

  17. Si la deuxième boîte de dialogue Système de profil apparaît, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Chaîne de connexion du système de profil | Spécifier les fichiers à importer dans la banque de données OLEDB. Cliquez sur Modifier pour spécifier une autre base de données.
    Scripts de définition de schéma (*.sql, *.vbs) | Spécifier les scripts de définition de schéma à importer.
    Scripts de remplissage des données (*.sql) | Spécifier les scripts de remplissage des données à importer.

  18. Cliquez sur Suivant.

  19. Dans la boîte de dialogue Décompression terminée, consultez la liste des bases de données SQL et applications IIS qui ont été créées. Pour consulter la liste des événements contenus dans le fichier journal du Gestionnaire de package de site, cliquez sur Afficher le fichier journal.

  20. Pour fermer le Gestionnaire de package de site, cliquez sur Terminer.

Remarques

  • Immédiatement après avoir installé votre site, et chaque fois que vous apportez des modifications de configuration importantes à votre déploiement Commerce Server, vous devez sauvegarder votre base de données d’administration sous un nom différent. Vous pouvez utiliser cette sauvegarde pour annuler tout changement effectué ultérieurement.

  • Si vous installez des bases de données Commerce Server (autres que Data Warehouse) sur un ordinateur distant, il est possible qu’il y ait un décalage avant l’apparition de ces bases de données sur cet ordinateur.

  • Si, lorsque vous décompressez une application non-Business Desk, vous créez et utilisez un fichier script unpack.vbs, veillez à supprimer ou sécuriser le fichier immédiatement après la décompression. Le fichier existe dans le répertoire racine, et les utilisateurs anonymes peuvent y accéder. L’utilisation non autorisée de ce script pourrait conduire au refus de service ou à l’altération des paramètres de site.

Voir aussi

À propos du Gestionnaire de package de site

Compression d’un site

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs

Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs

Exécution du Gestionnaire de package de site à partir de la ligne de commande

Dépannage du Gestionnaire de package de site


Utilisation de scripts avec le Gestionnaire de package de site

Vous pouvez utiliser trois types de scripts Microsoft Visual Basic avec le Gestionnaire de package de site :

Scripts antérieurs à la compression

Scripts postérieurs à la compression

Scripts d’application

Compression de schéma de profil étendu

Scripts antérieurs à la compression

Le Gestionnaire de package de site exécute un script antérieur à la compression dès que le nom du package est connu, c’est-à-dire avant la décompression du site. Les scripts antérieurs à la compression doivent être nommés « PRE<nom_package>.vbs », par exemple, PreRetail.vbs.

Un script antérieur à la compression s’accompagne d’un paramètre, mode ( /s: ), qui indique si le Gestionnaire de package de site s’exécute en mode silencieux ou en mode d’installation normal. Les scripts antérieurs à la compression doivent se trouver dans le même dossier que le package à décompresser pour pouvoir être exécutés.

Scripts postérieurs à la compression

Le Gestionnaire de package de site exécute un script postérieur à la compression une fois le processus de compression terminé, mais avant l’affichage de la boîte de dialogue Décompression terminée. Les scripts postérieurs à la compression doivent être nommés « POST<nom_package>.vbs », par exemple, PostRetail.vbs. Un script postérieur à la compression s’accompagne de deux paramètres :

  • Nom du site entre guillemets (/n:"MonSite")

  • Mode ( /s: ) — mode silencieux ou mode d’installation normal

Les scripts postérieurs à la compression doivent se trouver dans le même dossier que le package à décompresser pour pouvoir être exécutés.

Scripts d’application

Le Gestionnaire de package de site peut également exécuter des scripts spécifiques aux applications. Les scripts d’application s’accompagnent de six paramètres :

  • Nom du site entre guillemets (/n:"MonSite")

  • Nom d’application entre guillemets (/r:"MonApp")

  • Numéro du serveur, ou numéro d’instance du site Web IIS sur lequel l’application a été installée (/i:1)

  • Nom du répertoire virtuel sur lequel l’application a été installée (/v:"MaRacine")

  • Chemin d’accès du fichier, entre guillemets, où ont été installés les fichiers d’application (/d: "C:\inetpub\wwwroot")

  • Mode (/s:) — mode silencieux ou mode d’installation normal

Les scripts d’application sont exécutés pour chaque application après la survenue des événements suivants :

  • L’application a été installée et les fichiers copiés.

  • Les propriétés d’IIS ont été définies pour l’application.

  • Les informations de l’application ont été écrites dans la base de données d’administration.

  • Le Gestionnaire de package de site a notifié Data Warehouse de l’existence de l’application.

Remarque

  • Si, lorsque vous décompressez une application non-Business Desk, vous créez et utilisez un fichier script unpack.vbs, veillez à supprimer ou sécuriser le fichier immédiatement après la décompression. Le fichier existe dans le répertoire racine, et les utilisateurs anonymes peuvent y accéder. L’utilisation non autorisée de ce script pourrait conduire au refus de service ou à l’altération des paramètres de site.

Voir aussi

Exécution du Gestionnaire de package de site à partir de la ligne de commande

Personnalisation des fichiers .ini du Gestionnaire de package de site

Compression de schéma de profil étendu

Si vous souhaitez créer un package qui contient un schéma de profil étendu, vous devez générer le script avant de compresser votre site. Les étapes suivantes expliquent comment compresser un schéma de profil étendu :

  1. Utilisez SQL Server Enterprise Manager pour étendre la table UserObject, en ajoutant vos propres attributs. Pour plus d’informations, consultez la documentation relative à SQL Server.

  2. Ajoutez les nouveaux membres de données à l’objet de données. Pour plus d’informations, consultez Ajout d’un nouveau membre de données.

  3. Utilisez SQL Server Enterprise Manager pour générer des scripts pour votre schéma de profil étendu. Pour plus d’informations, consultez la documentation relative à SQL Server.

  4. Quand vous compressez votre site, le Gestionnaire de package de site vous demande de spécifier l’emplacement du script de définition de schéma que vous avez généré. Si vous ne spécifiez pas votre script, le Gestionnaire de package de site compressera le script par défaut, qui n’inclura pas votre extension.

Voir aussi

UserObject Profile Schema (en anglais)

Compression d’un site


Exécution du Gestionnaire de package de site à partir de la ligne de commande

Vous pouvez exécuter le Gestionnaire de package de site Commerce Server à partir de l’interface de ligne de commande en utilisant le fichier d’exécution, Pup.exe. Le Gestionnaire de package de site comprend un ensemble de paramètres de ligne de commande qui vous permettent d’effectuer des tâches sur les sites et les ressources, notamment la compression, la décompression et la suppression d’un site ou d’une ressource. En outre, vous pouvez établir des références de ressources uniques pour les besoins d’une installation personnalisée à l’aide de scripts Microsoft Visual Basic.

Par exemple, pour compresser un site nommé BlankSite, vous devez taper la ligne de commande suivante :

PuP.exe /p  /s:BlankSite /f:D:\Program Files\Microsoft Commerce Server\PuP Packages\XBlank.pup /i:D:\Program Files\Microsoft Commerce Server\SiteCreate\packBlank.ini

Remarque

  • Lorsque vous tapez les commandes nécessaires à la compression d’un site, vous devez séparer les paramètres par un espace. Vous devez également spécifier le chemin d’accès complet et le nom du fichier de réponse (dans l’exemple ci-dessus, le fichier de réponse est packBlank.ini).

Le tableau suivant répertorie les options de ligne de commande utilisables avec le fichier Pup.exe.

Paramètre | Compression | Décompression | Description
/s: | X |  | Spécifie le nom du site à compresser. /s:<nom_site>.
/f: | X | X | Spécifie le chemin d’accès du fichier de package. /f:<chemin_complet_vers_package>.
/r | X | X | Affiche la boîte de dialogue Sélectionner les ressources.
/i: | X | X | Spécifie le fichier .ini à utiliser en mode silencieux. /i:<nom_complet_chemin>.
/p | X |  | Compresse un site ou une ressource.
/u |  | X | Décompresse un site ou une ressource.
/a: | X | X | Spécifie le nom de l’application. /a:<nom_application>
/w: |  | X | Spécifie le nom du serveur Web. /w:<nom_serveur_Web>. Utilisez cette option pour décompresser l’ordinateur local sous forme de serveur Web.

Par exemple, pour décompresser un site nommé Retail, vous devez utiliser la commande suivante :

D:\Program Files\Microsoft Commerce Server\PuP.exe /u /f:D:\Program Files\Microsoft Commerce Server\PuP Packages\Retail.pup /i:C:\Commerce\Retail.ini

Voir aussi

Personnalisation des fichiers .ini du Gestionnaire de package de site


Personnalisation des fichiers .ini du Gestionnaire de package de site

Commerce Server inclut le fichier packBlank.ini avec le package BlankSite. Des fichiers .ini distincts sont fournis pour les sites solutions Retail et Supplier, disponibles sur le site Web Commerce Server. Vous pouvez utiliser ces fichiers .ini comme modèles de création de fichiers .ini personnalisés pour vos propres packages. Ces fichiers .ini permettent de créer automatiquement vos packages, par exemple, dans un environnement de production où vous souhaitez effectuer les créations de packages la nuit pour pouvoir procéder aux installations le matin.

Vous pouvez utiliser le même fichier .ini pour la compression et pour la décompression. Durant le processus de compression ou de décompression, les éléments qui ne sont pas nécessaires à la tâche sont ignorés.

Exécutez les fichiers .ini à partir de la ligne de commande. Pour obtenir des instructions et un exemple de commande, consultez Exécution du Gestionnaire de package de site à partir de la ligne de commande.

Voici le contenu du fichier packBlank.ini, ainsi que des commentaires sur chaque section. Un astérisque ( * ) indique des commentaires :

[General]

SiteName=BlankSite
Description=Blank site
NumOfResources= 11
NumOfApplications= 2

*La liste suivante contient les ressources à installer. Si vous ne souhaitez pas installer une ressource donnée, supprimez la ligne relative à la ressource dans le fichier .ini, puis renumérotez les ressources. L’ordre dans lequel les ressources sont décompressées n’affecte pas le processus de décompression. Cependant, toutes les ressources sont décompressées avant les applications.

Remarque

  • Lors de la compression d’un site, la liste des ressources du fichier .ini n’est pas lue. À la place, le site tout entier est compressé.
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]

*La section App Default Config ne comporte pas d’indicateur UseData car elle ne contient que des informations de configuration.

[ConnStrs]

*Dans cette section les chaînes de connexion des ressources sont répertoriées. Les chaînes de connexion comportent les paramètres suivants :

ConnStrResourceName

Nom de la ressource.

ConnStrValue

Valeur de la chaîne de connexion.

ConnStrPropertyName

Nom de propriété de la chaîne de connexion

L’exemple suivant présente la section [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 indique si vous voulez inclure les données et le schéma, ou le schéma uniquement. 1 signifie que vous voulez inclure les données et le schéma. UseData n’affecte pas les applications, ou la ressource Profiles, CS Authentication, ou Data Warehouse.

UseData = 1

[Campaigns]

UseData = 1

[Site Data Warehouse]

*La section Site Data Warehouse n’utilise pas d’indicateur UseData car elle ne contient que des informations de configuration.

[Transactions]

UseData = 1

[Transaction Config]

UseData = 1

[Direct Mail]

*Utilisez GlobalResourceName pour attribuer la ressource globale à un nom de ressource globale déjà existant sur l’ordinateur. Si vous avez défini (Ajouter une nouvelle ressource globale), la ressource globale est ajoutée au site, au lieu d’être associée à une ressource globale existante.

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]

*L’indicateur UseData n’affecte pas ce qui est inclus pour le service Profiles. Le service Profiles ne récupère que le schéma ; il ne récupère jamais les données.

UseData = 1
GlobalResourceName= (Ajouter une nouvelle ressource globale)

[Global Data Warehouse]

*L’indicateur UseData n’affecte pas ce qui est inclus dans Group Data Warehouse. Group Data Warehouse ne récupère que le schéma ; il ne récupère jamais les données.

UseData = 1
GlobalResourceName= (Ajouter une nouvelle ressource globale)

[Site CS Authentication]

GlobalResourceName= (Ajouter une nouvelle ressource globale)


Informations de référence sur le Gestionnaire de package de site

Ce site contient des informations à propos des données et des paramètres qui sont inclus quand vous compressez un site.

Ressources et données

Le tableau suivant répertorie les ressources et les données compressées correspondantes lorsque vous compressez un site.

Ressource | Données compressées
Configuration par défaut de l’application | Toutes les valeurs de propriété.
Campagnes marketing | Ces tables de la base de données Campagnes marketing : 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 Authentication | Paramètres dans AuthSetup.ini. Quand vous décompressez un site, vous pouvez créer une nouvelle ressource ou pointer vers une ressource existante.
Commerce Server Data Warehouse | Aucune. Quand vous décompressez un site, vous pouvez créer une nouvelle ressource de Data Warehouse ou pointer vers une ressource existante.
Service de publipostage Commerce Server | Aucune. Confirme l’existence d’un service de publipostage sur le site. La ressource globale Direct Mailer à utiliser est spécifiée durant la décompression. Quand vous décompressez un site, vous pouvez pointer vers une ressource Direct Mailer. Vous devez utiliser le programme d’installation de Commerce Server pour en créer une nouvelle.
Predictor | Aucune. Confirme l’existence de Predictor sur le site. La ressource Predictor à utiliser est spécifiée durant la décompression. Quand vous décompressez un site, vous pouvez pointer vers une ressource Predictor. Vous devez utiliser le programme d’installation de Commerce Server pour en créer une nouvelle.
Catalogue de produits | Ces tables de la Base de données du catalogue : CatalogAttributes, CatalogDefinitions, CatalogDefinitionProperties, CatalogGlobal, CatalogUsedDefinitions, CatalogEnumValues, CatalogStatus, CatalogCustomCatalogs, CatalogCustomPrices, CatalogSet_Info, CatalogSet_Catalogs, CatalogToVendorAssociation, x_ProductsComplete, x_Relationships, x_Hierarchy
Profiles | Script de schéma et script de données. Les valeurs par défaut sont respectivement racine_commerce_server\Profilesql.sql et racine_commerce_server\PopulateProfileSql.sql. Les bases de données existantes ne sont pas compressées. Quand vous décompressez un site, vous pouvez créer une nouvelle ressource ou pointer vers une ressource existante.
Transactions | Ces tables de la base de données Transactions : TransDimension, TransCategory.
Configuration de la transaction | Ces tables de la base de données Configuration de la transaction : Decode, Region, RegionalTax, ShippingConfig, TableShippingRates.

Paramètres IIS

Quand vous compressez un site, le Gestionnaire de package de site inclut beaucoup de vos paramètres IIS. Il ne compresse pas un site Web IIS (comme Default Web Site), mais il compresse les fichiers dans le dossier racine physique de l’application et tous ses dossiers et fichiers enfants physiques.

Pour afficher les paramètres d’une application, d’un dossier ou d’un fichier

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft Commerce Server 2000, puis cliquez sur Commerce Server Manager.

  2. Dans la fenêtre Commerce Server Manager, développez Internet Information Services, développez le nom du serveur Web contenant une application, développez le nom du site Web IIS dans lequel réside l’application, cliquez avec le bouton droit sur le nom de l’application, dossier ou fichier, puis cliquez sur Propriétés.

    La boîte de dialogue Propriétés pour l’application s’affiche.

Les tableaux suivants répertorient les paramètres pour les onglets Répertoires virtuels et Sécurité du répertoire dans la boîte de dialogue Propriétés, et indiquent lesquels sont compressés quand le Gestionnaire de package de site est utilisé.

Onglet Répertoire virtuel

Champ | Compression/Pas de compression
Accès à la source du script | Compressé
Lecture | Compressé
Écriture | Compressé
Exploration de répertoire | Compressé
Accès au journal | Compressé
Indexer cette ressource | Compressé
Nom de l’application | Non compressé
Point de départ | Non compressé
Autorisations d’exécution | Compressé
Protection d’application | Toujours défini à Moyen lors de la décompression
Paramètres Configuration de l’application (affichés après un clic sur Configuration) | Non compressé

Onglet Sécurité du répertoire

Champ | Compression/Pas de compression
Accès anonyme | Compressé
Compte d’accès anonyme | Non compressé
Authentification de base | Compressé
Domaine d’authentification de base | Non compressé
Authentification Digest | Compressé
Authentification intégrée de Windows | Compressé
Restrictions par adresse IP et nom de domaine | Non compressé
Sécurisation des communications (certificats SSL) | Non compressé

Remarque

  • Aucun élément dans les onglets Documents, En-têtes HTTP, et Messages d’erreur personnalisés n’est compressé. Le fichier script unpack.vbs pour Business Desk ajoute des messages d’erreur personnalisés pour Business Desk après la décompression.

Répertoires virtuels IIS

Si l’application comporte des répertoires virtuels, l’objet répertoire virtuel et les dossiers et fichiers dans le chemin d’accès vers lequel il pointe ne seront pas compressés. Si vous voulez compresser ces dossiers et fichiers, copiez-les dans un dossier dans le chemin d’accès physique de l’application avant de les compresser.

Autorisations NTFS

Les autorisations NTFS et les listes de contrôle d’accès sur les dossiers et les fichiers ne sont pas compressées. Vous pouvez utiliser le script unpack.vbs ou le script post site.vbs pour appliquer automatiquement des autorisations NTFS après la décompression.


Administration de Commerce Server

Cette section décrit l’utilisation de Commerce Server Manager pour administrer Microsoft Commerce Server 2000. Elle s’adresse aux administrateurs système, dont les responsabilités incluent l’ajout et la gestion de ressources utilisées par les sites, l’installation et la configuration de serveurs Web, l’analyse des performances de Commerce Server, et la gestion des bases de données Commerce Server.

Cette section contient les rubriques suivantes :

  • Aide de Commerce Server Manager. Répertorie les tâches courantes que vous exécutez à l’aide de Commerce Server Manager.

  • Notions de base de l’administration. Décrit les ressources de Commerce Server, les sites, les applications, les serveurs Web et la base de données d’administration. Décrit la relation entre Commerce Server et les services Microsoft Internet Information Services (IIS) 5.0. Explique comment configurer un ordinateur pour l’utiliser uniquement à des fins d’administration.

  • Gestion de la base de données d’administration. Décrit la base de données d’administration et son interaction avec les sites. Explique comment configurer la base de données et gérer la sécurité.

  • Gestion des ressources Commerce Server. Explique comment ajouter et supprimer des ressources globales et des ressources de site, et comment démarrer ou arrêter une ressource.

  • Gestion des sites Commerce Server. Explique comment ajouter, configurer et supprimer un site.

  • Gestion des applications et des serveurs Web Commerce Server. Explique comment ajouter, configurer et supprimer une application Commerce Server, et comment ajouter ou supprimer un serveur Web.

  • Gestion de Commerce Server. Explique comment sauvegarder et restaurer des fichiers Commerce Server et des bases de données Commerce Server.

  • Gestion de la ressource CS Authentication. Explique comment utiliser la ressource CS Authentication pour établir ou modifier la méthode d’authentification et d’identification de votre site Commerce Server.

  • Exécution de Data Warehouse. Explique comment importer des données dans Data Warehouse et comment personnaliser le processus d’importation. Explique comment gérer et enrichir les données de Data Warehouse.

  • Exécution du service de publipostage. Explique comment développer des messages de publipostage personnalisés. Explique comment personnaliser le service de publipostage Commerce Server, et comment exécuter, analyser et supprimer des travaux de publipostage.

  • Exécution de la ressource Predictor. Explique comment construire de nouveaux modèles Predictor et modèles de segments, afficher des modèles et analyser la ressource Predictor.

  • Exécution de la ressource Profiles. Explique comment ajouter des sources de données de profil à Commerce Server, comment créer des définitions de profils pour collecter les données de votre site Web, et comment créer des entrées du glossaire du site.

  • Utilisation de BizTalk Server et de Commerce Server. Explique comment configurer Commerce Server et BizTalk Server pour traiter les commandes et les échanges de catalogues.

  • Analyse des sites Commerce Server. Explique comment analyser une installation Commerce Server. Décrit les compteurs Commerce Server. Explique comment utiliser les compteurs système de Commerce Server pour améliorer les performances du serveur.

  • Optimisation de Commerce Server. Explique comment réduire le délai de réponse de chaque demande et comment augmenter le débit de Commerce Server.

  • Référence de l’interface utilisateur. Fournit les rubriques d’aide contextuelle pour Data Warehouse, les tâches DTS (Data Transformation Services), la ressource Predictor et le Gestionnaire de package de site Commerce Server.


Aide de Commerce Server Manager

La liste suivante répertorie les tâches courantes effectuées à partir de Commerce Server Manager.

Domaine Rubriques
Ressources
  • Installation et désinstallation des ressources globales

  • Ajout d’un pointeur de ressource globale à un site

  • Ajout d’une ressource à un site
Sites et applications
  • Utilisation du Gestionnaire de package de site

  • Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs

  • Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs

  • Ajout d’un site

  • Ajout d’une application à un site

  • Ajout d’un serveur Web à une application

  • Configuration de la base de données d’administration

  • Configuration d’une application

  • Configuration d’un serveur Web
Ressource Predictor
  • Configuration des propriétés de la ressource Predictor

  • Reconstruction d’un modèle d’analyse
Direct Mail
  • Configuration du service de publipostage

  • Exécution du service de publipostage
Data Warehouse
  • Configuration de la ressource Data Warehouse

  • Configuration des propriétés d’importation de fichier journal Web

  • Importation de données dans Data Warehouse
CS Authentication
  • Configuration des propriétés de la ressource CS Authentication

  • Gestion de la ressource CS Authentication
Ressource Profiles
  • Configuration de la ressource Profiles

  • Ajout d’une nouvelle source de données
Ressource Configuration par défaut de l’application
  • Configuration des propriétés de la ressource Configuration par défaut de l’application

  • Configuration de Commerce Server pour l’utilisation de BizTalk Server
Dépannage
  • Dépannage de Commerce Server


Notions de base de l'administration

Notions de base de l’administration

Cette section décrit les ressources, sites, applications et serveurs Web de Microsoft Commerce Server 2000. Elle décrit la base de données d’administration, son mode de création et de mise à jour. Elle décrit également la relation entre Commerce Server et les services Microsoft Internet Information Services (IIS) 5.0. Elle explique comment configurer un ordinateur pour l’utiliser uniquement à des fins d’administration.

Cette section contient les rubriques suivantes :

  • Outils d’administration. Répertorie et décrit les outils utilisés pour la gestion de Commerce Server.

  • Utilisation de Commerce Server Manager. Décrit Commerce Server Manager et explique comment le démarrer.

  • À propos des ressources, des sites, des applications et des serveurs Web. Décrit les ressources, sites, applications et serveurs Web, qui représentent les objets Commerce Server dans Microsoft Management Console (MMC).

  • À propos des bases de données Commerce Server. Décrit les bases de données Commerce Server et les données contenues dans chacune d’elles.

  • Définition des chaînes de connexion de base de données. Répertorie les chaînes de connexion de Commerce Server et explique comment les définir.

  • Utilisation de Commerce Server et d’IIS. Décrit les propriétés de serveur Web que vous pouvez définir dans Commerce Server et IIS, ainsi que le mode d’héritage des propriétés d’IIS vers Commerce Server.

  • Installation des outils d’administration uniquement. Explique en quoi consiste un ordinateur destiné uniquement à l’administration et comment configurer ce type d’ordinateur.

  • À propos des services de transformation de données (DTS). Répertorie et décrit les tâches des services de transformation de données (DTS, Data Transformation Services) incluses dans Commerce Server.


Outils d'administration

Outils d’administration

Le tableau suivant répertorie les outils d’administration utilisés pour gérer une installation Commerce Server 2000.

Utilisez ceci | Pour faire cela
Commerce Server Manager | Gérer et configurer les ressources, sites, applications et serveurs Web Commerce Server
Gestionnaire de package de site Commerce Server | Déployer les sites, ressources, applications et serveurs Web
SQL Enterprise Manager | Gérer les bases de données Commerce Server
Composant logiciel enfichable IIS | Gérer les serveurs Web
Utilisateurs et ordinateurs Active Directory de Windows 2000 | Gérer les comptes d’utilisateur, comptes d’ordinateur, ainsi que les groupes de sécurité et de distribution de Windows 2000
Observateur d’événements de Windows 2000 | Afficher les journaux des événements
Moniteur système de Windows 2000 | Collecter et afficher les données de performance de l’ordinateur en temps réel
Assistant Sauvegarde de Windows 2000 | Sauvegarder la métabase IIS, les paramètres de Registre de Windows 2000 et les fichiers Commerce Server
Assistant Restauration de Windows 2000 | Restaurer la métabase IIS, les paramètres de Registre de Windows 2000 et les fichiers Commerce Server


Utilisation de Commerce Server Manager

Commerce Server Manager est un outil qui permet de gérer et de configurer les ressources, sites, applications et serveurs Web de Commerce Server 2000. Microsoft Management Console (MMC), une interface Windows incluse dans Microsoft Windows 2000, héberge Commerce Server Manager.

Les fonctionnalités de Commerce Server Manager ne sont pas disponibles via une administration par le Web ou une ligne de commande. En revanche, la plupart des fonctionnalités sont accessibles et manipulables par l’intermédiaire d’objets COM (Component Object Model), aussi est-il possible d’écrire un script WHS (Windows Scripting Host) ou une page ASP (Active Server Pages) pour étendre l’environnement d’administration.

Pour accéder à Commerce Server Manager

  • Cliquez sur Démarrer, pointez sur Programmes, sur Outils d’administration, puis cliquez sur Commerce Server Manager.

Voir aussi

Integrating Custom Resources (en anglais)

Configuration de la base de données d’administration


À propos des ressources, des sites, des applications et des serveurs Web

Les ressources, les sites, les applications et les serveurs Web sont des objets Commerce Server 2000 inclus dans Commerce Server Manager, qui vous permettent de gérer votre installation de Commerce Server. Cette section décrit chaque objet et l’interaction entre les objets.

  • Ressources

  • Sites

  • Applications

  • Serveurs Web

La figure suivante montre la console Commerce Server Manager et identifie ses composantes.

Cliquez sur l'illustration pour l'agrandir ou la réduire.


Ressources

Une ressource est une entité qui fournit une fonctionnalité aux applications d’un site Commerce Server.

Une ressource se compose d’un ou de plusieurs objets COM (Component Object Model) utilisés sur les pages Web d’une application pour accéder à la fonctionnalité de la ressource. Les ressources comprennent des propriétés qui sont stockées dans la base de données d’administration. Ces propriétés sont accessibles et modifiables à l’aide de Commerce Server Manager (et modifiables par programmation à l’aide des objets Config).

Il existe deux types de ressources : les ressources globales et les ressources de site. Les développeurs de sociétés tierces peuvent créer des ressources globales et des ressources de site personnalisées à utiliser avec Commerce Server. Pour plus d’informations, consultez Integrating Custom Resources (en anglais).

Ressources globales

Ressources de site

Ressources globales

Les ressources globales sont à la disposition de tous les sites.

Certaines ressources globales sont créées par le programme d’installation de Commerce Server ; d’autres sont créées lors de la décompression d’un site à l’aide du Gestionnaire de package de site Commerce Server. Seules les ressources ayant des propriétés de niveau global s’affichent dans Commerce Server Manager sous Ressources globales. Les sites qui utilisent une ressource globale utilisent également les propriétés attribuées à cette ressource globale.

Le tableau suivant répertorie et décrit les ressources globales incluses dans Commerce Server.

Ressource globale | Description | Installée par
Service de publipostage (Direct Mailer) Commerce Server (également un service Windows 2000) | Envoie de publipostages personnalisés ou non à d’importants groupes de destinataires. | Programme d’installation de Commerce Server
Predictor (également un service Windows 2000) | Ajoute des fonctionnalités de prévision à votre site Web et crée des modèles d’analyse complexes que vous pouvez utiliser pour identifier des segments de population et les tendances des utilisateurs. | Programme d’installation de Commerce Server
Data Warehouse | Importe et gère les données d’un site Web à partir de fichiers journaux Web, de bases de données Commerce Server et d’autres sources de données. | Gestionnaire de package de site Commerce Server
CS Authentication | Configure les méthodes d’authentification et d’identification de votre site Commerce Server. | Gestionnaire de package de site Commerce Server
Profiles | Crée des sources de données pour le stockage des données de profil ; crée et stocke des propriétés et des définitions de profil. | Gestionnaire de package de site Commerce Server

Ressources de site

Les ressources de site fournissent des fonctionnalités à un site spécifique.

Dans Commerce Server Manager, les pointeurs de ressource globale et les ressources de site sont répertoriés sous le site. Vous configurez les propriétés d’une ressource de site au niveau du site. Vous configurez les pointeurs de ressource globale pour qu’ils pointent vers la ressource globale au niveau global.

Une ressource peut posséder toutes ses propriétés au niveau du site ou au niveau global, mais elle ne peut pas posséder de propriétés aux deux endroits en même temps.

Le tableau suivant répertorie et décrit les ressources de site incluses dans Commerce Server.

Ressource de site | Description
Configuration par défaut de l’application | Stocke les propriétés que vous utilisez pour configurer un site, comme les paramètres régionaux et symboles de devise, les options de facturation et de paiement, les options de confidentialité, l’unité de mesure pour le poids et les options d’intégration à BizTalk Server.
Campagnes marketing | Assure la connexion à la base de données qui stocke les données sur les campagnes marketing (publicités, remises et publipostage).
Catalogue de produits | Assure la connexion à la base de données qui stocke le schéma du catalogue et les données sur les produits.
Transactions | Assure la connexion à la base de données qui stocke les données sur les paniers et les commandes.
Configuration de la transaction | Assure la connexion à la base de données qui stocke les données sur les taux et les modes de livraison, les taux des taxes, les codes de département et de région et les codes de statut des commandes.

Voir aussi

Integrating Custom Resources (en anglais)

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs

Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs

Gestion des ressources Commerce Server


Sites

Un site est un ensemble d’applications ASP (Active Server Page) qui utilisent des objets COM Commerce Server, lesquels utilisent et modifient des ressources. Un site permet d’administrer l’ensemble des applications qu’il contient.

Un site comprend généralement au moins deux applications : une application dans laquelle les utilisateurs naviguent pour consulter votre boutique en ligne, et une autre utilisée par les chefs d’entreprise pour accéder à Commerce Server Business Desk. En outre, un site peut comprendre d’autres applications. Par exemple, un site peut se composer des applications www.paradisalpin.com, www.paradisalpin.com/équipement, www.paradisalpin.com/vêtements et www.paradisalpin.com/BusinessDesk. Toutes ces applications peuvent être distribuées sur plusieurs serveurs.

Les sites utilisent à la fois des ressources globales, qui sont partagées sur plusieurs sites, et des ressources de site qui sont définies explicitement pour le site.

À partir d’un nœud de site dans Commerce Server Manager, vous pouvez compresser un site, ainsi qu’ajouter et supprimer des ressources.

Voir aussi

Utilisation du Gestionnaire de package de site

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs

Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs

Sécurisation de votre site

Sauvegarde de votre site


Applications

Une application Commerce Server 2000 correspond à un site Web. Il s’agit d’une représentation logique d’une application dans les services Internet Information Services (IIS) 5.0 ; elle apparaît à la fois dans les arborescences des consoles Commerce Server Manager et IIS. Dans la console IIS, une application se situe soit au niveau du répertoire de base du site Web, soit au niveau d’un sous-répertoire du site Web. Pour plus d’informations et pour une illustration des relations entre les objets des consoles Commerce Server Manager et IIS, consultez Utilisation de Commerce Server et d’IIS.

Une application représente l’adresse Web à laquelle accède un client Web. Lorsque vous ajoutez une application à Commerce Server, la base de données d’administration est mise à jour à partir des données de configuration de l’application. Lorsque vous ajoutez un serveur Web à l’application, les fichiers ASP sont installés sur l’ordinateur représentant le serveur Web.

Lorsqu’un site Commerce Server est décompressé, il installe généralement deux applications : une application pour le site Web auquel les utilisateurs accèdent pour la navigation et les achats de produits, et une autre pour Commerce Server Business Desk, qui est utilisée pour gérer ce site. Une application ne peut utiliser que les ressources du site auquel elle appartient.

Une application comprend ses propres serveurs Web, lesquels fournissent le contenu des pages ASP pour le site Web. Une application peut comprendre plusieurs serveurs Web ; elle inclut toujours au moins un serveur Web. Vous pouvez installer une application au niveau de la racine d’un site Web IIS ou au niveau d’un répertoire virtuel situé n’importe où sous la racine.

Vous pouvez effectuer les fonctions suivantes à partir des consoles IIS et Commerce Server Manager :

  • À partir du nœud d’application dans le composant logiciel enfichable d’IIS, vous pouvez définir toutes les propriétés disponibles au niveau du répertoire virtuel, notamment les propriétés de répertoire virtuel, les documents par défaut, la sécurité du répertoire, les en-têtes HTTP (Hypertext Transfer Protocol) et les erreurs personnalisées. Vous pouvez également configurer des extensions serveur Microsoft FrontPage et renommer ou supprimer l’application.

  • À partir du nœud d’application dans Commerce Server Manager, vous pouvez définir le nom d’hôte non sécurisé et sécurisé ainsi que le chemin de l’application IIS, activer HTTPS, activer la création de cookie automatique, activer un filtre d’authentification et configurer les paramètres communs à tous les serveurs Web de l’application.

Pour avoir des informations détaillées sur l’héritage des propriétés d’IIS vers Commerce Server, consultez Utilisation de Commerce Server et d’IIS.

Voir aussi

Sécurité de Commerce Server

Utilisation du Gestionnaire de package de site

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs

Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs

Sécurisation de votre site

Gestion des applications et des serveurs Web Commerce Server


Serveurs Web

Dans Commerce Server, un serveur Web est un ordinateur équipé des services Internet Information Services (IIS) 5.0. Pour utiliser un serveur Web avec Commerce Server 2000, vous devez installer Commerce Server sur le même ordinateur qu’IIS.

Dans Commerce Server, un serveur Web est associé à une ou plusieurs applications ; par conséquent, différentes applications peuvent partager le même serveur Web. Le serveur Web contient les fichiers ASP (Active Server Pages) et les sous-dossiers de l’application. Une application peut comporter plusieurs serveurs Web représentant, tous ensemble, une Web farm.

Pour ajouter des fichiers ASP à un serveur Web, vous utilisez le Gestionnaire de package de site Commerce Server pour décompresser le serveur Web. L’objet serveur Web Commerce Server est ajouté à l’application lorsque le processus de décompression est terminé. Dans Commerce Server Manager, un objet serveur Web est exposé sous l’application associée.

L’objet serveur Web contient les propriétés nécessaires au Data Warehouse pour importer les fichiers journaux. Lorsqu’un serveur Web est ajouté, les propriétés suivantes d’IIS sont automatiquement utilisées pour remplir la base de données d’administration de Commerce Server.

Propriété | Description
Nom du serveur | Nom de l’ordinateur sur lequel est installé IIS.
Adresse IP | Adresse IP (Internet Protocol) du site Web IIS de l’application.
Chemin d’accès au fichier journal | Chemin d’accès au fichier dans lequel le site Web IIS de l’application doit écrire les événements, par exemple, C:\Winnt\System32\LogFiles\Log1.
Durée du fichier journal | Durée de conservation du fichier journal par le site Web IIS de l’application avant le remplacement des données.

Vous pouvez afficher ou modifier ces propriétés à partir du nœud de serveur Web dans Commerce Server Manager. Si vous modifiez les propriétés dans Commerce Server Manager, vous devez les changer manuellement dans IIS. Si vous modifiez les propriétés dans IIS, vous pouvez utiliser le bouton Synchroniser les valeurs dans Commerce Server Manager pour copier les nouvelles valeurs d’IIS vers Commerce Server.

Commerce Server prend en charge les serveurs Web qui n’exécutent pas IIS et ne comportent pas de composants Commerce Server. Cela vous permet de rendre les fichiers journaux du serveur Web disponibles pour l’importation par Data Warehouse. Pour plus d’informations, consultez Ajout d’une application et d’un serveur Web non-Commerce Server.

Différentes applications peuvent partager un serveur Web. Chaque application possède une adresse URL unique ; un site Web IIS unique peut servir des adresses URL uniques. Par exemple, le même site Web IIS peut servir à la fois www.microsoft.com et www.microsoft.com/commerceserver.

Si vous gérez une Web farm, vous devez répliquer vos serveurs Web. Il est recommandé d’utiliser Microsoft Application Center Server 2000 ou un autre produit pour effectuer la réplication de contenu.

Voir aussi

Configuration de vos serveurs Web

Ajout d’un serveur Web à une application

Ajout d’un autre serveur Web

Ajout d’une application et d’un serveur Web non-Commerce Server

Configuration d’un serveur Web

Exécution de Data Warehouse


À propos des bases de données Commerce Server

Le tableau suivant répertorie les bases de données généralement utilisées dans un site Commerce Server. Selon les fonctionnalités et la configuration choisies pour votre site, vous pouvez disposer de bases de données en plus ou en moins.

Vous spécifiez les chaînes de connexion de ces bases de données au cours de l’installation et lors du processus de décompression. Vous pouvez toutefois modifier les chaînes de connexion à l’aide de Commerce Server Manager.

Base de données et nom | Description
Commerce Server <nom_site>_commerce | Données pour les catalogues, les campagnes marketing, les transactions, les profils et les événements.
Administration MSCS_Admin | Données de configuration utilisées par Commerce Server.
Data Warehouse <nom_site>_dw | Données opérationnelles quotidiennes sur les utilisateurs qui visitent votre site : données de profil utilisateur, données de transaction et données d’historique des clics. Ces données sont importées à partir de fichiers journaux Web et d’autres bases de données Commerce Server à l’aide des tâches des services de transformation de données (DTS, Data Transformation Services) de Commerce Server.
Service de publipostage | Données pour les listes de publipostage, les messages et les événements.

Voir aussi

Gestion de Commerce Server

Database Table Reference (en anglais)

Working with the Data Warehouse (en anglais)


Définition des chaînes de connexion de base de données

Les chaînes de connexion de Commerce Server, notamment les noms d’utilisateurs et mots de passe d’ouverture de session, sont stockées dans la base de données d’administration.

Remarque

  • Toutes les chaînes de connexion de Commerce Server utilisent la sécurité Microsoft SQL Server. En outre, la chaîne de connexion de la ressource Data Warehouse à la base de données du serveur OLAP (Online Analytical Processing) prend uniquement en charge l’authentification Microsoft Windows NT.

Commerce Server utilise des chaînes de connexion pour les bases de données suivantes :

  • Base de données d’administration et base de données du service de publipostage. Au cours du programme d’installation, vous entrez les noms d’utilisateurs et mots de passe d’ouverture de session pour la base de données d’administration et la base de données du service de publipostage. Vous pourrez modifier ultérieurement ces paramètres à l’aide de Commerce Server Manager.

  • Bases de données utilisées par les ressources. Lorsque vous décompressez un site à l’aide du Gestionnaire de package de site Commerce Server, une chaîne de connexion à la base de données adéquate vous est demandée pour certaines ressources. Le tableau suivant répertorie les chaînes de connexion pour chaque ressource.
    Ressource | Chaîne de connexion
    Catalogue de produits | Base de données du catalogue
    Campagnes marketing | Base de données Campagnes marketing
    Transactions | Base de données Transactions
    Configuration de la transaction | Base de données Configuration des transactions
    Profiles | s_BizDataStoreConnectionString, s_CommerceProviderConnectionString, s_ProfileServiceConnectionString
    Data Warehouse | La chaîne de connexion n’est pas nommée dans l’interface utilisateur, car Data Warehouse dispose de sa propre extension de composant logiciel enfichable.

  • Autres bases de données. Vous spécifiez également les chaînes de connexion dans les cas suivants :
    Fonctionnalité | Chaîne de connexion
    Ressource Configuration par défaut de l’application : intégration à BizTalk Server | Définissez la chaîne de connexion à la base de données du Gestionnaire d’échanges de BizTalk, qui stocke les messages envoyés depuis Commerce Server.
    Gestionnaire de listes : importation et exportation de listes | Dans le module Gestionnaire de listes de Commerce Server Business Desk, définissez la chaîne de connexion pour la table de base de données SQL Server que vous importez ou exportez.
    Outil Migration ProfileBuilder | Une fois que vous avez modifié Migration ProfileBuilder, créez un nom de source de données (DSN) pour la banque de données des profils Commerce Server.
    Ressource Profiles : ajout de sources de données | Utilisez le sélecteur de source de données (et pour le protocole LDAP (Lightweight Directory Access Protocol), la boîte de dialogue Chaîne de connexion LDAP) pour entrer les chaînes de connexion pour les bases de données et les sources LDAP vers lesquelles vous mappez les partitions de source de données.
    Ressource Predictor | Entrez la chaîne de connexion pour une base de données externe, et non pour Data Warehouse.

Utilisez Commerce Server Manager si vous devez modifier une chaîne de connexion pour une base de données.

Pour modifier la chaîne de connexion pour la base de données d’administration

Pour modifier la chaîne de connexion pour une ressource globale

Pour modifier la chaîne de connexion pour une ressource de site

Pour modifier la chaîne de connexion pour la base de données d’administration

  1. Cliquez avec le bouton droit sur Commerce Server Manager, puis cliquez sur Propriétés. La boîte de dialogue Propriétés de Commerce Server Manager s’affiche.

  2. Sous l’onglet Base de données d’administration, cliquez sur Modifier. La boîte de dialogue Propriétés des liaisons de données s’affiche.

  3. Une fois que vous avez apporté les modifications nécessaires à la boîte de dialogue Propriétés des liaisons de données, cliquez sur OK.

    Pour plus d’informations sur les informations à indiquer dans la boîte de dialogue Propriétés des liaisons de données, cliquez sur Aide dans la boîte de dialogue Propriétés des liaisons de données pour ouvrir le fichier d’aide Liaisons de données Microsoft.

Remarque

  • Une fois que vous avez modifié une valeur de propriété dans Commerce Server Manager, vous devez décharger de la mémoire les applications IIS contenues dans le site sur chaque serveur Web pour que les modifications soient prises en compte. Pour connaître les instructions à suivre, consultez Déchargement d’une application de la mémoire.

Pour modifier la chaîne de connexion pour une ressource globale

Étant donné que la ressource globale Data Warehouse dispose de sa propre extension de composant logiciel enfichable dotée d’une interface utilisateur différente, cette procédure ne lui est pas applicable. Pour obtenir des instructions sur la modification de la chaîne de connexion de Data Warehouse, consultez Configuration de la ressource Data Warehouse.

  1. Développez Commerce Server Manager, puis développez Ressources globales.

  2. Cliquez avec le bouton droit sur la ressource globale à configurer, puis cliquez sur Propriétés.

  3. Cliquez sur l’onglet Chaînes de connexion pour configurer les chaînes de connexion de la ressource globale, sélectionnez une chaîne de connexion, puis cliquez sur Modifier. La boîte de dialogue Propriétés des liaisons de données s’affiche.

  4. Une fois que vous avez apporté les modifications nécessaires à la boîte de dialogue Propriétés des liaisons de données, cliquez sur OK.

Remarque

  • Une fois que vous avez modifié une valeur de propriété dans Commerce Server Manager, vous devez décharger de la mémoire les applications IIS contenues dans le site sur chaque serveur Web pour que les modifications soient prises en compte. Pour connaître les instructions à suivre, consultez Déchargement d’une application de la mémoire.

Pour modifier la chaîne de connexion pour une ressource de site

  1. Développez Commerce Server Manager, Sites de commerce, puis développez le site que vous voulez administrer.

  2. Développez Ressources de site, cliquez avec le bouton droit sur la ressource de site à configurer, puis cliquez sur Propriétés.

  3. Dans la boîte de dialogue Propriétés, cliquez sur l’onglet Chaînes de connexion, sélectionnez une chaîne de connexion, puis cliquez sur Modifier. La boîte de dialogue Propriétés des liaisons de données s’affiche.

  4. Une fois que vous avez apporté les modifications nécessaires à la boîte de dialogue Propriétés des liaisons de données, cliquez sur OK.

Remarque

  • Une fois que vous avez modifié une valeur de propriété dans Commerce Server Manager, vous devez décharger de la mémoire les applications IIS contenues dans le site sur chaque serveur Web pour que les modifications soient prises en compte. Pour connaître les instructions à suivre, consultez Déchargement d’une application de la mémoire.

Voir aussi

Connection Strings for the Data Warehouse (en anglais)

Connection Strings for UPM (en anglais)

Code to Connect to the Expression Store (en anglais)

Code to Retrieve the Database Connection String (en anglais)

Code to Connect to the BizData Store (en anglais)


Utilisation de Commerce Server et d'IIS

Utilisation de Commerce Server et d’IIS

L’administrateur système, qui est responsable de l’administration quotidienne de Commerce Server 2000, est généralement responsable également de l’administration des services Internet Information Services (IIS) 5.0.

Bien que Commerce Server dépende d’IIS, la relation entre les objets d’IIS et de Commerce Server n’est pas strictement hiérarchique. L’ensemble des propriétés qui affectent un site Commerce Server comprend des propriétés qui sont :

  • définies uniquement au niveau d’IIS ;

  • définies uniquement dans Commerce Server, indépendamment d’IIS ;

  • héritées d’IIS.

Le composant logiciel enfichable d’IIS vous permet de gérer les autorisations d’accès, la sécurité, les performances, les répertoires et les chemins d’accès de sites Web, l’identification des noms de sites Web, les adresses IP (Internet Protocol) et les ports.

Commerce Server Manager vous permet d’effectuer les tâches suivantes :

  • Gérer des ressources Commerce Server globales et de site, configurer des propriétés spécifiques à Commerce Server, configurer les chaînes de connexion de base de données pour des ressources, ajouter des serveurs Web à une application et en supprimer.

  • Au niveau de l’application Commerce Server, vous pouvez spécifier le chemin de l’application IIS, le site Web IIS, les noms d’hôtes non sécurisés et sécurisés, le port IP et le port IP sécurisé. Vous pouvez également configurer les propriétés permettant d’activer HTTP (Hypertext Transfer Protocol), d’activer le mode de création de cookie automatique et de sélectionner un filtre d’authentification. Ces propriétés s’appliquent à tous les serveurs Web utilisés par l’application.

    Lorsque vous modifiez les propriétés de port à l’aide de Commerce Server Manager, les propriétés ne sont pas automatiquement modifiées dans IIS ; vous devez les modifier manuellement dans IIS. Lorsque vous modifiez les propriétés de port dans IIS, vous devez également les modifier dans Commerce Server. Les propriétés de port suivantes d’IIS sont celles qui sont effectivement utilisées :

    Au niveau de l’application

    • Port TCP (Transmission Control Protocol)

    • Port SSL (Secure Sockets Layer)

    Sur chaque serveur Web

    • Adresse IP (Internet Protocol)

    • Chemin d’accès au fichier journal

    • Durée du fichier journal

    Les propriétés de serveur Web sont héritées d’IIS et stockées dans la base de données d’administration pour en simplifier l’accès. Si vous modifiez les propriétés dans IIS, vous devez synchroniser la base de données d’administration Commerce Server et IIS soit en mettant à jour manuellement les nouvelles valeurs dans Commerce Server Manager, soit en cliquant dans la boîte de dialogue Propriétés de l’application sur l’onglet Serveurs Web, puis en cliquant sur le bouton Synchroniser les valeurs. Pour plus d’informations, consultez Configuration d’une application.

    Lorsque vous cliquez sur Synchroniser les valeurs, Commerce Server copie les propriétés d’IIS au niveau de l’application, ainsi que les propriétés de tous les objets serveur Web sous-jacents à l’application. Pour les propriétés situées au niveau de l’application (port TCP et port SSL), Commerce Server lit les valeurs du premier serveur Web. Il considère que tous les serveurs Web ont été configurés de la même façon, ce qui est impératif pour le bon fonctionnement d’une Web farm.

  • Au niveau du serveur Web Commerce Server, vous pouvez afficher et modifier les propriétés de l’adresse IP (Internet Protocol), du chemin d’accès au fichier journal et de la durée du fichier journal.

    La figure suivante montre les objets situés sur les arborescences des consoles IIS et Commerce Server Manager, ainsi que les relations existant entre ces objets.

    Figure illustrant les relations entre les objets dans IIS et Commerce Server Manager

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

Voir aussi

Configuration d’une application

Ajout d’une application et d’un serveur Web non-Commerce Server

Integrating Custom Resources (en anglais)

Utilisation du Gestionnaire de package de site


À propos des services de transformation de données (DTS)

Commerce Server comprend plusieurs tâches des services de transformation de données (DTS, Data Transformation Services) que vous pouvez utiliser pour importer des données dans Data Warehouse. Les services DTS sont une fonctionnalité de Microsoft SQL Server. Ils offrent des fonctionnalités permettant d’importer, d’exporter et de transformer les données entre Microsoft SQL Server et n’importe quel format OLE DB, ODBC (Open DataBase Connectivity) ou de fichier texte. Par exemple, l’importation des données de catalogue d’une base de données de catalogue vers Data Warehouse est une tâche DTS. Une fois les données importées dans Data Warehouse, les chefs d’entreprise peuvent utiliser les modules Analyse Commerce Server Business Desk pour analyser les données.

Pour des informations détaillées sur l’utilisation des tâches DTS de Commerce Server, consultez Exécution de Data Warehouse.

Le tableau suivant répertorie les tâches DTS incluses dans Commerce Server.

Tâches DTS de Commerce Server 2000 | Description
Importation de journal de serveur Web | Définit et importe les fichiers journaux Web. Cette tâche permet de définir les propriétés de fichier journal Web déterminant les données qui sont importées à partir d’un fichier journal Web et de définir la manière dont les utilisateurs et visites individuels sont distingués.
Synchronisation de la configuration | Synchronise Data Warehouse et Commerce Server Business Desk après avoir apporté des modifications aux paramètres de configuration. Cette tâche doit être effectuée avant chaque tâche d’importation.
Importation des données de transaction | Définit et importe les données de transaction. Cette tâche permet de sélectionner le type de données de transaction que vous souhaitez importer dans Data Warehouse.
Suppression des données | Supprime des données de fichier journal de détail et des données synthétisées de Data Warehouse. Vous supprimez des données de fichier journal pour réduire la taille de Data Warehouse. Vous supprimez l’ensemble des données, de détail et synthétisées, si vous avez importé des données de test et que vous souhaitiez vider Data Warehouse avant d’y importer des données valides.
Importation du catalogue de produits | Importe les données de catalogue. Les rapports de catalogue utilisant des données de catalogue importées contiennent des informations plus descriptives sur les produits que ceux qui utilisent des données de transaction.
Importation de profil utilisateur | Importe les données de profil utilisateur. Les données de profil utilisateur sont définies à l’aide des profils utilisateur créés dans la ressource Profiles. Elles sont utilisées pour collecter des informations personnelles auprès des utilisateurs qui s’inscrivent sur votre site Web.
Résolution IP | Résout les adresses Internet Protocol (IP) à partir des données utilisateur importées. La résolution IP permet de convertir des adresses IP, importées à partir de vos fichiers journaux, en noms de domaines. Par exemple, l’adresse IP 198.105.232.4 devient www.microsoft.com. Ceci permet aux lecteurs de comprendre plus facilement les données contenues dans vos rapports.
Importation de campagne marketing | Importe les données concernant les campagnes marketing. Les données des campagnes marketing vous permettent d’analyser le succès de vos campagnes marketing.
Préparation du rapport | Remplit les cubes OLAP à l’aide des données d’importation, prépare les données pour la génération de rapports et effectue un nettoyage après une suppression. Cette tâche doit être effectuée après chaque tâche d’importation et de suppression.

Pour plus d’informations sur les tâches DTS, consultez la documentation en ligne de SQL Server.

Voir aussi

Exécution de Data Warehouse


Installation des outils d'administration uniquement

Installation des outils d’administration uniquement

Après avoir installé Commerce Server 2000 sur au moins un ordinateur, vous pouvez également configurer une console pour administration uniquement sur un ordinateur distinct. Un ordinateur d’administration uniquement ne possède que Commerce Server Manager et se connecte à la base de données d’administration existante.

Vous pouvez utiliser un ordinateur dédié à l’administration dans les situations suivantes :

  • Vous voulez utiliser votre ordinateur existant avec une installation minimale. Un ordinateur d’administration uniquement nécessite moins de logiciels et de configuration que ceux disposant d’une installation complète de Commerce Server. Il peut exécuter Microsoft Windows 2000 Professionnel au lieu de Microsoft Windows 2000 Server.

  • Vous voulez pouvoir administrer Commerce Server à partir de différents emplacements. Les ordinateurs d’administration uniquement doivent se trouver dans le même domaine ou domaine approuvé que Commerce Server.

Un ordinateur d’administration uniquement doit répondre aux conditions suivantes :

  • Microsoft Windows 2000 Professionnel, Server ou Advanced Server est installé.

  • 20 Mo d’espace disque sont disponibles.

  • La connectivité à la base de données d’administration existante est implémentée.

Pour installer les outils d’administration uniquement

Pour activer l’administration via un serveur proxy ou un pare-feu

Pour installer les outils d’administration uniquement

  1. Insérez le CD-ROM de Commerce Server 2000 dans son lecteur, puis exécutez le programme d’installation (setup) de Commerce Server 2000. Acceptez les termes du contrat de licence, tapez vos informations client, puis acceptez le dossier de destination par défaut.

  2. Dans la boîte de dialogue Type d’installation, sélectionnez Personnalisée, puis cliquez sur Suivant.

  3. Dans la boîte de dialogue Installation personnalisée, sélectionnez l’option Outils d’administration, puis sélectionnez Non disponible pour les autres options. Cliquez sur Suivant.

  4. Dans la boîte de dialogue Configuration de la base de données d’administration, tapez dans la zone Ordinateur SQL Server le nom de l’ordinateur sur lequel vous souhaitez stocker la base de données d’administration. Tapez le nom d’utilisateur et le mot de passe d’ouverture de session SQL Server pour la connexion à la base de données d’administration. Cliquez sur Suivant.

  5. Dans la boîte de dialogue Comptes de services, tapez le nom d’utilisateur et le mot de passe Windows du compte Enregistrement des événements, puis cliquez sur Suivant.

  6. Dans la boîte de dialogue Prêt pour l’installation, cliquez sur Installer.

    Le programme d’installation de Commerce Server installe les outils d’administration sur cet ordinateur. Cet ordinateur vous permet de gérer votre installation de Commerce Server.

  7. Cliquez sur Terminer pour quitter le programme d’installation.

Commerce Server Manager est installé sur votre ordinateur.

Pour activer l’administration via un serveur proxy ou un pare-feu

  • Ouvrez le port 1433 entre SQL Server et l’ordinateur d’administration uniquement.

Par défaut, SQL Server est à l’écoute sur le port 1433. Pour obtenir des instructions sur la modification du numéro de port, consultez la documentation en ligne de SQL Server.

Remarque

  • Bien que vous puissiez utiliser Commerce Server Manager via un serveur proxy ou un pare-feu, vous ne pouvez pas utiliser le Gestionnaire des services Internet via un serveur proxy ou un pare-feu. Pour ajouter la fonctionnalité d’administration d’IIS à un ordinateur d’administration uniquement situé dans la partie éloignée d’un pare-feu, vous pouvez utiliser les services IIS utilisant un navigateur ou les services Terminal Server Microsoft. Pour plus d’informations sur l’utilisation d’IIS, consultez la documentation relative à IIS 5.0. Pour plus d’informations sur l’utilisation des services Terminal Server, consultez « Client des services Terminal Server » dans la documentation de Windows 2000.

Voir aussi

Installation de Commerce Server


Gestion de la base de données d'administration

Gestion de la base de données d’administration

Votre site Commerce Server 2000 peut comporter plusieurs ordinateurs ; cependant, les données de configuration des ressources de tous les ordinateurs sont centralisées dans une base de données d’administration SQL Server unique, nommée MSCS_Admin. Cette base de données est créée automatiquement lorsque vous installez Commerce Server pour la première fois. Durant l’installation, vous devez spécifier l’ordinateur SQL Server pour la base de données d’administration.

Lorsque vous installez Commerce Server sur d’autres ordinateurs, vous configurez au cours de l’installation les ordinateurs pour qu’ils pointent vers la base de données d’administration. La configuration de tous les ordinateurs de sorte qu’ils pointent vers cette base de données centrale vous permet de gérer tous les ordinateurs Commerce Server à partir d’une console centrale.

Remarque

  • Une seule base de données d’administration peut être utilisée par tous les ordinateurs Commerce Server. Chaque ordinateur peut également utiliser sa propre base de données d’administration.

Le tableau suivant montre l’emplacement standard de la base de données d’administration dans différents environnements.

Type d’environnement | Emplacement standard de la base de données d’administration
Serveur unique comprenant Commerce Server, Microsoft SQL Server et tous les composants Web | Sur le serveur unique
Un ou plusieurs serveurs Web et un serveur de base de données | Sur l’ordinateur SQL Server
Environnement à niveaux et serveurs multiples | Sur l’un des ordinateurs SQL Server (pour des performances optimales, à l’écart de Data Warehouse)

Cette section contient les rubriques suivantes :

  • Configuration de la base de données d’administration

  • Interaction entre les sites et la base de données d’administration

  • Gestion de la sécurité sur la base de données d’administration


Configuration de la base de données d'administration

Configuration de la base de données d’administration

Lorsque vous installez Commerce Server 2000, le programme d’installation configure automatiquement votre serveur avec la chaîne de connexion de la base de données d’administration. Cependant, vous pouvez être amené à modifier la chaîne de connexion, par exemple si le nom d’utilisateur ou le mot de passe d’ouverture de session SQL Server de la base de données d’administration a changé.

Remarque

  • Lorsque Commerce Server Manager ne peut pas se connecter à la base de données d’administration, le nœud racine de Commerce Server Manager s’affiche dans le volet de structure de Microsoft Management Console (MMC), mais le reste de la hiérarchie Commerce Server n’apparaît pas. Pour fournir la chaîne de connexion appropriée, vous devez configurer Commerce Server Manager.

Pour configurer Commerce Server Manager

  1. Cliquez avec le bouton droit sur Commerce Server Manager, puis cliquez sur Propriétés. La boîte de dialogue Propriétés de Commerce Server Manager s’affiche.

  2. Sous l’onglet Base de données d’administration, cliquez sur Modifier. La boîte de dialogue Propriétés des liaisons de données s’affiche.

  3. Une fois que vous avez apporté les modifications nécessaires à la boîte de dialogue Propriétés des liaisons de données, cliquez sur OK.

    Remarque

    • Pour plus d’informations sur les informations à indiquer dans la boîte de dialogue Propriétés des liaisons de données, cliquez sur Aide dans la boîte de dialogue Propriétés des liaisons de données pour ouvrir le fichier d’aide Liaisons de données Microsoft.

Voir aussi

Configuration de vos serveurs de bases de données

Sécurisation de votre site

Dépannage de Commerce Server


Interaction entre les sites et la base de données d'administration

Interaction entre les sites et la base de données d’administration

La base de données d’administration est accessible par trois objets COM : SiteConfig, GlobalConfig et SiteConfigReadOnly. La figure suivante montre comment ces objets Config facilitent la communication entre les sites et la base de données d’administration.

Figure illustrant la façon dont les objets Config mettent à jour la base de données d'administration
Applications
<nom_ordinateur>
/RetailBusinessDesk
<nom_ordinateur> /Retail
Applications
Applications
Pages Web
Pages Web
Objets Config
Site 2
Site 1
Base de données
d'administration : SCS_Admin
Site 2
Site 1

Les objets Config écrivent des données dans la base de données d’administration. Ils récupèrent également des données de la base de données, qui sont ensuite utilisées par les applications. Pour plus d’informations sur la programmation à l’aide des objets Config, consultez le Programmer's Reference (en anglais).

Voir aussi

Configuration de vos plates-formes de serveur

Sécurisation de votre site

Gestion de la sécurité sur la base de données d’administration


Gestion de la sécurité sur la base de données d'administration

Gestion de la sécurité sur la base de données d’administration

La chaîne de connexion de la base de données d’administration utilise un nom d’utilisateur et un mot de passe d’ouverture de session Microsoft SQL Server.

Durant l’installation de Commerce Server, le programme d’installation vous demande d’entrer un nom d’utilisateur et un mot de passe de connexion d’accès SQL Server, ce qui lui permet de créer une base de données d’administration sur le serveur SQL ou de se connecter à la base de données, si elle existe déjà.

Une fois la base de données d’administration créée, vous pouvez utiliser Microsoft SQL Server Enterprise Manager pour modifier le nom d’utilisateur et le mot de passe d’ouverture de session SQL Server de la base de données d’administration. Si vous souhaitez utiliser une connexion d’accès SQL Server différente pour vous connecter à la base de données d’administration depuis l’ordinateur Commerce Server, vous devez utiliser Commerce Server Manager afin de modifier la chaîne de connexion de la base de données.

Pour des raisons de sécurité, n’utilisez pas la connexion d’accès « sa » (administrateur système) pour accéder à la base de données d’administration. À la place, utilisez SQL Server Enterprise Manager pour créer une nouvelle connexion d’accès et un nouvel utilisateur pour la base de données d’administration.

Pour modifier le nom d’utilisateur et le mot de passe d’ouverture de session SQL Server de la base de données d’administration

  1. Cliquez avec le bouton droit sur Commerce Server Manager, puis cliquez sur Propriétés. La boîte de dialogue Propriétés de Commerce Server Manager s’affiche.

  2. Sous l’onglet Base de données d’administration, cliquez sur Modifier. La boîte de dialogue Propriétés des liaisons de données s’affiche.

  3. Une fois que vous avez apporté les modifications nécessaires à la boîte de dialogue Propriétés des liaisons de données, cliquez sur OK.

    Remarque

    • Pour plus d’informations sur les informations à indiquer dans la boîte de dialogue Propriétés des liaisons de données, cliquez sur Aide dans la boîte de dialogue Propriétés des liaisons de données pour ouvrir le fichier d’aide Liaisons de données Microsoft.

Voir aussi

Sécurisation de votre site

Gestion de Commerce Server


Gestion des ressources Commerce Server

Il existe deux types de ressources : les ressources globales et les ressources de site. Les développeurs de sociétés tierces peuvent créer des ressources globales et des ressources de site personnalisées à utiliser avec Commerce Server. Utilisez les procédures indiquées dans cette section pour installer, ajouter et configurer les ressources Commerce Server.

Cette section contient les rubriques suivantes :

  • Installation et désinstallation des ressources globales. Explique comment installer et désinstaller une ressource globale.

  • Ajout d’un pointeur de ressource globale à un site. Explique comment ajouter un pointeur de ressource globale à un site.

  • Ajout d’une ressource à un site. Explique comment ajouter une ressource à un site.

  • Configuration d’une ressource globale. Explique comment configurer une ressource globale.

  • Configuration d’une ressource de site. Explique comment configurer une ressource de site.

  • Configuration des propriétés de la ressource Configuration par défaut de l’application. Explique comment configurer la ressource Configuration par défaut de l’application.

  • Modification d’un compte de service ou d’un mot de passe. Explique comment modifier un compte ou un mot de passe pour les services Predictor, Service de publipostage, Enregistrement des événements et Gestionnaire de listes.

  • Suppression d’une ressource d’un site. Explique comment supprimer une ressource d’un site.


Installation et désinstallation des ressources globales

Le programme d’installation de Microsoft Commerce Server 2000 vous permet d’installer et de désinstaller les ressources Predictor et Service de publipostage, constituant deux des ressources globales de Commerce Server. D’autres ressources globales sont créées durant le processus de décompression.

Une fois les ressources Predictor et Service de publipostage installées, vous devez les décompresser pour permettre leur utilisation par un site. Lorsque vous décompressez une application, vous définissez les valeurs Predictor et Service de publipostage pour les pointeurs de ressource globale du site. Pour obtenir des instructions sur l’ajout de pointeurs de ressource globale à un site et leur suppression, consultez Ajout d’un pointeur de ressource globale à un site et Suppression d’une ressource d’un site.

Pour plus d’informations sur l’installation et le déploiement de Predictor et du service de publipostage, consultez Déploiement de votre site.

Remarque

  • Dans la version initiale de Commerce Server 2000, vous ne pouvez pas installer le service de publipostage sur un cluster virtuel SQL Server. Installez le service de publipostage sur un nœud physique du cluster virtuel SQL Server en utilisant le nom de l’ordinateur physique, puis utilisez une instance SQL Server à l’écart de l’instance virtuelle.

Pour installer Predictor ou le service de publipostage

  1. Insérez le CD-ROM Commerce Server 2000, puis exécutez le programme d’installation (setup) de Commerce Server 2000. Acceptez les termes du contrat de licence, tapez vos informations client, puis sélectionnez le dossier de destination.

  2. Dans la boîte de dialogue Type d’installation, sélectionnez Personnalisée (ou Modifier si vous avez déjà installé Commerce Server sur cet ordinateur), puis cliquez sur Suivant.

  3. Dans la boîte de dialogue Installation personnalisée, sous le dossier Objets d’exécution, sélectionnez l’option Service Predictor ou Service de publipostage, puis sélectionnez Non disponible pour les autres options. Cliquez sur Suivant.

  4. Dans la boîte de dialogue Configuration de la base de données du service de publipostage, dans la zone Ordinateur SQL Server, tapez le nom de cet ordinateur. Tapez le nom d’utilisateur et le mot de passe d’ouverture de session SQL Server à utiliser lors de la création de la base de données du service de publipostage. Cliquez sur Suivant.

  5. Dans la boîte de dialogue Comptes de services, tapez le nom d’utilisateur et le mot de passe Windows du compte sous lequel les services s’exécuteront. Cliquez sur Suivant.

    Remarque

    • Utilisez un compte permanent. Si ce compte est désactivé à une date ultérieure ou si le mot de passe est modifié, Commerce Server cessera de fonctionner. Pour obtenir des instructions sur la modification d’un compte de service ou d’un mot de passe, consultez Modification d’un compte de service ou d’un mot de passe.
  6. Dans la boîte de dialogue Prêt pour l’installation, cliquez sur Installer.

    Le programme d’installation de Commerce Server installe Predictor et/ou le service de publipostage sur l’ordinateur.

  7. Cliquez sur Terminer pour quitter le programme d’installation.

Pour désinstaller Predictor ou le service de publipostage

  1. Insérez le CD-ROM de Commerce Server 2000 dans son lecteur, puis exécutez le programme d’installation de Commerce Server 2000. Acceptez les termes du contrat de licence, tapez vos informations client, puis acceptez le dossier de destination par défaut.

  2. Dans la boîte de dialogue Type d’installation, sélectionnez Modifier, puis cliquez sur Suivant.

  3. Dans la boîte de dialogue Installation personnalisée, vérifiez que la fonctionnalité que vous voulez supprimer, à savoir Service Predictor ou Service de publipostage, n’est pas sélectionnée (la case à cocher doit contenir un X, ce qui indique que vous ne l’avez pas activée). Cliquez sur Suivant.

  4. Dans la boîte de dialogue Prêt pour l’installation, cliquez sur Installer.

    Le programme d’installation de Commerce Server supprime Predictor et/ou le service de publipostage de l’ordinateur.

  5. Cliquez sur Terminer pour quitter le programme d’installation.

Voir aussi

Déploiement de votre site

Ajout d’un pointeur de ressource globale à un site

Suppression d’une ressource d’un site

Installation de Commerce Server

Désinstallation de Commerce Server


Ajout d'un pointeur de ressource globale à un site

Ajout d’un pointeur de ressource globale à un site

Après avoir utilisé le programme d’installation de Commerce Server 2000 pour installer une ressource globale, vous pouvez ajouter un pointeur vers la ressource à n’importe quel site de votre base de données d’administration Commerce Server. Pour ajouter un pointeur de ressource globale à un site, vous devez décompresser le pointeur de ressource globale à partir d’un fichier du Gestionnaire de package de site Commerce Server.

Par exemple, une fois que vous avez installé Predictor et le service de publipostage, vous décompressez un site comprenant les ressources Predictor et Service de publipostage. Lorsque vous décompressez le site, vous définissez les valeurs Predictor et Service de publipostage pour les pointeurs de ressource globale du site.

Remarques

  • Avant d’exécuter cette procédure, vous devez créer un fichier de package ou utiliser un des packages de site solution qui contient le pointeur de ressource globale à ajouter au site. Pour obtenir des instructions sur la création d’un package, consultez Utilisation du Gestionnaire de package de site.

  • Si vous décompressez la ressource Service de publipostage après avoir décompressé une application Commerce Server Business Desk et installé un client Business Desk, vous devez redémarrer les services Internet Information Services (IIS) 5.0 sur le serveur Web hébergeant l’application Business Desk pour que l’ajout du service de publipostage soit détecté. Les clients Business Desk doivent se reconnecter à l’application. Pour obtenir des instructions sur le redémarrage d’IIS, consultez Redémarrage d’IIS.

Pour ajouter un pointeur de ressource globale à un site

  1. Développez Commerce Server Manager, Sites de commerce, puis développez le site que vous voulez administrer.

  2. Cliquez sur Ressources de site, cliquez avec le bouton droit sur Ressources de site, pointez sur Nouveau, puis cliquez sur Ajouter une ressource.

    La boîte de dialogue Ouvrir s’affiche.

  3. Sélectionnez le package qui contient le pointeur de ressource globale à ajouter au site, puis cliquez sur Ouvrir.

    Le Gestionnaire de package de site Commerce Server est démarré.

  4. Dans la boîte de dialogue Sélectionner des ressources, sélectionnez la ressource globale de votre choix dans la zone Ressources disponibles, puis cliquez sur Ajouter. La ressource s’affiche dans la zone Ressources à décompresser. Cliquez sur Suivant.

  5. Dans la boîte de dialogue Pointeurs de ressource globale, vérifiez que la ressource pointe vers la ressource globale adéquate. Vous pouvez créer certains types de ressources globales à partir de cet écran. Pour ce faire, sélectionnez Créer une nouvelle ressource globale lors du mappage du pointeur de ressource globale.

  6. Dans la boîte de dialogue Chaînes de connexion de base de données, le Gestionnaire de package de site répertorie les bases de données qu’il crée ainsi que les serveurs sur lesquels elles sont créées.

  7. Si vous avez besoin de créer une nouvelle base de données pour une ressource globale, cliquez sur Nouvelle base de données.

    Dans la zone Ordinateur SQL Server, tapez le nom de l’ordinateur qui contiendra la base de données. Dans la zone Nom de la base de données, tapez le nom que vous voulez attribuer à votre base de données. Dans les zones restantes, tapez un nom d’utilisateur et un mot de passe d’ouverture de session SQL Server, puis cliquez sur Créer la base de données.

  8. De retour dans la boîte de dialogue Chaînes de connexion de base de données, sélectionnez une chaîne de connexion, puis cliquez sur Modifier.

  9. Dans la boîte de dialogue Propriétés des liaisons de données, apportez les modifications nécessaires, puis cliquez sur OK.

    Remarque

    • Pour plus d’informations sur les informations à indiquer dans la boîte de dialogue Propriétés des liaisons de données, cliquez sur Aide dans la boîte de dialogue Propriétés des liaisons de données pour ouvrir le fichier d’aide Liaisons de données Microsoft.
  10. Cliquez sur Suivant.

  11. Dans la boîte de dialogue Décompression terminée, consultez le fichier journal du processus de décompression, puis cliquez sur Terminer.

Le pointeur de ressource globale s’affiche sous le site dans Commerce Server Manager.

Voir aussi

Notions de base de l’administration

Utilisation du Gestionnaire de package de site

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs

Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs

Suppression d’une ressource d’un site

Installation de Commerce Server


Ajout d'une ressource à un site

Ajout d’une ressource à un site

Pour ajouter une ressource à un site, vous devez décompresser la ressource à partir d’un fichier de package.

Remarques

  • Avant d’exécuter cette procédure, vous devez créer un fichier de package ou utiliser un package de site solution qui contient la ressource à ajouter au site. Pour obtenir des instructions sur la compression d’une ressource et la création d’un fichier de package, consultez Utilisation du Gestionnaire de package de site.

  • Si vous décompressez la ressource Service de publipostage après avoir décompressé une application Commerce Server Business Desk et installé un client Business Desk, vous devez redémarrer les services Internet Information Services (IIS) 5.0 sur le serveur Web hébergeant l’application Business Desk pour que l’ajout du service de publipostage soit détecté. Les clients Business Desk doivent se reconnecter à l’application. Pour obtenir des instructions sur le redémarrage d’IIS, consultez Redémarrage d’IIS.

Pour ajouter une ressource de site

  1. Développez Commerce Server Manager, Sites de commerce, puis développez le site que vous voulez administrer.

  2. Cliquez sur Ressources de site, cliquez avec le bouton droit sur Ressources de site, pointez sur Nouveau, puis cliquez sur Ajouter une ressource.

    La boîte de dialogue Ouvrir s’affiche et contient une liste des packages de site existants.

  3. Sélectionnez le package qui contient la ressource à ajouter au site, puis cliquez sur Ouvrir.

    Le Gestionnaire de package de site Commerce Server est démarré.

  4. Dans la boîte de dialogue Sélectionner des ressources, sélectionnez la ressource de votre choix dans la zone Ressources disponibles, puis cliquez sur Ajouter. La ressource s’affiche dans la zone Ressources à décompresser. Cliquez sur Suivant.

  5. Dans la boîte de dialogue Pointeurs de ressource globale, vérifiez que la ressource pointe vers le serveur contenant la ressource globale adéquate. Vous pouvez créer certains types de ressources globales à partir de cet écran. Pour ce faire, sélectionnez Créer une nouvelle ressource globale lors du mappage du pointeur de ressource globale.

    Le Gestionnaire de package de site répertorie les propriétés de chaîne de connexion des nouvelles ressources globales que vous ajoutez. Il ne répertorie pas les propriétés de chaîne de connexion si la ressource que vous ajoutez ne constitue pas un pointeur de ressource globale.

  6. Dans la boîte de dialogue Chaînes de connexion de base de données, le Gestionnaire de package de site répertorie les bases de données qu’il crée ainsi que les serveurs sur lesquels elles sont créées.

  7. Si vous avez besoin de créer une nouvelle base de données pour une ressource globale, cliquez sur Nouvelle base de données.

    Dans la zone Ordinateur SQL Server, tapez le nom de l’ordinateur qui contiendra la base de données. Dans la zone Nom de la base de données, tapez le nom que vous voulez attribuer à votre base de données. Dans les zones restantes, tapez le nom d’utilisateur et le mot de passe d’ouverture de session SQL Server, puis cliquez sur Créer la base de données.

  8. De retour dans la boîte de dialogue Chaînes de connexion de base de données, sélectionnez une chaîne de connexion, puis cliquez sur Modifier.

  9. Dans la boîte de dialogue Propriétés des liaisons de données, apportez les modifications nécessaires, puis cliquez sur OK.

    Remarque

    • Pour plus d’informations sur les informations à indiquer dans la boîte de dialogue Propriétés des liaisons de données, cliquez sur Aide dans la boîte de dialogue Propriétés des liaisons de données pour ouvrir le fichier d’aide Liaisons de données Microsoft.
  10. Cliquez sur Suivant.

  11. Dans la boîte de dialogue Décompression terminée, consultez le fichier journal du processus de décompression, puis cliquez sur Terminer.

La ressource s’affiche sous le site dans Commerce Server Manager.

Voir aussi

Ressources

Utilisation du Gestionnaire de package de site

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs

Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs

Configuration d’une ressource de site

Suppression d’une ressource d’un site


Configuration d'une ressource globale

Configuration d’une ressource globale

Après avoir installé une ressource globale, vous pouvez modifier à tout moment les propriétés et les chaînes de connexion de base de données utilisées par la ressource globale.

Remarque

  • Lorsque vous modifiez les propriétés ou la chaîne de connexion de base de données d’une ressource globale via Commerce Server Manager, les modifications ne sont pas répercutées immédiatement dans Commerce Server Business Desk ou dans les pages Web des applications qui utilisent la ressource globale. Pour actualiser ces modifications, utilisez le composant logiciel enfichable des services Internet Information Services (IIS) 5.0 pour décharger les applications IIS sur les serveurs Web utilisés par les applications. Pour connaître les instructions à suivre, consultez Déchargement d’une application de la mémoire.

Pour configurer une ressource globale

  1. Développez Commerce Server Manager, puis développez Ressources globales.

  2. Cliquez avec le bouton droit sur la ressource globale à configurer, puis cliquez sur Propriétés.

  3. Dans la boîte de dialogue Propriétés <ressource globale>, cliquez sur l’onglet Propriétés pour configurer les propriétés de la ressource globale.

  4. Pour chaque propriété à configurer, sélectionnez la propriété, puis entrez sa valeur dans la zone Valeur de propriété sélectionnée.

  5. Cliquez sur l’onglet Chaînes de connexion pour configurer les chaînes de connexion de la ressource globale, puis sur Modifier. La boîte de dialogue Propriétés des liaisons de données s’affiche.

    Remarque

    • Pour plus d’informations sur les informations à indiquer dans la boîte de dialogue Propriétés des liaisons de données, cliquez sur Aide dans la boîte de dialogue Propriétés des liaisons de données pour ouvrir le fichier d’aide Liaisons de données Microsoft.
  6. Une fois que vous avez apporté les modifications nécessaires à la boîte de dialogue Propriétés des liaisons de données, cliquez sur OK.

La ressource globale sélectionnée est à présent configurée.

Remarque

  • Une fois que vous avez modifié une valeur de propriété dans Commerce Server Manager, vous devez décharger de la mémoire les applications IIS contenues dans le site sur chaque serveur Web pour que les modifications soient prises en compte. Pour connaître les instructions à suivre, consultez Déchargement d’une application de la mémoire.

Voir aussi

Ressources

Configuration d’une ressource de site

Déchargement d’une application de la mémoire


Configuration d'une ressource de site

Configuration d’une ressource de site

Après avoir ajouté une ressource de site à un site, vous pouvez modifier à tout moment les propriétés utilisées par la ressource de site. Toutes les ressources de site utilisées par un site exposent un objet au niveau du site.

Remarque

  • Les ressources globales utilisées par un site exposent un objet au niveau du site (un pointeur de ressource globale) ; cependant, la seule propriété exposée par l’objet est un pointeur vers la ressource globale associée. Pour plus d’informations sur la configuration des ressources globales, consultez Configuration d’une ressource globale.

Pour configurer une ressource de site

  1. Développez Commerce Server Manager, Sites de commerce, puis développez le site que vous voulez administrer.

  2. Développez Ressources de site, cliquez avec le bouton droit sur la ressource de site à configurer, puis cliquez sur Propriétés.

  3. Dans la boîte de dialogue Propriétés, sélectionnez la propriété à configurer, puis entrez sa valeur dans la zone Valeur de propriété sélectionnée.

  4. Lorsque vous avez terminé de configurer les propriétés de la ressource de site, cliquez sur OK.

Remarque

  • Une fois que vous avez modifié une valeur de propriété dans Commerce Server Manager, vous devez décharger de la mémoire les applications IIS contenues dans le site sur chaque serveur Web pour que les modifications soient prises en compte. Pour connaître les instructions à suivre, consultez Déchargement d’une application de la mémoire.

Voir aussi

Ressources

Configuration d’une ressource globale


Configuration des propriétés de la ressource Configuration par défaut de l'application

Configuration des propriétés de la ressource Configuration par défaut de l’application

La ressource Configuration par défaut de l’application dispose de propriétés qui affectent les fonctionnalités de votre site et de Commerce Server Business Desk. Par exemple, les propriétés de App Default Config vous permettent de spécifier les devises prises en charge et les options de paiement lorsque vous configurez Commerce Server pour l’intégration à Microsoft BizTalk Server 2000.

Pour plus d’informations sur la configuration de App Default Config pour utiliser BizTalk Server, consultez Configuration de Commerce Server pour l’utilisation de BizTalk Server. Pour plus d’informations sur la localisation d’un site, consultez Modifying Your Site for an International Audience (en anglais).

Pour configurer la ressource Configuration par défaut de l’application

  1. Développez Commerce Server Manager, Sites de commerce, puis développez le site que vous voulez administrer.

  2. Cliquez avec le bouton droit sur App Default Config, puis cliquez sur Propriétés.

  3. Sous l’onglet Propriétés, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Options de redirection d’élément ajouté | Spécifier la fonctionnalité du site qui intervient une fois qu’un utilisateur a ajouté un article à son panier. Taper 1 pour continuer l’affichage de la page du produit en cours ; taper 0 pour rediriger vers la page du panier.
    Options du carnet d’adresses Spécifier si le site prend en charge la fonctionnalité de carnet d’adresses.

    Taper 0 pour désactiver le carnet d’adresses.

    Taper 1 pour mettre le carnet d’adresses en lecture seule. Si un carnet d’adresses est prédéfini, vous pouvez choisir cette option.

    Taper 2 pour mettre le carnet d’adresses en lecture-écriture, de telle sorte que les utilisateurs puissent ajouter et modifier des adresses.
    Délai d’expiration du ticket d’authentification AuthManager | Taper le nombre de minutes au terme desquelles le ticket expire. Cette propriété est utilisée uniquement si vous développez un site qui a pour base un site solution Commerce Server.
    Type de catalogue de BizTalk | Taper le nom de la définition de document requis par BizTalk Server pour les catalogues (par exemple, CatalogTransferDoc).
    Options de BizTalk | Taper 1 pour activer l’intégration à BizTalk Server pour l’échange de documents ; taper 0 pour désactiver l’intégration.
    Type de bon de commande de BizTalk | Taper le nom de la définition de document requis par BizTalk Server pour les bons de commande (par exemple, BonCommande).
    Qualificateur d’organisation source de BizTalk | Taper le qualificateur d’alias de ce site dans BizTalk Server (par exemple, MaSociété).
    Valeur du qualificateur d’organisation source de BizTalk | Taper la valeur d’alias de ce site dans BizTalk Server (par exemple, Expéditeur).
    Type de validation de BizTalk | Taper 1 pour soumettre des documents à BizTalk Server en mode asynchrone.
    Options de correction du chemin de cookie | Taper 1 pour activer la correction basée sur l’application ; taper 2 pour activer la correction basée sur le filtre.
    Devise : code de devise secondaire | Taper le code ISO 4217 pour la devise secondaire.
    Devise : taux de conversion de devise secondaire | Taper le taux de conversion utilisé entre la devise de base et la devise secondaire.
    Devise : paramètres régionaux de devise secondaire | Taper les paramètres régionaux pour la devise secondaire (1031 = Allemand, 1033 = Anglais, 1034 = Espagnol, 1036 = Français, 1041 = Japonais).
    Devise : options de devise secondaire | Taper 1 pour afficher les deux devises en même temps ; taper 0 pour désactiver cette fonctionnalité.
    Devise : symbole de devise secondaire | Entrer le symbole de la devise secondaire, si une devise secondaire est utilisée.
    Devise : code de devise de base | Taper le code ISO 4217 pour la devise de base.
    Devise : paramètres régionaux de devise de base | Taper les paramètres régionaux pour la devise de base (1031 = Allemand, 1033 = Anglais, 1034 = Espagnol, 1036 = Français, 1041 = Japonais).
    Devise : symbole de devise de base | Taper le symbole de la devise de base.
    Options sur l''ordre d’affichage des devises | Taper 0 pour afficher d’abord la devise de base lorsqu’une devise secondaire est utilisée ; taper 1 pour afficher d’abord la devise secondaire.
    Options d’administration déléguée Taper 1 pour activer les Services Partenaires de Business Desk ; taper 0 pour les désactiver.

    Pour créer un administrateur délégué, dans le module Utilisateurs de Commerce Server Business Desk, vous devez créer un utilisateur pour lequel le paramètre Indicateurs de rôles du Service Partenaire a la valeur « Administrateur », puis associer l’utilisateur à une organisation spécifique.

    Les administrateurs délégués disposent d’un lien aux Services partenaires sur leur site. Les Services partenaires leur permettent d’effectuer certaines tâches pour leur organisation, telles que la gestion des utilisateurs et la consultation de commandes.
    Options de connexion par formulaire Taper l’une des valeurs suivantes pour spécifier le moment où les utilisateurs doivent se connecter sur votre site :

    0 = Désactiver la connexion. Les utilisateurs ne peuvent accéder au site qu’en tant qu’invité.

    1 = Requis lorsqu’un utilisateur accède au site.

    2 = Facultatif lorsqu’un utilisateur accède au site.

    5 = Requis au moment de l’achat.

    6 = Facultatif en toutes circonstances.

    7 = Requière l’authentification IIS.

    Cette propriété est utilisée uniquement si vous développez un site qui a pour base un site solution Commerce Server.
    Options de correction de nom d’hôte | Taper 1 pour activer la correction de nom d’hôte ; taper 0 pour désactiver cette fonctionnalité.
    Jeu de caractères pour le codage de page | Spécifier le jeu de caractères de codage du document pour le site, par exemple Windows - 1252.
    Options de paiement | Taper 1 si les utilisateurs paient leurs commandes à l’aide d’une carte de crédit ; taper 4 si le compte des utilisateurs doit être facturé ; taper 5 pour prendre en charge les deux options.
    Paramètres régionaux par défaut du site | Taper les paramètres régionaux de ce site (1031 = Allemand, 1033 = Anglais, 1034 = Espagnol, 1036 = Français, 1041 = Japonais).
    Options de confidentialité du site Taper 1 pour créer le profil des utilisateurs anonymes ; taper 2 pour créer le profil et suivre les visites des utilisateurs anonymes.

    Cette propriété est utilisée uniquement si vous développez un site qui a pour base un site solution Commerce Server.
    Options d’inscription au site | Taper 1 pour activer l’enregistrement automatique ; taper 2 pour désactiver cette fonctionnalité. Cette propriété est utilisée uniquement si vous développez un site qui a pour base un site solution Commerce Server.
    Options du ticket de site | Taper 1 pour placer le ticket utilisateur dans l’adresse URL ; taper 2 pour placer le ticket utilisateur dans le cookie. Cette propriété est utilisée uniquement si vous développez un site qui a pour base un site solution Commerce Server.
    Nom du serveur SMTP | Taper le nom d’ordinateur du serveur SMTP (Simple Mail Transfer Protocol).
    Unité de mesure pour le poids | Taper l’unité de mesure pour le calcul des frais de livraison des produits.

  4. Sous l’onglet Chaînes de connexion, cliquez sur Modifier pour spécifier la chaîne de connexion à la base de données du Gestionnaire d’échanges de BizTalk, qui stocke les messages envoyés depuis Commerce Server.

  5. Cliquez sur OK.

Remarques

  • Une fois que vous avez modifié une valeur de propriété dans Commerce Server Manager, vous devez décharger de la mémoire les applications IIS contenues dans le site sur chaque serveur Web pour que les modifications soient prises en compte. Pour connaître les instructions à suivre, consultez Déchargement d’une application de la mémoire.

  • Pour plus d’informations sur la façon dont les sites solutions utilisent les propriétés d’authentification App Default Config, consultez le Kit de Ressources Techniques Commerce Server 2000.

Voir aussi

Ressources

Utilisation de BizTalk Server et de Commerce Server

Gestion de la ressource CS Authentication

Integrating with BizTalk Server (en anglais)

Configuration de Commerce Server pour l’utilisation de BizTalk Server

Modifying Your Site for an International Audience (en anglais)


Modification d'un compte de service ou d'un mot de passe

Modification d’un compte de service ou d’un mot de passe

Lorsque vous installez Commerce Server, vous spécifiez les noms d’utilisateur et mots de passe Windows pour les services Commerce Server Gestionnaire de listes, Service de publipostage, Predictor, ainsi qu’un compte Windows à utiliser pour l’enregistrement des événements. Si le mot de passe de l’un de ces comptes Windows est modifié ou si vous voulez changer un des comptes Windows utilisés, vous devez spécifier ce changement dans la console Services Windows. Vous devez mettre à jour dans la console le compte et le mot de passe pour chacun des trois services.

Pour changer le compte pour l’enregistrement des événements, vous devez utiliser le composant logiciel enfichable des Services de composants.

Pour modifier un compte de service ou un mot de passe

Pour modifier un compte de service ou un mot de passe pour l’enregistrement des événements

Pour modifier un compte de service ou un mot de passe

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Outils d’administration, puis cliquez sur Services.

  2. Dans la fenêtre Services, cliquez avec le bouton droit sur le service Commerce Server dont vous voulez changer le nom de compte ou le mot de passe, puis cliquez sur Propriétés.

  3. Cliquez sur l’onglet Connexion.

  4. Sous l’onglet Connexion, effectuez les opérations suivantes :
    Utilisez ceci

            Pour faire cela

    Ce compte Taper le nom d’utilisateur du compte Windows à utiliser pour authentifier ce service. Vous devez taper le nom sous la forme suivante :

    nom_domaine\nom_utilisateur
    Mot de passe | Taper le mot de passe pour ce compte utilisateur.
    Confirmer le mot de passe | Retaper le mot de passe pour ce compte utilisateur.

  5. Cliquez sur OK.

Pour modifier un compte de service ou un mot de passe pour l’enregistrement des événements

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Outils d’administration, puis cliquez sur Services de composants.

  2. Développez Services de composants, Ordinateurs, Poste de travail, puis Applications COM+.

  3. Cliquez avec le bouton droit sur Commerce Event Logging, puis cliquez sur Propriétés.

  4. Sous l’onglet Identité, tapez le nom d’utilisateur et le mot de passe, puis cliquez sur OK.


Suppression d'une ressource d'un site

Suppression d’une ressource d’un site

Si une ressource n’est utilisée par aucune application, vous pouvez la supprimer de votre site.

Le tableau suivant répertorie le résultat de la suppression d’une ressource d’un site.

Ressource | Effet de l’opération de suppression
Configuration par défaut de l’application | Supprime la ressource de la base de données d’administration.
Profiles | Supprime la ressource de la base de données d’administration. Les données de la base de données des profils ne sont pas supprimées.
Campagnes marketing | Exécute Schema_drop.sql, qui supprime les procédures stockées, les déclencheurs et les tables de suppression. La ressource de la base de données d’administration est également supprimée.
CS Authentication | Supprime la référence du site à une ressource globale CS Authentication de la base de données d’administration.
Data Warehouse | Supprime la référence du site à une ressource globale Data Warehouse de la base de données d’administration.
Service de publipostage (Direct Mailer) Commerce Server | Supprime la référence du site à une ressource globale Service de publipostage de la base de données d’administration.
Predictor | Supprime la référence du site à une ressource globale Predictor de la base de données d’administration.
Catalogue de produits | Supprime la ressource de la base de données d’administration.
Transactions | Supprime la ressource de la base de données d’administration.
Configuration de la transaction | Supprime la ressource de la base de données d’administration.

Pour supprimer une ressource d’un site

  1. Développez Commerce Server Manager, Sites de commerce, puis développez le site que vous voulez administrer.

  2. Cliquez avec le bouton droit sur la ressource à supprimer, puis cliquez sur Supprimer.

Les données de la ressource sont supprimées de la base de données d’administration. Dans Commerce Server Manager, l’objet ressource ne s’affiche plus sous le site. Si vous avez supprimé un pointeur de ressource globale, la ressource globale vers laquelle il pointait est toujours disponible pour les autres sites qui l’utilisent.

Voir aussi

Ressources

Ajout d’une ressource à un site


Gestion des sites Commerce Server

Le conteneur de sites Commerce Server, qui s’affiche dans Commerce Server Manager, est créé durant l’exécution du programme d’installation. Les instances de sites sont créées pour chaque site à partir d’un package, et s’affichent sous forme de sous-dossiers dans le conteneur. Vous ajoutez des sites et des ressources de site à l’aide de Commerce Server Manager et du Gestionnaire de package de site Commerce Server.

Cette section contient les rubriques suivantes :

  • Ajout d’un site. Explique comment ajouter un site à Commerce Server.

  • Suppression d’un site. Explique comment supprimer un site de Commerce Server.


Ajout d'un site

Ajout d’un site

Après avoir installé Microsoft Commerce Server 2000 sur un ordinateur, vous pouvez y ajouter un site.

Remarque

  • Avant d’exécuter cette procédure, vous devez créer un fichier de package qui contient le site à ajouter ou utiliser l’un des packages de sites solutions. Pour obtenir des instructions sur la compression d’un site, consultez Utilisation du Gestionnaire de package de site.

Les instructions suivantes sont basées sur l’hypothèse que l’utilisateur connecté dispose des autorisations appropriées pour copier des fichiers vers les dossiers de destination.

Pour ajouter un site

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft Commerce Server 2000, puis cliquez sur Gestionnaire de package de site Commerce Server.

    L’écran Gestionnaire de package de site Commerce Server s’affiche.

  2. Sélectionnez Décompresser à partir d’un fichier de package (.pup), puis cliquez sur Suivant.

  3. Dans la boîte de dialogue Décompresser, cliquez sur le bouton Parcourir situé à côté de la zone Fichier à décompresser. L’écran Ouvrir s’affiche.

  4. Dans la boîte de dialogue Ouvrir, naviguez vers le dossier contenant le fichier à décompresser, sélectionnez le fichier, puis cliquez sur Ouvrir.

  5. De retour dans la boîte de dialogue Décompresser, sélectionnez Décompression rapide si vous envisagez de placer l’ensemble de vos fichiers de base de données sur un serveur SQL Server. Si vous choisissez cette option, cliquez sur Suivant et passez à l’étape 13.

    Autrement, sélectionnez Décompression personnalisée pour personnaliser toutes les options de décompression. Cliquez sur Suivant.

  6. Dans la boîte de dialogue Méthode de décompression, sélectionnez Créer un nouveau site, puis cliquez sur Suivant.

  7. Dans la boîte de dialogue Nom du site, tapez le nom du site, puis cliquez sur Suivant.

  8. Dans la boîte de dialogue Sélectionner des ressources, sélectionnez les éléments à installer, puis cliquez sur Suivant.

  9. Dans la boîte de dialogue Pointeurs de ressource globale, cliquez sur Suivant.

    Cette boîte de dialogue vous permet d’effectuer un mappage vers les ressources globales existantes ou d’en créer de nouvelles. Vous pouvez également l’utiliser si vous avez déjà décompressé les ressources globales sur votre ordinateur et que vous souhaitez à présent décompresser des pointeurs de ressource globale dans un site qui utilisera ces ressources globales.

  10. Dans la boîte de dialogue Chaînes de connexion de base de données, le Gestionnaire de package de site répertorie les bases de données qu’il crée ainsi que les serveurs sur lesquels elles sont créées. Vérifiez les bases de données, puis cliquez sur Suivant.

  11. Dans la boîte de dialogue Sélectionner des applications, vérifiez que les applications à décompresser sont sélectionnées, puis cliquez sur Suivant.

  12. Dans la boîte de dialogue Sélectionner des sites Web IIS et des répertoires virtuels, vérifiez que les chemins d’accès et les répertoires virtuels de l’application IIS sont corrects, puis cliquez sur Suivant.

  13. Si la boîte de dialogue Data Warehouse s’affiche, cliquez sur OK.

  14. Si la première boîte de dialogue Système de profil s’affiche, cliquez sur Suivant, puis cliquez sur OK dans la seconde boîte de dialogue Système de profil.

  15. Dans la boîte de dialogue Décompression terminée, consultez la liste des bases de données SQL et applications IIS qui ont été créées. Pour consulter la liste des événements contenus dans le fichier journal Pup.log, cliquez sur Afficher le fichier journal.

  16. Pour fermer le Gestionnaire de package de site, cliquez sur Terminer.

Voir aussi

Notions de base de l’administration

Utilisation du Gestionnaire de package de site

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs

Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs

Sauvegarde de votre site

Dépannage du Gestionnaire de package de site


Suppression d'un site

Suppression d’un site

Lorsque vous supprimez un site, les données de configuration du site sont supprimées de la base de données d’administration. Une fois que vous avez supprimé un site, vous ne pouvez pas annuler sa suppression.

Pour supprimer un site

Pour supprimer les bases de données utilisées par le site

Pour supprimer les bases de données OLAP du site

Pour supprimer les répertoires virtuels du site

Pour supprimer les dossiers et fichiers de site

Pour supprimer les travaux du service de publipostage

Pour supprimer un site

  1. Développez Commerce Server Manager, puis développez Sites de commerce.

  2. Cliquez avec le bouton droit sur le site à supprimer, puis cliquez sur Supprimer.

Pour supprimer les bases de données utilisées par le site

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server ou Microsoft SQL Server 7.0 (en fonction de la base de données installée), puis cliquez sur Enterprise Manager.

    Remarque

    • Dans SQL Server Enterprise Manager, assurez-vous que SQL Server est en cours d’exécution (l’icône de la fenêtre d’Enterprise Manager affiche une lumière verte). Dans le cas contraire, cliquez avec le bouton droit sur le nom de l’ordinateur SQL Server, puis cliquez sur Démarrer.
  2. Développez les nœuds jusqu’au chemin suivant : \Serveurs Microsoft SQL\Groupe SQL Server\Nom du serveur SQL\Bases de données.

  3. Cliquez avec le bouton droit sur la base de données que vous souhaitez supprimer, cliquez sur Toutes les tâches, puis sur Détacher la base de données. Dans la boîte de dialogue Détacher la base de données, cliquez sur Effacer, puis cliquez sur OK. Répétez cette étape pour toutes les bases de données à supprimer.

    En détachant en premier lieu les bases de données, vous pouvez rompre les chaînes de connexion qui y sont associées.

  4. Cliquez avec le bouton droit sur les bases de données utilisées par le site, puis cliquez sur Supprimer.

Pour supprimer les bases de données OLAP du site

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server, sur Analysis Services, puis cliquez sur Analysis Manager.

  2. Développez les nœuds jusqu’au chemin suivant : \Analysis Servers\Nom du serveur SQL.

  3. Cliquez avec le bouton droit sur la base de données à supprimer, puis cliquez sur Supprimer.

  4. Cliquez sur Oui pour confirmer la suppression du dossier pour chacune des bases de données à supprimer.

  5. Répétez les étapes 3 et 4 pour chaque base de données à supprimer.

Pour supprimer les répertoires virtuels du site

  1. Cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire des services Internet.

  2. Développez les nœuds jusqu’au chemin suivant : \<nom_ordinateur>\<nom_site_Web_IIS>.

  3. Cliquez avec le bouton droit sur les répertoires virtuels que vous souhaitez supprimer (par exemple, Retail ou Supplier), puis cliquez sur Supprimer.

  4. Cliquez sur Oui pour chaque répertoire virtuel à supprimer.

  5. Répétez les étapes 3 et 4 pour chaque répertoire virtuel à supprimer.

Pour supprimer les dossiers et fichiers de site

  1. Dans l’Explorateur Windows, accédez au répertoire (par exemple, C:\Inetpub\wwwroot) où sont installés les fichiers de site.

  2. Cliquez avec le bouton droit sur le dossier que vous souhaitez supprimer, puis cliquez sur Supprimer.

  3. Cliquez sur Oui pour chaque dossier à supprimer.

  4. Répétez les étapes 2 et 3 pour chaque dossier à supprimer.

Pour supprimer les travaux du service de publipostage

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server ou Microsoft SQL Server 7.0 (en fonction de la base de données installée), puis cliquez sur Enterprise Manager.

  2. Développez les nœuds jusqu’au chemin suivant : \Serveurs Microsoft SQL\Groupe SQL Server\Nom du serveur SQL\Gestion\Agent SQL Server\Travaux.

  3. Les travaux du service de publipostage s’affichent dans le volet droit de SQL Server Enterprise Manager.

  4. Sélectionnez le ou les travaux du service de publipostage que vous souhaitez supprimer, puis cliquez dans la barre d’outils sur le bouton Supprimer.

Voir aussi

Désinstallation de Commerce Server

Suppression d’une ressource d’un site

Suppression d’une application d’un site

Suppression d’un serveur Web d’une application


Gestion des applications et des serveurs Web Commerce Server

Les rubriques contenues dans cette section expliquent comment ajouter et gérer des applications et des serveurs Web. Avant d’exécuter ces procédures, vous devez installer Commerce Server et décompresser un site.

Cette section contient les rubriques suivantes :

  • Ajout d’une application à un site. Explique comment ajouter une application à un site.

  • Configuration d’une application. Explique comment configurer une application.

  • Ajout d’un serveur Web à une application. Explique comment ajouter un serveur Web à une application.

  • Ajout d’un autre serveur Web. Explique comment ajouter des serveurs Web supplémentaires à une application.

  • Configuration d’un serveur Web. Explique comment configurer un serveur Web.

  • Modification du nom d’une application. Décrit la manière dont les applications sont nommées dans Commerce Server, puis explique comment renommer une application.

  • Déchargement d’une application de la mémoire. Explique comment décharger une application de la mémoire.

  • Suppression d’une application d’un site. Explique comment supprimer une application d’un site.

  • Suppression d’un serveur Web d’une application. Explique comment supprimer un serveur Web d’une application.

  • Ajout automatique d’un serveur Web. Explique comment ajouter automatiquement un serveur Web à une application.

  • Ajout d’une application et d’un serveur Web non-Commerce Server. Explique comment ajouter une application et un serveur Web non-Commerce Server.


Ajout d'une application à un site

Ajout d’une application à un site

Une application correspond à un site Web. Une application représente l’adresse Web à laquelle accède un client Web. Lorsque vous ajoutez une application à Commerce Server, la base de données d’administration est mise à jour à partir des données de configuration de l’application. Lorsque vous ajoutez un serveur Web à l’application, les fichiers ASP (Active Server Pages) sont installés sur l’ordinateur représentant le serveur Web.

Lorsqu’un site Commerce Server est décompressé, il installe généralement deux applications : une application pour le site Web auquel accèdent les utilisateurs, et une autre pour Commerce Server Business Desk, qui est utilisée pour gérer le site. Une application ne peut utiliser que les ressources du site Commerce Server auquel elle appartient.

Une application comprend ses propres serveurs Web, lesquels fournissent le contenu des pages ASP pour le site Web. Une application peut comprendre plusieurs serveurs Web ; elle inclut toujours au moins un serveur Web. Vous pouvez configurer une application au niveau de la racine d’un site Web IIS ou au niveau d’un répertoire virtuel n’importe où sous la racine.

Remarque

  • Avant d’exécuter cette procédure, vous devez créer un fichier de package qui contient l’application à ajouter au site ou utiliser l’un des sites solutions. Pour obtenir des instructions sur la création d’un fichier de package, consultez Utilisation du Gestionnaire de package de site.

Pour ajouter une application à un site

  1. Développez Commerce Server Manager, Sites de commerce, puis développez le site que vous voulez administrer.

  2. Cliquez sur Applications, cliquez avec le bouton droit sur Applications, pointez sur Nouveau, puis cliquez sur Ajouter une application.

    La boîte de dialogue Ajouter un formulaire d’inscription s’affiche.

  3. Sélectionnez le package qui contient les applications à ajouter au site, puis cliquez sur Ouvrir.

    Le Gestionnaire de package de site Commerce Server est démarré.

  4. Dans la boîte de dialogue Sélectionner des applications, vérifiez que les applications à décompresser sont sélectionnées, puis cliquez sur Suivant.

  5. Dans la boîte de dialogue Sélectionner des sites Web IIS et des répertoires virtuels, vérifiez que les chemins d’accès et les répertoires virtuels de l’application IIS sont corrects, puis cliquez sur Suivant.

  6. Dans la boîte de dialogue Décompression terminée, consultez la liste des bases de données SQL et applications IIS qui ont été créées. Pour consulter la liste des événements qui ont eu lieu pendant l’exécution du Gestionnaire de package de site, cliquez sur Afficher le fichier journal.

  7. Pour fermer le Gestionnaire de package de site, cliquez sur Terminer.

Une fois que l’application est ajoutée, vous devez modifier le nom d’hôte non sécurisé (ou sécurisé) de votre application pour qu’il corresponde au nom de domaine configuré sur le serveur DNS (Domain Name System), par exemple, www.microsoft.com. Pour plus d’informations, consultez Modification du nom d’une application.

Voir aussi

Modification du nom d’une application

Applications

Utilisation du Gestionnaire de package de site

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs

Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs


Configuration d'une application

Configuration d’une application

Lorsque vous configurez une application, vous spécifiez les propriétés qui s’appliquent à tous les serveurs Web utilisés par l’application.

Lorsque vous ajoutez un serveur Web à une application, certaines propriétés sont automatiquement remplies à partir des services Internet Information Services (IIS) 5.0 et stockées dans la base de données d’administration. Si les propriétés d’IIS changent, vous devez synchroniser la base de données d’administration et la métabase IIS en mettant à jour manuellement les nouvelles propriétés dans Commerce Server Manager ou en cliquant sur le bouton Synchroniser les valeurs situé sous l’onglet Serveurs Web de la boîte de dialogue Propriétés de l’application.

Important

  • Lorsque vous cliquez sur le bouton Synchroniser les valeurs, Commerce Server synchronise les propriétés au niveau de l’application, ainsi que les propriétés de tous les objets serveur Web sous-jacents à l’application. Pour les propriétés situées au niveau de l’application (port TCP (Transmission Control Protocol) et port SSL (Secure Sockets Layer)), Commerce Server lit les valeurs du premier serveur Web. Il considère que tous les serveurs Web sont configurés de la même façon, ce qui constitue une exigence pour les serveurs d’une Web farm.

Pour plus d’informations sur la modification du nom d’hôte non sécurisé (ou sécurisé) de votre application pour qu’il corresponde au nom de domaine configuré sur le serveur DNS (Domain Name System) (par exemple, www.microsoft.com), consultez Modification du nom d’une application.

Pour configurer une application

  1. Développez Commerce Server Manager, Sites de commerce, puis cliquez sur le site que vous voulez administrer.

  2. Développez Applications, cliquez avec le bouton droit sur l’application à configurer, puis cliquez sur Propriétés.

  3. Dans la boîte de dialogue Propriétés de <application>, sous l’onglet Général, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’hôte non sécurisé Taper le nom de domaine DNS à utiliser pour les liens non sécurisés dans vos applications.

    Attention

    • Si vous utilisez un numéro de port autre que 80, vous devez ajouter ce numéro à la fin du nom d’hôte non sécurisé (par exemple, www.microsoft.com:81). Pour afficher le numéro de port utilisé, consultez la zone Port TCP sous l’onglet Serveurs Web.
    Chemin de l’application IIS | Taper le chemin d’accès à l’application IIS.
    Activer HTTPS | Activer cette propriété pour activer les liens vers un hôte HTTP sécurisé (SSL) dans vos applications.
    Nom d’hôte sécurisé Taper le nom de domaine DNS à utiliser pour les liens sécurisés dans vos applications.

    Attention

    • Si vous utilisez un numéro de port autre que 443, vous devez ajouter ce numéro à la fin du nom d’hôte sécurisé (par exemple, www.microsoft.com:441). Pour afficher le numéro de port utilisé, consultez la zone Port SSL sous l’onglet Serveurs Web.
    Création de cookie automatique | Activer cette propriété pour générer des cookies pour les utilisateurs anonymes. Cette propriété est définie durant le processus de décompression. Pour plus d’informations sur la configuration de l’authentification sur votre site, consultez Gestion de la ressource CS Authentication.
    Filtre d’authentification Sélectionner le type de filtre d’authentification à utiliser dans la de liste déroulante :
    • Aucun filtre

    • Authentification Windows

    • Authentification personnalisée

    Pour plus d’informations sur la configuration de l’authentification sur votre site, consultez Gestion de la ressource CS Authentication.
    Définir le chemin des cookies pour l’application | Activer cette option et partager les cookies entre les applications d’un site.
    Nombre de niveaux de domaine partagé | Spécifier le nombre de niveaux de domaine que les applications doivent avoir en commun pour partager un cookie. Par exemple, pour que premier.microsoft.com et msn.microsoft.com partagent le cookie microsoft.com, définissez la valeur à 2.

  4. Sous l’onglet Serveurs Web, cliquez sur Synchroniser les valeurs pour copier les propriétés suivantes d’IIS vers la base de données d’administration Commerce Server.

    Important

    • Lorsque vous cliquez sur Synchroniser les valeurs, Commerce Server synchronise les propriétés au niveau de l’application, ainsi que les propriétés de tous les objets serveur Web sous-jacents à l’application. Pour les propriétés situées au niveau de l’application (port TCP et port SSL), Commerce Server lit les valeurs du premier serveur Web. Il considère que tous les serveurs Web sont configurés de la même façon, ce qui constitue une exigence pour les serveurs d’une Web farm.

    Sinon, effectuez les actions suivantes :

    Utilisez ceci | Pour faire cela
    Site Web IIS | Taper le nom du site Web IIS (par exemple, « Site Web par défaut »).
    Port TCP | La valeur par défaut est 80. Si vous disposez ici d’une valeur autre que 80, vous devez taper cette valeur dans la zone Nom d’hôte non sécurisé sous l’onglet Général (par exemple, www.microsoft.com:81).
    Port SSL | La valeur par défaut est 443. Si vous disposez ici d’une valeur autre que 443, vous devez taper cette valeur dans la zone Nom d’hôte sécurisé sous l’onglet Général (par exemple, www.microsoft.com:441)
    Domaine local | Taper le nom du domaine local (par exemple, microsoft.com).

  5. Cliquez sur OK.

Remarque

  • Une fois que vous avez modifié une valeur de propriété dans Commerce Server Manager, vous devez décharger de la mémoire les applications IIS contenues dans le site sur chaque serveur Web pour que les modifications soient prises en compte. Pour connaître les instructions à suivre, consultez Déchargement d’une application de la mémoire.

Voir aussi

Notions de base de l’administration

Configuration d’un serveur Web

Gestion de la ressource CS Authentication

Modification du nom d’une application


Ajout d'un serveur Web à une application

Ajout d’un serveur Web à une application

Lorsque vous ajoutez un serveur Web à une application, vous ajoutez les fichiers .asp, .htm, .gif et autres de l’application à l’ordinateur représentant le serveur Web. Les services Internet Information Services (IIS) 5.0 et Commerce Server doivent être déjà installés sur l’ordinateur faisant office de serveur Web.

Vous pouvez utiliser le Gestionnaire de package de site Commerce Server pour ajouter un serveur Web à une application. Après avoir ajouté un serveur Web à une application, l’objet serveur Web Commerce Server s’affiche sous le nœud d’application dans Commerce Server Manager. L’objet serveur Web contient les propriétés nécessaires au Data Warehouse pour importer les fichiers journaux : nom du serveur, adresse IP (Internet Protocol), chemin d’accès au fichier journal et durée du fichier journal. Ces propriétés sont remplies automatiquement à partir d’IIS lorsque vous ajoutez un objet serveur Web Commerce Server à une application.

Vous pouvez également ajouter un nouveau serveur Web à une application sans utiliser le Gestionnaire de package de site. Vous pouvez utiliser à la place Application Center Server pour déployer les fichiers Commerce Server vers le serveur Web ou copier manuellement les fichiers Commerce Server vers le serveur Web. Pour plus d’informations sur l’ajout de serveurs Web à Commerce Server sans utiliser le Gestionnaire de package de site, consultez Ajout de serveurs Web sans le Gestionnaire de package de site.

Remarques

  • Assurez-vous de disposer des autorisations nécessaires sur l’ordinateur où s’effectue la décompression.

  • Avant d’exécuter cette procédure, vous devez créer un fichier de package qui contient les fichiers ASP de l’application ou utiliser l’un des sites solutions. Pour obtenir des instructions sur la création d’un fichier de package, consultez Utilisation du Gestionnaire de package de site.

Pour ajouter un serveur Web à une application

  1. Sur l’ordinateur serveur Web que vous souhaitez ajouter à l’application, développez Commerce Server Manager, Sites de commerce, puis développez le site que vous souhaitez administrer.

  2. Développez Applications, cliquez sur le nom de l’application à laquelle vous voulez ajouter le serveur Web, puis cliquez avec le bouton droit sur l’application. Pointez sur Nouveau, puis cliquez sur Ajouter un serveur Web.

    La boîte de dialogue Ajouter un serveur Web à partir de s’affiche avec une liste des fichiers du Gestionnaire de package de site Commerce Server (en d’autres termes, des fichiers portant une extension .pup).

  3. Dans la boîte de dialogue Ajouter un serveur Web à partir de, naviguez vers le dossier contenant le fichier à décompresser, sélectionnez le fichier, puis cliquez sur Ouvrir.

    Le Gestionnaire de package de site est démarré.

  4. Dans la boîte de dialogue Sélectionner des sites Web IIS et des répertoires virtuels, vérifiez que les chemins d’accès et les répertoires virtuels de l’application IIS sont corrects, puis cliquez sur Suivant.

    Le Gestionnaire de package de site ajoute les fichiers au serveur Web, puis ajoute l’objet serveur Web Commerce Server à l’application sélectionnée. Lorsque vous ouvrez Commerce Server Manager, l’objet serveur Web Commerce Server s’affiche sous l’application.

  5. Dans la boîte de dialogue Décompression terminée, consultez la liste des bases de données SQL et applications IIS qui ont été créées. Pour consulter la liste des événements contenus dans le fichier journal Pup.log, cliquez sur Afficher le fichier journal.

  6. Pour fermer le Gestionnaire de package de site, cliquez sur Terminer.

Voir aussi

Notions de base de l’administration

Configuration d’un serveur Web

Ajout d’un autre serveur Web


Ajout d'un autre serveur Web

Ajout d’un autre serveur Web

Lorsque vous ajoutez un autre serveur Web à une application, vous ne pouvez pas modifier les informations de configuration de l’application durant le processus de décompression, car tous les serveurs Web doivent présenter la même configuration. Le Gestionnaire de package de site Commerce Server affiche le nom du site Web Internet Information Services (IIS) 5.0 où sera installée l’application, ainsi que le chemin de l’application IIS de chaque application Commerce Server.

Lorsque vous choisissez de décompresser une application qui existe déjà dans le site dans Base de données d'administration, le Gestionnaire de package de site Commerce Server considère que vous ajoutez un serveur Web à cette application.

Voir aussi

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs

Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs

Ajout d’un serveur Web à une application


Configuration d'un serveur Web

Configuration d’un serveur Web

Dans Commerce Server Manager, les objets serveur Web Commerce Server contiennent les propriétés nécessaires au Data Warehouse pour importer les fichiers journaux. Lorsque vous ajoutez un serveur Web à une application, ces propriétés sont automatiquement remplies à partir des services Internet Information Services (IIS) 5.0 et stockées dans la base de données d’administration.

Pour configurer un serveur Web

  1. Développez Commerce Server Manager, Sites de commerce, puis cliquez sur le site que vous voulez administrer.

  2. Développez Applications, puis développez l’application qui contient le serveur Web que vous voulez configurer. Cliquez avec le bouton droit sur l’objet serveur Web, puis cliquez sur Propriétés.

  3. Dans la boîte de dialogue Propriétés, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom du serveur | Taper le nom de l’ordinateur sur lequel est installé le serveur Web. Ne modifiez le nom que si vous avez renommé votre serveur.
    Adresse IP | Cette zone affiche l’adresse IP (Internet Protocol) du serveur Web. Cette valeur est initialement lue à partir d’IIS.
    Chemin d’accès au fichier journal | Taper le chemin d’accès au fichier journal dans lequel le site Web IIS écrit les événements, par exemple, C:\Winnt\System32\LogFiles\Log1. Cette valeur est initialement lue à partir d’IIS.
    Durée du fichier journal | Sélectionner dans la liste déroulante la durée du fichier journal. La durée du fichier journal indique la durée pendant laquelle le site Web IIS écrit dans un fichier journal avant d’en créer un nouveau. Cette valeur est initialement lue à partir d’IIS.

  4. Cliquez sur OK.

Voir aussi

Serveurs Web

Configuration d’une application

Ajout d’une application et d’un serveur Web non-Commerce Server


Modification du nom d'une application

Modification du nom d’une application

Vous devez modifier le nom d’hôte non sécurisé (ou sécurisé) de votre application pour qu’il corresponde au nom de domaine configuré sur le serveur DNS (Domain Name System), par exemple, www.microsoft.com. Commerce Server ne lit pas automatiquement le nom de domaine à partir de DNS ; en fait, Commerce Server utilise le nom d’ordinateur comme nom de domaine par défaut. Vous devez indiquer le nom de domaine à Commerce Server en suivant la procédure suivante.

Lorsque vous décompressez un site pour la première fois, vos applications sont nommées à l’aide du nom d’ordinateur (par exemple, Serveur1) et des chemins de l’application des services Internet Information Services (IIS) 5.0 spécifiés durant le processus de décompression (par exemple, /msn). Par exemple, le nom d’application peut être Serveur1/msn.

Pour chaque application de votre site, vous devez renommer l’application en utilisant votre nom de domaine. Pour l’application www.microsoft.com/msn, le nom de domaine est www.microsoft.com et le chemin de l’application IIS est /msn.

Pour renommer une application

  1. Développez Commerce Server Manager, Sites de commerce, puis cliquez sur le site que vous voulez administrer.

  2. Développez Applications, cliquez avec le bouton droit sur l’application à renommer, puis cliquez sur Propriétés.

  3. Dans la boîte de dialogue Propriétés de <site>, sous l’onglet Général, effectuez les opérations suivantes :
    Utilisez ceci Pour faire cela
    Nom d’hôte non sécurisé Taper le nom de domaine, tel qu’il apparaît dans votre serveur DNS (par exemple, vous pouvez le changer en « www.microsoft.com »).

    Attention

    • Si vous utilisez un numéro de port autre que 80, vous devez ajouter ce numéro à la fin du nom d’hôte non sécurisé (par exemple, www.microsoft.com:81). Pour afficher le numéro de port utilisé, consultez la zone Port TCP sous l’onglet Serveurs Web.
    Chemin de l’application IIS Taper le chemin d’accès à l’application IIS. Par exemple, pour l’application www.microsoft.com/msn, le chemin d’accès est /msn.

    Attention

    • Si vous modifiez cette propriété, vous devez modifier l’emplacement des fichiers sur le(s) serveur(s) Web pour maintenir la correspondance. Vous devez également configurer IIS avec la nouvelle application.

  4. Cliquez sur OK.

Remarque

  • Une fois que vous avez modifié une valeur de propriété dans Commerce Server Manager, vous devez décharger de la mémoire les applications IIS contenues dans le site sur chaque serveur Web pour que les modifications soient prises en compte. Pour connaître les instructions à suivre, consultez Déchargement d’une application de la mémoire.

Voir aussi

Notions de base de l’administration


Déchargement d'une application de la mémoire

Déchargement d’une application de la mémoire

Dans Commerce Server, chaque site représente une application sous les services Internet Information Services (IIS) 5.0. Une fois que vous avez modifié la valeur d’une propriété dans Commerce Server Manager, vous devez décharger les applications de la mémoire sur chaque serveur Web pour que les modifications soient prises en compte. Les caches créés par le fichier global.asa Commerce Server sont libérés ; lorsque l’utilisateur suivant visite votre site, les propriétés de ressource sont de nouveau lues et chargées dans le cache.

Le déchargement d’une application de la mémoire diffère du redémarrage d’IIS ou de l’utilisation de la commande IISReset. Vous pouvez décharger une application sans arrêter le serveur Web.

Vous devez décharger une application de la mémoire après avoir effectué l’une des tâches suivantes :

  • configuration d’une ressource globale ;

  • configuration d’une ressource de site ;

  • configuration de Configuration de l’application par défaut ;

  • configuration d’une application ;

  • modification du nom d’une application.

Toutefois, lorsque vous apportez des modifications à la ressource CS Authentication, vous devez redémarrer IIS. Pour connaître les instructions à suivre, consultez Redémarrage d’IIS.

Pour décharger une application de la mémoire

  1. Dans Composant logiciel enfichable de Services Internet (IIS), sélectionnez la racine du site Web IIS ou le répertoire de point de départ de l’application.

  2. Cliquez avec le bouton droit sur le répertoire (par exemple, Site Web par défaut), cliquez sur Propriétés, puis sur l’onglet Répertoire de base.

    Remarque

    • Si le bouton Décharger n’est pas accessible, cela signifie que vous ne vous trouvez pas dans le répertoire de point de départ de l’application ou que l’application est déjà déchargée.
  3. Cliquez sur Décharger.

    Le message suivant peut s’afficher : « Le déchargement de cette application va entraîner celui de toutes les applications situées dans le pool d'applications. Êtes-vous sûr de vouloir continuer ? »

  4. Cliquez sur Oui si le message s’est affiché.

L’application est déchargée de la mémoire. La prochaine fois qu’un utilisateur visite votre site Web, les nouvelles valeurs de propriété sont lues lorsque l’application est chargée en mémoire.

Voir aussi

Redémarrage d’IIS

Configuration d’une ressource globale

Configuration d’une ressource de site

Configuration des propriétés de la ressource Configuration par défaut de l’application

Configuration d’une application

Modification du nom d’une application


Redémarrage d'IIS

Redémarrage d’IIS

Lorsque vous apportez des modifications aux propriétés utilisées par la ressource CS Authentication, vous devez arrêter, puis redémarrer les services Internet Information Services (IIS) 5.0. Étant donné que la ressource CS Authentication constitue une ressource globale, tous les sites l’utilisant doivent être déchargés de la mémoire.

Vous devez redémarrer IIS lorsque vous effectuez l’une des tâches suivantes dans la ressource CS Authentication :

  • configuration des propriétés de la ressource CS Authentication ;

  • activation du partage de cookies entre les domaines/applications ;

  • activation d’AuthFilter ;

  • désactivation d’AuthFilter.

Remarque

  • Vous ne devez pas utiliser la commande IISReset pour redémarrer IIS. Bien que la commande IISReset arrête puis redémarre IIS, dans certaines circonstances elle n’arrête puis ne redémarre pas Inetinfo.exe (service W3SVC). Par exemple, si le service W3SVC a été configuré pour un démarrage manuel au lieu d’un démarrage automatique, il ne sera pas redémarré.

Pour réinitialiser IIS

  1. Cliquez sur Démarrer, puis sur Exécuter.

  2. Dans la zone Ouvrir, tapez net stop iisadmin.

  3. À l’invite, « Désirez-vous continuer cette opération ? » tapez O.

    Les services Internet Information Services sont arrêtés.

  4. Cliquez sur Démarrer, puis sur Exécuter.

  5. Dans la zone Ouvrir, tapez net start w3svc.

    Les Services IIS sont démarrés.

Voir aussi

Déchargement d’une application de la mémoire

Configuration des propriétés de la ressource CS Authentication

Activation du partage de cookies entre les domaines/applications

Activation d’AuthFilter pour le site solution Retail

Activation d’AuthFilter pour le site solution Supplier

Désactivation d’AuthFilter


Suppression d'une application d'un site

Suppression d’une application d’un site

Lorsque vous supprimez une application d’un site, les données d’application de la base de données d’administration sont supprimées. Aucun fichier de serveur Web n’est supprimé, ni aucun paramètre des services Internet Information Services (IIS) 5.0.

Avant de supprimer une application d’un site, vous devez d’abord supprimer les serveurs Web Commerce Server associés à l’application. Pour obtenir des instructions sur la suppression d’un serveur Web, consultez Suppression d’un serveur Web d’une application.

Pour supprimer une application d’un site

  1. Développez Commerce Server Manager, Sites de commerce, puis développez le site que vous voulez administrer.

  2. Développez Applications, cliquez sur l’application à supprimer, cliquez dessus avec le bouton droit, puis cliquez sur Supprimer.

Les données de configuration de l’application sont supprimées de la base de données d’administration.

Voir aussi

Suppression d’un serveur Web d’une application

Suppression d’une ressource d’un site

Suppression d’un site


Suppression d'un serveur Web d'une application

Suppression d’un serveur Web d’une application

Lorsque vous supprimez un serveur Web d’une application, vous supprimez l’objet serveur Web Commerce Server de la base de données d’administration. Vous ne supprimez pas les paramètres des services Internet Information Services (IIS) 5.0, ni les fichiers de serveur Web.

Si vous supprimez le serveur Web utilisé par Commerce Server Business Desk, les utilisateurs ne pourront pas gérer le site.

Après avoir supprimé le dernier serveur Web d’une application, celle-ci est toujours affichée dans Commerce Server Manager.

Pour supprimer un serveur Web d’une application

  1. Développez Commerce Server Manager, Sites de commerce, puis développez le site que vous voulez administrer.

  2. Développez Applications, développez l’application de laquelle vous souhaitez supprimer l’objet serveur Web Commerce Server, cliquez avec le bouton droit sur l’objet serveur Web, puis cliquez sur Supprimer.

L’objet serveur Web Commerce Server est supprimé de l’application ; le serveur Web n’est plus affiché sous l’application. Si nécessaire, vous pouvez ajouter le même serveur Web, ou un autre serveur, à l’application.

Voir aussi

Serveurs Web

Ajout d’un serveur Web à une application

Désinstallation de Commerce Server


Ajout automatique d'un serveur Web

Ajout automatique d’un serveur Web

Vous pouvez créer un nouveau serveur Web en utilisant Microsoft Application Center Server 2000 pour déployer les fichiers Commerce Server vers le serveur Web, ou en copiant manuellement les fichiers Commerce Server vers le serveur Web au lieu d’utiliser le Gestionnaire de package de site Commerce Server. Les sites solutions Commerce Server comportent du code dans le fichier global.asa qui permet l’ajout automatique d’un serveur Web à une application.

Lorsque l’application Commerce Server démarre pour la première fois sur le nouveau serveur Web (par exemple, un utilisateur se connecte au serveur Web ou y est dirigé à la suite d’un équilibrage de charge), et que global.asa démarre, le serveur Web est ajouté automatiquement à la base de données d’administration. Le serveur Web lit dans la base de données d’administration les propriétés dont il a besoin pour le site.

Une fois ajouté, le serveur Web est affiché dans Commerce Server Manager pour vous permettre d’organiser sa gestion.


Ajout d'une application et d'un serveur Web <nobr>non-Commerce</nobr> Server

Ajout d’une application et d’un serveur Web non-Commerce Server

Vous pouvez utiliser Commerce Server Manager pour ajouter une application et un serveur Web qui n’utilisent pas de composants Commerce Server. Le but de l’ajout d’une application et d’un serveur Web non-Commerce Server est de mettre les fichiers journaux de serveur Web à disposition pour permettre leur importation dans Data Warehouse.

Pour ajouter une application non-Commerce Server à un site

  1. Développez Commerce Server Manager, Sites de commerce, puis développez le site que vous voulez administrer.

  2. Cliquez sur Applications, cliquez avec le bouton droit sur Applications, puis cliquez sur Ajouter une application non-Commerce.

  3. Dans la boîte de dialogue Nouvelle application non-Commerce, sous l’onglet Général, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Les serveurs Web de cette application exécutent IIS | Activer cette case à cocher si les serveurs d’une application non-Commerce Server exécutent les services Internet Information Services (IIS) 5.0. Une application non-Commerce Server ne peut pas contenir à la fois des serveurs IIS et non-IIS.
    Nom d’hôte non sécurisé Taper le nom de domaine DNS (Domain Name System) utilisé par les liens non sécurisés de l’application.

    Attention

    • Si vous utilisez un numéro de port autre que 80, vous devez ajouter ce numéro à la fin du nom de serveur (par exemple, www.microsoft.com:81). Pour afficher le numéro de port utilisé, consultez la zone Port TCP sous l’onglet Serveurs Web.
    Chemin de l’application IIS ou Chemin de l’application | Taper le chemin d’accès à l’application.
    Activer HTTPS | Activer cette propriété si des liens sécurisés sont utilisés dans l’application.
    Nom d’hôte sécurisé Taper le nom de domaine DNS utilisé par les liens sécurisés de l’application.

    Attention

    • Si vous utilisez un numéro de port autre que 443, vous devez ajouter ce numéro à la fin du nom de serveur (par exemple, www.microsoft.com:441). Pour afficher le numéro de port utilisé, consultez la zone Port SSL sous l’onglet Serveurs Web.

  4. Sous l’onglet Serveurs Web, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Site Web IIS | Taper le nom du site Web IIS (par exemple, « Site Web par défaut »).
    Port TCP | Taper le numéro de port TCP (Transmission Control Protocol) (généralement 80). Si vous disposez ici d’une valeur autre que 80, vous devez taper cette valeur dans la zone Nom d’hôte non sécurisé sous l’onglet Général (par exemple, www.microsoft.com:81).
    Port SSL | Taper le numéro de port SSL (Secure Sockets Layer) (généralement 443). Si vous disposez ici d’une valeur autre que 443, vous devez taper cette valeur dans la zone Nom d’hôte sécurisé sous l’onglet Général (par exemple, www.microsoft.com:441).
    Domaine local | Taper le nom du domaine local (par exemple, microsoft.com).

  5. Cliquez sur OK.

Pour ajouter un serveur Web non-Commerce Server à une application

  1. Développez Commerce Server Manager, Sites de commerce, puis développez le site que vous voulez administrer.

  2. Développez Applications, cliquez sur le nom de l’application non-Commerce Server à laquelle vous souhaitez ajouter le serveur Web, cliquez dessus avec le bouton droit, pointez sur Nouveau, puis cliquez sur Ajouter un serveur Web non-Commerce.

  3. Dans la boîte de dialogue Propriétés, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom du serveur | Taper le nom de l’ordinateur qui héberge le serveur Web non-Commerce Server.
    Adresse IP | Taper l’adresse IP (Internet Protocol) du serveur Web non-Commerce Server.
    Chemin d’accès au fichier journal | Taper le chemin d’accès au fichier journal dans lequel le serveur Web non-Commerce Server écrit les événements, par exemple, C:\Winnt\System32\LogFiles\Log1.
    Durée du fichier journal | Sélectionner dans la liste déroulante la durée du fichier journal. La durée du fichier journal indique la durée pendant laquelle le serveur Web non-Commerce Server écrit dans un fichier journal avant d’en créer un nouveau.

  4. Cliquez sur OK.

Voir aussi

Gestion de la ressource CS Authentication

Cookies et authentification


Gestion de Commerce Server

Cette section contient les rubriques suivantes :

  • Sauvegarde et restauration de Commerce Server. Explique comment sauvegarder et restaurer une installation Commerce Server.

  • Sauvegarde et restauration d’une base de données SQL. Décrit les stratégies de sauvegarde et de restauration ainsi que les restrictions liées aux opérations de sauvegarde.

  • Réduction des temps de sauvegarde et de restauration dans les environnements critiques. Décrit comment réduire le temps de sauvegarde et de restauration, et explique comment restaurer une sauvegarde de base de données.


Sauvegarde et restauration de Commerce Server

Il est recommandé de sauvegarder votre configuration de Commerce Server chaque fois qu’elle est modifiée, de telle sorte que vous puissiez facilement la restaurer à son état antérieur en cas de problème matériel ou logiciel grave.

Pour sauvegarder votre installation Commerce Server

  1. Sauvegardez vos bases de données SQL Server à l’aide de SQL Enterprise Manager.

  2. Sauvegardez votre métabase Internet Information Services (IIS) 5.0 à l’aide de l’Assistant Sauvegarde de Microsoft Windows 2000.

  3. Sauvegardez votre Registre à l’aide de l’Assistant Sauvegarde.

  4. Sauvegardez vos fichiers Commerce Server à l’aide de l’Assistant Sauvegarde.

  5. Compressez votre site Commerce Server à l’aide du Gestionnaire de package de site Commerce Server.

Pour restaurer votre installation Commerce Server

  1. Restaurez votre métabase IIS à l’aide de l’Assistant Sauvegarde.

  2. Restaurez votre Registre à l’aide de l’Assistant Restauration de Windows 2000.

  3. Restaurez vos fichiers Commerce Server à l’aide de l’Assistant Restauration.

  4. Décompressez votre site et/ou vos ressources Commerce Server à l’aide du Gestionnaire de package de site Commerce Server.

Voir aussi

Utilisation du Gestionnaire de package de site

Sauvegarde de votre site

Sauvegarde et restauration d’une base de données SQL

Réduction des temps de sauvegarde et de restauration dans les environnements critiques


Sauvegarde et restauration d'une base de données SQL

Sauvegarde et restauration d’une base de données SQL

Lorsque vous créez une sauvegarde de base de données, l’opération de sauvegarde copie uniquement les données de la base de données dans un fichier de sauvegarde ; elle ne copie pas l’espace inutilisé de la base de données. Comme la sauvegarde de la base de données contient uniquement les données réelles de la base, et pas d’espace vide, la sauvegarde de la base de données a de fortes chances d’être plus petite que la base de données elle-même. Vous pouvez obtenir une estimation de la taille de la sauvegarde de la base de données en utilisant la procédure stockée du système sp_spaceused. La valeur réservée indique la taille estimée.

Microsoft SQL Server ne vide pas le journal des transactions lors de la sauvegarde de la base de données. Ainsi, lorsque vous créez des sauvegardes de base de données, il est recommandé de définir le vidage automatique du journal des transactions à chaque rencontre du point de contrôle dans la base de données, en définissant l’option de base de données trunc. log on chkpt. sur TRUE. Ceci permet d’éviter que le journal des transactions ne soit plein, ce qui exige qu’il soit vidé manuellement.

Si vous réalisez uniquement des sauvegardes de base de données, l’intervalle de sauvegarde doit être suffisamment long pour que la charge de traitement liée à la sauvegarde n’affecte pas la production, mais suffisamment court pour éviter la perte d’un volume significatif de données. Les bases de données qui ne contiennent pas de données importantes et subissent peu de modifications peuvent être sauvegardées selon une fréquence hebdomadaire ou bihebdomadaire. Les données plus importantes ou qui changent souvent doivent être sauvegardées quotidiennement ou même plus fréquemment encore. Certaines bases de données, généralement en lecture seule, doivent être sauvegardées uniquement après une actualisation périodique à l’aide de nouvelles données.

Il est également prudent de posséder plusieurs sauvegardes de la base de données. Il est recommandé de gérer une série de supports de sauvegarde, afin de disposer de deux ou plusieurs versions de base de données qui puissent être restaurées. Ceci vous permet de répondre à des situations dans lesquelles l’utilisateur peut effectuer certaines modifications incorrectes non détectées pendant un certain temps, ou de revenir à une sauvegarde antérieure lorsque le support de sauvegarde est endommagé.

Restrictions de sauvegarde

Dans SQL Server, les opérations de sauvegarde peuvent avoir lieu alors que la base de données est en ligne et en cours d’utilisation. Cependant, les opérations suivantes ne sont pas autorisées lors de l’opération de sauvegarde d’une base de données :

  • création ou suppression de fichiers de base de données ;

  • création d’index ;

  • exécution d’opérations non consignées dans le journal ;

  • réduction de la base de données (automatique ou manuelle) ou des fichiers de base de données.

Si une opération de sauvegarde démarre lorsque l’une de ces opérations est en cours, l’opération de sauvegarde s’arrête. Si une opération de sauvegarde est en cours et que l’une de ces opérations soit tentée, l’opération échoue et l’opération de sauvegarde se poursuit.

Restauration d’une sauvegarde de base de données

Lorsqu’elle est restaurée à partir d’une sauvegarde, une base de données retrouve l’état qui était le sien au moment où la sauvegarde a été effectuée. Lors de la restauration d’une base de données, SQL Server recrée automatiquement la base et tous ses fichiers associés en effectuant les étapes suivantes :

  • Toutes les données de la sauvegarde sont copiées dans la base de données, ce qui reste est créé comme espace vide.

  • Toute transaction non terminée incluse dans la sauvegarde de base de données (les transactions qui n’étaient pas terminées lors de l’opération de sauvegarde à l’origine) est annulée pour garantir la cohérence de la base de données.

Cette procédure permet de s’assurer que la base de données restaurée est une copie de la base de données dans l’état qui était le sien au moment de l’opération de sauvegarde, à cette différence près que les transactions non terminées ont été annulées. Ceci est nécessaire pour restaurer l’intégrité de la base de données.

De plus, pour éviter de remplacer une base de données par accident, l’opération de restauration peut effectuer automatiquement un contrôle de sécurité. L’opération de restauration échoue dans le cas où :

  • La base de données nommée dans l’opération de restauration existe déjà sur le serveur et le nom de base de données ne correspond pas à celui qui est enregistré dans le jeu de sauvegarde.

  • La base de données nommée dans l’opération de restauration existe déjà sur le serveur, mais il ne s’agit pas de la même base de données que celle qui se trouve dans la sauvegarde de base de données. Par exemple, les noms de base de données sont identiques, mais chaque base a été créée différemment.

  • Un ou plusieurs fichiers doivent être créés automatiquement par l’opération de restauration (que la base de données existe déjà ou non), mais des fichiers portant le même nom que ceux devant être créés existent déjà.

Ces contrôles de sécurité peuvent être désactivés lorsque vous avez l’intention de remplacer une autre base de données.

Opérations interrompues de sauvegarde et de restauration

Lorsqu’une opération de sauvegarde ou de restauration est interrompue (par exemple, en cas de coupure de l’alimentation du serveur), il est possible de redémarrer l’opération de sauvegarde ou de restauration au moment où elle a été interrompue. Ceci peut être utile lorsque des bases de données importantes sont restaurées sur d’autres serveurs à l’aide d’une procédure automatisée. Si la procédure automatisée échoue vers la fin de l’opération de restauration (en cas de panne de courant par exemple), un administrateur système peut redémarrer l’opération de restauration là où elle était arrivée, au lieu de restaurer la base de données entière depuis le début.

Voir aussi

Réduction des temps de sauvegarde et de restauration dans les environnements critiques

Sauvegarde de votre site


Réduction des temps de sauvegarde et de restauration dans les environnements critiques

Les environnements critiques exigent souvent que la base de données soit disponible en permanence ou durant de longues périodes avec un temps d’immobilisation minimal. Ainsi, la durée des situations inattendues, telles qu’une panne matérielle, qui nécessitent la restauration de la base de données, doit rester aussi courte que possible. De plus, les bases de données critiques sont souvent importantes ce qui prend plus de temps pour les sauvegarder et les restaurer. Microsoft SQL Server propose plusieurs méthodes pour augmenter la vitesse des opérations de sauvegarde et de restauration, et minimise ainsi les inconvénients subis par les utilisateurs lors de ces opérations.

  • L’utilisation de plusieurs unités de sauvegarde en simultané permet aux sauvegardes d’être écrites sur toutes les unités en même temps. De même, la sauvegarde peut être restaurée à partir de plusieurs unités en même temps.

  • L’utilisation d’une combinaison de sauvegardes de base de données, sauvegardes différentielles de base de données et sauvegardes du journal des transactions permet de réduire le nombre de sauvegardes devant être appliquées pour ramener la base de données au point d’échec.

  • L’utilisation de sauvegardes de fichier et groupe de fichiers et de sauvegardes de journaux des transactions permet de sauvegarder ou de restaurer uniquement les fichiers contenant des données pertinentes, au lieu de sauvegarder la base de données entière.

Pour créer une sauvegarde d’une base de données SQL

  1. Dans SQL Server Enterprise Manager, développez un groupe de serveurs, puis un serveur.

  2. Développez Bases de données, cliquez avec le bouton droit sur la base de données à sauvegarder, pointez sur Toutes les tâches, puis cliquez sur Sauvegarder la base de données.

  3. Sous l’onglet Général, dans la zone Nom, tapez le nom du jeu de sauvegarde.

  4. Dans Description, tapez éventuellement une description du jeu de sauvegarde.

  5. Sous Sauvegarde, sélectionnez Base de données - Complète.

  6. Sous Destination, cliquez sur Ajouter pour ajouter une unité de sauvegarde ou créer une nouvelle unité de sauvegarde.

    Sinon, cliquez sur Supprimer pour supprimer une unité de sauvegarde de la liste des unités de sauvegarde à utiliser.

  7. Dans la boîte de dialogue Sauvegarde SQL Server, sous Remplacement, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Ajouter au support | Ajouter la sauvegarde aux sauvegardes existantes sur l’unité de sauvegarde.
    Remplacer le support existant | Remplacer les sauvegardes existantes sur l’unité de sauvegarde.
    Planification | Planifier éventuellement l’opération de sauvegarde pour une exécution ultérieure ou périodique.

  8. Cliquez éventuellement sur l’onglet Options et parmi les options de sauvegarde suivantes, activez :
    • Vérifier que la sauvegarde est terminée. Entraîne une vérification de la sauvegarde à la fin du processus.

    • Éjecter la bande après sauvegarde. Entraîne l’éjection de la bande une fois l’opération de sauvegarde terminée. Disponible uniquement avec les lecteurs de bande.

    • Contrôler le nom du support de sauvegarde et la date d’expiration du jeu de sauvegarde. Entraîne la vérification du support de sauvegarde pour empêcher les remplacements accidentels. Dans la zone Nom du support de sauvegarde, tapez le nom du support qui doit être utilisé pour l’opération de sauvegarde. Laissez cette zone vide si vous spécifiez uniquement l’expiration du jeu de sauvegarde.
  9. S’il s’agit de la première utilisation du support de sauvegarde ou si vous voulez modifier une étiquette de support existant, sous Étiquettes du jeu de supports de sauvegarde, sélectionnez Initialiser et nommer le support de sauvegarde, puis entrez le nom et la description du jeu de support. (Le support ne peut être initialisé et étiqueté que lors de sa réécriture).

Voir aussi

Sauvegarde de votre site


Gestion de la ressource CS Authentication

La ressource CS Authentication vous permet d’établir ou de modifier la méthode d’authentification et d’identification de votre site Microsoft Commerce Server 2000. Le développeur du site peut établir la méthode d’authentification, compresser le site, puis vous pouvez le décompresser. Une fois que vous avez décompressé le site, vous pouvez afficher ou modifier les paramètres de cette méthode d’authentification à l’aide de la ressource CS Authentication.

Cette section contient les rubriques suivantes :

  • À propos de la ressource CS Authentication. Décrit les modes pris en charge par la ressource CS Authentication. Décrit l’objet AuthManager et AuthFilter.

  • Configuration des propriétés de la ressource CS Authentication. Explique comment configurer la ressource d’authentification et décrit les propriétés de site qui peuvent être définies pour un site Commerce Server.

  • Activation de l’authentification Windows. Explique comment activer le mode d’authentification Windows.

  • Activation de l’authentification personnalisée. Explique comment activer le mode d’authentification personnalisée.

  • Activation de la génération de cookies automatiques. Explique comment activer le mode Création de cookie automatique.

  • Activation du partage de cookies entre les domaines/applications. Explique comment activer le partage de cookies entre les domaines et entre les applications.

  • Définition du mode de sécurité sur le contrôleur de domaine. Explique comment définir le mode de sécurité sur le contrôleur de domaine.

  • Désactivation d’AuthFilter. Décrit le mode Aucun filtre pour la ressource CS Authentication et explique comment désactiver AuthFilter.

  • Activation d’AuthFilter pour le site solution Retail. Explique comment activer AuthFilter pour le site solution Retail.

  • Activation d’AuthFilter pour le site solution Supplier. Explique comment activer AuthFilter pour le site solution Supplier.

  • Code de la page Login.asp pour le site solution Retail. Fournit le code de la page Login.asp pour le site solution Retail.

  • Code de la page Login.asp pour le site solution Supplier. Fournit le code de la page Login.asp pour le site solution Supplier.

  • Utilisation de l’authentification Windows avec un compte proxy dans une Web farm. Explique comment modifier le code de votre page Login.asp afin de prendre en charge un compte proxy dans une Web farm.

  • Génération d’une nouvelle clé de cryptage. Explique comment générer une nouvelle clé de cryptage pour crypter et décrypter les données de cookie.


À propos de la ressource CS Authentication

La ressource CS Authentication est une ressource Commerce Server dotées de propriétés de niveau global, gérée via Commerce Server Manager. La ressource CS Authentication vous permet de configurer les modes d’authentification et de déterminer le mode d’implémentation des cookies sur votre site. La ressource CS Authentication vous permet par exemple d’activer la génération de cookies automatiques, de définir le partage des cookies entre les applications du même site ou de déterminer la durée de validité du cookie persistant.

Les propriétés d’authentification Commerce Server se définissent à deux endroits :

  • Au niveau global, vous définissez les propriétés dans la ressource globale CS Authentication. Ces propriétés sont utilisées par l’ensemble des sites Commerce Server.

  • Au niveau de l’application (cliquez avec le bouton droit sur l’application dans Commerce Server Manager), vous définissez les propriétés d’authentification utilisées uniquement par une application.

Pour chaque site, l’authentification Commerce Server inclut un pointeur de ressource globale. Aucune propriété n’est définie au niveau du site. Plusieurs sites peuvent partager la même ressource globale CS Authentication.

Si vous développez un site en utilisant un site solution Commerce Server, vous définissez également les propriétés d’authentification dans la ressource Configuration par défaut de l’application. Ces propriétés ne sont pas utilisées par l’authentification Commerce Server. Pour plus d’informations sur la configuration des propriétés de App Default Config, consultez Configuration des propriétés de la ressource Configuration par défaut de l’application.

Composants d’authentification

Modes d’authentification

Fonctionnalité de connexion unique à plusieurs domaines

Composants d’authentification

Commerce Server fournit deux outils permettant de gérer l’authentification et l’identification des utilisateurs : l’objet AuthManager et AuthFilter.

  • AuthManager. Il s’agit d’un objet COM (Component Object Model) qui expose les méthodes permettant d’identifier les utilisateurs et de contrôler l’accès au contenu généré dynamiquement. Par exemple, un développeur de site peut appeler la méthode GetUserID d’AuthManager pour identifier un utilisateur à partir d’un cookie ou d’une chaîne de requête. Pour plus d’informations, consultez Configuration des propriétés de la ressource CS Authentication.

  • AuthFilter. Il s’agit d’un filtre ISAPI qui s’utilise au niveau de l’application Commerce Server sur IIS. Il peut s’appliquer à tous les utilisateurs visitant l’application. La configuration d’AuthFilter s’effectue au niveau de l’application. Pour plus d’informations, consultez Configuration d’une application.

Modes d’authentification

Lorsque vous utilisez AuthFilter, vous pouvez choisir parmi les modes d’authentification suivants :

  • Mode Aucun filtre. AuthFilter n’est pas activé.

  • Authentification Windows. AuthFilter utilise l’authentification Windows pour contrôler l’accès au site. Il vérifie l’ouverture de session et le mot de passe utilisateur par rapport à Active Directory (ou un compte SAM local). Lorsque vous utilisez l’authentification Windows, vous pouvez exiger un droit de connexion uniquement pour certaines pages ASP (Active Server Pages) et répertoires que vous spécifiez. Pour utiliser l’authentification Windows, consultez Activation de l’authentification Windows.

  • Authentification personnalisée. AuthFilter vérifie l’ouverture de session et le mot de passe (ticket MSCSAuth) utilisateur par rapport à une base de données SQL Server ou un autre type de base de données. Un droit de connexion est nécessaire pour chaque page ASP et répertoire du site Commerce Server. AuthFilter effectue une vérification par rapport au répertoire virtuel du site Commerce Server, puis il vérifie la base de données d’administration Commerce Server pour déterminer si l’authentification personnalisée est activée pour ce site. Si le ticket MSCSAuth n’est pas valide, AuthFilter exige que l’utilisateur entre des informations de connexion.

    Lorsque vous utilisez l’authentification personnalisée, un droit de connexion est nécessaire pour chaque page ASP et répertoire du site Commerce Server. Pour utiliser l’authentification personnalisée, consultez Activation de l’authentification personnalisée.

  • Mode Création de cookie automatique. Vous pouvez générer automatiquement des cookies stockant les tickets pour les utilisateurs invités. (Lorsqu’un utilisateur anonyme obtient un ticket MSCSProfile, il devient un utilisateur invité.) Les tickets MSCSProfile permettent de collecter des données de profil sur la façon dont les utilisateurs invités parcourent et utilisent votre site.

    Si vous sélectionnez le mode Création de cookie automatique et le mode Aucun filtre, il n’y a aucun utilisateur inscrit.

    Si vous sélectionnez le mode Création de cookie automatique et le mode d’authentification Windows ou le mode d’authentification personnalisée, appelé mode mixte, lorsque les utilisateurs invités s’inscrivent, leurs cookies persistants peuvent être mis à jour ; ainsi, vous ne perdez pas les données de profil rassemblées lorsque l’utilisateur était un invité. Pour utiliser le mode Création de cookie automatique, consultez Activation de la génération de cookies automatiques.

Si vous activez le mode mixte, AuthFilter génère les tickets suivants :

  • La première fois que l’utilisateur se connecte au site, un ticket MSCSProfile est généré.

  • Si l’utilisateur est authentifié, le ticket MSCSAuth est généré, lequel contient l’identificateur d’utilisateur. Vous pouvez utiliser le ticket MSCSAuth pour appliquer un contrôle d’accès.

  • Si l’utilisateur n’est pas authentifié (pas de ticket MSCSAuth), le ticket MSCSProfile indique que l’utilisateur est anonyme.

Fonctionnalité de connexion unique à plusieurs domaines

La ressource CS Authentication fournit une fonctionnalité de connexion unique à plusieurs domaines. Pour permettre la connexion unique à plusieurs domaines, vous devez partager les cookies entre les domaines en utilisant leur propriété de domaine. Ce procédé ne fonctionne que si les domaines possèdent un nom de sous-domaine commun. Par exemple, premier.microsoft.com et msn.microsoft.com peuvent partager les cookies utilisant le nom de domaine microsoft.com.

Toutefois, deux domaines comme microsoft.com et microsoft.fr ne peuvent pas prendre en charge la fonctionnalité de connexion unique ; en effet, ils ne peuvent pas partager de cookies, car le nom du sous-domaine n’est pas commun. Dans ce cas de figure, l’utilisateur devra se connecter une nouvelle fois lorsqu’il passera d’un domaine à l’autre. Pour plus d’informations sur l’intégration Passport, consultez Integrating with Passport (en anglais).

Pour utiliser la connexion unique à plusieurs domaines, vous définissez deux propriétés d’authentification au niveau du site : Définir le chemin des cookies pour l’application et Nombre de niveaux de domaine partagé. Vous devez définir au moins une valeur égale à deux pour le Nombre de niveaux de domaine partagé et utiliser des domaines partageant un nom de premier niveau identique, par exemple msn.microsoft.com et premier.microsoft.com. Pour plus d’informations sur la définition de ces propriétés d’authentification, consultez Configuration d’une application.

Voir aussi

Planification de la sécurité

Working with Site Security and Filters (en anglais)

Activation de l’authentification Windows

Activation de l’authentification personnalisée

Activation de la génération de cookies automatiques

Site Security Objects (en anglais)

AuthManager Object (en anglais)


Configuration des propriétés de la ressource CS Authentication

Vous pouvez afficher et modifier les propriétés d’authentification Commerce Server pour la ressource globale CS Authentication.

Remarques

  • De nombreuses propriétés d’authentification sont définies au niveau du site. Pour plus d’informations sur la configuration des propriétés d’authentification au niveau du site, consultez Configuration d’une application.

  • Les propriétés d’authentification suivantes sont définies dans la ressource Configuration par défaut de l’application : options du ticket de site, options de confidentialité du site, options de connexion par formulaire et délai d’expiration du ticket d’authentification AuthManager. Ces propriétés ne sont applicables que si vous développez un site à l’aide des sites solutions Commerce Server. Pour plus d’informations sur la configuration de ces propriétés App Default Config, consultez Configuration des propriétés de la ressource Configuration par défaut de l’application.

Pour configurer les propriétés de la ressource CS Authentication

  1. Développez Commerce Server Manager, puis ouvrez Ressources globales.

  2. Cliquez avec le bouton droit sur la ressource CS Authentication, puis cliquez sur Propriétés.

  3. Dans la zone Propriétés, sélectionnez la propriété pour laquelle vous souhaitez définir une valeur.

  4. Dans la zone Valeur de propriété sélectionnée, tapez la nouvelle valeur, puis cliquez sur OK.

Le tableau suivant répertorie les propriétés d’authentification de Commerce Server qui peuvent être définies au niveau de la ressource globale pour un site Commerce Server.

Propriété | Description
Formulaire de connexion Nom du formulaire utilisé pour la connexion des utilisateurs. Vous pouvez spécifier un des éléments suivants :
  • Chemin d’accès relatif à la page Login.asp. Utilise http://<serveur> et Dossier d’application d’assistance AuthFilter.

  • Chemin d’accès complet à la page Login.asp.

Si vous utilisez SSL (Secure Sockets Layer), vous devez spécifier le chemin d’accès complet à la page Login.asp, par exemple :

http://www.microsoft.com/authfilter/login.asp.
Tentatives de connexion | Nombre de fois où les utilisateurs sont invités à saisir leur nom d'utilisateur et mot de passe avant qu’un message ne s’affiche pour leur conseiller d’appeler le service client.
Taille du cache de mots de passe | Nombre maximal d’utilisateurs dont les informations d’identification peuvent être stockées dans le cache de mots de passe utilisateur AuthFilter. Cette propriété est utilisée uniquement avec le mode d’authentification Windows.
Durée de vie (TTL) du cache de mots de passe | Durée de stockage en minutes des informations d’authentification dans le cache de mots de passe. Cette propriété est utilisée uniquement avec le mode d’authentification Windows.
Durée de validité du ticket | Durée de validité par défaut des informations d’identification générées par l’objet AuthManager.
Nom AuthProfile | Nom de l’objet de profil à utiliser lorsque la source de données du système de profil est partitionnée. Si vous utilisez le schéma par défaut, cette valeur doit être Profile Definitions.UserObject.
Dossier d’application d’assistance AuthFilter | Nom du dossier utilisé par AuthFilter pour stocker les fichiers d’application d’assistance. Vous devez conserver tous les fichiers liés à AuthFilter dans ce dossier. Le sous-dossier par défaut est \AuthFiles. Tous les fichiers AuthFilter doivent autoriser l’accès anonyme.
Formulaire d’erreur Nom du formulaire à utiliser en cas d’erreur liée à un refus d’accès. Vous pouvez spécifier un des éléments suivants :
  • Chemin d’accès relatif au formulaire. Utilise http://<serveur> et Dossier d’application d’assistance AuthFilter.

  • Chemin d’accès complet au formulaire.
Formulaire d’aide Nom du formulaire qui contient les informations d’aide pour la connexion. Vous pouvez spécifier un des éléments suivants :
  • Chemin d’accès relatif au formulaire. Utilise http://<serveur> et Dossier d’application d’assistance AuthFilter.

  • Chemin d’accès complet au formulaire.
Formulaire d’erreur interne Nom du formulaire d’erreur à afficher lorsqu’une erreur interne se produit. Vous pouvez spécifier un des éléments suivants :
  • Chemin d’accès relatif au formulaire. Utilise http://<serveur> et Dossier d’application d’assistance AuthFilter.

  • Chemin d’accès complet au formulaire.
Formulaire sans cookie Nom du formulaire à afficher lorsque le navigateur n’autorise pas l’utilisation de cookies ou qu’il ne les prend pas en charge. Vous pouvez spécifier un des éléments suivants :
  • Chemin d’accès relatif au formulaire. Utilise http://<serveur> et Dossier d’application d’assistance AuthFilter.

  • Chemin d’accès complet au formulaire.
Formulaire de création de cookie automatique Nom du formulaire vers lequel effectuer la redirection lorsque la génération de cookies automatiques est activée. Vous pouvez spécifier un des éléments suivants :
  • Chemin d’accès relatif au formulaire. Utilise http://<serveur> et Dossier d’application d’assistance AuthFilter.

  • Chemin d’accès complet au formulaire.
Date d’expiration du cookie de profil | Date d’expiration de la validité du cookie.
Activer le cryptage | Définissez cette propriété au niveau du site Commerce pour activer le cryptage des données de cookie. Pour connaître les instructions à suivre, consultez Configuration d’une application.
Clé de cryptage des données de cookies | Clé de cryptage utilisée pour crypter et décrypter les données de cookies. Pour générer une nouvelle clé de cryptage, consultez Génération d’une nouvelle clé de cryptage.

Remarques

  • Vous devez conserver tous les fichiers liés à AuthFilter dans un dossier, spécifié dans la propriété Dossier d’application d’assistance AuthFilter. Le sous-dossier par défaut est \AuthFiles. Tous les fichiers AuthFilter doivent autoriser l’accès anonyme.

  • Une fois que vous avez modifié une propriété d’authentification Commerce Server globale et si vous utilisez AuthFilter, vous devez redémarrer les services Internet Information Services (IIS) 5.0. Pour connaître les instructions à suivre, consultez Redémarrage d’IIS.

  • Une fois que vous avez modifié une propriété d’authentification au niveau de l’application et si vous utilisez AuthManager, vous devez utiliser l’API Refresh() ou redémarrer IIS afin d’obtenir les valeurs de propriété mises à jour.

Voir aussi

Working with Site Security and Filters (en anglais)

Configuration des propriétés de la ressource Configuration par défaut de l’application

Site Security Objects (en anglais)

AuthManager Object (en anglais)


Activation de l'authentification Windows

Activation de l’authentification Windows

Lorsque vous sélectionnez le mode d’authentification Windows, AuthFilter recherche les droits d’accès de l’utilisateur dans Active Directory. Lorsqu’un utilisateur se connecte à un site s’exécutant dans ce mode, AuthFilter récupère le nom d’utilisateur et le mot de passe à partir de la demande HTTP (Hypertext Transfer Protocol), puis stocke ces informations dans un cache. Il définit également un cookie dont la validité est limitée à la durée de la session de l’utilisateur. Le cookie peut ensuite être vérifié par d’autres pages visitées par l’utilisateur au cours de la session. Dans le mode d’authentification Windows, une liste de contrôle Active (ACL) détermine l’accès aux ressources du site Web.

L’authentification Windows prend en charge une Web farm avec connexion unique, ainsi que l’utilisation des comptes proxy. Pour plus d’informations sur la connexion unique, consultez Cookies et authentification.

Remarque

  • Les instructions suivantes sont basées sur l’hypothèse selon laquelle vous avez défini le mode de sécurité sur votre contrôleur de domaine de manière à permettre une ouverture de session locale. Si vous ne l’avez pas encore fait, consultez Définition du mode de sécurité sur le contrôleur de domaine.

Pour activer le mode d’authentification Windows

  1. Développez Commerce Server Manager, Sites de commerce, puis cliquez sur le site que vous voulez administrer.

  2. Développez Applications, cliquez avec le bouton droit sur le nom de l’application que vous voulez utiliser, puis cliquez sur Propriétés.

  3. Dans la boîte de dialogue Propriétés, sous l’onglet Général, dans la zone Filtre d’authentification, sélectionnez Authentification Windows, puis cliquez sur OK.

AuthFilter transmet les informations d’identification aux services Internet Information Services (IIS) 5.0, puis IIS valide la connexion d’accès utilisateur et le mot de passe par rapport à une banque de données Active Directory.

Remarque

  • Une fois que vous avez modifié une valeur de propriété dans Commerce Server Manager, vous devez décharger l’application de la mémoire sur chaque serveur Web pour que les modifications soient prises en compte. Pour connaître les instructions à suivre, consultez Déchargement d’une application de la mémoire.

Voir aussi

Working with Site Security and Filters (en anglais)

Activation de l’authentification personnalisée

Activation de la génération de cookies automatiques

Activation du partage de cookies entre les domaines/applications

Site Security Objects (en anglais)

AuthManager Object (en anglais)


Activation de l'authentification personnalisée

Activation de l’authentification personnalisée

Si vous devez implémenter l’authentification personnalisée, vous pouvez toujours utiliser AuthFilter pour l’intégrer à votre site. Si vous sélectionnez l’authentification personnalisée, AuthFilter vérifie la présence d’un ticket MSCSAuth valide. Si le ticket MSCSAuth valide n’est pas trouvé, l’utilisateur est redirigé vers une page de connexion, dans laquelle vous pouvez procéder à votre propre authentification personnalisée en validant les informations d’identification et en paramétrant le ticket MSCSAuth en cas de succès.

Par exemple, vous pouvez utiliser le système de profil pour récupérer les droits d’accès du profil utilisateur lorsque l’utilisateur se connecte. Le système de profil récupère les informations utilisateur à partir d’une source de données. Cette source de données peut être une base de données Microsoft SQL Server, Active Directory de Windows 2000, ou une autre source de données compatible OLE DB ou une banque LDAP version 3 valide.

Pour activer le mode d’authentification personnalisée

  1. Développez Commerce Server Manager, Sites de commerce, puis cliquez sur le site que vous voulez administrer.

  2. Développez Applications, cliquez avec le bouton droit sur le nom de l’application que vous voulez utiliser, puis cliquez sur Propriétés.

  3. Dans la boîte de dialogue Propriétés, sous l’onglet Général, dans la zone Filtre d’authentification, sélectionnez Authentification personnalisée, puis cliquez sur OK.

AuthFilter redirige la demande de l’utilisateur vers la page Login.asp, qui valide la connexion d’accès utilisateur et le mot de passe par rapport à une base de données SQL Server ou un autre type de banque de données.

Remarque

  • Une fois que vous avez modifié une valeur de propriété dans Commerce Server Manager, vous devez décharger l’application de la mémoire sur chaque serveur Web pour que les modifications soient prises en compte. Pour connaître les instructions à suivre, consultez Déchargement d’une application de la mémoire.

Voir aussi

Working with Site Security and Filters (en anglais)

Activation du partage de cookies entre les domaines/applications

Activation de l’authentification Windows

Activation de la génération de cookies automatiques

Site Security Objects (en anglais)

AuthManager Object (en anglais)


Activation de la génération de cookies automatiques

Lorsque vous activez le mode Création de cookie automatique, AuthFilter génère automatiquement un cookie persistant (ticket MSCSProfile) pour traiter l’utilisateur comme un utilisateur anonyme. Lorsque vous choisissez le mode Création de cookie automatique, AuthFilter vérifie en permanence si le navigateur possède ce cookie anonyme. Si le cookie anonyme n’est pas présent dans le navigateur, le filtre redirige l’utilisateur vers le formulaire de création de cookie automatique.

Le mode Création de cookie automatique permet à Commerce Server 2000 de garder la trace des utilisateurs anonymes. Si des utilisateurs munis de cookies anonymes s’inscrivent, Commerce Server peut mettre à jour leurs cookies persistants ; ainsi, toutes les données de profil rassemblées lorsque l’utilisateur était anonyme sont conservées. Cependant, le fait que Commerce Server mette à jour ou non les cookies persistants dépend de la manière dont vous avez développé votre application.

Pour activer le mode Création de cookie automatique

  1. Développez Commerce Server Manager, Sites de commerce, puis cliquez sur le site que vous voulez administrer.

  2. Développez Applications, cliquez avec le bouton droit sur le nom de l’application que vous voulez utiliser, puis cliquez sur Propriétés.

  3. Dans la boîte de dialogue Propriétés, sous l’onglet Général, activez la case à cocher Création de cookie automatique, puis cliquez sur OK.

AuthFilter génère automatiquement des cookies persistants pour les utilisateurs anonymes.

Remarque

  • Une fois que vous avez modifié une valeur de propriété dans Commerce Server Manager, vous devez décharger l’application de la mémoire sur chaque serveur Web pour que les modifications soient prises en compte. Pour connaître les instructions à suivre, consultez Déchargement d’une application de la mémoire.

Voir aussi

Working with Site Security and Filters (en anglais)

Activation de l’authentification Windows

Activation de l’authentification personnalisée

Activation du partage de cookies entre les domaines/applications

Site Security Objects (en anglais)

AuthManager Object (en anglais)


Activation du partage de cookies entre les domaines/applications

Vous pouvez partager les cookies entre les domaines. Pour ce faire, vos domaines doivent posséder un nom de sous-domaine commun. Par exemple, msdn.microsoft.com et premier.microsoft.com peuvent partager des cookies utilisant la propriété de domaine dont la valeur est .microsoft.com. Vous ne pouvez pas définir .com pour valeur du domaine.

Si vous ne voulez pas partager les cookies entre les domaines, vous pouvez les partager entre les applications à la place. Pour ce faire, vous définissez l’application comme valeur de la propriété du chemin du cookie. Par exemple, vous définissez /retail comme valeur du chemin pour partager le cookie entre toutes les applications du site Retail. Pour partager des cookies entre des applications ne possédant pas le même répertoire virtuel, vous devez définir la racine (/) comme valeur du chemin.

Pour activer le partage de cookies entre les domaines

  1. Développez Commerce Server Manager, Sites de commerce, puis cliquez sur le site que vous voulez administrer.

  2. Développez Applications, cliquez avec le bouton droit sur l’application à configurer, puis cliquez sur Propriétés.

  3. Dans la zone Nombre de niveaux de domaine partagé, spécifiez le nombre de niveaux de domaine devant être en commun pour pouvoir partager un cookie. Par exemple, pour que premier.microsoft.com et msn.microsoft.com partagent le cookie microsoft.com, définissez la valeur 2.

  4. Cliquez sur OK.

  5. Redémarrez IIS. Pour connaître les instructions à suivre, consultez Redémarrage d’IIS.

Remarque

  • Si vous utilisez le cryptage, vérifiez que la clé de cryptage est identique dans les deux domaines. Pour plus d’informations sur la génération d’une nouvelle clé de cryptage, consultez Génération d’une nouvelle clé de cryptage.

Pour activer le partage de cookies entre les applications du même site

  1. Développez Commerce Server Manager, Sites de commerce, puis cliquez sur le site que vous voulez administrer.

  2. Développez Applications, cliquez avec le bouton droit sur l’application à configurer, puis cliquez sur Propriétés.

  3. Désactivez la case à cocher Définir le chemin des cookies pour l’application, puis cliquez sur OK.

  4. Redémarrez IIS. Pour connaître les instructions à suivre, consultez Redémarrage d’IIS.

Voir aussi

Cookies et authentification

Working with Site Security and Filters (en anglais)

Configuration d’une application

Site Security Objects (en anglais)

AuthManager Object (en anglais)


Définition du mode de sécurité sur le contrôleur de domaine

Vous devez activer Domaine\Utilisateurs pour utiliser le mode d’authentification Windows sur n’importe quel site Commerce Server. Vous devez également activer Domaine\Utilisateurs pour le site solution Supplier sur lequel vous voulez utiliser l’authentification de base (et non l’authentification intégrée).

Pour définir le mode de sécurité sur le contrôleur de domaine

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Outils d’administration, puis cliquez sur Stratégie de sécurité du contrôleur de domaine.

  2. Sous l’onglet Paramètres de sécurité, cliquez sur Stratégies locales, sur Attribution des droits utilisateurs, puis cliquez sur Ouvrir une session localement.

  3. Dans la boîte de dialogue Sécurité, ajoutez Domaine\Utilisateurs à cette stratégie, puis cliquez sur OK.

Voir aussi

Activation d’AuthFilter pour le site solution Supplier


Désactivation d'AuthFilter

Désactivation d’AuthFilter

Si vous ne voulez pas appliquer AuthFilter à votre site, au niveau du site, vous devez sélectionner le mode Aucun filtre dans la section Filtre d’authentification Commerce Server de l’onglet Propriétés générales d’une application. Vous devez également supprimer la génération de cookies automatiques pour le site.

Lorsque vous sélectionnez le mode Aucun filtre pour la ressource CS Authentication, AuthFilter n’est pas appliqué au site Web. Cependant, si vous sélectionnez Aucun filtre et que la génération de cookies automatiques est activée, AuthFilter est appliqué au site.

Dans le mode Aucun filtre, le développeur de site peut appliquer l’authentification à des pages ASP (Active Server Pages) individuelles, en appelant des méthodes exposées par l’objet AuthManager. AuthManager est un objet COM (Component Object Model) qui expose les méthodes permettant d’identifier les utilisateurs et de contrôler l’accès au contenu généré dynamiquement. Par exemple, un développeur de site peut appeler la méthode GetUserID d’AuthManager pour identifier un utilisateur à partir d’un cookie ou d’une chaîne de requête.

Les sites solutions de Commerce Server 2000 utilisent par défaut le mode Aucun filtre et implémentent un modèle d’authentification basé sur AuthManager. Si vous souhaitez modifier les sites pour bénéficier des avantages d’AuthFilter, vous devez apporter des modifications aux pages Login.asp et autres pages d’application d’assistance des sites. Pour plus d’informations, consultez Activation d’AuthFilter pour le site solution Retail et Activation d’AuthFilter pour le site solution Supplier.

Pour désactiver AuthFilter

  1. Développez Commerce Server Manager, Sites de commerce, puis cliquez sur le site que vous voulez administrer.

  2. Développez Applications, cliquez avec le bouton droit sur l’application à configurer, puis cliquez sur Propriétés.

  3. Dans la boîte de dialogue Propriétés, sous l’onglet Général, dans la zone Filtre d’authentification, sélectionnez Aucun filtre.

  4. Désactivez la case à cocher Création de cookie automatique si elle est activée, puis cliquez sur OK.

Remarques

  • Une fois que vous avez modifié une valeur de propriété dans Commerce Server Manager, vous devez redémarrer les services Internet Information Services (IIS) 5.0 pour que les modifications soient prises en compte. Pour connaître les instructions à suivre, consultez Redémarrage d’IIS.

  • Si vous désactivez AuthFilter pour un site en sélectionnant le mode Aucun filtre, vous devez configurer manuellement les paramètres de sécurité nécessaires au site. Pour configurer manuellement les paramètres de sécurité, utilisez IIS, sélectionnez les paramètres de sécurité de votre choix pour ce site, puis redémarrez IIS. Pour connaître les instructions à suivre, consultez Redémarrage d’IIS.

Voir aussi

Working with Site Security and Filters (en anglais)

Activation d’AuthFilter pour le site solution Retail

Activation d’AuthFilter pour le site solution Supplier

Déchargement d’une application de la mémoire


Activation d'AuthFilter pour le site solution Retail

Activation d’AuthFilter pour le site solution Retail

Ces instructions expliquent comment activer AuthFilter sur le site solution Retail.

Pour activer AuthFilter sur le site solution Retail

Informations importantes concernant l’utilisation d’AuthFilter

Pour activer AuthFilter sur le site solution Retail

  1. Utilisez le Gestionnaire de package de site Commerce Server pour décompresser le site solution Retail.

  2. Développez Commerce Server Manager, Sites de commerce, puis cliquez sur le site que vous voulez administrer.

  3. Développez Applications, cliquez avec le bouton droit sur le nom de l’application que vous voulez utiliser, puis cliquez sur Propriétés.

  4. Dans la boîte de dialogue Propriétés, sous l’onglet Général, dans la zone Filtre d’authentification, sélectionnez Authentification Windows ou Authentification personnalisée, puis cliquez sur OK.

  5. Utilisez un éditeur de texte pour ouvrir Authfiles\Login.asp pour le site Retail.

  6. Dans Login.asp, vérifiez que vous disposez des fichiers inclus contenus dans Retail\Login\Login.asp et que le code correspond à l’exemple. Pour vérifier le code de l’exemple, consultez Code de la page Login.asp pour le site solution Retail.

  7. Enregistrez et fermez la page Login.asp mise à jour.

  8. Utilisez le module Utilisateurs dans Commerce Server Business Desk pour créer un nouvel utilisateur pour le site Retail. Pour plus d’informations, consultez Ajout d’un utilisateur.

  9. Utilisez Internet Explorer pour naviguer jusqu’à http://<nom_ordinateur>/Retail.

Sur la page de connexion, tapez votre nom d’utilisateur et votre mot de passe si vous êtes un utilisateur inscrit, ou inscrivez-vous en cliquant sur le lien situé au bas de la page.

La page Login.asp définit le ticket MSCSAuth pour l’utilisateur inscrit, récupère son profil et remplit la page Web à l’aide des informations de profil récupérées.

Si le profil est introuvable, la page Login.asp s’affiche à nouveau avec un message d’erreur, et présente une nouvelle fois les deux mêmes options permettant de se connecter. Si le nom d’utilisateur ou le mot de passe n’est pas valide, la page Login.asp s’affiche à nouveau, mais sans message d’erreur. Pour ajouter une page d’inscription ou de nouvel utilisateur à votre site Web à l’aide d’AuthFilter, suivez les instructions indiquées pour la page Login.asp.

Remarques

  • Vous devez ajouter votre propre page d’inscription à partir de laquelle vous pouvez créer des comptes sur Active Directory.

  • Si vous décidez d’activer AuthFilter après l’avoir désactivé, vous devez réinitialiser manuellement les paramètres de sécurité du Gestionnaire des services Internet (IIS) 5.0.

  • Une fois que vous avez modifié une valeur de propriété dans Commerce Server Manager, vous devez décharger l’application de la mémoire sur chaque serveur Web pour que les modifications soient prises en compte. Pour connaître les instructions à suivre, consultez Déchargement d’une application de la mémoire.

Informations importantes concernant l’utilisation d’AuthFilter

  • Si vous décompressez un site vers le répertoire virtuel sur IIS alors qu’AuthFilter est activé, vous devez désactiver la propriété de niveau application Définir le chemin des cookies pour l’application. Cette propriété représente la propriété de chemin définie pour les cookies. Par défaut, l’indicateur est activé de manière à définir le répertoire virtuel du site (par exemple, /retail) comme valeur de cette propriété. En désactivant cette case à cocher, la racine (/) est définie en tant que propriété du chemin pour vos cookies. Vous devez redémarrer IIS après la mise à jour de cette propriété. Pour connaître les instructions à suivre, consultez Redémarrage d’IIS.

  • Vérifiez que vous utilisez un accès anonyme pour tous les fichiers inclus, .gif ou d’application d’assistance utilisés par la page Login.asp.

  • Pour l’authentification Windows, la page de connexion par défaut utilise l’action GET dans la page Login.asp après que l’utilisateur a cliqué sur le bouton Soumettre. L’action POST est également prise en charge avec la page Login.asp. Pour plus d’informations sur la prise en charge de l’action POST, consultez les commentaires inclus dans la page Login.asp et suivez ces instructions.

  • Il existe un problème de sécurité connu concernant l’utilisation de l’action GET avec la page Login.asp. Il est recommandé de demander aux utilisateurs visitant votre site de configurer leur navigateur de manière à effacer automatiquement l’historique du navigateur après leur déconnexion ou d’effacer l’historique manuellement.

  • Dans l’authentification Windows, les variables de serveur suivantes ne sont pas définies : AUTH_USER et AUTH_TYPE. La variable de serveur LOGON_USER est définie sur l’identificateur d’utilisateur utilisé pour la connexion.

  • Pour utiliser SSL (Secure Sockets Layer), vous devez définir la propriété s_Login_Form de l’authentification Commerce Server avec le chemin d’accès complet comme valeur. Pour connaître les instructions à suivre, consultez Configuration des propriétés de la ressource CS Authentication.

Voir aussi

Working with Site Security and Filters (en anglais)

Ajout d’un utilisateur

Code de la page Login.asp pour le site solution Retail

Code de la page Login.asp pour le site solution Supplier

Déchargement d’une application de la mémoire

Configuration des propriétés de la ressource CS Authentication


Activation d'AuthFilter pour le site solution Supplier

Activation d’AuthFilter pour le site solution Supplier

Ces instructions expliquent comment activer AuthFilter sur le site solution Supplier.

Pour le site solution Supplier et pour pouvoir utiliser AuthFilter en mode d’authentification Windows, vous devez définir le mode de sécurité de votre contrôleur de domaine de manière à permettre une ouverture de session locale. Si vous ne l’avez pas encore fait, consultez Définition du mode de sécurité sur le contrôleur de domaine.

Seule l’authentification de base doit être activée sur le site solution Supplier. Ne modifiez aucun autre paramètre de sécurité.

L’accès anonyme doit être activé pour le sous-dossier AuthFiles et toutes les pages qu’il contient.

Si votre contrôleur de domaine et votre serveur Web sont installés sur différents ordinateurs du même domaine, AuthFilter doit posséder un compte anonyme sur le serveur Web pour pouvoir exécuter avec succès la méthode ProfileService.GetUserProfileByKey() sur la page Login.asp pour n’importe quel profil/utilisateur.

Par défaut, IUSR_<nom_serveur> est un compte d’utilisateur anonyme. Dans le Gestionnaire des services Internet, IUSR_<nom_serveur> ne dispose pas d’autorisations suffisantes pour exécuter cette méthode avec succès dans ce scénario. De plus, si votre serveur Web est différent de votre serveur représentant le contrôleur de domaine, vous devez ajouter un compte d’utilisateur provenant de ce domaine en tant que compte anonyme. Pour ce faire, vous devez en premier lieu créer un compte d’utilisateur sur le domaine disposant d’un accès lui permettant de lire les propriétés d’utilisateur d’Active Directory. Puis, sur le serveur Web, utilisez le Gestionnaire des services Internet (IIS) pour configurer le même compte d’utilisateur en tant que compte anonyme pour le sous-dossier AuthFiles et tous les fichiers qu’il contient.

Pour activer AuthFilter sur le site solution Supplier

Informations importantes concernant l’utilisation d’AuthFilter

Pour activer AuthFilter sur le site solution Supplier

  1. Utilisez le Gestionnaire de package de site Commerce Server pour décompresser le site solution Supplier.

  2. Développez Commerce Server Manager, Sites de commerce, puis cliquez sur le site que vous voulez administrer.

  3. Développez Applications, cliquez avec le bouton droit sur le nom de l’application que vous voulez utiliser, puis cliquez sur Propriétés.

  4. Dans la boîte de dialogue Propriétés, sous l’onglet Général, dans la zone Filtre d’authentification, sélectionnez Authentification Windows ou Authentification personnalisée, puis cliquez sur OK.

  5. Développez Services IIS, cliquez avec le bouton droit sur le site Supplier, puis cliquez sur Propriétés.

  6. Dans la boîte de dialogue Propriétés de retail, sous l’onglet Sécurité de répertoire, dans la section Accès anonyme et contrôle d’authentification, cliquez sur Modifier.

  7. Dans la boîte de dialogue Méthodes d’authentification, désactivez la case à cocher Authentification intégrée de Windows.

    Remarque

    • Seule l’authentification de base doit être activée sur le site solution Supplier. Ne modifiez aucun autre paramètre de sécurité.
  8. Utilisez un éditeur de texte pour ouvrir Authfiles\Login.asp pour le site Supplier.

  9. Si vous utilisez une Web farm ou qu’une prise en charge d’un compte proxy est nécessaire, vous devez mettre à jour le code dans la page Login.asp de sorte qu’il corresponde à celui indiqué dans la rubrique Code de la page Login.asp pour le site solution Supplier.

    Important

    • Il n’est pas nécessaire de mettre à jour la page Login.asp s’il s’agit d’un serveur unique ne nécessitant pas de prise en charge de compte proxy.
  10. Pour l’authentification Windows, changez la méthode GetUserInfo() dans \SupplierAD\include\Std_access_lib.asp comme suit :
Sub GetUserInfo()
    Dim sAuthUser, mscsUser
    Dim aName

    If dictConfig.i_DelegatedAdminOptions = DELEGATED_ADMIN_SUPPORTED Then
       sAuthUser = LoginName(Request.ServerVariables("LOGON_USER"))
        End If
        Rem Rendre l’authentification intégrée de Windows et l’authentification de base prioritaires sur l’authentification du formulaire HTML
        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. Pour l’authentification Windows, dans la méthode PrepareLoginSection contenue dans \SupplierAD\template\menu.asp, changez le code d’une chaîne Request.ServerVariables faisant référence à la variable de serveur "AUTH_USER" pour qu’elle fasse à la place référence à la variable de serveur "LOGON_USER". Par exemple :

    Incorrect : sAuthUser = Request.ServerVariables("AUTH_USER")

    Correct : sAuthUser = Request.ServerVariables("LOGON_USER")

  12. Enregistrez et fermez les pages Login.asp et menu.asp mises à jour.

  13. Utilisez Business Desk pour créer un nouvel utilisateur pour le site Supplier.

    Important

    • Vous devez créer une organisation avant de pouvoir ajouter des utilisateurs ou créer des utilisateurs pour celle-ci.
  14. Utilisez Internet Explorer pour naviguer jusqu’à http://<nom_ordinateur>/SupplierAD.

  15. Dans la page de connexion, tapez le nom d’utilisateur au format Nom_domaine\Identificateur_utilisateur ou au format UPN (nom utilisateur principal). (Vous pouvez adapter la page Login.asp pour ajouter ces formats à Identificateur_utilisateur/nom). Tapez le mot de passe si vous êtes un utilisateur inscrit, ou inscrivez-vous en cliquant sur le lien situé au bas de la page. (Vous devez ajouter votre propre page d’inscription sur laquelle vous pouvez créer des comptes sur Active Directory).

La page Login.asp définit le ticket MSCSAuth pour l’utilisateur inscrit, récupère son profil, vérifie au besoin les informations d’identification et la demande remplit la page Web par défaut à l’aide des informations de profil récupérées.

Si le nom d’utilisateur ou le mot de passe ne sont pas valides, ou si le profil est introuvable, la page Login.asp s’affiche à nouveau avec un message d’erreur, et présente une nouvelle fois les deux mêmes options permettant de se connecter.

Informations importantes concernant l’utilisation d’AuthFilter

  • Si vous décompressez un site vers le répertoire virtuel sur IIS alors qu’AuthFilter est activé, vous devez désactiver la propriété de niveau application Définir le chemin des cookies pour l’application. Cette propriété représente la propriété de chemin définie pour les cookies. Par défaut, l’indicateur est activé de manière à définir le répertoire virtuel du site (par exemple, /retail) comme valeur de cette propriété. En désactivant cette case à cocher, la racine (/) est définie en tant que propriété du chemin pour vos cookies. Vous devez redémarrer IIS après la mise à jour de cette propriété. Pour connaître les instructions à suivre, consultez Redémarrage d’IIS.

  • Vérifiez que vous utilisez un accès anonyme pour tous les fichiers inclus, .gif ou d’application d’assistance utilisés par la page Login.asp.

  • Pour l’authentification Windows, la page de connexion par défaut utilise l’action GET dans la page Login.asp après que l’utilisateur a cliqué sur le bouton Soumettre. L’action POST est également prise en charge avec la page Login.asp. Pour plus d’informations sur la prise en charge de l’action POST, consultez les commentaires inclus dans la page Login.asp et suivez ces instructions.

  • Il existe un problème de sécurité connu concernant l’utilisation de l’action GET avec la page Login.asp. Il est recommandé de demander aux utilisateurs visitant votre site de configurer leur navigateur de manière à effacer automatiquement l’historique du navigateur après leur déconnexion ou d’effacer l’historique manuellement.

  • Dans l’authentification Windows, les variables de serveur suivantes ne sont pas définies : AUTH_USER et AUTH_TYPE. La variable de serveur LOGON_USER a pour valeur l’identificateur d’utilisateur utilisé pour la connexion.

  • Pour utiliser SSL (Secure Sockets Layer), vous devez définir le chemin d’accès complet comme valeur de la propriété s_Login_Form dans l’authentification Commerce Server. Pour connaître les instructions à suivre, consultez Configuration des propriétés de la ressource CS Authentication.

Voir aussi

Working with Site Security and Filters (en anglais)

Code de la page Login.asp pour le site solution Supplier


Code de la page Login.asp pour le site solution Retail

Vous trouverez ci-dessous le code de la page Login.asp pour le site solution Retail. Si vous choisissez d’utiliser AuthFilter pour le site Retail, vous devez utiliser ce code pour la page Login.asp de votre site. Pour plus d’informations, consultez Activation d’AuthFilter pour le site solution Retail.

<!-- #INCLUDE FILE="../include/header.asp" -->
<!-- #INCLUDE FILE="../include/const.asp" -->
<!-- #INCLUDE FILE="../include/html_lib.asp" -->
<!-- #INCLUDE FILE="../include/form_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_access_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_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 Exemple de fichier à utiliser avec AuthFilter
REM Ce fichier gère la connexion de l’utilisateur
%>

<%

   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)

   'Récupère la variable cachée pour déterminer si c’est la première exécution de la page
   strSelect = Request.Querystring("realSubmit")

   'Si les utilisateurs appuient sur le bouton Valider
   if strSelect = "fromButton" then
      'authentifier l’utilisateur
      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
            ' pour l’authentification personnalisée/NT
            objAuth.SetAuthTicket sUserID, 1, 90

            ' Aller à la page ASP originale demandée, stockée dans le 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>Connexion</TITLE>
</HEAD>
<BODY>
<FORM NAME="frmLogin" ACTION="Login.asp" METHOD="GET">
<br>
<br>
<br>
<H2 ID=L_LoginForm_HTMLText>Formulaire de connexion CS2K</H2><ID Id=L_EnterCredential_ErrorMessage>
Pour accéder au contenu authentifié, entrez votre identificateur d’utilisateur et votre mot de passe</ID>
<br>
<br>
<br>

<H3 ID=L_UserName_HTMLText>Nom d’utilisateur :<INPUT TYPE="text" NAME="txtUsername" SIZE=32 MAXLENGTH=32><br><ID ID=L_UserPassword_HTMLText>
Mot de passe :</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 SITES SOLUTIONS : Retail
REM    nécessité d’ajouter le fichier d’enregistrement dans le sous-répertoire '\AuthFiles\' ou de copier ..\Retail\login\newuser.asp vers '\AuthFiles\newuser.asp'
REM    dans global.asa, mettez à jour : dictPages.NewUser = "AuthFiles/newuser.asp"
REM
%>
<A HRef="newuser.asp" ID=L_RegisterIf_HTMLText>Enregistrez-vous si vous êtes un nouvel utilisateur
   (sites solutions : nécessité d'ajouter le fichier d'enregistrement dans le sous-répertoire '\AuthFiles\' ou de copier  ..\Retail\login\newuser.asp & mettre à jour NewUser-File dans Global.asa)</A>
<br>
</H4>

</BODY>
</HTML>
<%end sub%>

Voir aussi

Working with Site Security and Filters (en anglais)

Activation d’AuthFilter pour le site solution Retail


Code de la page Login.asp pour le site solution Supplier

Vous trouverez ci-dessous le code de la page Login.asp pour le site solution Supplier. Si vous choisissez d’utiliser AuthFilter pour le site Supplier, vous devez utiliser ce code pour la page Login.asp de votre site. Pour plus d’informations, consultez Activation d’AuthFilter pour le site solution Supplier.

<!-- #INCLUDE FILE="../include/header.asp" -->
<!-- #INCLUDE FILE="../include/const.asp" -->
<!-- #INCLUDE FILE="../include/html_lib.asp" -->
<!-- #INCLUDE FILE="../include/form_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_access_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_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 Exemple de fichier à utiliser avec AuthFilter
REM Ce fichier gère la connexion de l’utilisateur
%>

<%

   Sub Main()
   End Sub

   Dim strSelect, strUserName, strPassword, strPasswordTest, strPWD, strRetAsp, sAuthUser
   dim objAuth, objMSCSProfileObj
   Dim strAuthErr, strSiteName, sUserID

   ' AuthManager : Créer et initialiser
   set objAuth = Server.CreateObject("Commerce.AuthManager")
   strSiteName = CStr(Application("MSCSCommerceSiteName"))  ' Récupérer le contenu de SiteName
   objAuth.Initialize(strSiteName)

   'Récupérer la variable cachée pour déterminer si première exécution de la page
   strSelect = Request.Querystring("realSubmit")

   'Si les utilisateurs appuient sur le bouton Valider
   if strSelect = "fromButton" then

      'authentifier l’utilisateur
      strUserName = Request.Querystring("txtUsername")
      strPassword = Request.Querystring("txtPassword")

         if (strUserName = "") or (strPassword = "") then
            Response.Redirect "Login.asp"
         end If

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' $PROXY-ACCOUNT : début
         '   Pour récupérer un compte proxy
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' Pour l’utilisation de compte proxy : vous pouvez mettre à jour 'strUsername' && 'strPassword', à partir de Profile
         '   Ou bien, de manière similaire ...
         ' si le mot de passe est disponible :   if (objMSCSProfileObj.Fields("GeneralInfo.user_security_password").Value = strPassword) then
         ' sUserID = objMSCSProfileObj.Fields(GetQualifiedName(GENERAL_INFO_GROUP, FIELD_USER_ID)).Value
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' $PROXY-ACCOUNT : fin
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' $PASSWORD : début
         '   Pour obtenir un mot de passe en texte clair :
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         sAuthUser = LoginName(strUserName)   ' suivant le schéma de profil, il faut filtrer DomainName ici. 'strUserName' est au format : Domaine\Nom_Accès_Utilisateur
         Set objMSCSProfileObj = GetUserProfileByLoginName(sAuthUser)
         if (objMSCSProfileObj is nothing) then
            Response.Redirect "Login.asp"
         end if
         ' si le mot de passe est disponible : en texte clair pour le compte proxy
         ' strPasswordTest = objMSCSProfileObj.Fields.Item("GeneralInfo").Value.Item("user_security_password") ' objMSCSProfileObj.Fields("GeneralInfo.user_security_password").Value
         Set objMSCSProfileObj = Nothing

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' Fin de la récupération du mot de passe en texte clair
         ' $MOT DE PASSE : fin
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' pour l’authentification personnalisée/NT
            ' si le mot de passe est disponible : en texte clair pour le compte proxy
            ' if (strPasswordTest = strPassword) then
            objAuth.SetAuthTicket strUserName, 1, 90
            ' Else
            '   Response.Redirect "Login.asp"
            ' EndIF

            ' Aller à la page ASP originale demandée, stockée dans le cookie "MSCSFirstRequestedURL" & ce qui suit est nécessaire pour une action POST dans Login au lieu de GET (par défaut)
            strRetAsp = Request.Cookies("MSCSFirstRequestedURL")   'retAsp = "..\default.asp"    '  (ou) utiliser : Request.Cookies("MSCSFirstRequestedURL") &  première URL demandée (même s’il n’y a pas QueryString, cette URL contient '?' à la fin
            strRetAsp = strRetAsp + "&proxyuser="               ' s’assurer que le séparateur de chaîne de requête '?' est ajouté par le filtre
            strRetAsp = strRetAsp + strUserName
            strRetAsp = strRetAsp + "&proxypwd="            ' Mot de passe
            strRetAsp = strRetAsp + strPassword

            if (strRetAsp = "" Or IsNUll(strRetAsp)) then
               strRetAsp = objAuth.GetURL("default.asp", True, False, Array("proxyuser", "proxypwd"), Array(strUserName, strPassword))
            end if

            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' Attaque DDoS (Distributed-Denial-Of-Service)
            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' ceci permet d’éviter les attaques DDos avec l’identificateur de connexion de l’utilisateur
            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' Définir objGenID =  Server.CreateObject("Commerce.GenID") '$PERF : stocker l’objet dans l’étendue Application dans GLOBAL.ASA, Application("MSCSAuthGenID")
            ' strGUID = objGenID.GenGUIDString
            '
            ' objAuth.SetProperty 2, "guid", strGUID ' après la définition du ticket
            ' strRetAsp = strRetAsp + "&guid="
            ' strRetAsp = strRetAsp + strGUID
            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

            Response.Redirect strRetAsp
   else
      if objAuth.IsAuthenticated(30) Then      ' dans le cas d’une Web Farm <Existence d'un ticket d'authentification valide, mais non mis en cache dans Filter>
         strUserName = objAuth.GetUserID(2)   ' Obtenir LoginID <seulement dans le cas d’un site AD>
         if (strUserName = "") or (IsNull(strUserName)) then
            Response.Redirect "Login.asp"
         end If
         sAuthUser = LoginName(strUserName)   ' suivant le schéma de profil, il faut filtrer DomainName ici. 'strUserName' est au format : Domaine\Nom_Accès_Utilisateur

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' $PROXY-ACCOUNT : début
         '   Pour obtenir un compte proxy
         ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' Pour l’utilisation de compte proxy : vous pouvez mettre à jour 'strUsername' && 'strPassword', à partir de Profile
         '   Ou bien, de manière similaire ...
         ' si le mot de passe est disponible :   if (objMSCSProfileObj.Fields("GeneralInfo.user_security_password").Value = strPassword) then
         ' sUserID = objMSCSProfileObj.Fields(GetQualifiedName(GENERAL_INFO_GROUP, FIELD_USER_ID)).Value
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' $COMPTE PROXY : fin
         ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' $MOT DE PASSE : début
         '   Pour obtenir un mot de passe en texte clair :
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         Set objMSCSProfileObj = GetUserProfileByLoginName(sAuthUser)   ' méthode Helper du site solution SupplierAD
         if (objMSCSProfileObj is nothing) then
            Response.Redirect "Login.asp"
         end if
         ' si le mot de passe est disponible : en texte clair <identique au scénario de compte proxy>
         strPassword = objMSCSProfileObj.Fields.Item("GeneralInfo").Value.Item("user_security_password") ' objMSCSProfileObj.Fields("GeneralInfo.user_security_password").Value
         'strPassword = "password"   ' si PWD n’est pas disponible & à des fins de test uniquement
         Set objMSCSProfileObj = Nothing
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' Fin de la récupération du mot de passe en texte clair
         ' $PASSWORD : fin
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

         strRetAsp = Request.Cookies("MSCSFirstRequestedURL") '  (ou) utiliser : "../default.asp"
         strRetAsp = strRetAsp + "&proxyuser="               ' s’assurer que le séparateur de chaîne de requête '?' est ajouté par le filtre
         strRetAsp = strRetAsp + strUserName
         strRetAsp = strRetAsp + "&proxypwd="            ' Mot de passe
         strRetAsp = strRetAsp + strPassword

            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' Attaque DDoS (Distributed-Denial-Of-Service)
            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' ceci permet d’éviter les attaques DDos avec l’identificateur de connexion de l’utilisateur
            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' strGUID = objAuth.GetProperty(2, "guid")   ' Si existant, vous devez également le transmettre à la chaîne de requête
            '
            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' 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>Connexion</TITLE>
</HEAD>
<BODY>
<FORM NAME="frmLogin" ACTION="Login.asp" METHOD="GET">
<br>
<br>
<br>
<H2 ID=L_LoginForm_HTMLText>Formulaire d’inscription de Commerce Server</H2><ID Id=L_EnterCredential_ErrorMessage>
Pour accéder au contenu authentifié, entrez votre identificateur d’utilisateur et votre mot de passe</ID>
<br>
<br>
<br>

<H3 ID=L_UserName_HTMLText>Nom d’utilisateur :<INPUT TYPE="text" NAME="txtUsername" SIZE=32 MAXLENGTH=32><br><ID ID=L_UserPassword_HTMLText>
Mot de passe :</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>Enregistrez-vous si vous êtes un nouvel utilisateur (ajouter ce fichier d’inscription)</A>
<br>
</H2>

</BODY>
</HTML>
<%end sub%>

Voir aussi

Working with Site Security and Filters (en anglais)

Activation d’AuthFilter pour le site solution Supplier


Utilisation de l'authentification Windows avec un compte proxy dans une Web farm

Utilisation de l’authentification Windows avec un compte proxy dans une Web farm

Vous pouvez utiliser AuthFilter et l’authentification Windows avec le site solution Supplier dans une Web farm. Vous devez utiliser la propriété GUID comme il est expliqué dans le scénario d’attaque DDoS (Digital Denial of Service) de la rubrique Code de la page Login.asp pour le site solution Supplier.

Vous devez également utiliser la propriété GUID avec le chemin de première connexion et le chemin de connexion d’une Web farm. Le code ayant la mise en forme gras dans l’exemple suivant indique les modifications que vous devez apporter au fichier Login.asp.

' après avoir défini AuthTicket
     objAuth.SetAuthTicket strUserID, True, 90
  objAuth.SetProperty 2, "guid", strGUID

' au niveau de la redirection dans les chemins FirstTime et WebFarm :
      strRetAsp = Request.Cookies("MSCSFirstRequestedURL")
      strRetAsp = strRetAsp + "proxyuser="
      strRetAsp = strRetAsp + "MyDomain\User1"
      strRetAsp = strRetAsp + "&proxypwd="
      strRetAsp = strRetAsp + "password"
   strRetAsp = strRetAsp + "&guid="
   strRetAsp = strRetAsp + strGUID

La variable strGUID est un GUID/identificateur unique généré (par exemple, par l’objet GUIDGen objectd) ou un profil issu d’un GUID.

Voir aussi

Working with Site Security and Filters (en anglais)


Génération d'une nouvelle clé de cryptage

Génération d’une nouvelle clé de cryptage

La ressource CS Authentication utilise une clé de cryptage pour crypter et décrypter les données de cookies. Par défaut, lorsque vous décompressez un site, la clé de cryptage contenue dans le package est utilisée (en supposant qu’il en existe une). La clé de cryptage est stockée dans le fichier AuthSetup.ini, dans le package. En l’absence de clé, une nouvelle clé est générée par le Gestionnaire de package de site Commerce Server, à l’aide d’AuthManager::GenerateEncryptionKey().

Une clé de cryptage est créée à chaque décompression de site. Si vous compressez votre propre clé de cryptage avec la ressource CS Authentication, vous disposerez de la même clé chaque fois que vous décompresserez ce package personnalisé. Si vous souhaitez avoir une nouvelle clé ou une clé distincte chaque fois que vous décompressez ce site, vous devez utiliser, une fois le site décompressé, le bouton Générer une nouvelle clé de cryptage dans Commerce Server Manager.

Vous ne devez pas changer la clé de cryptage lorsqu’un site est actif. Si vous mettez à jour une clé de cryptage alors qu’un site est actif, les tickets MSCSAuth ne seront plus valides et les utilisateurs devront ouvrir une nouvelle session. Un ticket crypté avec une clé donnée ne peut être décrypté qu’avec cette même clé.

Remarque

  • Vous devez créer une sauvegarde d’une clé de cryptage existante avant de la mettre à jour. Commerce Server ne crée pas de sauvegarde pour vous. Une fois que la nouvelle clé est créée, il est impossible de récupérer l’ancienne.

Pour générer une nouvelle clé de cryptage

  1. Développez Commerce Server Manager, Sites de commerce, puis cliquez sur le site que vous voulez administrer.

  2. Développez Applications, cliquez avec le bouton droit sur l’application à configurer, puis cliquez sur Propriétés.

  3. Au bas de la boîte de dialogue, cliquez sur Générer une nouvelle clé de cryptage.

  4. Dans la boîte de dialogue de confirmation, cliquez sur OK.

Voir aussi

Working with Site Security and Filters (en anglais)


Exécution de Data Warehouse

Data Warehouse de Commerce Server vous permet d’importer, de transformer et de stocker les données de sites Web. Vous importez des données dans Data Warehouse à partir de fichiers journaux Web, de bases de données Commerce Server ainsi que d’autres sources de données que vous spécifiez. Une fois les données importées, vous pouvez les analyser en exécutant des rapports depuis Commerce Server Business Desk ou en consultant les segments de population.

La base de données de Data Warehouse est ajoutée à Microsoft SQL Server lorsque vous décompressez un site. Vous utilisez les tâches des services de transformation de données (DTS, Data Transformation Services) de Commerce Server ainsi que les lots SQL Server pour importer et gérer les données.

Cette section contient les rubriques suivantes :

  • Déroulement des opérations pour l’importation de données. Présente la marche à suivre pour charger et transformer des données.

  • À propos de Data Warehouse. Décrit Data Warehouse et les types de données qu’il contient.

  • Composants de Data Warehouse. Décrit les composants de Data Warehouse.

  • Configuration de la ressource Data Warehouse. Explique comment configurer la ressource Data Warehouse.

  • Configuration des fichiers journaux Web pour l’importation. Explique comment configurer les propriétés de votre site Web par défaut pour l’importation.

  • Synchronisation de la configuration du site et de Data Warehouse. Explique comment synchroniser la configuration du site et Data Warehouse de sorte que les modifications apportées à l’application soient propagées à Data Warehouse.

  • Configuration des propriétés d’importation de fichier journal Web. Explique comment contrôler et personnaliser le mode d’importation des données de fichier journal Web dans Data Warehouse.

  • Importation de données dans Data Warehouse. Explique comment importer dans Data Warehouse des données de fichier journal Web, de catalogue, de campagne marketing, de transaction et de profil utilisateur.

  • Exécution de la résolution IP. Explique comment résoudre les adresses IP (Internet Protocol) et décrit les actions effectuées lorsque vous exécutez la résolution IP.

  • Préparation à la création de rapports. Explique comment utiliser la tâche Préparation du rapport et décrit son rôle dans le chargement, dans les cubes OLAP, des données utilisées dans les rapports.

  • Suppression de données de Data Warehouse. Explique comment supprimer des données importées des fichiers journaux Web de Data Warehouse.

  • Extension de Data Warehouse. Répertorie les ressources permettant d’étendre les fonctionnalités de Data Warehouse.


Déroulement des opérations pour l'importation de données

Déroulement des opérations pour l’importation de données

La figure suivante présente un exemple de scénario permettant d’importer des données dans Data Warehouse.

Déroulement des opérations pour l'importation de données dans le Data Warehouse
Fichier journal Web
Transaction
Profil utilisateur
Catalogue de produits
Campagne marketing
Importer les données
Données disponibles
pour analyse
Préparation des rapports
Configurer les fichiers journaux Web
Synchroniser la configuration du site avec le Data Warehouse


À propos de Data Warehouse

Data Warehouse de Commerce Server vous permet d’importer, de transformer et de stocker les données de sites Web. Les données stockées dans Data Warehouse vous permettent d’analyser l’activité des utilisateurs sur votre site Web. Commerce Server 2000 propose plusieurs fonctionnalités d’analyse d’activité, comme les rapports, dans Commerce Server Business Desk. Ces rapports présentent les données de Data Warehouse sous différentes formes permettant de répondre à des questions commerciales spécifiques concernant votre site Web.

Data Warehouse vous permet d’effectuer les tâches suivantes :

  • Importer des données de fichier journal Web, de profil utilisateur, de transaction, de campagne marketing et de catalogue à partir de votre site Commerce Server 2000. Vous pouvez également importer des données provenant d’autres banques de données, telles que des serveurs Web non-Commerce Server.

  • Résoudre des adresses IP (Internet Protocol) importées pour les hôtes clients connectés à votre site.

  • Préparer les données contenues dans Data Warehouse pour l’analyse en remplissant des cubes OLAP (Online Analytical Processing), qui structurent les données pour la récupération au cours de l’exécution de rapports.

  • Supprimer des données de fichier journal importées afin de réduire le volume de l’espace de stockage dans la base de données SQL Server nécessaire à Commerce Server.

  • Supprimer toutes les données contenues dans Data Warehouse afin de supprimer des données de test ou archivées existantes.

Lots SQL Server

Commerce Server et Data Warehouse

Lots SQL Server

Les tâches des services de transformation de données (DTS, Data Transformation Services) de Commerce Server, qui sont chargées dans SQL Server lors de la décompression d’un site comprenant des lots DTS SQL Server, vous permettent d’importer, de transformer et de stocker des données dans Data Warehouse. Vous pouvez utiliser Data Warehouse directement dans SQL Server ou dans Commerce Server Manager.

Vous effectuez les opérations Data Warehouse en ajoutant des tâches DTS Commerce Server à un lot DTS SQL Server, puis en exécutant le package. Vous pouvez effectuer une tâche de Data Warehouse à la fois, en ouvrant un package, en lui ajoutant une tâche, puis en exécutant le package. Vous pouvez également ajouter plusieurs tâches à un package, ajouter des instructions de flux de travail concernant l’ordre d’exécution des tâches, puis exécuter le package afin d’effectuer toutes les tâches dans le même processus, selon l’ordre que vous avez indiqué.

De plus, vous pouvez enregistrer les packages avec les tâches et les instructions de flux de travail : ainsi, le package est à votre disposition au moment où vous voulez l’exécuter. Vous pouvez planifier l’exécution d’un package à l’aide de SQL Server Scheduler. Pour plus d’informations sur les lots DTS, les tâches et SQL Server Scheduler, consultez la documentation en ligne de SQL Server.

Commerce Server et Data Warehouse

Commerce Server utilise les données contenues dans Data Warehouse des manières suivantes :

  • Vous utilisez les modules Analyse Business Desk pour exécuter des rapports qui apportent une réponse à vos questions commerciales concernant votre site Web en analysant les données contenues dans Data Warehouse. Vous pouvez également consulter les modèles de segments, créés à l’aide de la ressource Predictor, dans le module Identification de segments. Pour plus d’informations sur l’exécution de rapports et la consultation des modèles de segments dans les modules Analyse, consultez Analyse Business Desk.

  • Vous utilisez la ressource Predictor de Commerce Server Manager pour créer des modèles de prévision prédisant le comportement des utilisateurs et des modèles de segments qui analysent le comportement des utilisateurs, à l’aide des données contenues dans Data Warehouse. Pour plus d’informations sur la ressource Predictor, consultez Exécution de la ressource Predictor.

  • Vous utilisez le module Gestionnaire de listes de Business Desk pour gérer des listes que vous créez à partir des rapports d’analyse et des modèles de segments, à l’aide des données contenues dans Data Warehouse. Pour plus d’informations sur les campagnes marketing et le module Gestionnaire de listes, consultez Campagnes marketing Business Desk.

  • Vous utilisez la ressource Profiles de Commerce Server Manager pour définir les données que votre site Web collectera auprès des utilisateurs et pour sélectionner les informations qui seront importées dans Data Warehouse. Pour plus d’informations sur la ressource Profiles, consultez Exécution de la ressource Profiles.

  • Vous utilisez les modules Utilisateurs Business Desk pour mettre à jour les informations utilisateur collectées sur votre site Web, pour définir les données que votre site Web collectera auprès des utilisateurs et pour sélectionner les informations qui seront importées dans Data Warehouse. Pour plus d’informations sur les modules Utilisateurs, consultez Utilisateurs Business Desk.

Voir aussi

Importation de données dans Data Warehouse


Composants de Data Warehouse

Data Warehouse utilise les tâches des services de transformation de données (DTS, Data Transformation Services), les processus d’importation et les cubes OLAP (Online Analytical Processing) pour importer, transformer et stocker des données de votre site.

Cette section contient les rubriques suivantes :

  • Tâches DTS

  • Processus d’importation

  • Moteur de stockage de Data Warehouse

  • Cubes OLAP


Tâches DTS

Les tâches des services de transformation de données (DTS, Data Transformation Services) de Commerce Server vous permettent d’importer et de modifier les données contenues dans Data Warehouse. Les tâches de Commerce Server sont chargées dans SQL Server au moment de la décompression d’un site. Vous ajoutez les tâches de Commerce Server à un lot SQL Server, puis vous exécutez ce lot afin d’apporter des modifications à Data Warehouse.

Commerce Server fournit les tâches suivantes pour Data Warehouse.

Importation de journal de serveur Web. Définit et importe les fichiers journaux Web. Cette tâche permet de définir les propriétés de fichier journal Web déterminant les données qui sont importées à partir d’un fichier journal Web et la manière dont les utilisateurs et visites individuels sont distingués.

Suppression des données. Supprime les données de fichier journal de détail et les données synthétisées de Data Warehouse. Vous supprimez des données de fichier journal pour réduire la taille de Data Warehouse. Vous supprimez l’ensemble des données, de détail et synthétisées, lorsque vous avez importé des données de test et que vous souhaitez vider Data Warehouse avant d’y importer des données valides.

Résolution IP. Résout les adresses IP (Internet Protocol) à partir des données utilisateur importées. La résolution IP permet de convertir des adresses IP, importées à partir de vos fichiers journaux, en noms de domaines. Par exemple, 198.105.232.4 devient www.microsoft.com. Ceci permet aux personnes qui lisent vos rapports de comprendre plus facilement les données qui y sont contenues.

Importation de campagne marketing. Importe des données concernant les campagnes marketing. Les données des campagnes marketing vous permettent d’analyser le succès de vos campagnes marketing. Vous utilisez la ressource Campagne marketing de Commerce Server Business Desk pour configurer les campagnes marketing. Pour plus d’informations sur l’utilisation des modules Campagnes marketing Business Desk, consultez À propos des campagnes marketing. Vous pouvez également exécuter des rapports afin d’analyser les données des campagnes marketing. Pour plus d’informations sur les rapports, consultez Rapports de publicité.

Importation des données de transaction. Définit et importe les données de transaction. Les données de transaction sont créées sur votre site Web lorsqu’un utilisateur ajoute et supprime des articles de son panier ou qu’il procède à un achat. Vous pouvez exécuter des rapports afin d’analyser les données de transaction. Pour plus d’informations sur les rapports, consultez Rapports sur les ventes de produits.

Importation de profil utilisateur. Importe des données de profil utilisateur dans Data Warehouse. Commerce Server collecte des données de profil utilisateur lorsqu’un utilisateur visite votre site Web. Commerce Server collecte des données de profil concernant les utilisateurs inscrits lorsque les utilisateurs entrent des informations personnelles dans la définition de profil Objet utilisateur sur votre site.

Commerce Server collecte également des informations concernant les actions des utilisateurs invités (c’est-à-dire les utilisateurs qui ne sont pas inscrits sur votre site Web). Les données de profil des utilisateurs invités contiennent un identificateur global unique (GUID) pour chaque utilisateur invité, ainsi que des données de comportement.

Vous pouvez modifier la définition de profil Objet utilisateur dans la ressource Profiles de Commerce Server Manager, ainsi que dans le module Définition de profil de Business Desk. Vous pouvez utiliser le module Utilisateurs Business Desk pour modifier les données de profil utilisateur.

Pour plus d’informations sur l’utilisation des définitions de profils de la ressource Profiles, consultez Exécution de la ressource Profiles. Pour plus d’informations sur l’utilisation des modules Définition de profil et Utilisateurs Business Desk, consultez Utilisateurs Business Desk. Vous pouvez également exécuter des rapports afin d’analyser les données utilisateur. Pour plus d’informations sur les rapports, consultez Rapports d’utilisateur.

Préparation du rapport. Remplit les cubes OLAP à l’aide des données d’importation, prépare les données pour la génération de rapports et actualise les cubes après une tâche de suppression. Cette tâche doit être effectuée après chaque tâche d’importation et de suppression.

Importation du catalogue de produits. Importe des données sur les produits de vos catalogues. L’importation des données sur les produits permet d’indiquer dans vos rapports de transaction des informations plus descriptives sur les produits que celles disponibles dans les données de transaction. Vous pouvez également exécuter des rapports afin d’analyser la vente des produits. Pour plus d’informations sur les rapports, consultez Rapports de ventes de produits.

Synchronisation de la configuration. Synchronise Data Warehouse et votre application Commerce Server après que vous avez apporté des modifications aux paramètres de configuration. Si la configuration du site en ligne change, cette tâche doit être exécutée avant tout autre tâche.

Voir aussi

Configuration des fichiers journaux Web pour l’importation

Configuration des propriétés d’importation de fichier journal Web

Ajout d’une application et d’un serveur Web non-Commerce Server


Processus d'importation

Processus d’importation

Commerce Server propose cinq processus d’importation pour importer et transformer les données dans Data Warehouse.

  • Processus d’importation des données de fichier journal Web

  • Processus d’importation des données de transaction

  • Processus d’importation des données utilisateur

  • Processus d’importation des données de campagne marketing

  • Processus d’importation des données du catalogue de produits

Processus d’importation des données de fichier journal Web

Ce processus permet d’importer les données de fichier journal Web générées par vos serveurs Web. Les fichiers journaux Web doivent être au format de fichier journal Web étendu du W3C (World Wide Web Consortium). Pour plus d’informations sur la configuration des fichiers journaux Web au format de fichier journal Web étendu du W3C, consultez Configuration des fichiers journaux Web pour l’importation.

La tâche Importation de journal de serveur Web permet de fournir des informations sur le fichier journal à importer et l’emplacement où le trouver. Le processus d’importation de fichier journal Web recherche les fichiers journaux à l’emplacement spécifié, les analyse et applique les propriétés définies dans la boîte de dialogue Propriétés avancées d’importation de journal de serveur Web.

Si votre site possède plusieurs serveurs Web, le processus d’importation de fichier journal Web combine les fichiers des différents serveurs Web dans la mémoire et organise les données de fichier journal de manière chronologique. Le processus d’importation de fichier journal Web filtre les données de fichier journal Web à l’aide des propriétés d’importation que vous avez définies. Il applique un algorithme d’inférence de visite des utilisateurs pour transformer les données de clic en nombre d’utilisateurs et de visites distincts.

De plus, si vous sélectionnez l’importation des chaînes de requête associées au site Web, le processus d’importation de fichier journal Web les importe. Pour plus d’informations sur la configuration des fichiers journaux Web, consultez Configuration des propriétés d’importation de fichier journal Web.

Commerce Server prend en charge les serveurs Web qui n’exécutent pas les services Internet Information Services (IIS) 5.0 et n’incluent pas les composants de Commerce Server capables de créer des fichiers journaux au format de fichier journal du W3C. Vous pouvez mettre à la disposition de Data Warehouse les fichiers journaux de ces serveurs Web pour qu’ils soient importés. Pour plus d’informations sur l’ajout d’applications et de serveurs Web n’utilisant pas les composants de Commerce Server, consultez Ajout d’une application et d’un serveur Web non-Commerce Server.

Remarque

  • Le processus d’importation de fichier journal Web n’importera pas les fichiers journaux pendant qu’IIS procède à des écritures actives dans ces fichiers. N’importez pas votre fichier journal directement depuis votre site Web. Vérifiez plutôt que le serveur n’accède plus au fichier, puis copiez le fichier vers un autre emplacement. Vous pouvez ensuite l’importer depuis l’emplacement sélectionné.

Processus d’importation des données de transaction

Ce processus permet d’importer les données de transaction du site lorsque vous exécutez la tâche Importation des données de transaction. Les données de transaction correspondent à des données de commandes stockées, telles que les bons de commandes et les numéros de demandes. L’exécution de rapports sur les données de transaction importées vous permet d’analyser la façon dont se vendent des produits donnés, la quantité demandée ou la somme des achats des clients. Vous pouvez effectuer une importation complète de l’ensemble des données de transaction à partir de la base de données Commerce Server ou une importation incrémentielle des données de transaction qui n’ont pas encore été importées dans Data Warehouse.

Processus d’importation des données utilisateur

Ce processus permet d’importer les données de profil utilisateur lorsque vous exécutez la tâche Importation de profil utilisateur. Vous collectez les données utilisateur sur votre site Web à l’aide de la définition de profil Objet utilisateur. Le module Définition de profil de Business Desk permet de spécifier les propriétés de profil utilisateur qui seront importées dans Data Warehouse. (Vous pouvez également effectuer cette tâche en utilisant la ressource Profiles de Commerce Server Manager.) Pour plus d’informations sur la spécification des données utilisateur pour l’importation dans Data Warehouse, consultez Définitions de profils.

L’exécution de rapports sur les données utilisateur importées vous permet d’analyser si votre base d’utilisateurs se développe et d’analyser la capacité de votre site à faire d’utilisateurs invités des utilisateurs inscrits. Le processus d’importation des données utilisateur permet d’importer des données utilisateur dans Data Warehouse en fonction d’intervalles de temps que vous pouvez spécifier, afin d’éviter un verrouillage de la table de base de données. Par exemple, si vous envisagez d’importer les données de 10 000 utilisateurs, vous pouvez spécifier des intervalles de 15 minutes pour l’importation des données utilisateur, afin d’éviter une surcharge de votre serveur.

Vous pouvez effectuer une importation complète de l’ensemble des données utilisateur à partir de la base de données Commerce Server ou une importation incrémentielle des données utilisateur qui n’ont pas encore été importées dans Data Warehouse.

Processus d’importation des données de campagne marketing

Ce processus permet d’importer les données de campagne marketing lorsque vous exécutez la tâche Importation de campagne marketing. Les données de campagne marketing incluent des informations concernant les annonceurs, les campagnes de publicité et les éléments de la campagne. Le processus d’importation de campagne marketing permet d’importer les données de campagne marketing à partir de la base de données Commerce Server. L’exécution de rapports sur les données de campagne marketing importées permet d’analyser le succès de vos publicités.

Processus d’importation des données du catalogue de produits

Ce processus permet d’importer les données concernant les produits contenus dans votre catalogue lorsque vous exécutez la tâche Importation du catalogue de produits. Les données de catalogue de produits contiennent des informations de dimension sur les produits du catalogue, telles que le nom, la description la couleur et la taille. Le processus d’importation des données de catalogue permet d’importer les données de catalogue à partir de la base de données Commerce Server. Il est nécessaire que les données de catalogue s’affichent correctement pour les rapports tels que Analyse de produits et Analyse de transactions. Si les données de catalogue ne sont pas importées dans Data Warehouse, les produits sont identifiés dans les rapports uniquement par leurs numéros de référence UGS (Unité de Gestion de Stock).

Voir aussi

Configuration des fichiers journaux Web pour l’importation

Configuration des propriétés d’importation de fichier journal Web

Ajout d’une application et d’un serveur Web non-Commerce Server

Ajout de propriétés à des définitions de profils


Moteur de stockage de Data Warehouse

Le moteur de stockage de Data Warehouse propose trois processus de stockage pour le chargement des données dans Data Warehouse.

  • Synthèse

  • Gestion des schémas

  • Chargement de données

Synthèse

La synthèse permet de résumer les données sur les utilisateurs, transactions, campagnes marketing et catalogues de la base de données Commerce Server lorsque vous exécutez la tâche Importation de journal de serveur Web et la tâche Préparation du rapport. Les synthèses transforment les données brutes contenues dans la base de données Commerce Server en informations dans Data Warehouse, que vous utilisez pour analyser l’activité des utilisateurs sur votre site Web. La synthèse est effectuée en totalisant et en comptant les données brutes associées.

Par exemple, 1 000 enregistrements d’accès uniques à une page donnée sont synthétisés en une information indiquant que la page a fait l’objet de 1 000 accès. Vous pouvez utiliser ces informations pour prendre des décisions qui augmenteront le trafic sur votre site Web.

Gestion des schémas

La gestion des schémas permet de modifier le schéma de Data Warehouse selon les besoins, au cours du processus d’importation. Par exemple, si vous ajoutez une nouvelle propriété à la définition de profil Objet utilisateur et que vous la marquiez comme propriété exportée, le processus d’importation de profil utilisateur ajoute la nouvelle colonne au schéma de Data Warehouse lorsque les données de profil utilisateur contenant cette propriété sont importées.

Le tableau suivant répertorie les processus d’importation et décrit les modifications de schéma que le moteur de stockage de Data Warehouse apporte au schéma de Data Warehouse.

Processus d’importation | Modification au niveau du schéma de Data Warehouse
Fichier journal Web | Les chaînes de requête sont ajoutées au schéma.
Utilisateur | Les propriétés de profil utilisateur sont ajoutées au schéma ou en sont supprimées.
Catalogue de produits | Les dimensions du catalogue de produits sont ajoutées au schéma ou en sont supprimées.

Chargement de données

Le chargement de données permet de prendre en charge le chargement d’importants volumes de données dans la base de données de Data Warehouse, en utilisant des lectures et écritures en parallèle.

Voir aussi

Configuration des fichiers journaux Web pour l’importation

Configuration des propriétés d’importation de fichier journal Web

Ajout d’une application et d’un serveur Web non-Commerce Server


Cubes OLAP

Les cubes OLAP (Online Analytical Processing) représentent des structures de données que Data Warehouse utilise pour contenir les données que vous importez. Les cubes décomposent les données en sous-ensembles, définis par des dimensions partagées.

Une dimension constitue l’attribut descriptif d’un indicateur. Par exemple, une dimension peut décrire le nombre d’achats effectués par un utilisateur. Le nombre d’achats est un indicateur. L’utilisateur et les produits achetés constituent les dimensions. La figure suivante montre la relation existant entre les dimensions et les indicateurs. Pour plus d’informations sur les cubes OLAP, consultez la documentation en ligne de SQL Server.

Dimensions et indicateurs
Unités
Heure
Produit
Heure
Produit
Tables de
dimensions
Géographique
Géographique
Dimension
Indicateurs

Les cubes OLAP utilisés par Commerce Server sont créés au cours du processus de décompression et sont remplis et traités pour la récupération de données lorsque la tâche Préparation du rapport est exécutée. Le stockage de données dans des cubes augmente la vitesse de récupération des données lorsque vous exécutez les rapports d’analyse de site Web dans Business Desk. Le tableau suivant répertorie les cubes et dimensions Commerce Server.

Cube | Dimensions
Weekly User Trends | Date Site Week of Year
Campaign | Advertiser Campaign DateHour Events Page Group Site UserType URI
Sales | CustomerOrders Date Products Site UserType
Basket Events | DateHour Event Products Utilisateur inscrit Site UserType
OrderEvents | DateHour Day of Week Event Hour of Day Site UserType Week of Year
Buyer Visits | BuyerType Site UserType
Bandwidth | DateHour Day of Week Hour of Day Site
Utilisateurs | Date Site UserType
Entry Pages | Date Site URI
Exit Pages | Date Site URI
Web Usage | Date DateHour Day of Week Hour of Day Referrer Utilisateur inscrit SiteUserType Week of Year
Page Usage | Date HTTP Status Is Request Level Directory Site URI Win32Status

Voir aussi

Configuration des fichiers journaux Web pour l’importation

Configuration des propriétés d’importation de fichier journal Web

Ajout d’une application et d’un serveur Web non-Commerce Server


Configuration de la ressource Data Warehouse

Vous devez configurer la ressource Data Warehouse pour que Data Warehouse fonctionne avec Microsoft SQL Server. Vous pouvez également configurer le fuseau horaire et le jour de démarrage de la semaine que Data Warehouse attribue aux données d’heure importées.

Vous devez définir la chaîne de connexion au cours du processus d’installation pour connecter Data Warehouse à SQL Server. Vous pouvez utiliser Commerce Server Manager pour modifier l’identificateur d’utilisateur et le mot de passe de la chaîne de connexion, au niveau de la ressource globale. Data Warehouse se connecte à SQL Server à l’aide d’un identificateur d’utilisateur et d’un mot de passe.

Remarque

  • Vous ne pouvez modifier que l’identificateur d’utilisateur et le mot de passe dans la chaîne de connexion de Data Warehouse. Pour modifier la chaîne de connexion tout entière, vous devez procéder à une nouvelle décompression du site. Pour plus d’informations sur la décompression d’un site, consultez Décompression d’un site et Exemple B : Installation dans une configuration non ordonnée en clusters et comprenant trois ordinateurs.

Pour modifier la chaîne de connexion au niveau de la ressource globale

Pour modifier le fuseau horaire et le jour de démarrage de la semaine

Pour modifier la chaîne de connexion au niveau de la ressource globale

  1. Développez Commerce Server Manager, Ressources globales, cliquez avec le bouton droit sur Data Warehouse, puis cliquez sur Propriétés.

  2. Sous l’onglet Connexion de la boîte de dialogue Propriétés de Data Warehouse, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Authentification SQL Server | Utiliser un nom d’utilisateur et un mot de passe fournis pour authentifier vos informations de connexion.
    Identificateur d’utilisateur | Taper l’identificateur d’utilisateur à utiliser pour l’authentification lors de la connexion.
    Mot de passe | Taper le mot de passe à utiliser pour l’authentification lors la connexion.

  3. Cliquez sur OK pour enregistrer les modifications.

Pour modifier le fuseau horaire et le jour de démarrage de la semaine

  1. Développez Commerce Server Manager, Ressources globales, cliquez avec le bouton droit sur Data Warehouse, puis cliquez sur Propriétés.

  2. Sous l’onglet Heure de la boîte de dialogue Propriétés de Data Warehouse, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Régler le fuseau horaire sur | Sélectionner le fuseau horaire dans la liste déroulante.
    Démarrer le | Sélectionner le jour de démarrage de la semaine dans la liste déroulante.

  3. Cliquez sur OK pour enregistrer les modifications.

Remarque

  • Le jour de démarrage de la semaine SQL Server est utilisé dans les rapports. Le jour de démarrage de la semaine que vous définissez dans la boîte de dialogue Propriétés de Data Warehouse est utilisé pour regrouper les données importées des fichiers journaux Web selon des intervalles hebdomadaires.

La ressource Data Warehouse est configurée. Vous devez configurer les fichiers journaux Web pour l’importation et synchroniser la configuration de votre site avec Data Warehouse avant d’importer des données dans Data Warehouse.

Voir aussi

Installation de Commerce Server

Décompression d’un site

Configuration d’un serveur Web


Configuration des fichiers journaux Web pour l'importation

Configuration des fichiers journaux Web pour l’importation

Avant de pouvoir importer des fichiers journaux Web dans Data Warehouse, vous devez configurer les propriétés de fichier journal Web de manière à utiliser le format de fichier journal du W3C (World Wide Web Consortium). Vous configurez les propriétés de fichier journal Web à l’aide du Gestionnaire des services Internet.

Pour configurer les propriétés du site Web par défaut pour l’importation

Pour spécifier l’emplacement d’un fichier journal à Data Warehouse

Pour configurer les propriétés du site Web par défaut pour l’importation

  1. Développez Services IIS (Internet Information Services), développez le serveur sur lequel vous avez décompressé le site, cliquez avec le bouton droit sur le site Web par défaut, puis cliquez sur Propriétés.

  2. Sous l’onglet Site Web, dans la boîte de dialogue Propriétés de Site Web par défaut, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Activer l’enregistrement dans le journal | Activer le journal pour enregistrer l’activité du site Web.
    Format de journal actif | Sélectionner Format de fichier journal étendu du W3C dans la liste déroulante.

  3. Cliquez sur Propriétés.

  4. Sous l’onglet Propriétés étendues, dans la boîte de dialogue Propriétés du journal étendu, effectuez les opérations suivantes :
    Sélectionnez ceci | Pour importer cela
    Date | La date à laquelle a eu lieu l’activité sur votre site Web.
    Heure | L’heure à laquelle a eu lieu l’activité.
    Adresse IP du client | L’adresse IP du client ayant accédé à votre serveur.
    Nom d’utilisateur | Le nom de l’utilisateur ayant accédé à votre serveur.
    Adresse IP du Serveur | L’adresse IP de serveur sur lequel l’entrée de journal a été générée.
    Port du serveur | Le numéro de port auquel le client est connecté.
    Méthode | L’action que le client tentait d’exécuter (par exemple, l’ouverture d’une page Web).
    Ressource URI | La ressource URI (Uniform Resource Identifier) de la ressource qui fait l’objet de l’accès, par exemple une page HTML.
    Requête URI | La requête, le cas échéant, que le client tentait d’exécuter. Il s’agit par exemple d’une chaîne de recherche pour laquelle un client recherchait une correspondance.
    État HTTP | L’état de l’action, en termes HTTP.
    État Win32 | L’état de l’action, en termes utilisés par Microsoft Windows.
    Octets envoyés | Le nombre d’octets envoyés par le serveur.
    Octets reçus | Le nombre d’octets reçus par le serveur.
    Agent utilisateur | Le navigateur utilisé sur le client.
    Cookie | Le contenu du cookie envoyé ou reçu.
    Référant | Le site qui a dirigé l’utilisateur vers le site en cours.

    Important

    • Vous devez activer les cases à cocher Adresse IP du client, Ressource URI et Heure pour que les fichiers journaux Web soient correctement importés. Incluez la propriété Date pour vous assurer de l’exactitude de l’indication des dates. Pour plus d’informations sur la définition des propriétés de serveur Web, consultez Configuration d’un serveur Web.
  5. Cliquez sur OK pour quitter la boîte de dialogue Propriétés du journal étendu, puis sur OK pour quitter la boîte de dialogue Propriétés de Site Web par défaut.

Les propriétés de fichier journal Web sont configurées au format de fichier journal du W3C.

Pour spécifier l’emplacement d’un fichier journal à Data Warehouse

  1. Développez Services IIS, développez le nom du serveur, cliquez avec le bouton droit sur Site Web par défaut, puis cliquez sur Propriétés.

  2. Dans la boîte de dialogue Propriétés de Site Web par défaut, cliquez sur Propriétés.

  3. Dans la boîte de dialogue Propriétés du journal étendu, sous l’onglet Propriétés générales, tapez le chemin d’accès du répertoire du fichier journal dans la zone Répertoire du fichier journal.

  4. Cliquez sur OK pour quitter la boîte de dialogue Propriétés du journal étendu, puis sur OK pour quitter la boîte de dialogue Propriétés de Site Web par défaut.

Data Warehouse peut à présent trouver le fichier journal de votre site Web. Une fois que vous avez configuré les propriétés du site Web par défaut pour l’importation dans Data Warehouse, vous devez synchroniser les propriétés IIS de Commerce Server Manager et les propriétés de la métabase IIS et de Data Warehouse. Pour obtenir des instructions sur la synchronisation des propriétés IIS et de Data Warehouse, consultez Synchronisation de la configuration du site et de Data Warehouse.

Voir aussi

Configuration d’un serveur Web

Configuration d’une application

Ajout d’une application et d’un serveur Web non-Commerce Server

Synchronisation de la configuration du site et de Data Warehouse


Synchronisation de la configuration du site et de Data Warehouse

La tâche Synchronisation de la configuration vous permet de synchroniser la configuration de votre site et Data Warehouse, de sorte que les modifications apportées à la configuration du site soient propagées à Data Warehouse. Vous devez exécuter la tâche de synchronisation avant d’exécuter les tâches d’importation ou de suppression.

Pour synchroniser la configuration du site et Data Warehouse

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Synchronisation de la configuration (Commerce Server).

  4. Dans la boîte de dialogue Propriétés de la synchronisation du Data Warehouse, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Description | Taper une description pour la tâche de synchronisation.
    Nom du site | Sélectionner dans la liste déroulante le site que vous voulez synchroniser avec Data Warehouse.

  5. Cliquez sur OK.

  6. Dans le menu Lot, cliquez sur Exécuter.

    La boîte de dialogue Exécution du lot s’affiche, indiquant l’avancement de la synchronisation. Lorsque le processus est terminé, la boîte de dialogue Résultats d’exécution du lot vous informe que le processus s’est terminé avec succès.

  7. Cliquez sur OK, puis sur Terminé.

Data Warehouse est synchronisé avec la configuration de votre site Commerce Server. Vous pouvez à présent configurer les propriétés d’importation de fichier journal Web et importer des données dans Data Warehouse.

Voir aussi

Configuration des fichiers journaux Web pour l’importation

Configuration d’un serveur Web

Configuration d’une application

Ajout d’une application et d’un serveur Web non-Commerce Server


Configuration des propriétés d'importation de fichier journal Web

Configuration des propriétés d’importation de fichier journal Web

Vous pouvez configurer cinq jeux de propriétés permettant de contrôler et de personnaliser les données que vous importez de vos fichiers journaux Web dans Data Warehouse. Les paramètres que vous sélectionnez pour ces propriétés peuvent améliorer votre analyse des données, accélérer les processus d’importation et faciliter la gestion de Data Warehouse.

Remarque

  • Sauf indication contraire, ces paramètres s’appliquent à l’ensemble des applications du site.

Les propriétés suivantes permettent de contrôler les données qui sont importées de vos fichiers journaux Web dans Data Warehouse :

  • Fichiers par défaut. Permet de s’assurer que le nombre des accès des visiteurs uniques à la page par défaut de votre site est précis, pour permettre des redirections et plusieurs versions de votre adresse URL.

  • Exclusions. Permet d’empêcher l’importation des données suivantes dans Data Warehouse : accès à partir de certains hôtes, demandes de types de fichiers ou d’expressions spécifiques et accès par des robots.

  • Inférences. Permet de personnaliser les hypothèses établies au cours de l’importation concernant les utilisateurs et les visites, afin de mieux répondre aux besoins de votre organisation en matière d’analyse.

  • Fichiers journaux. Permet de personnaliser l’action à exécuter en réponse aux superpositions horaires dans les fichiers journaux.

  • Chaînes de requête. Permet d’importer les chaînes de requête des sites Web, pour permettre l’analyse des données qui y sont associées.

Voir aussi

Composants de Data Warehouse

Synchronisation de la configuration du site et de Data Warehouse

Importation de données dans Data Warehouse

Préparation à la création de rapports


Fichiers par défaut

Un fichier par défaut, également connu sous le nom de fichier d’index de répertoire ou page d’accueil, constitue une page Web à laquelle les utilisateurs accèdent lorsqu’ils tapent dans la zone Adresse de leur navigateur une adresse URL de site ne contenant pas de nom de fichier spécifique. Par exemple, les utilisateurs accèdent à la page www.microsoft/default.htm lorsqu’ils tapent www.microsoft.com ou www.microsoft.com/default.htm dans la zone Adresse de leur navigateur. Les fichiers journaux Web comptent toutefois les deux adresses URL en tant qu’accès à deux pages différentes.

Vous pouvez définir l’option Fichiers par défaut dans Commerce Server 2000 de manière à spécifier plusieurs adresses URL à compter en tant qu’accès à la même page. Vous pouvez utiliser cette option pour créer des redirections et plusieurs chemins dans votre site sans réduire la précision de vos statistiques sur le nombre total des utilisateurs du site.

De plus, vous pouvez choisir d’afficher les chaînes de noms de fichiers sans leurs répertoires de premier niveau avant l’importation. Ce procédé facilite l’utilisation de vos fichiers si vos répertoires de site sont stockés dans un sous-répertoire que vous n’avez pas besoin de voir dans vos rapports.

Dans le cas des services Internet Information Services (IIS) 5.0, ce paramètre est synchronisé de manière automatique au cours de l’installation avec les fichiers d’index de répertoire d’adresse URL de base répertoriés dans IIS.

Remarque

  • Dans le cas de serveurs non-IIS, les paramètres par défaut sont Index.html, Index.htm et Default.htm. Si ces paramètres ne sont pas appropriés à votre site, changez-les pour garantir la précision du comptage des demandes.

Pour définir un fichier d’index de répertoire

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Importation de journal de serveur Web (Commerce Server).

  4. Dans la boîte de dialogue Importer les journaux de serveur Web, cliquez sur Options avancées.

  5. Sous l’onglet Fichiers par défaut, dans la boîte de dialogue Propriétés avancées d’importation de journal Web, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Supprimer le répertoire de premier niveau du fichier de chemins d’accès système | Afficher les chaînes de noms de fichiers sans leurs répertoires de premier niveau.
    Fichier d’index de répertoire | Taper le nom du fichier que vous voulez désigner en tant que fichier d’index de répertoire.
    Ajouter | Ajouter le nouveau fichier d’index de répertoire à la liste des fichiers par défaut.

  6. Cliquez sur Appliquer, puis sur OK.

Les fichiers d’index de répertoire sont définis pour le processus d’importation de fichier journal Web. Vous pouvez poursuivre et configurer le processus d’importation de fichier journal Web, ou vous pouvez importer des données dans Data Warehouse. Vous devez synchroniser la configuration de votre site et Data Warehouse avant d’importer des données dans Data Warehouse.

Voir aussi

Composants de Data Warehouse

Configuration des propriétés d’importation de fichier journal Web

Importation de données dans Data Warehouse


Exclusions

Vous pouvez exclure certains types de données de vos importations. En excluant certaines données, la taille de Data Warehouse reste facile à gérer et les demandes de pages sont définies de façon plus précise dans vos rapports. Les types de données suivants peuvent être exclus :

  • Hôtes. Vous pouvez exclure les données d’utilisateurs provenant de certains hôtes (par exemple, les employés et les testeurs de logiciels). Cette fonctionnalité est généralement utilisée pour exclure des hôtes internes. Vous pouvez toutefois spécifier l’exclusion de n’importe quel hôte.

    Data Warehouse n’importera pas les accès associés aux hôtes que vous excluez. Cependant, les accès associés aux hôtes exclus sont inclus dans certains rapports exclusifs de regroupement, tels que la synthèse du nombre d’accès et des données de bande passante.

    Lorsque vous entrez un nom d’hôte à exclure, vous devez taper une chaîne que Commerce Server 2000 peut utiliser pour effectuer les recherches dans les fichiers journaux. Par exemple, www.microsoft.com exclura les informations des utilisateurs dont l’hôte est www.microsoft.com. Vous ne devez pas inclure d’espace dans le nom tapé.

  • Types de fichiers. Bien qu’une page de votre site Web puisse inclure plusieurs fichiers, vous voulez vous assurer que seule une demande de page est comptée plutôt qu’un accès à chacun des fichiers composant la page. Par exemple, si une page comprend des graphiques stockés dans des fichiers distincts, mais que ces fichiers sont une partie logique de la page, vous pouvez exclure les fichiers graphiques de l’importation afin d’obtenir des nombres d’accès plus précis. Vous pouvez définir la propriété Exclusions pour exclure des fichiers en spécifiant les extensions de nom de fichier correspondant aux types de fichiers à exclure.

    Par défaut, les fichiers portant les extensions .gif, .jpg, .jpeg, .css et .cdf sont exclus des importations de Commerce Server. Vous avez également la possibilité de supprimer des extensions de fichiers de la liste des exclusions. Le nom tapé correspond à la chaîne que Commerce Server recherchera dans les fichiers journaux. Vous devez taper l’extension exacte.

  • Expressions de fichiers. Outre l’exclusion d’un fichier du processus d’importation en fonction de son extension, vous pouvez exclure un fichier en fonction de son chemin. Vous pouvez indiquer une expression de fichier complète pour un fichier donné ou vous pouvez utiliser des caractères génériques pour exclure un groupe de fichiers partageant des caractères similaires dans leurs expressions.

    Les expressions de fichiers ne respectent pas la casse. Vous ne devez pas inclure de trait de soulignement (_) ou d’espace. Vous devez taper la chaîne exacte que Commerce Server doit rechercher.

    Le tableau suivant répertorie les caractères génériques que vous pouvez utiliser dans les expressions de fichiers.

    Caractère Description Exemple
    * Correspond à n’importe quel nombre de caractères dans une chaîne de caractères t* correspond à Test, total et Terrible
    ? Correspond à tout caractère alphanumérique unique Te?t correspond à Test et texte

  • Robots. Les moteurs de recherche s’appuient sur des robots qui parcourent le World Wide Web pour y rechercher du contenu, des titres, des mots-clés, etc. Par défaut, les robots sont exclus des importations pour éviter l’importation dans Data Warehouse des accès effectués par les moteurs de recherche Internet, robots et tout autre agent utilisateur. (Cependant, ces accès sont utilisés dans des rapports tels que la synthèse du nombre d’accès et des données de bande passante.)

    Une liste des robots exclus par défaut est disponible dans le répertoire racine de Commerce Server, dans le fichier Crawler.ini. La liste par défaut inclut les principaux robots qui sont exclus par les plus grandes organisations d’audit Web. Vous pouvez ajouter de nouveaux robots à la liste des exclusions ou restaurer des robots pour l’importation ; sachez toutefois que la restauration de robots peut entraîner une baisse des performances générales de votre système.

L’onglet Exclusions de la boîte de dialogue Propriétés avancées d’importation de journal Web propose une liste déroulante dans laquelle vous pouvez choisir le type de données que vous voulez utiliser. Sélectionnez l’option Tout dans la liste pour afficher une liste de l’ensemble des exclusions.

Par défaut, l’exclusion de données des importations entraîne l’exclusion de ces données de toutes les applications exécutées sur votre site. Vous pouvez cependant aussi exclure des données d’applications spécifiques, tout en incluant des données similaires provenant d’autres applications sur votre site.

Supposons que vous ayez deux applications sur votre site, Application1 et Application2, et que chaque application contienne un répertoire nommé /Exemples. Vous pouvez choisir d’exclure le contenu du répertoire /Exemples des deux applications, ou vous pouvez spécifier que les données ne doivent être exclues que du répertoire /Exemples de l’application Application1. Le contenu du répertoire /Exemples de l’application Application2 sera toujours importé.

Pour ajouter une exclusion pour l’importation

Pour supprimer une exclusion pour l’importation

Pour ajouter une exclusion pour l’importation

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le lot. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Importation de journal de serveur Web (Commerce Server).

  4. Dans la boîte de dialogue Importer les journaux de serveur Web, cliquez sur Options avancées.

  5. Dans la boîte de dialogue Propriétés avancées d’importation de journal Web, sous l’onglet Exclusions, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Inclure la liste de robots par défaut dans les critères d’exclusion | Empêcher l’importation des robots figurant dans la liste de robots par défaut.
    Ajouter | Ouvrir la boîte de dialogue Exclusions pour créer un nouvel élément d’exclusion.

  6. Dans la boîte de dialogue Exclusions, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Sélectionner une catégorie d’exclusion | Sélectionner dans la liste déroulante le type d’exclusion à ajouter.
    Nom | Taper la chaîne que Commerce Server recherchera dans les fichiers journaux. Par exemple, taper *.gif pour exclure les fichiers graphiques. Commerce Server n’importera pas les éléments correspondant à la chaîne tapée. La chaîne ne peut pas contenir d’espace.
    Toutes les applications d’un site | Exclure l’élément de toutes les applications d’un site.
    Applications sélectionnées d’un site | Spécifier une application de laquelle l’élément doit être exclu.
    Sélectionner tout | Exclure les données de l’ensemble des applications répertoriées au-dessus du bouton.
    Désélectionner tout | Annuler la sélection de l’ensemble des applications répertoriées au-dessus du bouton.

  7. Cliquez sur OK pour fermer la boîte de dialogue Exclusions et revenir à l’onglet Exclusions de la boîte de dialogue Propriétés avancées d’importation de journal Web.

  8. Continuez d’ajouter des exclusions. Lorsque vous avez terminé, cliquez sur Appliquer, puis sur OK pour enregistrer les ajouts et fermer la boîte de dialogue.

Pour supprimer une exclusion pour l’importation

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Importation de journal de serveur Web (Commerce Server).

  4. Dans la boîte de dialogue Importer les journaux de serveur Web, cliquez sur Options avancées.

  5. Dans la boîte de dialogue Propriétés avancées d’importation de journal Web, sous l’onglet Exclusions, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Type d’exclusion | Sélectionner l’élément d’exclusion à supprimer.
    Supprimer | Supprimer l’élément d’exclusion.

  6. Cliquez sur Appliquer, puis sur OK pour fermer la boîte de dialogue.

Les exclusions pour l’importation sont configurées pour le processus d’importation de fichier journal Web. Vous pouvez poursuivre et configurer les propriétés d’importation de fichier journal Web, ou vous pouvez importer des données dans Data Warehouse. Vous devez synchroniser la configuration de votre site et Data Warehouse avant d’importer des données dans Data Warehouse.

Voir aussi

Composants de Data Warehouse

Configuration des propriétés d’importation de fichier journal Web

Importation de données dans Data Warehouse


Inférences

Commerce Server 2000 utilise le concept de visites des utilisateurs pour déterminer le trafic sur le site Web. Une visite peut être définie comme un ensemble de demandes émises par le même utilisateur au cours d’une période donnée. Toutefois, l’identification des utilisateurs n’est pas tout à fait précise, car les ordinateurs clients Web n’envoient qu’un volume limité de données à l’ordinateur représentant le serveur. Commerce Server tente d’identifier les utilisateurs en fonction des propriétés figurant dans le fichier journal Web. Les inférences font référence au processus d’identification des utilisateurs uniques en fonction des données figurant dans le fichier journal Web. Vous pouvez définir des inférences pour les utilisateurs et les visites dans Data Warehouse afin de personnaliser les hypothèses établies au cours de l’importation concernant les utilisateurs et les visites, pour mieux répondre aux besoins de votre organisation en matière d’analyse.

Utilisateurs

Visites

Utilisateurs

Il se peut que vous vouliez identifier les utilisateurs en tant qu’individus dont les schémas de navigation et d’achat vous intéressent.

Commerce Server 2000 propose trois options permettant d’identifier les utilisateurs.

  • Utiliser des cookies d’identification de Commerce Server pour les inférences. Vous pouvez configurer Commerce Server de telle sorte qu’il émette automatiquement des cookies cryptés permettant d’identifier des utilisateurs distincts et de les associer à des profils utilisateur dans la base de données Commerce Server.

  • Utiliser des noms d’utilisateurs pour les inférences. Si vos utilisateurs s’inscrivent sur votre site, ils peuvent être identifiés par leurs noms d’utilisateurs choisis.

  • Utiliser des identificateurs de cookies personnalisés. Vous pouvez ajouter un identificateur de cookie personnalisé.

Remarque

  • Si vous utilisiez auparavant Microsoft Site Server 3.0, Édition Commerce électronique, les cookies Site Server que vous utilisiez alors sont à présent considérés comme des cookies personnalisés. Ils apparaissent dans la liste des cookies personnalisés sous l’onglet Inférences, dans la boîte de dialogue Propriétés avancées d’importation de journal Web, juste au-dessous de la zone de texte intitulée Entrer un nouvel identificateur de cookie personnalisé.

Ces trois méthodes sont activées par défaut pour Commerce Server. À moins que vous ne désactiviez une ou plusieurs d’entre elles, elles seront utilisées dans l’ordre suivant pour identifier les utilisateurs : cookies d’identification de Commerce Server, identificateurs de cookies personnalisés, puis les noms d’utilisateurs. Si ces méthodes ne sont pas activées ou disponibles, les utilisateurs sont identifiés en fonction de leur adresse IP et de l’agent client.

Pour définir une inférence pour les utilisateurs

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Importation de journal de serveur Web (Commerce Server).

  4. Dans la boîte de dialogue Importer les journaux de serveur Web, cliquez sur Options avancées.

  5. Dans la boîte de dialogue Propriétés avancées d’importation de journal Web, sous l’onglet Inférences, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Utiliser des cookies d’identification de Commerce Server pour les inférences | Utiliser les cookies de Commerce Server pour les inférences des utilisateurs.
    Utiliser des noms d’utilisateurs pour les inférences | Utiliser des noms d’utilisateurs uniques pour les inférences.
    Utiliser des identificateurs de cookies personnalisés | Utiliser des cookies personnalisés pour les inférences.
    Entrer un nouvel identificateur de cookie personnalisé | Taper l’identificateur de votre cookie personnalisé.
    Ajouter | Ajouter le nouvel identificateur de cookie personnalisé.
    Supprimer | Supprimer les identificateurs de cookies personnalisés sélectionnés.
    Haut | Déplacer l’identificateur de cookie personnalisé sélectionné vers le haut de la liste. Les cookies sont exécutés selon l’ordre de leur apparition dans cette liste.
    Bas | Déplacer l’identificateur de cookie personnalisé sélectionné vers le bas de la liste. Les cookies sont exécutés selon l’ordre de leur apparition dans cette liste.

  6. Cliquez sur Appliquer, puis sur OK.

Les inférences pour les utilisateurs sont configurées pour le processus d’importation de fichier journal Web. Vous pouvez poursuivre et configurer les propriétés d’importation de fichier journal Web, ou vous pouvez importer des données dans Data Warehouse. Vous devez synchroniser la configuration de votre site et Data Warehouse avant d’importer des données dans Data Warehouse.

Visites

Une visite sur un site Web correspond à la durée pendant laquelle un utilisateur unique est en interaction avec ce site Web. Une visite commence généralement au moment où un utilisateur accède à un site, soit en cliquant sur un lien permettant d’accéder au site, soit en tapant l’adresse URL du site dans la zone Adresse de son navigateur. Il est plus difficile de déterminer le moment où une visite se termine. Si l’utilisateur ferme le navigateur au milieu d’une session, réduit le navigateur ou tape une nouvelle adresse URL dans la zone Adresse du navigateur, il n’existe aucune entrée de journal indiquant que la visite est terminée.

Pour compenser le manque d’indication claire permettant de savoir qu’une visite est terminée, Commerce Server définit un délai d’expiration de visite par défaut correspondant à 30 minutes d’inactivité de l’utilisateur pour considérer qu’une visite est terminée. Vous pouvez modifier, si vous le voulez, la longueur du délai d’expiration de visite, afin de mieux répondre aux besoins de votre site Web. Si le délai d’expiration de visite s’écoule, terminant ainsi la visite, et que l’utilisateur retourne sur le site un peu plus tard, le rapport affichera deux visites.

Remarque

  • Il arrive dans certains cas que votre serveur n’enregistre pas de manière chronologique l’activité des visites des utilisateurs : ceci peut entraîner l’importation des données concernant une visite dans un ordre qui ne respecte pas la chronologie. Data Warehouse peut pallier le problème tant que la longueur du délai d’expiration de visite n’est pas dépassée. Cependant, si une visite dépasse le délai d’expiration de visite, l’exactitude des données est affectée.

Pour définir une inférence pour les visites

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Importation de journal de serveur Web (Commerce Server).

  4. Dans la boîte de dialogue Importer les journaux de serveur Web, cliquez sur Options avancées.

  5. Dans la boîte de dialogue Propriétés avancées d’importation de journal Web, sous l’onglet Inférences, tapez un nombre dans la zone Inférences des visites pour indiquer le nombre de minutes d’inactivité de l’utilisateur autorisées avant qu’une visite se termine.

  6. Cliquez sur Appliquer, puis sur OK.

Les inférences pour les visites sont configurées pour le processus d’importation de fichier journal Web. Vous pouvez poursuivre et configurer les propriétés d’importation de fichier journal Web, ou vous pouvez importer des données dans Data Warehouse. Vous devez synchroniser la configuration de votre site et Data Warehouse avant d’importer des données dans Data Warehouse.

Voir aussi

Composants de Data Warehouse

Configuration des propriétés d’importation de fichier journal Web

Importation de données dans Data Warehouse


Fichiers journaux

La propriété de superposition horaire vous permet de supprimer les redondances qui peuvent survenir lorsque des fichiers journaux contiennent des demandes qui se superposent dans le temps. La propriété de rotation des fichiers journaux vous permet de supprimer les redondances ou les pertes de données qui peuvent survenir lorsque des fichiers journaux font l’objet de rotations entre les serveurs afin d’éviter que la taille des fichiers journaux ne devienne trop importante.

Sans les paramètres de superposition horaire et de rotation des fichiers journaux, il est impossible d’importer des fichiers journaux dans Data Warehouse sans perdre de données sur l’activité, car les fichiers journaux sont en création constante lorsque votre site fonctionne. Vos fichiers peuvent contenir des données pour des périodes horaires qui se superposent si vous exécutez les fichiers journaux sur des serveurs distincts, si vous interrompez et reprenez l’enregistrement sur un serveur unique, si vous réimportez accidentellement un fichier journal ou si vous procédez à une concaténation de fichiers journaux distincts.

Superpositions horaires

Rotation des fichiers journaux

Superpositions horaires

Des superpositions horaires peuvent se produire si plusieurs serveurs sont associés à un site, si vous interrompez et reprenez l’enregistrement sur un serveur unique, si vous réimportez accidentellement un fichier journal ou si vous procédez à une concaténation de fichiers journaux distincts. (La concaténation rend le suivi des superpositions horaires particulièrement difficile et doit par conséquent être évitée.) La période de superposition horaire par défaut pour Commerce Server est de 30 minutes.

Lorsqu’une superposition horaire est détectée au cours d’une importation, les demandes qui se superposent sont ignorées par défaut et les autres demandes sont importées. Vous pouvez modifier à la fois la période de superposition horaire et l’action qui doit être exécutée si une superposition est détectée.

Si vous importez accidentellement un fichier journal, vous pouvez le supprimer à l’aide de la tâche Suppression des données. Pour plus d’informations sur la suppression de fichiers journaux, consultez Suppression de données de Data Warehouse.

La figure suivante montre comment les quatre actions de superposition, Ignorer les enregistrements et continuer, Importer tous les enregistrements, Arrêter l’importation et Arrêter toutes les importations affectent les parties des deuxième et troisième fichiers journaux qui sont conservées lors de la détection d’une superposition.

Superposition de fichier journal Web
Partie du fichier journal non importée
Partie du fichier journal importée
Fichier journal
Fichier journal 3
Fichier journal 2
Fichier journal 1
Ignorer les enregistrements
et continuer
Importer tous les enregistrements
Arrêter
l'importation
Arrêter toutes les importations

Pour configurer les superpositions horaires des fichiers journaux Web

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Importation de journal de serveur Web (Commerce Server).

  4. Dans la boîte de dialogue Importer les journaux de serveur Web, cliquez sur Options avancées.

  5. Dans la boîte de dialogue Propriétés avancées d’importation de journal Web, sous l’onglet Fichiers journaux, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Délai de superposition des enregistrements en minutes | Taper le nombre de minutes de superposition des enregistrements.
    Si une superposition est détectée Sélectionner une action à exécuter en cas de détection d’une superposition :
    • Ignorer les enregistrements et continuer. (Paramètre par défaut) Toutes les demandes qui se superposent sont ignorées et les autres demandes sont importées.

    • Importer tous les enregistrements. Toutes les demandes sont importées, y compris celles qui se superposent.

    • Arrêter l’importation. Le fichier journal contenant des demandes qui se superposent n’est pas importé. Tous les autres fichiers journaux sont importés.

    • Arrêter toutes les importations. Toutes les importations de fichiers journaux sont arrêtées. Il est nécessaire de supprimer le fichier journal importé si vous ne voulez pas conserver les données importées avant la détection de la demande en superposition.

    Remarque

    • Sélectionnez Arrêter l’importation ou Arrêter toutes les importations pour résoudre les problèmes que vous pouvez rencontrer lors de l’importation.
  6. Cliquez sur Appliquer, puis sur OK.

La propriété de superposition horaire est à présent configurée pour le processus d’importation de fichier journal Web. Vous pouvez poursuivre et configurer les propriétés d’importation de fichier journal Web, ou vous pouvez importer des données dans Data Warehouse. Vous devez synchroniser la configuration de votre site et Data Warehouse avant d’importer des données dans Data Warehouse.

Rotation des fichiers journaux

Les rotations des fichiers journaux provoquent une coupure arbitraire des données dans les fichiers journaux, car les données de certaines visites sont divisées entre la fin d’un fichier journal et le début du suivant. Vous avez le choix entre stocker, valider ou ignorer les visites en cours à la fin de votre processus d’importation.

Pour définir la rotation des fichiers journaux

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Importation de journal de serveur Web (Commerce Server).

  4. Dans la boîte de dialogue Importer les journaux de serveur Web, cliquez sur Options avancées.

  5. Dans la boîte de dialogue Propriétés avancées d’importation de journal Web, sous l’onglet Fichiers journaux, effectuez les opérations suivantes :
    Utilisez ceci Pour faire cela
    En fin d’importation Sélectionner une action à exécuter pour les visites en cours à la fin de votre processus d’importation :
    • Stocker les visites en cours pour la prochaine importation. (Paramètre par défaut) La visite en cours est reconstruite comme s’il s’agissait d’un seul fichier journal. Cette option nécessite un peu plus de temps, car les visites en cours doivent être appelées du cache à chaque nouvelle importation. Vous devez importer les fichiers journaux en respectant l’ordre chronologique pour que cette option fonctionne.

    • Valider les visites en cours dans la base de données. Le nombre de visites est plus élevé à l’ouverture qu’à la fermeture de la durée du fichier journal, car les visites qui sont réparties sur ces deux durées sont comptées deux fois.

    • Ignorer les visites en cours. Le nombre indiqué dans le rapport est inférieur à la fin de la durée du fichier journal, car les visites qui n’ont pas été fermées sont ignorées.

  6. Cliquez sur Appliquer, puis sur OK.

La propriété de rotation des fichiers journaux est à présent configurée pour le processus d’importation de fichier journal Web. Vous pouvez poursuivre et configurer les propriétés d’importation, ou vous pouvez importer des données dans Data Warehouse. Vous devez synchroniser la configuration de votre site et Data Warehouse avant d’importer des données dans Data Warehouse.

Voir aussi

Composants de Data Warehouse

Configuration des propriétés d’importation de fichier journal Web

Importation de données dans Data Warehouse


Chaînes de requête

Si votre site utilise des chaînes de requête, vous pouvez les enregistrer dans des fichiers journaux et les importer dans Data Warehouse. Les chaînes de requête peuvent être utilisées dans votre site pour la recherche ou l’exécution de fichiers exécutables. Si vous disposez d’une liste des chaînes de requête utilisées dans votre site, vous pouvez activer la création de rapports sur le contenu associé à ces chaînes de requête.

Par défaut, les chaînes de requête sont stockées avec l’URI (Uniform Resource Identifier) dans Data Warehouse. Les chaînes de requête vous permettent d’effectuer des recherches de titres HTML pour les pages de votre site qui utilisent les chaînes de requête. Toutefois, s’il existe différentes combinaisons de noms et de valeurs de paramètres pour les chaînes de requête dans vos fichiers journaux, le nombre de demandes importées peut relativement augmenter, ce qui peut entraîner une baisse des performances du système. Si tel est le cas, vous pouvez interrompre le stockage des chaînes de requête avec les URI.

Remarques

  • Data Warehouse peut importer un nombre maximal combiné de 256 chaînes de requête à valeur unique et à valeurs multiples.

  • Les chaînes de requêtes importées peuvent se composer d’un nombre maximal de 150 chaînes de requête à valeur unique ou d’un nombre maximal de 256 chaînes de requête à valeurs multiples. L’importation d’un trop grand nombre de chaînes de requête peut entraîner l’échec du processus d’importation de journal Web.

  • Data Warehouse limite la longueur des chaînes à valeurs multiples importées (y compris les chaînes de requête) à 512 caractères. Toute chaîne de requête à valeurs multiples comportant plus de 512 caractères est tronquée au moment de l’importation pour ne contenir plus que 512 caractères.

Pour configurer des chaînes de requête pour l’importation

Pour supprimer une chaîne de requête de l’importation

Pour afficher les propriétés de la configuration d’une chaîne de requête

Pour configurer des chaînes de requête pour l’importation

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Importation de journal de serveur Web (Commerce Server).

  4. Dans la boîte de dialogue Importer les journaux de serveur Web, cliquez sur Options avancées.

  5. Dans la boîte de dialogue Propriétés avancées d’importation de journal Web, sous l’onglet Chaînes de requête, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Enregistrer la chaîne de requête avec l’URI | Stocker les chaînes de requête avec leurs URI associés dans Data Warehouse.
    Ajouter | Ouvrir la boîte de dialogue Chaînes de requête.

  6. Dans la boîte de dialogue Chaînes de requête, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom Taper le nom de la chaîne de requête, exactement tel qu’il apparaît dans vos fichiers journaux.

    Le nom ne peut pas correspondre aux colonnes par défaut de Data Warehouse ; il ne peut pas non plus contenir « CEVT » (ce groupe de lettres est réservé aux chaînes de requête Commerce Server). De plus, le nom ne peut pas contenir d’espaces ou inclure les caractères suivants : ‘, ", +, &, ^, ’, ", {,}, <, > ou =.

    Toutes les applications d’un site | Importer les chaînes de requête de toutes les applications du site.
    Applications sélectionnées d’un site | Spécifier les applications pour lesquelles vous voulez importer les chaînes de requête.
    Sélectionner le type de données Sélectionner dans la liste déroulante le type de données de votre chaîne de requête. Quatre types de données sont possibles : entier, chaîne, date/heure ou réel.

    Le nombre maximal de caractères pour le type de données chaîne est de 255 caractères.
    Type de données à valeurs multiples | À activer si votre chaîne de requête comporte un type de données à valeurs multiples.

  7. Cliquez sur OK pour fermer la boîte de dialogue Chaînes de requête.

  8. Cliquez sur Appliquer, puis sur OK.

Les chaînes de requête sont configurées pour le processus d’importation de fichier journal Web. Vous pouvez poursuivre et configurer les propriétés d’importation de fichier journal Web, ou vous pouvez importer des données dans Data Warehouse. Vous devez synchroniser la configuration de votre site et Data Warehouse avant d’importer des données dans Data Warehouse.

Pour supprimer une chaîne de requête de l’importation

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Importation de journal de serveur Web (Commerce Server).

  4. Dans la boîte de dialogue Importer les journaux de serveur Web, cliquez sur Options avancées.

  5. Dans la boîte de dialogue Propriétés avancées d’importation de journal Web, sous l’onglet Chaînes de requête, sélectionnez la chaîne de requête à supprimer, puis cliquez sur Supprimer.

  6. Cliquez sur Appliquer, puis sur OK.

La chaîne de requête est supprimée du processus d’importation de fichier journal Web. Vous pouvez poursuivre et configurer les propriétés d’importation de fichier journal Web, ou vous pouvez importer des données dans Data Warehouse. Vous devez synchroniser la configuration de votre site et Data Warehouse avant d’importer des données dans Data Warehouse.

Pour afficher les propriétés de la configuration d’une chaîne de requête

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Importation de journal de serveur Web (Commerce Server).

  4. Dans la boîte de dialogue Importer les journaux de serveur Web, cliquez sur Options avancées.

  5. Dans la boîte de dialogue Propriétés avancées d’importation de journal Web, sous l’onglet Chaînes de requête, cliquez sur Propriétés pour ouvrir la boîte de dialogue Chaînes de requête. (Vous ne pouvez modifier aucune des propriétés affichées.)

    Remarque

    • Pour modifier les propriétés, vous devez tout d’abord supprimer la chaîne de requête de l’importation, puis l’ajouter de nouveau avec les nouvelles propriétés voulues.
  6. Cliquez sur OK, puis une nouvelle fois sur OK.

Vous pouvez poursuivre et configurer les propriétés d’importation de fichier journal Web, ou vous pouvez importer des données dans Data Warehouse. Vous devez synchroniser la configuration de votre site et Data Warehouse avant d’importer des données dans Data Warehouse.

Voir aussi

Composants de Data Warehouse

Configuration des propriétés d’importation de fichier journal Web

Importation de données dans Data Warehouse


Importation de données dans Data Warehouse

Les tâches d’importation de Commerce Server vous permettent d’importer des données dans Data Warehouse.

Cette section contient les rubriques suivantes :

  • Importation de données de fichier journal Web

  • Importation de données de catalogue

  • Importation de données de campagne marketing

  • Importation de données de transaction

  • Importation de données de profil utilisateur


Importation de données de fichier journal Web

La tâche Importation de journal de serveur Web permet d’importer des données de fichier journal Web de votre site. Vous déterminez la fréquence d’importation des données en analysant le trafic sur votre site. Plus le trafic est dense sur votre site Web, plus la fréquence à laquelle vous devez importer les données de fichier journal Web est élevée.

Vous pouvez importer des fichiers journaux à partir de sites Web qui n’exécutent pas les services Internet Information Services (IIS) 5.0 et n’incluent pas de composants de Commerce Server. Pour plus d’informations sur l’ajout d’applications et de serveurs Web n’utilisant pas les composants de Commerce Server, consultez Ajout d’une application et d’un serveur Web non-Commerce Server.

Vous devez synchroniser la configuration de votre site et Data Warehouse en exécutant la tâche Synchronisation de la configuration avant d’importer des données de fichier journal Web. Une fois que les données de fichier journal Web sont importées, vous devez exécuter la tâche Préparation du rapport, qui permet de structurer les données importées en cubes OLAP (Online Analytical Processing) désignés.

Pour importer des fichiers journaux Web dans Data Warehouse

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Importation de journal de serveur Web (Commerce Server).

  4. Dans la boîte de dialogue Importer les journaux de serveur Web, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Description | Taper une description pour la tâche d’importation.
    Nom du site | Sélectionner dans la liste déroulante le nom du site Web contenant le journal de serveur Web que vous importez.
    Application | Trier la liste des fichiers journaux en fonction de l’application.
    Ordinateur | Trier la liste des fichiers journaux en fonction de l’ordinateur.
    Site Web IIS | Trier la liste des fichiers journaux en fonction du site Web IIS.
    Chemin d’accès au fichier journal | Trier la liste des fichiers journaux en fonction du chemin d’accès au fichier journal.
    Chemin d’accès au fichier journal | Taper le chemin d’accès au fichier journal Web à importer, ou rechercher le chemin d’accès au fichier journal en cliquant sur le bouton de sélection [...].
    Afficher les fichiers journaux | Ouvrir la boîte de dialogue Fichiers journaux du serveur Web, sélectionner dans la liste Fichiers journaux du serveur Web les fichiers journaux Web à importer, puis cliquer sur OK pour revenir à la boîte de dialogue Importer les journaux de serveur Web.
    Importer tous les fichiers journaux depuis la dernière importation | Spécifier l’importation de tous les fichiers journaux créés depuis la dernière importation.
    Importer les fichiers journaux selon la plage date/heure | Spécifier l’importation uniquement des fichiers journaux créés entre la Date/heure de début et la Date/heure de fin.
    Date/heure de début | Taper la date et l’heure correspondant au début de la plage de date/heure pendant laquelle les fichiers journaux sont importés. Cette option n’est disponible que si vous avez sélectionné l’option Importer les fichiers journaux selon la plage date/heure.
    Date/heure de fin | Taper la date et l’heure correspondant à la fin de la plage de date/heure pendant laquelle les fichiers journaux sont importés. Cette option n’est disponible que si vous avez sélectionné l’option Importer les fichiers journaux selon la plage date/heure.

  5. Cliquez sur OK.

  6. Dans le menu Lot, cliquez sur Exécuter.

    La boîte de dialogue Exécution du lot s’affiche, indiquant l’avancement de votre importation. Lorsque le processus d’importation est terminé, la boîte de dialogue Résultats d’exécution du lot vous informe que le processus s’est terminé avec succès.

    Remarque

    • Si le processus d’importation de fichier journal Web échoue, exécutez la tâche Suppression des données pour supprimer les données associées à ce fichier journal Web, puis exécutez la tâche Préparation du rapport pour actualiser les cubes OLAP.
  7. Cliquez sur OK, puis sur Terminé.

Les données du fichier journal Web sont importées dans Data Warehouse. Vous devez exécuter la tâche Préparation du rapport pour structurer les données importées en cubes OLAP désignés.

Remarques

  • Vous pouvez ajouter plusieurs tâches des services de transformation de données (DTS, Data Transformation Services) à un package, ajouter des informations de séquencement ou de flux de travail, puis exécuter l’ensemble des tâches du package.

  • Vous pouvez affiner le processus d’importation en définissant diverses propriétés avancées d’importation de fichier journal Web. Pour plus d’informations sur la configuration des propriétés d’importation de fichier journal Web, consultez Configuration des propriétés d’importation de fichier journal Web. Pour plus d’informations sur la définition des propriétés de serveur Web, consultez Configuration d’un serveur Web.

Voir aussi

Composants de Data Warehouse

Configuration des propriétés d’importation de fichier journal Web

Synchronisation de la configuration du site et de Data Warehouse

Préparation à la création de rapports

Suppression de données de Data Warehouse


Importation de données de catalogue

La tâche Importation du catalogue de produits permet d’importer des données de catalogue. Vous devez synchroniser la configuration de votre site et Data Warehouse en exécutant la tâche Synchronisation de la configuration avant d’importer des données de catalogue. Une fois que les données de catalogue sont importées, vous devez exécuter la tâche Préparation du rapport, qui permet de structurer les données importées en cubes OLAP (Online Analytical Processing) désignés.

Remarque

  • La première fois que vous importez des données de catalogue dans Data Warehouse, vous devez utiliser l’option de charge totale et effectuer une importation complète. Une fois que vous avez importé les données de catalogue, utilisez l’option de charge incrémentielle pour importer uniquement les données créées depuis la dernière importation des données de catalogue.

Pour importer des données de catalogue dans Data Warehouse

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Importation du catalogue de produits (Commerce Server).

  4. Dans la boîte de dialogue Propriétés d’importation du catalogue, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Description | Taper une description pour cette tâche d’importation.
    Nom du site | Sélectionner dans la liste déroulante le site contenant les données que vous voulez importer.
    Charge incrémentielle | Importer uniquement les nouvelles données de catalogue, en se basant sur une importation précédente.
    Charge totale | Importer l’intégralité des données de catalogue.

  5. Cliquez sur OK.

  6. Dans le menu Lot, cliquez sur Exécuter.

    La boîte de dialogue Exécution du lot s’affiche, indiquant l’avancement de votre importation. Lorsque le processus d’importation est terminé, la boîte de dialogue Résultats d’exécution du lot vous informe que le processus s’est terminé avec succès.

  7. Cliquez sur OK, puis sur Terminé.

Les données de catalogue sont importées dans Data Warehouse. Vous devez exécuter la tâche Préparation du rapport pour structurer les données importées en cubes OLAP désignés.

Remarque

  • Vous pouvez ajouter plusieurs tâches des services de transformation de données (DTS, Data Transformation Services) à un package, ajouter des informations de séquencement ou de flux de travail, puis exécuter l’ensemble des tâches du package.

Voir aussi

Composants de Data Warehouse

Importation de données dans Data Warehouse

Synchronisation de la configuration du site et de Data Warehouse

Préparation à la création de rapports


Importation de données de campagne marketing

La tâche Importation de campagne marketing permet d’importer des données de campagne marketing. Vous devez synchroniser la configuration de votre site et Data Warehouse en exécutant la tâche Synchronisation de la configuration avant d’importer des données de campagne marketing. Une fois que les données de campagne marketing sont importées, vous devez exécuter la tâche Préparation du rapport, qui permet de structurer les données importées en cubes OLAP (Online Analytical Processing) désignés.

Pour importer des données de campagne marketing dans Data Warehouse

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Importation de campagne marketing (Commerce Server).

  4. Dans la boîte de dialogue Propriétés de l’importation de campagne marketing, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Description | Taper une description pour cette tâche d’importation.
    Nom du site | Sélectionner dans la liste déroulante le site contenant les données que vous voulez importer.

  5. Cliquez sur OK.

  6. Dans le menu Lot, cliquez sur Exécuter.

    La boîte de dialogue Exécution du lot s’affiche, indiquant l’avancement de votre importation. Lorsque le processus d’importation est terminé, la boîte de dialogue Résultats d’exécution du lot vous informe que le processus s’est terminé avec succès.

  7. Cliquez sur OK, puis sur Terminé.

Les données de campagne marketing sont importées dans Data Warehouse. Vous devez exécuter la tâche Préparation du rapport pour structurer les données importées en cubes OLAP désignés.

Remarque

  • Vous pouvez ajouter plusieurs tâches des services de transformation de données (DTS, Data Transformation Services) à un package, ajouter des informations de séquencement ou de flux de travail, puis exécuter l’ensemble des tâches du package.

Voir aussi

Composants de Data Warehouse

Importation de données dans Data Warehouse

Synchronisation de la configuration du site et de Data Warehouse

Préparation à la création de rapports


Importation de données de transaction

La tâche Importation des données de transaction permet d’importer des données de transaction. Vous devez synchroniser la configuration de votre site et Data Warehouse en exécutant la tâche Synchronisation de la configuration avant d’importer des données de transaction. Une fois que les données de transaction sont importées, vous devez exécuter la tâche Préparation du rapport, qui permet de structurer les données importées en cubes OLAP (Online Analytical Processing) désignés.

Remarque

  • La première fois que vous importez des données de transaction dans Data Warehouse, vous devez utiliser l’option de charge totale et effectuer une importation complète. Une fois que vous avez importé les données de transaction, utilisez l’option de charge incrémentielle pour importer uniquement les données créées depuis la dernière importation des données de transaction.

Pour importer des données de transaction dans Data Warehouse

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Importation des données de transaction (Commerce Server).

  4. Dans la boîte de dialogue Propriétés d’importation des données de transaction, sous l’onglet Général, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Description | Taper une description pour cette tâche d’importation.
    Nom du site | Sélectionner dans la liste déroulante le site contenant les données que vous voulez importer.
    Charge incrémentielle | Importer uniquement les nouvelles données de transaction, en se basant sur une importation précédente.
    Charge totale | Importer l’intégralité des données de transaction.

  5. Cliquez sur OK.

  6. Dans le menu Lot, cliquez sur Exécuter.

    La boîte de dialogue Exécution du lot s’affiche, indiquant l’avancement de votre importation. Lorsque le processus d’importation est terminé, la boîte de dialogue Résultats d’exécution du lot vous informe que le processus s’est terminé avec succès.

  7. Cliquez sur OK, puis sur Terminé.

Les données de transaction sont importées dans Data Warehouse. Vous devez exécuter la tâche Préparation du rapport pour structurer les données importées en cubes OLAP désignés.

Remarque

  • Vous pouvez ajouter plusieurs tâches des services de transformation de données (DTS, Data Transformation Services) à un package, ajouter des informations de séquencement ou de flux de travail, puis exécuter l’ensemble des tâches du package.

Voir aussi

Composants de Data Warehouse

Importation de données dans Data Warehouse

Synchronisation de la configuration du site et de Data Warehouse

Préparation à la création de rapports


Importation de données de profil utilisateur

La tâche Importation de profil utilisateur permet d’importer des données de profil utilisateur. Les données de profil utilisateur sont des données concernant les utilisateurs, collectées sur votre site Web à l’aide de la définition de profil Objet utilisateur. Pour plus d’informations sur la création de définitions de profils, consultez Exécution de la ressource Profiles.

Vous devez synchroniser la configuration de votre site et Data Warehouse en exécutant la tâche Synchronisation de la configuration avant d’importer des données utilisateur. Une fois que les données utilisateur sont importées, vous devez exécuter la tâche Préparation du rapport, qui permet de structurer les données importées en cubes OLAP (Online Analytical Processing) désignés. Pour plus d’informations sur la spécification des données utilisateur pour l’importation dans Data Warehouse, consultez Ajout de propriétés à des définitions de profils.

Remarque

  • La première fois que vous importez des données de profil utilisateur dans Data Warehouse, vous devez utiliser l’option de charge totale et effectuer une importation complète. Une fois que vous avez importé les données de profil utilisateur, utilisez l’option de charge incrémentielle pour importer uniquement les données créées depuis la dernière importation des données de profil utilisateur.

Pour importer des données utilisateur dans Data Warehouse

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Importation de profil utilisateur (Commerce Server).

  4. Dans la boîte de dialogue Propriétés d’importation de l’utilisateur, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Description | Taper une description pour cette tâche d’importation.
    Nom du site | Sélectionner dans la liste déroulante le site contenant les données que vous voulez importer.
    Intervalle entre les requêtes (min) Taper l’intervalle de temps pour l’importation. Les données utilisateur sont importées en fonction d’intervalles de temps, afin d’éviter un verrouillage de la table de base de données. Par exemple, pour un site Web contenant 10 000 utilisateurs, l’importation des données utilisateur a lieu selon des intervalles de 15 minutes.

    Si vous définissez une valeur inférieure, la table sera verrouillée pendant une plus courte durée, mais le nombre de requêtes effectuées sur la table augmentera, et par conséquent le temps que mettra la tâche à s’exécuter augmentera aussi. Si vous définissez la valeur zéro, une seule requête est exécutée, ce qui verrouille la table pour la durée totale de l’importation, mais peut entraîner une baisse des performances du site.
    Date de début d’importation | Sélectionner dans le calendrier déroulant une date de début pour l’importation.
    Charge incrémentielle | Importer uniquement les nouvelles données utilisateur, en se basant sur une importation précédente.
    Charge totale | Importer l’intégralité des données utilisateur.

  5. Cliquez sur OK.

  6. Dans le menu Lot, cliquez sur Exécuter.

    La boîte de dialogue Exécution du lot s’affiche, indiquant l’avancement de votre importation. Lorsque le processus d’importation est terminé, la boîte de dialogue Résultats d’exécution du lot vous informe que le processus s’est terminé avec succès.

  7. Cliquez sur OK, puis sur Terminé.

Les données de profil utilisateur sont importées dans Data Warehouse. Vous devez exécuter la tâche Préparation du rapport pour structurer les données importées en cubes OLAP désignés.

Remarque

  • Vous pouvez ajouter plusieurs tâches des services de transformation de données (DTS, Data Transformation Services) à un package, ajouter des informations de séquencement ou de flux de travail, puis exécuter l’ensemble des tâches du package.

Voir aussi

Composants de Data Warehouse

Importation de données dans Data Warehouse

Synchronisation de la configuration du site et de Data Warehouse

Préparation à la création de rapports

Ajout de propriétés à des définitions de profils


Exécution de la résolution IP

La tâche Résolution IP permet de résoudre de manière périodique les adresses IP (Internet Protocol). Ceci permet d’assurer que Data Warehouse contient autant de données pertinentes que possible.

Lorsque vous démarrez une tâche Résolution IP, un cache d’adresses IP déjà résolues est contrôlé dans le but de tenter de résoudre les nouvelles adresses IP. S’il demeure des adresses IP non résolues après le contrôle du cache, le serveur du Système de Noms de Domaine (DNS) est contrôlé. Le taux de réussite de la résolution IP est généralement compris entre 60 et 75 pour cent. Les adresses IP sont résolues dans un fichier de commandes, ce qui optimise la connexion avec votre serveur DNS.

Lorsque vous démarrez une tâche Résolution IP, par défaut, seules les adresses IP dépourvues de nom de domaine sont résolues. Cependant, si vous souhaitez capturer toutes les modifications possibles de nom de domaine, vous pouvez choisir de résoudre l’ensemble des adresses IP. Avec cette option, même les noms de domaine figurant déjà dans Data Warehouse sont mis à jour.

Remarque

  • La première fois que vous résolvez des adresses IP dans Data Warehouse, vous devez utiliser l’option de recherche complète. Une fois que vous avez effectué une recherche complète, vous pouvez effectuer une recherche incrémentielle pour résoudre uniquement les nouvelles adresses IP.

Pour résoudre les adresses IP

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Résolution IP (Commerce Server).

  4. Dans la boîte de dialogue Propriétés de résolution IP, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Description | Taper une description pour cette tâche.
    Nom du site | Sélectionner dans la liste déroulante le site contenant les données pour lesquelles vous voulez effectuer la résolution IP.
    Recherche incrémentielle | Résoudre uniquement les adresses IP qui n’ont pas encore été résolues.
    Recherche complète | Résoudre l’intégralité des adresses IP.
    Nom de domaine local | Taper le nom de domaine local du serveur DNS constituant le serveur principal utilisé pour la résolution des adresses IP.
    Durée de mise en cache du résultat en jours | Taper le nombre de jours pendant lesquels les adresses IP résolues doivent être mises en cache. La valeur par défaut est de 30 jours. Si vous augmentez la valeur par défaut, la résolution IP est effectuée plus rapidement. Cependant, il se peut que les modifications de nom de domaine ne soient pas détectées.
    Délai d’expiration en secondes | Taper la durée de recherche (en secondes) sur le serveur DNS avant qu’une adresse IP soit considérée comme non résolue. La valeur par défaut est de 60 secondes. Si vous augmentez la valeur par défaut, un plus grand nombre d’adresses IP est résolu, mais la résolution IP nécessite davantage de temps.
    Nombre de demandes de recherche à conserver en lot | Taper le nombre de demandes de recherche correspondant au nombre d’adresses IP étant transférées à votre serveur DNS dans un lot. La valeur par défaut est 500 ; la valeur peut être comprise entre 10 et 99 999 demandes.

  5. Cliquez sur OK.

  6. Dans le menu Lot, cliquez sur Exécuter.

    La boîte de dialogue Exécution du lot s’affiche, indiquant l’avancement de votre importation. Lorsque le processus d’importation est terminé, la boîte de dialogue Résultats d’exécution du lot vous informe que le processus s’est terminé avec succès.

  7. Cliquez sur OK, puis sur Terminé.

La résolution IP est exécutée. Vous devez exécuter la tâche Préparation du rapport pour structurer les données importées en cubes OLAP désignés. Pour obtenir des instructions sur l’exécution de la tâche Préparation du rapport, consultez Préparation à la création de rapports.

Remarque

  • Vous pouvez ajouter plusieurs tâches des services de transformation de données (DTS, Data Transformation Services) à un package, ajouter des informations de séquencement ou de flux de travail, puis exécuter l’ensemble des tâches du package simultanément.

Voir aussi

À propos de Data Warehouse

Configuration des propriétés d’importation de fichier journal Web

Préparation à la création de rapports


Préparation à la création de rapports

La tâche Préparation du rapport permet de remplir les cubes OLAP (Online Analytical Processing) en utilisant les données de Data Warehouse. Commerce Server 2000 utilise les cubes OLAP pour structurer les données synthétisées contenues dans Data Warehouse afin d’accélérer l’exécution des rapports des modules Analyse. La tâche Préparation du rapport doit être exécutée chaque fois que des données sont importées dans Data Warehouse ou en sont supprimées. Pour plus d’informations sur les cubes OLAP, consultez la documentation en ligne de SQL Server.

Remarques

  • La première fois que vous exécutez la tâche Préparation du rapport pour remplir les cubes OLAP dans Data Warehouse, vous devez sélectionner l’option de traitement complet du cube. Une fois que vous avez exécuté la tâche Préparation du rapport, vous pouvez effectuer un traitement incrémentiel du cube pour charger uniquement les nouvelles données dans les cubes OLAP.

  • Vous devez également sélectionner l’option de traitement complet du cube une fois que vous avez supprimé l’ensemble des données de Data Warehouse. Pour plus d’informations sur la suppression de données de Data Warehouse, consultez Suppression de données de Data Warehouse.

Pour remplir les cubes OLAP avec des données

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Préparation du rapport (Commerce Server).

  4. Dans la boîte de dialogue Propriétés de préparation des rapports, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Description | Taper une description pour la tâche Préparation du rapport.
    Nom du site | Sélectionner le site pour lequel vous remplissez les cubes OLAP.
    Incrémentiel | Effectuer un traitement incrémentiel des cubes OLAP.
    Complet | Effectuer un traitement complet des cubes OLAP.

  5. Cliquez sur OK.

  6. Dans le menu Lot, cliquez sur Exécuter.

    La boîte de dialogue Exécution du lot s’affiche, indiquant l’avancement de votre importation. Lorsque le processus d’importation est terminé, la boîte de dialogue Résultats d’exécution du lot vous informe que le processus s’est terminé avec succès.

  7. Cliquez sur OK, puis sur Terminé.

Les données sont chargées dans les cubes OLAP. Vous pouvez à présent utiliser le système d’analyse commerciale de Commerce Server, notamment les rapports Commerce Server, pour analyser les données de Data Warehouse. Pour plus d’informations sur l’exécution de rapports, consultez Analyse Business Desk.

Remarque

  • Vous pouvez ajouter plusieurs tâches des services de transformation de données (DTS, Data Transformation Services) au package ouvert, ajouter des informations de séquencement ou de flux de travail, puis exécuter l’ensemble des tâches du package simultanément.

Voir aussi

Composants de Data Warehouse

Synchronisation de la configuration du site et de Data Warehouse

Importation de données dans Data Warehouse


Suppression de données de Data Warehouse

La tâche Suppression des données permet de supprimer des données de Data Warehouse. Deux types de données sont stockés dans Data Warehouse : des données de fichier journal de détail et des données synthétisées. Data Warehouse crée ces types de données en conservant la trace d’informations spécifiées au moment où les données sont importées. Si l’importation d’un fichier journal Web échoue, vous utilisez la tâche Suppression des données pour supprimer ce fichier journal de Data Warehouse. La tâche Suppression des données permet également de supprimer l’ensemble des données de Data Warehouse.

Il est important de supprimer fréquemment les données de fichier journal obsolètes de manière à ne pas observer de baisse de performances et de limitation de la capacité de la mémoire dans Data Warehouse. Si vous voulez conserver des données d’historique de votre site Commerce Server, vous pouvez extraire les données pour les préserver dans des rapports.

Remarque

  • La suppression de données de fichiers journaux Web individuels nécessite de l’espace temporaire dans la base de données de Data Warehouse. Si une tâche Suppression des données échoue, libérez de l’espace dans la base de données de Data Warehouse et répétez le processus de suppression.

Une fois que vous avez supprimé des données de Data Warehouse, vous devez exécuter la tâche Préparation du rapport pour actualiser les cubes OLAP (Online Analytical Processing). Vous devez sélectionner l’option de traitement complet du cube une fois que vous avez supprimé des données de Data Warehouse.

Remarque

  • Si vous supprimez des données de détail importées d’un fichier journal Web individuel, les données de fichier journal auxquelles les rapports accèdent dans le module Analyse de Commerce Server Business Desk restent les mêmes. Seul le rapport Analyse des chemins d’entrée est affecté par la suppression de données de détail. Si vous voulez supprimer des données sur lesquelles les rapports se basent, vous devez choisir de supprimer toutes les données importées du fichier journal Web.

Pour supprimer les données de fichier journal

  1. Développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le serveur sur lequel Data Warehouse est installé.

  2. Cliquez avec le bouton droit sur Data Transformation Services, puis cliquez sur Nouveau lot.

    Ou, si vous modifiez un package existant, cliquez avec le bouton droit sur Data Transformation Services, cliquez sur Toutes les tâches, puis sélectionnez Ouvrir le modèle. Sélectionnez le package que vous voulez modifier, puis cliquez sur Ouvrir.

  3. Dans le menu Tâche, cliquez sur Suppression des données (Commerce Server).

  4. Dans la boîte de dialogue Tâche de suppression, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Description | Taper une description pour la tâche.
    Nom du site | Sélectionner dans la liste déroulante le site contenant les fichiers journaux que vous voulez supprimer.
    Type de suppression Sélectionner Importations des journaux Web dans la liste déroulante.

    Remarque

    • Si vous possédez deux sites dotés de différents Data Warehouse et que vous sélectionnez Tout, seules les données de Data Warehouse du site actuellement sélectionné seront supprimées. Vous ne supprimerez pas les données des deux Data Warehouse.
    Supprimer les données de détail | Supprimer les données de détail associées aux fichiers journaux Web que vous voulez supprimer.

  5. Activez les cases à cocher situées en regard des fichiers journaux Web que vous voulez supprimer.

  6. Cliquez sur OK.

  7. Dans le menu Lot, cliquez sur Exécuter.

    La boîte de dialogue Exécution du lot s’affiche, indiquant l’avancement de votre importation. Lorsque le processus d’importation est terminé, la boîte de dialogue Résultats d’exécution du lot vous informe que le processus s’est terminé avec succès.

  8. Cliquez sur OK, puis sur Terminé.

Les données de détail des fichiers journaux Web sélectionnés sont supprimées de Data Warehouse. Vous devez exécuter la tâche Préparation du rapport pour structurer les données importées en cubes OLAP désignés.

Remarque

  • Vous pouvez ajouter des tâches des services de transformation de données (DTS, Data Transformation Services) supplémentaires au package ouvert, ajouter des informations de séquencement ou de flux de travail, puis exécuter l’ensemble des tâches du package simultanément.

Voir aussi

À propos de Data Warehouse

Composants de Data Warehouse

Configuration d’un serveur Web

Préparation à la création de rapports

Importation de données dans Data Warehouse


Extension de Data Warehouse

Vous avez la possibilité d’étendre le schéma logique et les fonctionnalités de Data Warehouse. Pour plus d’informations sur l’extension du schéma logique de Data Warehouse et sur l’importation de données personnalisées dans Data Warehouse, consultez Working with the Data Warehouse (en anglais). Pour plus d’informations sur la création de tâches des services de transformation de données (DTS, Data Transformation Services), consultez la documentation en ligne de SQL Server.

Voir aussi

Working with the Data Warehouse (en anglais).

Data Warehouse Meta-Model (en anglais).


Exécution du service de publipostage

Le service de publipostage Commerce Server vous permet d’envoyer des messages électroniques personnalisés à partir d’une page Web ou des publipostages non personnalisés à partir d’un fichier texte sans mise en forme, vers d’importants groupes de destinataires. Le service de publipostage peut être utilisé sous forme de processus autonome ou être intégré aux modules Campagnes marketing dans Commerce Server Business Desk.

La structure centralisée du service de publipostage facilite son administration. Le service de publipostage fonctionne au niveau de la ressource globale de Commerce Server. Chaque site pointe vers l’instance de groupe spécifique du service de publipostage à utiliser pour ce site. Ainsi, vous pouvez partitionner et équilibrer la charge des sites utilisant le service de publipostage.

Le service de publipostage fournit une interface de ligne de commande qui permet de créer, d’exécuter, d’analyser et de supprimer des travaux du service de publipostage, mais également d’effectuer des tâches de démarrage et de récupération de travaux. Pour configurer les propriétés du service de publipostage, vous devez utiliser Commerce Server Manager.

Une fois le service de publipostage installé, il s’intègre automatiquement aux autres fonctionnalités de Commerce Server. Cependant, vous pouvez l’utiliser comme un produit autonome sans recourir aux autres composants de Commerce Server. Pour utiliser le service de publipostage comme un produit autonome, vous devez vous servir de son interface de ligne de commande.

Cette section contient les rubriques suivantes :

  • Déroulement des opérations pour le service de publipostage. Présente le déroulement des opérations pour un travail du service de publipostage.

  • À propos du service de publipostage. Présente la configuration logicielle requise et les dépendances du service de publipostage. Décrit les composants du service de publipostage et donne une vue d’ensemble succincte du pipeline du service de publipostage, des listes des annulations d’abonnements et de leur fonctionnement.

  • Création et gestion de listes de publipostage. Décrit l’utilisation des listes dans le Gestionnaire de listes de Business Desk, ainsi que le mode de création et de traitement des listes du service de publipostage.

  • Création d’une campagne de publipostage. Décrit les étapes nécessaires à la création d’une campagne de publipostage.

  • Développement d’un contenu de publipostage. Décrit comment élaborer un contenu personnalisé pour des corps de messages de publipostage.

  • Configuration du service de publipostage. Explique comment modifier l’intervalle de temps durant lequel le service de publipostage envoie des messages électroniques, et comment utiliser plusieurs emplacements de remise.

  • Affichage de l’état des travaux du service de publipostage. Explique comment vérifier l’état des travaux du service de publipostage.

  • Suspension, arrêt et suppression d’un travail du service de publipostage. Explique comment arrêter et supprimer un travail du service de publipostage.

  • Redémarrage d’un travail du service de publipostage. Explique comment redémarrer un travail du service de publipostage dont le traitement a été interrompu avant terme.

  • Exécution du service de publipostage en mode autonome. Explique comment exécuter le service de publipostage comme un produit autonome.


Déroulement des opérations du service de publipostage

La figure suivante présente le déroulement des opérations pour un travail du service de publipostage.

Déroulement des opérations pour le service de publipostage
Commerce Server
Business Desk
Gestionnaire de listes
Gestionnaire de campagnes
Campagne de
publipostage
Data Warehouse
Utilisateur
SQL Server
Journaux Web
Rapports
Processeur
d'événements IIS
Base de données des campagnes marketing
(Retail_Commerce)
CDO
Pipeline
DML Run
Service NT
de publipostage
Agent SQL Server
Base de données de publipostage SQL Server
Suit tous les travaux de la base de données
Interface utilisateurl
du service de publipostage
Mode
autonome
Pages de messagerie personnalisées
des serveurs Web


À propos du service de publipostage

Le service de publipostage est un service de Windows 2000 qui est installé avec Commerce Server dans le cadre d’une installation complète ou installé en option dans le cadre d’une installation personnalisée. Il ne peut exister qu’une seule instance du service de publipostage par serveur. Cependant, vous pouvez posséder plusieurs ressources Service de publipostage au niveau de la ressource globale.

Le service de publipostage effectue les tâches suivantes :

  • Il gère les travaux du service de publipostage.

  • Il élabore les corps de messages personnalisés et non personnalisés.

  • Il met en forme les en-têtes de messages électroniques.

  • Il définit la valeur de la page de code (langue) et convertit les corps de messages selon le type de message approprié (MHTML (MIME Encapsulation of Aggregate HTML Documents), MIME (Multipurpose Internet Mail Extensions) ou texte).

  • Il envoie des messages électroniques aux destinataires.

Vous pouvez fournir une liste de destinataires au service de publipostage grâce au module Gestionnaire de listes de Commerce Server Business Desk ou, lors de l’exécution du service de publipostage en mode autonome à partir de la ligne de commande, en spécifiant l’utilisation d’une liste (par un nom de fichier ou une requête SQL Server). Quelle que soit la liste des destinataires, le service de publipostage effectue les mêmes étapes de traitement via les objets du Gestionnaire de listes.

Le service de publipostage peut créer des corps de messages à partir de pages Web ou de fichiers statiques. Il peut également créer des messages à partir d’autres sources, telles que des modèles SQL Server, en ajoutant des composants personnalisés au pipeline du service de publipostage. Pour plus d’informations sur l’ajout de composants personnalisés au pipeline du service de publipostage, consultez Using the Direct Mailer Pipeline (en anglais).

Le service de publipostage peut envoyer des messages électroniques personnalisés à partir d’une page Web, ou des publipostages non personnalisés à partir d’un fichier texte sans mise en forme, vers d’importants groupes de destinataires.

Exigences liées au service de publipostage

Bases de données du service de publipostage

Pipeline du service de publipostage

Listes des annulations d’abonnements

Exigences liées au service de publipostage

Le service de publipostage est soumis aux exigences suivantes :

  • Configuration logicielle requise et dépendances

  • Formats des listes de publipostage

  • Formats des messages

  • Sources des messages

Configuration logicielle requise et dépendances

Le service de publipostage utilise SQL Server 7.0 ou SQL Server 2000 comme base de données. Il nécessite que l’Agent SQL Server soit installé et en cours d’exécution pour démarrer les publipostages périodiques. Le service de publipostage doit être installé sur le même ordinateur que la base de données du service de publipostage. SQL Server doit être en cours d’exécution pour permettre le démarrage du service de publipostage.

Pour plus d’informations sur SQL Server, consultez la documentation en ligne de SQL Server.

Microsoft Windows 2000 comprend les composants suivants, dont dépend le service de publipostage :

  • Objets de données ActiveX de Microsoft (ADO, ActiveX Data Objects). ADO permet au service de publipostage d’accéder aux données et de les manipuler dans sa base de données. Pour accéder aux données situées sur un ou plusieurs serveurs SQL Server, il utilise le fournisseur OLE DB pour Microsoft SQL Server.

  • Objets de données de collaboration (CDO, Collaboration Data Objects) pour Microsoft Windows. CDO offre un ensemble d’interfaces COM que le service de publipostage utilise pour fonctionner. Le service de publipostage emploie principalement deux interfaces : IMessage et IConfiguration, qui permettent la composition, la mise en forme et l’envoi de messages SMTP (Simple Mail Transfer Protocol) sur le réseau, ainsi qu’une remise locale.

Formats des listes de publipostage

Le service de publipostage prend en charge les sources de liste de publipostage suivantes :

  • Fichier texte, par exemple, un fichier de valeurs séparées par des virgules (.csv)

  • Requête SQL Server

  • Rapport d’analyse

  • Liste de segments

Une liste de publipostage contient une ou plusieurs lignes de destinataires. Chaque ligne de la liste contient un destinataire unique et se compose des éléments suivants dans un format délimité par des virgules :

Paramètre | Description
Adresse de messagerie | Obligatoire. Nom ou <nom@domaine>.
GUID | Facultatif. Identificateur d’utilisateur unique utilisé pour fournir le contenu d’un message électronique personnalisé.
Format du message | Facultatif. Contrôle le type de format du message dans lequel CDO traduit le résultat. Par exemple, texte, MHTML ou MIME.
Langue | Facultatif. Valeur de la page de code du message électronique.
URL | Facultatif. Permet de transmettre des adresses URL individuelles au niveau de chaque utilisateur à CDO.

Remarque

  • Vous devez fournir le délimiteur en cas d’omission d’un paramètre facultatif pour permettre le bon agencement des autres paramètres facultatifs.

Formats des messages

Le service de publipostage prend en charge les formats de messages suivants :

  • Texte brut

  • MIME (Multipurpose Internet Mail Extensions)

  • MHTML (MIME Encapsulation of Aggregate HTML Documents)

Sources des messages

Le service de publipostage peut utiliser une adresse URL ou le chemin d’accès d’un fichier comme source de message. Si vous utilisez un fichier, vous devez vérifier qu’il réside dans un répertoire accessible par le service de publipostage.

Pour des raisons liées aux performances, le service de publipostage précharge le contenu du fichier en mémoire, ce qui permet de limiter la taille du fichier en mémoire. Quelle que soit la taille du fichier, seuls les deux premiers millions de caractères ASCII ou le premier million de caractères Unicode sont chargés en mémoire.

Bases de données du service de publipostage

Le service de publipostage utilise SQL Server 7.0 ou SQL Server 2000 et l’Agent SQL Server de manière intensive. La base de données du service de publipostage est créée automatiquement dans SQL Server lorsque vous installez Commerce Server. L’Agent SQL Server, qui s’exécute en permanence, permet d’afficher les détails relatifs aux travaux du service de publipostage. Vous pouvez vérifier l’état, la date et l’heure de la dernière exécution des travaux du service de publipostage, ainsi que l’heure de la prochaine exécution planifiée.

Le service de publipostage utilise les bases de données suivantes lorsqu’il est exécuté sous forme de composant intégré à Commerce Server :

  • Base de données du service de publipostage. Elle contient les détails et les informations associées au travail du service de publipostage.

  • Base de données Campagnes marketing. Elle contient les détails et les informations associées à l’élément de la campagne de publipostage.

La figure suivante montre des travaux du service de publipostage et leurs détails répertoriés dans l’Agent SQL Server.

État des travaux du service de publipostage

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Pour démarrer un travail du service de publipostage dans l’Agent SQL Server

  1. Développez les nœuds jusqu’au chemin suivant : \Servers Microsoft SQL\Groupe SQL Server\<Nom du serveur SQL Server>\Gestion\Agent SQL Server.

  2. Cliquez sur Travaux. Les travaux du service de publipostage s’affichent dans le volet droit de SQL Server Enterprise Manager.

  3. Cliquez avec le bouton droit sur le travail du service de publipostage et sélectionnez Démarrer le travail.

Remarque

  • Pour replanifier un travail du service de publipostage, vous devez utiliser le module Gestionnaire de campagnes dans Commerce Server Business Desk. Pour plus d’informations sur la planification d’un travail du service de publipostage, consultez Planification d’une campagne de publipostage.

Voir aussi

Pipeline du service de publipostage

Pipeline du service de publipostage

Le pipeline du service de publipostage sert à traiter des listes de destinataires. Vous pouvez ajouter de nouveaux composants au pipeline, intégrer les composants à des systèmes professionnels de gestion d’activité, ou les remplacer par des composants de fournisseurs tiers.

Le tableau suivant répertorie les étapes du pipeline du service de publipostage fournies par Commerce Server. Chaque étape contient entre zéro et plusieurs composants.

Étape | Description
Accélérateur | Limite la vitesse d’exécution en messages par heure du service de publipostage. Ceci permet d’éviter une saturation des serveurs de messagerie.
Prétraiter le destinataire | Vérifie les données du destinataire.
Filtrer le destinataire | À utiliser comme modèle pour ajouter/écrire d’autres composants personnalisés dans cette étape et étendre le pipeline existant. Par exemple, l’annulation de l’abonnement d’un destinataire.
Créer les cookies | Crée les cookies nécessaires pour emprunter l’identité d’un utilisateur du site et obtenir un contenu personnalisé à partir du serveur Web.
Composer le message électronique | Compose et met en forme le corps du message. Les objets de données de collaboration (CDO, Collaboration Data Objects) pour Microsoft Windows 2000 créent le message électronique.
Envoyer le courrier électronique | Envoie le message électronique précédemment créé.
Post-traitement du destinataire | À utiliser comme modèle pour ajouter/écrire d’autres composants personnalisés dans cette étape et étendre le pipeline existant. Par exemple, la mise à jour de la base de données du service de publipostage pour marquer les messages envoyés et l’écriture des codes d’erreur appropriés, le cas échéant.

Le diagramme suivant présente le pipeline du service de publipostage et les composants inclus dans chaque étape du pipeline.

Pipeline du service de publipostage

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Pour plus d’informations sur l’ajout et la suppression de composants du pipeline du service de publipostage, consultez Using the Direct Mailer Pipeline (en anglais).

Voir aussi

Exigences liées au service de publipostage

Bases de données du service de publipostage

Création d’une campagne de publipostage

Using the Direct Mailer Pipeline (en anglais)

Listes des annulations d’abonnements

Le service de publipostage prend en charge l’annulation d’abonnement ou le « filtrage » d’une liste de publipostage par rapport à une liste des annulations d’abonnements. Pour les travaux du service de publipostage s’exécutant dans le cadre d’un élément de la campagne, la plate-forme prend en charge la possibilité pour les destinataires individuels d’annuler l’abonnement d’un élément de la campagne de publipostage. Ceci est possible grâce à l’utilisation d’une page ASP (Active Server Page) d’annulation d’abonnement, qui est fournie dans le cadre des sites solutions.

Le développeur chargé de créer la page ASP pour les travaux du service de publipostage à partir du serveur Web peut fournir des liens vers une page ASP d’annulation d’abonnement, permettant ainsi au destinataire d’annuler son abonnement au site ou à l’élément de la campagne de publipostage en cliquant sur le lien approprié. Lorsqu’un travail du service de publipostage s’exécute dans le cadre d’un élément de la campagne, le service de publipostage recherche la présence de la liste des annulations d’abonnements au niveau du site et de celle au niveau de l’élément de la campagne. Si l’une des listes existe, elle est retirée de la liste de publipostage d’origine, laissant ainsi à la liste résultante le rôle de nouvelle liste de publipostage.

Pour prendre en charge les listes des annulations d’abonnements à partir de l’interface de ligne de commande, vous devez utiliser les paramètres OptoutListType, OptoutListLocation et OptoutListSQL dans un fichier de travail compatible avec le format de fichier Windows.ini. Pour plus d’informations sur l’annulation d’abonnement à l’aide de l’interface de ligne de commande, consultez Section Job Data.

Voir aussi

Section Job Data


Création et gestion de listes de publipostage

Le Gestionnaire de listes vous permet de créer et de gérer des listes de destinataires de publipostage. Il existe deux types de listes : les listes génériques et les listes de publipostage. Les listes génériques sont des listes importées dans le Gestionnaire de listes à partir du module Rapports, du module Identification de segments, d’une table SQL Server ou d’un fichier texte ASCII. Le Gestionnaire de listes tente automatiquement de convertir les listes génériques en listes de publipostage, si elles contiennent des lignes d’adresses de messagerie. Le service de publipostage utilise les listes de publipostage pour créer et envoyer des messages à des destinataires sélectionnés dans une liste. Si la liste générique ne contient pas d’adresses de messagerie, elle est importée sous forme d’une liste des utilisateurs, si les critères de format sont remplis. Pour plus d’informations sur les formats des listes de publipostage, consultez Formats des listes de publipostage.

Une fois que les listes sont importées dans le Gestionnaire de listes, vous pouvez les utiliser pour exécuter des travaux du service de publipostage, afin de mieux cibler les utilisateurs. Par exemple, vous pouvez exécuter des rapports qui montrent les caractéristiques et les comportements antérieurs de vos utilisateurs, puis créer une campagne de publipostage pour cibler les publicités ou les produits en fonction de ces utilisateurs.

Vous pouvez également utiliser le Gestionnaire de listes pour exporter des listes vers un fichier ou une base de données SQL Server, les ajouter ou les supprimer, ou les copier.

Créer une liste de destinataires

Traiter une liste de destinataires

Créer une liste de destinataires

Pour créer une liste de destinataires pour une campagne de publipostage, vous devez utiliser le module Gestionnaire de listes dans Campagnes marketing. Les listes sont créées dans le Gestionnaire de listes en important des listes créées dans d’autres applications, telles que Microsoft SQL Server (pour créer une table SQL), le Bloc-notes (pour créer un fichier texte ASCII), Microsoft Excel (pour créer une feuille de calcul) ou Microsoft Outlook (pour créer des fichiers .pst contenant des messages, des rendez-vous, des contacts et d’autres éléments Outlook).

Vous pouvez générer une liste de destinataires à partir de rapports d’analyse, du module Identification de segments, ou à partir d’une base de données externe, puis importer cette liste dans le Gestionnaire de listes. Pour plus d’informations sur l’importation d’une liste dans le Gestionnaire de listes, consultez Importation et exportation de listes.

Traiter une liste de destinataires

Pour traiter une liste de destinataires, le service de publipostage charge d’abord cette liste à partir du Gestionnaire de listes dans une table de travaux. Il effectue ensuite une itération dans la liste des utilisateurs, en envoyant les données relatives aux destinataires via le pipeline du service de publipostage.

Voir aussi

Pipeline du service de publipostage


Création d'une campagne de publipostage

Création d’une campagne de publipostage

Le module Gestionnaire de campagnes offre une interface de création de campagnes de publipostage. Vous pouvez gérer les travaux du service de publipostage de chaque campagne de publipostage via le module Gestionnaire de campagnes. Vous pouvez créer des campagnes de publipostage, personnaliser des messages et modifier des propriétés. Il est possible d’ajouter des pièces jointes aux campagnes de publipostage dont l’exécution peut être planifiée. Vous pouvez également tester votre campagne de publipostage à l’aide d’une liste de publipostage de test avant de l’envoyer en production.

Voici une vue d’ensemble des étapes à accomplir pour créer et exécuter une campagne de publipostage :

  1. Développez le corps du message à remettre aux destinataires. Par exemple, si vous adressez des corps de messages personnalisés, développez une page ASP (Active Server Page) personnalisée qui fournira le corps du message au service de publipostage.

  2. Identifiez et créez la source de données contenant les données sur les destinataires :
    • Pour générer une liste de destinataires à partir des données de Data Warehouse, utilisez le module Rapports dans Commerce Server Business Desk. Pour afficher les rapports statiques à utiliser, sélectionnez ces rapports, puis exportez la liste résultante vers le Gestionnaire de listes. Pour plus d’informations sur l’importation et l’exportation de listes dans le Gestionnaire de listes, consultez Importation et exportation de listes.

    • Pour générer une liste de destinataires à partir d’un fichier, vous devez disposer du chemin d’accès du fichier.

    • Pour générer une liste de destinataires à partir d’une base de données SQL Server, vous devez disposer de la chaîne de connexion et de la chaîne de requête SQL Server.
  3. Créez et planifiez la campagne de publipostage. Utilisez le module Gestionnaire de campagnes pour spécifier les informations suivantes :
    • Nom de la campagne et du client

    • Nom de la liste de destinataires

    • Heure de début et date de la campagne de publipostage

    • URL (Uniform Resource Locator) ou fichier statique où le service de publipostage doit récupérer le corps de message personnalisé

Remarque

  • L’adresse URL du corps du message personnalisé doit posséder une extension de type de contenu HTML valide, telle que .htm ou .asp. Les extensions qui ne sont pas valides, telles que .xml, génèrent une erreur d’objets de données de collaboration (CDO, Collaboration Data Objects) et le message n’est pas envoyé.

La campagne de publipostage s’exécute à l’heure planifiée. Pour plus d’informations sur le test de vos listes de publipostage avant leur envoi en production, consultez Test d’une campagne de publipostage.

Voir aussi

À propos des campagnes marketing

Création d’une campagne marketing

Ajout d’un élément de la campagne de publipostage

Gestion des listes des enregistrements utilisateur


Développement d'un contenu de publipostage

Développement d’un contenu de publipostage

Le service de publipostage peut créer des corps de messages à partir de pages Web ou de fichiers statiques. Vous pouvez également l’utiliser pour créer des messages à partir d’autres sources, telles que des modèles SQL Server, en ajoutant des composants personnalisés au pipeline du service de publipostage. Pour plus d’informations sur l’ajout de composants personnalisés au pipeline du service de publipostage, consultez Using the Direct Mailer Pipeline (en anglais).

Pour des raisons liées aux performances, le service de publipostage précharge le contenu du fichier en mémoire, dans le cas d’un fichier statique. La taille du fichier est limitée à deux millions de caractères ASCII ou à un million de caractères Unicode. Les autres caractères contenus dans le fichier sont ignorés et ne sont pas envoyés dans le message.

La seule manière d’envoyer des messages personnalisés individuellement consiste à utiliser une page Web. Pour délivrer des corps de messages personnalisés, vous devez d’abord développer une page Web personnalisée.

Remarque

  • Si vous spécifiez une pièce jointe constituée de texte lors de l’envoi d’un publipostage au format MHTML (MIME Encapsulation of Aggregate HTML Documents) à partir du service de publipostage, la page Web personnalisée s’affiche sous forme de pièce jointe lorsqu’elle est visualisée dans Microsoft Outlook. Ce problème ne se pose qu’avec Outlook, et pas Microsoft Outlook Express.


Configuration du service de publipostage

Avant d’exécuter le service de publipostage, vous pouvez revoir et modifier les propriétés permettant de contrôler l’exécution des travaux. La figure suivante montre les propriétés du service de publipostage, lequel fonctionne au niveau de la ressource globale.

Propriétés du service de publipostage

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Pour modifier les propriétés du service de publipostage

  1. Développez Commerce Server Manager, ouvrez le groupe Commerce que vous souhaitez administrer, puis cliquez sur Ressources globales.

  2. Cliquez avec le bouton droit sur Direct mail on <Nom du serveur SQL Server>, puis sélectionnez Propriétés.

  3. Dans la boîte de dialogue Propriétés, effectuez les opérations suivantes :
Utilisez ceci (Propriétés) | Pour faire cela (Valeur de propriété sélectionnée)
Emplacements de remise | Taper l’emplacement de remise. Une entrée au moins doit être spécifiée. Les répertoires de dépôt sont répertoriés pour la remise locale et l’adresse du serveur SMTP est répertoriée pour la remise à distance.
Mode de remise | Taper la valeur déterminant le mode de remise du courrier. 1 - À distance 2 - Localement dans un répertoire de dépôt
Chemin d’accès au dossier journal | Taper l’emplacement du fichier journal opérationnel du service de publipostage.
Pourcentage maximal d’erreurs | Taper le pourcentage maximal d’erreurs non irrécupérables par travail.
Nombre maximal de threads | Taper le nombre maximal de threads par travail.
Messages par heure | Taper le nombre de messages par heure pouvant être produits par ce service. Si la valeur définie est zéro (0), le service de publipostage traite les messages aussi rapidement que possible.
Intervalle de mise à jour des performances | Taper l’intervalle de mise à jour des performances en secondes.
Fichier de configuration de pipeline | Taper l’emplacement du fichier de configuration de pipeline, DMLPipe.pcf.
Contournement de proxy | Taper le nom des ordinateurs locaux où une vérification du proxy n’est pas nécessaire, ou une valeur représentant tous les ordinateurs locaux.
Serveur proxy | Taper le nom du serveur proxy à utiliser.
Chaînes de connexion | Taper la chaîne de connexion à la base de données SQL Server du service de publipostage.

Remarque

  • Les propriétés Chemin d’accès au dossier journal, Messages par heure, Contournement de proxy, Serveur proxy et Chaînes de connexion sont basées sur une instance par service. En d’autres termes, toute modification apportée aux valeurs de ces propriétés nécessite le redémarrage du service de publipostage. Les autres propriétés du service de publipostage sont basées sur une instance par travail et ne nécessitent pas le redémarrage du service de publipostage.

Redémarrage du service de publipostage

Vous pouvez redémarrer le service de publipostage à partir de l’interface de ligne de commande ou via les outils d’administration.

Pour redémarrer le service de publipostage à partir de l’interface de ligne de commande

  1. Au niveau de la ligne de commande, tapez net stop dmlservice.

  2. Lorsque le service est arrêté, tapez net start dmlservice.

Pour redémarrer le service de publipostage à l’aide de Services

  1. À partir du menu Démarrer, ouvrez Services. Cliquez sur Démarrer, pointez sur Programmes, sur Outils d’administration, puis cliquez sur Services.

  2. Dans l’écran Services, dans le volet droit, cliquez avec le bouton droit sur Service de publipostage Commerce Server, puis sélectionnez Redémarrer.

Voir aussi

Modification de la vitesse du service de publipostage

Utilisation d’emplacements de remise multiples


Modification de la vitesse du service de publipostage

Le service de publipostage est conçu pour vous permettre de limiter le nombre de messages qu’il traite par heure, de sorte que le travail ne surcharge pas le serveur de messagerie de production. Pour ce faire, vous devez modifier la propriété Messages par heure, qui détermine le nombre de messages traités en une heure par le service de publipostage. Si la propriété Messages par heure est définie à zéro (0), le service de publipostage traite les messages aussi rapidement que possible.

Pour modifier la vitesse du service de publipostage

  1. Développez Commerce Server Manager, puis Ressources globales, cliquez avec le bouton droit sur Direct Mail on <Nom du serveur SQL Server>, puis cliquez sur Propriétés.

  2. Dans la boîte de dialogue Propriétés, sélectionnez Messages par heure, puis dans la zone Valeur de propriété sélectionnée, tapez le nombre de messages par heure que le service de publipostage doit envoyer.

    Si Valeur de propriété sélectionnée est définie à zéro (0), le service de publipostage traite les messages aussi rapidement que possible.

  3. Cliquez sur OK.

  4. Redémarrez le service de publipostage. Pour plus d’informations sur le redémarrage du service de publipostage, consultez Redémarrage du service de publipostage.

Le nouveau paramètre est appliqué immédiatement à tous les travaux du service de publipostage.

Outre la propriété Messages par heure, d’autres facteurs déterminent la vitesse à laquelle le service de publipostage traite les messages. Par exemple :

  • Les performances du service de publipostage dépendent des objets de données de collaboration (CDO, Collaboration Data Objects) pour Microsoft Windows 2000.

  • Le service de publipostage calcule la valeur du délai nécessaire pour chaque cycle de pipeline, en fonction des paramètres globaux de performance et d’accélération.

  • Les performances du service de publipostage sont étroitement liées aux performances du serveur SMTP (Simple Mail Transfer Protocol) et aux exigences en matière d’accélération.


Utilisation d'emplacements de remise multiples

Utilisation d’emplacements de remise multiples

Lorsque le service de publipostage est configuré pour utiliser plusieurs emplacements de remise, qu’il s’agisse de répertoires de dépôt ou de serveurs SMTP (Simple Mail Transfer Protocol), il utilise la même liste pour tous les travaux qui s’exécutent. Le service de publipostage lit la liste des emplacements à partir du Dictionnaire de configuration globale, qui contient les paramètres de configuration globale partagés par tous les travaux s’exécutant sur tous les sites. Le service de publipostage ne trie pas le Dictionnaire de configuration globale et ne vérifie pas non plus la présence de doublons.

Si la propriété Mode de remise est définie pour une remise locale (2), le service de publipostage traite chaque entrée de la liste comme un chemin complet vers le répertoire de collecte du serveur SMTP. Si la propriété Mode de remise est définie pour une remise à distance (1), le service de publipostage considère que chaque entrée de la liste utilise le format suivant :

<adresse du serveur SMTP>[: port]

La spécification du port est facultative, mais si aucune indication n’est présente, le service de publipostage utilise le port 25.

Lorsqu’un travail du service de publipostage démarre, le premier destinataire de la liste de publipostage utilise le premier emplacement de remise. Le destinataire d’après utilise l’emplacement de remise suivant. Le processus de remise se répète jusqu’à ce qu’il n’y ait plus de nouveaux emplacements de remise. Dans ce cas, les emplacements de remise sont recyclés vers le premier emplacement de remise.

Si une erreur survient lors du publipostage, le service de publipostage n’effectue pas de nouvelle tentative sur un nouvel emplacement et n’effectue pas non plus de vérification du délai d’expiration ou de la disponibilité. Par conséquent, un destinataire donné ne peut utiliser que l’emplacement de remise qui lui est attribué.

Pour utiliser plusieurs emplacements de remise

  1. Développez Commerce Server Manager, puis Ressources globales, cliquez avec le bouton droit sur Service de publipostage, puis cliquez sur Propriétés.

  2. Dans la boîte de dialogue Propriétés, sélectionnez Emplacements de remise, puis dans la zone Valeur de propriété sélectionnée, tapez le chemin complet vers le répertoire de dépôt ou le serveur SMTP. Les chemins UNC (Uniform Naming Convention, convention d’affectation des noms) ne sont pas pris en charge.

Dans le cas de plusieurs emplacements de remise, séparez chaque emplacement par une virgule ou un point-virgule. La virgule et le point-virgule sont les seuls délimiteurs pris en charge et utilisés pour séparer différents chemins.

  3. Sélectionnez Mode de remise, puis dans la zone Valeur de propriété sélectionnée, tapez 2 pour utiliser une remise locale ou 1 pour utiliser une remise à distance.

  4. Cliquez sur OK.

Le nouveau paramètre est appliqué immédiatement à tous les travaux du service de publipostage.


Affichage de l'état des travaux du service de publipostage

Affichage de l’état des travaux du service de publipostage

Vous pouvez vérifier l’état des travaux du service de publipostage pour déterminer si un travail est en cours d’exécution, s’il a été suspendu ou arrêté, ou s’il s’est correctement exécuté. Vous pouvez afficher l’état des travaux du service de publipostage à l’aide de l’interface de ligne de commande.

Pour afficher l’état de travaux du service de publipostage à l’aide de l’interface de ligne de commande

  • Au niveau de la ligne de commande, tapez DmlRun /list pour afficher tous les travaux du service de publipostage.

La liste des travaux du service de publipostage s’affiche.

Les informations suivantes s’affichent pour chaque travail du service de publipostage :

  • Identificateur du travail

  • État du travail

  • Description du travail

  • Nom du site

  • Identificateur d’élément de campagne

  • Nom de l’élément de la campagne

Remarque

  • Les informations de nom du site, d’identificateur d’élément de campagne et de nom de l’élément de la campagne sont affichées uniquement si ces éléments sont présents pour le travail du service de publipostage.

Le tableau suivant répertorie les codes d’état du travail.

Code | Description
0 | Le travail a été créé, mais pas initialisé.
1 | Le travail a été entièrement défini mais n’est pas en cours d’exécution (inactif) ou le travail a été arrêté.
2 | Le travail est terminé.
3 | Le travail est en cours d’exécution (actif).
4 | Le travail est en cours d’exécution, mais il est actuellement suspendu (toujours actif cependant).
-2 | Le travail a été arrêté par le service de publipostage en raison de sérieux problèmes ou parce que le seuil limite d’erreurs a été atteint.
-3 | Le travail a été défini en tant que css_site, mais toutes les données n’étaient pas disponibles lors de l’exécution.


Suspension, arrêt et suppression d'un travail du service de publipostage

Suspension, arrêt et suppression d’un travail du service de publipostage

Vous pouvez suspendre un travail du service de publipostage à tout moment. Si vous suspendez un travail du service de publipostage, le service de publipostage arrête le traitement de la liste de destinataires, mais vous pouvez redémarrer celui-ci ultérieurement. Le service de publipostage enregistre le prochain destinataire qu’il doit traiter, ainsi, si le travail est suspendu (par exemple, en éteignant l’ordinateur ou lors d’une panne d’un disque dur), il peut redémarrer approximativement à l’endroit où il s’est arrêté. Il se peut que les destinataires qui ont été traités entre une seconde et une seconde et demie avant la coupure de courant ne reçoivent pas leur message électronique.

Vous pouvez arrêter (mettre fin à) un travail du service de publipostage durant son exécution. Une fois qu’un travail du service de publipostage est arrêté, vous ne pouvez pas le reprendre à l’endroit où il a été arrêté. Vous devez redémarrer le travail du service de publipostage, lequel reprend son traitement depuis le début de la liste de destinataires.

Vous pouvez supprimer un travail du service de publipostage si celui-ci a été arrêté, a terminé son exécution ou a échoué. Vous ne pouvez pas supprimer un travail du service de publipostage qui est en cours d’exécution. Si vous supprimez un travail du service de publipostage, toutes les informations relatives à ce travail sont supprimées du service de publipostage. Vous devez recréer le travail si vous souhaitez l’exécuter de nouveau.

Remarque

  • La suspension, l’arrêt et la suppression d’un travail du service de publipostage ne peuvent être effectués qu’à l’aide de l’interface de ligne de commande. Vous ne pouvez pas utiliser le module Gestionnaire de campagnes de Business Desk pour suspendre, arrêter ou supprimer un travail du service de publipostage.

Pour suspendre un travail du service de publipostage à partir de l’interface de ligne de commande

  1. Au niveau de la ligne de commande, tapez DmlRun /list pour afficher une liste de tous les travaux du service de publipostage.

  2. Notez le numéro d’identificateur du travail du service de publipostage que vous souhaitez suspendre, puis tapez :

    DmlRun /pause:<identificateur du travail>

    Le travail du service de publipostage est suspendu.

Pour arrêter un travail du service de publipostage à partir de l’interface de ligne de commande

  1. Au niveau de la ligne de commande, tapez DmlRun /list pour afficher une liste de tous les travaux du service de publipostage.

  2. Notez le numéro d’identificateur du travail du service de publipostage que vous souhaitez arrêter, puis tapez :

    DmlRun /term:<identificateur du travail>

    Le travail du service de publipostage est arrêté.

Pour supprimer un travail du service de publipostage à partir de l’interface de ligne de commande

  1. Au niveau de la ligne de commande, tapez DmlRun /list pour afficher une liste de tous les travaux du service de publipostage.

  2. Notez le numéro d’identificateur du travail du service de publipostage que vous souhaitez supprimer, puis tapez :

    DmlRun /delete:<identificateur du travail>

Le travail du service de publipostage est supprimé.

Voir aussi

Suppression et restauration d’un élément de la campagne

Gestion et contrôle des travaux du service de publipostage à partir de la ligne de commande

Redémarrage d’un travail du service de publipostage


Redémarrage d'un travail du service de publipostage

Redémarrage d’un travail du service de publipostage

Si un travail du service de publipostage s’arrête avant la fin de son traitement, le service de publipostage met à jour l’état du travail, indiquant que celui-ci s’est arrêté et qu’il ne s’est pas terminé correctement. La commande DmlRun /list de l’interface de ligne de commande vous permet d’afficher le travail du service de publipostage. Utilisez l’option /wait pour renvoyer automatiquement l’état du travail sur la console. Pour plus d’informations sur l’affichage de l’état des travaux du service de publipostage, consultez Affichage de l’état des travaux du service de publipostage.

Si un ordinateur exécutant le service de publipostage s’arrête (par exemple en raison d’une panne de disque dur), tous les travaux du service de publipostage en cours d’exécution sur cet ordinateur s’arrêtent. Si un travail du service de publipostage s’arrête avant la fin de son traitement, vous devez redémarrer manuellement le travail qui a été arrêté.

Pour redémarrer un travail du service de publipostage

  1. Au niveau de la ligne de commande, tapez DmlRun /list pour afficher une liste de tous les travaux du service de publipostage.

  2. Notez le numéro d’identificateur du travail du service de publipostage que vous souhaitez redémarrer, puis tapez :

    DmlRun /run:<identificateur du travail>

Le travail du service de publipostage est redémarré.

Voir aussi

Gestion et contrôle des travaux du service de publipostage à partir de la ligne de commande


Exécution du service de publipostage en mode autonome

Le mode autonome du service de publipostage en fait un composant de plate-forme pouvant être facilement intégré à des systèmes professionnels de gestion d’activité. Par exemple, les annonceurs préfèrent que les rapports d’analyse de Commerce Server leur soient envoyés par message électronique. Cette méthode ne tient pas compte des communications entre l’application et le service de publipostage. Par exemple, le service de publipostage peut envoyer par message électronique un fichier contenant un rapport Insertion de publicité à une liste d’annonceurs. Dans ce cas, les informations relatives au travail proviennent des paramètres de la ligne de commande et d’un fichier de configuration.

Pour exécuter le service de publipostage à partir de l’interface de ligne de commande, vous devez utiliser le fichier exécutable, DmlRun, avec des options de ligne de commande. Vous pouvez utiliser ces options pour effectuer plusieurs tâches, telles que la création, l’exécution, l’analyse et la suppression de travaux du service de publipostage.

Remarque

  • Pour planifier des campagnes de publipostage, vous devez utiliser manuellement le module Gestionnaire de campagnes dans Business Desk ou le Planificateur de tâches de Windows. Le Planificateur de tâches de Windows peut exécuter un fichier de commandes qui utilise l’interface de ligne de commande.

Voici une vue d’ensemble des étapes nécessaires à la mise en place et à l’exécution du service de publipostage en mode autonome :

  1. Développez le contenu à remettre aux destinataires. Si nécessaire, développez la page Web ou le fichier statique destiné à fournir le corps de message personnalisé.

  2. Identifiez la source de données correspondant à la liste de destinataires.

  3. Créez un fichier de travail du service de publipostage.

  4. Créez un travail du service de publipostage en utilisant l’option /create à partir de l’interface de ligne de commande.

  5. Exécutez le travail autonome à partir de la ligne de commande.


Création d'un fichier de travail du service de publipostage

Création d’un fichier de travail du service de publipostage

Avant de créer un travail du service de publipostage autonome, vous devez créer un fichier de travail du service de publipostage qui spécifie les informations relatives au travail, par exemple, la remise ou non de corps de messages personnalisés, le format des en-têtes de message électronique et l’emplacement de la liste de destinataires.

Vous pouvez créer un fichier de travail à l’aide de n’importe quel éditeur de texte. Le fichier de travail doit être un fichier texte compatible avec le format de fichier .ini de Microsoft Windows.

Ajoutez les sections suivantes à votre fichier de travail :

  • Section Job Data. Spécifiez les paramètres clés relatifs au travail, tels que la source de données du contenu, la liste de destinataires, le type de format du message, l’objet et la liste des annulations d’abonnements.

  • Section Job Attachments. Cette section est facultative. Spécifiez le nombre et la source des pièces jointes.

Une fois que le service de publipostage s’est exécuté, il écrit une section Results dans le fichier de travail. Les paramètres de la section Results sont JobID, ErrorCode et ErrorString. Si un travail est réussi, JobID et ErrorCode=0 sont écrits. Si un travail échoue, JobID, le numéro correspondant à ErrorCode ainsi que ErrorString sont écrits.

Section Job Data

Le tableau suivant répertorie les paramètres qui peuvent être définis pour les données de travail du fichier de travail.

Paramètre | Type | Description
JobDesc | chaîne (128 max.) | Facultatif. Permet de spécifier une description du travail.
TemplateURL | chaîne (2084 max.) | Facultatif. Permet de spécifier la source du modèle de message au format d’une URL (Uniform Resource Locator), soit http://, soit file://. Si vous utilisez un fichier sans mise en forme comme modèle, tapez un nom complet de chemin local vers un serveur. Les noms de chemins UNC (Uniform Naming Convention, convention d’affectation des noms) sont pris en charge.
MailFrom | chaîne (256 max.) | Obligatoire. Permet de spécifier le champ De du message électronique.
MailSubject | chaîne (256 max.) | Facultatif. Permet de spécifier le champ Objet du message électronique.
MailReplyTo | chaîne (256 max.) | Facultatif. Permet de spécifier l’adresse de messagerie choisie pour recevoir les réponses.
DefaultFmt entier Facultatif. Permet de spécifier le format de message par défaut du contenu à envoyer.

1 = Texte brut
2 = MIME (Multipurpose Internet Mail Extensions)
3 = MHTML (MIME Encapsulation of Aggregate HTML Documents)
JobLocale | chaîne (255 max.) | Facultatif. Permet de spécifier les paramètres régionaux par défaut du travail.
MailPersonalize entier Facultatif. Spécifiez 1 si vous remettez un contenu personnalisé, et 0 dans le cas contraire.

Remarque

  • Les valeurs qui ne sont pas des entiers (quelles que soient les valeurs de caractères) produisent le même résultat que l’entrée de « MailPersonalize=0 ».

  • Les entiers différents de zéro produisent le même résultat que l’entrée de « MailPersonalize=1 ».
MailingListType entier Obligatoire. Permet de spécifier le type de liste de publipostage.

1 = Fichier sans mise en forme
2 = Liste du Gestionnaire de listes
3 = Requête SQL Server
MailingListLocation chaîne (256 max.) Obligatoire. Permet de spécifier l’emplacement de la liste de publipostage.

Pour les fichiers sans mise en forme, spécifiez le nom complet de chemin local vers un serveur. N’incluez pas de préfixes de schéma, tels que file://.

Pour les requêtes SQL Server, spécifiez la chaîne de connexion.

Pour les listes du Gestionnaire de listes, spécifiez le numéro d’identification de liste.

Les noms de chemins UNC sont pris en charge.
MailingListSQL | chaîne (256 max.) | Permet de spécifier l’instruction SQL à partir de laquelle envoyer le message électronique. Une valeur est requise si MailingListType = 3 ; dans le cas contraire, elle est ignorée.
OptoutListType entier Facultatif. Permet de spécifier le type de liste des annulations d’abonnements.

1 = Fichier sans mise en forme
2 = Liste du Gestionnaire de listes
3 = Requête SQL Server
OptoutListLocation chaîne (256 max.) Facultatif. Obligatoire uniquement si le paramètre OptoutListType est utilisé. Permet de spécifier l’emplacement de la liste des annulations d’abonnements.

Pour les fichiers sans mise en forme, spécifiez le nom complet de chemin local vers un serveur. N’incluez pas de préfixes de schéma, tels que file://.

Pour les requêtes SQL Server, spécifiez la chaîne de connexion.

Pour les listes du Gestionnaire de listes, spécifiez le numéro d’identification de liste.

Les noms de chemins UNC sont pris en charge.
OptoutListSQL | chaîne (256 max.) | Permet de spécifier l’instruction SQL à partir de laquelle l’abonnement doit être annulé. Une valeur est requise si OptoutListType = 3 ; dans le cas contraire, elle est ignorée.
UserFlags | entier | Facultatif. Permet de spécifier les indicateurs utilisateur associés au travail.

Section Job Attachments

Le tableau suivant répertorie les paramètres que vous pouvez définir pour les pièces jointes de travail. Cette section du fichier de travail est facultative.

Paramètre | Type | Description
AttachmentCount | entier | Permet de spécifier le nombre de pièces jointes (supérieur à 0).
Attachment_<N> | chaîne (2084 max.) | Permet de spécifier l’adresse URL ou le chemin d’accès système de la pièce jointe pour <N> pièce(s) jointe(s), où N est un nombre compris entre 1 et AttachmentCount. Vérifiez que l’adresse URL inclut un préfixe de schéma, tel que http:// ou file://. Pour les pièces jointes constituant des fichiers, ajoutez le nom complet de chemin local vers un serveur. Les noms de chemins UNC sont pris en charge.

Section Results

Une fois que le service de publipostage s’est exécuté, il écrit une section Results dans le fichier de travail. Le tableau suivant répertorie les paramètres écrits par le service de publipostage dans la section Results.

Paramètres | Type | Description
ErrorCode | HRESULT | 0 = Opération (création, démarrage, suppression, etc.) exécutée correctement. En cas d’échec, le code d’erreur est écrit.
ErrorString | chaîne (256 max.) | Si ErrorCode indique que le travail ne s’est pas terminé correctement, ce paramètre comporte un texte de description de l’erreur. Dans le cas contraire, ce champ n’est pas renseigné.
JobID | GUID | Ce paramètre spécifie le nouvel identificateur du travail pouvant être utilisé pour démarrer, arrêter ou traiter ce travail.

Voir aussi

Listes des annulations d’abonnements


Création et exécution d'un travail du service de publipostage

Création et exécution d’un travail du service de publipostage

Après avoir créé un fichier de travail, vous pouvez créer un travail du service de publipostage autonome. Pour créer ce travail, vous devez utiliser l’option /create à partir de l’interface de ligne de commande.

Pour créer un travail du service de publipostage autonome

  1. Au niveau de la ligne de commande, tapez :

    DmlRun /create:filename=<nom fichier de travail>

    Tapez un nom de chemin complet pour le fichier de travail. Le service de publipostage recherche le fichier de travail dans le répertoire en cours, si aucun répertoire n’est spécifié.

    Si les paramètres du fichier de données de travail sont incorrects, le service de publipostage écrit un code d’erreur et une description de l’erreur dans la section Results du fichier de travail.

Le travail du service de publipostage est créé.

  2. Pour obtenir l’identificateur du travail, tapez :

    DmlRun /list

  3. Pour exécuter le travail, tapez :

    DmlRun /run:<identificateur du travail>

Le travail du service de publipostage est démarré.

  4. Pour créer et démarrer un travail, tapez :

    DmlRun /create:filename=<nom fichier de travail> /execute

Le travail du service de publipostage est créé et démarré.

Voir aussi

Création d’un fichier de travail du service de publipostage

Gestion et contrôle des travaux du service de publipostage à partir de la ligne de commande


Gestion et contrôle des travaux du service de publipostage à partir de la ligne de commande

Vous pouvez gérer un travail du service de publipostage à partir de l’interface de ligne de commande, en utilisant l’application DmlRun de la console Win32. Le service de publipostage comprend un ensemble d’options de ligne de commande que vous pouvez utiliser avec DmlRun. Ces options vous permettent de créer, d’exécuter, d’analyser et de supprimer des travaux du service de publipostage.

Par exemple, pour répertorier tous les travaux du service de publipostage et consulter les identificateurs des travaux, tapez DmlRun /list. Pour arrêter un travail spécifique en cours de traitement par le service de publipostage, par exemple, le travail 1456, tapez DmlRun /term:1456.

Le tableau suivant répertorie les options utilisables avec DmlRun.

Option | Description
/run:<identificateur du travail> | Démarre un travail, ou le poursuit s’il a été suspendu.
/term:<identificateur du travail> | Arrête un travail en cours d’exécution.
/pause:<identificateur du travail> | Suspend le travail mais ne l’arrête pas définitivement ; toutes les ressources demeurent allouées. Utilisez cette option pour équilibrer la charge du serveur SMTP (Simple Mail Transfer Protocol).
/create:<paramètres> | Crée un nouveau travail du service de publipostage en fonction des données de votre fichier de travail. Une fois le travail créé, utilisez l’option /run pour l’exécuter.
/delete:<identificateur du travail> | Supprime un travail du service de publipostage.
/list | Répertorie tous les travaux du service de publipostage.
/list:[css_site=xxxx;] [filename=yyy;] Énumère tous les travaux d’un site Commerce Server donné (s’il est spécifié) ou de tous les sites (en cas d’omission du mot-clé css_site). Si le nom de fichier (« filename ») est indiqué, le résultat est envoyé vers le fichier spécifié. Si aucun répertoire n’est spécifié, le nom de fichier est créé dans le répertoire WINNT.

Pour voir un exemple de format de fichier de liste des travaux, consultez Utilisation de l’option /list.
/del_old:age | Supprime les travaux terminés dont la durée est supérieure à « age » en jours.
/wait Facultatif. Vous pouvez utiliser cette option avec les options /run, /term, /create et /execute. Associé à l’option /run, DmlRun attend la fin du travail avant de renvoyer l’état du travail à la console. Vous pouvez également associer l’option /wait aux options /create /execute pour obtenir le même résultat.

Lorsque vous utilisez les options /term/wait, DmlRun attend la fin effective du travail.

Remarques

  • L’option /wait doit être associée à une autre option, car elle ne peut pas être utilisée toute seule.

  • L’utilisation des options /wait /term renvoie une instruction d’erreur telle que la suivante : « Erreur : Le travail {7f2c6324-6b72-402d-853d-8b1c654ae842} s’est terminé avec le code d’état 1. »
/execute Facultatif. Lorsque vous utilisez les options /create/execute, DmlRun crée et exécute le travail.

Vous devez toujours ajouter l’option /create sur une ligne où est utilisée l’option /execute.

/server:<ordinateur> | Facultatif. Vous pouvez utiliser cette option avec toutes les autres options. Elle oblige DmlRun à gérer le travail à distance sur le serveur spécifié.
/? ou /help ou /h | Fournit de l’aide sur les options de ligne de commande et leur utilisation. Vous ne pouvez pas utiliser cette option avec les autres options.

Les options suivantes ne peuvent pas apparaître en même temps sur la même ligne de commande :

  • /create

  • /delete

  • /del_old

  • /list

  • /pause

  • /run

  • /term

Utilisation de l’option /list

Le fichier de liste des travaux peut être produit à l’aide de la commande DmlRun /list:<nom_fichier>. Il s’agit d’un fichier texte dans un format compatible .ini. Chaque travail occupe sa propre section, « Job # » où « # » est un nombre séquentiel (compris entre 1 et le nombre total de travaux). Voici un exemple extrait du fichier :

[General]
JobCount=2

[Job 1]
JobID number=<identificateur du travail>
Description=<Description du travail>
Status=<Entier ; code d’état du travail>
LastRunTime=<Date/heure de dernière exécution du travail. Non renseigné si le travail ne s’est pas exécuté.>
FinishedTime=<Date/heure de fin du travail. Non renseigné si le travail ne s’est pas terminé.>
CampaignItem=<Identificateur de l’élément de campagne. S’affiche uniquement dans une campagne marketing.>
DMLItem=<Identificateur de l’élément du service de publipostage. S’affiche uniquement dans une campagne marketing.>
CommerceSite=<Identificateur de css_site. Non renseigné si non inclus dans un site.>

[Job 2]

Voir aussi

Création d’un fichier de travail du service de publipostage

Création et exécution d’un travail du service de publipostage


Exécution de la ressource Predictor

Vous pouvez utiliser la ressource Predictor de Microsoft Commerce Server 2000 pour ajouter des fonctionnalités prédictives à votre site Web, telles que la prévision des achats potentiels de produits par les utilisateurs, d’après les achats de produits déjà effectués par des utilisateurs similaires (qui partagent les mêmes caractéristiques). Commerce Server Manager vous permet d’installer et de gérer la ressource Predictor.

Cette section contient les rubriques suivantes :

  • Flux de travail de la ressource Predictor. Illustre le flux de travail nécessaire à la construction et à la gestion des modèles.

  • À propos de la ressource Predictor. Décrit les fonctionnalités prédictives prises en charge par la ressource Predictor. Décrit les composants de la ressource Predictor.

  • Déploiement de la ressource Predictor. Décrit comment et pourquoi déployer la ressource Predictor en vue d’une utilisation optimale.

  • Configuration des propriétés de la ressource Predictor. Explique comment configurer la ressource Predictor pour l’utiliser avec des bases de données autres que Data Warehouse de Commerce Server.

  • Démarrage et arrêt de la ressource Predictor. Explique comment démarrer et arrêter la ressource Predictor.

  • Construction d’un nouveau modèle d’analyse. Explique comment construire un nouveau modèle d’analyse basé sur une configuration de modèle.

  • Déploiement d’un modèle d’analyse. Explique comment déployer un modèle d’analyse.

  • Affichage des tables de configuration de modèle d’analyse. Explique comment afficher les tables de configuration de modèle d’analyse.

  • Affichage des modèles d’analyse. Explique comment afficher les modèles d’analyse que vous avez créés. Pour afficher les modèles d’analyse, vous pouvez utiliser le module Prediction Model Viewer dans Commerce Server Manager ou le module Identification de segments dans Commerce Server Business Desk.

  • Utilisation de la vue du réseau de dépendances. Explique comment utiliser le module Prediction Model Viewer pour afficher le réseau de dépendances.

  • Utilisation de la vue de l’arborescence de décision. Explique comment utiliser le module Prediction Model Viewer pour afficher l’arborescence de décision.

  • Reconstruction d’un modèle d’analyse. Explique comment reconstruire un modèle d’analyse.

  • Modification du nom d’un modèle d’analyse. Explique comment renommer un modèle d’analyse.

  • Suppression d’un modèle d’analyse. Explique comment supprimer un modèle d’analyse.

  • Analyse de la ressource Predictor. Explique comment analyse la ressource Predictor au niveau du traitement des erreurs.


Flux de travail de la ressource Predictor

La figure suivante montre le flux de travail pour créer, afficher, analyser et déployer les modèles d’analyse.

Diagramme de déroulement des opérations pour la ressource Predictor
Transactions Nouveau modèle de configuration
(créé par le développeur de site)
Modèle de prévision
Modèle de segment
Sélectionner un modèle d'analyse :
Sélectionner un modèle de configuration :
Déployer le modèle sur les serveurs
Web à l'aide
d'appels API PredictorClient
Afficher et analyser le
modèle de segment à l'aide de l'Identification de segments
(dans Business Desk)
Afficher et analyser le
modèle de prévision à l'aide de Prediction Model Viewer
(dans Commerce Server Manager)
Créer le modèle d'analyse
Importer les données dans le
Data Warehouse

  1. Importez des données dans Data Warehouse de Commerce Server.

  2. Sélectionnez un modèle de configuration dans la boîte de dialogue Construction d’un modèle.

    Ou créez un nouveau modèle de configuration.

  3. Sélectionnez un type de modèle d’analyse dans la boîte de dialogue Construction d’un modèle.

  4. Créez le modèle d’analyse.

  5. Affichez et analysez un modèle de prévision dans le module Prediction Model Viewer.

  6. Affichez et analysez un modèle de segment à l’aide du module Identification de segments dans Business Desk.

  7. Déployez le modèle d’analyse sur vos serveurs Web à l’aide d’appels API PredictorClient.

Remarque

  • Les modèles de prévision fournissent des recommandations plus précises que les modèles de segments. Utiliser ces modèles de prévision pour fournir des recommandations sur votre site.


À propos de la ressource Predictor

La ressource Predictor est un service de Microsoft Windows 2000 qui est installé en option avec Commerce Server 2000 dans le cadre d’une installation complète ou personnalisée. La ressource Predictor vous permet d’offrir des fonctionnalités prédictives à votre site Web. La ressource Predictor permet de construire des modèles d’analyse complexes en spécifiant les colonnes ou attributs de table que vous souhaitez soumettre à une prévision. Par exemple, vous pouvez utiliser la ressource Predictor pour déterminer le contenu, les publicités et les ventes croisées susceptibles d’intéresser vos utilisateurs. Une fois les modèles d’analyse construits par la ressource Predictor, vous pouvez ajouter l’objet Predictor Client à vos pages ASP (Active Server Pages), ce qui permet de donner à votre site une vente croisée intelligente, des recommandations relatives aux produits et une propriété de prévision.

Plusieurs instances de la ressource Predictor sont prises en charge par les sites Commerce Server, mais seule une instance est prise en charge sur chaque ordinateur. Vous pouvez installer la ressource Predictor sur chaque ordinateur qui contient Data Warehouse de Commerce Server ; vous pouvez aussi installer la ressource Predictor sur des ordinateurs dédiés de façon à conserver la mémoire système. L’exécution de la ressource Predictor sur un ordinateur distinct utilise une plus grande largeur de bande passante réseau que l’exécution de la ressource Predictor plus Data Warehouse sur le même ordinateur. La ressource Predictor nécessite que vous utilisiez Microsoft SQL Server comme base de données.

La construction de modèles d’analyse nécessite beaucoup de mémoire. Vous pouvez économiser des accès aux ressources sur les serveurs Web en construisant le modèle une fois, puis en le copiant vers chacun de vos serveurs Web (en utilisant la méthode IPredictorClient::LoadModelFromDB avec l’objet Predictor Client). Chaque serveur Web peut héberger plusieurs modèles d’analyse (pour différentes fonctionnalités prédictives).

Après avoir construit un modèle d’analyse, vous pouvez l’afficher. Vous pouvez afficher un modèle de prévision à l’aide du module Prediction Model Viewer dans Commerce Server Manager, et un modèle de segment dans le module Identification de segments dans Commerce Server Business Desk.

Remarque

  • Il ne peut exister qu’une seule instance de ressource Predictor par ordinateur.

La ressource Predictor contient des modèles d’analyse ainsi que des configurations de modèle d’analyse. La ressource Predictor fournit Prediction Model Viewer pour analyser et afficher vos modèles d’analyse.

Cette section contient les rubriques suivantes :

  • Modèles d’analyse

  • Configurations des modèles d’analyse

  • Prediction Model Viewer

  • Predictor : méthodes conseillées

  • Efficacité d’un modèle d’analyse


Modèles d'analyse

Modèles d’analyse

Un modèle d’analyse est un ensemble de relations statistiques basées sur les observations d’anciens utilisateurs du site, et/ou sur leur historique d’achats, de clics, ou tout autre comportement. Ce modèle contient des informations sur les types d’utilisateurs qui visitent votre site mais pas sur des utilisateurs spécifiques. Les informations détaillées utilisées pour créer un modèle d’analyse sont stockées dans Data Warehouse de Commerce Server.

Tous les modèles sont stockés en tant que données binaires dans la colonne Données de la table PredictorModels dans la base de données Data Warehouse.

Un site peut exécuter plusieurs modèles d’analyse différents et chaque modèle peut être basé sur des données d’une base de données différente. Les sites peuvent partager des modèles d’analyse puisque les modèles ne sont pas spécifiques à un site. Commerce Server 2000 ne limite pas le nombre de modèles utilisables pour chaque site ou serveur.

Modèles de prévision et modèles de segments

Cas

Table dense

Table clairsemée

Modèles de prévision et modèles de segments

Vous pouvez construire deux types de modèles d’analyse : modèles de prévision et modèles de segments. Vous pouvez afficher des modèles de prévision à l’aide du module Prediction Model Viewer dans Commerce Server Manager et des modèles de segments dans le module Identification de segments dans Commerce Server Business Desk.

Un modèle de prévision se compose d’un ensemble d’arborescences de décision et d’un réseau de résumés appelé réseau de dépendances. Un réseau de dépendances effectue la synthèse des dépendances (relations prédictives) décrites par les arborescences de décision. Les modèles de prévision offrent des prévisions plus précises que les algorithmes de segmentation ou ceux basés sur la mémoire. Utilisez le Prediction Model Viewer pour afficher à la fois le réseau de dépendances et les arborescences de décision individuelles.

Un modèle de segment partitionne les groupes d’utilisateurs en segments basés sur des propriétés utilisateur similaires. Les segments similaires sont regroupés en ensembles de segments, créant ainsi une hiérarchie de segments. Vous utilisez le module Identification de segments dans Business Desk pour afficher les modèles de segments.

Avant de construire un modèle d’analyse, vous devez vous assurer que les données avec lesquelles vous souhaitez construire ce modèle sont disponibles dans Data Warehouse. De plus, si vous ne voulez pas utiliser la configuration par défaut du modèle des transactions, vous devez créer votre propre configuration.

Vous construisez des modèles d’analyse à partir de cas que vous créez à partir des données de Data Warehouse. Les données doivent être importées dans Data Warehouse avant de pouvoir les utiliser pour construire les cas. Pour plus d’informations sur l’importation de données dans Data Warehouse, consultez Importation de données dans Data Warehouse.

Cas

Un cas représente l’ensemble des informations connues sur un utilisateur de site spécifique et consiste de couples attribut/valeur. Ces informations peuvent inclure des données de profil utilisateur, un historique des achats, un historique des clics ou une combinaison des deux. Un modèle d’analyse courant utilise entre 10 000 et 50 000 cas pour une taille résultante comprise entre 10 kilo-octets (Ko) et 100 Ko. Le nombre de cas d’une configuration de modèle donnée affecte la précision des modèles d’analyse utilisant cette configuration. En règle générale, les prévisions sont plus précises lorsque de nombreux cas sont disponibles pour un modèle. Cependant, au-delà d’une certaine limite (généralement 50 000 cas voire moins), la précision reste stable malgré l’augmentation des cas utilisés. En revanche, le temps nécessaire à la construction d’un modèle d’analyse augmente proportionnellement avec le nombre de cas contenus dans la configuration.

Vous construisez les cas à partir des données stockées dans la base de données Data Warehouse. Seuls certains types de tables de données dans la base de données Data Warehouse offrent des informations utiles à votre activité commerciale sur le Web. Par exemple, pour prévoir les produits susceptibles d’être achetés par des utilisateurs spécifiques, vous devez utiliser des tables de données ou des vues (tables virtuelles qui représentent les données d’une ou plusieurs tables de manière alternative) contenant les informations relatives aux utilisateurs, telles que les profils utilisateur, l’historique des achats ou l’historique des clics.

Les deux types de données les plus courants utilisés pour construire une configuration de modèle sont les données de profil utilisateur, qui sont stockées dans des tables denses, et les journaux d’historique des transactions, qui sont stockés dans des tables clairsemées. Vous pouvez utiliser la configuration du modèle des transactions fournie par défaut pour analyser les transactions dans une table clairsemée ou vous pouvez créer votre propre configuration de modèle. Par exemple, vous pouvez créer une configuration qui analyse une table dense unique avec des informations démographiques ou vous pouvez créer une configuration qui analyse à la fois une table dense et une ou plusieurs tables clairsemées contenant des transactions.

Remarque

  • Si une table dense ET une ou plusieurs tables clairsemées sont utilisées, seules les données correspondant aux utilisateurs répertoriés dans la table dense seront traitées. Si vous souhaitez utiliser des données clairsemées sans informations correspondantes dans la table dense, vous devez créer des enregistrements dans la table dense pour ces utilisateurs avec toutes les valeurs inconnues définies sur NULL. Pour plus d’informations sur les procédures pour définir votre propre configuration, consultez Predictor Schema (en anglais).

Table dense

Dans une table dense (ou vue), les attributs d’un cas sont représentés sous forme de valeurs de colonne dans une ligne unique. Les données démographiques des clients (composées par exemple de Âge, Sexe et Salaire) sont généralement mieux représentées dans une table dense. Dans ce type de table dense, il y a exactement une ligne pour chaque utilisateur et exactement une colonne pour chaque attribut.

Une source commune de données d’une table dense est représentée par des informations de profil soumises par les utilisateurs au moment de remplir le formulaire d’inscription. Pour plus d’informations sur la création de définitions de profils afin de collecter des données utilisateur sur votre site Web, consultez Exécution de la ressource Profiles.

La figure suivante montre la structure d’une table dense ordinaire.

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Table clairsemée

Dans une table clairsemée (ou vue), un cas est représenté par plusieurs lignes, et chaque ligne représente un couple attribut/valeur. Par exemple, les données d’achat d’un produit peuvent comporter le schéma : (IDClient, IDProduit, Quantité). Dans ce type de table clairsemée, une ligne existe dans cette table pour chaque produit acheté par l’utilisateur. En général, une table clairsemée contient une ligne pour chaque transaction, par exemple, une ligne pour chaque article commandé ou chaque page visitée. Cette table peut comporter plusieurs lignes pour chaque utilisateur qui visite votre site, car un utilisateur peut avoir commandé plusieurs articles ou visité plusieurs pages. Toutes les lignes associées à un utilisateur unique comprennent un cas. L’identifiant du cas est typiquement un identificateur d’utilisateur, tel qu’un nom unique d’utilisateur ou d’accès. La propriété est représentée par l’article sur lequel vous souhaitez effectuer une prévision, alors que la valeur est représentée par la quantité de cette propriété.

Étant donné que les données nécessaires à une table de données clairsemée peuvent être stockées dans deux ou plusieurs tables de votre source de données, vous pouvez utiliser SQL Server Enterprise Manager pour créer une vue qui contient les colonnes requises par votre configuration de modèle d’analyse. Par exemple, pour prévoir un achat basé sur d’autres produits achetés, vous devez disposer des colonnes de l’identificateur d’utilisateur, de la référence du produit et de la quantité achetée. Ces colonnes peuvent se trouver dans deux ou trois tables différentes liées (par exemple, Clients, Commandes et Details des commandes, ou Demande et ArticleGammeBDC) selon la structure de votre base de données.

La figure suivante montre la structure d’une table clairsemée ordinaire.

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Pour plus d’informations sur la construction de tables denses et clairsemées ainsi que la création de configurations de modèle d’analyse, consultez Predictor Schema (en anglais).


Configurations des modèles d'analyse

Configurations des modèles d’analyse

Une configuration de modèle d’analyse contient les informations nécessaires pour construire des modèles de prévision et de segments. La ressource Predictor utilise des configurations de modèle d’analyse pour mapper les données de la base de données Data Warehouse de Commerce Server vers les cas. Un cas représente l’ensemble des informations connues sur un utilisateur spécifique et consiste d’un ensemble de couples attribut/valeur. Les cas servent à construire des modèles d’analyse, qui à leur tour, sont utilisés par l’objet Predictor Client pour effectuer des prévisions sur le comportement futur des utilisateurs.

Une configuration de modèle d’analyse permet de spécifier les éléments suivants :

  • Un ensemble de tables et/ou de vues de Data Warehouse contenant les données à modeler.

  • Les attributs du modèle. Un attribut permet d’identifier efficacement un utilisateur — par exemple, l’âge d’un utilisateur, le fait qu’il ait acheté ou non un produit particulier ou qu’il ait cliqué sur une publicité particulière.

Commerce Server 2000 fournit une configuration de modèle des transactions que vous pouvez utiliser pour construire des modèles de prévision et de segments pour analyser les données de transaction de Data Warehouse. Si vous souhaitez construire des modèles de prévision et de segments basés sur d’autres types de données, vous devez créer de nouvelles configurations de modèles avec le schéma Predictor. Pour plus d’informations sur la construction d’une nouvelle configuration de modèle d’analyse, consultez Predictor Schema (en anglais).

Vous pouvez construire votre propre configuration de modèle d’analyse manuellement pour plusieurs raisons :

  • Les noms de champs de vos tables (ou vues) diffèrent de ceux qui existent dans les tables intégrées.

  • Vous n’utilisez pas les tables de données intégrées incluses dans Commerce Server.

  • Les configurations de modèles fournies ne répondent pas à vos besoins d’entreprise.

La configuration des modèles de transaction fournie par Commerce Server est conservée dans la base de données Data Warehouse, dans trois tables principales, et une quatrième facultative :

  • PredictorModelCfgs. Répertorie la configuration de modèle existante. Cette configuration de modèle est présente dans Configurations de modèles dans Commerce Server Manager.

  • PredictorDataTables. Répertorie et décrit les tables contenant les données à modeler.

  • PredictorModels. Stocke les modèles d’analyse proprement dits ainsi que les paramètres utilisés pour les construire.

  • PredictorAttributes <nom_configuration>. Indique les propriétés qui doivent être utilisées pour construire le modèle ou celles pour lesquelles vous souhaitez obtenir des prévisions. Cette table est facultative et peut être utilisée pour annuler l’attribution automatique des distributions d’attributs.

Pour plus d’informations sur l’affichage des tables de configuration de modèle à l’aide de Microsoft SQL Server, consultez Affichage des tables de configuration de modèle d’analyse.


Prediction Model Viewer

Vous utilisez Prediction Model Viewer pour afficher les modèles de prévision. Prediction Model Viewer fournit deux types de vues pour analyser les modèles de prévision : la vue du réseau de dépendances et la vue de l’arborescence de décision.

Vue du réseau de dépendances

Vue de l’arborescence de décision

Vue du réseau de dépendances

Vous utilisez la vue du réseau de dépendances pour analyser les dépendances statistiques des attributs de votre modèle d’analyse. La vue du réseau de dépendances est le premier type d’affichage qui apparaît lorsque vous ouvrez un modèle de prévision dans Prediction Model Viewer. La vue du réseau de dépendances est un graphique de votre modèle de prévision représenté par des nœuds et des arcs. Les nœuds correspondent aux attributs et les arcs aux dépendances statistiques entre les attributs.

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Les nœuds s’affichent sous forme d’ovales contenant du texte. Des info-bulles s’affichent avec le nom complet de l’attribut lorsque vous vous arrêtez au-dessus d’un nœud. Si aucun nœud n’est sélectionné, tous les nœuds s’affichent en vert.

Lorsque vous ouvrez un modèle de prévision dans la vue du réseau de dépendances, les nœuds s’affichent automatiquement, de manière à être identifiés facilement. Les nœuds se déplacent en permanence pendant que Commerce Server améliore la structure. Vous pouvez arrêter et redémarrer le processus d’amélioration. Vous pouvez cliquer sur un nœud pour mettre en évidence les relations directes qui l’unissent aux autres nœuds du graphique. Vous pouvez faire glisser les nœuds manuellement pour ajuster la mise en page. Pour plus d’informations sur le travail d’organisation de la mise en page de votre modèle, consultez Réorganisation de la mise en page de la vue du réseau de dépendances. Les couleurs des nœuds ont les significations suivantes :

  • Vert. Le nœud est sélectionné.

  • Rouge. Le nœud sélectionné contribue à la prévision de ce nœud.

  • Bleu. Ce nœud contribue à la prévision du nœud sélectionné.

  • Pourpre. Une relation prédictive existe dans les deux directions.

Le curseur situé à gauche de la vue du réseau de dépendances vous permet de contrôler le nombre de relations exposées en fonction de la force de la relation. Lorsque le curseur est déplacé vers le bas, les arcs sont supprimés, en l’occurrence, les arcs correspondant aux dépendances les plus faibles sont supprimés jusqu’à ce qu’il ne reste plus que les arcs des relations les plus fortes.

Le curseur est utile lors de l’affichage d’un modèle de prévision comportant des dizaines de caractéristiques et des centaines de relations, car il permet de se concentrer sur les dépendances les plus intéressantes.

Vue de l’arborescence de décision

Vous pouvez utiliser la vue de l’arborescence de décision de la ressource Predictor pour analyser les composants de l’arborescence de votre modèle de prévision. Vous accédez à la vue de l’arborescence de décision en double-cliquant sur un nœud de la vue du réseau de dépendances. Une arborescence de décision est le raccourci graphique d’un ensemble de règles de probabilités ayant la forme suivante :

SI X = Valeur et Y = Valeur etc., ALORS Cible = Valeur avec la probabilité p

Les conditions de la clause « SI » d’une règle particulière correspondent à une ligne transversale allant de gauche à droite de l’arborescence. En particulier, chaque nœud interne comporte le nom d’un attribut alors que les extrémités sortantes comportent la ou les valeurs pour cet attribut.

Les nœuds sont de forme ovale et de couleur pourpre. Les nœuds feuille, qui montrent les probabilités de prévision, sont des rectangles de couleur grise.

Arborescence de décision

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Chaque nœud feuille stocke une répartition de probabilité pour l’attribut cible. (Une répartition de probabilité est un ensemble de probabilités pour chaque valeur possible de la cible.) Si l’attribut cible est un attribut catégorique et qu’il possède moins de huit valeurs, la probabilité associée à chaque valeur est représentée dans le nœud feuille sous forme d’histogramme. Lorsqu’un attribut catégorique est binaire (c’est-à-dire que l’attribut indique simplement la présence ou l’absence d’une valeur), seule la probabilité de l’attribut présent est affichée sous forme d’une fraction de barre de couleur verte (reportez-vous à la figure précédente). Lorsqu’un attribut catégorique possède plus de huit valeurs, chaque nœud feuille comporte la valeur la plus probable pour la cible. Si l’attribut cible est continu, chaque nœud feuille comporte la plage attendue pour la cible.

Vous pouvez également double-cliquer sur un nœud interne pour lire plus facilement le chemin d’accès vers ce nœud.

Vous pouvez poursuivre la navigation dans l’arborescence sans fermer la boîte de dialogue. La boîte de dialogue affiche le chemin d’accès au nœud actuellement sélectionné.

Remarquez qu’il existe une correspondance utile entre le contenu des arborescences de décision et celui du réseau de dépendances. Plus précisément, il existe un arc joignant l’attribut A à l’attribut B dans le réseau de dépendances si, et seulement si, l’attribut A est un nœud dans l’arborescence de décision pour l’attribut B. (Les deux vues expriment la même idée : l’identification de l’attribut A contribue à la prévision de l’attribut B.)

Voir aussi

Utilisation du réseau de dépendances


Predictor : méthodes conseillées

Vous pouvez améliorer les performances de la ressource Predictor de plusieurs façons :

  • En contrôlant la taille de l’échantillon utilisé pour construire un modèle d’analyse

  • En contrôlant le nombre d’attributs à inclure dans un modèle d’analyse

  • En construisant votre modèle sur le même ordinateur que celui de votre Data Warehouse

En faisant varier la taille de l’échantillon, vous pouvez contrôler la précision relative d’un modèle d’analyse et le temps nécessaire à sa construction. Plus l’échantillon est de taille importante, plus le modèle d’analyse est précis et plus le temps de construction du modèle est long. Cependant, la précision des modèles d’analyse dont la taille va de 30 000 à 50 000 cas ne connaît pas d’amélioration significative. Vous pouvez contrôler le nombre de cas utilisés pour construire un modèle d’analyse en modifiant, dans la boîte de dialogue Propriétés de construction d’un modèle, la zone Nombre de cas. Vous pouvez également prééchantillonner vos données grâce à une vue ou une table et construire le modèle à partir de cet échantillon. Avec cette méthode, veillez à échantillonner les cas de manière aléatoire, au lieu de les choisir de manière séquentielle.

Vous pouvez contrôler les fractions d’attributs utilisées comme entrées pour prévoir la précision du modèle d’analyse et le temps nécessaire à la construction du modèle. Plus la fraction est élevée, plus le modèle est précis mais plus le temps de construction du modèle est long. Pour contrôler le nombre d’attributs inclus dans le modèle d’analyse, dans la boîte de dialogue Propriétés de construction d’un modèle, modifiez Fraction d’attribut d’entrée et Fraction d’attribut de sortie. La valeur 1.0 indique que la ressource Predictor doit utiliser tous les attributs disponibles pour construire le modèle. Si la base de données contient de nombreux attributs (par exemple, un catalogue de produits avec des dizaines et des centaines de produits) il est préférable d’utiliser un nombre moins élevé. Sauf si vous avez des raisons de procéder autrement, il vaut mieux utiliser des fractions d’entrée et de sortie équilibrées.

Lorsque vous tentez d’améliorer les résultats de votre modèle de prévision, tenez compte des tailles et des limites des données, ainsi que des critères de performance pour la ressource Predictor.

Il est également recommandé de construire vos modèles d’analyse sur le même ordinateur que celui qui contient Data Warehouse de votre Commerce Server.

Tailles et limites des données

Critères de performance

Tailles et limites des données

Le tableau suivant montre les tailles de données moyennes et maximales pour la ressource Predictor.

Paramètre | Valeur moyenne | Valeur maximale
Nombre de produits dans le catalogue | 50 000 | 500 000
Nombre de cas pour construire le modèle | 30 000 | Aucune limite autre que le montant de la mémoire disponible.
Nombre de transactions par utilisateur | 20 | Nombre total d’attributs
Taille du modèle calculé | 100 Ko | Limitée par les capacités de votre base de données
Nombre maximal d’attributs prévus par appel | 10 | Nombre total d’attributs

Critères de performance

Le tableau suivant montre les critères de performance de la ressource Predictor. Ces critères sont basés sur les valeurs moyennes définies dans Tailles et limites des données.

Toutes les valeurs sont mesurées sur un Pentium II cadencé à 400 MHz avec 512 Mo de mémoire vive (RAM) pour le service. Les ordinateurs client sont des Pentium II cadencés à 400 MHz avec 128 Mo de mémoire vive (RAM).

Critère | Composant | Minimum | Maximum | Moyenne
Latence de réalisation des prévisions | Client | 0 milliseconde | 200 millisecondes par appel de prévision | 100 millisecondes par appel de prévision
Débits des demandes de prévisions | Client | 30 prévisions par seconde par unité centrale | Non applicable | 50 prévisions par seconde par unité centrale
Temps de création d’un nouveau modèle | Service | Non applicable | 8 heures | 1,5 heures
Chargement du modèle depuis la base de données | Client | Non applicable | 30 secondes | 10 secondes
Temps de démarrage du service | Service | Non applicable | 45 secondes | 10 secondes

Voir aussi

Efficacité d’un modèle d’analyse


Efficacité d'un modèle d'analyse

Efficacité d’un modèle d’analyse

Vous pouvez tester l’efficacité d’un modèle d’analyse en l’utilisant afin de prévoir de nouvelles données. La ressource Predictor offre des « scores » pour mesurer la précision avec laquelle un modèle effectue des prévisions sur les nouvelles données. Vous pouvez utiliser ces scores pour mesurer l’efficacité des modèles d’analyse lorsque vous ajustez les valeurs utilisées pour les paramètres Taille de l’échantillon, Fraction d’attribut d’entrée et Fraction d’attribut de sortie. Le paramètre Fraction de l’échantillon mesurée pour la précision vous permet de définir le nombre de cas utilisés pour la phase de test.

La ressource Predictor comprend deux scores. Le premier s’appelle le Score de recommandation. Ce score mesure la qualité de votre modèle d’analyse lorsqu’il sert à recommander des produits pour de la vente croisée. Il mesure la qualité d’une liste classée de recommandations renvoyées par le modèle. Le second score s’appelle le Score d’ajustement aux données. Ce score mesure la qualité des prévisions effectuées par un modèle d’analyse lors du remplissage de données manquantes, par exemple, des propriétés utilisateur manquantes. Vous pouvez afficher ces scores dans Commerce Server Manager sous le nœud Modèles. Les scores sont stockés dans Data Warehouse de votre Commerce Server dans la table PredictorModels sous les colonnes DataFitScore et Score de recommandation.

Le Score de recommandation fonctionne comme suit : chaque cas parmi les nouvelles données (test) est donné au modèle d’analyse, l’un après l’autre, et l’une des transactions (choisie au hasard) est supprimée. Le modèle renvoie ensuite une liste de recommandations (au mieux, le nombre de recommandations du paramètre de Prévisions maximales de précision mesurée) ; ce modèle est considéré comme réussi si la transaction supprimée figure sur la liste. Le score représente le pourcentage de cas où le modèle d’analyse a été réussi. Le paramètre de Prévisions maximales de précision mesurée est défini lors de la construction du modèle et doit correspondre au nombre de recommandations que vous envisagez de montrer à l’utilisateur.

Le paramètre Score d’ajustement aux données est une moyenne géométrique de la probabilité que le modèle d’analyse attribue à une observation dans les données de test, divisée par la probabilité qu’un modèle marginal attribue à cette observation. Le modèle d’analyse marginal est un modèle qui considère que tous les attributs sont indépendants l’un de l’autre.

Les deux scores évaluent uniquement la capacité du modèle à réaliser des prévisions sur les cas des données de test. Par conséquent, pour que les deux scores représentent un indicateur significatif des performances réelles d’un modèle d’analyse, les données de test doivent se rapprocher de la répartition des cas pouvant être rencontrés en pratique. Par ailleurs, il est important que les données de test ne se superposent pas aux données utilisées pour construire le modèle d’analyse. Si les scores varient fortement selon les données de test particulières échantillonnées pour l’évaluation du score (par exemple, en modifiant légèrement l’option Fraction de l’échantillon mesurée pour la précision, vous pouvez observer une différence de score très importante), vos données de test sont probablement inadéquates. Il se peut que vous remarquiez un haut degré de variabilité si vous avez un nombre insuffisant de cas entrés ou scenarios d’« exercice ».

Scores d’ajustement aux données négatifs pour les modèles de segment

Le processus de segmentation regroupe les cas dans des segments de telle façon que les cas dans un segment donné sont plus similaires que les cas dans d’autres segments. La description du segment fait la synthèse des cas dans un segment. La description fait partie du domaine des probabilités. Par exemple, supposez que chaque cas représente un utilisateur et que Data Warehouse du Commerce Server contient le salaire de l’utilisateur ainsi que ses achats de produits X, Y et Z. La description du segment pour cet exemple est déterminée en mesurant les quantités suivantes en rapport avec les utilisateurs (cas) dans un segment donné : le salaire moyen (ainsi que l’écart type du salaire), la probabilité que le produit X a été acheté, la probabilité que le produit Y a été acheté et la probabilité que le produit Z a été acheté. Le modèle de segment se compose d’une description de segment pour chaque segment.

Ce modèle de segment et les descriptions de segment sont calculés uniquement avec les cas entrés et scenarios d’« exercice ». Pour cette raison, s’il y a des cas de « test » contenant des informations qui n’étaient pas présentes dans les cas d’exercice, des valeurs basses pour le Score de recommandation ou des valeurs négatives pour le Score d’ajustement aux données peuvent être observées. Idéalement, les cas d’exercice et les cas de test contiennent des informations similaires. Si des valeurs basses pour le Score de recommandation ou des valeurs négatives pour le Score d’ajustement aux données sont observées, le fait d’augmenter la valeur du paramètre Taille de l’échantillon ou de réduire la valeur du paramètre Fraction de l’échantillon mesurée pour la précision peut résoudre le problème. Notez que l’augmentation du paramètre Taille de l’échantillon peut résulter en une durée de construction du modèle de segment plus longue. Soyez prudent en réduisant le paramètre Fraction de l’échantillon mesurée pour la précision car cela engendre un plus petit nombre de cas de test. En règle générale, il vaut mieux disposer de nombreux cas de test.

Le Score de recommandation et le Score d’ajustement aux données évaluent le modèle de segment uniquement en ce qui concerne sa capacité à effectuer des prévisions. Un modèle de segment qui a une valeur basse pour le Score de recommandation ou une valeur négative pour le Score d’ajustement aux données indique que le modèle n’est peut-être pas en mesure d’effectuer des prévisions précises, uniquement dans les cas de test. Il se peut que vous trouviez les segments produits par le modèle de segment utiles pour d’autres raisons et vous pouvez les évaluer à l’aide du module Identification de segments dans Commerce Server Business Desk.

Voir aussi

Modèles d’analyse

Configurations des modèles d’analyse

Construction d’un nouveau modèle d’analyse

Affichage des modèles d’analyse

Affichage des tables de configuration de modèle d’analyse

PredictorClient Object (C++) (en anglais)

PredictorClient Object (Visual Basic) (en anglais)


Déploiement de la ressource Predictor

La construction de modèles d’analyse nécessite une grande quantité de ressources de l’unité centrale. Vous pouvez exécuter la ressource Predictor sur l’ordinateur sur lequel le Data Warehouse de votre Commerce Server est stocké, ou vous pouvez la déployer vers un hôte distinct. Si vous exécutez la ressource Predictor sur le même ordinateur que Data Warehouse, le temps de construction du modèle est plus rapide car les données n’ont pas besoin d’être transférées via un réseau ; cependant, ceci pourrait affecter les performances de Data Warehouse. Si vous construisez vos modèles d’analyse lorsque l’activité est faible sur votre Data Warehouse, des performances réduites sur Data Warehouse n’ont alors pas d’impact négatif.

La détermination de la nécessité de déployer ou non la ressource Predictor sur un ordinateur distinct (ce dernier n’abritant pas votre Data Warehouse) dépend de la taille et du nombre des modèles d’analyse que vous souhaitez construire. Si vous construisez des petits modèles qui ne prennent qu’une minute ou deux à construire, il est conseillé de déployer la ressource Predictor sur le même ordinateur sur lequel votre Data Warehouse est stocké. Si vous construisez des modèles d’analyse volumineux, vous disposez par exemple d’un catalogue de 1 000 000 produits et vous vendez ces derniers de façon régulière, il est conseillé de déployer la ressource Predictor vers un hôte dédié.

Remarque

  • L’exécution de votre serveur OLAP (OnLine Analytical Processing), de Data Warehouse et de la ressource Predictor sur le même ordinateur peut ralentir le traitement des rapports d’analyse volumineux.

Voir aussi

Déploiement de votre site


Configuration des propriétés de la ressource Predictor

Les recommandations de prévision sont activées par défaut dans la ressource Predictor pour les utiliser avec Data Warehouse de Commerce Server. Si vous souhaitez désactiver les recommandations par défaut, vous devez modifier le code ASP (Active Server Pages) ou renommer le modèle d’analyse que le code ASP prévoit de charger pour les recommandations par défaut.

Les deux premières procédures expliquent comment configurer les propriétés de la ressource Predictor de façon à ce que cette dernière répertorie les modèles et les configurations de modèles dans des bases de données autres que Data Warehouse de Commerce Server.

Remarque

  • Si vous souhaitez utiliser Data Warehouse de Commerce Server, vous devez reconfigurer la propriété Utiliser la base de données externe et puis saisir une chaîne de connexion pour la base de données externe grâce à la boîte de dialogue Propriétés des liaisons de données.

Pour répertorier des modèles d’analyse et des configurations de modèles dans une base de données externe

Pour définir la chaîne de connexion vers une base de données externe

Pour répertorier uniquement des modèles et des configurations de modèles dans Data Warehouse de Commerce Server

Pour répertorier des modèles d’analyse et des configurations de modèles dans une base de données externe

  1. Développez Commerce Server Manager, puis Ressources globales, cliquez avec le bouton droit sur Predictor on <nom_serveur>, et cliquez sur Propriétés.

  2. Dans la boîte de dialogue Propriétés de Predictor on <nom_serveur>, dans la zone Propriétés de l’onglet Propriétés, sélectionnez Utiliser la base de données externe.

  3. Dans la zone Valeur de propriété sélectionnée, définissez la propriété sur -1 (True).

La ressource Predictor répertorie les modèles et les configurations de modèles d’une base de données externe, en plus de ceux de Data Warehouse, dans la console Commerce Server Manager. (Les modèles et configurations de modèles dans Data Warehouse de Commerce Server sont toujours répertoriés.)

Après avoir défini cette propriété, vous devez définir une connexion vers la base de données externe.

Pour définir la chaîne de connexion vers une base de données externe

  1. Développez Commerce Server Manager, puis Ressources globales, cliquez avec le bouton droit sur Predictor on <nom_serveur>, puis cliquez sur Propriétés.

  2. Sous l’onglet Chaînes de connexion de la boîte de dialogue Propriétés de Predictor on <nom_serveur>, sélectionnez Utiliser la base de données externe, puis cliquez sur Modifier.

  3. Dans la boîte de dialogue Propriétés des liaisons de données, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Sélectionner ou taper un nom de serveur | Sélectionner un nom de serveur dans la liste déroulante, ou taper l’emplacement du serveur qui héberge la base de données à laquelle vous voulez accéder.
    Utiliser la sécurité intégrée de Windows NT | Spécifier que le fournisseur demandera une connexion sécurisée (ou approuvée) à un serveur SQL Server fonctionnant sous Microsoft Windows NT.
    Utiliser un nom d’utilisateur et un mot de passe spécifiques | Cliquer pour utiliser un nom d’utilisateur et un mot de passe fournis pour authentifier vos informations d’ouverture de session à la source de données.
    Nom d’utilisateur | Taper l’identificateur d’utilisateur à utiliser pour l’authentification lorsque vous ouvrez une session de la source de données.
    Mot de passe | Taper le mot de passe à utiliser pour l’authentification lorsque vous ouvrez une session de la source de données.
    Mot de passe vide | Activer cette option afin de renvoyer un mot de passe vide dans la chaîne de connexion.
    Autoriser l’enregistrement du mot de passe | Permettre l’enregistrement du mot de passe avec la chaîne de connexion.
    Sélectionner la base de données sur le serveur | Taper le nom de la base de données à laquelle vous voulez accéder.

    Remarque

    • Pour plus d’informations sur l’utilisation de la boîte de dialogue Propriétés des liaisons de données, cliquez sur la boîte de dialogue Aide.
  4. Cliquez sur Tester la connexion pour vous assurer que vous avez saisi correctement les informations du serveur et de la base de données, puis cliquez sur OK pour fermer le message de connexion.

  5. Pour fermer la boîte de dialogue Propriétés des liaisons de données, cliquez sur OK.

    Dans l’onglet Chaînes de connexion de la boîte de dialogue Propriétés de Predictor on <nom_serveur>, la valeur de la chaîne de connexion apparaît dans la zone Chaînes de connexion dans cette ressource.

  6. Pour quitter la boîte de dialogue Propriétés de Predictor on <nom_serveur>, cliquez sur OK.

Si vous souhaitez que la valeur d’une chaîne de connexion externe soit ignorée et que seuls ces modèles et fichiers de configuration dans Data Warehouse soient répertoriés sur l’écran des détails de la ressource Predictor, vous devez définir la propriété Utiliser la base de données externe sur 0 (False).

Pour répertorier uniquement des modèles et des configurations de modèles dans Data Warehouse de Commerce Server

  1. Développez Commerce Server Manager, puis Ressources globales, cliquez avec le bouton droit sur Predictor on <nom_serveur>, et cliquez sur Propriétés.

  2. Dans la boîte de dialogue Propriétés de Predictor on <nom_serveur>, dans la zone Propriétés de l’onglet Propriétés, sélectionnez Utiliser la base de données externe.

  3. Dans la zone Valeur de propriété sélectionnée, définissez la propriété sur 0 (False).

  4. Pour appliquer ces modifications et quitter la boîte de dialogue Propriétés de Predictor on <nom_serveur>, cliquez sur Appliquer.

Seuls les modèles d’analyse et configurations de modèles d’analyse qui se trouvent dans Data Warehouse seront répertoriés sur l’écran des détails de la ressource Predictor.


Démarrage et arrêt de la ressource Predictor

Vous pouvez démarrer et arrêter la ressource Predictor à l’aide de Commerce Server Manager Vous pouvez également arrêter la ressource Predictor à l’aide des Outils d’administration de Microsoft Windows 2000, mais il est préférable d’utiliser Commerce Server Manager pour que l’interface utilisateur de la ressource Predictor soit mise à jour en conséquence. Lorsque la ressource Predictor est démarrée ou arrêtée, l’événement est enregistré dans le journal des événements de l’ordinateur local.

Pour démarrer la ressource Predictor à l’aide de Commerce Server Manager

Pour arrêter la ressource Predictor à l’aide de Commerce Server Manager

Pour arrêter la construction d’un modèle dans la ressource Predictor à l’aide de Commerce Server Manager

Pour suspendre et reprendre la construction d’un modèle dans la ressource Predictor à l’aide de Commerce Server Manager

Pour démarrer la ressource Predictor à l’aide de Commerce Server Manager

  • Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de cliquer avec le bouton droit sur Predictor on <nom_serveur> ; cliquez ensuite sur Démarrer.

La ressource Predictor est démarrée.

Pour arrêter la ressource Predictor à l’aide de Commerce Server Manager

  • Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de cliquer avec le bouton droit sur Predictor on <nom_serveur> ; cliquez ensuite sur Arrêter.

    Remarque

    • Il n’est possible d’arrêter la ressource Predictor que lorsqu’elle est en cours d’exécution.

La ressource Predictor est arrêtée, et un événement est enregistré dans le journal des événements de l’ordinateur local.

Pour arrêter la construction d’un modèle dans la ressource Predictor à l’aide de Commerce Server Manager

  • Pendant la construction du modèle d’analyse, cliquez avec le bouton droit sur le nom du modèle, puis cliquez sur Arrêter.

    Remarque

    • Il n’est possible d’arrêter la construction d’un modèle que lorsque l’état du modèle est En cours d’exécution.

Une boîte de dialogue d’erreur s’affiche en indiquant que la construction a échoué et que l’opération ne s’est pas terminée correctement. La ressource Predictor est arrêtée, et un événement est enregistré dans le journal des événements de l’ordinateur local. Le processus de construction retourne à l’état Inactif.

Pour suspendre et reprendre la construction d’un modèle dans la ressource Predictor à l’aide de Commerce Server Manager

  1. Pendant la construction du modèle d’analyse, cliquez avec le bouton droit sur le nom du modèle, puis cliquez sur Suspendre.

    Le processus de construction retourne à l’état Suspendu.

  2. Pour reprendre la construction du modèle, cliquez avec le bouton droit sur le nom du modèle, puis cliquez sur Reprendre.

    Le processus de construction retourne à l’état En cours d’exécution.


Construction d'un nouveau modèle d'analyse

Construction d’un nouveau modèle d’analyse

Vous pouvez construire plusieurs modèles d’analyse pour chaque site. Le processus de construction d’un modèle consomme beaucoup de ressources ; aussi, il est recommandé de ne construire un modèle d’analyse que lorsque son impact sur l’ordinateur est minimal.

Le temps nécessaire à la construction d’un modèle d’analyse dépend de la taille des données entrées (nombre total de cas), de la taille de l’échantillon, du nombre d’attributs dans les données, ainsi que du matériel et de la topologie de vos serveurs.

Pour construire un nouveau modèle d’analyse

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Configurations de modèles.

  2. Dans l’écran de détails, cliquez avec le bouton droit sur la configuration de modèle à utiliser pour construire un modèle d’analyse, puis cliquez sur Construire.

  3. Dans la boîte de dialogue Propriétés de construction d’un modèle, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom pour le modèle d’analyse.
    Priorité de construction | Sélectionner la priorité de construction. La valeur par défaut est Normale (ce qui correspond à la priorité de la thread de construction).
    Type de modèle | Sélectionner dans la zone de liste déroulante prévision ou segment pour le modèle.

  4. Cliquez sur Suivant.

  5. Dans le second écran de la boîte de dialogue Propriétés de construction d’un modèle, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Taille de l’échantillon | Taper le nombre de cas utilisés pour construire le modèle d’analyse. Vous pouvez modifier la valeur par défaut si nécessaire. Par exemple, si vous possédez une table de grande taille avec 200 000 lignes, vous pouvez spécifier que la ressource Predictor ne doit utiliser que 20 000 lignes pour construire le modèle d’analyse. La valeur par défaut est -1 ou 20 000, celle qui est la plus basse.
    Fraction de l’échantillon mesurée pour la précision | Taper la fraction de l’exemple de données que vous souhaitez utiliser pour automatiquement évaluer la précision du modèle, exprimée avec un nombre compris entre 0,0 et 1,0. Par exemple, si vous tapez 0,0 comme la valeur de l’option Fraction de l’échantillon mesurée pour la précision, aucun score ne sera évalué pour le modèle. Si vous tapez 0,4, 40 pour cent de l’exemple de données sera utilisé pour évaluer le score du modèle. (Les 60 % restants sont utilisés pour construire le modèle.)
    Prévisions maximales de la précision mesurée | Taper le nombre maximal de recommandations à présenter sur votre site (utilisées pour calculer le Score de recommandation). La valeur par défaut est 10 attributs.
    Fraction d’attribut d’entrée | Taper la fraction des attributs à utiliser comme entrée pour les prévisions, exprimée avec un nombre compris entre 0,0 et 1,0. Par exemple, spécifier une fraction d’attribut d’entrée de 0,05 sélectionne les 5 % d’attributs d’entrée les plus significatifs. La valeur par défaut est 1,0, ce qui inclut tous les attributs en tant qu’entrées de la prévision. Des valeurs inférieures à 1,0 sont recommandées si le nombre d’attributs est très élevé, par exemple des recommandations de produits pour un catalogue de plus de 1 000 produits.
    Fraction d’attribut de sortie | Taper la fraction des attributs à prévoir, exprimée avec un nombre compris entre 0,0 et 0,1. Par exemple, spécifier une fraction d’attribut de sortie de 0,05 résulte en la construction d’arborescences de décision pour les 5 % d’attributs les plus significatifs. (Si les attributs de sortie sont des produits, cela renvoie des arborescences pour les 5 % des produits les plus populaires.) La valeur par défaut est 1,0, ce qui produit des arborescences pour tous les attributs. Des valeurs inférieures à 1,0 sont recommandées si le nombre d’attributs est très élevé, par exemple des recommandations de produits pour un catalogue de plus de 1 000 produits.
    Nombre de segments | Taper le nombre maximal de segments avec lesquels partitionner les utilisateurs. Il s’agit de la suggestion initiale pour l’algorithme, qui pourrait trouver moins de segments significatifs que cette valeur. Cette valeur est uniquement disponible si vous construisez un modèle de segment.
    Taille du tampon | Taper la taille du tampon qui sera utilisé pour lire les cas durant la segmentation. La valeur par défaut est 1 000 000. La taille du tampon peut affecter le temps de construction du modèle et sa qualité. Par exemple, si le modèle contient de nombreux attributs, vous devriez définir un tampon de plus grande taille. Les ressources système de l’ordinateur qui exécute la ressource Predictor déterminent les limitations de taille du tampon. Cette valeur est uniquement disponible si vous construisez un modèle de segment.

  6. Cliquez sur Terminer.

L’état du processus de construction s’affiche sur l’écran des détails.

Durant le processus de construction, l’état est En construction. À la fin du processus, l’état est Inactif. Si le processus de construction échoue, un message décrivant le problème s’affiche avant d’être écrit dans le journal de l’application de Commerce Server 2000. Vous pouvez utiliser l’Observateur d’événements pour afficher le journal de l’application.

Remarque

  • Si vous construisez votre propre configuration de modèle de prévision, vous pouvez répertorier de manière explicite les attributs à utiliser comme entrée et comme sortie. Dans ce cas, les fractions d’attribut affichées à l’étape 6 s’appliquent aux listes créées. Par exemple, si vous placez cinq attributs dans la liste des entrées et que vous spécifiez une Fraction d’attribut d’entrée égale à 0,8, seuls les quatre éléments d’information les plus importants de cette liste sont utilisés comme attributs d’entrée lors de la construction du modèle d’analyse.

Voir aussi

Affichage des tables de configuration de modèle d’analyse

Predictor : méthodes conseillées

Déploiement d’un modèle d’analyse


Déploiement d'un modèle d'analyse

Déploiement d’un modèle d’analyse

Pour déployer vos modèles d’analyse sur vos serveurs Web, vous pouvez demander à votre développeur de site de modifier le fichier Global.asa pour qu’il contienne un appel vers la méthode LoadModelFromDB. Cet appel charge le modèle de prévision depuis Data Warehouse de votre Commerce Server sur vos serveurs Web lorsque l’application est démarrée. Cette méthode dépend de la disponibilité permanente de votre Data Warehouse. Dans le cas contraire, veuillez utiliser la méthode suivante.

Vous pouvez déployer les modèles d’analyse par programmation s’il vous est impossible de garantir que Data Warehouse à partir duquel vous chargez votre modèle sera toujours disponible, ou si vous êtes concerné par la réduction du temps de réinitialisation de votre site. Soyez conscient que cette méthode constitue un travail supplémentaire de la part de votre développeur de site.

Vous pouvez demander à votre développeur de site d’écrire un script qui charge le modèle depuis Data Warehouse (LoadModelFromDB), qui l’enregistre dans un fichier (SaveModelToFile) sur l’ordinateur abritant la ressource Predictor, puis copie ce fichier vers chaque serveur Web.

Une fois le modèle construit, le développeur de site doit modifier le fichier ASP situé sur chaque serveur Web de façon à charger le modèle depuis le fichier dans lequel il a été enregistré (LoadModelFromFile) sur chaque serveur. Le développeur de site doit alors appeler l’une des méthodes de prévision (Predict, PredictMostLikelySegment ou PredictAllSegments) avec les paramètres appropriés.

Remarque

  • Bien que votre développeur de site puisse utiliser les méthodes de prévision pour créer des modèles de segments ET des modèles de prévision, n’utilisez pas les modèles de segments pour des recommandations en temps réel puisqu’ils ne sont pas optimisés dans ce but et ne produiront pas de recommandations aussi précises que celles des modèles de prévision. Veuillez toujours construire et utiliser des modèles de prévision pour les recommandations en temps réel sur votre site. Vous pouvez également utiliser la même configuration de modèle pour construire un modèle de segment distinct, basé sur les mêmes données, puis l’afficher avec le module Identification de segments dans Commerce Server Business Desk. Pour plus d’informations sur l’utilisation des méthodes de prévision, consultez Prediction Objects (en anglais).

Voir aussi

Déploiement de la ressource Predictor

Déploiement de votre site


Affichage des tables de configuration de modèle d'analyse

Affichage des tables de configuration de modèle d’analyse

Vous pouvez afficher les tables et les colonnes de configuration de modèle d’analyse à l’aide de Microsoft SQL Server Enterprise Manager.

Pour afficher les tables de configuration de modèle d’analyse

  1. Développez Serveurs Microsoft SQL Server, Groupe SQL Server, puis le serveur contenant la base de données à afficher ; développez ensuite Bases de données, puis la base de données contenant les tables à afficher ; cliquez ensuite sur Tables.

    Une liste de toutes les tables dans la base de données que vous avez sélectionnée apparaît dans l’écran des détails.

  2. Dans ce dernier, double-cliquez sur le nom de la table contenant les colonnes à afficher. Les noms des tables de configuration de modèle sont PredictorModelCfgs, PredictorDataTables et PredictorModels.

La boîte de dialogue Propriétés de table - <nom_table> s’affiche avec une liste des noms de colonnes et les attributs associés.

Voir aussi

Configurations des modèles d’analyse

Modèles d’analyse

Affichage des modèles d’analyse

PredictorModels Table (en anglais)


Affichage des modèles d'analyse

Affichage des modèles d’analyse

Vous pouvez afficher les modèles de prévision créés à l’aide de Commerce Server 2000 grâce au Prediction Model Viewer, accessible via Commerce Server Manager. Prediction Model Viewer contient deux types de vues : la vue de l’arborescence de décision et la vue du réseau de dépendances.

Pour des informations sur l’affichage des modèles de segments, consultez Affichage d’un modèle de segment.

Pour afficher un modèle de prévision

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

Prediction Model Viewer s’affiche avec le modèle choisi dans la vue du réseau de dépendances (valeur par défaut).

Voir aussi

Utilisation du réseau de dépendances

Utilisation de la vue de l’arborescence de décision

Affichage d’un modèle de segment


Utilisation de la vue du réseau de dépendances

Vous utilisez la vue du réseau de dépendances pour afficher les modèles de prévision comme graphiques.

Cette section contient les rubriques suivantes :

  • Recherche de tous les nœuds disponibles dans la vue du réseau de dépendances

  • Utilisation du curseur dans la vue du réseau de dépendances

  • Réorganisation de la mise en page dans la vue du réseau de dépendances

  • Zoom avant et arrière dans la vue du réseau de dépendances

  • Développement et réduction des nœuds dans la vue du réseau de dépendances

  • Utilisation de la page entière dans la vue du réseau de dépendances

  • Affichage des détails de l’arborescence de décision dans la vue du réseau de dépendances


Recherche de tous les nœuds disponibles dans la vue du réseau de dépendances

Cliquez sur le bouton de barre d’outils Rechercher pour afficher une liste de tous les nœuds disponibles dans la vue du réseau de dépendances. Cette option s’avère utile lorsque votre modèle contient des centaines de nœuds, car vous pouvez accéder rapidement à un nœud spécifique.

Pour rechercher un nœud

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

  3. Dans le menu Edition, cliquez dans la barre d’outils sur Rechercher. La boîte de dialogue Recherche de nœud s’affiche.

  4. Dans la boîte de dialogue Recherche de nœud, dans la zone Nom du nœud, tapez une partie ou la totalité du nom de nœud recherché.

La boîte de dialogue Recherche de nœud s’affiche.

Boîte de dialogue Recherche de nœud

Cliquez sur l'illustration pour l'agrandir ou la réduire.

  5. Selon votre choix, activez l’une des options suivantes, les deux ou aucune :
    • Pour afficher tous les nœuds cachés, activez la case à cocher Afficher les nœuds cachés.

    • Pour afficher tous les nœuds reliés au nœud que vous recherchez, activez la case à cocher Ajouter les nœuds liés.
  6. Cliquez sur Atteindre un nœud.

Prediction Model Viewer affiche le nœud que vous recherchez, ou ce même nœud et tous les nœuds associés, dans la vue du réseau de dépendances, selon les options activées au cours des étapes précédentes.

Remarque

  • Pour rechercher un nœud et l’afficher dans la vue de l’arborescence de décision, dans la boîte de dialogue Recherche de nœud, cliquez sur Afficher l’arborescence.


Utilisation du curseur dans la vue du réseau de dépendances

Vous pouvez utiliser le curseur de la vue du réseau de dépendances pour cacher les dépendances les plus faibles de votre modèle.

Pour utiliser le curseur

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

  3. Pointez vers le haut du curseur, maintenez enfoncé le bouton gauche de la souris, puis faites glisser le curseur vers le point d’arrêt que vous souhaitez visualiser.


Réorganisation de la mise en page dans la vue du réseau de dépendances

Vous pouvez modifier l’organisation par défaut de la mise en page de votre modèle dans la vue du réseau de dépendances. Ceci peut se produire lorsqu’il est difficile de voir les dépendances souhaitées.

Pour modifier l’organisation de la mise en page

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

  3. Cliquez sur Améliorer la mise en page dans la barre d’outils pour arrêter le processus d’amélioration de la mise en page, puis faites glisser un ou plusieurs nœuds vers une meilleure position sur l’écran.

    Remarque

    • Pour démarrer le processus d’amélioration de la mise en page, puis revenir à une mise en page automatique, cliquez sur Améliorer la mise en page dans la barre d’outils pour automatiquement remettre en page tous les nœuds.

Tous les nœuds et les arcs associés sont déplacés vers la nouvelle position.


Zoom avant et arrière dans la vue du réseau de dépendances

Vous pouvez développer ou réduire la taille du modèle de prévision affiché dans Prediction Model Viewer. Le développement ou la réduction de la taille du modèle peut permettre d’afficher des détails sur une zone particulière de ce modèle.

Pour effectuer un zoom avant

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

  3. Cliquez dans la barre d’outils sur Zoom avant.

Le modèle est développé de 10 pour cent dans Prediction Model Viewer.

Pour effectuer un zoom arrière

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

  3. Cliquez dans la barre d’outils sur Zoom arrière.

Le modèle est réduit de 10 pour cent dans Prediction Model Viewer.


Développement et réduction des nœuds dans la vue du réseau de dépendances

Vous pouvez développer ou réduire les nœuds d’un modèle de prévision sans modifier la taille du modèle lui-même dans la vue du réseau de dépendances.

Pour développer les nœuds

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

  3. Cliquez sur Améliorer la mise en page dans la barre d’outils pour arrêter le processus d’amélioration de la mise en page, puis faites glisser un ou plusieurs nœuds vers une meilleure position sur l’écran.

Les nœuds se développent. Cliquez sur Améliorer la mise en page dans la barre d’outils pour continuer l’amélioration de la mise en page. Si le processus de mise en page détermine que les nœuds ne sont pas en proportion, il les ajuste.

Pour réduire les nœuds

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

  3. Cliquez sur Réduire les nœuds dans la barre d’outils pour arrêter le processus d’amélioration de la mise en page, cliquez sur un nœud puis sur la barre d’outils.

Les nœuds se réduisent. Cliquez sur Améliorer la mise en page dans la barre d’outils pour continuer l’amélioration de la mise en page. Si le processus de mise en page détermine que les nœuds ne sont pas en proportion, il les ajuste.


Utilisation de la page entière dans la vue du réseau de dépendances

L’option Page entière vous permet d’ajuster la taille du modèle de prévision de telle sorte qu’il contienne dans la zone d’affichage de Prediction Model Viewer.

Pour ajuster un modèle à la zone d’affichage de Prediction Model Viewer

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

  3. Cliquez dans la barre d’outils sur Page entière.

La taille du modèle est ajustée afin de contenir dans les limites d’affichage de Prediction Model Viewer.


Affichage des détails de l'arborescence de décision dans la vue du réseau de dépendances

Affichage des détails de l’arborescence de décision dans la vue du réseau de dépendances

Vous pouvez afficher les détails de l’arborescence de décision de votre modèle de prévision à partir de la vue du réseau de dépendances.

Pour afficher les détails de l’arborescence de décision à partir de la vue du réseau de dépendances

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

  3. Double-cliquez sur le noeud qui contient les détails de l’arborescence de décision à afficher.

Prediction Model Viewer passe à la vue de l’arborescence de décision et affiche l’arborescence de décision du noeud sélectionné.

Pour retourner à une vue du réseau de dépendances après avoir affiché les détails de l’arborescence de décision

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

  3. Double-cliquez sur le nœud du modèle qui contient les détails de l’arborescence de décision à afficher.

  4. Pour quitter la vue de l’arborescence de décision et retourner à la vue du réseau de dépendances, cliquez dans la barre d’outils sur le bouton Retour.

La vue de l’arborescence de décision se transforme en vue du réseau de dépendances.


Utilisation de la vue de l'arborescence de décision

Utilisation de la vue de l’arborescence de décision

Vous utilisez l’arborescence de décision de la ressource Predictor pour analyser votre modèle d’analyse.

Cette section contient les rubriques suivantes :

  • Zoom avant et arrière dans la vue de l’arborescence de décision

  • Développement et réduction des nœuds dans la vue de l’arborescence de décision

  • Utilisation de la page entière dans la vue de l’arborescence de décision

  • Utilisation du retour au graphique dans la vue de l’arborescence de décision


Zoom avant et arrière dans la vue de l'arborescence de décision

Zoom avant et arrière dans la vue de l’arborescence de décision

Vous pouvez modifier la taille d’un modèle de prévision affiché dans la vue de l’arborescence de décision afin de visualiser les détails d’une zone particulière du modèle ou la totalité du modèle.

Pour effectuer un zoom avant

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

  3. Double-cliquez sur le nœud du modèle qui contient les détails de l’arborescence de décision à afficher.

  4. Cliquez dans la barre d’outils sur Zoom avant.

La vue de l’arborescence de décision du modèle est développée de 10 pour cent dans Prediction Model Viewer.

Pour effectuer un zoom arrière

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

  3. Double-cliquez sur le nœud du modèle qui contient les détails de l’arborescence de décision à afficher.

  4. Cliquez dans la barre d’outils sur Zoom arrière.

La vue de l’arborescence de décision du modèle est réduite de 10 pour cent dans Prediction Model Viewer.


Développement et réduction des nœuds dans la vue de l'arborescence de décision

Développement et réduction des nœuds dans la vue de l’arborescence de décision

Vous pouvez développer ou réduire les nœuds d’un modèle de prévision sans modifier la taille de ce modèle.

Pour développer les nœuds

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

  3. Double-cliquez sur le nœud du modèle qui contient les détails de l’arborescence de décision à afficher.

  4. Sélectionnez le nœud à développer, puis cliquez dans la barre d’outils sur Développer les nœuds.

Pour réduire les nœuds

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

  3. Double-cliquez sur le nœud du modèle qui contient les détails de l’arborescence de décision à afficher.

  4. Sélectionnez le nœud à réduire, puis cliquez dans la barre d’outils sur Réduire les nœuds.


Utilisation de la page entière dans la vue de l'arborescence de décision

Utilisation de la page entière dans la vue de l’arborescence de décision

L’option Page entière vous permet d’ajuster la taille du modèle de prévision de telle sorte qu’il contienne dans la zone d’affichage de Prediction Model Viewer.

Pour ajuster un modèle à la zone d’affichage de Prediction Model Viewer

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

  3. Double-cliquez sur le nœud du modèle qui contient les détails de l’arborescence de décision à afficher.

  4. Cliquez dans la barre d’outils sur Page entière.

La taille du modèle est ajustée afin de contenir dans les limites d’affichage de Prediction Model Viewer.


Utilisation du retour au graphique dans la vue de l'arborescence de décision

Utilisation du retour au graphique dans la vue de l’arborescence de décision

Vous pouvez utiliser l’option Revenir au graphique pour quitter la vue de l’arborescence de décision et retourner à la vue du réseau de dépendances.

Pour quitter la vue de l’arborescence de décision et retourner à la vue du réseau de dépendances

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle de prévision à afficher, puis cliquez sur Afficher le modèle.

  3. Double-cliquez sur le nœud du modèle qui contient les détails de l’arborescence de décision à afficher.

  4. Cliquez dans la barre d’outils sur Revenir au graphique.

La vue de l’arborescence de décision se ferme pour laisser la place à la vue du réseau de dépendances.


Reconstruction d'un modèle d'analyse

Reconstruction d’un modèle d’analyse

La reconstruction d’un modèle d’analyse s’avère nécessaire lorsque l’un des deux événements suivants se produit : le fichier de données du modèle en cours est endommagé ou les données utilisées pour construire le modèle ont changé de manière importante depuis la dernière construction du modèle.

Pour reconstruire un modèle d’analyse

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle à reconstruire, puis cliquez sur Reconstruire.

  3. Dans la boîte de dialogue Propriétés de construction d’un modèle, cliquez sur Suivant pour accepter les informations du modèle entrées précédemment.

  4. Dans la boîte de dialogue Propriétés de construction d’un modèle, cliquez sur Terminer pour accepter les informations du modèle entrées précédemment.

La construction du modèle d’analyse démarre, et l’état de la construction En cours d’exécution s’affiche sur l’écran des détails. Une fois le modèle construit, l’état de la construction passe à Inactif.

Voir aussi

Construction d’un nouveau modèle d’analyse

Affichage des modèles d’analyse


Modification du nom d'un modèle d'analyse

Modification du nom d’un modèle d’analyse

Lorsque vous renommez un modèle d’analyse, vérifiez que le site Web utilisant le modèle est également mis à jour et qu’aucun autre site n’utilise le modèle sous son ancien nom.

Pour renommer un modèle d’analyse

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle à renommer, puis cliquez sur Renommer.

  3. Tapez le nouveau nom du modèle, puis appuyez sur ENTRÉE.

  4. Dans la boîte de dialogue de confirmation de la modification des noms <nom_modèle>, cliquez sur Oui pour accepter les modifications.

Voir aussi

Construction d’un nouveau modèle d’analyse

Affichage des modèles d’analyse


Suppression d'un modèle d'analyse

Suppression d’un modèle d’analyse

Avant de supprimer un modèle d’analyse, vérifiez d’abord qu’il n’est plus utilisé par votre site Web.

Pour supprimer un modèle d’analyse

  1. Développez Commerce Server Manager, puis Ressources globales et Predictor on <nom_serveur>, avant de développer la seconde boîte de dialogue Predictor on <nom_serveur> ; cliquez ensuite sur Modèles.

  2. Sur l’écran des détails, cliquez avec le bouton droit sur le modèle à supprimer, puis cliquez sur Supprimer.

  3. Dans la boîte de dialogue de confirmation de la suppression de <nom_modèle>, cliquez sur Oui pour supprimer le modèle.

Le modèle est supprimé de la liste des modèles disponibles.

Attention

  • Une fois qu’un modèle est supprimé, il ne peut pas être restauré ; vous devez créer un nouveau modèle.


Analyse de la ressource Predictor

Vous pouvez analyser l’état de vos modèles d’analyse à l’aide de Commerce Server Manager ou vos pouvez utiliser les compteurs de performance pour vous aider à analyser les performances de la ressource Predictor pour la durée de la prévision, le temps de chargement des modèles, le nombre de fois qu’un modèle a été chargé ou le nombre total de prévisions effectuées.

Lorsque vous affichez l’état en cours d’un modèle d’analyse, les informations suivantes s’affichent sur l’écran des détails :

  • Nom de modèle

  • Type de modèle

  • Taille du dernier modèle généré

  • Date/Heure de construction du dernier modèle

  • Temps de construction du dernier modèle

  • État du service (il peut s’agir de l’un des états suivants : Construction du modèle, Inactif, Chargement de données, En cours d’exécution ou Suspendu.)

  • Configuration de source

  • Score de recommandation

  • Score d’ajustement aux données

Si vous recevez le message « La construction a échoué », ouvrez l’Observateur d’événements pour afficher le journal des événements. En fonction du type d’échec, vous devez ajuster les paramètres appropriés et reconstruire le modèle.

La ressource Predictor dispose de quatre compteurs de performance ; un (le compteur Temps moyen de prévision par le client) qui permet de mesurer la rapidité de l’occurrence des prévisions et trois autres qui comptent la fréquence d’appel de certaines opérations sur l’objet PredictorClient.

Pour plus d’informations sur les compteurs de performance Predictor, consultez Analyse de la ressource Predictor.

Voir aussi

Predictor : méthodes conseillées

Efficacité d’un modèle d’analyse


Exécution de la ressource Profiles

La ressource Profiles de Commerce Server vous permet de gérer la collection de données sur votre site Web. Par exemple, vous pouvez créer des définitions de profils qui contrôlent les données utilisateur qui seront collectées sur votre site Web. Vous pouvez définir les données qui sont collectées avec une définition de profil et spécifier les données qui sont exportées vers Data Warehouse de Commerce Server. Vous pouvez créer des sources de données qui contrôlent l’emplacement de stockage des données collectées. Vous pouvez créer des entrées du glossaire du site de manière à proposer aux utilisateurs des options parmi lesquelles ils pourront faire leur choix lorsqu’ils répondront à des questions portant sur la collection de données sur votre site, par exemple une liste de couleurs dans laquelle ils pourront choisir leur couleur préférée.

Cette section contient les rubriques suivantes :

  • Déroulement des opérations pour la ressource Profiles. Présente la marche à suivre pour gérer les profils.

  • À propos de la ressource Profiles. Décrit les fonctionnalités et le fonctionnement de la ressource Profiles.

  • Configuration de la ressource Profiles. Explique comment modifier la chaîne de connexion pour la ressource Profiles.

  • Ajout d’une nouvelle source de données. Explique comment ajouter et partitionner une nouvelle source de données que vous utilisez pour mapper les informations que vous collectez sur votre site Web vers les bases de données (ou sources LDAP) que vous utilisez pour stocker les données collectées.

  • Ajout d’un nouvel objet de données. Explique comment ajouter un nouvel objet de données pour exposer une table de base de données ou une classe LDAP à une définition de profil.

  • Ajout d’un nouveau membre de données. Explique comment ajouter un nouveau membre de données utilisé pour mapper une propriété de profil vers une colonne spécifique d’une table de base de données ou vers un attribut spécifique d’une classe LDAP.

  • Ajout d’une nouvelle définition de profil. Explique comment ajouter des définitions de profils et comment les mapper vers des objets de données.

  • Ajout de propriétés à des définitions de profils. Explique comment ajouter des propriétés de profils et des attributs personnalisés de propriété de profil.

  • Validation de définitions de profils. Explique comment valider une définition de profil unique ou l’ensemble de vos définitions de profils afin de vérifier que les propriétés de profil sont correctement mappées vers la banque de données.

  • Ajout d’une définition de profil à une définition de profil. Explique comment référencer une propriété d’une définition de profil dans une autre définition de profil de manière à pouvoir lier deux profils. Par exemple, vous pouvez lier un profil utilisateur au profil d’adresse de l’utilisateur.

  • Ajout d’entrées du glossaire du site. Explique comment créer des entrées du glossaire du site.

  • Ajout d’une entrée du glossaire du site à une définition de profil. Explique comment ajouter une entrée du glossaire du site à une propriété de profil de sorte qu’un utilisateur puisse sélectionner une valeur dans l’entrée du glossaire du site et l’utiliser comme la valeur de la propriété.

  • Exemple : Création d’une définition de profil avec deux sources de données. Explique comment créer une définition de profil utilisateur qui stocke des données à la fois dans une base de données Microsoft SQL Server et dans une base de données Microsoft Active Directory.

  • Gestion des sources de données. Explique comment modifier et supprimer des sources de données, des objets de données et des membres de données.

  • Gestion des définitions de profils. Explique comment modifier et supprimer des définitions de profils.

  • Gestion des propriétés de profil. Explique comment modifier et supprimer des propriétés de profil et des attributs de propriétés personnalisés.

  • Gestion des entrées du glossaire du site. Explique comment modifier et supprimer des entrées du glossaire du site et des valeurs d’entrée du glossaire du site.


Déroulement des opérations pour la ressource Profiles

La figure suivante présente la marche à suivre pour créer des sources de données et des définitions de profils.

Déroulement des opérations pour la ressource Profils
Ajouter des propriétés à une
définition de profil
Ajouter une entrée
du glossaire du site
Ajouter une
définition de profil
Ajouter un
membre de données
Ajouter un
objet de données
Créer une source de données
Créer des bases de données pour les données utilisateur

  1. Vous créez une source de données pour exposer des bases de données et des sources LDAP à la ressource Profiles.

  2. Vous créez un objet de données pour exposer une table de base de données (ou une classe LDAP) à la ressource Profiles.

  3. Vous créez des membres de données pour exposer des colonnes d’une table de base de données (ou attributs d’une classe LDAP) à la ressource Profiles.

  4. Vous créez une définition de profil qui utilise l’objet de données pour effectuer le mappage vers la base de données.

  5. Vous utilisez l’écran de définition de profil de la ressource Profiles pour ajouter une nouvelle propriété à la définition de profil et lui attribuer un membre de données.

  6. Vous vérifiez que vos définitions de profils sont mappées vers des banques de données existantes.

  7. Vous utilisez l’écran Éditeur d’entrées du glossaire du site de la ressource Profiles pour créer une entrée du glossaire du site et ainsi limiter l’entrée de données sur votre site Web.

  8. Vous utilisez l’écran de définition de profil pour lier une définition de profil ou une entrée du glossaire du site à une définition de profil.


À propos de la ressource Profiles

La ressource Profiles permet de créer des sources de données, des définitions de profils et des entrées du glossaire du site. Les définitions de profils vous permettent de collecter des données utilisateur et commerciales depuis votre site Web Commerce Server 2000. Les sources de données permettent de mapper les données collectées avec les définitions de profils vers la colonne et la table de la base de données (ou l’attribut et la classe d’une source LDAP [Lightweight Directory Access Protocol]) où les données seront stockées. Vous créez des entrées du glossaire du site de manière à proposer aux utilisateurs des options parmi lesquelles ils pourront faire leur choix lorsqu’ils entreront des préférences personnelles ou d’autres informations sur votre site Web.

Cette section contient les rubriques suivantes :

  • Sources de données

  • Partitions de sources de données

  • Définitions de profils

  • Entrées du glossaire du site

  • Exemples de sources de données

  • Exemples de définitions de profils

  • Exemples d’entrées du glossaire du site


Source de données

Les sources de données permettent d’exposer votre banque de données à la ressource Profiles et ainsi de pouvoir stocker les données collectées sur votre site Web, avec les définitions de profils, dans la banque de données. Commerce Server 2000 prend en charge les bases de données OLE (OLE DB) et les sources LDAP (Lightweight Directory Access Protocol).

Les sources de données contiennent les composants suivants :

  • Objets de données. Exposent une table d’une base de données OLE ou une classe d’une source LDAP à une définition de profil. Le processus de création d’un objet de données ne crée pas une nouvelle table dans votre base de données, ni une nouvelle classe dans votre source LDAP, il rend visible la table ou la classe LDAP par la ressource Profiles. Avant de créer un objet de données pour exposer une table ou une classe, cette dernière doit exister.

  • Membres de données. Exposent une colonne d’une table se trouvant dans une base de données OLE, ou un attribut d’une classe se trouvant dans une source LDAP à une propriété de profil. Par exemple, une définition de profil est utilisée pour collecter des données auprès des utilisateurs lorsqu’ils s’inscrivent sur votre site Web. Les informations utilisateur (telles que le prénom, le nom et l’adresse de messagerie) sont collectées par les propriétés de profil. Chaque propriété est associée à un membre de données qui mappe (ou dirige) les informations collectées vers la colonne de base de données ou l’attribut LDAP qui les stockeront.

    Le processus de création d’un membre de données ne crée pas une nouvelle colonne dans votre table de base de données, ni un nouvel attribut dans la classe de votre source LDAP, il rend visible la colonne ou l’attribut LDAP par la ressource Profiles. Avant de créer un membre de données pour exposer une colonne ou un attribut, cette colonne ou cet attribut doit exister.

La figure suivante montre comment s’imbriquent les différentes parties du schéma physique de stockage des données, de sources de données et de définitions de profils.

Connexions entre le stockage des données, une source de données et une définition de profil
Source de données
Objet de données
Membre
de données
Membre
de données
Objet de données
Colonne
Attribut
Table
Classe
Base de données
OLE DB
Source LDAP
Source de données
Propriété
Propriété
Définition
de profil

Voir aussi

Partitions de sources de données

Exemples de sources de données

Définitions de profils

Ajout d’une nouvelle source de données

Gestion des sources de données


Partitions de sources de données

La ressource Profiles permet de créer des sources de données partitionnées. Commerce Server 2000 prend en charge le partitionnement de sources de données afin d’être adapté à un trafic pouvant être supérieur à 10 millions d’utilisateurs. Le partitionnement permet d’ajuster et de gérer de façon efficace les charges de transactions de bases de données associées à un grand nombre d’utilisateurs. Chaque partition d’une source de données peut se connecter à une base de données ou à une source LDAP (Lightweight Directory Access Protocol). Avec une source de données partitionnée, les bases de données individuelles offrent de meilleures performances et des temps de réponses plus réduits que si toutes les données collectées avec une définition de profil étaient stockées dans une seule base de données.

Mappage vers plusieurs bases de données

Attributs personnalisés

Modification de partitions

Clés de hachage

Mappage vers plusieurs bases de données

Lorsque vous utilisez une source de données partitionnée pour mapper une définition de profil vers plusieurs bases de données OLE ou sources LDAP, ces dernières doivent avoir des schémas identiques. Par exemple, si vous créez une source de données partitionnée qui mappe une définition de profil vers trois bases de données, les définitions des tables des trois bases de données doivent être identiques. Les sources de données Commerce Server prennent en charge jusqu’à 128 partitions.

Attributs personnalisés

Vous pouvez ajouter des attributs personnalisés à une partition de source de données. Les attributs personnalisés sont spécifiques aux applications. Les attributs communs à toutes les définitions de profils ou à toutes les banques de données sont généralement stockés dans la table ClassDef ou SourceDef. Cependant, des attributs spécifiques peuvent s’appliquer uniquement à certains objets de source de données sélectionnés. Par exemple, vous pouvez créer un attribut personnalisé pour gérer l’ordre de tri des sources de données ou des partitions d’une source de données, ou pour vous aider à maintenir la cohérence avec d’autres objets tels que des définitions de membres ou des définitions de sources. Les attributs personnalisés de source de données sont uniquement disponibles dans la ressource Profiles.

Modification de partitions

Après avoir ajouté une partition à une source de données, vous pouvez la modifier, mais vous ne pouvez pas la supprimer. Si vous souhaitez supprimer le partitionnement d’une source de données, vous devez définir une nouvelle source de données, puis supprimer l’ancienne. Lorsque vous partitionnez une source de données, vous devez identifier une partition comme partition par défaut.

Clés de hachage

Une clé de hachage est une clé unique qui est utilisée pour maintenir ensemble les données provenant d’une même source (dans le cas présent, une définition de profil), même si elles sont physiquement stockées dans plusieurs bases de données. Les sources de données utilisent une clé de hachage pour partitionner les données entre plusieurs bases de données. La ressource Profiles (ou le module Définition de profil de Commerce Server Business Desk) permet de sélectionner une propriété de profil qui sera la clé de hachage d’une définition de profil.

Si vous ne définissez pas une propriété de profil comme clé de hachage, toutes les données collectées avec une définition de profil sont stockées dans la base de données attribuée à la partition par défaut. Une fois que vous avez défini une clé de hachage, vous ne pouvez pas la redéfinir. Pour plus d’informations sur la définition d’une clé de hachage, consultez Ajout de propriétés à des définitions de profils.

Voir aussi

Exemples de sources de données

Définitions de profils

Ajout d’une nouvelle source de données

Gestion des sources de données


Définitions de profils

La ressource Profiles permet de créer des définitions de profils. Un profil est une instance unique d’une définition de profil contenant les données que celle-ci collecte. Par exemple, lorsqu’un utilisateur entre des données dans une définition de profil utilisateur sur votre site Web, Commerce Server 2000 crée un profil pour l’utilisateur et le chef d’entreprise peut accéder à ce profil dans Commerce Server Business Desk.

Vous pouvez utiliser la ressource Profiles pour ajouter des propriétés à une définition de profil de manière à spécifier les données qui seront collectées par la définition de profil et à définir les attributs des propriétés d’une définition de profil. Les chefs d’entreprise peuvent également effectuer cette opération à l’aide du module Définition de profil de Business Desk.

Association de profils

Mappage de propriétés de profil vers des emplacements de stockage

Composants d’une définition de profil

Association de profils

La ressource Profiles permet d’associer des profils. L’association de profils permet d’augmenter la quantité de données collectées avec des définitions de profils. Vous souhaitez par exemple collecter plusieurs adresses, telles qu’une adresse de facturation et une adresse de livraison, pour les utilisateurs qui achètent des produits sur votre site Web. Pour ce faire, vous pourriez ajouter des propriétés (Prénom, Nom, Rue, Ville, Code postal) pour chaque adresse que vous souhaitez collecter dans la définition de profil Objet utilisateur.

Mais il existe un meilleur moyen de collecter plusieurs adresses : vous ajoutez une seule propriété à la définition de profil Objet utilisateur pour chaque adresse et vous utilisez cette propriété pour associer les profils d’adresses aux profils utilisateur. Par exemple, vous pouvez ajouter une propriété à la définition de profil Objet utilisateur nommée « Adresse de facturation ». Vous définissez le type de propriété d’Adresse de facturation sur profil. Vous sélectionnez ensuite la définition de profil Adresse comme la référence de type de la propriété Adresse de facturation.

Lorsqu’un utilisateur entre une adresse de facturation sur votre site Web, cette adresse est stockée dans un profil d’adresse. Le profil d’adresse est enregistré avec un nom unique. Le nom unique du profil d’adresse est collecté en tant que chaîne dans la propriété Adresse de facturation du profil utilisateur. Dans la mesure où le profil utilisateur contient le nom unique du profil d’adresse, les données du profil utilisateur et du profil d’adresse peuvent être présentées ensemble sur votre site Web et dans des rapports. Pour obtenir des instructions sur l’association de définitions de profils, consultez Ajout d'une définition de profil à une définition de profil.

Mappage de propriétés de profil vers des emplacements de stockage

Les propriétés de profil utilisent des membres de données pour mapper les données entrées par les utilisateurs sur votre site Web vers l’emplacement de stockage approprié. Par exemple, lorsqu’un utilisateur tape un prénom dans la propriété Prénom de la définition de profil Objet utilisateur, le prénom est stocké dans la colonne de base de données spécifiée par le membre de données de la propriété Prénom.

Une fois créée une définition de profil avec la ressource Profiles, le chef d’entreprise peut modifier les propriétés de la définition de profil et gérer les données disponibles dans des profils utilisateur individuels dans Business Desk.

Composants d’une définition de profil

Une définition de profil contient des propriétés, des groupes de propriétés et des attributs.

Propriétés

Les propriétés définissent les données réelles qui sont collectées par une définition de profil. Par exemple, Prénom est une propriété de la définition de profil Adresse. Vous pouvez définir les types de propriétés de profil suivants :

Type de propriété | Description
Chaîne | Stocke jusqu’à 4 000 caractères Unicode. Les propriétés de type chaîne effectuent un mappage vers les membres de données de type chaîne.
Chaîne de type long | Stocke jusqu’à 2 à la puissance 17 (2^17) caractères Unicode. Les propriétés de type chaîne de type long effectuent un mappage vers les membres de données de type chaîne.
Nombre | Stocke des nombres entiers. La longueur maximale d’une propriété de type nombre est déterminée par la banque de données. Les propriétés de type nombre effectuent un mappage vers les membres de données de type nombre.
Décimal | Stocke des nombres à virgule flottante. La longueur maximale d’une propriété de type décimal est déterminée par la banque de données. Les propriétés de type décimal effectuent un mappage vers les membres de données de type nombre.
Booléen | Stocke une des deux valeurs (vrai/faux, oui/non ou 1/0). Les propriétés de type booléen effectuent un mappage vers les membres de données de type booléen.
Binaire | Stocke le contenu binaire d'une taille maximale de 4 Ko, principalement utilisé pour la programmation. Les propriétés de type binaire effectuent un mappage vers les membres de données de type binaire.
Donnée binaire de type long | Stocke le contenu, tel que des feuilles de calcul, des documents, des images et des séquences audio jusqu’à la taille maximale de 128 Ko. Les propriétés de type binaire de type long effectuent un mappage vers les membres de données de type binaire.
Date/Heure | Stocke des valeurs de date et heure. Le format et la longueur maximale sont déterminés par la banque de données. Les propriétés de type date/heure effectuent un mappage vers les membres de données de type date/heure.
Date | Contient des valeurs de date. Le format et la longueur maximale sont déterminés par la banque de données. Les propriétés de type date effectuent un mappage vers les membres de données de type date/heure.
Heure | Contient les valeurs heure, minute, seconde et milliseconde. Le format et la longueur maximale sont déterminés par la banque de données. Les propriétés d’heure effectuent un mappage vers les membres de données date/heure.
Devise | Stocke des nombres au format devise. Le format et la longueur maximale sont déterminés par la banque de données. Les propriétés de type devise effectuent un mappage vers les membres de données de type devise.
Mot de passe | Stocke du texte. La ressource Profiles traite la propriété de type mot de passe comme une propriété de type chaîne. Business Desk affiche les valeurs stockées dans une propriété de type mot de passe sous la forme d’astérisques (*). Les propriétés de type mot de passe effectuent un mappage vers les membres de données de type chaîne et ne doivent pas excéder 255 caractères Unicode.
Entrée du glossaire du site | Stocke les valeurs valides extraites de la liste des noms d’entrées associés à l’entrée du glossaire du site correspondante. Les propriétés de type entrée du glossaire du site effectuent un mappage vers les membres de données de type chaîne et ne doivent pas excéder 255 caractères Unicode.
Profil | Stocke une valeur correspondant à la valeur de la clé primaire d’une instance spécifique de ce profil. Les propriétés de type profil effectuent un mappage vers les membres de données de type chaîne et ne doivent pas excéder 255 caractères Unicode.

Le type de propriété doit être identique au type de données du membre de données vers lequel la propriété est mappée. Par exemple, vous pouvez mapper une propriété de type chaîne avec un membre de données de type chaîne vers une colonne de type chaîne dans la banque de données. Chaque propriété dispose d’attributs qui définissent ses caractéristiques.

Groupes de propriétés

Les groupes de propriétés sont des groupements logiques de propriétés de profil. Les groupes de propriétés vous permettent d’organiser des propriétés liées en groupes dans l’écran de définition de profil.

Attributs

Les attributs sont des caractéristiques spécifiées pour une propriété ou un groupe de propriétés. Par exemple, la propriété Prénom a les attributs de propriété de profil Nom, Nom complet, Description et Type. Il existe deux types d’attributs particuliers :

  • Attributs avancés. Vous utilisez les attributs avancés décrits dans le tableau suivant pour modifier la façon dont vos applications utilisent une propriété de profil. Par exemple, l’attribut Exporté détermine si une propriété sera importée dans Data Warehouse de Commerce Server.
    Attribut | Description
    Activé | Indique si cette propriété est affichée dans Business Desk.
    Mapper vers les données | Identifie le membre de données utilisé par cette propriété pour effectuer le mappage vers la colonne de base de données (ou vers l’attribut LDAP).
    Type de clé Chaque définition de profil requiert une propriété qui soit une clé primaire et une propriété qui soit une clé de jointure, ou une propriété qui soit une double clé (à la fois une clé primaire et une clé de jointure). Vous pouvez attribuer quatre types de clés :
    • Clé unique. Indique que la valeur de cette propriété est unique pour tous les membres. Les propriétés désignées comme clés uniques font apparaître un symbole U(clé) devant leur nom dans la liste Propriétés.

    • Clé primaire. Identifie le profil. La valeur de cette propriété doit être unique pour chaque profil. Vous mappez une propriété qui est spécifiée comme clé primaire vers un champ unique d’une base de données ou d’une source LDAP. Les propriétés désignées comme clés primaires font apparaître un symbole P(clé) devant leur nom dans la liste Propriétés.

    • Clé de jointure. Relie la définition de profil à plusieurs objets de données. Vous utilisez cette clé pour mapper les propriétés de la définition de profil vers les membres de données de différents objets de données. Si vous mappez la définition de profil vers plusieurs objets de données, vous devez mapper la clé de jointure vers un membre de données de chaque objet de données. Ainsi, les données collectées par la propriété (désignée comme clé de jointure) seront conservées dans les emplacements de stockage représentés par les membres de données. Les propriétés désignées comme clés de jointure font apparaître un symbole J(clé) devant leur nom dans la liste Propriétés.

    • Double clé (primaire et de jointure). Identifie de façon unique le profil et mappe la définition de profil vers plusieurs objets de données. Les propriétés désignées comme doubles clés font apparaître un symbole P(clé)J(clé) devant leur nom dans la liste Propriétés.
    Requis | Spécifier que cette propriété est requise sur votre site Web et dans Business Desk. Cependant, cet attribut n’est pas appliqué par la ressource Profiles. Cet attribut est en lecture seule si vous avez sélectionné un type de clé.
    Exportée | Indique que la propriété est importée dans Data Warehouse. Seules les propriétés mappées peuvent être exportées. Vous ne pouvez pas exporter des propriétés à valeurs multiples et de type Booléen, ni des propriétés de type binaire, chaîne de type long et mot de passe.
    Différer le chargement du cache | Indique que cette propriété ne sera pas chargée initialement lors de la récupération du profil, mais qu’elle sera chargée lorsqu’elle sera sollicitée.
    À valeurs multiples | Active la collecte de plusieurs valeurs associées à la propriété. Tous les types de données et toutes les banques de données ne prennent pas en charge les valeurs multiples.
    Possibilité de recherche | Indique que cette propriété est indexée dans la banque de données sous-jacente et qu’elle peut faire l’objet de recherches via la fonction Rechercher par. Vous mappez un attribut pouvant faire l’objet d’une recherche vers un champ indexé de la base de données ou de la source LDAP.
    RDN (Relative Distinguished Name) | Identifie le RDN (Relative Distinguished Name) d’une banque de répertoires. Définissez cette valeur si la propriété est mappée vers un attribut RDN d’une classe LDAP dans la banque sous-jacente.
    Clé de hachage | Indique que cette propriété est utilisée pour répartir des instances du profil entre plusieurs partitions de source de données. Cette propriété est en lecture seule pour les sources de données non partitionnées. Pour récupérer le profil, vous devez effectuer une requête sur cette clé.

  • Attributs personnalisés. Les attributs personnalisés des propriétés de profil sont des espaces réservés permettant de stocker des informations personnalisées spécifiques aux applications. Ces paires attribut/valeur doivent être de type chaîne. La longueur maximale admise pour le nom de l’attribut ou la valeur est de 127 caractères Unicode. Par exemple, vous pouvez créer un attribut personnalisé qui contrôle la façon dont une propriété est affichée sur une page de site Web.

    Lorsque vous décompressez un site solution, Commerce Server ajoute les attributs personnalisés décrits dans le tableau suivant.

    Attribut | Description
    sAnonymousAccess | Spécifie l’accès de l’utilisateur à la propriété dans le Service clientèle. Cet attribut n’est pas mis en œuvre dans Commerce Server.
    sUserAccess | Spécifie l’accès de l’utilisateur inscrit à la propriété dans le Service clientèle. Définissez la valeur de l’attribut sur 0 pour que les utilisateurs inscrits ne puissent pas l’afficher. Définissez la valeur de l’attribut sur 1 pour autoriser les utilisateurs inscrits à afficher la propriété. Définissez la valeur de l’attribut sur 2 pour autoriser les utilisateurs inscrits à afficher et à modifier la propriété.
    sDelegatedAdminAccess | Spécifie l’accès de l’administrateur délégué à la propriété dans le Service clientèle et dans le Service partenaire. Définissez la valeur de l’attribut sur 0 pour que les administrateurs délégués ne puissent pas l’afficher. Définissez la valeur de l’attribut sur 1 pour autoriser les administrateurs délégués à afficher la propriété. Définissez la valeur de l’attribut sur 2 pour autoriser les administrateurs délégués à afficher et à modifier la propriété.
    sSiteAdminAccess | Spécifie l’accès du développeur de site à la propriété dans Business Desk. Cet attribut n’est pas mis en œuvre dans Commerce Server 2000.
    SearchOptions | Spécifie si la propriété de profil peut faire l’objet d’une recherche dans le Service clientèle et dans le Service partenaire. Définissez la valeur de l’attribut sur ALL afin que la propriété puisse faire l’objet d’une recherche en mode de recherche à la fois normal et avancé. Définissez la valeur de l’attribut sur ADVANCED afin que la propriété puisse faire l’objet d’une recherche en mode de recherche normal. Définissez la valeur de l’attribut sur NONE pour exclure la propriété des recherches.
    ShowInList | Spécifie si la propriété est affichée dans la liste des résultats de recherche de l’utilisateur dans le Service partenaire. Définissez la valeur de l’attribut sur 1 pour afficher la propriété. Définissez la valeur de l’attribut sur 0 pour masquer la propriété.
    sFeatureID | Spécifie les scénarios de site pour lesquels la propriété est affichée dans le Service clientèle et dans le Service partenaire. Définissez la valeur de l’attribut sur 2 pour afficher la propriété uniquement lorsque le site prend en charge les options d’administration déléguée. Définissez la valeur de l’attribut sur 3 pour afficher la propriété uniquement lorsque le site utilise Active Directory. Définissez la valeur de l’attribut sur 0 pour toujours afficher la propriété, quel que soit le scénario.
    DWMembername | Spécifie le nom du membre de données de Data Warehouse vers lequel la propriété effectue le mappage.

Le module Définition de profil est disponible dans la ressource Profiles et dans Business Desk. Pour plus d’informations sur l’utilisation du module Définition de profil dans Business Desk, consultez Utilisateurs Business Desk.

Voir aussi

Exemples de définitions de profils

Ajout d’une nouvelle source de données

Ajout d’un nouvel objet de données

Ajout d’une nouvelle définition de profil

Ajout de propriétés à des définitions de profils


Entrées du glossaire du site

Les entrées du glossaire du site vous permettent de limiter les entrées des utilisateurs à une liste de valeurs spécifiques. L’écran Éditeur d’entrées du glossaire du site de la ressource Profiles permet de créer et de gérer les entrées du glossaire du site. Le chef d’entreprise peut utiliser le module Éditeur d’entrées du glossaire du site dans Commerce Server Business Desk pour créer et gérer des entrées du glossaire du site.

Vous pouvez définir une propriété de profil comme entrée du glossaire du site de manière à limiter les entrées de l’utilisateur pour cette propriété aux valeurs répertoriées dans cette entrée du glossaire du site. Par exemple, vous définissez une propriété « Couleur préférée » à laquelle le type Entrée du glossaire du site est attribué. Vous créez ensuite une entrée du glossaire du site « Couleur préférée » avec les valeurs « bleu », « vert », « blanc » et « violet ». Si vous demandez aux utilisateurs quelle est leur couleur préférée lorsqu’ils s’inscrivent sur votre site Web, ils font leur choix parmi les couleurs répertoriées dans l’entrée du glossaire du site pour la propriété Couleur préférée. Vous limitez ainsi les valeurs parmi lesquelles les utilisateurs peuvent choisir, ce qui permet de cibler plus facilement les utilisateurs qui ont la même couleur préférée. Pour plus d’informations sur les entrées du glossaire du site, consultez Profils. Pour obtenir des instructions sur l’utilisation du module Éditeur d'entrées du glossaire du site dans Business Desk, consultez Éditeur d’entrées du glossaire du site.

Voir aussi

Profils

Éditeur d’entrées du glossaire du site

Exemples d’entrées du glossaire du site

Ajout d’entrées du glossaire du site

Gestion des entrées du glossaire du site


Exemples de sources de données

Lorsque vous décompressez un site solution, Commerce Server 2000 ajoute un exemple de source de données, appelé ProfileService_SQLSource, à la ressource Profiles. La source de données ProfileService_SQLSource contient les exemples d’objets de données Adresse, BlanketPOs (bon de commande), Organisation et Objet utilisateur.

Adresse

BlanketPOs

Organisation

Objet utilisateur

Adresse

Le tableau suivant répertorie les membres de données disponibles dans l’objet de données Adresse.

Nom | Type de données
g_address_id | Chaîne
g_id | Chaîne
i_address_type | Nombre
u_address_name | Chaîne
u_last_name | Chaîne
u_first_name | Chaîne
u_description | Chaîne
u_address_line1 | Chaîne
u_address_line2 | Chaîne
u_city | Chaîne
u_region_name | Chaîne
u_region_code | Chaîne
u_postal_code | Chaîne
u_country_name | Chaîne
u_country_code | Chaîne
u_tel_number | Chaîne
u_tel_extension | Chaîne
i_locale | Nombre
u_user_id_changed by | Chaîne
d_date_last_changed | DateHeure
d_date_created | DateHeure

BlanketPOs

Le tableau suivant répertorie les membres de données disponibles dans l’objet de données BlanketPOs.

Nom | Type de données
g_org_id | Chaîne
g_po_id | Chaîne
u_po_number | Chaîne
u_description | Chaîne
g_user_id_changed_by | Chaîne
d_date_last_changed | DateHeure
d_date_created | DateHeure

Organisation

Le tableau suivant répertorie les membres de données disponibles dans l’objet de données Organisation.

Nom | Type de données
g_org_id | Chaîne
u_name | Chaîne
u_trading_partner_number | Chaîne
g_user_id_admin_contact | Chaîne
g_user_id_receiver | Chaîne
u_org_catalog_set | Chaîne
g_user_id_changed_by | Chaîne
g_user_purchasing_manager | Chaîne
d_date_last_changed | DateHeure
d_date_created | DateHeure

Objet utilisateur

Le tableau suivant répertorie les membres de données disponibles dans l’objet de données Objet utilisateur.

Nom | Type de données
u_logon_name | Chaîne
g_org_id | Chaîne
g_user_id | Chaîne
u_user_title | Chaîne
i_user_type | Nombre
u_last_name | Chaîne
u_first_name | Chaîne
u_email_address | Chaîne
u_tel_number | Chaîne
u_tel_extension | Chaîne
u_fax_number | Chaîne
u_fax_extension | Chaîne
u_user_security_password | Chaîne
g_user_id_changed_by | Chaîne
i_account_status | Nombre
u_user_catalog_set | Chaîne
d_date_registered | DateHeure
u_campaign_history | Chaîne
i_partner_desk_role | Nombre
d_date_last_changed | DateHeure
d_date_created | DateHeure
u_pref1 | Chaîne
u_pref2 | Chaîne
u_pref3 | Chaîne
u_pref4 | Chaîne
u_pref5 | Chaîne

Remarque

  • Les membres de données u_pref sont fournis afin que vous puissiez ajouter des propriétés à la définition de profil Objet utilisateur sans étendre votre base de données. Vous pouvez personnaliser ces membres de données.

La source de données ProfileService_SQLSource effectue un mappage vers les exemples de définitions de profils qui sont ajoutés par défaut à la ressource Profiles et à Commerce Server Business Desk. Pour plus d’informations sur les exemples de définitions de profils, consultez Exemples de définitions de profils.

Voir aussi

Définitions de profils

Exemples de définitions de profils

Ajout d’une nouvelle source de données

Ajout d’un nouvel objet de données

Ajout d’un nouveau membre de données

Gestion des sources de données


Exemples de définitions de profils

Lorsque vous décompressez un site solution, Commerce Server 2000 ajoute les exemples de définitions de profils Adresse, BlanketPOs, Organisation, Objet utilisateur et Contexte de ciblage.

Adresse

BlanketPOs

Organisation

Objet utilisateur

Contexte de ciblage

Adresse

Le tableau suivant répertorie les propriétés disponibles dans la définition de profil Adresse, ainsi que les membres de données de l’objet de données Adresse vers lesquels sont mappées les propriétés.

Propriété | Membre de données
Identificateur de l’adresse | g_address_id
Identificateur | g_id
Nom | u_last_name
Prénom | u_first_name
Nom de l’adresse | u_address_name
Type d’adresse | i_address_type
Description | u_description
Adresse (1ère ligne) | u_address_line1
Adresse (2ème ligne) | u_address_line2
Ville | u_city
Code de région | u_region_code
Nom de la région | u_region_name
Code postal | u_postal_code
Code de pays | u_country_code
Nom du pays | u_country_name
Numéro de téléphone | u_tel_number
Numéro de poste | u_tel_extension
Identificateur de paramètre régional | i_locale
Modifié par | u_user_id_changed_by
Date de dernière modification | d_date_last_changed
Date de création | d_date_created

BlanketPOs

Le tableau suivant répertorie les propriétés disponibles dans la définition de profil BlanketPOs, ainsi que les membres de données de l’objet de données BlanketPOs vers lesquels sont mappées les propriétés.

Propriété | Membre de données
Identificateur du bon de commande | g_po_id
Identificateur de l’organisation | g_org_id
Numéro du bon de commande | u_po_number
Description | u_description
Modifié par | g_user_id_changed_by
Date de dernière modification | d_date_last_changed
Date de création | d_date_created

Organisation

Le tableau suivant répertorie les propriétés disponibles dans la définition de profil Organisation, ainsi que les membres de données de l’objet de données Organisation vers lesquels sont mappées les propriétés.

Propriété | Membre de données
Identificateur de l’organisation | g_org_id
Nom | u_name
Numéro de partenaire commercial | u_trading_partner_number
Contact administratif | u_user_id_admin_contact
Récepteur | g_user_id_receiver
Groupe de catalogues de l’organisation | u_org_catalog_set
Modifié par | g_user_id_changed_by
Responsable des achats | g_user_id_purchasing_manager
Date de dernière modification | d_date_last_changed
Date de création | d_date_created

Objet utilisateur

Le tableau suivant répertorie les propriétés disponibles dans la définition de profil Objet utilisateur, ainsi que les membres de données de l’objet de données Objet utilisateur vers lesquels sont mappées les propriétés.

Propriété | Membre de données
Identificateur de l’utilisateur | g_user_id
Nom d’ouverture de session | u_logon_name
Mot de passe de l’utilisateur | u_user_security_password
Courrier électronique | u_email_address
Type d’utilisateur | i_user_type
Titre de l’utilisateur | u_user_title
Nom | u_last_name
Prénom | u_first_name
Numéro de téléphone | u_tel_number
Numéro de poste | u_tel_extension
Numéro de télécopie | u_fax_number
Numéro de poste de télécopie | u_fax_extension
Modifié par | g_user_id_changed_by
Identificateur de l’organisation | g_org_id
État du compte | i_account_status
Groupe de catalogues de l’utilisateur | u_user_catalog_set
Date d’inscription | d_date_registered
Historique de la campagne marketing | u_campaign_history
Indicateurs de rôle du Service Partenaire | i_partner_desk_role
Date de dernière modification | d_date_last_changed
Date de création | d_date_created

Contexte de ciblage

La définition de profil Contexte de ciblage contient une propriété, Groupe de pages, qui n’est pas mappée.

Voir aussi

Sources de données

Ajout d’une nouvelle source de données

Ajout d’un nouvel objet de données

Ajout d’une nouvelle définition de profil

Ajout de propriétés à des définitions de profils

Gestion des définitions de profils


Entrées du glossaire du site

Lorsque vous décompressez le site solution Retail, Commerce Server 2000 ajoute cinq exemples d’entrées du glossaire du site à la ressource Profiles. Vous ne pouvez pas supprimer ou modifier ces entrées du glossaire du site. Le tableau suivant répertorie les entrées du glossaire du site disponibles lorsque vous décompressez le site solution Retail.

Entrée du glossaire du site | Glossaire
État du compte | Compte actif Compte inactif
Jours | Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi
Mois | Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre Décembre
Rôle de l’utilisateur | Administrateur Utilisateur ordinaire
Type d’utilisateur | Utilisateur invité Utilisateur inscrit

Voir aussi

Ajout d’entrées du glossaire du site

Gestion des entrées du glossaire du site


Configuration de la ressource Profiles

Vous pouvez utiliser Commerce Server Manager pour modifier la chaîne de connexion de la ressource Profiles. La chaîne de connexion est définie au cours du processus de décompression.

Pour modifier la chaîne de connexion de la ressource Profiles

  1. Développez Commerce Server Manager, puis Ressources globales, cliquez avec le bouton droit sur Profiles et cliquez sur Propriétés.

  2. Dans la boîte de dialogue Propriétés de Profiles (<nom du site>), sous l’onglet Chaînes de connexion, sélectionnez la chaîne de connexion à modifier, puis cliquez sur Modifier.

  3. Dans la boîte de dialogue Propriétés des liaisons de données, sous l’onglet Connexion, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Sélectionnez ou tapez un nom de serveur | Sélectionner un nom de serveur dans la liste déroulante, ou taper l’emplacement du serveur qui héberge la base de données à laquelle vous voulez accéder.
    Actualiser | Actualiser la liste des serveurs.
    Utiliser la sécurité intégrée de Windows NT | Ne pas utiliser cette option. Commerce Server ne prend pas en charge l’authentification Windows NT.
    Utiliser un nom utilisateur et un mot de passe spécifiques | Fournir un nom d’utilisateur et un mot de passe pour authentifier vos informations d’ouverture de session de la source de données.
    Nom d’utilisateur | Taper l’identificateur d’utilisateur à utiliser pour l’authentification lorsque vous ouvrez une session de la source de données.
    Mot de passe | Taper le mot de passe à utiliser pour l’authentification lorsque vous ouvrez une session de la source de données.
    Mot de passe vide | Activer le fournisseur spécifié afin de renvoyer un mot de passe vide dans la chaîne de connexion.
    Autoriser l’enregistrement du mot de passe | Permettre l’enregistrement du mot de passe avec la chaîne de connexion. L’inclusion du mot de passe dans la chaîne de connexion dépend de la fonctionnalité de l’application appelante. Si le mot de passe est enregistré, il est renvoyé et est enregistré non masqué et non crypté.
    Sélectionnez la base de données sur le serveur | Taper le nom de la base de données vers laquelle vous mappez la source de données, ou sélectionner ce nom dans la liste déroulante.
    Joindre un fichier de base de données comme un nom de base de données | Ne pas utiliser cette option. Commerce Server ne prend pas en charge SQL Server version 6.5 ou antérieure.
    Utiliser le nom de fichier | Ne pas utiliser cette option. Commerce Server ne prend pas en charge SQL Server version 6.5 ou antérieure.
    Tester la connexion | Vous connecter à la source de données spécifiée. Si la connexion échoue, vérifiez que les paramètres sont corrects. Les fautes d’orthographe et le non-respect de la casse peuvent faire échouer des connexions.

  4. Pour revenir à la boîte de dialogue Propriétés de Profiles (<nom du site>) Properties cliquez sur OK.

  5. Pour appliquer vos modifications, cliquez sur Appliquer.

Les modifications apportées à la chaîne de connexion sont appliquées à la ressource Profiles.

Remarque

  • Toutes les chaînes de connexion de la ressource Profiles sont mises à jour dès qu’une chaîne est modifiée.

Voir aussi

À propos de la ressource Profiles


Ajout d'une nouvelle source de données

Ajout d’une nouvelle source de données

La ressource Profiles permet d’ajouter de nouvelles sources de données pour le stockage de données de profil. Vous utilisez des sources de données de profil pour mapper des données de profil vers vos banques de données. Les banques de données peuvent être des bases de données OLE ou des sources LDAP.

Vous utilisez une source de données pour mapper des définitions de profils vers une base de données ou une source LDAP. Vous pouvez partitionner la source de données de manière à mapper des définitions de profils vers plusieurs banques de données. Vous devez créer une base de données ou une source LDAP avant de pouvoir créer une source de données. La ressource Profiles ne modifie pas la banque de données sous-jacente. Les modifications de schéma doivent être apportées directement dans la base de données ou la source LDAP.

Important

  • L’utilisation de certains pilotes de base de données OLE répertoriés dans la boîte de dialogue Propriétés des liaisons de données n’est pas appropriée avec la ressource Profiles. Ne pas utiliser les pilotes suivantes :
    • Fournisseur Microsoft OLE DB pour les lots DTS

    • Fournisseur Microsoft OLE DB pour le service d’indexation

    • Fournisseur Microsoft OLE DB pour la publication sur Internet

    • Lots simples Microsoft OLE DB

    • Fournisseur Microsoft OLE DB pour Microsoft Site Server Search

    • Fournisseur Microsoft OLE DB pour Commerce Server

    Si vous sélectionnez l’un de ces pilotes dans la boîte de dialogue Propriétés des liaisons de données, vous risquez d’obtenir un message d’erreur de Microsoft Data Link indiquant que le fournisseur n’est plus disponible.

Pour ajouter une nouvelle source de données SQL Server

Pour ajouter une nouvelle source de données Source compatible LDAPv3

Pour ajouter un attribut personnalisé à une partition de source de données

Pour ajouter une nouvelle source de données SQL Server

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, cliquez avec le bouton droit sur Sources de données, puis cliquez sur Nouvelle source de données.

  2. Dans la boîte de dialogue Nouvelle source de données, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom de programmation de la source de données. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper le nom à afficher pour la source de données. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper une description pour la source de données. La description ne peut pas excéder 127 caractères Unicode.

  3. Cliquez sur Suivant.

  4. Dans la boîte de dialogue Source de données, dans la liste déroulante Type de source, sélectionnez Fournisseur OLEDB-ANSI, puis cliquez sur Suivant.

  5. Dans la boîte de dialogue Partitions, sélectionnez Source de données partitionnée pour partitionner la source de données, puis cliquez sur Ajouter.

  6. Dans la boîte de dialogue Partition, cliquez sur Modifier.

  7. Dans la boîte de dialogue Propriétés des liaisons de données, sous l’onglet Fournisseur, sélectionnez Microsoft OLE DB Provider for SQL Server comme fournisseur pour votre source de données, puis cliquez sur Suivant.

  8. Dans la boîte de dialogue Propriétés des liaisons de données, sous l’onglet Connexion, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Sélectionnez ou tapez un nom de serveur | Sélectionner un nom de serveur dans la liste déroulante, ou taper l’emplacement du serveur qui héberge la base de données à laquelle vous voulez accéder.
    Actualiser | Actualiser la liste des serveurs.
    Utiliser la sécurité intégrée de Windows NT | Ne pas utiliser cette option. Commerce Server ne prend pas en charge l’authentification Windows NT.
    Utiliser un nom utilisateur et un mot de passe spécifiques | Fournir un nom d’utilisateur et un mot de passe pour authentifier vos informations d’ouverture de session de la source de données.
    Nom d’utilisateur | Taper l’identificateur d’utilisateur à utiliser pour l’authentification lorsque vous ouvrez une session de la source de données.
    Mot de passe | Taper le mot de passe à utiliser pour l’authentification lorsque vous ouvrez une session de la source de données.
    Mot de passe vide | Activer le fournisseur spécifié afin de renvoyer un mot de passe vide dans la chaîne de connexion.
    Autoriser l’enregistrement du mot de passe | Permettre l’enregistrement du mot de passe avec la chaîne de connexion. L’inclusion du mot de passe dans la chaîne de connexion dépend de la fonctionnalité de l’application appelante. S’il est enregistré, le mot de passe est renvoyé et est enregistré non masqué et non crypté.
    Sélectionnez la base de données sur le serveur | Taper le nom de la base de données vers laquelle vous mappez la source de données, ou sélectionner ce nom dans la liste déroulante.
    Joindre un fichier de base de données comme un nom de base de données | Ne pas utiliser cette option. Commerce Server ne prend pas en charge SQL Server version 6.5 ou antérieure.
    Utiliser le nom de fichier | Ne pas utiliser cette option. Commerce Server ne prend pas en charge SQL Server version 6.5 ou antérieure.
    Tester la connexion | Effectuer une tentative de connexion à la source de données spécifiée. Si la connexion échoue, vérifiez que les paramètres sont corrects. Les fautes d’orthographe et le non-respect de la casse peuvent faire échouer des connexions.

  9. Cliquez sur OK pour revenir à la boîte de dialogue Partition.

  10. Pour enregistrer la source de données et revenir à Commerce Server Manager, cliquez sur Terminer.

La source de données est enregistrée. Vous pouvez ajouter des partitions, des attributs personnalisés et des objets de données à la source de données.

Pour ajouter une nouvelle source de données Source compatible LDAPv3

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, cliquez avec le bouton droit sur Sources de données, puis cliquez sur Nouvelle source de données.

  2. Dans la boîte de dialogue Nouvelle source de données, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom de programmation de la source de données. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper le nom à afficher pour la source de données. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper une description pour la source de données. La description ne peut pas excéder 127 caractères Unicode.

  3. Cliquez sur Suivant.

  4. Dans la boîte de dialogue Source de données, dans la liste déroulante Type de source, sélectionnez Source compatible LDAPv3, puis cliquez sur Suivant.

  5. Dans la boîte de dialogue Partitions, cliquez sur Source de données partitionnée pour partitionner la source de données, puis cliquez sur Ajouter.

  6. Dans la boîte de dialogue Partition, cliquez sur Modifier.

  7. Dans la boîte de dialogue Chaîne de connexion LDAP, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Serveur | Taper le nom du serveur qui héberge la source LDAP.
    Port | Taper le nom du port. Par défaut, il s’agit du port 389.

  8. Cliquez sur OK pour revenir à la boîte de dialogue Partition.

  9. Dans la boîte de dialogue Partition, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Partition par défaut | Définir cette partition comme partition par défaut.
    Nom d’utilisateur | Taper le nom d’utilisateur que vous utilisez pour accéder à la source LDAP. Si vous utilisez un serveur Active Directory, tapez le nom d’utilisateur sous la forme domaine\nom_utilisateur.
    Mot de passe | Taper le mot de passe que vous utilisez pour accéder à la source LDAP.

  10. Cliquez sur Suivant pour ouvrir la boîte de dialogue Attributs système.

  11. Dans la boîte de dialogue Attributs système, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    URL parente | Taper l’emplacement où vous voulez que vos données soient stockées dans l’arborescence LDAP.
    Utiliser les mêmes informations d’identification pour tous les utilisateurs | Spécifier que la ressource Profiles utilise toujours les mêmes informations d’identification lors de la liaison aux sources LDAP. Si cette option n’est pas sélectionnée, la ressource Profiles utilise les informations d’identification de l’utilisateur en cours.
    Autoriser la liaison simple | Envoyer le mot de passe en texte clair. Cette option est moins sécurisée, mais elle est requise par certains services d’annuaire.
    Conteneur dynamique | Se connecter à une banque dynamique comme Internet Locator Service (ILS).
    Un niveau | Définir le répertoire actuel comme étendue de recherche par défaut.
    Sous-arborescence | Définir les répertoires et sous-répertoires actuels comme étendue de recherche par défaut.
    Nom du domaine | Taper le nom de domaine du serveur si vous utilisez Active Directory.
    Identifier | Rechercher le nom du domaine.

  12. Cliquez sur Suivant.

  13. Cliquez sur OK pour revenir à la boîte de dialogue Partition.

  14. Pour enregistrer la source de données et revenir à Commerce Server Manager, cliquez sur Terminer.

La source de données est enregistrée. Vous pouvez ajouter des partitions, des attributs personnalisés et des objets de données à la source de données.

Pour ajouter un attribut personnalisé à une partition de sources de données

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Sources de données, cliquez avec le bouton droit sur la source de données contenant la partition pour laquelle vous voulez ajouter un attribut personnalisé, puis cliquez sur Propriétés.

  2. Dans la boîte de dialogue Propriétés, sous l’onglet Partitions, sélectionnez la partition pour laquelle vous voulez ajouter un attribut personnalisé, puis cliquez sur Modifier.

  3. Dans la boîte de dialogue Partitions, sous l’onglet Attributs personnalisés, cliquez sur Nouveau pour ajouter des attributs à la source de données.

  4. Dans la boîte de dialogue Attribut personnalisé, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom de programmation pour l’attribut. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper le nom à afficher pour l’attribut. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper une description pour l’attribut. La description ne peut pas excéder 127 caractères Unicode.
    Valeur | Taper une valeur pour l’attribut.

  5. Cliquez sur OK pour enregistrer l’attribut.

  6. Cliquez sur OK pour enregistrer les informations relatives à la partition.

  7. Pour revenir à Commerce Server Manager, cliquez sur Terminer.

La source de données est enregistrée avec l’attribut personnalisé.

Voir aussi

À propos de la ressource Profiles

Ajout d’un nouvel objet de données

Ajout d’un nouveau membre de données

Gestion des sources de données


Ajout d'un nouvel objet de données

Ajout d’un nouvel objet de données

La ressource Profiles permet d’ajouter un objet de données à une source de données. Vous sélectionnez la table de la base de données (ou la classe de la source LDAP) contenant la colonne dans laquelle vous souhaitez stocker les données collectées pour une propriété dans une définition de profil.

Avant d’utiliser la ressource Profiles pour créer un objet de données, vous devez créer une source de données. La ressource Profiles ne modifiera pas la banque de données sous-jacente. Vous devez apporter les modifications directement dans la base de données ou la banque de données LDAP.

Pour ajouter un nouvel objet de données

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Sources de données, développez la source de données à laquelle vous ajoutez un objet de données, cliquez avec le bouton droit sur Objets de données, puis cliquez sur Nouvel objet de données.

  2. Dans la boîte de dialogue Nouvel objet de données, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de l’objet | Sélectionner dans la liste déroulante l’objet de données correspondant au nom d’une table ou d’une classe LDAP dans la banque de données sous-jacente.
    Nom complet | Taper le nom à afficher pour l’objet de données. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper une description pour l’objet de données. La description ne peut pas excéder 127 caractères Unicode.

  3. Cliquez sur OK.

L’objet de données est enregistré. Vous pouvez ajouter des membres de données à l’objet de données ou l’utiliser pour mapper une définition de profil vers une colonne de base de données (ou une classe LDAP). Vous devez ajouter des membres de données avec lesquels mapper les propriétés de profil.

Voir aussi

À propos de la ressource Profiles

Ajout d’une nouvelle source de données

Ajout d’un nouveau membre de données

Gestion des sources de données


Ajout d'un nouveau membre de données

Ajout d’un nouveau membre de données

La ressource Profiles permet d’ajouter un membre de données à un objet de données en sélectionnant la colonne dans une table exposée de la base de données (ou l’attribut dans une classe exposée de la source LDAP) dans laquelle vous souhaitez stocker les données collectées pour une propriété dans une définition de profil.

Lorsque vous définissez une propriété dans une définition de profil, vous mappez la propriété contenant le membre de données vers la colonne d’une table de base de données (ou un attribut d’une classe LDAP) qu’elle expose. Lorsqu’un utilisateur entre des données dans une propriété d’une définition de profil sur votre site Web, ces données sont stockées dans la colonne de base de données ou l’attribut LDAP désigné(e). La ressource Profiles ne modifie pas la banque de données sous-jacente. Vous devez apporter les modifications directement dans la base de données ou la banque de données LDAP.

Pour ajouter un membre de données

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Sources de données, développez la source de données contenant l’objet de données auquel vous voulez ajouter un membre de données, développez Objets de données, cliquez avec le bouton droit sur l’objet de données auquel vous voulez ajouter un membre de données, puis cliquez sur Nouveau membre de données.

  2. Dans la boîte de dialogue Nouveau membre de données, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de membre Sélectionner un nom de membre de données disponible dans la liste. Les membres de données non disponibles ont déjà été ajoutés à un objet de données et sont estompés. Les membres de données de la liste portent le même nom que les colonnes ou les attributs LDAP de la banque de données sous-jacente vers laquelle ils sont mappés.

    Si vous souhaitez ajouter des membres de données supplémentaires (ou si la liste ne contient pas de membres de données disponibles), vous devez créer une colonne ou un attribut dans la banque de données sous-jacente. Le nom du membre de données doit correspondre au nom de la colonne ou de l’attribut vers lequel il est mappé. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper le nom à afficher dans l’application pour le membre de données. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper une description pour le membre de données. La description ne peut pas excéder 127 caractères Unicode.
    Type Sélectionner un type de données pour le membre de données. Le type de données doit être identique à la propriété que vous allez mapper avec le membre de données. Les types de données suivants sont pris en charge :
    • Binaire

    • Booléen

    • Devise

    • DateHeure

    • Nombre

    • Chaîne
    À valeurs multiples | Activer la collection des valeurs multiples associées au membre de données.
    Requis | Spécifier que cette propriété est requise sur votre site Web et dans Business Desk. Cependant, cet attribut n’est pas appliqué par la ressource Profiles.
    Indexé | Indexer les données sur ce membre de données.
    Clé primaire | Définir ce membre de données comme clé primaire. Vous devez définir un membre de données en tant que clé primaire dans chaque objet de données.

  3. Cliquez sur Ajouter. Le membre de données apparaît dans la liste des membres de données de la boîte de dialogue Nouveau membre de données.

  4. Cliquez sur Terminer.

Le membre de données apparaît alors dans l’écran des membres de données.

Voir aussi

À propos de la ressource Profiles

Configuration de la ressource Profiles

Ajout d’une nouvelle définition de profil

Exemple : Création d’une définition de profil avec deux sources de données

Gestion des sources de données


Ajout d'une nouvelle définition de profil

Ajout d’une nouvelle définition de profil

La ressource Profiles permet de créer des définitions de profils. Le chef d’entreprise peut par exemple vous demander de créer un profil afin de rendre d’autres données disponibles depuis votre site Web et depuis Commerce Server Business Desk. Vous pouvez créer une définition de profil qui soit automatiquement mappée vers un objet de données. Vous pouvez également créer une définition de profil qui ne soit pas mappée vers un objet de données. Vous utilisez des définitions de profils pour définir les données que vous collectez sur les utilisateurs qui visitent votre site Web.

Vous pouvez créer des attributs personnalisés pour une définition de profil. Vous pouvez par exemple ajouter un attribut personnalisé nommé defaultParentURL qui contrôle l’emplacement de stockage des profils dans la banque de données LDAP sous-jacente. Les attributs personnalisés des propriétés de profil sont des espaces réservés permettant de stocker des informations spécifiques aux applications. Ces paires attribut/valeur doivent être de type chaîne. Les attributs personnalisés de définition de profil sont uniquement disponibles dans la ressource Profiles.

Pour ajouter une nouvelle définition de profil qui soit mappée vers un objet de données

Pour ajouter une nouvelle définition de profil qui ne soit pas mappée vers un objet de données

Pour ajouter un attribut personnalisé à une définition de profil

Pour ajouter une nouvelle définition de profil qui soit mappée vers un objet de données

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Sources de données, développez la source de données contenant l’objet de données vers lequel vous voulez mapper la nouvelle définition de profil, développez Objets de données, cliquez avec le bouton droit sur l’objet de données vers lequel la nouvelle définition de profil sera mappée, sélectionnez Nouveau, puis cliquez sur Nouveau profil.

  2. Dans la boîte de dialogue Nouvelle définition de profil, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom de programmation pour la nouvelle définition de profil. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper le nom à afficher pour la nouvelle définition de profil. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper une description pour la nouvelle définition de profil. La description ne peut pas excéder 127 caractères Unicode.

  3. Pour fermer la boîte de dialogue, cliquez sur OK.

  4. Cliquez sur Terminer.

La nouvelle définition de profil apparaît alors dans la liste des définitions de profils disponibles dans Commerce Server Manager. La nouvelle définition de profil contient les propriétés mappées vers les membres de données de l’objet de données à partir duquel vous avez créé la définition de profil.

Pour ajouter une définition de profil qui ne soit pas mappée vers un objet de données

  1. Développez Commerce Server Manager, Profiles, Catalogue de profils, cliquez avec le bouton droit sur Définitions de profils, puis sélectionnez Nouveau profil.

  2. Dans la boîte de dialogue Nouvelle définition de profil, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom de programmation pour la nouvelle définition de profil. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper le nom à afficher pour la nouvelle définition de profil. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper une description pour la nouvelle définition de profil. La description ne peut pas excéder 127 caractères Unicode.

  3. Pour fermer la boîte de dialogue, cliquez sur OK.

  4. Cliquez sur Terminer.

La nouvelle définition de profil apparaît alors dans la liste des définitions de profils disponibles dans Commerce Server Manager. La nouvelle définition de profil ne contient pas de propriétés et n’est donc pas mappée vers une source de données. Vous devez ajouter des propriétés à la nouvelle définition de profil.

Pour ajouter un attribut personnalisé à une définition de profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, cliquez avec le bouton droit sur la définition de profil à laquelle vous voulez ajouter un attribut personnalisé, puis cliquez sur Propriétés.

  2. Dans la boîte de dialogue Propriétés, sous l’onglet Attributs personnalisés, cliquez sur Nouveau pour afficher la boîte de dialogue Attribut personnalisé.

  3. Dans la boîte de dialogue Attribut personnalisé, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom de programmation pour le nouvel attribut. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper le nom à afficher pour l’attribut. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper une description pour l’attribut. La description ne peut pas excéder 127 caractères Unicode.
    Valeur | Taper la valeur de l’attribut.

  4. Cliquez sur OK.

  5. Pour revenir à Commerce Server Manager, cliquez sur OK.

La définition de profil est enregistrée avec le nouvel attribut personnalisé.

Voir aussi

À propos de la ressource Profiles

Ajout d’une nouvelle source de données

Ajout de propriétés à des définitions de profils

Ajout d’entrées du glossaire du site

Gestion des définitions de profils


Ajout de propriétés à des définitions de profils

La ressource Profiles permet d’ajouter des propriétés à une définition de profil. Les propriétés déterminent les données collectées avec la définition de profil. Par exemple, si vous créez une définition de profil Adresse, vous pouvez lui ajouter une définition de propriété appelée « Ville ». (Vous pouvez également ajouter des propriétés à une définition de profil au moyen du module Définition de profil de Commerce Server Business Desk.) Pour plus d’informations sur l’utilisation du module Définition de profil, consultez Utilisateurs Business Desk.

Vous pouvez créer des groupes de propriétés pour organiser les propriétés. Par exemple, si vous ajoutez 50 propriétés à une définition de profil Utilisateur qui se rapportent à quatre catégories distinctes telles que le style de vie, l’opinion, la formation et les préférences, vous pouvez créer quatre groupes de propriétés, une pour chaque catégorie, et placez les propriétés relevant de chaque catégorie dans le groupe de propriétés approprié. Dans la ressource Profiles, vous pouvez choisir d’afficher ou de masquer les propriétés de chaque groupe de propriétés.

La ressource Profiles affecte à chaque propriété des attributs qui stockent les caractéristiques de la propriété, telles que le nom (Ville) et le type (Chaîne) de la propriété. Parallèlement aux attributs de propriétés affectés par la ressource Profiles, vous pouvez également définir des attributs personnalisés pour les propriétés. Vous pouvez par exemple créer un attribut personnalisé qui contrôle la façon dont une propriété est utilisée sur un site Web.

Pour ajouter une nouvelle propriété à une définition de profil

Pour ajouter un nouveau groupe de propriétés à une définition de profil

Pour ajouter un attribut personnalisé à une propriété

Pour ajouter une nouvelle propriété à une définition de profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, puis cliquez sur la définition de profil à laquelle vous voulez ajouter une propriété.

  2. Dans l’écran de définition de profil, dans la liste Propriétés, sélectionnez le groupe de propriétés auquel vous voulez associer la propriété que vous ajoutez, puis cliquez sur Ajouter.

  3. Dans la boîte de dialogue Ajouter - Dialogue de page Web, sélectionnez une nouvelle propriété, puis cliquez sur OK.

  4. Dans l’écran de définition de profil, dans la section Attributs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom de programmation de la propriété. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper le nom à afficher dans Business Desk. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper une description pour la propriété. La description ne peut pas excéder 127 caractères Unicode.
    Type | Sélectionner le type de propriété dans la liste déroulante. Le type de propriété par défaut est Chaîne.
    Référence de type | Obligatoire pour les entrées du glossaire du site et les types de profils. Sélectionner l’entrée du glossaire du site ou le profil que vous ajoutez à la définition de propriété, en cliquant sur le bouton de sélection [...]. Cette fonctionnalité n’est disponible que si vous avez sélectionné le type de propriété Entrée du glossaire du site ou Profil.

  5. Dans l’écran de définition de profil, dans la section Attributs avancés, cliquez sur Activé pour indiquer que cette propriété est disponible dans Business Desk. Les propriétés inactives ne sont pas affichées dans Business Desk.

  6. Dans la zone Mapper vers les données, cliquer sur le bouton de sélection [...] pour ouvrir la boîte de dialogue Sélecteur de source de données.

  7. Dans la boîte de dialogue Sélecteur de source de données, développez la source de données contenant l’objet de données contenant lui-même le membre de données avec lequel vous voulez mapper la propriété.

  8. Développez l’objet de données contenant le membre de données avec lequel vous voulez mapper la propriété, sélectionnez le membre de données, puis cliquez sur OK.

  9. Dans l’écran de définition de profil, dans la section Attributs avancés, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Type de clé | Sélectionner un type de clé dans la liste déroulante. Chaque définition de profil requiert une propriété qui soit une clé primaire et une propriété qui soit une clé de jointure, ou une propriété qui soit une double clé (à la fois une clé primaire et une clé de jointure).
    Requis | Spécifier que cette propriété est requise sur votre site Web et dans Business Desk. Cependant, cet attribut n’est pas appliqué par la ressource Profiles. Cet attribut est en lecture seule si vous avez sélectionné un type de clé.
    Exportée | Indiquer si cette propriété est importée dans Data Warehouse. Seules les propriétés mappées peuvent être exportées. Vous ne pouvez pas exporter des propriétés à valeurs multiples et de type Booléen, ni des propriétés de type binaire, chaîne de type long ou mot de passe.
    Différer le chargement du cache | Indiquer que cette propriété ne sera pas chargée initialement lors de la récupération du profil, mais qu’elle sera chargée lorsqu’elle sera sollicitée.
    À valeurs multiples | Activer la collection des valeurs multiples associées à cette propriété. Cette valeur n’est pas disponible si vous avez sélectionné un type de clé pour la propriété.
    Possibilité de recherche | Indiquer que cette propriété est indexée dans la banque de données sous-jacente et qu’elle peut faire l’objet de recherches via la fonction Rechercher par.
    RDN (Relative Distinguished Name) | Taper le RDN (Relative Distinguished Name) pour une banque de répertoires. Définissez cette valeur si la propriété est mappée vers un attribut RDN d’une classe LDAP dans la banque sous-jacente.
    Clé de hachage | Cette valeur est en lecture seule. Elle indique si cette propriété sera utilisée pour répartir des instances du profil entre plusieurs partitions.

  10. Cliquez sur Appliquer.

  11. Pour enregistrer la définition de profil, cliquez sur [image] dans la barre d’outils.

La définition de profil est enregistrée avec la nouvelle propriété.

Pour ajouter un nouveau groupe de propriétés à une définition de profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, puis cliquez sur la définition de profil à laquelle vous voulez ajouter un groupe de propriétés.

  2. Dans l’écran de définition de profil, cliquez sur Ajouter.

  3. Dans la boîte de dialogue Ajouter - Dialogue de page Web, sélectionnez l’option un nouveau groupe, puis cliquez sur OK.

  4. Dans l’écran de définition de profil, dans la section Attributs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom de programmation du groupe de propriétés. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper le nom à afficher dans Business Desk. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper une description de la propriété. La description ne peut pas excéder 127 caractères Unicode.

  5. Cliquez sur Appliquer.

  6. Pour enregistrer la définition de profil, cliquez sur Enregistrer dans la barre d’outils.

La définition de profil est enregistrée avec le nouveau groupe de propriétés. Vous pouvez placer des propriétés existantes dans le groupe ou ajouter de nouvelles propriétés au groupe.

Pour ajouter un attribut personnalisé à une propriété

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, puis cliquez sur la définition de profil contenant la propriété à laquelle vous voulez ajouter un attribut personnalisé.

  2. Dans l’écran de définition de profil, dans la liste Propriétés, sélectionnez la propriété à laquelle vous voulez ajouter un attribut personnalisé.

  3. Dans l’écran de définition de profil, dans la section Attributs personnalisés, cliquez sur Nouvelle.

  4. Dans l’écran de définition de profil, dans la section Attributs personnalisés, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom de programmation pour l’attribut personnalisé. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper le nom à afficher pour l’attribut. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper une description pour l’attribut. La description ne peut pas excéder 127 caractères Unicode.
    Valeur | Taper la valeur de l’attribut.

  5. Cliquez sur Accepter, puis sur Appliquer.

  6. Pour enregistrer la définition de profil, cliquez sur Enregistrer dans la barre d’outils.

La définition de profil est enregistrée avec l’attribut personnalisé.

Voir aussi

Définitions de profils

Ajout d’un nouveau membre de données

Ajout d’une nouvelle définition de profil

Ajout d’une définition de profil à une définition de profil

Ajout d’entrées du glossaire du site


Validation de définitions de profils

Vous utilisez la ressource Profiles pour vérifier que les membres de données vers lesquels vous mappez les définitions de profils sont valides. En validant les définitions de profils, vous vous assurez que les données collectées avec ces définitions sur votre site Web seront stockées dans des colonnes de base de données (ou des attributs LDAP) existantes.

Remarque

  • Les mécanismes de validation essaient d’écrire, puis de relire des données pour chaque propriété de la définition de profil. Ces mécanismes ne sont pas affectés par les contraintes qui pourraient exister dans la banque de données sous-jacente. Ainsi, elles tenteront parfois d’écrire des données qui ne respectent pas une contrainte. Vous recevrez alors un avertissement de validation. Vous devez examiner avec un très grand soin les descriptions de l’avertissement afin de déterminer la validité du profil.

Pour valider une définition de profil

Pour valider toutes les définitions de profils d’un site

Pour valider une définition de profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, cliquez avec le bouton droit sur la définition de profil que vous voulez valider, puis cliquez sur Valider ce profil.

    Si la définition de profil est valide, la boîte de dialogue Profil valide apparaît. Cliquez sur OK.

    Si la définition de profil n’est pas valide, la boîte de dialogue Profil non valide apparaît.

  2. Pour poursuivre la validation, cliquez sur Oui, puis sur OK pour fermer la boîte de dialogue Profil non valide.

    Ou, pour arrêter la validation, cliquez sur Non, puis sur OK pour fermer la boîte de dialogue Profil non valide.

Pour valider toutes les définitions de profils d’un site

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, puis cliquez avec le bouton droit sur Définitions de profils.

  2. Cliquez sur Valider tous les profils.

    Si toutes les définitions de profils sont valides, la boîte de dialogue Profil valide apparaît. Cliquez sur OK.

    Si une définition de profil n’est pas valide, la boîte de dialogue Profil non valide apparaît.

  3. Pour poursuivre la validation (et ignorer la définition de profil non valide), cliquez sur Oui, puis sur OK pour fermer la boîte de dialogue Profil non valide.

    Ou, pour arrêter la validation, cliquez sur Non, puis sur OK pour fermer la boîte de dialogue Profil non valide.

Voir aussi

Ajout d’une nouvelle définition de profil

Ajout d’un nouveau membre de données

Ajout de propriétés à des définitions de profils

Gestion des définitions de profils

Gestion des propriétés de profil


Ajout d'une définition de profil à une définition de profil

Ajout d’une définition de profil à une définition de profil

La ressource Profiles permet d’associer des profils. (Vous pouvez également associer des profils au moyen du module Définition de profil de Commerce Server Business Desk.) Pour plus d’informations, consultez Ajout d’une définition de profil à une définition de profil.

Par exemple, vous pouvez ajouter trois propriétés à la définition de profil Objet utilisateur et les utiliser pour référencer trois instances de la définition de profil Adresse (adresse de facturation, adresse de livraison et adresse personnelle, par exemple). Vous pourrez ainsi utiliser la définition de profil Adresse pour collecter des informations sur l’adresse de l’utilisateur sur votre site Web, tout en stockant le nom du profil d’adresse de l’utilisateur dans le profil utilisateur de manière à ce que vous puissiez présenter ensemble les données des profils sur votre site Web et dans des rapports.

Pour ajouter une définition de profil à une définition de profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, puis cliquez sur la définition de profil à laquelle vous voulez ajouter une définition de profil.

  2. Dans l’écran de définition de profil, dans la liste Propriétés, développez le groupe de propriétés auquel vous voulez ajouter la nouvelle propriété, puis cliquez sur Ajouter.

  3. Dans la boîte de dialogue Ajouter -- Dialogue de page Web, sélectionnez une nouvelle propriété, puis cliquez sur OK.

  4. Dans l’écran de définition de profil, dans la section Attributs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom de programmation de la propriété. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper le nom complet à afficher dans Business Desk. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper une description pour la propriété. La description ne peut pas excéder 127 caractères Unicode.
    Type | Sélectionner Profil dans la liste déroulante Type.
    Référence de type | Ouvrir la boîte de dialogue Sélection de profil, en cliquant que le bouton de sélection [...]. Dans la liste Sélectionnez un profil, développez le Catalogue de profils, puis sélectionnez la définition de profil que vous voulez ajouter à la propriété.

  5. Cliquez sur OK, puis sur Appliquer.

    La définition de profil est affectée à la propriété.

  6. Pour enregistrer la définition de profil, cliquez sur Enregistrer dans la barre d’outils.

La définition de profil est enregistrée avec le changement de propriété.

Voir aussi

Définitions de profils

Ajout de propriétés à des définitions de profils

Ajout d’entrées du glossaire du site

Profile Objects (en anglais)

Profile Schema (en anglais)


Ajout d'entrées du glossaire du site

Ajout d’entrées du glossaire du site

La ressource Profiles permet d’ajouter de nouvelles entrées du glossaire du site à Commerce Server 2000. Vous pouvez également ajouter de nouvelles entrées au moyen du module Éditeur d’entrées du glossaire du site de Commerce Server Business Desk. Pour plus d’informations, consultez Ajout d’une entrée du glossaire du site.

Lorsque vous ajoutez une nouvelle entrée du glossaire du site Commerce Server, vous définissez des valeurs, appelées « entrées », pour l’entrée du glossaire du site. Les entrées du glossaire du site vous permettent de répertorier des valeurs spécifiques pour une propriété de profil. Après avoir créé une entrée du glossaire du site, vous pouvez l’affecter en tant que valeur d’une propriété de profil. Par exemple, vous créez une entrée du glossaire du site Couleur préférée avec les valeurs « bleu », « vert » et « violet ». Vous définissez ensuite une propriété de profil « Couleur préférée » de type « Entrée du glossaire du site » et vous lui attribuez l’entrée du glossaire du site « Couleur préférée ». Lorsque des utilisateurs sélectionnent une couleur pour la propriété de profil « Couleur préférée », ils sont limités aux choix répertoriés dans l’entrée du glossaire du site « Couleur préférée ». L’écran Éditeur d’entrées du glossaire du site de la ressource Profiles permet d’ajouter de nouvelles entrées du glossaire du site.

Vous devez avoir accès au fichier journal du dossier Profils pour pouvoir enregistrer des modifications des entrées du glossaire du site. Le chef d’entreprise doit également avoir accès au fichier journal du dossier Profils pour pouvoir enregistrer toute modification apportée dans le module Éditeur d’entrées du glossaire du site.

Vous pouvez créer des groupes d’entrées du glossaire du site pour organiser des entrées du glossaire du site dans l’écran Éditeur d’entrées du glossaire du site. Par exemple, outre l’entrée du glossaire du site « Couleur préférée », vous pouvez créer les entrées du glossaire du site suivantes avec leurs valeurs correspondantes et les regrouper au sein d’un groupe d’entrées du glossaire du site contenant les préférences utilisateur :

  • Marque (nommer la marque, générique)

  • Qualité (prix le plus faible, qualité la meilleure)

  • Achat (en ligne, catalogue, en magasin)

Pour ajouter une entrée du glossaire du site

Pour ajouter un groupe d’entrées du glossaire du site

Pour ajouter une entrée du glossaire du site

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, puis cliquez sur Entrées du glossaire du site.

  2. Dans l’écran Éditeur d’entrées du glossaire du site, dans la liste Structure d’entrée du glossaire du site, sélectionnez le groupe d’entrées du glossaire du site dans lequel vous voulez créer la nouvelle entrée du glossaire du site, puis cliquez sur Ajouter.

  3. Dans la boîte de dialogue Ajouter - Dialogue de page Web, sélectionnez l’option une nouvelle entrée du glossaire du site, puis cliquez sur OK.

  4. Dans l’écran Éditeur d’entrées du glossaire du site, dans la section Attributs de l’entrée du glossaire du site, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom de programmation de l’entrée du glossaire du site. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper le nom à afficher pour l’entrée du glossaire du site. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper une description pour l’entrée du glossaire du site. La description ne peut pas excéder 127 caractères Unicode.

  5. Pour ajouter une valeur à l’entrée du glossaire du site, dans la section Entrées du glossaire, cliquez sur Nouvelle, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de la valeur | Taper le nom de programmation de la première valeur. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper le nom à afficher pour la valeur. Le nom complet ne peut pas excéder 127 caractères Unicode.

  6. Cliquez sur Accepter pour accepter la valeur.

  7. Pour ajouter une autre valeur à l’entrée du glossaire du site, cliquez sur Nouvelle, tapez le nom et le nom complet de la valeur, cliquez sur Accepter, puis sur Appliquer.

  8. Pour enregistrer les entrées du glossaire du site, cliquez sur Enregistrer dans la barre d’outils.

Les valeurs sont enregistrées avec la nouvelle entrée du glossaire de site créée.

Pour ajouter un groupe d’entrées du glossaire du site

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, puis cliquez sur Entrées du glossaire du site.

  2. Dans l’écran Éditeur d’entrées du glossaire du site, dans la liste Structure des entrées du glossaire du site, cliquez sur Ajouter.

  3. Dans la boîte de dialogue Ajouter, sélectionnez un nouveau groupe, puis cliquez sur OK.

  4. Dans l’écran Éditeur d’entrées du glossaire du site, dans la section Attributs de l’entrée du glossaire du site, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom de programmation du groupe d’entrées du glossaire du site. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper le nom à afficher pour le groupe d’entrées du glossaire du site. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper une description pour le groupe d’entrées du glossaire du site. La description ne peut pas excéder 127 caractères Unicode.

  5. Cliquez sur Appliquer.

  6. Pour enregistrer le groupe d’entrées du glossaire du site, cliquez sur Enregistrer dans la barre d’outils.

Voir aussi

À propos de la ressource Profiles

Ajout d’une entrée du glossaire du site à une définition de propriété de profil

Gestion des entrées du glossaire du site


Ajout d'une entrée du glossaire du site à une définition de profil

Ajout d’une entrée du glossaire du site à une définition de profil

La ressource Profiles permet d’ajouter une entrée du glossaire du site à une définition de profil. (Vous pouvez également effectuer cette opération au moyen du module Définition de profil de Commerce Server Business Desk.) Pour plus d’informations, consultez Ajout d’une entrée du glossaire du site à une définition de profil

Lorsque vous attribuez une entrée du glossaire du site à une propriété de profil, une liste déroulante contenant les valeurs de l’entrée du glossaire du site pour cette propriété sera proposée aux utilisateurs sur votre site Web. La sélection de l’utilisateur dans cette liste est stockée dans le profil de cet utilisateur en tant que type chaîne.

Pour ajouter une entrée du glossaire du site à une définition de profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, puis cliquez sur la définition de profil à laquelle vous voulez ajouter une entrée du glossaire du site.

  2. Dans l’écran de définition de profil, dans la liste Propriétés, développez le groupe de propriétés contenant la propriété à laquelle vous voulez attribuer l’entrée du glossaire du site.

  3. Dans l’écran de définition de profil, dans la section Attributs, sélectionnez Entrée du glossaire du site dans la liste déroulante Type.

  4. Dans la zone Référence de type, cliquez sur le bouton de sélection [...].

  5. Dans la boîte de dialogue Sélection de l’entrée du glossaire du site, dans la liste Sélectionner une entrée du glossaire du site, développez le groupe d’entrées du glossaire du site contenant l’entrée du glossaire du site que vous voulez attribuer à la propriété, puis sélectionnez l’entrée du glossaire du site.

  6. Cliquez sur OK, puis sur Appliquer.

    L’entrée du glossaire du site est attribuée à la propriété.

  7. Pour enregistrer la définition de profil, cliquez sur Enregistrer dans la barre d’outils.

La définition de profil est enregistrée avec le changement de propriété.

Voir aussi

À propos de la ressource Profiles

Ajout de propriétés à des définitions de profils

Ajout d’entrées du glossaire du site

Gestion des entrées du glossaire du site


Exemple: Création d'une définition de profil avec deux sources de données

Exemple : Création d’une définition de profil avec deux sources de données

L’un des avantages de l’utilisation d’Active Directory pour stocker les données des profils utilisateurs est que l’authentification des utilisateurs est plus sûre et spécifique. Il est préférable de stocker uniquement les données non volatiles dans Active Directory et de stocker les données fréquemment mises à jour dans SQL Server.

L’exemple présenté dans cette section est un scénario de création d’une définition de profil utilisateur qui stocke des données à la fois dans une base de données SQL Server et dans une base de données Active Directory. Cet exemple se limite à décrire le processus ; il ne s’agit en aucun cas d’un véritable profil que vous devez utiliser. Vous devez concevoir vos définitions de profils en fonction de vos propres besoins commerciaux

Il est supposé dans cet exemple que vous avez installé et configuré les contrôleurs de domaine Active Directory pour votre site Commerce Server 2000.

Pour plus d’informations sur la planification de l’intégration à Active Directory, consultez Planification de l’intégration à Active Directory.

Cette section contient les rubriques suivantes :

  • Étape 1 : Créer la source de données ProfileService_ADSource

  • Étape 2 : Ajouter l’objet de données Objet utilisateur AD

  • Étape 3 : Ajouter des membres de données à l’objet utilisateur AD

  • Étape 4 : Créer la définition de profil Utilisateur AD-SQL

  • Étape 5 : Ajouter des groupes de propriétés à la définition de profil Utilisateur AD-SQL

  • Étape 6 : Ajouter des propriétés SQL Server à la définition de profil Utilisateur AD-SQL


Étape 1 : Créer la source de données ProfileService_ADSource

Pour ajouter une nouvelle source de données Source compatible LDAPv3

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, cliquez avec le bouton droit sur Sources de données, puis cliquez sur Nouvelle source de données.

  2. Dans la boîte de dialogue Nouvelle source de données, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper UPM_ADSource.
    Nom complet | Taper ProfileService_ADSource.
    Description | Taper Source de données Active Directory.

    La figure suivante présente la boîte de dialogue Nouvelle source de données.

    Boîte de dialogue Nouvelle source de données

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  3. Cliquez sur Suivant.

  4. Dans la boîte de dialogue Source de données, dans la liste déroulante Type de source, sélectionnez Source compatible LDAPv3, puis cliquez sur Suivant.

  5. Dans la boîte de dialogue Partitions, assurez-vous que la case à cocher Source de données partitionnée n’est pas activée, puis cliquez sur Ajouter.

  6. Dans la boîte de dialogue Partition, cliquez sur Modifier.

  7. Dans la boîte de dialogue Chaîne de connexion LDAP, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Serveur | Taper le nom du contrôleur de domaine Active Directory. Dans cet exemple, le contrôleur de domaine est nommé MSCS01.
    Port | Laissez cette zone non renseignée (sauf si vous utilisez une valeur différente de 389).

  8. Cliquez sur OK.

  9. Dans la boîte de dialogue Partition, assurez-vous que la case à cocher Partition par défaut n’est pas activée. La figure suivante illustre la boîte de dialogue Partition.
    Boîte de dialogue Partition

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  10. Dans la boîte de dialogue Partition, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’utilisateur | Taper votre nom de domaine et d’utilisateur Microsoft Windows pour le domaine Active Directory. Utilisez le format domaine\nom_utilisateur.
    Mot de passe | Taper votre mot de passe de domaine Windows.

  11. Cliquez sur Suivant.

  12. Dans la boîte de dialogue Attributs système, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    URL parente | Taper l’emplacement sur le serveur Active Directory où vous voulez que vos données Active Directory soient stockées par rapport à la racine.
    Nom du domaine | Taper le nom du domaine du serveur Active Directory.

Remarque

  • Ne modifiez pas les paramètres par défaut des autres options de la boîte de dialogue.

  • Vous voudrez peut-être néanmoins sélectionner l’option Utiliser les mêmes informations d’identification pour tous les utilisateurs. Cette option force la ressource Profiles à utiliser les informations d’identification que vous avez entrées à l’étape 6 pour toutes ses communications avec le serveur Active Directory. Si cette option n’est pas sélectionnée, la ressource Profiles utilise les informations d’identification du processus dans lequel il est en cours d’exécution.

    La figure suivante présente la boîte de dialogue Attributs système.

    Boîte de dialogue Attributs système

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  13. Cliquez sur Suivant.

  14. Dans la boîte de dialogue Attributs personnalisés, cliquez sur Terminer.

  15. Dans la boîte de dialogue Partitions, cliquez sur Terminer.

La partition ProfileService_ADStore apparaît comme nouveau nœud sous Sources de données dans Commerce Server Manager.


Étape2: Ajouter l'objet de données Objet utilisateur AD

Étape 2 : Ajouter l’objet de données Objet utilisateur AD

Vous créez un objet de données de profil pour mapper une propriété de profil vers la classe d’utilisateur Active Directory.

Pour ajouter un nouvel objet de données

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Sources de données, développez la source de données ProfileService_ADSource que vous venez de créer, cliquez avec le bouton droit sur Objets de données, puis cliquez sur Nouvel objet de données.

  2. Dans la boîte de dialogue Nouvel objet de données, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de l’objet | Sélectionner user. Il s’agit de la classe d’utilisateur Active Directory.
    Nom complet | Taper Objet utilisateur AD.

    La figure suivante présente la boîte de dialogue Nouvel objet de données.

    Boîte de dialogue Nouvel objet de données

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  3. Cliquez sur OK.

L’objet de données Objet utilisateur AD est ajouté à la source de données ProfileService_ADSource.


Étape3: Ajouter des membres de données à l'objet de données Objet utilisateur AD

Étape 3 : Ajouter des membres de données à l’objet de données Objet utilisateur AD

Vous créez un membre de données de profil pour mapper un attribut de propriété de profil vers une colonne d’une table de la base de données vers laquelle vous avez mappé la source de données. Dans cet exemple, nous allons ajouter neuf membres de données à l’objet de données Objet utilisateur AD créé à l’étape précédente. Ces membres concernent le nom d’utilisateur, le mot de passe utilisateur et le nom commun.

Pour ajouter des membres de données

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Sources de données, ProfileService_ADSource, cliquez avec le bouton droit sur Objet utilisateur AD, puis cliquez sur Nouveau membre de données.

  2. Dans la boîte de dialogue Nouveau membre de données, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de membre | Sélectionner cn.
    Nom complet | Taper Nom commun.

    La figure suivante présente la boîte de dialogue Nouveau membre de données.

    Boîte de dialogue Nouveau membre de données

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  3. Cliquez sur Ajouter.

    Par défaut, le membre de données cn est marqué comme Nécessaire, Indexé et Clé primaire.

  4. Répétez cette procédure pour ajouter les membres de données suivants :
    Nom de membre | Nom complet | Type
    GivenName | Prénom | String
    Initials | Initiales | String
    sn | Nom | String
    StreetAdress | Adresse | String
    l | Ville | String
    St | État/Région | String
    PostalCode | Code postal | String
    co | Pays | String

  5. Cliquez sur Terminé.

Une fois que vous avez ajouté ces membres de données, votre écran doit se présenter comme illustré dans la figure suivante.

Écran AD Objet Utilisateur

Cliquez sur l'illustration pour l'agrandir ou la réduire.


Étape4: Créer la définition de profil Utilisateur

Étape 4 : Créer la définition de profil Utilisateur AD-SQL

Vous utilisez l’objet de données Objet utilisateur AD pour créer votre définition de profil personnalisée. Cette définition de profil collectera les informations du profil utilisateur. La plupart des propriétés seront mappées vers une base de données SQL Server. Le nom d’utilisateur et le mot de passe seront mappés vers Active Directory.

Vous créez ce profil multi-sources en sélectionnant les propriétés que vous souhaitez et en les mappant vers les membres de données de différentes sources de données.

Pour créer une définition de profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Sources de données, ProfileService_ADSource, Objets de données, cliquez avec le bouton droit sur Objet utilisateur AD, pointez sur Nouveau, puis cliquez sur Nouveau profil.

  2. Dans la boîte de dialogue Nouvelle définition de profil, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper Utilisateur_AD_SQL.
    Nom complet | Taper Utilisateur AD-SQL.
    Description | Taper Définition de profil utilisateur utilisant des sources AD et SQL.

    La figure suivante présente la boîte de dialogue Nouvelle définition de profil.

    Boîte de dialogue Nouvelle définition de profil

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  3. Cliquez sur Suivant.

  4. Dans la boîte de dialogue Attributs personnalisés, cliquez sur Terminer. (Aucun attribut personnalisé n’est créé pour cet exemple.)

La nouvelle définition de profil apparaît dans la liste des définitions de profils disponibles dans Commerce Server Manager.


Étape5: Ajouter des groupes de propriétés à la définition de profil Utilisateur

Étape 5 : Ajouter des groupes de propriétés à la définition de profil Utilisateur AD-SQL

Pour faciliter la lecture de votre définition de profil, vous pouvez créer des groupes distincts pour les propriétés Active Directory et les propriétés SQL Server. Avant d’ajouter les propriétés SQL Server à la définition de profil Utilisateur AD-SQL, vous devez créer les groupes de données.

Pour ajouter des groupes de données à un profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, puis cliquez sur Utilisateur AD_SQL. L’écran de définition de profil s’affiche dans le volet droit.
    Définition de profil utilisateur AD-SQL

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  2. Cliquez sur Ajouter.

  3. Dans la boîte de dialogue Ajouter -- Dialogue de page Web, sélectionnez un nouveau groupe, puis cliquez sur OK.

  4. Dans la section Attributs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper GroupeAD.
    Nom complet | Taper Active Directory.

    La figure suivante illustre la section Attributs.

    Définition de profil utilisateur AD-SQL avec un nouveau groupe de propriétés

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  5. Cliquez sur Appliquer.

  6. Dans la liste Propriétés, sélectionnez Active Directory, le groupe que vous venez de créer, puis cliquez sur le bouton représentant une flèche vers le haut qui se trouve en bas de la boîte de dialogue. Cliquez sur ce bouton jusqu’à ce qu’Active Directory soit placé en haut de la liste Propriétés, au-dessus de toutes les autres propriétés.

  7. Cliquez sur la flèche de direction à gauche d’Active Directory de manière à ce qu’elle pointe vers le bas. Le nœud est alors développé et le groupe est prêt à accepter des propriétés.

  8. Cliquez sur la première propriété sous Active Directory. Si vous avez scrupuleusement suivi les étapes précédentes, il s’agit de la propriété Nom commun.

  9. Cliquez sur le bouton représentant une flèche vers le haut qui se trouve en bas de la boîte de dialogue. Le nom de la propriété apparaît en retrait sous Active Directory. La propriété est ainsi placée dans le groupe Active Directory.

  10. Pour chacune des propriétés restantes, sélectionnez son nom et cliquez sur le bouton représentant une flèche vers le haut. Votre liste Propriétés doit se présenter de la même manière que dans la figure suivante une fois toutes les propriétés placées dans le groupe.
    Attributs avancés de définition de profil utilisateur AD-SQL

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  11. Pour ajouter le groupe SQL Server à la définition de propriété, cliquez sur le bouton Ajouter.

  12. Dans la section Attributs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Type GroupeSQL.
    Nom complet | Taper SQL Server.

    La section Attributs doit se présenter comme illustré dans la figure suivante.

    Définition de profil utilisateur AD-SQL avec des propriétés

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  13. Cliquez sur Appliquer.

  14. Pour déplacer le nom de groupe SQL Server vers la gauche, cliquez sur le bouton représentant une flèche vers le bas qui se trouve en bas de la boîte de dialogue.

Les propriétés que vous avez ajoutées sont organisées dans les nouveaux groupes de propriétés.


Étape6: Ajouter des propriétés SQL Server à la définition de profil Utilisateur

Étape 6 : Ajouter des propriétés SQL Server à la définition de profil Utilisateur AD-SQL

Vous avez créé une définition de profil nommée Utilisateur AD-SQL composée de deux groupes de propriétés : Active Directory et SQL Server. Vous avez déjà ajouté les propriétés Active Directory. Vous devez maintenant ajouter les propriétés SQL Server.

Pour ajouter les propriétés de l’objet de données Objet utilisateur SQL Server à la définition de profil Utilisateur AD-SQL

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, puis cliquez sur Utilisateur AD_SQL.

  2. Dans l’écran de définition de profil, dans la liste Propriétés, cliquez sur Nom commun. Les attributs de la propriété apparaissent à droite.

  3. Dans la section Attributs avancés, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Type de clé | Sélectionner Double clé (primaire et de jointure). Lorsque vous utilisez plusieurs sources de données dans une définition de profil, il est nécessaire de créer une clé de jointure qui effectue le mappage vers les deux sources.
    Mapper vers les données | Ouvrir la boîte de dialogue Sélecteur de source de données, en cliquant sur le bouton de sélection [...]. Dans la boîte de dialogue Sélecteur de source de données, développez ProfileService_ADSource, puis Utilisateur AD-SQL. Sélectionnez ProfileService_SQLSource, puis Objet utilisateur.

  4. Maintenez la touche CTRL enfoncée et sélectionnez u_logon_name (placé sous Objet utilisateur) et cn (placé sous Utilisateur AD-SQL), puis cliquez sur OK pour fermer la boîte de dialogue Sélecteur de source de données.

    Les deux propriétés apparaissent dans la zone Mapper vers les données.

  5. Dans la section Attributs avancés, sélectionnez RDN, puis cliquez sur Appliquer.

    Les propriétés de clé de jointure sont alors désignées comme le RDN (Relative Distinguished Name) du profil. Le RDN doit exister pour pouvoir créer un profil valide mappé vers une source LDAPv3, telle qu’Active Directory. (Ceci n’est pas obligatoire pour les sources OLE DB, telles que SQL Server.)

  6. Dans la liste Propriétés, cliquez sur la flèche de direction à gauche de SQL Server, puis cliquez sur Ajouter.

  7. Dans la boîte de dialogue Ajouter -- Dialogue de page Web, sélectionnez une nouvelle propriété, puis cliquez sur OK.

  8. Dans la liste Propriétés, sélectionnez Nouvelle propriété 1.

    Ajoutez les propriétés du tableau Nouvelles propriétés suivant à la définition de profil Utilisateur AD-SQL.

    Nom | Nom complet | Type | Mapper vers les données
    u_user_security_password | Mot de passe | String | u_user_security_password
    i_account_status | État du compte | Nombre | i_account_status
    u_user_catalog_set | Groupe de catalogues | String | u_user_catalog_set
    d_data_registered | Date d’inscription | DateHeure | d_date_registered
    i_partner_desk_role | Rôle du Service Partenaire | Nombre | i_partner_desk_role
    d_date_last_changed | Date de dernière modification | DateHeure | d_date_last_changed

  9. Dans la section Attributs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom de programmation de la propriété, indiqué dans la colonne Nom du tableau précédent.
    Nom complet | Taper le nom complet de la propriété, indiqué dans la colonne Nom complet du tableau précédent.
    Type | Sélectionner dans la liste déroulante le type de propriété, indiqué dans la colonne Type du tableau précédent.

  10. Dans la section Attributs avancés, cliquez sur le bouton de sélection [...] de la zone Mapper vers les données. Allez jusqu’à Objet utilisateur SQL Server, puis sélectionnez le membre de données de la propriété comme indiqué dans la colonne Mapper vers les données du tableau précédent.

  11. Pour appliquer les modifications apportées à la propriété, cliquez sur Appliquer.

  12. Répétez les étapes 7 à 12 jusqu’à ce que vous ayez ajouté toutes les propriétés répertoriées dans le tableau Nouvelles propriétés. L’écran de définition de propriétés doit se présenter comme illustré dans la figure suivante.
    Définition de profil utilisateur AD-SQL avec un nouveau groupe de propriétés

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  13. Pour enregistrer la définition de profil, cliquez sur [image] dans la barre d’outils.

Si vous utilisez la définition de profil Utilisateur AD-SQL sur votre site Web, des données sont stockées à la fois dans une base de données SQL Server et dans une base de données Active Directory.

Voir aussi

À propos de la ressource Profiles

Ajout d’une nouvelle source de données

Ajout d’une nouvelle définition de profil

Gestion des sources de données

Gestion des définitions de profils


Gestion des sources de données

La ressource Profiles permet de modifier les sources de données que vous avez créées. Par exemple, vous apportez des modifications dans la banque de données vers laquelle vos propriétés de profil sont mappées et vous avez besoin de modifier ou de supprimer des objets de données ou des membres de données obsolètes. Ou encore, vous créez une source de données et souhaitez supprimer l’ancienne. Vous pouvez modifier et supprimer des sources de données, des objets de données et des membres de données.

La modification des sources de données se heurte néanmoins aux restrictions suivantes :

  • Vous ne pouvez ajouter des partitions qu’à une source de données qui n’a jamais été partitionnée. Vous devez ajouter des partitions à une source avant de l’utiliser pur stocker des données. Si vous partitionnez une source contenant des données, les données existantes seront perdues.

  • Vous ne pouvez pas supprimer des partitions de source de données, mais vous pouvez les modifier. Vous devez être très prudent lors de la modification des partitions d’une source de données contenant des données car vos modifications peuvent conduire à la perte de données ou à leur corruption.

  • Une source de données supprimée ne peut pas être récupérée. Tous les objets de données et tous les membres de données associés à la source de données sont également supprimés. Vous devez effectuer un nouveau mappage des définitions de profils mappées vers les membres de données supprimés et les mapper vers l’emplacement de stockage des données contenant des membres de données.

  • Un objet de données supprimé ne peut pas être récupéré. Tous les membres de données associés à l’objet de données supprimé sont également supprimés. Vous devez effectuer un nouveau mappage des définitions de profils mappées vers les membres de données supprimés et les mapper vers l’emplacement de stockage des données contenant des membres de données.

  • Un membre de données supprimé ne peut pas être récupéré. Vous devez effectuer un nouveau mappage des définitions de profils mappées vers le membre de données supprimé et les mapper vers l’emplacement de stockage des données contenant un membre de donnée.

Pour modifier les propriétés d’une source de données

Pour supprimer une source de données

Pour modifier le nom complet et la description d’un objet de données

Pour supprimer un objet de données

Pour modifier le nom complet et la description d’un membre de données

Pour supprimer un membre de données

Pour modifier les propriétés d’une source de données

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Sources de données, cliquez avec le bouton droit sur la source de données que vous voulez modifier, puis cliquez sur Propriétés.

  2. Dans la boîte de dialogue Propriétés <source données>, sous l’onglet Général, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom complet | Modifier le nom de la source de données. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Modifier la description de la source de données. La description ne peut pas excéder 127 caractères Unicode.

  3. Pour enregistrer vos modifications et revenir à Commerce Server Manager, cliquez sur OK.

La source de données est enregistrée avec les modifications que vous avez apportées. Vous pouvez modifier la chaîne de connexion d’une partition existante, ou ajouter une nouvelle partition de même type que la source de données (LDAP ou BD OLE). Pour ajouter une nouvelle partition ou modifier une partition existante pour un fournisseur OLEDB-ANSI, consultez Pour ajouter une nouvelle source de données SQL Server. Pour ajouter une nouvelle partition ou modifier une partition existante pour une source compatible LDAPv3, consultez Pour ajouter une nouvelle source de données Source compatible LDAPv3.

Pour supprimer une source de données

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Sources de données, cliquez avec le bouton droit sur la source de données que vous voulez supprimer, puis cliquez sur Supprimer.

  2. Dans la boîte de dialogue de confirmation Supprimer la source de données, cliquez sur Oui.

La source de données et l’ensemble de ses objets de données et membres de données sont alors supprimés.

Pour modifier le nom complet et la description d’un objet de données

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Sources de données, développez la source de données contenant l’objet de données que vous voulez modifier, développez Objets de données, cliquez avec le bouton droit sur l’objet de données que vous voulez modifier, puis cliquez sur Propriétés.

  2. Dans la boîte de dialogue Propriétés <objet données>, sous l’onglet Identité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom complet | Modifier le nom de l’objet de données. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Modifier la description de l’objet de données. La description ne peut pas excéder 127 caractères Unicode.

  3. Cliquez sur OK.

Le nom complet et la description de l’objet de données sont modifiés.

Remarque

  • Vous pouvez modifier le nom complet d’un objet de données, mais pas son nom de programmation.

Pour supprimer un objet de données

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Sources de données, développez la source de données contenant l’objet de données que vous voulez supprimer, développez Objets de données, cliquez avec le bouton droit sur l’objet de données que vous voulez supprimer, puis cliquez sur Supprimer.

  2. Dans la boîte de dialogue de confirmation Supprimer l’objet de données, cliquez sur Oui.

L’objet de données est alors supprimé de la source de données.

Attention

  • Vous ne pouvez pas récupérer un objet de données après l’avoir supprimé.

Pour modifier le nom complet et la description d’un membre de données

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Sources de données, développez la source de données contenant l’objet de données qui contient le membre de données que vous voulez modifier, développez Objets de données, puis cliquez sur l’objet de données qui contient le membre de données que vous voulez modifier.

  2. Dans la liste des membres de données, cliquez avec le bouton droit sur le membre de données que vous voulez modifier, puis cliquez sur Propriétés.

  3. Dans la boîte de dialogue Propriétés <membre données>, sous l’onglet Général, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom complet | Modifier le nom du membre de données. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Modifier la description du membre de données. La description ne peut pas excéder 127 caractères Unicode.

  4. Cliquez sur OK.

Remarque

  • Vous pouvez modifier le nom complet d’un membre de données, mais pas son nom de programmation.

Pour supprimer un membre de données

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Sources de données, développez la source de données contenant l’objet de données qui contient le membre de données que vous voulez supprimer, développez Objets de données, puis cliquez sur l’objet de données qui contient le membre de données que vous voulez supprimer.

  2. Dans la liste des membres de données, cliquez avec le bouton droit sur le membre de données que vous voulez supprimer, puis cliquez sur Supprimer.

  3. Dans la boîte de dialogue de confirmation Supprimer le membre de données, cliquez sur Oui.

Le membre de données est alors supprimé de la source de données.

Attention

  • Vous ne pouvez pas récupérer un membre de données après l’avoir supprimé.

Voir aussi

À propos de la ressource Profiles

Ajout d’une nouvelle source de données

Ajout d’un nouvel objet de données

Ajout d’un nouveau membre de données

Exemple : Création d’une définition de profil avec deux sources de données


Gestion des définitions de profils

La ressource Profiles permet de modifier le nom complet et la description d’une définition de profil et d’ajouter des attributs personnalisés à une définition de profil. Pour créer une définition de profil, vous pouvez copier une définition de profil existante et utiliser l’écran de définition de profil pour modifier le nom et les attributs de la nouvelle définition de profil.

Lorsque vous décompressez le site solution vide, Commerce Server 2000 fournit plusieurs définitions de profils que vous pouvez copier pour créer des définitions de profils en fonction de vos besoins. Vous pouvez également supprimer une définition de profil qui ne répond plus à vos besoins et supprimer un attribut personnalisé d’une définition de profil. Vous ne pouvez pas récupérer un attribut personnalisé après l’avoir supprimé. Si vous en supprimez un par erreur, vous devez le recréer.

Pour modifier une définition de profil

Pour copier une définition de profil

Pour supprimer une définition de profil

Pour supprimer un attribut personnalisé d’une définition de profil

Pour modifier une définition de profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, cliquez avec le bouton droit sur la définition de profil que voulez modifier, puis cliquez sur Propriétés.

  2. Dans la boîte de dialogue Propriétés, sous l’onglet Général, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom complet | Modifier le nom de la définition de profil. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Modifier la description de la définition de profil. La description ne peut pas excéder 127 caractères Unicode.

  3. Dans la boîte de dialogue Propriétés, sous l’onglet Attributs personnalisés, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nouvelle | Ouvrir la boîte de dialogue Attribut personnalisé et ajouter un nouvel attribut personnalisé.
    Modifier | Ouvrir la boîte de dialogue Attribut personnalisé et modifier l’attribut personnalisé spécifié.
    Supprimer | Supprimer l’attribut personnalisé sélectionné.

  4. Dans la boîte de dialogue Attributs personnalisés, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom complet | Taper le nom à afficher pour l’attribut ou modifier le nom de l’attribut. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper ou modifier la description de l’attribut. La description ne peut pas excéder 127 caractères Unicode.
    Valeur | Taper ou modifier la valeur de l’attribut.

Remarque

  • Vous pouvez modifier le nom complet d’une définition de profil, mais pas son nom de programmation.
  5. Pour enregistrer les modifications et revenir à la boîte de dialogue Propriétés, cliquez sur OK.

  6. Pour enregistrer vos modifications et revenir à Commerce Server Manager, cliquez Appliquer, puis sur OK.

La définition de profil est enregistrée avec les modifications.

Pour copier une définition de profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, cliquez avec le bouton droit sur le profil que vous voulez copier, puis cliquez sur Effectuer une copie de ce profil.

  2. Dans la boîte de dialogue Copier la définition de profil, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom de programmation pour la définition de profil. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper le nom à afficher pour la définition de profil. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper une description pour la définition de profil. La description ne peut pas excéder 127 caractères Unicode.

  3. Cliquez sur Suivant.

  4. Dans la boîte de dialogue Attributs personnalisés, cliquez sur Nouveau.

  5. Dans la boîte de dialogue Attribut personnalisé, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom de programmation pour l’attribut. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper le nom à afficher pour l’attribut. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Taper une description pour l’attribut. La description ne peut pas excéder 127 caractères Unicode.
    Valeur | Taper la valeur de l’attribut.

  6. Pour enregistrer la définition de profil, cliquez sur OK.

  7. Pour enregistrer la définition de profil et revenir à Commerce Server Manager, cliquez sur Terminer.

La nouvelle définition de profil est enregistrée.

Pour supprimer une définition de profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, cliquez avec le bouton droit sur la définition de profil que voulez supprimer, puis cliquez sur Supprimer.

  2. Dans la boîte de dialogue de confirmation Supprimer le profil, cliquez sur Oui.

La définition de profil est alors supprimée de la ressource Profiles.

Attention

  • Si vous supprimez une définition de profil par erreur, vous devez la recréer. Vous ne pouvez pas récupérer une définition de profil après l’avoir supprimée.

Pour supprimer un attribut personnalisé d’une définition de profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, cliquez avec le bouton droit sur la définition de profil de laquelle vous voulez supprimer un attribut personnalisé, puis cliquez sur Propriétés.

  2. Dans la boîte de dialogue Propriétés, sous l’onglet Attributs personnalisés, sélectionnez l’attribut que vous voulez supprimer, puis cliquez sur Supprimer.

L’attribut personnalisé est alors supprimé de la définition de profil.

Voir aussi

À propos de la ressource Profiles

Ajout d’une nouvelle définition de profil


Gestion des propriétés de profil

La ressource Profiles permet de modifier les propriétés de profil de manière à mettre à jour les données que vous souhaitez collecter à partir de votre site Web. Par exemple, vous créez une définition de profil avec une propriété permettant de collecter des données sur la région dans laquelle vivent les utilisateurs qui visitent votre site Web. Lorsque vous visualisez les données collectées avec cette propriété de profil, vous vous rendez compte qu’une propriété de type chaîne n’est pas le meilleur moyen de collecter des données utiles relatives à l’emplacement auprès de vos utilisateurs. Vous utilisez l’écran de définition de profil pour modifier les attributs de cette propriété de manière à ce qu’elle collecte des données plus utiles.

Vous pouvez supprimer des propriétés et des groupes de propriétés dont vous n’avez pas besoin dans une définition de profil. Par exemple, vous ajoutez sept propriétés à une définition de profil, puis vous vous rendez compte que vous n’en avez besoin que de six sur votre site Web. Lorsque vous supprimez un groupe de propriétés, toutes les propriétés de ce groupe sont également supprimées.

Vous pouvez déplacer des propriétés et des groupes de propriétés vers le haut ou vers le bas dans la liste Propriétés afin de mieux les organiser. Par exemple, vous avez ajouté trois groupes de propriétés à une définition de propriété. Vous pouvez déplacer les propriétés existantes vers le haut ou le bas dans la liste Propriétés jusqu’à ce qu’elles soient placées dans le groupe de propriétés que vous avez créé à leur attention.

Vous pouvez modifier ou supprimer tout attribut personnalisé d’une propriété. Vous pouvez modifier un attribut personnalisé si vous avez besoin d’ajuster le nom complet, la description ou la valeur de l’attribut. Si vous supprimez un attribut personnalisé par erreur, vous devez le recréer. Vous ne pouvez pas récupérer un attribut personnalisé après l’avoir supprimé.

Pour modifier une propriété de profil

Pour organiser des propriétés de profil

Pour supprimer une propriété d’une définition de profil

Pour modifier un attribut personnalisé d’une propriété de profil

Pour supprimer un attribut personnalisé d’une propriété de profil

Pour modifier une propriété de profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, puis cliquez sur la définition de profil contenant la propriété que vous voulez modifier.

  2. Dans la liste Propriétés, développez le groupe de propriétés contenant la propriété que vous voulez modifier, puis cliquez sur la propriété à modifier.

    Ou bien, cliquez sur le groupe de propriétés que vous voulez modifier.

  3. Dans l’écran de définition de profil, dans la section Attributs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom complet | Modifier le nom à afficher dans Commerce Server Business Desk. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Modifier la description de la propriété. La description ne peut pas excéder 127 caractères Unicode.
    Type | Sélectionner le type de propriété. Le type de propriété par défaut est Chaîne. Le type de propriété de cet attribut doit être identique à celui du membre de données vers lequel cet attribut est mappé.
    Référence de type | Sélectionner l’entrée du glossaire du site ou le profil que vous ajoutez à la définition de propriété, en cliquant sur le bouton de sélection [...]. Cette fonctionnalité n’est disponible que si vous avez sélectionné les types Entrée du glossaire du site ou Profil.

  4. Dans l’écran de définition de profil, dans la section Attributs avancés, cliquez sur Activé si cette propriété doit être disponible dans Business Desk. Les propriétés inactives ne sont pas affichées dans Business Desk.

  5. Dans la zone Mapper vers les données, cliquez sur le bouton de sélection [...] pour ouvrir la boîte de dialogue Sélecteur de source de données et sélectionner le membre de données vers lequel la propriété est mappée.

  6. Dans la boîte de dialogue Sélecteur de source de données, développez la source de données contenant l’objet de données contenant lui-même le membre de données avec lequel vous voulez mapper la propriété.

  7. Développez l’objet de données contenant le membre de données avec lequel vous voulez mapper la propriété et sélectionnez le membre de données.

  8. Cliquez sur OK.

  9. Dans l’écran Définition de profil, dans la section Attributs avancés, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Type de clé | Sélectionner un type de clé dans la liste déroulante. Chaque définition de profil requiert une propriété qui soit une clé primaire et une propriété qui soit une clé de jointure, ou une propriété qui soit une double clé (à la fois une clé primaire et une clé de jointure).
    Requis | Spécifier que cette propriété est requise sur votre site Web et dans Business Desk. Cependant, cet attribut n’est pas appliqué par la ressource Profiles. Cet attribut est en lecture seule si vous avez sélectionné un type de clé.
    Exportée | Indiquer si cette propriété doit être importée dans Data Warehouse de Commerce Server. Seules les propriétés mappées peuvent être exportées. Vous ne pouvez pas exporter des propriétés à valeurs multiples et de type Booléen, ni des propriétés de type binaire, chaîne de type long ou mot de passe.
    Différer le chargement du cache | Indiquer que cette propriété ne sera pas chargée initialement lors de la récupération du profil, mais qu’elle sera chargée lorsqu’elle sera sollicitée.
    À valeurs multiples | Activer la collection des valeurs multiples associées à cette propriété. Cette valeur n’est pas disponible si vous avez sélectionné un type de clé pour la propriété.
    Possibilité de recherche | Indiquer que cette propriété est indexée dans la banque de données sous-jacente et qu’elle peut faire l’objet de recherches via la fonction Rechercher par.
    RDN (Relative Distinguished Name) | Taper le RDN (Relative Distinguished Name) pour une banque de répertoires. Définissez cette valeur si la propriété est mappée vers un attribut RDN d’une classe LDAP dans la banque sous-jacente.
    Clé de hachage | Indiquer que cette propriété sera utilisée pour répartir des instances du profil entre plusieurs partitions. Cette propriété est en lecture seule pour les sources de données non partitionnées. Vous devez effectuer une requête sur cette clé pour récupérer des profils.

  10. Cliquez sur Appliquer.

  11. Pour enregistrer la définition de profil, cliquez sur [image] dans la barre d’outils.

La définition de profil est enregistrée avec les modifications.

Pour organiser des propriétés de profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, puis cliquez sur la définition de profil contenant les propriétés que vous voulez organiser.

  2. Dans la liste Propriétés, sélectionnez la propriété ou le groupe de propriétés que vous voulez déplacer, puis utilisez les boutons de déplacement vers le haut et le bas pour faire monter et descendre la propriété ou le groupe de propriétés dans la liste.

  3. Pour enregistrer la définition de profil, cliquez sur Enregistrer dans la barre d’outils.

La définition de profil est enregistrée avec les modifications que vous avez apportées à l’ordre des groupes de propriétés et des propriétés.

Pour supprimer une propriété d’une définition de profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, puis cliquez sur la définition de profil de laquelle vous voulez supprimer une propriété.

  2. Dans la liste Propriétés, sélectionnez la propriété ou le groupe de propriétés que vous voulez supprimer, puis cliquez sur Supprimer.

  3. Dans la boîte de dialogue de confirmation Supprimer - Dialogue de page Web, cliquez sur OK.

  4. Pour enregistrer la définition de profil, cliquez sur Enregistrer dans la barre d’outils.

La définition de profil est enregistrée. Elle ne contient plus la propriété ou le groupe de propriétés que vous avez supprimé.

Pour modifier un attribut personnalisé d’une propriété de profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, puis cliquez sur la définition de profil contenant la propriété dans laquelle vous voulez modifier un attribut personnalisé.

  2. Dans la liste Propriétés, sélectionnez la propriété contenant l’attribut personnalisé que vous voulez modifier.

  3. Dans l’écran de définition de profil, dans la section Attributs personnalisés, cliquez sur Modifier.

  4. Dans l’écran de définition de profil, dans la section Attributs personnalisés, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Modifier le nom de programmation de l’attribut. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Modifier le nom à afficher pour l’attribut. Le nom complet ne peut pas excéder 127 caractères Unicode.
    Description | Modifier la description de l’attribut. La description ne peut pas excéder 127 caractères Unicode.
    Valeur | Modifier la valeur de l’attribut.

  5. Cliquez sur Accepter, puis sur Appliquer.

  6. Pour enregistrer la définition de profil, cliquez sur Enregistrer dans la barre d’outils.

La définition de profil est enregistrée avec les modifications.

Pour supprimer un attribut personnalisé d’une propriété de profil

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, Définitions de profils, puis cliquez sur la définition de profil contenant la propriété de laquelle vous voulez supprimer un attribut personnalisé.

  2. Dans la liste Propriétés, sélectionnez la propriété contenant l’attribut personnalisé que vous voulez supprimer.

  3. Dans l’écran de définition de profil, dans la section Attributs personnalisés, sélectionnez l’attribut personnalisé que vous voulez supprimer, puis cliquez sur Supprimer.

    L’attribut personnalisé est alors supprimé de la propriété de profil.

  4. Cliquez sur Appliquer.

  5. Pour enregistrer la définition de profil, cliquez sur Enregistrer dans la barre d’outils.

La définition de profil est enregistrée avec les modifications.

Attention

  • Vous ne pouvez pas récupérer un attribut personnalisé après l’avoir supprimé.

Voir aussi

À propos de la ressource Profiles

Ajout de propriétés à des définitions de profils


Gestion des entrées du glossaire du site

La ressource Profiles permet de modifier et de supprimer des entrées du glossaire du site afin de mieux répondre à vos besoins. Par exemple, vous créez une entrée du glossaire du site « Couleur préférée », puis modifiez les couleurs répertoriées par cette entrée aux changements de saisons afin qu’elles correspondent à votre stock.

Pour modifier une entrée du glossaire du site

Pour supprimer une entrée du glossaire du site

Pour modifier une entrée du glossaire du site

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, puis cliquez sur Entrées du glossaire du site.

  2. Dans la liste Structure des entrées du glossaire du site, développez le groupe d’entrées du glossaire du site qui contient l’entrée du glossaire du site que vous voulez modifier.

  3. Dans l’écran de définition de profil, apportez les modifications souhaitées aux attributs et valeurs de l’entrée du glossaire du site, cliquez sur Accepter, puis sur Appliquer.

  4. Pour enregistrer l’entrée du glossaire du site, cliquez sur Enregistrer dans la barre d’outils.

L’entrée du glossaire du site est enregistrée avec vos modifications.

Pour supprimer une entrée du glossaire du site

  1. Développez Commerce Server Manager, Ressources globales, Profiles, Catalogue de profils, puis cliquez sur Entrées du glossaire du site.

  2. Dans la liste Structure des entrées du glossaire du site, développez le groupe d’entrées du glossaire du site qui contient l’entrée du glossaire du site que vous voulez supprimer, sélectionnez l’entrée du glossaire du site, puis cliquez sur Supprimer.

  3. Dans la boîte de dialogue de confirmation Supprimer - Dialogue de page Web, cliquez sur OK.

    L’entrée du glossaire du site est alors supprimée.

  4. Cliquez sur Accepter, puis sur Appliquer.

  5. Pour enregistrer les modifications, cliquez sur Enregistrer dans la barre d’outils.

L’entrée du glossaire du site est enregistrée avec vos modifications.

Voir aussi

À propos de la ressource Profiles

Ajout d’entrées du glossaire du site

Ajout d’une entrée du glossaire du site à une définition de propriété de profil


Utilisation de BizTalk Server et de Commerce Server

En intégrant Microsoft BizTalk Server 2000 à votre installation de Microsoft Commerce Server 2000, vous pouvez passer un contrat avec des fournisseurs pour recevoir leurs catalogues de produits, puis remplir des commandes pour des produits vendus sur votre site. Bien qu’il ne soit pas obligatoire que vous et vos fournisseurs installiez tous BizTalk Server, cette section explique comment configurer un système BizTalk Server pour vous et vos fournisseurs.

Il est conseillé d’installer Commerce Server et BizTalk Server sur le même ordinateur. Toutefois, vous pouvez installer BizTalk Server sur un autre ordinateur qui utilise, par exemple, Message Queuing.

Cette section contient les rubriques suivantes :

  • À propos de BizTalk Server. Décrit les composants de Commerce Server qui fonctionnent avec BizTalk Server et fournit une vue d’ensemble des étapes nécessaires à l’échange de commandes et de catalogues.

  • Configuration de Commerce Server pour l’utilisation de BizTalk Server. Explique comment configurer Commerce Server pour l’intégrer avec BizTalk Server.

  • Configuration du serveur source. Explique comment configurer les organisations source et expéditrice pour l’échange de catalogues ou de bons de commande.

  • Configuration du serveur de destination. Explique comment configurer les organisations réceptrice et de destination sur le serveur BizTalk Server.

  • Configuration de vos catalogues pour BizTalk Server. Explique comment configurer BizTalk Server pour l’échange de catalogues.

Pour plus d’informations sur l’intégration de BizTalk Server et Commerce Server, consultez Integrating with BizTalk Server (en anglais). Consultez également la documentation de Microsoft BizTalk Server 2000 et le Kit de Ressources Techniques Commerce Server 2000.

Pour obtenir des informations sur la programmation de BizTalk Server 2000, consultez les rubriques référence de l’interface BizTalk Server 2000 de l’aide en ligne de BizTalk Server. Le Kit de développement de logiciel contient notamment des exemples permettant de classer les commandes par fournisseur, de convertir des commandes au format XML (Extensible Markup Language) et d’utiliser un composant BizTalk Server pour envoyer des commandes à BizTalk Server.


À propos de BizTalk Server

BizTalk Server 2000 fournit une passerelle pour l’échange de documents commerciaux entre votre société et vos partenaires commerciaux (également appelés fournisseurs). Par exemple, si votre société utilise BizTalk Server, vous pouvez échanger des catalogues, des commandes, des documents et d’autres formulaires électroniques avec vos partenaires commerciaux. BizTalk Server gère la traduction des données, le cryptage, les signatures numériques et les services de suivi des documents pour différents mécanismes de transport.

Vous pouvez utiliser BizTalk Server et Commerce Server conjointement pour traiter les commandes passées par les utilisateurs sur votre site Web Commerce Server. Supposons, par exemple, que vous vendiez du matériel informatique sur votre site. Une partie de ce matériel est fabriquée par votre société et une partie vous est fournie par vos partenaires commerciaux. BizTalk Server permet de créer un contrat commercial pour chaque partenaire commercial fournissant du matériel vendu sur votre site. Lorsqu’un utilisateur visite votre site et commande un des produits fournis par un partenaire commercial, Commerce Server traite cette commande et l’envoie à BizTalk Server, puis BizTalk Server l’envoie au partenaire commercial pour qu’il la remplisse.

Catalogues pour des fournisseurs multiples

Identificateur du fournisseur

Utilisation de BizTalk Server pour échanger des catalogues

Envoi de commandes à BizTalk Server

Traitement des commandes reçues

Catalogues pour des fournisseurs multiples

Avant d’utiliser BizTalk Server pour transmettre des commandes à vos partenaires commerciaux, vous devez d’abord organiser les catalogues des partenaires commerciaux dont les produits apparaissent sur votre site. Chacun de vos partenaires commerciaux peut envoyer un ou plusieurs catalogues de ses produits. En fonction de la configuration de votre site Web, vous pouvez faire apparaître ces catalogues sous la forme d’un seul catalogue ou de plusieurs catalogues. Il peut être utile de disposer de plusieurs catalogues, par exemple si vous ciblez différents groupes d’utilisateurs en leur proposant différents catalogues (par exemple, un pour les responsables des opérations et un pour les amateurs).

Les fournisseurs envoient leurs catalogues par courrier électronique ou à l’aide de BizTalk Server, puis vous les importez dans votre base de données de catalogues Commerce Server à l’aide du module Éditeur de catalogue de Commerce Server Business Desk. Pour plus d’informations sur l’importation des catalogues, consultez Importation d’un catalogue.

Identificateur du fournisseur

Lorsque vous définissez un contrat avec un fournisseur, l’identificateur de ce fournisseur est automatiquement fourni à Commerce Server. L’identificateur du fournisseur est le nom d’organisation que vous avez spécifié pour ce fournisseur lors de la création d’une organisation de destination pour le serveur source. Pour plus d’informations, consultez Création d’organisations source et de destination sur le serveur source.

Commerce Server affiche l’identificateur du fournisseur dans Business Desk. Il affiche les partenaires commerciaux (organisations) qui prennent en charge le même type de document que votre organisation, et qui utilisent donc un acheminement des documents compatible. Vous pouvez alors utiliser Business Desk pour associer l’identificateur du fournisseur au catalogue.

Plusieurs catalogues peuvent être associés à un fournisseur donné. Vous pouvez aussi spécifier un fournisseur au niveau du produit. Dans ce cas, vous devez également personnaliser la page _additem.asp. (pour un développement avec le site solution Retail).

Si vous nommez un fournisseur « par défaut », Commerce Server reconnaît votre propre site en tant que fournisseur. Pour obtenir des instructions sur l’ajout de l’identificateur d’un fournisseur à un catalogue, consultez Configuration de vos catalogues pour BizTalk Server.

Remarque

  • Lorsqu’un utilisateur commande un article à partir de votre site Web, cet article doit exister dans le catalogue de l’organisation de destination. Si l’organisation de destination ne dispose pas de cet article dans son catalogue, BizTalk Server ne pourra pas traiter le bon de commande sur le serveur de destination. Il écrira un message d’erreur dans le journal des événements sur le serveur de destination.

Utilisation de BizTalk Server pour échanger des catalogues

BizTalk Server permet d’échanger des catalogues utilisés par Commerce Server avec vos partenaires commerciaux. Une fois le catalogue converti en document XML (Extensible Markup Language), il est traité par BizTalk Server qui l’enregistre dans un dossier partagé sur l’ordinateur de destination qui héberge Commerce Server. Si l’ordinateur de destination appartient à un réseau local, il n’est pas nécessaire d’installer BizTalk Server sur cet ordinateur. Si vous souhaitez envoyer le catalogue via le protocole HTTP, BizTalk Server doit être installé sur l’ordinateur de destination.

Une fois le fichier de catalogue XML enregistré sur l’ordinateur de destination, vous utilisez Business Desk pour importer ce catalogue à partir du dossier partagé sur l’ordinateur de destination, puis pour le publier sur le site Web. Si vous le souhaitez, vous pouvez modifier le catalogue que vous venez d’importer à l’aide du module Éditeur de catalogue de Business Desk. Pour plus d’informations sur l’importation d’un catalogue à l’aide de Business Desk, consultez Importation d’un catalogue.

Vous pouvez configurer BizTalk Server pour incorporer automatiquement un catalogue entrant dans Commerce Server.

La figure suivante indique comment un fichier de catalogue XML est traité.

Figure illustrant le traitement des catalogues à l'aide de BizTalk Server
Place le document XML dans un dossier partagé
Votre site
Commerce Server
BizTalk Server
Reçoit le document XML
Publier sur le site Web
Base de données Commerce Server pour les catalogues
Importer un fichier de catalogue XML à l'aide de Business Desk
Document XML envoyé par le fournisseur

Envoi de commandes à BizTalk Server

La figure suivante illustre la façon dont Commerce Server traite une commande puis l’envoie à BizTalk Server.

Figure illustrant la façon dont Commerce Server traite une commande puis l'envoie à BizTalk Server
Base de données Commerce Server pour les commandes
Bon de commande des fournisseurs
L'utilisateur passe commande et valide
Ajouter le nom du fournisseur
Business Desk
Site Web
Pipeline de validation
BizTalk Server envoie le document XML au fournisseur
XMLTransforms convertit le bon de commande en document
XML à l'aide du schéma
Splitter crée une collection d'identificateurs de fournisseur et l'attache au bon de commande
Base de données Commerce Server pour les catalogues

Les utilisateurs effectuent les étapes suivantes pour créer et traiter une commande :

  1. Les utilisateurs ajoutent des articles à leur panier.

    Commerce Server lit la base de données Commerce Server et récupère le nom du fournisseur des produits.

  2. Les utilisateurs valident leurs achats, puis le pipeline de validation de Commerce Server traite la commande.

    Pour chaque élément de commande (produit) de la commande, le composant Splitter indique si le produit est fourni par votre société ou par un fournisseur avec lequel vous avez un contrat commercial. Le composant Splitter crée une liste des fournisseurs et l’attache au bon de commande.

  3. Commerce Server détermine si la propriété Options de BizTalk (dans la ressource configuration par défaut de l’application) a la valeur 1.

    Si cette propriété a la valeur 1, Commerce Server lit la liste de fournisseurs et regroupe les éléments de commande par fournisseur.

  4. Commerce Server convertit le bon de commande en documents XML, qu’il envoie à BizTalk Server.

    Lorsque Commerce Server convertit le bon de commande (en utilisant le processus XMLTransforms), il crée un document XML pour chaque fournisseur.

    Pour convertir la commande, Commerce Server utilise le schéma POSchema.xml qui est associé au site. Par défaut, si vous ajoutez des champs au bon de commande, Commerce Server n’inclut pas ces nouveaux champs dans le document XML envoyé à BizTalk Server. Pour ajouter les nouveaux champs du bon de commande, vous devez modifier POSchema.xml, fichier au format XDR (XML Data-Reduced), puis associer de nouveau le fichier XML au document dans BizTalk Server. Vous devez également transférer le fichier XML vers BizTalk Server et l’associer de nouveau. Vous pouvez modifier POSchema.xml à l’aide de BizTalk Editor.

  5. Commerce Server envoie les documents XML à BizTalk Server.

Traitement des commandes reçues

Il existe différentes façons de soumettre des commandes à BizTalk Server, en fonction de vos besoins. Vous pouvez utiliser le mappage pour soumettre des commandes, utiliser différents protocoles, ou bien votre partenaire commercial peut créer un site Commerce Server ou non-Commerce Server pour recevoir les commandes soumises.

Si vous souhaitez que votre partenaire commercial configure un site Commerce Server pour recevoir des commandes, vous pouvez utiliser la page _recvpo.asp qui reçoit les documents XML de BizTalk Server. Lorsque la page _recvpo.asp reçoit un document XML, le processus XMLTranforms est démarré et reconvertit le document XML en bon de commande. Commerce Server exécute ensuite un pipeline sur le bon de commande. Une fois que le pipeline a traité le bon de commande, la commande est enregistrée dans la base de données de Commerce Server. La page _recvpo.asp permet d’utiliser des objets Commerce Server pour rediriger les documents XML vers votre système de gestion des commandes.

La figure suivante illustre la façon dont un document XML est envoyé à partir de votre serveur BizTalk Server et traité par le site Commerce Server du fournisseur.

Figure illustrant la façon dont un document XML est envoyé à partir de BizTalk Server et traité par Commerce Server
Site Commerce Server du fournisseur
Pipeline de traitement des commandes
Traite la commande
Transforme le document XML en
bon de commande
XMLTransforms
_recvpo.asp
Serveur BizTalk Server du fournisseur ReceiveStandard.asp
Document XML envoyé à partir de votre serveur BizTalk Server

Vous pouvez également configurer Commerce Server pour traiter et envoyer les bons de commande dans une file d’attente, puis configurer votre serveur BizTalk Server (ou celui de votre fournisseur) pour interroger cette file d’attente. Si vous optez pour cette configuration, vous pouvez installer BizTalk Server et Commerce Server sur des serveurs différents. La figure suivante illustre cette configuration.

Figure illustrant la façon dont vous pouvez utiliser BizTalk Server et Message Queuing
-File d'attente inactive
-File d'attente de réception
Message
Queuing
-File d'attente d'envoi
Bon de commande
Interroge la file d'attente
Commerce
Server
BizTalk
Server
Écrit la réponse dans la file d'attente inactive ou de réception

Voir aussi

Integrating with BizTalk Server (en anglais)

Programmer’s Reference (en anglais)

Splitter (en anglais)


Configuration de Commerce Server pour l'utilisation de BizTalk Server

Configuration de Commerce Server pour l’utilisation de BizTalk Server

Vous pouvez utiliser la ressource configuration par défaut de l’application pour définir les propriétés permettant à Commerce Server 2000 et BizTalk Server 2000 de fonctionner ensemble.

Pour configurer Commerce Server pour l’utilisation de BizTalk Server

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft Commerce Server, puis cliquez sur Commerce Server Manager.

  2. Développez Commerce Server Manager, Sites de commerce, le site que vous voulez utiliser avec BizTalk Server (par exemple, Retail), puis développez Ressources de site.

  3. Dans le volet gauche, cliquez avec le bouton droit sur Configuration par défaut de l’application, puis cliquez sur Propriétés.

  4. Dans la boîte de dialogue Propriétés de Configuration par défaut de l’application, sous l’onglet Propriétés, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Type de catalogue de BizTalk | Taper le nom de la définition de document exigé par BizTalk Server pour les catalogues (par exemple, DocTransfertCatalogue).
    Options de BizTalk | Taper 1 pour activer l’intégration à BizTalk Server pour l’échange de documents. Taper 0 pour désactiver l’intégration.
    Type de bon de commande de BizTalk | Taper le nom de la définition de document exigé par BizTalk Server pour les bons de commande (par exemple, BonCommande).
    Qualificateur d’organisation source de BizTalk | Taper le qualificateur d’alias de ce site dans BizTalk Server (par exemple, MaSociété).
    Valeur du qualificateur d’organisation source de BizTalk | Taper la valeur d’alias de ce site dans BizTalk Server (par exemple, Expéditeur).
    Type de validation de BizTalk | Taper 1 pour soumettre les documents à BizTalk Server de manière asynchrone.

  5. Si BizTalk Server n’est pas installé sur le même ordinateur que Commerce Server, sous l’onglet Chaînes de connexion, cliquez sur Modifier. Dans la boîte de dialogue Propriétés des liaisons de données, spécifiez la chaîne de connexion au serveur BizTalk.

  6. Cliquez sur OK.

Remarque

  • Une fois que vous avez modifié une valeur de propriété dans Commerce Server Manager, vous devez décharger l’application de la mémoire sur chaque serveur Web pour que les modifications soient prises en compte. Pour connaître les instructions à suivre, consultez Déchargement d’une application de la mémoire.

Voir aussi

Configuration du serveur source

Configuration du serveur de destination

Configuration de vos catalogues pour BizTalk Server


Configuration du serveur source

Pour définir une configuration de messagerie entre deux organisations, vous devez configurer le serveur source et le serveur de destination. Par exemple, votre serveur BizTalk Server peut être le serveur source et le serveur BizTalk Server du fournisseur peut être le serveur de destination.

Effectuez les étapes décrites dans cette section pour configurer l’échange de bons de commande sur le serveur source. Pour obtenir des instructions sur la configuration du serveur de destination, consultez Configuration du serveur de destination.

Cette section contient les rubriques suivantes :

  • Exemple : Configuration du serveur source pour l’échange de catalogues

  • Exemple : Configuration du serveur source pour l’échange de bons de commande

  • Copie et importation des fichiers nécessaires pour le serveur source

  • Création d’organisations source et de destination sur le serveur source

  • Création de définitions de documents sur le serveur source

  • Création d’enveloppes sur le serveur source

  • Création d’un port d’échanges sur le serveur source

  • Création d’un canal sur le serveur source


Exemple: Configuration du serveur source pour l'échange de catalogues

Exemple : Configuration du serveur source pour l’échange de catalogues

Les tableaux suivants contiennent des exemples de valeurs pour les propriétés de Configuration par défaut de l’application et de BizTalk Server nécessaires à la configuration d’un serveur source pour l’échange de catalogues.

Exemples de valeurs pour les Propriétés de Configuration par défaut de l’application

Attribuez à cette propriété | La valeur
Type de catalogue de BizTalk | DocTransfertCatalogue
Options de BizTalk | 1
Qualificateur d’organisation source de BizTalk | CatalogueDeMaSociété
Valeur du qualificateur d’organisation source de BizTalk | ExpéditeurCatalogue
Type de validation de BizTalk | 1

Exemples de valeurs pour les propriétés de l’organisation source

Attribuez à cette propriété | La valeur
Nom de l’organisation | Organisation principale
Nom du client | CatalogueDeMaSociété
Qualificateur | CatalogueDeMaSociété
Valeur | ExpéditeurCatalogue
Nom de l’application | ApplicationCatalogue

Exemples de valeurs pour les propriétés de l’organisation de destination

Attribuez à cette propriété | La valeur
Nom de l’organisation | DestinationCatalogue
Nom du client | CatalogueDeMaSociété
Qualificateur | CatalogueDeMaSociété
Valeur | DestinataireCatalogue

Exemples de valeurs pour les propriétés du document

Attribuez à cette propriété | La valeur
Nom du document | DocTransfertCatalogue
Spécification de document | .../Microsoft/CatalogXMLSchema.xml

Exemples de valeurs pour l’attribution d’un port d’échanges à une organisation

Attribuez à cette propriété | La valeur
Nom du port | PortDestinationCatalogue
Adresse de fichier | Lecteur : <nom serveur destination>\<dossier partagé>\CatalogSend.xml Utilisez un serveur de destination valide en tant que <nom serveur destination>. Utilisez un dossier partagé valide sur l’ordinateur de destination en tant que <dossier partagé>.

Exemples de valeurs pour l’attribution d’un canal à partir d’une application

Attribuez à cette propriété | La valeur
Nom | CanalSourceCatalogue
Nom de l’application source | ApplicationCatalogue
Identificateur d’organisation | CatalogueBizTalk/ExpéditeurCatalogue (par défaut)
Document entrant | DocTransfertCatalogue
Document sortant | DocTransfertCatalogue
Propriétés avancées | Cliquer sur Avancées, puis sur Propriétés. Dans la boîte de dialogue Propriétés avancées, définissez le nom d’utilisateur et le mot de passe complets, puis sélectionnez le type d’action à remplacer.

Voir aussi

Configuration de Commerce Server pour l’utilisation de BizTalk Server

Configuration du serveur source

Configuration du serveur de destination

Configuration de vos catalogues pour BizTalk Server


Exemple: Configuration du serveur source pour l'échange de bons de commande

Exemple : Configuration du serveur source pour l’échange de bons de commande

Les tableaux suivants contiennent des exemples de valeurs pour App Default Config et BizTalk Server nécessaires à la configuration d’un serveur source pour l’échange de bons de commande.

Exemples de valeurs pour les Propriétés de Configuration par défaut de l’application

Attribuez à cette propriété | La valeur
Options de BizTalk | 1
Type de bon de commande de BizTalk | BonCommande
Qualificateur d’organisation source de BizTalk | MaSociété
Valeur du qualificateur d’organisation source de BizTalk | Expéditeur
Type de validation de BizTalk | 1

Exemples de valeurs pour les propriétés de l’organisation source

Attribuez à cette propriété | La valeur
Nom de l’organisation | Organisation principale
Nom du client | MaSociété
Qualificateur | MaSociété
Valeur | Expéditeur
Nom de l’application | ApplicationBC

Exemples de valeurs pour les propriétés de l’organisation de destination

Attribuez à cette propriété | La valeur
Nom de l’organisation | Destination
Nom du client | MaSociété
Qualificateur | MaSociété
Valeur | Destinataire

Exemples de valeurs pour les propriétés du document

Attribuez à cette propriété | La valeur
Nom du document | BonCommande
Spécification de document | .../Microsoft/POSchema.xml

Exemples de valeurs pour les propriétés de l’enveloppe

Attribuez à cette propriété | La valeur
Nom d’enveloppe | EnveloppeBC

Exemples de valeurs pour le port d’échanges vers une organisation

Attribuez à cette propriété | La valeur
Nom du port | PortSortieDestination
Adresse HTTP | http://<nom serveur destination>/Retail/ReceiveStandard.asp Utilisez un serveur de destination valide en tant que <nom serveur destination>.
Enveloppe | EnveloppeBC
Identificateur de l’enveloppe | MaSociété / Destinataire (par défaut)

Exemples de valeurs pour l’attribution d’un canal à partir d’une application

Attribuez à cette propriété | La valeur
Nom | CanalSortieDestination
Nom de l’application source | ApplicationBC
Identificateur d’organisation | BizTalk/Expéditeur (par défaut)
Document entrant | BonCommande
Document sortant | BonCommande

Voir aussi

Configuration de Commerce Server pour l’utilisation de BizTalk Server

Configuration du serveur source

Configuration du serveur de destination

Exemple : Configuration du serveur source pour l’échange de catalogues

Exemple : Configuration du serveur de destination pour les bons de commande

Configuration de vos catalogues pour BizTalk Server


Copie et importation des fichiers nécessaires pour le serveur source

Les serveurs source et de destination doivent contenir les mêmes fichiers POSchema.xml et CatalogXMLSchema.xml.

Remarque

  • Les serveurs source et de destination doivent avoir les mêmes catalogues de produits. Sinon, la soumission des bons de commande se soldera par un échec. Pour plus d’informations sur la configuration de vos catalogues, consultez Configuration de vos catalogues pour BizTalk Server.

Pour copier POSchema.xml sur le serveur source

Pour importer CatalogXMLSchema.xml dans BizTalk Editor

Pour copier POSchema.xml sur le serveur source

  • Copiez le fichier POSchema.xml depuis <lecteur:>\inetpub\wwwroot\<nom site> vers <lecteur:>\Program Files\Microsoft BizTalk Server\BizTalkServerRepository\DocSpecs\Microsoft.

Pour importer CatalogXMLSchema.xml dans BizTalk Editor

  1. Ouvrez BizTalk Editor. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft BizTalk Server 2000, puis cliquez sur BizTalk Editor.

  2. Dans BizTalk Editor, dans le menu Outils, cliquez sur Importer.

  3. Sélectionnez Schéma XDR, puis cliquez sur OK.

  4. Dans la boîte de dialogue Importer le schéma XDR, dans la zone Rechercher dans, placez-vous dans <lecteur>:\Program Files\Microsoft Commerce Server 2000, sélectionnez CatalogXMLSchema.xml, puis cliquez sur Ouvrir.

  5. Dans le menu Fichier, cliquez sur Stocker dans WebDAV.

  6. Dans la boîte de dialogue Stocker dans WebDAV, dans la zone Nom du fichier, tapez CatalogXMLSchema.xml, puis cliquez sur Enregistrer.

  7. Fermez BizTalk Editor.

Le fichier CatalogXMLSchema.xml est importé dans BizTalk Editor et stocké dans WebDAV (Distributed Authoring and Versioning). Ce fichier est à présent une spécification comportant les informations d’en-tête et la structure appropriées pour être utilisé pour l’échange de catalogues.

Voir aussi

Copie des fichiers nécessaires pour le serveur de destination

Configuration de vos catalogues pour BizTalk Server


Création d'organisations source et de destination sur le serveur source

Création d’organisations source et de destination sur le serveur source

Le serveur BizTalk Server source est le fournisseur. Une organisation peut être source ou de destination dans un port d’échanges, une liste de distribution ou un canal. Une organisation peut correspondre à un partenaire commercial externe, à votre propre société ou encore à une unité d’un partenaire commercial ou de votre société. Chaque organisation a un identificateur unique qui permet à BizTalk Server 2000 et aux autres organisations partenaires de la reconnaître.

Sur le serveur source, vous devez créer une organisation source et une organisation de destination. Une organisation source est un partenaire commercial qui a été désigné dans un canal comme la source des documents. Une organisation de destination est un partenaire commercial qui a été désigné dans un port d’échanges comme le destinataire des documents.

Pour créer une organisation source sur le serveur source

Pour créer une organisation de destination sur le serveur source

Pour créer une organisation source sur le serveur source

  1. Sur le serveur BizTalk Server source, cliquez sur Démarrer, pointez sur Programmes, sur Microsoft BizTalk Server 2000, puis cliquez sur BizTalk Messaging Manager.

  2. Dans BizTalk Messaging Manager, dans la boîte de dialogue Options de configuration, activez la case à cocher Ne plus afficher cette boîte de dialogue, puis cliquez sur OK. Cliquez sur Annuler pour fermer la boîte de dialogue.

  3. Dans le volet gauche de BizTalk Messaging Manager, dans la zone Rechercher d’autres éléments, cliquez sur Organisations, puis sur Rechercher pour afficher la liste des organisations disponibles.

  4. Dans la liste des organisations disponibles, double-cliquez sur Organisation principale.

  5. Dans la boîte de dialogue Propriétés de l’organisation, sous l’onglet Identificateurs, cliquez sur Ajouter.

  6. Dans la boîte de dialogue Nouvel identificateur, vérifiez que l’option Personnalisé est sélectionnée, puis tapez MaSociété.

  7. Dans la zone Qualificateur, tapez MaSociété.

  8. Dans la zone Valeur, tapez le nom de l’expéditeur (par exemple, Expéditeur).

Le contenu de la zone Valeur doit correspondre à la valeur entrée dans la boîte de dialogue Propriétés de Configuration par défaut de l’application de Commerce Server, dans la zone Valeur du qualificateur d’organisation source de BizTalk. Si ces deux valeurs sont différentes, la soumission du bon de commande se soldera par un échec et aucun message d’erreur ne s’affichera.

Pour plus d’informations sur la définition des propriétés de Configuration par défaut de l’application, consultez Configuration de Commerce Server pour l’utilisation de BizTalk Server.

  9. Activez la case à cocher Définir par défaut pour définir l’expéditeur (par exemple, Expéditeur) en tant qu’organisation par défaut, puis cliquez sur OK.

Vous devez indiquer une organisation par défaut avant de créer un port d’échanges. L’organisation par défaut peut servir de source ou de destination pour chaque nouveau port d’échanges. Vous pouvez à tout moment spécifier une autre organisation par défaut, puis créer des ports d’échanges qui utilisent cette nouvelle organisation par défaut.

  10. Sous l’onglet Applications, cliquez sur Ajouter. Dans la boîte de dialogue Nouvelle application, tapez le nom de l’application (par exemple, ApplicationBC pour les bons de commande ou DocTransfertCatalogue pour le transfert de catalogues), puis cliquez sur OK.

  11. Dans la boîte de dialogue Nouvelle application, cliquez sur OK.

  12. Dans la boîte de dialogue Propriétés de l’organisation, cliquez sur OK.

Vous avez créé l’organisation source et l’expéditeur sur le serveur BizTalk Server source. Par exemple, l’organisation source peut être « Organisation principale » et l’expéditeur « Expéditeur ». Vous avez spécifié l’expéditeur comme organisation par défaut.

Pour créer une organisation de destination sur le serveur source

  1. Dans BizTalk Messaging Manager, dans le menu Fichier, pointez sur Nouvelle, puis cliquez sur Organisation.

  2. Dans la boîte de dialogue Nouvelle organisation, sous l’onglet Général, tapez le nom de l’organisation de destination (par exemple, OrgDestination).

Le nom que vous tapez ici est celui qui s’affichera dans Commerce Server Business Desk lors de l’association d’un fournisseur à un catalogue. Ce nom s’affiche dans la liste des fournisseurs disponibles, à partir de laquelle vous pouvez sélectionner le fournisseur souhaité.

  3. Dans la zone Commentaires, tapez tout commentaire nécessaire concernant l’organisation de destination.

  4. Sous l’onglet Identificateurs, cliquez sur Ajouter.

  5. Dans la boîte de dialogue Nouvel identificateur, vérifiez que l’option Personnalisé est sélectionnée, puis tapez MaSociété.

  6. Dans la zone Qualificateur, tapez MaSociété.

  7. Dans la zone Valeur, tapez le nom du destinataire (par exemple, Destinataire), puis cliquez sur OK.

  8. Dans la boîte de dialogue Nouvelle organisation, cliquez sur OK.

Vous avez créé l’organisation de destination et le destinataire sur le serveur BizTalk Server source. Par exemple, « Destination » est l’organisation de destination et « Destinataire » est le destinataire.

Voir aussi

Configuration de Commerce Server pour l’utilisation de BizTalk Server

Création de définitions de documents sur le serveur source


Création de définitions de documents sur le serveur source

Une définition de document représente un document commercial dans un port d’échanges, un canal ou une liste de distribution. Une définition de document fournit un pointeur vers une spécification qui définit ce document. Une définition de document peut être associée à un nombre illimité de ports d’échanges, de canaux et de listes de distribution.

Pour créer une définition de document avec un fichier XML associé

  1. Sur le serveur BizTalk Server source, cliquez sur Démarrer, pointez sur Programmes, sur Microsoft BizTalk Server 2000, puis cliquez sur BizTalk Messaging Manager.

  2. Dans BizTalk Messaging Manager, dans le menu Fichier, pointez sur Nouvelle, puis cliquez sur Définition de document.

  3. Dans la boîte de dialogue Nouvelle définition de document, dans la zone Nom de la définition de document, tapez un nom pour la définition de document (par exemple, BonCommande ou DocTransfertCatalogue).

Le nom de la définition de document doit être identique à la valeur entrée dans la boîte de dialogue Propriétés de Configuration par défaut de l’application de Commerce Server, dans la zone Type de bon de commande de BizTalk. Si ces deux valeurs sont différentes, la soumission du bon de commande se soldera par un échec.

Pour plus d’informations sur la définition des propriétés de Configuration par défaut de l’application, consultez Configuration de Commerce Server pour l’utilisation de BizTalk Server.

  4. Activez la case à cocher Spécification de document, puis cliquez sur Parcourir.

  5. Dans la boîte de dialogue Sélectionnez une spécification de document dans le référentiel WebDAV, double-cliquez sur le dossier Microsoft.

  6. Sélectionnez le fichier .xml (par exemple, POSchema.xml), puis cliquez sur Ouvrir.

  7. Dans la boîte de dialogue Nouvelle définition de document, cliquez sur OK.

Le bon de commande est créé avec un fichier XML (Extensible Markup Language) personnalisé associé.

Voir aussi

Configuration de Commerce Server pour l’utilisation de BizTalk Server

Création d’enveloppes sur le serveur source


Création d'enveloppes sur le serveur source

Création d’enveloppes sur le serveur source

Une enveloppe contient un en-tête et parfois un pied de page qui précède ou encapsule des données commerciales électroniques pour le transport des données vers une organisation de destination. BizTalk Server 2000 utilise les propriétés d’enveloppe spécifiées dans un port d’échanges pour déterminer le format d’enveloppe utilisé pour préparer des documents au transport.

Pour créer une enveloppe pour le serveur source

  1. Sur le serveur BizTalk Server source, cliquez sur Démarrer, pointez sur Programmes, sur Microsoft BizTalk Server 2000, puis cliquez sur BizTalk Messaging Manager.

  2. Dans BizTalk Messaging Manager, dans le menu Fichier, pointez sur Nouvelle, puis cliquez sur Enveloppe.

  3. Dans la boîte de dialogue Nouvelle enveloppe, dans la zone Nom d’enveloppe, tapez le nom de l’enveloppe (par exemple, EnveloppeBC), puis cliquez sur OK.

Si vous n’attribuez pas un fichier XML (Extensible Markup Language) personnalisé à l’enveloppe que vous venez de créer, le fichier XML par défaut est attribué à cette enveloppe.

Voir aussi

Configuration de Commerce Server pour l’utilisation de BizTalk Server

Création d’un port d’échanges sur le serveur source


Création d'un port d'échanges sur le serveur source

Création d’un port d’échanges sur le serveur source

Un port d’échanges est un ensemble de règles configurées à l’aide de BizTalk Messaging Manager, qui permettent de définir comment les documents sont enveloppés, sécurisés et transportés vers l’organisation de destination. Les documents transportés par un port proviennent de la source spécifiée dans un canal associé. Un canal est un ensemble de propriétés que vous pouvez utiliser pour fournir à BizTalk Server les règles lui permettant de traiter un document reçu.

Dans un port d’échanges, vous indiquez une organisation ou une application de destination pour les documents.

Pour créer un port d’échanges sur le serveur source

  1. Sur le serveur BizTalk Server source, cliquez sur Démarrer, pointez sur Programmes, sur Microsoft BizTalk Server 2000, puis cliquez sur BizTalk Messaging Manager.

  2. Dans BizTalk Messaging Manager, dans le menu Fichier, pointez sur Nouveau, sur Port d’échanges, puis cliquez sur Vers une organisation.

  3. Dans l’Assistant Nouveau port d’échanges, dans l’écran Informations générales, dans la zone Nom, tapez le nom du port (par exemple, PortSortieDestination), puis cliquez sur Suivant.

  4. Dans l’écran Organisation de destination, sélectionnez l’option Organisation, puis cliquez sur Parcourir à droite de la zone Nom.

  5. Dans la boîte de dialogue Sélectionner une organisation, sélectionnez une organisation de destination (par exemple, OrgDestination), puis cliquez sur OK.

  6. Cliquez sur Parcourir à droite de la zone Adresse.

  7. Dans la boîte de dialogue Transport principal, dans la zone Type de transport, sélectionnez HTTP dans la liste déroulante.

  8. Dans la zone Adresse, tapez http://<nom serveur destination>/<nom site>/ReceiveStandard.asp, puis cliquez sur OK.

Il s’agit de l’adresse URL du fournisseur auquel vous envoyez des bons de commande.

  9. Cliquez sur Suivant.

  10. Dans l’écran Informations d’enveloppe, dans la zone Informations d’enveloppe, sélectionnez Enveloppe BC dans la liste déroulante, puis cliquez sur Suivant.

  11. Dans l’écran Informations de sécurité, assurez-vous que la case à cocher Créer un canal pour ce port d’échanges est activée.

  12. Dans la zone Type de canal, sélectionnez À partir d’une application dans la liste déroulante, puis cliquez sur Terminer.

  13. Dans l’écran Informations générales, cliquez sur Annuler.

Vous avez créé un port d’échanges entre l’organisation source et l’organisation de destination.

Voir aussi

Création d’un canal sur le serveur source


Création d'un canal sur le serveur source

Création d’un canal sur le serveur source

Un canal est un ensemble de propriétés que vous utilisez pour fournir à BizTalk Server 2000 les règles lui permettant de traiter un document reçu. Une fois traité par le canal, le document est transmis au port d’échanges ou à la liste de distribution associé, puis transporté vers la destination spécifiée. Vous pouvez créer un ou plusieurs canaux pour un port d’échanges ou une liste de distribution.

Pour créer un canal sur le serveur source

  1. Sur le serveur BizTalk Server source, cliquez sur Démarrer, pointez sur Programmes, sur Microsoft BizTalk Server 2000, puis cliquez sur BizTalk Messaging Manager.

  2. Dans BizTalk Messaging Manager, dans le volet gauche, cliquez sur le lien Ports d’échanges dans la zone Rechercher d’autres éléments, puis cliquez sur Rechercher.

  3. Sélectionnez le port d’échanges auquel le canal sera associé (par exemple, PortSortieDestination).

  4. Dans le menu Fichier, pointez sur Nouveau, sur Canal, puis cliquez sur À partir d’une application.

  5. Dans l’Assistant Nouveau canal, dans l’écran Informations générales, dans la zone Nom, tapez le nom du canal (par exemple, CanalSortieDestination), puis cliquez sur Suivant.

  6. Dans l’écran Application source, assurez-vous que l’option Application est sélectionnée.

  7. Dans la zone Nom, sélectionnez le nom de l’application dans la liste déroulante (par exemple, ApplicationBC pour les bons de commande ou DocTransfertCatalogue pour le transfert de catalogues).

  8. Dans la zone Identificateur d’organisation, assurez-vous que <organisation source>/ <valeur identificateur> (par défaut) est bien l’identificateur (par exemple, Ma Société / Expéditeur (par défaut), puis cliquez sur Suivant.

  9. Dans l’écran Document entrant, cliquez sur Parcourir à droite de la zone Nom de la définition du document entrant.

  10. Dans la boîte de dialogue Sélectionner une définition de document, sélectionnez la définition de document (par exemple, BonCommande), puis cliquez sur OK.

  11. Dans l’écran Document entrant, cliquez sur Suivant.

  12. Dans l’écran Document sortant, cliquez sur Parcourir à droite de la zone Nom de la définition du document sortant.

  13. Dans la boîte de dialogue Sélectionner une définition de document, sélectionnez la définition de document (par exemple, BonCommande), puis cliquez sur OK.

  14. Dans l’écran Document sortant, cliquez sur Suivant.

  15. Dans l’écran Consignation dans le journal de document, cliquez sur Suivant.

  16. Dans l’écran Configuration avancée, cliquez sur Avancée.

  17. Dans la boîte de dialogue Ignorer les val. par défaut du port d’échanges, cliquez sur Propriétés.

  18. Dans la boîte de dialogue BizTalk SendHTTPX Properties, dans la zone Nom d’utilisateur, tapez le nom d’utilisateur complet. Par exemple, PARIS\<nom utilisateur>.

  19. Dans la zone Mot de passe, tapez le mot de passe de l’utilisateur, puis cliquez sur OK.

  20. Dans la boîte de dialogue Ignorer les val. par défaut du port d’échanges, cliquez sur OK.

  21. Dans l’écran Configuration avancée, cliquez sur Terminer.

Vous avez créé un canal à partir de l’organisation principale pour le port d’échanges créé lors de la procédure « Pour créer un port d’échanges sur le serveur source ».

Voir aussi

Configuration du serveur de destination


Configuration du serveur de destination

Pour configurer un port d’échanges entre deux organisations, vous devez configurer le serveur source et le serveur de destination. Par exemple, votre serveur BizTalk Server peut être le serveur source et le serveur BizTalk Server du fournisseur peut être le serveur de destination.

Effectuez les étapes décrites dans cette section pour configurer l’échange de bons de commande sur le serveur de destination. Pour obtenir des instructions sur la configuration du serveur source, consultez Configuration du serveur source.

Cette section contient les rubriques suivantes :

  • Exemple : Configuration du serveur de destination pour les bons de commande

  • Copie des fichiers nécessaires pour le serveur de destination

  • Création de définitions de documents sur le serveur de destination

  • Création d’un port d’échanges sur le serveur de destination

  • Création d’un canal sur le serveur de destination


Exemple : Configuration du serveur de destination pour les bons de commande

Les tableaux suivants contiennent des exemples de valeurs pour BizTalk Server nécessaires à la configuration d’un serveur de destination pour l’échange de bons de commande.

Exemples de valeurs pour les propriétés de l’organisation de destination

Attribuez à cette propriété | La valeur
Nom de l’organisation | Organisation principale
Nom du client | MaSociété
Qualificateur | MaSociété
Valeur de l’identificateur | Destinataire
Nom de l’application | ApplicationBC

Exemples de valeurs pour les propriétés de l’organisation source

Attribuez à cette propriété | La valeur
Nom de l’organisation | Source
Nom du client | MaSociété
Qualificateur | MaSociété
Valeur de l’identificateur | Expéditeur

Exemples de valeurs pour les propriétés du document

Attribuez à cette propriété | La valeur
Nom du document | BonCommande
Spécification de document | .../Microsoft/POSchema.xml

Exemples de valeurs pour l’attribution d’un port d’échanges à une application

Attribuez à cette propriété | La valeur
Nom du port | PortEntréeSource
Nom de l’application | ApplicationBC
Adresse HTTP | http://<nom serveur destination>/Retail/_recvpo.asp Utilisez un serveur de destination valide en tant que <nom serveur destination>.
Enveloppe | EnveloppeBC
L’identificateur de l’enveloppe | MaSociété / Destinataire (par défaut)

Exemples de valeurs pour l’attribution d’un canal à partir d’une organisation

Attribuez à cette propriété | La valeur
Nom | CanalEntréeSource
Nom de l’application source | ApplicationBC
Identificateur d’organisation | MaSociété/Expéditeur (par défaut)
Document entrant | BonCommande
Document sortant | BonCommande

Voir aussi

Configuration de Commerce Server pour l’utilisation de BizTalk Server

Configuration du serveur source

Configuration du serveur de destination

Configuration de vos catalogues pour BizTalk Server

Exemple : Configuration du serveur source pour l’échange de catalogues


Copie des fichiers nécessaires pour le serveur de destination

Les serveurs source et de destination doivent disposer du même fichier POSchema.xml.

Remarque

  • Les serveurs source et de destination doivent avoir les mêmes catalogues de produits. Sinon, la soumission des bons de commande se soldera par un échec. Pour plus d’informations sur la configuration de vos catalogues, consultez Configuration de vos catalogues pour BizTalk Server.

Pour copier ReceiveStandard.asp sur le serveur de destination

  • Copiez le fichier ReceiveStandard.asp depuis <lecteur:>\Program Files\Microsoft BizTalk Server\SDK\Samples vers <lecteur:>\inetpub\wwwroot\<nom site>.

Pour copier POSchema.xml sur le serveur de destination

  • Copiez le fichier POSchema.xml depuis <lecteur:>\inetpub\wwwroot\<nom site> vers <lecteur:>\Program Files\Microsoft BizTalk Server\BizTalkServerRepository\DocSpecs\Microsoft.

Voir aussi

Copie des fichiers nécessaires pour le serveur source

Configuration de vos catalogues pour BizTalk Server


Création d'une organisation de destination sur le serveur de destination

Création d’une organisation de destination sur le serveur de destination

Le serveur BizTalk Server de destination est le fournisseur. Une organisation peut être source ou de destination dans un port d’échanges, une liste de distribution ou un canal. Une organisation peut correspondre à un partenaire commercial externe, à votre propre société ou encore à une unité d’un partenaire commercial ou de votre société. Chaque organisation a un identificateur unique qui permet à BizTalk Server 2000 et aux autres organisations partenaires de la reconnaître.

Pour prendre en charge l’authentification de base, vous utilisez le fichier ReceiveStandard.asp livré avec BizTalk Server. La page ReceiveStandard.asp collecte des informations et les soumet à BizTalk Server. Pour implémenter un site Web sécurisé, vous devez définir des privilèges sur ReceiveStandard.asp.

Sur le serveur de destination, vous devez créer une organisation source et une organisation de destination.

Pour définir des privilèges sur ReceiveStandard.asp

Pour créer une organisation de destination sur le serveur de destination

Pour créer une organisation source

Pour définir des privilèges sur ReceiveStandard.asp

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Outils d’administration, puis cliquez sur Gestionnaire des services Internet.

  2. Développez <nom serveur>, développez le site Web par défaut, sélectionnez le site (par exemple, Retail), puis cliquez avec le bouton droit sur ReceiveStandard.asp.

  3. Sous l’onglet Sécurité du fichier, dans la section Connexions anonymes et contrôle d’authentification, cliquez sur Modifier.

  4. Dans la boîte de dialogue Méthodes d’authentification, dans la section Accès anonyme, cliquez sur Modifier.

  5. Dans la boîte de dialogue Compte d’utilisateur anonyme, dans la zone Nom d’utilisateur, tapez le nom d’utilisateur Windows du compte utilisé pour accéder à cet ordinateur. Dans la zone Mot de passe, tapez le mot de passe du compte d’utilisateur Windows.

  6. Dans la boîte de dialogue Compte d’utilisateur anonyme, cliquez sur OK.

  7. Dans la boîte de dialogue Méthodes d’authentification, cliquez sur OK.

  8. Dans la boîte de dialogue Propriétés de ReceiveStandard.asp, cliquez sur OK.

  9. Fermez le Gestionnaire des services Internet.

ReceiveStandard.asp est configuré pour un fonctionnement sécurisé. L’accès au site est verrouillé et le destinataire d’un échange de bon de commande ou de catalogue devra connaître le compte d’utilisateur et le mot de passe.

Pour créer une organisation de destination sur le serveur de destination

  1. Sur le serveur BizTalk Server de destination, cliquez sur Démarrer, pointez sur Programmes, sur Microsoft BizTalk Server 2000, puis cliquez sur BizTalk Messaging Manager.

  2. Dans BizTalk Messaging Manager, dans la boîte de dialogue Options de configuration, cliquez sur Annuler pour fermer cette boîte de dialogue.

  3. Dans le volet gauche, dans la zone Rechercher d’autres éléments, cliquez sur Organisations, puis sur Rechercher pour afficher la liste des organisations disponibles.

  4. Dans la liste des organisations disponibles, double-cliquez sur Organisation principale.

  5. Dans la boîte de dialogue Propriétés de l’organisation, sous l’onglet Identificateurs, cliquez sur Ajouter.

  6. Dans la boîte de dialogue Nouvel identificateur, vérifiez que l’option Personnalisé est sélectionnée, puis tapez MaSociété.

  7. Dans la zone Qualificateur, tapez MaSociété.

  8. Dans la zone Valeur, tapez le nom de l’organisation source (par exemple, Destinataire).

  9. Activez la case à cocher Définir par défaut pour définir l’organisation source en tant qu’organisation par défaut, puis cliquez sur OK.

Vous devez indiquer une organisation par défaut avant de créer un port d’échanges. L’organisation par défaut peut servir de source ou de destination pour chaque nouveau port d’échanges. Vous pouvez à tout moment spécifier une autre organisation par défaut, puis créer des ports d’échanges qui utilisent cette nouvelle organisation par défaut.

  10. Sous l’onglet Applications, cliquez sur Ajouter.

  11. Dans la boîte de dialogue Nouvelle application, tapez le nom de l’application (par exemple, ApplicationBC), puis cliquez sur OK.

  12. Dans la boîte de dialogue Nouvelle organisation, cliquez sur OK.

Vous avez créé une organisation source sur le serveur de destination et spécifié cette organisation comme organisation par défaut.

Pour créer une organisation source

  1. Dans BizTalk Messaging Manager, dans le menu Fichier, pointez sur Nouvelle, puis cliquez sur Organisation.

  2. Dans la boîte de dialogue Nouvelle organisation, sous l’onglet Général, dans la zone Nom de l’organisation, tapez le nom de l’organisation de destination (par exemple, Source).

  3. Dans la zone Commentaires, tapez tout commentaire nécessaire concernant l’organisation de destination.

  4. Sous l’onglet Identificateurs, cliquez sur Ajouter.

  5. Dans la zone Nouvel identificateur, sélectionnez l’option Personnalisé, puis tapez MaSociété.

  6. Dans la zone Qualificateur, tapez MaSociété.

  7. Dans la zone Valeur, tapez le nom du destinataire (par exemple, Expéditeur), puis cliquez sur OK.

  8. Dans la boîte de dialogue Nouvelle organisation, cliquez sur OK.

L’organisation de destination est créée.

Voir aussi

Création de définitions de documents sur le serveur de destination


Création de définitions de documents sur le serveur de destination

Une définition de document représente un document commercial dans un port d’échanges, un canal ou une liste de distribution. Une définition de document fournit un pointeur vers une spécification qui définit ce document. Une définition de document peut être associée à un nombre illimité de ports d’échanges, de canaux et de listes de distribution.

Le serveur BizTalk Server de destination est le fournisseur.

Pour créer une définition de document avec un fichier XML associé

  1. Sur le serveur BizTalk Server de destination, cliquez sur Démarrer, pointez sur Programmes, sur Microsoft BizTalk Server 2000, puis cliquez sur BizTalk Messaging Manager.

  2. Dans BizTalk Messaging Manager, dans le menu Fichier, pointez sur Nouvelle, puis cliquez sur Définition de document.

  3. Dans la boîte de dialogue Nouvelle définition de document, dans la zone Nom de la définition de document, tapez un nom pour la définition de document (par exemple, BonCommande).

  4. Activez la case à cocher Spécification de document, puis cliquez sur Parcourir.

  5. Dans la boîte de dialogue Sélectionnez une spécification de document dans le référentiel WebDAV, double-cliquez sur le dossier Microsoft.

  6. Sélectionnez un fichier .xml (par exemple, POSchema.xml), puis cliquez sur Ouvrir.

  7. Dans la boîte de dialogue Nouvelle définition de document, cliquez sur OK.

Vous avez créé un bon de commande avec un fichier XML personnalisé associé.

Voir aussi

Création d’un port d’échanges sur le serveur de destination


Création d'un port d'échanges sur le serveur de destination

Création d’un port d’échanges sur le serveur de destination

Le serveur BizTalk Server de destination est le fournisseur.

Pour créer un port d’échanges sur le serveur de destination

  1. Sur le serveur BizTalk Server de destination, cliquez sur Démarrer, pointez sur Programmes, sur Microsoft BizTalk Server 2000, puis cliquez sur BizTalk Messaging Manager.

  2. Dans BizTalk Messaging Manager, dans le menu Fichier, pointez sur Nouveau, sur Port, puis cliquez sur Vers une organisation.

  3. Dans l’Assistant Nouveau port d’échanges, dans l’écran Informations générales, dans la zone Nom, tapez le nom du port (par exemple, PortEntréeSource), puis cliquez sur Suivant.

  4. Dans l’écran Application de destination, sélectionnez l’option Application, puis dans la zone Nom, sélectionnez le nom de l’application (par exemple, Application BC) dans la liste déroulante.

  5. Dans la section Transport principal, cliquez sur Parcourir à droite de la zone Adresse.

  6. Dans la boîte de dialogue Transport principal, dans la zone Type de transport, sélectionnez HTTP dans la liste déroulante.

  7. Dans la zone Adresse, tapez http://<nom serveur destination>/<nom site>/_recvpo.asp, puis cliquez sur OK.

  8. Cliquez sur Suivant.

  9. Dans l’écran Informations d’enveloppe, laissez la zone Informations d’enveloppe vide car vous utilisez le fichier XML par défaut.

  10. Cliquez sur Suivant.

  11. Dans l’écran Informations de sécurité, assurez-vous que la case à cocher Créer un canal pour ce port d’échanges est activée.

  12. Dans la zone Type de canal, sélectionnez À partir d’une application dans la liste déroulante, puis cliquez sur Terminer.

  13. Dans l’écran Informations générales, cliquez sur Annuler.

Vous avez créé un port d’échanges entre l’organisation principale et l’organisation de destination.

Voir aussi

Création d’un canal sur le serveur de destination


Création d'un canal sur le serveur de destination

Création d’un canal sur le serveur de destination

Un canal est un ensemble de propriétés que vous pouvez utiliser pour fournir à BizTalk Server 2000 les règles lui permettant de traiter un document reçu. Une fois traité par le canal, le document est transmis au port d’échanges ou à la liste de distribution associé, puis transporté vers la destination spécifiée. Vous pouvez créer un ou plusieurs canaux pour un port d’échanges ou une liste de distribution.

Le serveur BizTalk Server de destination est le fournisseur.

Pour créer un canal sur le serveur de destination

  1. Sur le serveur BizTalk Server de destination, cliquez sur Démarrer, pointez sur Programmes, sur Microsoft BizTalk Server 2000, puis cliquez sur BizTalk Messaging Manager.

  2. Dans BizTalk Messaging Manager, dans le volet gauche, cliquez sur le lien Ports d’échanges dans la zone Rechercher d’autres éléments, puis cliquez sur Rechercher.

  3. Sélectionnez le port d’échanges auquel le canal sera associé (par exemple, PortSoumission).

  4. Dans le menu Fichier, pointez sur Nouveau, sur Canal, puis cliquez sur À partir d’une organisation.

  5. Dans l’Assistant Nouveau canal, dans l’écran Informations générales, dans la zone Nom, tapez le nom du canal (par exemple, CanalEntréeSource), puis cliquez sur Suivant.

  6. Dans l’écran Organisation source, assurez-vous que l’option Organisation est sélectionnée.

  7. Cliquez sur Parcourir à droite de la zone Nom.

  8. Dans la boîte de dialogue Sélectionner une organisation, sélectionnez l’organisation de destination (par exemple, MonFournisseur), puis cliquez sur OK.

  9. Dans la zone Identificateur d’organisation, assurez-vous que <organisation source>/ <valeur identificateur> (par défaut) est bien l’identificateur, puis cliquez sur Suivant.

  10. Dans l’écran Document entrant, cliquez sur Parcourir à droite de la zone Nom de la définition du document entrant.

  11. Dans la boîte de dialogue Sélectionner une définition de document, sélectionnez la définition de document (par exemple, BonCommande), puis cliquez sur OK.

  12. Dans l’écran Document entrant, cliquez sur Suivant.

  13. Dans l’écran Document sortant, cliquez sur Parcourir à droite de la zone Nom de la définition du document sortant.

  14. Dans la boîte de dialogue Sélectionner une définition de document, sélectionnez la définition de document (par exemple, BonCommande), puis cliquez sur OK.

  15. Dans l’écran Document sortant, cliquez sur Suivant.

  16. Dans l’écran Consignation dans le journal de document, cliquez sur Suivant.

  17. Dans l’écran Configuration avancée, cliquez sur Terminer.

Vous avez créé un canal entre l’organisation source/expéditeur et le port d’échanges.


Configuration de vos catalogues pour BizTalk Server

Lorsque vous définissez un contrat avec un fournisseur, l’identificateur de ce fournisseur est fourni à Commerce Server. L’identificateur du fournisseur est le nom d’organisation que vous avez spécifié pour ce fournisseur lors de la création d’une organisation de destination pour le serveur source. Pour plus d’informations, consultez Création d’organisations source et de destination sur le serveur source.

Commerce Server affiche l’identificateur du fournisseur dans Commerce Server Business Desk. Il affiche les partenaires commerciaux (organisations) qui prennent en charge le même type de document que votre organisation, et qui utilisent donc un acheminement des documents compatible. Vous pouvez alors utiliser Business Desk pour associer l’identificateur du fournisseur et le catalogue.

Plusieurs catalogues peuvent être associés à un fournisseur donné. Vous pouvez aussi spécifier un fournisseur au niveau du produit. Dans ce cas, vous devez également personnaliser _additem.asp.

Si vous nommez un fournisseur « par défaut », Commerce Server reconnaît votre propre site en tant que fournisseur.

Remarque

  • Lorsqu’un utilisateur commande un article à partir de votre site Web, cet article doit exister dans le catalogue de l’organisation de destination. Si l’organisation de destination ne dispose pas de cet article dans son catalogue, BizTalk Server ne pourra pas envoyer le bon de commande de votre site vers le fournisseur. Il écrira un message d’erreur dans le journal des événements.

Pour associer un catalogue à un fournisseur

  1. À partir de Commerce Server Business Desk, dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue auquel vous souhaitez ajouter l’identificateur de fournisseur, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Éditeur de catalogue - <nom du catalogue>, dans la zone Identificateur du fournisseur, cliquez sur le bouton de sélection [...] pour afficher une liste des identificateurs de fournisseur. Sélectionnez l’identificateur de fournisseur adéquat pour ce catalogue.

    Commerce Server met automatiquement à jour la liste des fournisseurs chaque fois que vous créez un contrat avec un fournisseur à l’aide de BizTalk Server.

  4. Pour enregistrer la modification apportée au catalogue et revenir à l’écran Catalogues, cliquez sur Enregistrement et retour dans la barre d’outils.

Voir aussi

Exemple : Configuration du serveur source pour l’échange de catalogues

Création d’un catalogue

Envoi d’un catalogue à un partenaire commercial


Analyse des sites Commerce Server

Microsoft Windows 2000 Server et Commerce Server 2000 fournissent un ensemble d’outils d’analyse permettant aux administrateurs système d’analyser les performances de leurs sites Commerce Server. Les outils fournis par Windows 2000 Server et Commerce Server vous aident à analyser l’utilisation des sites. Vous pouvez utiliser les résultats de ces analyses pour ajuster les performances des sites en conséquence et vous adapter à l’augmentation du trafic.

La planification et la configuration des outils d’analyse constituent les étapes initiales de l’analyse de vos sites. Après avoir établi un plan d’analyse, consultez Optimisation de Commerce Server pour obtenir davantage d’informations sur l’ajustement des performances de vos sites.

Ce document considère que vous avez une bonne connaissance de l’Observateur d’événements et du Moniteur système. Pour plus d’informations sur l’Observateur d’événements et le Moniteur système, consultez l’aide de Windows 2000 Server.

Cette section contient les rubriques suivantes :

  • À propos de l’analyse des sites. Décrit les outils d’analyse que vous pouvez utiliser.

  • Définition de la configuration de votre analyse. Décrit comment planifier et configurer vos outils d’analyse.

  • Analyse des serveurs de production. Décrit des méthodes permettant d’analyser des serveurs de production.

  • Utilisation des outils d’analyse des performances. Décrit les outils disponibles pour l’analyse des performances des serveurs.

  • Utilisation du composant logiciel enfichable de l’Observateur d’événements. Décrit comment utiliser le composant logiciel enfichable de l’Observateur d’événements ainsi que les différents types de journaux des événements et les événements Windows 2000.

  • Compteurs d’analyse des performances. Décrit les compteurs de performance et explique comment les définir. Répertorie les compteurs fournis avec Commerce Server.


À propos de l'analyse des sites

À propos de l’analyse des sites

Vous pouvez analyser les sites de Commerce Server en utilisant les outils de Microsoft Windows 2000, tels que le Moniteur système, les journaux et alertes de performance ou d’autres outils similaires permettant de prévoir où les goulets d’étranglement peuvent se produire sur votre système. (Un goulet d’étranglement fait référence à un matériel ou à un logiciel fonctionnant à sa capacité maximale.)

Lorsque vous analysez un système s’exécutant sur Windows 2000 Server, vous analysez le comportement de ses objets. Windows 2000 utilise des objets pour identifier et manipuler les ressources système et contient des objets qui représentent des processus individuels, des sections de mémoire partagée et des périphériques physiques.

L’outil de performance de Windows 2000 se compose de deux éléments : le Moniteur système et les journaux et alertes de performance. Le Moniteur système collecte des données sur l’activité des objets, la demande d’objets et le volume d’espace utilisé par les objets. Le Moniteur système regroupe également les compteurs par type d’objet. Il existe un ensemble unique de compteurs pour les processus, la mémoire, le cache, le disque dur et les autres types d’objets qui produisent des informations statistiques.

Commerce Server fournit plus de 200 compteurs extensibles comme outils d’analyse. Les compteurs extensibles sont des compteurs de l’Analyseur de performances fournis avec des applications autres que Windows 2000 ou que vous développez vous-même en utilisant les informations contenues dans le Kit de développement de logiciel (SDK, Software Development Kit) de Windows 2000.

Pour optimiser les performances des sites, vous devez connaître exactement les compteurs que votre système utilise, les données mesurées et la manière dont la mesure est déterminée. Ces informations sont particulièrement importantes lorsque vous recevez des données inattendues ou des résultats incohérents. Pour plus d’informations sur l’analyse des configurations, consultez « Définition d’une configuration d’analyse » dans l’aide de Windows 2000 Server.

Voir aussi

Compteurs de performance de Commerce Server

Définition des compteurs de performance


Définition de la configuration de votre analyse

Vous commencez l’analyse de vos sites en planifiant leur capacité et en configurant vos outils d’analyse de façon à limiter la surcharge liée aux analyses. Vous devez créer des configurations d’analyse qui peuvent être enregistrées et copiées vers d’autres ordinateurs en utilisant le Moniteur système de la console MMC (Microsoft Management Console). Une configuration d’analyse vous aide à mettre en évidence les problèmes des centres de données et à vous représenter le flux du trafic sur votre système. La création de cette configuration peut aussi vous aider à comprendre les problèmes logiciels des sites et à réaliser l’interdépendance des logiciels.

Lorsque vous planifiez votre configuration, vous devez effectuer les opérations suivantes :

  • Configurer les journaux et alertes de performance pour communiquer les données des compteurs recommandés à intervalles réguliers, par exemple toutes les 10 ou 15 minutes.

  • Conserver les journaux pendant de longues périodes.

  • Stocker les données qui en résultent dans une base de données et interroger les données de façon à les analyser et à effectuer un rapport sur les performances générales, l’analyse des tendances et la planification de la capacité.

Planification de la capacité

Limitation de la surcharge liée aux analyses

Planification de la capacité

La planification de la capacité est le processus qui consiste à planifier les besoins en termes d’applications, de matériel et de réseau pour prendre en charge le trafic prévu et atteindre les performances souhaitées pour le site. Vous déterminez la capacité en mesurant le nombre d’utilisateurs visitant votre site, en déterminant le nombre de demandes effectuées par les utilisateurs sur le serveur, puis en calculant les ressources informatiques (unité centrale, mémoire vive (RAM), espace disque, bande passante et son utilisation, bande passante de réseau) nécessaires pour supporter les niveaux d’utilisation présents et futurs.

Pour assurer une capacité adéquate, vous devez calculer la quantité de matériel informatique nécessaire pour traiter la charge imposée par les milliers ou les centaines de milliers d’utilisateurs sur votre site. Ces calculs peuvent vous aider à localiser les zones de faiblesse susceptibles d’entraîner une baisse des performances. Vous pouvez résoudre ces problèmes en ajoutant du matériel ou en redéfinissant des pages dynamiques ou d’autres outils utilisant une grande quantité de ressources de l’unité centrale.

Limitation de la surcharge liée aux analyses

  • Les compteurs et outils de performance de Commerce Server sont conçus pour affecter au minimum les performances en termes de surcharge. Cependant, le fonctionnement des outils de performance est affecté par la taille des fichiers et l’espace disque utilisé par les fichiers journaux, qui contribuent à la surcharge.

  • Vous pouvez réduire la taille des fichiers et l’utilisation de l’espace disque en augmentant les intervalles de mise à jour. Vous pouvez également enregistrer les données sur un disque autre que celui faisant l’objet de l’analyse. Un enregistrement fréquent augmente aussi la demande sur les entrées et sorties de disque (E/S).

Accroissement de la surcharge liée aux analyses

  • Si la surcharge liée aux analyses constitue un problème, exécutez seulement les journaux et alertes de performance et n’utilisez aucun graphique du Moniteur système pour l’analyse de votre site. La surcharge peut augmenter sous l’une des conditions suivantes :
    • Vous exécutez le Moniteur système en mode d’affichage graphique.

    • Vous avez sélectionné une option différente de celle par défaut (valeur actuelle) pour un affichage de rapport.

    • Vous effectuez l’échantillonnage des données selon des intervalles très fréquents (inférieurs à trois secondes).

Recommandations pour l’analyse

Vous devez effectuer les opérations suivantes avant de démarrer le Moniteur système ou les journaux et alertes de performance sur l’ordinateur utilisé pour l’analyse, à des fins de diagnostic :

  • Arrêter les programmes d’écran de veille.

  • Désactiver les services qui ne sont pas essentiels ou utiles pour l’analyse.

  • Exécuter le Moniteur système depuis un ordinateur distant. En effectuant ce changement, vous déplacez la majorité de la charge de l’unité centrale et d’E/S vers l’ordinateur distant.

  • Augmenter la taille du fichier d’échange pour correspondre à la taille de la mémoire physique, plus 100 Mo.

  • Utiliser un réseau d’administration privé. Au cours d’une connexion distante, des mises à jour fréquentes peuvent ralentir les performances en raison du transport réseau. L’utilisation d’un réseau d’administration privé, généralement par le biais d’une autre carte d’interface réseau (NIC), résout ce problème. Vous pouvez également réduire l’échantillon de collecte des données. Par exemple, si vous effectuez l’échantillonnage des données avec des intervalles de trois secondes, utilisez à présent des intervalles de cinq secondes. Vous pouvez aussi utiliser deux interfaces/ordinateurs réseau pour que chaque segment du réseau effectue des opérations différentes. Par exemple, un ordinateur peut être dédié à la mise à jour des nouvelles et un autre peut être dédié à la mise à jour des transactions boursières.

Recommandations supplémentaires

Vous trouverez ci-dessous des recommandations supplémentaires pour utiliser des outils de performance en occasionnant une surcharge minimale :

  • Analyse des résultats de performance et établissement d’une ligne de base pour ces performances. Consultez les données enregistrées soit sous forme de graphique à l’aide de l’affichage du Moniteur système, soit en les exportant pour les imprimer. Pour obtenir des informations détaillées sur des compteurs de performance spécifiques, consultez Compteurs de performance de Commerce Server.

  • Définition des alertes. Définissez les alertes en fonction des valeurs des compteurs que vous considérez comme inacceptables, telles qu’elles sont indiquées dans votre évaluation de la ligne de base.

  • Réduction du nombre de compteurs. Réduisez le nombre des compteurs de performance pour ne garder que ceux dont vous avez besoin. Pour avoir une liste des compteurs recommandés, consultez Compteurs de performance du matériel et Compteurs de performance de Commerce Server.

  • Planification. Analysez les tendances en ce qui concerne la planification de la capacité et ajoutez ou mettez des composants à niveau si nécessaire. Conservez les données enregistrées dans une base de données et observez les changements pour identifier ceux en rapport avec des besoins en ressources. Après avoir observé des changements d’activité ou de demande de ressources, vous pouvez identifier les endroits nécessitant des ressources supplémentaires.

Voir aussi

Optimisation de Commerce Server


Analyse des serveurs de production

Si vous gérez une Web farm d’ordinateurs exécutant Commerce Server 2000, vous pouvez analyser les performances du système en utilisant le Moniteur système de Windows 2000 ou d’autres outils similaires permettant de prévoir où les goulets d’étranglement peuvent se produire. Vous pouvez analyser de façon efficace vos serveurs de production en exécutant des tests d’étalonnage, en mettant à jour des profils d’utilisation et en analysant des compteurs de performance pour Commerce Server.

Exécuter des tests d’étalonnage

Mettre à jour des profils d’utilisation

Analyser les compteurs de performance de Commerce Server

Exécuter des tests d’étalonnage

Un système de stockage RAID Compaq, ou un sous-système de disques similaire, présente des caractéristiques de performances très différentes selon la configuration matérielle en place. La méthode conseillée consiste à étalonner le sous-système pour déterminer les éléments suivants :

  • Nombre maximal de lectures de disque physique par seconde

  • Nombre maximal d’écritures de disque physique par seconde

  • Nombre maximal d’octets disque par seconde

Les sous-systèmes de disque modernes ont plusieurs niveaux de complexité. Dans le cas de lecteurs de disque unique ou de solutions SCSI simples, le compteur % Temps du disque donne une image précise de la capacité du disque physique. Dans le cas de configurations plus complexes comprenant plusieurs disques, la file d’attente de disque peut augmenter jusqu’à atteindre le nombre de piles actives dans le groupe avant que chaque élément soit placé effectivement en attente de transfert.

Quant aux nouveaux systèmes de disques LVD (Low Voltage Differential) ou Fibre Channel, les problèmes sont plus complexes. Vous devez observer les performances et la capacité de ces systèmes haut de gamme à l’aide des outils fournis par le fabricant. De plus, il existe une limite maximale de bande passante dans le bus système du serveur et de l’interface SCSI ou Fibre Channel. Le débit total du disque doit être comparé à ces limitations.

Mettre à jour des profils d’utilisation

Le profil d’utilisation est un modèle statistique de l’interaction d’un utilisateur moyen et du nombre maximal d’utilisateurs simultanés que le site doit prendre en charge durant les pics d’utilisation. L’analyse du comportement des utilisateurs en vue de déterminer si ce dernier a changé constitue l’un des aspects importants de l’analyse d’un site. Il est primordial de surveiller l’augmentation des tendances en ce qui concerne l’activité des utilisateurs. Cependant, il est encore plus important de communiquer ces données aux développeurs, aux testeurs et aux planificateurs de capacité pour qu’ils puissent planifier les configurations matérielles et logicielles futures.

Vous devez utiliser les compteurs de performance de l’objet Gestion de profil utilisateur pour mettre à jour et analyser le comportement des utilisateurs.

Analyser les compteurs de performance de Commerce Server

Consultez la liste des compteurs de performance de Commerce Server. Commencez par ajouter les compteurs de cette liste au Moniteur système. Vous pourrez ajouter d’autres compteurs plus tard. La figure suivante montre le Moniteur système doté des compteurs de performance supplémentaires des objets Gestion de profil utilisateur et Catalogue.

(Numéro art) Console de performance du Moniteur système

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Voir aussi

Utilisation des outils d’analyse des performances

Compteurs de performance du matériel

Compteurs de performance de Commerce Server


Utilisation des outils d'analyse des performances

Utilisation des outils d’analyse des performances

L’outil de performance de Windows 2000 se compose de deux éléments : le Moniteur système et les journaux et alertes de performance. Avec le Moniteur système, vous pouvez collecter et consulter des données en temps réel sur la mémoire, le disque, le processeur, le réseau et toute autre activité sous forme de graphique, d’histogramme ou de rapport. Les journaux et alertes de performance vous permettent de configurer les journaux pour enregistrer les données de performance et définir des alertes système pour vous informer lorsque la valeur d’un compteur spécifié est au-dessus ou au-dessous d’un seuil défini. Cette section traite essentiellement du Moniteur système. (Pour plus d’informations sur l’utilisation des journaux et alertes de performance, ouvrez Commerce Server Manager, cliquez avec le bouton droit sur Journaux et alertes de performance, puis cliquez sur Aide.)

Cette section contient les rubriques suivantes :

  • Moniteur système

  • Autres outils d’analyse des performances

Pour plus d’informations sur l’outil de performance, consultez l’aide de Windows 2000 Server.


Moniteur système

Le Moniteur système permet de mesurer les performances de votre propre ordinateur ou d’autres ordinateurs sur un réseau. Il utilise une série de compteurs qui effectuent le suivi des données, par exemple le nombre de processus en attente de temps de disque, le nombre de paquets réseau transmis par seconde et le pourcentage d’utilisation du processeur. Vous pouvez, grâce à ces données, créer des graphiques, définir des alertes et mettre en forme des rapports qui vous permettent d’évaluer et d’ajuster les performances du système. Les données peuvent être affichées au fur et à mesure qu’elles sont collectées, stockées dans des fichiers journaux pour une utilisation et comparaison ultérieures, ou les deux.

Voir aussi

Compteurs de performance de Commerce Server


Autres outils d'analyse des performances

Autres outils d’analyse des performances

Vous pouvez utiliser les divers outils d’analyse des serveurs et ressources disponibles dans Microsoft Windows 2000 Server et Microsoft Visual Studio pour analyser les sites Commerce Server 2000.

Health Monitor

Moniteur IPSec (Internet Protocol Security)

Microsoft Web Application Stress Tool

Moniteur réseau

Générateur de profils SQL Server

Visual Studio Analyzer

Health Monitor

Health Monitor est un service disponible dans Microsoft Application Center 2000. Il affiche les événements et les dépassements de seuil en exécutant un agent sur chaque serveur analysé et en effectuant le suivi des valeurs dans l’interface WMI (Windows Machine Interface). Pour plus d’informations sur Application Center, consultez l’aide de Microsoft Application Center 2000.

Moniteur IPSec (Internet Protocol Security)

Windows 2000 fournit le moniteur IPSec (Internet Protocol Security) pour confirmer le bon fonctionnement de vos communications sécurisées. Il affiche les associations de sécurité actives sur les ordinateurs locaux ou distants. Par exemple, vous pouvez utiliser le moniteur IPSec pour déterminer s’il y a eu des échecs de schéma d’authentification ou d’associations de sécurité, ce qui indiquerait la présence de paramètres de stratégie de sécurité incompatibles.

Microsoft Web Application Stress Tool

L’outil WAS (Web Application Stress) de Microsoft est un outil de simulation développé par des testeurs Web pour reproduire de façon réaliste plusieurs navigateurs demandant des pages d’une application Web. Microsoft a conçu l’outil pour qu’il soit convivial en masquant quelques-unes des complexités d’un test de serveur Web. L’outil WAS est pour cette raison utile à quiconque est intéressé dans la collecte des données de performance d’un site Web.

Il représente la consolidation de beaucoup des fonctionnalités développées dans WAS au cours des années aussi bien que de nouvelles fonctionnalités. En outre, la version actuelle comprend des fonctionnalités essentielles pour le test de stress de sites sur trois niveaux, personnalisés et comportant des pages ASP qui s’exécutent sur Windows 2000.

Moniteur réseau

Le Moniteur réseau (Netmon.exe) est un outil d’administration de Windows 2000 permettant d’effectuer le suivi du trafic réseau. Le Moniteur réseau sert aussi à capturer le trafic réseau en vue de le visualiser et de l’analyser. Vous pouvez utiliser cet outil pour exécuter des tâches comme l’analyse de données capturées précédemment à l’aide de méthodes définies par l’utilisateur, l’extraction de données des analyseurs de protocole définis, ainsi que l’analyse du trafic en temps réel sur votre réseau.

Le Moniteur réseau est utile pour capturer les paquets entre les navigateurs, les serveurs Web et SQL Server. Il fournit des informations essentielles sur la synchronisation ainsi que sur la taille des paquets, l’utilisation du réseau et beaucoup d’autres statistiques qui peuvent s’avérer importantes pour gérer les performances du système. Il n’est pas installé par défaut, mais vous pouvez l’installer en utilisant l’option Ajout/Suppression de programmes du Panneau de configuration.

Générateur de profils SQL Server

Le Générateur de profils SQL Server est un outil qui capture les événements de Microsoft SQL Server à partir d’un serveur. Les événements sont enregistrés dans un fichier de suivi que vous pouvez analyser ou utiliser pour recréer plus tard une série d’étapes spécifique lorsque vous essayez de diagnostiquer un problème. Vous pouvez utiliser le Générateur de profils SQL Server pour :

  • Vérifier chaque étape des requêtes problématiques pour trouver la cause du problème.

  • Rechercher et diagnostiquer les requêtes s’exécutant lentement.

  • Capturer la série d’instructions SQL aboutissant à un problème. Le suivi enregistré peut ensuite être utilisé pour répliquer le problème sur un serveur de test où il peut être diagnostiqué.

  • Analyser les performances de SQL Server pour ajuster les performances de la base de données.

Visual Studio Analyzer

Vous pouvez utiliser Visual Studio Analyzer, un outil de Microsoft Visual Studio 6.0, Édition Entreprise, pour analyser les performances, isoler les défauts de pagination et comprendre la structure de vos applications distribuées. Visual Studio Analyzer peut également être utilisé avec les applications et systèmes créés avec n’importe lequel des outils de Visual Studio.

Plusieurs technologies Microsoft, telles que COM (Object Model Component), les objets de données ActiveX (ADO, ActiveX Data Objects) et COM+, sont livrées avec la capacité de fournir des informations à Visual Studio Analyzer. Si vos applications utilisent l’une de ces technologies, vous pouvez obtenir des informations détaillées sur cette utilisation dans Visual Studio Analyzer. En outre, vous pouvez personnaliser vos propres applications pour fournir des informations à Visual Studio Analyzer.


Utilisation du composant logiciel enfichable de l'Observateur d'événements

Utilisation du composant logiciel enfichable de l’Observateur d’événements

Commerce Server 2000 génère des événements dans le composant logiciel enfichable de l’Observateur d’événements pour que les administrateurs système puissent vérifier que Commerce Server s’exécute correctement. L’Observateur d’événements effectue le suivi des événements d’information, d’avertissement et d’erreur. Les journaux de l’Observateur d’événements fournissent un enregistrement d’audit pour tous les événements de Commerce Server ainsi que tous les événements de Microsoft Windows, ce qui comprend des processus tels que les heures d’ouverture de session et de connexion.

Windows 2000 enregistre les événements dans trois types de journaux :

  • Journal Applications. Contient des événements enregistrés par des applications ou des programmes. Par exemple, un programme de base de données peut enregistrer une erreur de fichier dans le journal Applications. Votre développeur de site décide quels événements enregistrer. Utilisez ce journal pour vérifier l’importation ou l’exportation d’un catalogue.

  • Journal Système. Contient des événements enregistrés par les composants système de Windows 2000. Par exemple, l’échec du chargement d’un pilote durant le démarrage est enregistré dans le journal Système. Les types d’événements enregistrés par les composants système sont prédéfinis par Windows 2000.

  • Journal Sécurité. Enregistre des événements de sécurité, tels que des tentatives d’ouverture de session valides et non valides, aussi bien que des événements liés à l’utilisation des ressources, par exemple la création, l’ouverture et la suppression de fichiers. Votre administrateur système peut spécifier quels événements sont enregistrés dans le journal Sécurité. Par exemple, si vous avez activé l’audit des ouvertures de session, les tentatives d’ouverture de session système sont enregistrées dans le journal Sécurité.

Cette section contient la rubrique suivante :

  • Événements Windows


Événements Windows

Les événements Windows et les journaux et alertes de performance sont enregistrés dans le service Journal des événements. Le service Journal des événements démarre automatiquement lorsque vous démarrez Windows 2000. Tous les utilisateurs peuvent afficher les journaux des applications et du système ; cependant, seuls les administrateurs ont accès aux journaux de sécurité.

La sécurité est désactivée par défaut. Vous pouvez utiliser la stratégie de groupe pour activer la sécurité. L’administrateur système peut également définir des stratégies d’audit dans le Registre qui entraînent l’arrêt du système lorsque le journal de sécurité est plein.

L’Observateur d’événements affiche les types d’événements suivants :

  • Erreur. Indique un problème important, tel qu’une perte de données ou une perte de fonctionnalité. Par exemple, si le chargement d’un service échoue au cours du démarrage, une erreur est enregistrée.

  • Avertissement. Indique un événement qui n’est pas nécessairement important, mais qui peut signaler la possibilité d’un problème imminent. Par exemple, un avertissement est enregistré lorsque l’espace disque est insuffisant.

  • Information. Indique un événement qui décrit une opération réussie en rapport avec une application, un pilote ou un service. Par exemple, lorsqu’un pilote réseau est chargé avec succès, un événement d’information est enregistré.

  • Audit des succès. Indique une tentative réussie d’accès à la sécurité, qui fait l’objet d’un audit. Par exemple, la tentative réussie par un utilisateur d’ouvrir une session système est enregistrée en tant qu’événement d’audit des succès.

  • Audit des échecs. Indique une tentative infructueuse d’accès à la sécurité, qui fait l’objet d’un audit. Par exemple, si un utilisateur essaie d’accéder à un lecteur réseau et échoue, la tentative est enregistrée en tant qu’événement d’audit des échecs.

La figure suivante montre comment l’Observateur d’événements apparaît avec quelques événements et alertes.

(Numéro art) Observateur d'événements

Cliquez sur l'illustration pour l'agrandir ou la réduire.


Compteurs d'analyse des performances

Compteurs d’analyse des performances

Le Moniteur système utilise les journaux et alertes de performance pour collecter des données appelées compteurs de performance. Un compteur de performance est un élément de données associé à un objet de performance. Pour chaque compteur que vous sélectionnez, le Moniteur système présente une valeur correspondant à un aspect particulier des performances définies pour l’objet de performance.

Les compteurs de performance vous permettent d’analyser des aspects spécifiques du travail effectué sur votre site par un système ou par un service. Le Moniteur système regroupe les compteurs par type d’objet. Il existe un ensemble unique de compteurs pour les processus Commerce Server, la mémoire, le cache, le disque dur et les autres types d’objets qui produisent des informations statistiques. Pour plus d’informations sur les journaux et alertes de performance, consultez l’aide de Windows 2000 Server.

Cette section contient les rubriques suivantes :

  • Définition des compteurs de performance

  • Compteurs de performance du matériel

  • Compteurs de performance de Commerce Server

  • Analyse de la ressource Predictor


Définition des compteurs de performance

Le Moniteur système permet de définir des compteurs de performance.

Pour définir un compteur de performance

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft Commerce Server, puis cliquez sur Commerce Server Manager.

  2. Cliquez sur Moniteur système pour ouvrir la console des performances.

  3. Dans la console des performances, cliquez sur le signe plus (+) figurant dans la barre d’outils Moniteur système pour ajouter des compteurs de performance à votre serveur.

  4. Dans la boîte de dialogue Ajouter des compteurs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Utiliser les compteurs locaux de l’ordinateur | Spécifier l’utilisation des compteurs sélectionnés sur n’importe quel ordinateur sur lequel la console des performances est exécutée.
    Choisir les compteurs sur | Spécifier l’utilisation des compteurs sélectionnés sur un ordinateur particulier sur le réseau.
    Objet de performance | Sélectionner l’objet de performance auquel ce compteur s’applique. Par exemple, les compteurs de performance de la ressource Predictor sont répertoriés sous l’objet de performance CS2000 : marketing et catalogue.
    Tous les compteurs | Inclure tous les compteurs pour l’objet de performance sélectionné.
    Choisir les compteurs dans la liste | Spécifier que vous souhaitez sélectionner des compteurs individuels pour l’objet de performance sélectionné.
    Toutes les instances | Spécifier l’affichage de toutes les instances du compteur sélectionné.
    Choisir les instances | Spécifier que le Moniteur système utilise toutes les instances sélectionnées dans la liste.

  5. En tant qu’étape facultative, cliquez sur Expliquer pour ouvrir une zone déroulante contenant des données descriptives sur chaque compteur de performance.

  6. Cliquez sur Ajouter pour ajouter tous les compteurs que vous avez sélectionnés, puis cliquez sur Fermer.

Les compteurs de performance que vous avez sélectionnés apparaissent maintenant et commencent à s’exécuter sur la console des performances du Moniteur système. La figure suivante présente la boîte de dialogue Ajouter des compteurs avec les compteurs CS2000 : pipelines exposés.

(Numéro art) Boîte de dialogue Ajouter des compteurs

Cliquez sur l'illustration pour l'agrandir ou la réduire.


Compteurs de performance du matériel

Le tableau suivant décrit les compteurs de performance du matériel que vous devez analyser. Ces compteurs se trouvent dans le Moniteur système de Microsoft Windows 2000. Chaque serveur de votre centre de données doit être analysé avec des compteurs de performance et les résultats doivent être visualisés de façon collective. Les compteurs figurant dans les objets Système et Mémoire peuvent être utilisés pour analyser la capacité.

Objet de performance | Nom du compteur | Description
Interface réseau | Octets reçus/s Octets envoyés/s | Si une carte réseau est proche d’atteindre sa capacité maximale, une autre carte doit être ajoutée. Si cette valeur est proche d’atteindre la capacité du réseau, un réseau avec une plus grande largeur de bande passante s’avère alors nécessaire.
Instance Inetinfo (dans l’objet Processus) | Taille virtuelle (octets) | Permet de rechercher des pertes de mémoire ou une taille proche d’atteindre la mémoire vive (RAM) disponible maximale. Ce compteur mesure les allocations de mémoire virtuelle.
 | Jeu de travail | Doit se situer bien en dessous de la capacité matérielle disponible, c’est-à-dire que la valeur doit être inférieure à la mémoire vive (RAM) physique.
Mémoire | Octets disponibles | Doit être supérieur à 4 Mo.
 | Pages/s | Doit être inférieur à une page par seconde. Si la mémoire système est insuffisante, il s’agit du plus grand indicateur du problème.
Disque physique | Écritures disque/s Lectures disque/s | Combinés, ces deux compteurs doivent être bien en dessous de la capacité maximale du périphérique disque.
 | % Temps du disque | Pourcentage de temps écoulé pendant lequel le lecteur de disque sélectionné est occupé à traiter les demandes de lecture et d’écriture.
SQL Server | IO transactions/sec | Indique le véritable niveau d’activité du serveur SQL Server.
 | Compiles/sec Recompiles/sec | Indique l’efficacité des requêtes que SQL Server exécute. La réduction de ce nombre est primordiale pour la réduction de la charge de l’unité centrale sur le serveur SQL Server.
Système | Changements de contexte/s | Si ce taux est supérieur à 5 000 changements de contexte par unité centrale, un autre serveur doit être ajouté pour effectuer une évolutivité horizontale du système.
 | % quota du Registre utilisé | Le pic d’utilisation peut être égal à 100 pour cent, mais l’utilisation ne doit pas être soutenue à un niveau dépassant la capacité de votre processeur. Tous les éléments du serveur peuvent faire l’objet d’une évolutivité horizontale.
Service Web | Connexions courantes | Nombre de connexions TCP (Transmission Control Protocol) actives sur le serveur.
 | Requêtes GETt/sec | Nombre de demandes HTTP (Hypertext Transfer Protocol) reçues par le serveur. Il s’agit de l’indicateur principal de trafic sur un site Web.
 | Nb d’utilisateurs non anonymes/sec | Permet de connaître le nombre de demandes des utilisateurs authentifiés sur un site.
Active Server Pages | Nb de requêtes/sec | Taux auquel les pages ASP (Active Server Pages) traitent les demandes. Inclut à la fois les demandes qui ont réussi et qui ont échoué.
 | Nb de requêtes en cours d’exécution | Nombre moyen de demandes en cours d’exécution simultanément durant la période échantillonnée. Les services Internet Information Services (IIS) 5.0 contiennent de nombreuses threads pouvant traiter des demandes simultanément.
 | Durée d’attente de la requête | Doit être très proche de zéro (moins de 100 millisecondes) car il s’agit de la durée pendant laquelle une demande reste en file d’attente avant d’être traitée. Vous ne souhaitez pas que les utilisateurs connaissent de longues périodes d’attente pour traiter leurs transactions de validation.
 | Nb de requêtes en attente | Il ne doit pas y avoir de file d’attente conséquente, sauf durant les périodes de trafic dense.

Octets reçus par seconde

Comparez le compteur Octets reçus/s au total de la bande passante de votre carte réseau pour déterminer si votre connexion réseau crée un goulet d’étranglement. Pour permettre des pics de trafic, vous ne devez généralement pas utiliser plus de 50 pour cent de la capacité. Si le nombre est très proche de la capacité maximale de la connexion et que l’utilisation du processeur et de la mémoire est modérée, la connexion peut devenir un problème.

Nombre de requêtes en cours d’exécution

Si le nombre indiqué par le compteur Nb de requêtes en cours d’exécution est toujours supérieur à un (1), il se peut qu’une page ASP ou un objet pose problème et entraîne la suspension de la demande. Si ce nombre n’est jamais supérieur à un, même durant les périodes de trafic dense, il se peut que vous ayez accidentellement laissé une page ASP introduire des erreurs sur votre site.


Compteurs de performance de Commerce Server

Le tableau suivant répertorie les compteurs de performance disponibles dans Commerce Server 2000. Il est recommandé d’exécuter ces compteurs dans le Moniteur système, situé à la racine de la console de Commerce Server Manager.

Objet de performance | Nom du compteur | Description
CS2000 : Gestion de profil utilisateur (UPM) | AuthMgr : tickets AnonTickets/s | Nombre de tickets ou de paires propriété/valeur définis pour les utilisateurs anonymes, par seconde, sur un site de commerce précis.
 | AuthMgr : authentifications AuthChecks échouées/s | Nombre de vérifications d’authentification échouées, par seconde, sur un site de commerce précis.
 | AuthMgr : authentifications AuthChecks réussies/s | Nombre de vérifications d’authentification réussies, par seconde, sur un site de commerce précis.
 | AuthMgr : objets AuthMgr/s | Nombre d’objets AuthManager créés par seconde sur un site de commerce précis.
 | AuthMgr : tickets AuthTickets/s | Nombre de tickets authentifiés définis par seconde sur un site de commerce précis.
 | AuthMgr : propriétés personnalisées/s | Nombre de propriétés personnalisées définies par seconde sur un site de commerce précis.
 | AuthMgr : propriétés Get_ personnalisées/s | Nombre de propriétés Get_ personnalisées définies par seconde sur un site de commerce précis. Le compteur GetProperty() extrait les valeurs des propriétés personnalisées du cookie utilisateur.
 | AuthMgr : total de tickets AnonTickets | Nombre total de tickets ou de paires propriété/valeur définis pour les utilisateurs anonymes sur un site de commerce précis.
 | AuthMgr : total d’authentifications AuthChecks échouées | Nombre total de vérifications d’authentification échouées par seconde sur un site de commerce précis.
 | AuthMgr : total d’authentifications AuthChecks réussies | Nombre total de vérifications d’authentification réussies sur un site de commerce précis.
 | AuthMgr : total d’objets AuthMgr créés | Nombre total d’objets AuthManager créés sur un site de commerce précis.
 | AuthMgr : total de tickets AuthTickets | Nombre total de tickets authentifiés sur un site de commerce précis.
 | AuthMgr : total des propriétés personnalisées | Nombre total de propriétés personnalisées définies sur un site de commerce précis.
 | AuthMgr : total des propriétés Get_ personnalisées | Nombre total de propriétés Get_ personnalisées définies sur un site de commerce précis.
 | AuthFilter : nombre total d’entrées de jeton-cache | Nombre total d’entrées de jeton-cache en mode d’authentification Windows.
 | AuthFilter : taille du jeton-cache (en octets) | Taille, en octets, du jeton-cache en mode d’authentification Windows.
 | AuthFilter : entrées de jeton-cache (actives) | Nombre d’entrées actives de jeton-cache en mode d’authentification Windows.
 | AuthFilter : nombre d’accès au cache en mode d’authentification Windows | Nombre total d’accès au cache de mots de passe en mode d’authentification Windows.
 | AuthFilter : accès au cache en mode d’authentification Windows/s | Nombre d’accès au cache de mots de passe, par seconde, en mode d’authentification Windows.
 | AuthFilter : échecs d’accès par mot de passe en cache en mode d’authentification Windows | Nombre total d’échecs d’accès par mot de passe en cache en mode d’authentification Windows.
 | AuthFilter : échecs d’accès par mot de passe en cache en mode d’authentification Windows/s | Nombre d’échecs d’accès par mot de passe en cache, par seconde, en mode d’authentification Windows.
 | AuthFilter : total de vérifications AuthChecks NT réussies | Nombre total de vérifications d’authentification Windows réussies par le filtre d’authentification de l’interface ISAPI (Internet Server Application Program Interface). Il s’agit du nombre total de fois que le filtre a transmis les informations d’identification aux services Internet Information Services (IIS) 5.0 et a reçu une réponse positive.
 | AuthFilter : vérifications AuthChecks NT réussies/s | Nombre de vérifications d’authentification Windows réussies par seconde.
 | AuthFilter : total d’authentifications AuthChecks NT échouées | Nombre total de vérifications d’authentification Windows échouées.
 | AuthFilter : authentifications AuthChecks NT échouées/s | Nombre de vérifications d’authentification Windows échouées par seconde.
 | AuthFilter : total des créations de cookie automatique | Nombre total de cookies automatiques générés.
 | AuthFilter : créations de cookie automatique/s | Nombre de cookies automatiques générés par seconde.
 | AuthFilter : nombre total de demandes échouées | Nombre d’échecs dus à un cache de filtres plein, ou à une erreur ayant entraîné une redirection vers une page d’erreur par AuthFilter.
 | UPM : lectures d’objets | Nombre total d’objets de profil récupérés.
 | UPM : objets lus/s | Nombre d’objets de profil récupérés par seconde.
 | UPM : créations d’objets | Nombre total d’objets de profil créés.
 | UPM : objets créés/s | Nombre d’objets de profil créés par seconde.
 | UPM : suppressions d’objets | Nombre total d’objets de profil supprimés.
 | UPM : objets supprimés/s | Nombre d’objets de profil supprimés par seconde.
 | UPM : modifications d’objets | Nombre total d’objets de profil modifiés.
 | UPM : objets modifiés/s | Nombre d’objets de profil modifiés par seconde.
 | UPM : objets du cache | Nombre total d’objets dans le cache.
 | UPM : taux d’accès au cache | Nombre d’accès au cache par seconde.
 | UPM : taux d’échec d’accès au cache | Nombre d’échecs d’accès au cache par seconde.
 | UPM : état de la thread d’arrière-plan | La valeur pour ce compteur est soit 1 (activée) ou 0 (désactivée), indiquant si la thread d’arrière-plan est activée ou non.
 | UPM : nombre de vidages du cache | Nombre de fois où la thread de premier plan a vidé les entrées du cache d’objets de profil pour rechercher un bloc disponible.
 | UPM : enregistrements DTS exportés/s | Nombre d’enregistrements DTS (Data Transaction Services) exportés par seconde.
 | UPM : enregistrements DTS exportés | Nombre total d’enregistrements DTS exportés.
 | UPM : erreurs d’exportation DTS | Nombre total d’erreurs DTS survenues durant l’exportation. Il s’agit d’un nombre cumulatif de champs non correspondants et d’objets qui n’ont pas pu être enregistrés par Data Warehouse.
Catalogues Microsoft Search | Requêtes/sec | Nombre de requêtes effectuées par le système de catalogue par seconde. Les méthodes Query et FreeTextSearch sont utilisées pour enregistrer les valeurs des compteurs de l’Analyseur de performances. Aucune autre méthode n’enregistre les compteurs.
CS2000 : Data Warehouse | CatImport : total des catalogues | Nombre total de catalogues importés durant cette tâche d’importation DTS.
 | CatImport : total des catégories | Nombre total de catégories importées durant cette tâche d’importation DTS.
 | CatImport : total des produits | Nombre total de produits importés durant cette tâche d’importation DTS.
 | UImport : tampons d’accès libres | Nombre de tampons d’accès vides disponibles.
 | UImport : tampons d’accès utilisés | Nombre de tampons d’accès remplis.
 | UImport : accès/s | Taux par seconde de traitement des accès par la tâche d’importation.
 | UImport : visites en cours | Nombre de visites actives enregistrées pendant le traitement des journaux.
 | UImport : événements Commerce | Nombre total d’événements Commerce Server survenus pour la tâche d’importation.
 | UImport : cookies décodés | Nombre total de cookies UPM décodés rencontrés pendant l’exécution de la tâche d’importation.
 | UImport : chaînes de requête | Nombre total de chaînes de requête traitées pendant l’exécution de la tâche d’importation.
 | Total des IP résolus | Nombre total d’IP résolus durant cette tâche de résolution IP DTS.
 | Total des IP non résolus | Nombre total d’IP non résolus durant cette tâche de résolution IP DTS.
 | Provider : total SetColumns | Nombre total d’appels de SetColumns().
 | SES : insertion de ligne validée/s | Nombre de lignes stockées par seconde.
CS2000 : marketing et catalogue | DML : nombre d’erreurs/s liées au publipostage | Nombre d’erreurs renvoyées par le service de publipostage par seconde.
 | DML : travaux de publipostage en cours d’exécution | Nombre total de travaux du service de publipostage en cours d’exécution.
 | DML : messages électroniques envoyés/s | Nombre de messages électroniques envoyés par tous les travaux du service de publipostage par seconde.
 | DML : total des erreurs liées au publipostage | Nombre total d’erreurs renvoyées par tous les travaux du service de publipostage.
 | DML : total des messages envoyés | Nombre total de messages électroniques envoyés par tous les travaux du service de publipostage.
 | EEE : évaluations/seconde | Nombre d’expressions évaluées par seconde.
 | EEE : taille du cache des expressions | Nombre total d’expressions présentes dans le cache d’expressions.
 | EEE : accès au cache des propriétés | Nombre total d’accès au cache des propriétés depuis le démarrage du système.
 | EEE : lectures de propriétés | Nombre total de propriétés lues par l’Évaluateur d’expressions depuis le démarrage du système.
 | EEE : lectures de propriétés/seconde | Nombre de propriétés lues par l’Évaluateur d’expressions par seconde.
 | EEE : accès au cache des résultats | Nombre total d’accès au cache de résultats depuis le démarrage du système.
 | EEE : total des erreurs d’évaluation | Nombre total d’erreurs d’évaluation renvoyées.
 | EEE : total des évaluations | Nombre total d’évaluations renvoyées depuis le démarrage du système, notamment les évaluations réussies et erronées.
 | LRUCache : taille du cache | Nombre total d’éléments dans le cache. La taille du cache peut dépasser de 10 pour cent la taille définie par l’utilisateur, point auquel un vidage se produit pour ramener la taille du cache à la limite prédéfinie. Les compteurs LRUCache sont regroupés par site et non pas par cache individuel.
 | LRUCache : vidages/s | Nombre d’éléments vidés du cache par seconde pour pouvoir contenir les nouveaux éléments ajoutés au cache. Enregistre les éléments vidés par l’algorithme LRU et les éléments vidés manuellement.
 | LRUCache : accès/s | Nombre d’accès au cache par seconde.
 | LRUCache : échecs/s | Nombre d’échecs d’accès au cache par seconde.
 | Predictor : total des chargements d’un modèle de client | Nombre de modèles chargés depuis le dernier redémarrage du service.
 | Predictor : temps moyen de prévision par le client | Temps moyen écoulé nécessaire au renvoi d’une prévision.
 | Predictor : chargements d’un modèle de client depuis un fichier | Nombre de chargements d’un modèle d’analyse depuis un fichier.
 | Predictor : total des prévisions du client | Nombre total de prévisions.
CS2000 : Pipelines | Temps moyen d’exécution | Temps moyen d’exécution en microsecondes du composant de pipeline spécifique.
 | Total des erreurs | Nombre total d’échecs Error Level 3 renvoyés par le composant de pipeline spécifique (PIPEERRORLEV_FAIL) ou FAILED HRESULT.
 | Erreurs par seconde | Nombre d’erreurs générées par le composant de pipeline spécifique par seconde.
 | Total des exécutions | Nombre total d’exécutions du composant de pipeline spécifique.
 | Exécutions par seconde | Nombre d’exécutions effectuées par le composant de pipeline spécifique par seconde.
 | Total des avertissements | Nombre total d’avertissements Error Level 2 renvoyés par le composant de pipeline spécifique (PIPEERRORLEV_WARN).
 | Avertissements par seconde | Nombre d’avertissements renvoyés par le composant de pipeline par seconde.

Remarques

  • Pour l’objet CS 2000 : Data Warehouse, les compteurs de performance de Data Warehouse sont utilisés uniquement lors de l’importation de groupes de données tels que des tâches DTS, des utilisateurs et des catalogues. C’est pour cette raison que les compteurs de performance de Data Warehouse doivent être définis en tant que serveurs anonymes.

  • Pour l’objet CS2000 : Pipelines, il existe une instance de chaque compteur de pipeline pour le pipeline entier.

AuthMgr : authentifications AuthChecks échouées/s

Le compteur AuthMgr : authentifications AuthChecks échouées/s représente le nombre de vérifications d’authentification échouées par seconde. Le taux de ce compteur augmente lorsque la fonction IsAuthenticated() échoue. Elle peut échouer si le cookie ne contient aucun ticket AuthTicket ou si le ticket AuthTicket présent dans le cookie a expiré.

AuthFilter : taille du jeton-cache (en octets)

Le compteur AuthFilter : taille du jeton-cache (en octets) représente le nombre de jetons utilisateur stockés dans le cache du filtre. Ce nombre peut être modifié dans l’objet SiteConfig de la console MMC (Microsoft Management Console). Vous devez modifier ce nombre si le serveur dispose d’une mémoire vive (RAM) suffisante et que le site est fréquemment visité par un grand nombre d’utilisateurs divers sur une courte période.

Catalogue : requêtes/s du catalogue

Le compteur Catalogue : requêtes/s du catalogue représente le taux de requêtes par seconde via l’objet CS2000 : marketing et catalogue sur un serveur. Ces requêtes comprennent toutes les requêtes liées aux catégories et aux produits ainsi que les recherches en texte libre. Vous pouvez réduire le nombre de requêtes effectuées sur le système de catalogue de produits en utilisant un cache de produit ou un cache de recherche pour améliorer les performances. Il est également possible d’effectuer le suivi de la recherche en texte libre avec le compteur recherche>requêtes/s de Microsoft.

Le taux de requête du catalogue est le taux non mis en cache. Si ce taux est élevé, le code de l’application doit être modifié pour tirer avantage d’un mécanisme de mise en cache locale, tel que le compteur LRUCache.

DML : travaux de publipostage en cours d’exécution

Le compteur DML : travaux de publipostage en cours d’exécution mesure le nombre de travaux simultanés. Il n’existe pas de méthode de synchronisation spécifique dans ce service. Il est possible que davantage de travaux simultanés génèrent ou non un plus grand débit.


Analyse de la ressource Predictor

Vous pouvez utiliser les compteurs de performance pour analyser les performances de la ressource Predictor. La ressource Predictor dispose de quatre compteurs de performance ; un (le compteur Temps moyen de prévision par le client) qui permet de mesurer la rapidité à laquelle les prévisions ont lieu et trois autres qui comptent la fréquence d’appel de certaines opérations sur l’objet PredictorClient.

Les compteurs de performance de la ressource Predictor sont uniquement disponibles sur les ordinateurs où l’objet PredictorClient est utilisé, par exemple vos serveurs Web. Chaque compteur est agrégé au niveau de chaque site ; ainsi, si vous avez plusieurs instances actives de l’objet PredictorClient sur un seul site, le nombre total de compteurs sera égal au total pour le site entier.

Le tableau suivant répertorie les compteurs de performance disponibles dans la ressource Predictor.

Compteur | Description
Temps moyen de prévision par le client | Utilisez ce compteur pour déterminer le temps moyen nécessaire au renvoi d’une prévision. Une estimation du temps écoulé chaque fois que vous appelez l’objet PredictorClient vous est fournie. Vous pouvez également utiliser ce compteur sans insérer de code de synchronisation sur la page ASP (Active Server Page). Autres utilisations de ce compteur : tester si la demande de prévisions supplémentaires (en augmentant la valeur de l’objet lMaxPredictions) affecte les performances ; comparer les performances de la méthode Predict sur l’objet PredictorClient pour différents modèles. Ce compteur prend les mesures en millisecondes.
Chargements d’un modèle de client depuis un fichier | Utilisez ce compteur pour déterminer le nombre de fois qu’un modèle d’analyse est chargé à partir d’un fichier à l’aide de la méthode LoadModelFromFile.
Total des chargements d’un modèle de client depuis une base de données | Utilisez ce compteur pour déterminer le nombre total de fois qu’un modèle d’analyse est chargé à partir d’un serveur à l’aide de la méthode LoadModelFromDB.
Total des prévisions du client | Utilisez ce compteur pour déterminer le nombre total de prévisions du client. Ce compteur est utile pour effectuer le suivi de la fréquence des appels de la méthode Predict sur l’objet PredictorClient.

Voir aussi

Compteurs de performance de Commerce Server

Compteurs de performance du matériel


Optimisation de Commerce Server

Vous analysez et optimisez les performances système de Microsoft Commerce Server 2000 pour garantir la prise en charge par votre site Web des niveaux de trafic nécessaires sur Internet. Pour optimiser votre système, vous devez commencer par analyser votre système actuel, ainsi que vos transactions, puis déterminer combien d’utilisateurs visitent simultanément votre site pendant les périodes normales et les pics d’utilisation. Vous pouvez ensuite ajuster votre système de manière à en optimiser les performances.

Cette section contient les rubriques suivantes :

  • Analyse de votre système actuel. Décrit comment analyser votre système et améliorer la capacité de votre site.

  • Utilisation de l’analyse du coût des transactions. Décrit comment mesurer le coût des différents types de transactions Web sur votre site de manière à améliorer les performances.

  • Gestion des performances. Décrit les méthodes de réglage et d’optimisation des performances de Commerce Server.

  • Résolution des problèmes de performances. Répertorie les problèmes courants pouvant se produire lors de l’utilisation des outils d’optimisation de Commerce Server. Fournit des informations supplémentaires sur la résolution d’autres problèmes de Commerce Server.

  • Informations supplémentaires sur l’optimisation. Répertorie la documentation en ligne et papier, ainsi que les outils d’optimisation de Commerce Server.


Analyse de votre système actuel

L’analyse de votre configuration système actuelle peut vous permettre de mieux comprendre son impact sur les performances globales du système. Après avoir analysé votre site, vous pouvez utiliser les informations ainsi réunies pour ajuster toutes les composantes de votre site. Par exemple, vous voudrez peut-être modifier la configuration, ajuster le fonctionnement du logiciel ou améliorer le matériel.

Lors de l’ajustement de votre site, vous serez peut-être amené à modifier votre configuration actuelle. Vous devez connaître la configuration actuelle de votre système afin de pouvoir déterminer précisément quel sera l’impact de sa modification sur les performances. L’analyse de la configuration de base de votre système doit comprendre l’évaluation des éléments suivants :

  • Matériel. Faites l’inventaire de la configuration de chaque ordinateur, y compris les cartes, périphériques (sauf souris et claviers) et périphériques réseau. Créez un schéma du système montrant la connexion logique entre les différents composants et leur rôle. Par exemple, indiquez si un serveur est un serveur Web ou un serveur de base de données. La figure suivante montre un exemple de schéma de matériel.
Diagramme de configuration matérielle
Lecteur 2,2 Go Seagate ST32272A Lecteur 8,6 Go Seagate ST38422A
Lecteur 2,2 Go Seagate ST32272A Lecteur 8,6 Go Seagate ST38422A
2 serveurs LDAP
2x PII 400, 512 Mo Carte réseau 100 Mo
Compaq
RAID Array 3000
SQL Server
4x Xeon 400, 512 Mo Carte réseau 100 Mo
Lecteur 2,2 Go
Seagate ST32272A
Serveurs Web
2xPII 400, 512 Mo Carte réseau 2x100 Mo
Équilibrage de charge réseau
Windows 2000
Internet
Client
Équilibrage de charge réseau
Équilibrage de charge réseau
100 Base T
Connexion T1
Serveurs Web
2xPII 400, 512 Mo Carte réseau 2x100 Mo

  • Logiciels. Décrivez les logiciels utilisés sur chaque ordinateur et leurs interactions avec des logiciels installés sur d’autres ordinateurs. La description des logiciels doit faire apparaître les éléments suivants :
    • Numéros de versions.

    • Interface logique entre les applications. Par exemple, si une application extrait des données d’une table de base de données, décrivez cette relation.

    • Service packs.

    • Options utilisées lors de l’installation du logiciel.

    • Paramètres système, tels que la configuration de la mémoire virtuelle.

    Complétez la description de la configuration logicielle en créant un schéma des logiciels. La figure suivante montre un exemple de schéma des logiciels.

Diagramme de configuration logicielle
Équilibrage de charge réseau
3 serveurs de navigation
Internet Explorer 5.5 Windows 2000
Commerce Server 2000
2 serveurs LDAP Internet Explorer 5.5 Commerce Server 2000 Windows 2000
Windows 2000
SQL Server 2000
3 serveurs d'achat
Internet Explorer 5.5
Windows 2000
Commerce Server 2000
Windows 2000
Internet
Client
Équilibrage de charge réseau
Équilibrage de charge réseau
100 Base T
Connexion T1

  • Contenu. Décrivez le contenu ayant été ajouté à chaque type de serveur depuis l’installation de Commerce Server 2000. Par exemple, vous devez décrire chaque fichier, ainsi que la structure de répertoires dans laquelle chaque fichier est enregistré sur les serveurs Web et les serveurs de base de données. Vous devez également rassembler des informations, telles que les paramètres d’autorisation, pour le système de fichiers, les scripts de base de données, les fichiers de configuration, les fichiers de données, etc.

  • Équilibrage de charge. Décrivez à quels endroits vous utilisez l’équilibrage de charge réseau (NLB, Network Load Balancing). Par exemple, avez-vous ajusté votre site sur plusieurs serveurs à l’aide de l’équilibrage de charge réseau ou de l’équilibrage de charge matérielle ?


Utilisation de l'analyse du coût des transactions

Utilisation de l’analyse du coût des transactions

L’analyse du coût des transactions (ACT) est une méthode de mesure de la capacité d’un site. L’ACT permet de mesurer le coût d’une transaction en terme de performances, le niveau de trafic pouvant être absorbé par votre site Web, ainsi que le coût de réalisation de différents types de transactions sur votre site. Vous utilisez l’ACT pour mesurer la capacité de votre site, puis utilisez les résultats de l’analyse pour augmenter la capacité de chaque composant système. Vous pouvez également comparer plusieurs transactions serveur de manière à déterminer celles qui utilisent le plus de ressources système.

Dans l’ACT, le terme transaction fait référence au travail réalisé par un ou plusieurs serveurs (serveurs Web, serveurs intermédiaires et serveurs SQL) pour répondre à la demande d’un utilisateur. Par exemple, la demande d’une page de description d’un produit qui est stockée dans une base de données est une transaction, de même qu’une demande d’ajout d’un article à un panier d’achat. Ce terme ne fait pas référence aux transactions de commerce électronique dans lesquelles il y a échange d’argent.

Analyse du trafic

Création d’un profil d’utilisation

Mesure de la capacité du site

Augmentation de la capacité du site Web

Augmentation de la capacité intermédiaire

Augmentation de la capacité de la base de données

Analyse du trafic

Après avoir analysé votre système actuel et décrit votre matériel et vos logiciels, vous devez déterminer combien d’utilisateurs visitent simultanément votre site. Pour ce faire, vous pouvez réaliser les deux analyses suivantes :

  • Analyse du marché. Analyse d’un nouveau site. Vous avez peut-être demandé un rapport d’analyse du marché afin d’avoir une estimation prévisionnelle du trafic sur votre site au moment de son déploiement et par la suite. Utilisez ce rapport comme configuration de base de votre ACT.

  • Analyse de l’utilisation du site. Analyse d’un site existant. Analysez les fichiers journaux de votre serveur Web afin de connaître le nombre d’accès à votre site à tout moment et noter des tendances d’utilisation pouvant indiquer si des parties du site sont devenues plus ou moins populaires avec le temps. Lors du calcul du nombre d’utilisateurs simultanés actuellement pris en charge par votre site, rappelez-vous de baser vos calculs sur les pics d’utilisation plutôt que sur les périodes d’utilisation normale.

Création d’un profil d’utilisation

Une fois que vous savez combien de personnes utilisent votre site, vous devez déterminer de quelle manière elles l’utilisent de manière à pouvoir estimer les ressources système utilisées par un visiteur normal. Vous devez pour cela créer un profil d’utilisation.

Le profil d’utilisation est créé à partir de l’analyse des fichiers journaux d’utilisation de votre site. Si vous disposez de journaux couvrant une longue période (au moins une semaine), les moyennes que vous dégagerez seront d’autant plus précises. Tout d’abord, identifiez les opérations pouvant être réalisées par un utilisateur (parcourir, rechercher, etc.). Ensuite, réunissez les informations suivantes :

  • Nombre d’utilisateurs sur le site

  • Nombre d’accès à chaque page (quelles pages ont été consultées)

  • Temps passé sur chaque page

  • Durée de la session

  • Pics d’activité

Vous pouvez utiliser le nombre d’accès à chaque page pour établir le profil des opérations typiques des utilisateurs sur votre site. Le tableau suivant montre un profil utilisateur comprenant les opérations typiques des clients sur le site de commerce électronique d’un détaillant.

Opération client | Opérations par session | Opérations par seconde (fréquence des transactions) | Pourcentage du total
Ajouter un élément | 0,24 | 0,00033 | 2,00
Ajouter un élément + Valider | 0,02 | 0,00003 | 0,17
Ajouter un élément + Supprimer | 0,04 | 0,00006 | 0,33
Panier | 0,75 | 0,00104 | 6,25
Par défaut (page d’accueil) | 1,00 | 0,00139 | 8,33
Liste | 2,50 | 0,00347 | 20,83
Consulter | 0,75 | 0,00104 | 6,25
Nouveau | 0,25 | 0,00035 | 2,08
Produit | 4.20 | 0,000583 | 35,00
Rechercher | 1,25 | 0,00174 | 10,42
Bienvenue | 1,00 | 0,00139 | 8,33

Mesure de la capacité du site

Le tableau suivant répertorie trois niveaux de serveurs que vous devez prendre en compte dans la mesure de la capacité du site.

Niveau | Type de serveur
Niveau supérieur | Serveurs Web
Niveau intermédiaire | Serveurs d’entreprise ou autres serveurs d’applications, serveurs de contenu
Niveau inférieur | Serveurs de base de données

Augmentation de la capacité du site Web

Après avoir mesuré la capacité de votre système, vous pouvez découvrir que votre système actuel n’est pas en mesure de prendre en charge le niveau de trafic actuel sur votre site Web. Vous pouvez également avoir des doutes quant à sa capacité à prendre en charge une prochaine forte augmentation du trafic liée à une nouvelle campagne marketing ou à une période particulière de l’année (rentrée scolaire ou Noël).

Pour éviter toute baisse des performances, vous devez tester le niveau de trafic prévisionnel sur vos serveurs Web de manière à déterminer avec précision les ajustements qui devront leur être apportés afin qu’ils puissent faire face à la charge anticipée. (L’utilisation de calculs pour déterminer combien de serveurs doivent être ajoutés est une solution viable si tant est que les problèmes de capacité soient limités à un niveau de serveur.) Vous pouvez utiliser le Moniteur système pour analyser la valeur des compteurs de différents objets serveur. Vous pouvez utiliser les compteurs de performances de Commerce Server pour visualiser les objets serveurs primordiaux pour votre entreprise. Pour plus d’informations sur le Moniteur système, consultez l’aide de Windows 2000 Server.

Pour augmenter la capacité, vous devez déterminer quelles ressources sont appauvries. La réalisation d’une ACT précise peut également être une aide précieuse. Vous pouvez ajuster les serveurs Web verticalement en augmentant la mémoire, le processeur ou la capacité réseau. Vous pouvez également augmenter la capacité des serveurs Web en ajoutant des serveurs supplémentaires au cluster dont la charge est équilibrée. Il est néanmoins très important de parfaitement comprendre la capacité de l’ensemble de la Web farm avant de prendre la décision d’ajuster un seul composant.

Voir aussi

Utilisation de l’analyse du coût des transactions

Compteurs de performances de Commerce Server

Augmentation de la capacité intermédiaire

Vous pouvez utiliser les serveurs de niveau intermédiaire à différentes fins, comme l’exécution d’applications ou encore le stockage de contenus. Pour évaluer les performances de votre niveau intermédiaire, vous devez analyser les compteurs de performances suivants :

  • Mémoire

  • Système

  • Disque physique

Si les valeurs de ces compteurs ne sont pas appropriées, vous devez ajuster ce niveau de serveurs. Par exemple, lors de l’analyse du compteur des octets reçus par seconde, vous devez comparer ce compteur à la bande passante totale de votre carte réseau et déterminer si votre connexion réseau crée un engorgement. Il est recommandé d’utiliser 50 pour cent ou moins de la capacité existante de manière à laisser suffisamment de marge pour les pics du trafic visiteur. Si ce nombre est très proche de la capacité de votre connexion, et que l’utilisation du processeur et de la mémoire est modérée, vous pouvez en déduire que le problème vient probablement de la connexion.

L’équilibrage de charge réseau (ECR) relie plusieurs ordinateurs exécutant des programmes serveurs à l’aide du protocole réseau TCP/IP. Vous pouvez utiliser l’ECR avec un groupe de serveurs Terminal Server pour ajuster les performances d’un seul serveur Terminal Server en répartissant les demandes des clients entre plusieurs serveurs. Cependant l’utilisation de l’équilibrage de charge réseau avec des serveurs Terminal Server présente des limites. En effet, les utilisateurs individuels peuvent se connecter à différents serveurs Terminal Server au sein d’un groupe, ou les sessions utilisateurs peuvent être interrompues au moment de leur redistribution vers un autre serveur Terminal Server. Vous devez vous assurer que les informations et les préférences utilisateur restent accessibles aux utilisateurs avant d’utiliser les services Terminal Server avec l’équilibrage de charge.

Vous souhaiterez peut-être également incorporer la documentation abordant les problèmes de performances spécifiques à la technologie que vous utilisez à ce niveau afin de trouver des moyens d’augmenter la capacité du niveau intermédiaire. Par exemple, l’aide de Windows 2000 Server fournit des informations sur l’utilisation de l’équilibrage de charge réseau pour permettre l’accès à des serveurs supplémentaires, et ainsi peut-être augmenter la capacité.

Pour plus d’informations sur l’équilibrage de charge réseau, consultez « Équilibrage de charge réseau » et « Services de composants (COM+) » dans l’aide de Windows 2000 Server.

Augmentation de la capacité de la base de données

Avant d’augmenter la capacité de votre base de données, vous devez analyser les compteurs de performances suivants :

  • Mémoire

  • Système

  • Disque physique

  • SQL Server

Une fois que vous aurez analysé ces compteurs, vous serez plus à même de juger si vous avez besoin d’ajouter de la mémoire, de l’espace disque ou des serveurs. Vous pouvez augmenter la capacité de la base de données en ajoutant un nouveau serveur. Il est plus facile d’ajouter un nouveau serveur que de déplacer une application partageant un serveur de base de données vers un nouveau serveur. Néanmoins, l’augmentation de la capacité n’est pas toujours qu’une question d’ajout d’un autre serveur. Pour savoir comment ajuster la base de données, consultez la documentation de votre application de base de données.


Gestion des performances

La gestion des performances de votre site Commerce Server 2000 consiste essentiellement à trouver les engorgements et à les éliminer. Le terme d’engorgement est employé pour parler d’un élément matériel ou logiciel qui fonctionne au maximum de ses capacités. À mesure que la charge approche la capacité maximale, l’engorgement commence à limiter le flux de travail via le système. Les outils de performances peuvent vous aider à déterminer quel élément matériel ou logiciel est engorgé. Vous pouvez ensuite améliorer le matériel, modifier la configuration ou régler le logiciel pour améliorer les performances globales.

Les performances ne représentent qu’un seul facteur d’optimisation de votre site Commerce Server. Parmi les autres facteurs importants figurent la facilité de développement et de maintenance, le délai avant la mise sur le marché, la disponibilité de bons outils de programmation et l’expertise des développeurs de sites en interne. L’optimisation des performances peut affecter n’importe lequel de ces autres facteurs.

Le développement d’un site Web est piloté par un cahier des charges qui détermine les priorités, par exemple, l’utilisation d’un langage de programmation spécifique ou d’une technologie particulière d’accès. Or, ces décisions ont toujours un impact plus ou moins fort sur les performances. Il est extrêmement important de déterminer un niveau de performances nécessaire pour votre site Web, puis de développer le site et de le gérer de sorte qu’il maintienne ce niveau de performances.

Les sites Web sont souvent exécutés sur plusieurs niveaux physiques, chacun utilisant son propre matériel, ses propres logiciels système et ses propres logiciels d’application. De ce fait, les applications Web peuvent connaître de nombreux types de problèmes de performances : matériel (ordinateur client, serveur Web, serveur de base de données, réseau), logiciels système (systèmes d’exploitation, logiciels réseau, services système), applications clientes, navigateurs, base de données logique, base de données physique, accès aux données, etc.

Vous pouvez répondre aux questions suivantes pour déterminer les performances que vous devez atteindre :

  • Les performances de ce site sont-elles à la hauteur de nos objectifs aujourd’hui et le seront-elles dans le futur ?

  • Y a-t-il des risques que notre configuration actuelle devienne un engorgement ?

  • Combien notre site peut-il prendre en charge d’utilisateurs ?

L’analyse régulière des performances est le seul moyen d’assurer que le site répond bien aux objectifs de performances. Elle peut vous permettre de voir très tôt si une modification nuit aux performances. Vous pouvez collecter des informations sur les performances en utilisant des outils système existants, en laissant l’analyseur de site faire un rapport sur ses propres performances ou en créant des applications clientes spéciales pour piloter le système.

Lorsque vous ajustez les performances, vous devez dans un premier temps mesurer les performances système pour savoir si elles répondent à vos objectifs. Si elles ne sont pas conformes à vos objectifs, trouvez l’engorgement, éliminez-le, puis répétez ce processus jusqu’à ce que vous atteigniez vos objectifs de performances. Vous pouvez toujours augmenter les performances, mais une fois que les performances du site ont atteint vos objectifs, les ajustements supplémentaires ne sont généralement pas rentables.

Cette section contient les rubriques suivantes :

  • Réglage de votre système

  • Analyse et maintenance des journaux

  • Analyse des compteurs de performances

Voir aussi

Analyse des sites Commerce Server


Réglage de votre système

La gestion d’un site Web implique que vous fassiez en sorte que votre système soit toujours réglé pour obtenir des performances optimales. Consultez régulièrement les dernières procédures de réglage de la technologie de votre système afin de vous assurer que vos systèmes informatiques fonctionnent aussi efficacement que possible. Vous trouverez des informations sur le réglage de votre système dans le Kit de Ressources techniques Commerce Server 2000.


Analyse et maintenance des journaux

Grâce à l’analyse régulière de vos journaux, vous pourrez éviter des pannes catastrophiques et vous préparer à des hausses inattendues de l’activité du serveur.

  • Au moins deux fois par jour, utilisez l’Observateur d’événements pour consulter l’activité des événements et informer les parties intéressées en cas d‘anomalies.

  • Au moins une fois par semaine, analysez les journaux d’IIS (Internet Information Services) 5.0 afin de repérer toute modification des tendances d’accès des utilisateurs. Assurez-vous que le trafic sur votre site Web reste dans les limites système. Vous souhaiterez peut-être également reconfigurer vos pages Web ou vos offres de produits au regard de l’analyse de tendance.

  • Sauvegardez et videz régulièrement vos journaux de bases de données. Il est recommandé de copier les journaux de bases de données sur un périphérique de sauvegarde externe, tel qu’un lecteur de bande, avant de les supprimer.

  • Confiez à un agent d’analyse externe, tel que Keynote Systems, l’analyse du délai d’affichage des pages de votre site à partir de différents emplacements distants.

Voir aussi

Analyse des sites Commerce Server

Moniteur système

Utilisation du composant logiciel enfichable de l’Observateur d’événements


Analyse des compteurs de performances

Les compteurs de performances vous permettent d’analyser des aspects spécifiques du travail réalisé sur votre système. Le Moniteur système regroupe les compteurs par type d’objet. Il existe une série unique de compteurs pour les processus Commerce Server, la mémoire, le cache, le disque dur et autres types d’objets qui génèrent des informations statistiques. Pour plus d’informations sur les compteurs de performances de Commerce Server et leur utilisation, consultez Analyse des sites Commerce Server. Pour plus d’informations sur le Moniteur système, consultez l’aide de Windows 2000 Server.

Voir aussi

Analyse des sites Commerce Server

Compteurs de performance du matériel

Compteurs de performance de Commerce Server

Définition des compteurs de performance


Résolution des problèmes de performances

Cette rubrique décrit les différentes méthodes pouvant être utilisées pour dépanner Commerce Server et améliorer les performances système.

Cette section contient les rubriques suivantes :

  • Arrêt des applications inutiles

  • Analyse des serveurs de production

  • Utilisation de configurations serveur cohérentes

  • Conseils pour le test

  • Migration depuis Site Server

  • Réglage des serveurs Windows 2000

  • Recherche de problèmes de performances spécifiques

  • Utilisation de la mémoire

  • Analyse des principaux compteurs de performances

  • Désactivation des profils anonymes

  • Modification des paramètres de l’onglet Performances d’IIS

  • Désactivation des messages de traçage du débogage


Arrêt des applications inutiles

Si une application n’est pas utile à la réalisation des fonctions principales d’un serveur, ne l’installez pas. Même l’installation temporaire d’une application, puis sa désinstallation, peut engendrer des problèmes si une bibliothèque de liens dynamiques (DLL) incompatible est présente sur votre serveur. Vous devez arrêter toute application inutile.


Analyse des serveurs de production

Il est recommandé d’utiliser un serveur distinct ne faisant pas partie des services d’exécution pour analyser les serveurs de production de votre Web farm. Ceci est important pour éviter que le processus d’analyse n’affecte les performances ou le fonctionnement d’un serveur de production. Si vous utilisez un serveur distinct, vous obtiendrez une mesure plus précise des performances réelles de vos serveurs de production.

D’autre part, l’analyse du trafic utilisateur doit être réalisée sur un réseau administratif distinct du réseau qui traite le trafic réel de traitement des données. De cette manière, le Moniteur système, de même que d’autres outils d’analyse, peut regrouper les données de plusieurs serveurs dans une vue collective unique. D’autre part, l’E/S disque est réduite sur les serveurs Web et les serveurs de données, laquelle est nécessaire pour enregistrer les informations dans un fichier journal.


Utilisation de configurations serveur cohérentes

Les serveurs ayant la même fonction doivent utiliser la même configuration logicielle. Ainsi, tous les serveurs Web doivent avoir la même configuration logicielle, sans pour autant avoir nécessairement la même configuration que les serveurs de base de données. Les avantages sont les suivants :

  • Performances identiques et prévisibles (si tant est que la configuration matérielle soit également identique).

  • Mise à niveau plus facile des logiciels.

  • Toute amélioration apportée à un serveur doit améliorer les autres.


Conseils pour le test

Avant d’apporter des modifications à votre site de production visant à améliorer ses performances, effectuez toujours des tests en conditions réelles dans un environnement de test utilisant la configuration de production. Les tests par module et les tests réalisés sur des systèmes de développement ne donneront pas les mêmes résultats que les tests de la configuration complète réalisés avec un trafic normal et un trafic de pointe. Vous ne devez pas modifier le serveur de production avant d’avoir réalisé un test complet. Voici quelques recommandations de base pour le test :

  • Testez chaque page Web afin de vous assurer que le contenu est correct, que les liens fonctionnent, que les résultats souhaités sont renvoyés et que les performances répondent à vos attentes.

  • Testez le système en condition de trafic de pointe afin de vous assurer qu’il est en mesure de prendre en charge le trafic maximal sur le système. Utilisez des outils tels que Microsoft Web Application Stress (WAS) et le Moniteur système pour vous aider.

  • Vérifiez le temps de réponse en affichant des pages très complexes en condition de trafic normal, tout en accédant à votre site Web à distance à l’aide de connexions de différentes vitesses.


Migration depuis Site Server

Si votre site Web repose sur Site Server 3.0, Édition Commerce électronique, vous devez planifier la migration de votre application. Site Server fonctionne sur la plate-forme Microsoft Windows 2000 avec l’aide de Site Server 3.0, Édition Commerce électronique doté du Service Pack 4. Si vous souhaitez connaître la procédure détaillée de migration depuis Site Server 3.0 ou Site Server 3.0, Édition Commerce électronique vers Commerce Server 2000, consultez le Kit de Ressources techniques Commerce Server 2000. Ce kit contient également des outils qui pourront vous aider à réaliser la migration.

Pour savoir comment préparer correctement la migration, consultez Migration depuis Site Server 3.0.


Réglage des serveurs Windows 2000

Pour régler les serveurs Microsoft Windows 2000, procédez de la manière suivante :

  • Si vous avez installé des composants additionnels, tels que les services Conversation, les forums électroniques ou autres composants non nécessaires, désinstallez-les en suivant les instructions de désinstallation appropriées.

  • Modifiez les performances des programmes d’avant-plan et d’arrière-plan. Pour plus d’informations, consultez la procédure Pour modifier les performances en spécifiant Les services d’arrière plan décrite ci-dessous.

  • Maximisez le débit pour les applications réseau. Pour plus d’informations, consultez la procédure Pour maximiser le débit pour les applications réseau décrite ci-dessous.

Pour modifier les performances en spécifiant Les services d’arrière-plan

  1. Sur le Bureau Windows 2000, cliquez avec le bouton droit sur Poste de travail et sélectionnez Propriétés.

  2. Cliquez sur l’onglet Avancées, puis sur le bouton Options de performances.

  3. Sous Performances des applications, cliquez sur Les services d’arrière-plan.

  4. Cliquez sur OK, puis une nouvelle fois sur OK.

Pour maximiser le débit pour les applications réseau

  1. Sur le Bureau Windows 2000, cliquez avec le bouton droit sur Favoris réseau et sélectionnez Propriétés.

  2. Cliquez avec le bouton droit sur Connexion au réseau local et sélectionnez Propriétés.

  3. Sous Les composants sélectionnés sont utilisés par cette connexion, sélectionnez Partage de fichiers et d’imprimantes pour les réseaux Microsoft.

  4. Cliquez sur le bouton Propriétés et sélectionnez Maximiser le débit des données pour les applications réseau.

  5. Cliquez sur OK, puis une nouvelle fois sur OK.

Considérez d’autre part les points suivants :

  • Commerce Server 2000 et ASP (Active Server Pages) ont tendance à utiliser toutes les ressources mémoire.

  • SQL Server utilisera probablement toutes les ressources mémoire ou disque en premier.

  • Le protocole HTTP (Hypertext Transfer Protocol) utilise plus de ressources réseau que n’importe quoi d’autre.


Recherche de problèmes de performances spécifiques

Les problèmes de débit du système se produisent généralement lorsque la demande de ressources dépasse les ressources disponibles. L’isolation des problèmes de performances commence par l’identification du mode d’interaction des utilisateurs, de Commerce Server 2000 et du système d’exploitation avec chaque ressource. Vous pouvez apprendre beaucoup de choses sur un système en étudiant comment les différentes applications utilisent la mémoire.

Pour commencer, dans la phase de planification de l’architecture du site Web, détaillez vos critères de réussite en matière d’utilisateurs simultanés. Déterminez un profil d’utilisation pour une visite normale en vous basant sur une expérience antérieure ou une analyse des utilisateurs. Ces données doivent indiquer votre objectif en termes de taille de téléchargement, débit et délai d’affichage pour chaque page.

Les développeurs de sites doivent tester les pages ASP qu’ils créent avec un outil de simulation de chargement, tel que Microsoft Web Application Stress (WAS) et comparer ces résultats avec les objectifs. Lorsque les pages répondent aux objectifs définis pour une configuration à serveur unique, vous devez planifier le test sur un serveur distribué, qui est plus proche de la configuration du centre de données. Plus précisément, le simulateur client, le serveur Web et les systèmes principaux doivent se trouver sur des ordinateurs distincts. Le serveur Web et les systèmes principaux doivent être des serveurs SMP (symmetric multiprocessing) s’il est prévu de les déployer en tant que tels dans le centre de données.

Vous devez ensuite essayer de réduire le délai de demande de page. Si vous souhaitez améliorer les performances, vous devez commencer par étudier les demandes adressées aux serveurs SQL Server. L’outil Générateur de profils SQL Server fourni avec Microsoft SQL Server 2000 contient un Assistant qui recommande des valeurs de réglage de la base de données. Cet outil peut être très utile pour tester les opérations fréquentes sur les pages. Si vous utilisez un serveur Microsoft Active Directory, vous souhaiterez peut-être également analyser son activité. Les compteurs de performances des objets NTDS sur le serveur Active Directory vous aideront à définir l’utilisation de ce composant serveur.

Une fois que vous avez compris comment est effectué l’accès aux données, vous devez analyser la logique de page. De nombreux conseils de réglage sont spécifiques à la programmation ASP. Chaque page ASP peut réaliser un gain considérable en matière de débit en appliquant correctement cette procédure.

Si le délai d’affichage de la page est trop long en raison d’un trop grand nombre de demandes de données, vous pouvez utiliser l’objet LRUCache de Commerce Server. Cet objet peut réduire les demandes coûteuses de données en conservant le fragment HTML restitué, ce qui supprime la demande sur le serveur principal.

Enfin, pour les petits ajustements des performances et du débit, essayez de régler les paramètres de Registre dans IIS (Internet Information Services) 5.0 et Microsoft Windows 2000. Sachez que ces modifications n’auront pas le même impact sur les performances que la modification de l’algorithme ou des méthodes d’accès dans le code du site. Vous pouvez par exemple régler les performances sur le serveur IIS en modifiant les paramètres de l’onglet Performances de manière à spécifier Plus de 100 000, puis en confirmant que le débogage ASP n’est pas activé.

Voir aussi

Modification des paramètres de l’onglet Performances d’IIS

Compteurs de performance de Commerce Server

Autres outils d’analyse des performances


Utilisation de la mémoire

L’utilisation de la mémoire est sans doute le facteur le plus important des performances système. Lorsque la demande de mémoire dépasse la mémoire disponible, Microsoft Windows 2000 Server déplace des blocs de codes et de données, appelés pages, de la mémoire RAM vers un disque de manière à libérer de l’espace pour un processus. Un certain degré de pagination est acceptable car il permet à Windows 2000 Server d’utiliser plus de mémoire que ce qui existe réellement dans la mémoire physique (RAM). Le paging constant, par contre, est un frein aux performances système.

Lorsque vous démarrez Windows 2000 Server, ce dernier crée automatiquement un fichier d’échange (Pagefile.sys) sur votre système. Windows 2000 Server utilise ce fichier pour fournir de la mémoire virtuelle. La taille recommandée pour le fichier d’échange est équivalente à la quantité de mémoire RAM disponible sur votre système plus 12 méga-octets (Mo). Cependant, le taille de ce fichier dépend également de la quantité d’espace disponible sur votre disque dur au moment de la création du fichier. Pour plus d’informations sur la flexibilité, consultez le Kit de Ressources techniques Commerce Server 2000.


Analyse des principaux compteurs de performances

L’analyse des principaux compteurs de performances pendant les pics d’utilisation peut vous permettre de découvrir des engorgements du système. Pour plus d’informations sur les compteurs de performances de Commerce Server que vous devez analyser, consultez Compteurs de performance de Commerce Server.

Voir aussi

Définition des compteurs de performance


Désactivation des profils anonymes

Avec Commerce Server 2000, il est très facile de générer le profil des utilisateurs hôtes. Néanmoins, le suivi de tous les utilisateurs hôtes peut être très coûteux sur des sites de grande taille. Évaluez soigneusement les bénéfices que vous pourrez tirer de la création de cookies et d’instances uniques dans vos bases de données et serveurs Microsoft Active Directory avant de mettre en œuvre cette fonctionnalité. Nombre d’entre eux peuvent être obtenus par une analyse plus précise des rapports Commerce Server.

Voir aussi

Rapports Commerce Server


Modification des paramètres de l'onglet Performances d'IIS

Modification des paramètres de l’onglet Performances d’IIS

Vous pouvez modifier les paramètres de l’onglet Performances de IIS (Microsoft Internet Information Services) 5.0 pour améliorer les performances.

Pour modifier les paramètres de l’onglet Performances d’IIS

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Outils d’administration, puis cliquez sur Gestionnaire des services Internet.

  2. Dans l’écran Services Internet (IIS), développez les nœuds jusqu’au chemin suivant : Services Internet (IIS)/<Nom Serveur>/Site Web par défaut.

  3. Cliquez avec le bouton droit sur Site Web par défaut, puis sélectionnez Propriétés.

  4. Cliquez sur l'onglet Performances.

  5. Déplacez le curseur de réglage des performances vers la droite jusqu’à Plus de 100 000, puis cliquez sur OK.


Désactivation des messages de traçage du débogage

Une petite modification simple que vous pouvez apporter pour améliorer les performances consiste à désactiver les messages de traçage du débogage dans votre système de production. Le traçage peut parfois ralentir le débit de 10 à 15 pour cent.

Pour désactiver les messages de traçage du débogage

  1. Cliquez sur Démarrer, puis sur Exécuter.

  2. Dans la boîte de dialogue Exécuter, dans la zone Ouvrir, tapez Regtrace.exe, puis cliquez sur OK.

  3. Dans la boîte de dialogue Paramètres de traçage, sélectionnez l’onglet Traces, désactivez les cases à cocher de tous les niveaux de traçage, puis cliquez sur OK.

Remarque

  • Sélectionner Pas de traçage sous l’onglet Sortie ne suffit pas. Vous devez tout d’abord désactiver les cases à cocher de tous les niveaux de traçage.

Voir aussi

Utilisation de regtrace.exe avec un débogueur

Outils d’optimisation des performances


Informations supplémentaires sur l'optimisation

Informations supplémentaires sur l’optimisation

Des ressources supplémentaires sont à votre disposition pour vous aider à optimiser les performances et la capacité de votre site Commerce Server 2000.

Cette section contient les rubriques suivantes :

  • Outils d’optimisation des performances

  • Informations disponibles sur le Web

  • Publications


Outils d'optimisation des performances

Outils d’optimisation des performances

Microsoft propose différents outils de réglage et de test des performances. Certains de ces outils sont inclus dans Microsoft Windows 2000 et IIS (Internet Information Services) 5.0, d’autres se trouvent sur le CD-ROM annexe Kit de Ressources techniques Windows 2000, d’autres sont disponibles sur le site Web de Microsoft (www.microsoft.com). Ainsi, le Moniteur système (précédemment appelé Analyseur de performances) est intégré à Windows 2000 et est un outil essentiel pour analyser pratiquement tous les aspects des performances des serveurs.

La section suivante décrit brièvement les différents outils d’optimisation des performances et indique où les trouver.

  • Microsoft Web Application Stress Tool. Un outil de simulation développé par les testeurs Web pour reproduire de façon réaliste les nombreux navigateurs demandant des pages à partir d’une application Web. Microsoft a masqué certains aspects complexes du test des serveurs Web afin d’en faire un outil facile à utiliser. Ainsi, il sera utile à toute personne souhaitant réunir des informations sur les performances d’un site Web. Cet outil regroupe une grande partie des meilleures fonctionnalités développées au fil des années, ainsi que quelques nouvelles fonctions. Cette version couvre les fonctionnalités les plus utiles pour le test de stress des sites Web ASP (Active Server Pages) personnalisés à trois niveaux exécutés sur Microsoft Windows 2000.

    Vous pouvez télécharger WAS à l’adresse suivante : http://webtool.rte.microsoft.com.

  • Moniteur réseau. Un outil qui capture le trafic réseau pour l’afficher et l’analyser. Vous pouvez utiliser le Moniteur réseau pour réaliser des tâches telles que l’analyse des données précédemment capturées selon des méthodes définies par l’utilisateur, l’extraction de données à partir d’analyseurs de protocole définis et l’analyse du trafic en temps réel sur votre réseau. Le Moniteur réseau est utile pour capturer des paquets entre des navigateurs, des serveurs Web et SQL Server. Il donne des informations précieuses sur la synchronisation et indique la taille de paquet, l’utilisation du réseau, de même que beaucoup d’autres statistiques qui peuvent être utiles pour gérer les performances du système.

  • Générateur de profils SQL Server. Un outil qui capture les événements SQL Server à partir d’un serveur. Les événements sont enregistrés dans un fichier de traçage que vous pouvez analyser ultérieurement ou utiliser pour reproduire une procédure lorsque vous essayez de diagnostiquer un problème. Vous pouvez utiliser le Générateur de profils SQL Server pour effectuer les opérations suivantes :
    • Reprendre pas à pas les requêtes problématiques pour trouver la cause de ce problème.

    • Chercher et diagnostiquer les requêtes lentes.

    • Capturer les séries d’instructions SQL qui débouchent sur un problème. Le fichier de traçage enregistré peut ensuite être utilisé pour répliquer ce problème sur un serveur test où il peut être diagnostiqué.

    • Analyser les performances de SQL Server de manière à régler la charge de travail.
  • Moniteur système. Un outil que vous pouvez utiliser pour collecter et afficher de nombreuses informations sur la manière dont sont utilisées les ressources matérielles et sur l’activité des services système. Vous pouvez utiliser le Moniteur système pour effectuer les opérations suivantes :
    • Collecter et afficher des données sur les performances en temps réel sur un ordinateur local ou à partir de plusieurs ordinateurs distants.

    • Afficher les données d’un journal de compteur qui soit sont en cours de collecte, soit ont déjà été collectées.

    • Présenter les données dans un graphe, un histogramme ou un rapport que vous pouvez imprimer.

    • Incorporer les fonctionnalités du Moniteur système dans Microsoft Word ou d’autres applications de la suite Microsoft Office au moyen de l’automation.

    • Créer des pages HTML à partir des vues de performances.

    • Créer des configurations d’analyse réutilisables qui peuvent être installées sur d’autres ordinateurs à l’aide de Microsoft Management Console (MMC).
  • Visual Studio Analyzer. Un outil que vous pouvez utiliser pour analyser les performances, isoler des fautes et comprendre la structure de vos applications distribuées. Vous pouvez utiliser Visual Studio Analyzer avec des applications et des systèmes créés avec n’importe quel outil Visual Studio. Plusieurs technologies Microsoft, telles que Component Object Model (COM), les objets de données Microsoft ActiveX (ADO, ActiveX Data Objects) et COM+, ont la capacité de fournir des informations à Visual Studio Analyzer. Si vos applications utilisent ces technologies, vous pouvez obtenir des informations détaillées sur cette utilisation dans Visual Studio Analyzer. D’autre part, vous pouvez personnaliser vos propres applications de manière à ce qu’elles fournissent des informations à Visual Studio Analyzer.

  • Statut des processus et threads (Pstat.exe). Un outil qui indique le statut de tous les processus et threads en cours d’exécution. Cet outil se trouve sur le CD-ROM annexe Kit de Ressources techniques Windows 2000.

  • Arborescence des processus (Ptree.exe). Un outil qui vous permet d’interroger l’arborescence d’héritage des processus et de supprimer des processus sur les ordinateurs locaux ou distants. Cet outil se trouve sur le CD-ROM annexe Kit de Ressources techniques Windows 2000.

  • Outil d’analyse HTTP (HTTP Monitoring tool). Un outil qui analyse l’activité HTTP sur vos serveurs et qui peut vous informer si le niveau d’activité change. Cet outil se trouve sur le CD-ROM annexe Kit de Ressources techniques Windows 2000.

  • NetStat. Un outil de ligne de commande qui détecte des informations sur les connexions réseau actuelles de votre serveur. Cet outil se trouve sur le CD-ROM annexe Kit de Ressources techniques Windows 2000.

Voir aussi

Compteurs de performances de Commerce Server

Définition des compteurs de performance


Informations disponibles sur le Web

Le tableau suivant décrit la documentation que vous pouvez trouver sur le Web et qui peut vous aider à optimiser les performances et la capacité de votre site Commerce Server 2000.

Titre | Description
Microsoft Developer Network (MSDN) | Contient des informations sur Commerce Server 2000 et autres serveurs d’entreprise .NET de Microsoft. La visite régulière de ce site vous semblera certainement utile. Recherchez MSDN et entrez Commerce Server 2000 pour trouver des documents et des livres blancs sur ce produit. www.msdn.microsoft.com
The Art and Science of Web Server Tuning with Internet Information Services 5.0 | Un livre blanc qui décrit le problème du réglage d’un serveur Web lors de l’exécution d’IIS (Internet Information Services) 5.0 sur Windows 2000 Server et propose différentes approches. Il explique pourquoi il est important d’effectuer des analyses et des tests et aborde les problèmes que vous pouvez rencontrer au niveau du matériel, des logiciels et des outils. Une section est consacrée aux paramètres et aux fonctionnalités d’IIS et de Windows 2000 qui ont été modifiés ou ajoutés, et plusieurs annexes répertorient des conseils utiles, des paramètres de Registre et de métabase, ainsi que des informations de référence. Même si ce document est rédigé spécifiquement pour IIS 5.0, il peut également être très utile aux administrateurs d’IIS 4.0. www.microsoft.com/windows2000/library/operations/web/tuning.asp
Kit de développement de logiciel (SDK, Software Development Kit) de Commerce Server. | Contient des informations techniques destinées aux développeurs chargés de la création de programmes ou de pages Web intelligentes qui seront à terme intégrées à l’API (Application Programming Interface) de Commerce Server. Le SDK contient un guide destiné aux programmeurs, ainsi que des références sur plusieurs technologies Commerce Server et de commerce électronique. Il comprend en outre des exemples et des fichiers d’en-tête que vous pouvez utiliser pour créer vos propres programmes.
TechNet | Contient des informations techniques et des outils conçus pour vous aider à planifier, développer, déployer et gérer vos sites Web de commerce électronique. Pour plus d’informations sur Commerce Server, sélectionnez Commerce Server dans le menu Zones Produits à gauche de l’écran. www.microsoft.com/france/technet/
Groupes de discussion | Utilisez les groupes de discussion entre paires pour parler de Commerce Server avec d’autres administrateurs, développeurs et professionnels MVPs (Microsoft Most Valuable Professionals). Microsoft n’analyse pas, ni ne prend en charge le contenu de ces groupes de discussion ou de sites. www.microsoft.com/commerceserver/support/NewsGrps.htm
Support Microsoft | Liste des options de support disponibles pour Commerce Server. www.microsoft.com/commerceserver/support/
Site des serveurs Microsoft | Guide de toute la gamme de produits serveur Microsoft destinés aux professionnels de l’informatique, aux développeurs et aux professionnels d’Internet. www.microsoft.com/servers/


Publications

Le Kit de Ressources Techniques Commerce Server 2000 contient des informations techniques et des outils pour vous aider à planifier, développer, déployer et gérer votre site Web de commerce électronique. Il est disponible auprès de Microsoft Press.


Référence de l'interface utilisateur

Référence de l’interface utilisateur

Cette section contient les rubriques d’aide contextuelle sur les ressources disponibles depuis Commerce Server Manager, et sur le Gestionnaire de package de site Commerce Server. Ces rubriques sont disponibles à partir de l’interface utilisateur, en appuyant sur la touche F1 ou en cliquant sur Aide dans les boîtes de dialogue de Commerce Server Manager.

Cette section contient les rubriques suivantes :

  • Aide sur l’interface utilisateur de Data Warehouse. Fournit l’aide sur les boîtes de dialogue du Data Warehouse.

  • Aide sur l’interface utilisateur des tâches DTS. Fournit l’aide sur les boîtes de dialogue concernant les tâches DTS de Commerce Server.

  • Aide sur l’interface utilisateur de la ressource Predictor. Fournit l’aide sur les boîtes de dialogue de la ressource Predictor.

  • Aide sur l’interface utilisateur de la ressource Profiles. Fournit l’aide sur les boîtes de dialogue de la ressource Profiles.

  • Aide sur la boîte de dialogue Gestionnaire de package de site. Fournit l’aide sur la boîte de dialogue Gestionnaire de package de site.


Aide sur l'interface utilisateur du Data Warehouse

Aide sur l’interface utilisateur du Data Warehouse

Cette section contient les rubriques d’aide contextuelle concernant la ressource Data Warehouse de Commerce Server. Ces rubriques sont disponibles depuis l’interface utilisateur de la ressource Data Warehouse en cliquant sur Aide dans les boîtes de dialogue de la ressource Data Warehouse.

Cette section contient les rubriques suivantes :

  • Propriétés de Data Warehouse 1, onglet Connexion

  • Propriétés de Data Warehouse 1, onglet Heure


Propriétés de Data Warehouse 1, onglet Connexion

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Connexion de la boîte de dialogue Propriétés de Data Warehouse 1.

Utilisez ceci | Pour faire cela
Authentification SQL Server | Sélectionner cette option pour utiliser un nom d’utilisateur et un mot de passe fournis pour authentifier vos informations d’ouverture de session.
Identificateur d’utilisateur | Taper l’identificateur d’utilisateur à utiliser pour l’authentification lors de l’ouverture de session.
Mot de passe | Taper le mot de passe à utiliser pour l’authentification lors de l’ouverture de session.
Serveur | Afficher le nom du serveur connecté.
Base de données | Afficher le nom de la base de données connectée.
Propriétés du serveur OLAP : Serveur | Afficher le nom du serveur OLAP connecté.
Propriétés du serveur OLAP : Base de données | Afficher le nom de la base de données OLAP connectée.

Voir aussi

Configuration de la ressource Data Warehouse


Propriétés de Data Warehouse 1, onglet Heure

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Heure de la boîte de dialogue Propriétés de Data Warehouse 1.

Utilisez ceci | Pour faire cela
Régler le fuseau horaire sur | Sélectionner un fuseau horaire dans la liste déroulante.
Démarrer le | Sélectionner le jour de démarrage de la semaine dans la liste déroulante.

Voir aussi

Configuration de la ressource Data Warehouse


Aide sur l'interface utilisateur des tâches DTS

Aide sur l’interface utilisateur des tâches DTS

Cette section contient les rubriques d’aide contextuelle concernant les tâches des services de transformation de données (DTS, Data Transformation Services) de Commerce Server. Ces rubriques sont disponibles en cliquant sur Aide dans les boîtes de dialogue des tâches DTS de Commerce Server.

Cette section contient les rubriques suivantes :

  • Importer les journaux de serveur Web

  • Propriétés avancées d’importation de journal Web, onglet Exclusions

  • Exclusions

  • Propriétés avancées d’importation de journal Web, onglet Inférences

  • Propriétés avancées d’importation de journal Web, onglet Chaînes de requête

  • Chaînes de requête

  • Propriétés avancées d’importation de journal Web, onglet Fichiers par défaut

  • Propriétés avancées d’importation de journal Web, onglet Fichiers journaux

  • Propriétés d’importation du catalogue

  • Propriétés d’importation des transactions, onglet Général

  • Propriétés d’importation des transactions, onglet Options d’importation

  • Tâche de suppression

  • Propriétés de résolution IP

  • Propriétés de l’importation de campagne marketing

  • Propriétés d’importation de l’utilisateur

  • Propriétés de la synchronisation du Data Warehouse

  • Propriétés de préparation des rapports

  • Fichiers journaux du serveur Web


Importer les journaux de serveur Web

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Importer les journaux de serveur Web.

Utilisez ceci | Pour faire cela
Description | Taper une description pour la tâche d’importation.
Nom du site | Sélectionner dans la liste déroulante le site Web qui contient le journal de serveur Web à importer.
Application | Trier la liste des fichiers journaux en fonction de l’application.
Ordinateur | Trier la liste des fichiers journaux en fonction de l’ordinateur.
Site Web IIS | Trier la liste des fichiers journaux en fonction du site Web IIS.
Chemin du fichier journal | Trier la liste des fichiers journaux en fonction du chemin du fichier journal.
Chemin du fichier journal | Taper le chemin du fichier journal de serveur Web à importer, ou rechercher le chemin du fichier journal en cliquant sur le bouton de sélection [...].
Afficher les fichiers journaux | Ouvrir la boîte de dialogue Fichiers journaux du serveur Web pour sélectionner dans la liste Fichiers journaux du serveur Web les fichiers journaux de serveur Web à importer. Cliquez ensuite sur OK pour revenir à la boîte de dialogue Importer les journaux de serveur Web.
Importer tous les fichiers journaux depuis la dernière importation | Spécifier l’importation de tous les fichiers journaux créés depuis la dernière importation.
Importer les fichiers journaux selon la plage date/heure | Spécifier l’importation uniquement des fichiers journaux créés entre la date/heure de début et la date/heure de fin.
Date/heure de début | Taper la date et l’heure correspondant au début de la plage de date/heure pendant laquelle les fichiers journaux sont importés. Cette option n’est disponible que si vous avez sélectionné l’option Importer les fichiers journaux selon la plage date/heure.
Date/heure de fin | Taper la date et l’heure correspondant à la fin de la plage de date/heure pendant laquelle les fichiers journaux sont importés. Cette option n’est disponible que si vous avez sélectionné l’option Importer les fichiers journaux selon la plage date/heure.
Options avancées | Ouvrir la boîte de dialogue Propriétés avancées d’importation de journal Web.

Voir aussi

Importation de données de fichier journal Web

Configuration des propriétés d’importation de fichier journal Web

Composants de Data Warehouse

Configuration de la ressource Data Warehouse


Propriétés avancées d'importation de journal Web, onglet Exclusions

Propriétés avancées d’importation de journal Web, onglet Exclusions

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Exclusions de la boîte de dialogue Propriétés avancées d’importation de journal Web.

Utilisez ceci | Pour faire cela
Filtrer les exclusions par Sélectionner un type d’exclusion dans la liste déroulante pour afficher uniquement ce type d’exclusion. Les types d’exclusion disponibles sont les suivants :
  • Hôtes

  • Types de fichiers

  • Expressions de fichiers

  • Robots

Pour plus d’informations sur les catégories d’exclusion, consultez Exclusions.
Inclure la liste de robots par défaut dans les critères d’exclusion | Inclure la liste de robots par défaut dans les critères d’exclusion.
Type d’exclusion | Trier la liste d’exclusions selon le type d’exclusion.
Exclure | Trier la liste d’exclusions selon les critères du type d’exclusion.
Application | Trier la liste d’exclusions selon l’application.
Ajouter | Ouvrir la boîte de dialogue Exclusions et ajouter une exclusion.
Supprimer | Supprimer l’exclusion sélectionnée.
Propriétés | Ouvrir la boîte de dialogue Exclusions, qui permet de visualiser les propriétés de l’exclusion sélectionnée.

Voir aussi

Exclusions

Configuration des propriétés d’importation de fichier journal Web

Composants de Data Warehouse


Exclusions

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Exclusions.

Utilisez ceci | Pour faire cela
Sélectionner une catégorie d’exclusion Sélectionner dans la liste déroulante le type d’exclusion d’importation à ajouter. Les types de données suivants peuvent être exclus :
  • Hôtes

  • Types de fichiers

  • Expressions de fichiers

  • Robots

Pour plus d’informations sur les catégories d’exclusion, consultez Exclusions.
Nom | Taper un nom que Commerce Server peut utiliser pour rechercher les fichiers journaux. Vous ne devez pas inclure d’espace dans le nom tapé.
Toutes les applications d’un site | Exclure les données de toutes les applications d’un site.
Applications sélectionnées d’un site | Sélectionner les applications d’un site dont vous souhaitez exclure les données.
Sélectionner tout | Exclure les données de l’ensemble des applications répertoriées.
Désélectionner tout | Annuler la sélection de l’ensemble des applications répertoriées.

Voir aussi

Exclusions

Configuration des propriétés d’importation de fichier journal Web

Composants de Data Warehouse


Propriétés avancées d'importation de journal Web, onglet Inférences

Propriétés avancées d’importation de journal Web, onglet Inférences

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Inférences de la boîte de dialogue Propriétés avancées d’importation de journal Web.

Utilisez ceci | Pour faire cela
Minutes d’inactivité autorisées avant la fin de la visite | Taper le nombre de minutes d’inactivité autorisées avant qu’une visite soit considérée comme terminée. La valeur par défaut est 30 minutes.
Utiliser des cookies d’identification de Commerce Server pour les inférences | Utiliser les cookies d’identification de Commerce Server afin de distinguer les différents utilisateurs.
Utiliser noms d’utilisateurs pour les inférences | Utiliser les noms d’utilisateurs afin de distinguer les différents utilisateurs.
Utiliser des identificateurs de cookies personnalisés | Utiliser des cookies personnalisés afin de distinguer les différents utilisateurs.
Entrer un nouvel identificateur de cookie personnalisé | Taper l’identificateur du cookie personnalisé que vous souhaitez utiliser.
Ajouter | Ajouter le nouvel identificateur de cookie personnalisé dans la liste d’inférences.
Supprimer | Supprimer la ligne sélectionnée de la liste d’inférences.

Voir aussi

Inférences

Configuration des propriétés d’importation de fichier journal Web

Composants de Data Warehouse


Propriétés avancées d'importation de journal Web, onglet Chaînes de requête

Propriétés avancées d’importation de journal Web, onglet Chaînes de requête

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Chaînes de requête de la boîte de dialogue Propriétés avancées d’importation de journal Web.

Utilisez ceci | Pour faire cela
Enregistrer la chaîne de requête avec l’URI | Enregistrer la chaîne de requête avec l’URI (Uniform Resource Identifier).
Chaîne de requête | Trier la liste selon le nom des chaînes de requête.
Application | Trier la liste selon le nom des applications.
Ajouter | Ouvrir la boîte de dialogue Chaînes de requête et ajouter une chaîne de requête.
Supprimer | Supprimer la chaîne de requête spécifiée.
Propriétés | Ouvrir la boîte de dialogue Chaînes de requête et modifier la chaîne de requête spécifiée.

Voir aussi

Chaînes de requête

Configuration des propriétés d’importation de fichier journal Web

Composants de Data Warehouse


Chaînes de requête

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Chaînes de requête.

Utilisez ceci | Pour faire cela
Nom | Taper un nom pour la chaîne de requête.
Toutes les applications d’un site | Importer la chaîne de requête à partir de toutes les applications d’un site.
Applications sélectionnées d’un site | Sélectionner les applications d’un site pour lesquelles vous souhaitez importer la chaîne de requête.
Sélectionner le type de données | Sélectionner dans la liste déroulante le type de données pour la requête. Les types de données disponibles sont les suivants : Chaîne (par défaut), Entier, Date/Heure et Réel.
Type de données à valeurs multiples | Indiquer que la requête doit utiliser un type de données à valeurs multiples.

Voir aussi

Chaînes de requête

Configuration des propriétés d’importation de fichier journal Web


Propriétés avancées d'importation de journal Web, onglet Fichiers par défaut

Propriétés avancées d’importation de journal Web, onglet Fichiers par défaut

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Fichiers par défaut de la boîte de dialogue Propriétés avancées d’importation de journal Web.

Utilisez ceci | Pour faire cela
Supprimer le répertoire de premier niveau du fichier de chemins d’accès système | Afficher les chaînes de noms de fichiers sans leurs répertoires de premier niveau.
Fichier d’index de répertoire | Taper le nom du fichier que vous voulez désigner en tant que fichier d’index de répertoire.
Ajouter | Ajouter le nouveau fichier d’index de répertoire à la liste des fichiers par défaut.
Supprimer | Supprimer le fichier d’index de répertoire sélectionné de la liste de fichiers par défaut.

Voir aussi

Fichiers par défaut

Configuration des propriétés d’importation de fichier journal Web


Propriétés avancées d'importation de journal Web, onglet Fichiers journaux

Propriétés avancées d’importation de journal Web, onglet Fichiers journaux

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Fichiers journaux de la boîte de dialogue Propriétés avancées d’importation de journal Web.

Utilisez ceci | Pour faire cela
Délai de superposition des enregistrements en minutes | Taper le nombre de minutes de superposition des enregistrements. La valeur par défaut est 30 minutes.
Si une superposition est détectée Sélectionner une action à exécuter en cas de détection d’une superposition :
  • Importer tous les enregistrements. Toutes les demandes sont importées, y compris celles qui se superposent.

  • Arrêter l’importation. Le fichier journal n’est pas importé si des demandes qui se superposent sont détectées.

  • Arrêter toutes les importations. Toutes les importations de fichiers journaux sont arrêtées si des demandes qui se superposent sont détectées.

  • Ignorer les enregistrements et continuer (par défaut). Ignore les demandes qui se superposent et importe les autres.
En fin d’importation Sélectionner une action à exécuter pour les visites en cours à la fin de votre processus d’importation :
  • Stocker les visites en cours pour la prochaine importation (paramètre par défaut). La visite en cours est reconstruite comme s’il s’agissait d’un seul fichier journal. Cette option nécessite un peu plus de temps, car les visites en cours doivent être appelées du cache à chaque nouvelle importation. Vous devez importer les fichiers journaux en respectant l’ordre chronologique pour que cette option fonctionne.

  • Valider les visites en cours dans la base de données. Le nombre de visites est plus élevé à l’ouverture et à la fermeture de la durée du fichier journal, car les visites qui sont réparties sur ces deux durées sont comptées deux fois.

  • Ignorer les visites en cours. Le nombre de visites sera moins élevé à la fin de la période du fichier journal car les visites qui ne sont pas terminées seront ignorées.
Vider le cache | Supprimer les données stockées dans le cache.

Voir aussi

Fichiers journaux

Superpositions horaires

Rotation des fichiers journaux

Configuration des propriétés d’importation de fichier journal Web


Propriétés d'importation du catalogue

Propriétés d’importation du catalogue

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Propriétés d’importation du catalogue.

Utilisez ceci | Pour faire cela
Description | Taper une description pour cette tâche d’importation.
Nom du site | Sélectionner dans la liste déroulante le site contenant les données que vous voulez importer.
Charge incrémentielle | Importer uniquement les nouvelles données de catalogue en se basant sur une importation précédente.
Charge totale | Importer l’intégralité des données de catalogue.

Voir aussi

Importation de données de catalogue

Composants de Data Warehouse


Propriétés d'importation des transactions, onglet Général

Propriétés d’importation des transactions, onglet Général

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Général de la boîte de dialogue Propriétés d’importation des transactions.

Utilisez ceci | Pour faire cela
Description | Taper une description pour cette tâche d’importation.
Nom du site | Sélectionner dans la liste déroulante le site contenant les données que vous voulez importer.
Charge incrémentielle | Importer uniquement les nouvelles données de transaction en se basant sur une importation précédente.
Charge totale | Importer l’intégralité des données de transaction.

Voir aussi

Importation de données de transaction

Composants de Data Warehouse


Propriétés d'importation des transactions, onglet Options d'importation

Propriétés d’importation des transactions, onglet Options d’importation

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Options d’importation de la boîte de dialogue Propriétés d’importation des transactions.

Utilisez ceci | Pour faire cela
Catégorie de transaction Sélectionner dans la liste déroulante la catégorie de transaction des dimensions que vous voulez importer. Les catégories disponibles sont les suivantes :
  • OrderFormHeader

  • OrderFormLineItems

  • OrderGroupAddresses

  • OrderGroup
Dimensions disponibles | Sélectionner dans la liste la dimension que vous voulez ajouter.
Dimensions à importer | Répertorier les dimensions à importer pour le type de transaction spécifié.
Ajouter | Déplacer la dimension sélectionnée de la zone Dimensions disponibles vers la zone Dimensions à importer.
Supprimer | Supprimer les dimensions sélectionnées de la zone Dimensions à importer.

Voir aussi

Importation de données de transaction

Composants de Data Warehouse


Tâche de suppression

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Tâche de suppression.

Utilisez ceci | Pour faire cela
Description | Taper une description pour la tâche de suppression.
Nom du site | Sélectionner dans la liste déroulante le site dans lequel vous souhaitez supprimer des données de fichier journal Web.
Type de suppression Sélectionner le type de suppression dans la liste déroulante :
  • Tous. Supprime toutes les données (de détail et synthétisées) du Data Warehouse.

  • Importations des journaux Web. Supprime les données des fichiers journaux Web sélectionnés.
Supprimer toutes les données | Supprimer les données de détail et les données synthétisées des importations des fichiers journaux Web sélectionnés.
Supprimer les données de détail | Supprimer uniquement les données de détail des importations des fichiers journaux Web sélectionnés.
ID de la tâche | Identifier les fichiers journaux Web à supprimer, en activant les cases à cocher appropriées dans cette colonne. Cliquez sur l’en-tête de cette colonne pour trier la liste des fichiers journaux Web selon l’ID de la tâche.
Description de tâche | Trier la liste des fichiers journaux Web selon la description, en cliquant sur l’en-tête de cette colonne.
État | Trier la liste des fichiers journaux Web selon l’état, en cliquant sur l’en-tête de cette colonne.
Heure de début | Trier la liste des fichiers journaux Web selon l’heure de début, en cliquant sur l’en-tête de cette colonne.
Niveau de détail | Trier la liste des fichiers journaux Web selon le niveau de détail, en cliquant sur l’en-tête de cette colonne.

Voir aussi

Suppression de données du Data Warehouse


Propriétés de résolution IP

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Propriétés de résolution IP.

Utilisez ceci | Pour faire cela
Description | Taper une description pour la tâche.
Nom du site | Sélectionner dans la liste déroulante le site concerné par la résolution IP.
Recherche incrémentielle | Résoudre uniquement les adresses IP qui n’ont pas encore été résolues.
Recherche complète | Résoudre l’intégralité des adresses IP.
Nom de domaine local | Taper le nom de domaine local du serveur DNS servant de serveur principal utilisé pour la résolution des adresses IP.
Durée de mise en cache du résultat en jours | Taper le nombre de jours pendant lesquels les adresses IP résolues seront stockées. La valeur par défaut est de 30 jours. Si vous augmentez la valeur par défaut, la résolution IP est effectuée plus rapidement. Cependant, il se peut que les modifications de nom de domaine ne soient pas détectées.
Délai d’expiration en secondes | Taper la durée de recherche (en secondes) sur le serveur DNS avant qu’une adresse IP soit considérée comme non résolue. La valeur par défaut est de 60 secondes. Si vous augmentez la valeur par défaut, un plus grand nombre d’adresses IP sont résolues, mais la résolution IP nécessite davantage de temps.
Nombre de demandes de recherche à conserver en lot | Taper le nombre d’adresses IP à transférer dans un même lot à votre serveur DNS. La valeur par défaut est 500 ; la valeur peut être comprise entre 10 et 99 999.

Voir aussi

Exécution de la résolution IP


Propriétés de l'importation de campagne marketing

Propriétés de l’importation de campagne marketing

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Propriétés de l’importation de campagne marketing.

Utilisez ceci | Pour faire cela
Description | Taper une description pour cette tâche d’importation.
Nom du site | Sélectionner dans la liste déroulante le site contenant les données que vous voulez importer.

Voir aussi

Importation de données de campagne marketing

Composants de Data Warehouse


Propriétés d'importation de l'utilisateur

Propriétés d’importation de l’utilisateur

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Propriétés d’importation de l’utilisateur.

Utilisez ceci | Pour faire cela
Description | Taper une description pour cette tâche d’importation.
Nom du site | Sélectionner dans la liste déroulante le site contenant les données que vous voulez importer.
Intervalle entre les requêtes (min) | Taper l’intervalle de temps pour l’importation. Les données utilisateur sont importées en fonction d’intervalles de temps, afin d’éviter un verrouillage de la table de base de données. Par exemple, pour un site Web contenant 10 000 utilisateurs, l’importation des données utilisateur a lieu à intervalles de 15 minutes.
Date de début d’importation | Sélectionner dans le calendrier déroulant une date de début pour l’importation.
Charge incrémentielle | Importer uniquement les nouveaux utilisateurs en se basant sur une importation précédente.
Charge totale | Importer l’intégralité des données utilisateur.

Voir aussi

Importation de données de profil utilisateur

Composants de Data Warehouse


Propriétés de la synchronisation du Data Warehouse

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Propriétés de la synchronisation du Data Warehouse.

Utilisez ceci | Pour faire cela
Description | Taper une description pour cette tâche d’importation.
Nom du site | Sélectionner dans la liste déroulante le site contenant les données que vous voulez importer.

Voir aussi

Synchronisation de la configuration du site et du Data Warehouse


Propriétés de préparation des rapports

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Propriétés de préparation des rapports.

Utilisez ceci | Pour faire cela
Description | Taper une description pour cette tâche d’importation.
Nom du site | Sélectionner dans la liste déroulante le site contenant les données que vous voulez utiliser dans les rapports d’analyse.
Incrémentiel | Effectuer un traitement incrémentiel des cubes.
Complet | Effectuer un traitement complet des cubes.

Voir aussi

Préparation à la création de rapports


Fichiers journaux du serveur Web

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Fichiers journaux du serveur Web.

Utilisez ceci | Pour faire cela
Application | Identifier le fichier journal à importer, en activant la case à cocher figurant dans cette colonne en regard du nom de site du fichier journal.

Voir aussi

Importation de données de fichier journal Web


Aide sur l'interface utilisateur de la ressource Predictor

Aide sur l’interface utilisateur de la ressource Predictor

Cette section contient les rubriques d’aide contextuelle concernant la ressource Predictor de Commerce Server. Ces rubriques sont disponibles depuis l’interface utilisateur de la ressource Predictor en cliquant sur Aide dans les boîtes de dialogue de la ressource Predictor.

Cette section contient les rubriques suivantes :

  • Propriétés de Predictor on <nom_serveur>, Onglet Général

  • Propriétés de construction d’un modèle


Predictor sur les propriétés de <nom_serveur>, Onglet Général

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Général de la boîte de dialogue Propriétés de Predictor on <nom_serveur>.

Utilisez ceci | Pour faire cela
Nom | Afficher le nom de la ressource Predictor.
Nom d’hôte | Afficher le nom du serveur sur lequel la ressource Predictor est installée.
Dernier démarrage | Afficher la date et l’heure du dernier démarrage de la ressource Predictor.

Voir aussi

À propos de la ressource Predictor


Propriétés de construction d'un modèle

Propriétés de construction d’un modèle

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Propriétés de construction d’un modèle.

Utilisez ceci | Pour faire cela
Nom | Taper un nom pour le modèle d’analyse.
Priorité de construction Sélectionner la priorité de construction que vous souhaitez allouer à ce modèle d’analyse. La valeur par défaut est Normale (ce qui correspond à la priorité de la thread de construction). Les sélections sont :
  • Minimale

  • Inférieure à la normale

  • Normale

  • Supérieure à la normale

  • Maximale
Type de modèle Sélectionner un type de modèle d’analyse à construire. Les sélections sont :
  • Prévision. Sélectionner cette option pour construire un modèle de prévision afin d’effectuer des recommandations pour votre site.

  • Segment. Sélectionner cette option pour construire un modèle de segment pour afficher des segments d’utilisateur dans le module Identification de segments de Commerce Server Business Desk.
Taille de l’échantillon | Taper le nombre de cas qui doivent être utilisés pour construire le modèle d’analyse. Vous pouvez modifier la valeur par défaut si nécessaire. La valeur par défaut est -1 (toutes les données) ou 20 000, celle qui est la plus basse.
Fraction de l’échantillon mesurée pour la précision | Taper la fraction de l’exemple de données que vous souhaitez utiliser pour automatiquement évaluer la précision du modèle, exprimée avec un nombre compris entre 0,0 et 1,0. Par exemple, si vous tapez 0,0 comme la valeur de la fraction mesurée pour la précision, aucun score ne sera évalué pour le modèle. Si vous tapez 0,4, 40 pour cent de l’exemple de données sera utilisé pour évaluer le score du modèle. (Les 60 % restants sont utilisés pour construire le modèle).
Prévisions maximales de la précision mesurée | Taper le nombre maximal de recommandations à présenter sur votre site (utilisées pour calculer le « Score de recommandation »). La valeur par défaut est 10 attributs.
Fraction d’attribut d’entrée | Taper la fraction des attributs à utiliser comme entrée pour les prévisions, exprimée avec un nombre compris entre 0,0 et 0,1. Par exemple, spécifier une fraction d’attribut d’entrée de 0,05 sélectionne les 5 % d’attributs d’entrée les plus significatifs. La valeur par défaut est 1,0, ce qui inclut tous les attributs en tant qu’entrées de la prévision. Des valeurs inférieures à 1,0 sont recommandées si le nombre d’attributs est très élevé, par exemple des recommandations de produits pour un catalogue de plus de 1 000 produits.
Fraction d’attribut de sortie | Taper la fraction des attributs à prévoir, exprimée avec un nombre compris entre 0,0 et 0,1. Par exemple, spécifier une fraction d’attribut de sortie de 0,05 résulte en la construction d’arborescences pour les 5 % d’attributs les plus significatifs. (Si les attributs de sortie sont des produits, cela renvoie des arborescences pour les 5 % des produits les plus populaires.) La valeur par défaut est 1,0, ce qui produit des arborescences pour tous les attributs. Des valeurs inférieures à 1,0 sont recommandées si le nombre d’attributs est très élevé, par exemple des recommandations de produits pour un catalogue de plus de 1 000 produits.
Nombre de segments | Taper le nombre maximal de segments avec lesquels partitionner les utilisateurs. Il s’agit de la suggestion initiale pour l’algorithme, qui pourrait trouver moins de segments significatifs que cette valeur. Cette valeur est uniquement disponible si vous construisez un modèle de segment.
Taille du tampon | Taper la taille du tampon qui sera utilisé pour lire les cas durant la segmentation. La valeur par défaut est 1 000 000. La taille du tampon peut affecter le temps de construction du modèle et sa qualité. Par exemple, si le modèle contient de nombreux attributs, vous devriez définir un tampon de plus grande taille. Les ressources système de l’ordinateur qui exécute la ressource Predictor déterminent les limitations de taille du tampon. Cette valeur est uniquement disponible si vous construisez un modèle de segment.

Voir aussi

À propos de la ressource Predictor

Predictor : Méthodes conseillées

Efficacité d’un modèle d’analyse


Aide sur la boîte de dialogue Gestionnaire de package de site

Cette section contient les rubriques d’aide contextuelle concernant le Gestionnaire de package de site de Commerce Server. Ces rubriques sont disponibles depuis l’interface utilisateur du Gestionnaire de package de site en cliquant sur Aide dans les boîtes de dialogue du Gestionnaire de package de site.

Cette section contient les rubriques suivantes :

  • Bienvenue

  • Compresser

  • Décompresser

  • Décompression rapide

  • Méthode de décompression

  • Nom du site

  • Sélectionner des ressources

  • Pointeurs de ressource globale

  • Chaînes de connexion de base de données

  • Sélectionner des applications

  • Sélectionner des sites Web IIS et des répertoires virtuels

  • Base de données Master

  • Nouvelle base de données

  • Propriétés de Data Warehouse

  • Système de profil

  • Système de profil : source de données Active Directory

  • Système de profil : source de données OLEDB

  • Décompression terminée

  • Sélectionner un site

  • Système de profil

  • Système de profil


Bienvenue

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Bienvenue.

Utilisez ceci | Pour faire cela
Décompresser à partir d’un fichier de package | Installer une application Commerce Server sur un serveur Web.
Compresser un site existant | Créer le package d’une application Commerce Server, pour pouvoir opérer son transfert vers un autre serveur Web.

Voir aussi

Décompression d’un site


Compresser

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Compresser.

Utilisez ceci | Pour faire cela
Site à compresser | Sélectionner le nom Internet Information Server (IIS) du site à compresser.
Fichier de package à créer | Taper le nom du fichier de package à créer.

Voir aussi

Compression d’un site


Décompresser

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Décompresser.

Utilisez ceci | Pour faire cela
Fichier à décompresser | Sélectionner le nom du fichier de package à décompresser.
Décompression rapide | Spécifier que vous voulez installer rapidement toutes les applications du site sur l’ordinateur local, et toutes les bases de données sur un seul ordinateur local ou distant.
Décompression personnalisée | Spécifier que vous voulez que le Gestionnaire de package de site vous invite à choisir tous les paramètres de décompression de votre site. Vous pouvez spécifier les applications à installer, ainsi que le mode de configuration de leurs bases de données.


Décompression rapide

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Décompression rapide.

Utilisez ceci | Pour faire cela
Nom du site | Taper le nom que vous voulez donner à votre site. Il s’agit du nom du répertoire virtuel du site.
Site Web IIS | Sélectionner le nom du site Web Internet Information Server (IIS) qui doit héberger votre site. Il doit s’agir d’un site Web existant. Vous pouvez utiliser le composant logiciel enfichable IIS pour créer un nouveau site Web IIS.
Ordinateur SQL Server | Taper le nom du serveur SQL qui doit héberger les bases de données de votre site.
Nom d’utilisateur SQL | Taper le nom d’utilisateur de la personne disposant de privilèges d’ouverture de session sur le serveur SQL. Utilisez une connexion d’accès membre d’un des rôles SQL Server suivants : sysadmin ou dbcreator. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').
Mot de passe SQL | Taper le mot de passe de l’utilisateur disposant de privilèges d’ouverture de session sur le serveur SQL. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').

Voir aussi

Décompression d’un site


Méthode de décompression

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Méthode de décompression.

Utilisez ceci | Pour faire cela
Créer un nouveau site | Créer un nouveau site Web.
Ajouter les ressources du package à un site existant | Ajouter des ressources, telles que Service de publipostage ou Predictor, à un site Commerce Server existant.
Ajouter une application du package à un site existant | Ajouter une application, telle que Business Desk, à un site existant.
Ajouter un serveur Web à une application existante dans un site existant | Installer des applications sur un serveur Web, qui est administré sur un autre serveur. Cette option permet d’ajouter un nouveau serveur Web à votre site. Cette option ne permet pas d’installer les outils d’administration de Commerce Server sur le nouveau serveur Web.

Voir aussi

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs


Nom du site

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Nom du site.

Utilisez ceci | Pour faire cela
Nom du site | Taper le nom du site que vous voulez créer.
Sites existants | Afficher une liste des sites existants. Vous ne pouvez pas sélectionner de nom dans cette liste si vous créez un nouveau site.

Remarques

  • Pour éviter les erreurs de décompression, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ') et des combinaisons de touches (telles que ALT+nombre) dans le nom de votre site. Le nom de site est ajouté aux noms de bases de données, et les caractères spéciaux et les combinaisons de touches peuvent endommager ces noms.

  • Ne spécifiez jamais un nom de site de plus de 256 caractères simple octet ou 128 caractères double octet.

  • N’affectez pas le nom « Commerce » à votre site. Il s’agit d’un nom de base de données OLAP réservé. Si vous affectez le nom « Commerce » à votre site, cela risque d’entraîner la suppression de votre base de données OLAP la prochaine fois que vous décompresserez un site.

Voir aussi

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs


Sélectionner des ressources

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Sélectionner des ressources.

Utilisez ceci | Pour faire cela
Ressources à décompresser | Spécifier les ressources que vous voulez décompresser. Si la ressource fait partie de cette liste, ses paramètres et son schéma sont décompressés.
Ajouter | Déplacer les éléments sélectionnés de la liste Ressources disponibles vers la liste Ressources à décompresser.
Ajouter tout | Déplacer tous les éléments de la liste Ressources disponibles vers la liste Ressources à décompresser.
Supprimer | Déplacer les éléments sélectionnés de la liste Ressources à décompresser vers la liste Ressources disponibles.
Supprimer tout | Déplacer tous les éléments de la liste Ressources à décompresser vers la liste Ressources disponibles.

Remarque

  • Vous devez installer les ressources CS Authentication et Profiles simultanément. Elles ne fonctionnent pas si elles ne sont pas installées toutes les deux.

Voir aussi

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs


Pointeurs de ressource globale

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Pointeurs de ressource globale.

Utilisez ceci | Pour faire cela
Pointeurs de ressource globale | Sélectionner le pointeur de ressource globale que vous voulez configurer. La colonne Mappages vers la ressource globale indique si une nouvelle ressource globale doit être créée localement, ou l’emplacement de la ressource globale existante.
Ressources globales existantes | Sélectionner l’emplacement de la ressource globale que cet ordinateur doit utiliser. La liste contient des ressources globales créées durant l’installation de Commerce Server.

Voir aussi

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs


Chaînes de connexion de base de données

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Chaînes de connexion de base de données.

Utilisez ceci | Pour faire cela
Ressource | Sélectionner la ressource sur laquelle vous voulez effectuer une action, telle qu’un changement de serveur de base de données.
Modifier | Spécifier un autre serveur ou une autre base de données pour une ressource.
Par défaut | Faire revenir vos chaînes de connexion à leurs paramètres par défaut, en l’occurrence deux bases de données (une pour Data Warehouse et une pour les autres ressources) stockées localement.
Copier | Copier les ressources sélectionnées vers le Presse-papiers.
Coller | Coller les ressources sélectionnées à partir du Presse-papiers.
Nouvelle base de données | Créer une nouvelle base de données pour la ou les ressources sélectionnées. Utilisez cette commande pour placer la base de données sur un autre ordinateur, ou tout simplement pour renommer une base de données.

Voir aussi

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs


Sélectionner des applications

Le tableau suivant répertorie l’option disponible dans la boîte de dialogue Sélectionner des applications.

Utilisez ceci | Pour faire cela
Applications dans le package | Spécifier les applications que vous voulez décompresser. Désactivez les cases à cocher des applications que vous ne voulez pas installer.

Voir aussi

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs


Sélectionner des sites Web IIS et des répertoires virtuels

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Sélectionner des sites Web IIS et des répertoires virtuels.

Utilisez ceci | Pour faire cela
Application | Sélectionner l’application sur laquelle vous voulez effectuer une action.
Site Web IIS | Sélectionner un site Web IIS existant, l’emplacement de votre site sur le serveur.
Actualiser les sites Web | Mettre à jour la liste des sites Web IIS disponibles. Sélectionnez cette option si vous créez un nouveau site Web IIS pendant l’affichage de cette boîte de dialogue.
Répertoire virtuel IIS | Spécifier le nom du répertoire virtuel IIS de votre site. Ce nom s’affiche dans le chemin de l’adresse URL de votre site.

Remarques

  • Pour éviter les erreurs IIS, vous ne devez pas inclure de caractères spéciaux (tels que #, @, % et ') dans les noms des sites Web IIS et des répertoires virtuels.

  • Le Gestionnaire de package de site ne prend pas en charge la décompression d’un site sur un ordinateur distant.

  • Le Gestionnaire de package de site localisera vos applications dans des sous-dossiers distincts dans le site Web IIS que vous spécifiez, et au sein des dossiers physiques vers lesquels pointe votre site Web IIS. Il affectera à ces sous-dossiers le nom de répertoire virtuel que vous spécifiez pour chaque application. Par défaut, ces noms de répertoires virtuels sont identiques aux noms d’applications.

Voir aussi

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs


Base de données Master

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Base de données Master.

Utilisez ceci | Pour faire cela
Nom d’utilisateur SQL | Spécifier le nom d’utilisateur de la personne disposant de privilèges d’ouverture de session sur le serveur SQL. Pour créer une base de données, vous devez utiliser une connexion d’accès membre d’un des rôles SQL Server suivants : sysadmin ou dbcreator. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').
Mot de passe SQL | Spécifier le mot de passe de l’utilisateur disposant de privilèges d’ouverture de session sur le serveur SQL. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').
Tester la connexion | Tester la connexion entre cet ordinateur et le serveur de base de données spécifié en haut de la boîte de dialogue.


Nouvelle base de données

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Nouvelle base de données.

Utilisez ceci | Pour faire cela
Ordinateur SQL Server | Taper le nom du cluster SQL Server.
Nom de la base de données | Taper le nom voulu pour la base de données de Data Warehouse.
Nom d’utilisateur SQL | Pour créer une base de données, vous devez utiliser une connexion d’accès membre d’un des rôles SQL Server suivants : sysadmin ou dbcreator. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').
Mot de passe SQL | Taper le mot de passe d’ouverture de session SQL Server. Pour éviter les erreurs OLAP, vous devez éviter d’utiliser des caractères spéciaux (tels que #, @, % et ').
Créer la base de données | Créer la nouvelle base de données sur le serveur spécifié.

Voir aussi

Exemple A : Installation dans une configuration ordonnée en clusters et comprenant quatre ordinateurs


Propriétés de Data Warehouse

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Propriétés de Data Warehouse.

Utilisez ceci | Pour faire cela
Nom | Taper le nom que vous voulez attribuer à la ressource Data Warehouse globale.
Serveur | Taper le nom de l’ordinateur SQL Analysis (OLAP).
Base de données | Taper le nom de la base de données Analysis (OLAP) à utiliser.
Tester la connexion | Tester la connexion entre cet ordinateur et le serveur hébergeant Data Warehouse.
Ignorer la ressource | Ignorer la configuration du pointeur local vers une ressource Data Warehouse globale.

Voir aussi

Sécurisation de votre site


Système de profil

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Système de profil.

Utilisez ceci | Pour faire cela
Définition de schéma de profil (*.xml) | Spécifier la définition de schéma de profil à importer dans votre site.
Définition des entrées du glossaire de site (*.xml) | Spécifier la définition des entrées du glossaire de site à importer.
Définition d’expression (*.xml) | Spécifier la définition d’expression à importer.

Voir aussi

Décompression d’un site


Système de profil : source de données Active Directory

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Système de profil : source de données Active Directory.

Utilisez ceci | Pour faire cela
Domaine | Taper le nom du domaine Windows qui contient votre site.
Nom d’utilisateur | Taper un nom d’utilisateur de domaine Windows valide. Vous devez taper le nom d’utilisateur dans l’un des formats suivants : domaine\nom_utilisateur nom_utilisateur@domaine
Mot de passe | Taper le mot de passe de domaine du nouvel utilisateur.
URL parente | Taper l’emplacement où vous voulez que vos données soient stockées dans l’arborescence.
Utiliser la liaison simple | Envoyer le mot de passe en texte clair. Cette option est moins sécurisée, mais elle est requise par certains services d’annuaire.
Script d’exécution | Exécuter des scripts Visual Basic permettant de créer des objets dans l’arborescence de ce site.
Tester la connexion | Tester la validité de la connexion au contrôleur de domaine.


Système de profil : source de données OLEDB

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Système de profil : source de données OLEDB.

Utilisez ceci | Pour faire cela
Modifier | Modifier la chaîne de connexion du système de profil.
Scripts de définition de schéma | Spécifier l’emplacement des scripts de définition de schéma.
Scripts de remplissage des données | Spécifier l’emplacement des scripts de remplissage des données.


Décompression terminée

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Décompression terminée.

Utilisez ceci | Pour faire cela
Afficher l’application sélectionnée | Exécuter l’application sélectionnée dans la boîte de dialogue Applications IIS créées durant la décompression.
Afficher le fichier journal | Ouvrir le fichier journal du Gestionnaire de package de site, qui répertorie tous les événements survenus durant l’exécution de ce dernier. Utilisez cette option pour obtenir des informations lorsque des erreurs se produisent.
Terminer | Fermer le Gestionnaire de package de site.


Sélectionner un site

Le tableau suivant répertorie l’option disponible dans la boîte de dialogue Sélectionner un site.

Utilisez ceci | Pour faire cela
Sites existants | Sélectionner le nom du site que vous voulez modifier.

Voir aussi

Décompression d’un site


Système de profil

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Système de profil.

Utilisez ceci | Pour faire cela
Définition de schéma de profil | Spécifier la définition de schéma de profil à importer dans votre site.
Définition des entrées du glossaire de site | Spécifier la définition des entrées du glossaire de site à importer.
Définition d’expression | Spécifier la définition d’expression à importer.


Système de profil

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Système de profil.

Utilisez ceci | Pour faire cela
Chaîne de connexion du système de profil | Spécifier les fichiers à importer dans la banque de données OLEDB. Cliquez sur Modifier pour spécifier une autre base de données.
Scripts de définition de schéma (*.sql, *.vbs) | Spécifier les scripts de définition de schéma à importer dans votre site.
Scripts de remplissage des données (*.sql) | Spécifier les scripts de remplissage des données à importer.


Aide sur l'interface utilisateur de la ressource Profiles

Aide sur l’interface utilisateur de la ressource Profiles

Cette section contient les rubriques d’aide contextuelle concernant la ressource Profiles de Commerce Server. Ces rubriques sont disponibles depuis l’interface utilisateur de la ressource Profiles en cliquant sur Aide dans les boîtes de dialogue de la ressource Profiles.

Cette section contient les rubriques suivantes :

  • Propriétés de Catalogue de profils, onglet Général

  • Propriétés de <définition de profil>, onglet Général

  • Propriétés de <définition de profil>, onglet Attribut personnalisé

  • Attributs personnalisés

  • Nouvelle source de données

  • Source de données

  • Partitions

  • Partition

  • Attributs système

  • Chaîne de connexion LDAP

  • Nouvel objet de données

  • Nouveaux membres de données

  • Propriétés de <membre de données>, onglet Général

  • Propriétés de <membre de données>, onglet Propriétés

  • Propriétés de <objet de données>, onglet Général

  • Nouvelle définition de profil

  • Attribut personnalisé

  • Propriétés de <source de données>, onglet Général

  • Propriétés de <source de données>, onglet Source de données

  • Propriétés de <source de données>, onglet Partitions


Propriétés de Catalogue de profils, onglet Général

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Général de la boîte de dialogue Propriétés de Catalogue de profils.

Utilisez ceci | Pour faire cela
Nom | Afficher le nom de programmation du catalogue de profils.
Nom complet | Modifier le nom complet du catalogue de profils. Le nom complet ne peut pas excéder 127 caractères Unicode.
Description | Modifier la description du catalogue de profils. La description ne peut pas excéder 127 caractères Unicode.

Voir aussi

Définitions de profils

Exemples de définitions de profils

Ajout de propriétés à des définitions de profils

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de définitions de profils


Propriétés de <définition de profil>, onglet Général

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Général de la boîte de dialogue Propriétés de <Définitions de profil>.

Utilisez ceci | Pour faire cela
Nom | Afficher le nom de programmation de la définition de profil que vous modifiez.
Nom complet | Modifier le nom complet du profil. Le nom complet ne peut pas excéder 127 caractères Unicode.
Description | Modifier la description du profil. La description ne peut pas excéder 127 caractères Unicode.

Voir aussi

Définitions de profils

Exemples de définitions de profils

Ajout de propriétés à des définitions de profils

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de définitions de profils


Propriétés de <définition de profil>, onglet Attribut personnalisé

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Attributs personnalisés de la boîte de dialogue Propriétés de <Définitions de profil>.

Utilisez ceci | Pour faire cela
Nouveau | Ouvrir la boîte de dialogue Attribut personnalisé et créer un attribut personnalisé.
Modifier | Ouvrir la boîte de dialogue Attribut personnalisé et modifier l’attribut personnalisé sélectionné.
Supprimer | Supprimer l’attribut personnalisé sélectionné.

Voir aussi

Définitions de profils

Exemples de définitions de profils

Ajout de propriétés à des définitions de profils

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de définitions de profils


Attributs personnalisés

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Attributs personnalisés.

Utilisez ceci | Pour faire cela
Nouveau | Ouvrir la boîte de dialogue Attribut personnalisé et créer un attribut personnalisé.
Modifier | Ouvrir la boîte de dialogue Attribut personnalisé et modifier l’attribut personnalisé sélectionné.
Supprimer | Supprimer l’attribut personnalisé sélectionné.

Voir aussi

Définitions de profils

Exemples de définitions de profils

Ajout de propriétés à des définitions de profils

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de définitions de profils


Nouvelle source de données

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Nouvelle source de données.

Utilisez ceci | Pour faire cela
Nom | Taper le nom de programmation de la source de données. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
Nom complet | Taper le nom qui sera affiché pour la source de données. Le nom complet ne peut pas excéder 127 caractères Unicode.
Description | Taper une brève description pour la source de données. La description ne peut pas excéder 127 caractères Unicode.

Voir aussi

Sources de données

Partitions de sources de données

Ajout d’une nouvelle source de données

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de sources de données


Source de données

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Source de données.

Utilisez ceci | Pour faire cela
Type de source | Sélectionner le type de source : Source compatible LDAPV3 ou Fournisseur OLEDB-ANSI.

Voir aussi

Sources de données

Partitions de sources de données

Ajout d’une nouvelle source de données

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de sources de données


Partitions

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Partitions.

Utilisez ceci | Pour faire cela
Source de données partitionnée | Créer plusieurs partitions pour cette source de données.
Nombre de partitions | Afficher le nombre de partitions existantes pour cette source de données.
Ajouter | Ouvrir la boîte de dialogue Partition et créer une partition.
Modifier | Ouvrir la boîte de dialogue Partition et modifier la partition sélectionnée.

Voir aussi

Sources de données

Partitions de sources de données

Ajout d’une nouvelle source de données

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de sources de données


Partition

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Partition.

Utilisez ceci | Pour faire cela
Modifier | Ouvrir la boîte de dialogue Chaîne de connexion LDAP si vous avez sélectionné LDAP dans la boîte de dialogue Source de données. Ouvrir la boîte de dialogue Propriétés des liaisons de données si vous avez sélectionné OLE DB dans la boîte de dialogue Source de données.
Test | Tester la chaîne de connexion.
Nom de partition | Taper un nom de programmation pour cette partition. Le nom de partition ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
Partition par défaut | Définir cette partition comme partition par défaut.
Informations d’identification de liaison LDAPv3 : Nom d’utilisateur | Taper le nom d’utilisateur pour la source LDAP.
Informations d’identification de liaison LDAPv3 : Mot de passe | Taper le mot de passe pour la source LDAP.

Voir aussi

Sources de données

Partitions de sources de données

Ajout d’une nouvelle source de données

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de sources de données


Attributs système

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Attributs système.

Utilisez ceci | Pour faire cela
URL parente | Taper l’emplacement où les nouveaux objets seront créés dans l’arborescence. Il s’agit d’un chemin relatif par rapport à la racine.
Utiliser les mêmes informations d’identification pour tous les utilisateurs | Forcer le service Profils à utiliser les informations d’identification de cette partition pour toutes les liaisons.
Autoriser la liaison simple | Forcer le service Profils à envoyer les mots de passe en texte clair.
Conteneur dynamique | Se connecter à une banque dynamique comme Internet Locator Service (ILS).
Un niveau | Effectuer des recherches dans le répertoire.
Sous-arborescence | Effectuer des recherches dans les sous-arborescences du répertoire.
Nom du domaine | Taper le nom du domaine pour le serveur Active Directory. Utilisez le nom de l’ordinateur pour les sources autres que Active Directory.
Identifier | Récupérer le nom du domaine pour le serveur Active Directory.

Voir aussi

Sources de données

Partitions de sources de données

Ajout d’une nouvelle source de données

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de sources de données


Chaîne de connexion LDAP

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Chaîne de connexion LDAP.

Utilisez ceci | Pour faire cela
Serveur | Taper le nom du serveur qui héberge la source LDAP.
Port | Taper le nom du port. Par défaut, il s’agit du port 389.
Chaîne de connexion | Afficher la chaîne de connexion.

Voir aussi

Sources de données

Partitions de sources de données

Ajout d’une nouvelle source de données

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de sources de données


Nouvel objet de données

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Nouvel objet de données.

Utilisez ceci | Pour faire cela
Nom de l’objet | Sélectionner dans la liste déroulante l’objet de données correspondant au nom d’une table ou d’une classe LDAP dans la banque de données sous-jacente.
Nom complet | Taper le nom qui sera affiché pour l’objet de données. Le nom complet ne peut pas excéder 127 caractères Unicode.
Description | Taper une description pour l’objet de données. La description ne peut pas excéder 127 caractères Unicode.
Membres de l’objet | Afficher les membres de données de l’objet de données sélectionné.

Voir aussi

Sources de données

Ajout d’une nouvelle source de données

Ajout d’une nouvelle définition de profil

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de sources de données


Nouveau membre de données

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Nouveau membre de données.

Utilisez ceci | Pour faire cela
Nom de membre | Sélectionner dans la liste un nom pour le nouveau membre de données. Le nom du nouveau membre de données doit être unique pour l’objet de données. Le membre de données doit avoir le nom d’une colonne ou d’un attribut LDAP de la banque de données sous-jacente. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
Nom complet | Taper le nom à afficher dans l’application pour le membre de données. Le nom complet ne peut pas excéder 127 caractères Unicode.
Description | Taper une brève description pour le membre de données. La description ne peut pas excéder 127 caractères Unicode.
Type Sélectionner un type de données pour le membre de données. Les types de données suivants sont pris en charge :
  • Binaire

  • Booléen

  • Devise

  • Date/Heure

  • Nombre

  • Chaîne
Valeurs multiples | Activer la collection des valeurs associées au membre de données.
Requis | Indiquer que ce membre de données est obligatoire. Si cette case à cocher est désactivée, il sera facultatif.
Indexé | Indiquer que les données doivent être indexées sur ce membre de données.
Clé primaire | Définir ce membre de données comme clé primaire. Vous devez définir un membre de données en tant que clé primaire dans chaque objet de données.
Ajouter | Ajouter le nouveau membre de données à la liste des membres de données.
Terminé | Fermer la boîte de dialogue Nouveau membre de données et mettre à jour le volet de détails de Commerce Server Manager.

Voir aussi

Sources de données

Ajout d’une nouvelle source de données

Ajout de propriétés à des définitions de profils

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de sources de données


Propriétés de <membre de données>, onglet Général

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Général de la boîte de dialogue Propriétés de <membre de données>.

Utilisez ceci | Pour faire cela
Nom | Afficher le nom de programmation du membre de données. Il est impossible de modifier ce nom.
Nom complet | Modifier le nom qui sera affiché pour le membre de données. Le nom complet ne peut pas excéder 127 caractères Unicode.
Description | Modifier la description du membre de données. La description ne peut pas excéder 127 caractères Unicode.

Voir aussi

Sources de données

Ajout d’une nouvelle source de données

Ajout de propriétés à des définitions de profils

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de sources de données


Propriétés de <membre de données>, onglet Propriétés

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Propriétés de la boîte de dialogue Propriétés de <membre de données>.

Utilisez ceci | Pour faire cela
Type | Sélectionner dans la liste déroulante un nouveau type pour le membre de données.
Valeurs multiples | Indiquer que la colonne de base de données (ou l’attribut LDAP) vers laquelle le membre de données est mappé a plusieurs valeurs.
Requis | Indiquer que la colonne de base de données (ou l’attribut LDAP) vers laquelle le membre de données est mappé est obligatoire.
Index | Indiquer que la colonne de base de données (ou l’attribut LDAP) vers laquelle le membre de données est mappé est indexée.
Clé primaire | Indiquer que la colonne de base de données (ou l’attribut LDAP) vers laquelle le membre de données est mappé est une clé primaire.

Voir aussi

Sources de données

Ajout d’une nouvelle source de données

Ajout de propriétés à des définitions de profils

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de sources de données


Propriétés de <objet de données>, onglet Général

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Général de la boîte de dialogue Propriétés de <objet de données>.

Utilisez ceci | Pour faire cela
Nom | Afficher le nom de l’objet de données.
Nom complet | Modifier le nom complet de l’objet de données. Le nom complet ne peut pas excéder 127 caractères Unicode.
Description | Modifier la description de l’objet de données. La description ne peut pas excéder 127 caractères Unicode.

Voir aussi

Sources de données

Ajout d’une nouvelle source de données

Ajout de propriétés à des définitions de profils

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de sources de données


Nouvelle définition de profil

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Nouvelle définition de profil.

Utilisez ceci | Pour faire cela
Nom | Taper un nom de programmation pour le nouveau profil. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
Nom complet | Taper le nom qui sera affiché pour le nouveau profil. Le nom complet ne peut pas excéder 127 caractères Unicode.
Description | Taper une description pour le nouveau profil. La description ne peut pas excéder 127 caractères Unicode.

Voir aussi

Définitions de profils

Exemples de définitions de profils

Ajout de propriétés à des définitions de profils

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de définitions de profils


Attribut personnalisé

Le tableau suivant répertorie les options et fonctions disponibles dans la boîte de dialogue Attribut personnalisé.

Utilisez ceci | Pour faire cela
Nom | Taper un nom de programmation pour l’attribut. Ce nom ne peut pas excéder 127 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
Nom complet | Taper le nom qui sera affiché pour l’attribut. Le nom complet ne peut pas excéder 127 caractères Unicode.
Description | Taper une brève description pour l’attribut. La description ne peut pas excéder 127 caractères Unicode.
Valeur | Taper la valeur attribuée à l’attribut.

Voir aussi

Définitions de profils

Exemples de définitions de profils

Ajout de propriétés à des définitions de profils

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de définitions de profils


Propriétés de <source de données>, onglet Général

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Général de la boîte de dialogue Propriétés de <source de données>.

Utilisez ceci | Pour faire cela
Nom | Afficher le nom de la source de données.
Nom complet | Modifier le nom qui sera affiché pour la source de données. Le nom complet ne peut pas excéder 127 caractères Unicode.
Description | Modifier la description de la source de données. La description ne peut pas excéder 127 caractères Unicode.

Voir aussi

Sources de données

Partitions de sources de données

Ajout d’une nouvelle source de données

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de sources de données


Propriétés de <source de données>, onglet Source de données

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Source de données de la boîte de dialogue Propriétés de <source de données>.

Utilisez ceci | Pour faire cela
Type de source | Sélectionner le type de source : Source compatible LDAPV3 ou Fournisseur OLEDB-ANSI.

Voir aussi

Sources de données

Partitions de sources de données

Ajout d’une nouvelle source de données

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de sources de données


Propriétés de <source de données>, onglet Partitions

Le tableau suivant répertorie les options et fonctions disponibles sous l’onglet Partitions de la boîte de dialogue Propriétés de <source de données>.

Utilisez ceci | Pour faire cela
Source de données partitionnée | Créer plusieurs partitions pour cette source de données.
Nombre de partitions | Afficher le nombre de partitions existantes pour la source de données.
Ajouter | Ouvrir la boîte de dialogue Partition et créer une partition.
Modifier | Ouvrir la boîte de dialogue Partition et modifier la partition sélectionnée.

Voir aussi

Sources de données

Partitions de sources de données

Ajout d’une nouvelle source de données

Exemple : Création d’une définition de profil avec deux sources de données

Gestion de sources de données


Utilisation de Business Desk

Cette section décrit comment gérer votre site Web à l’aide de Commerce Server Business Desk. Elle s'adresse au chef d'entreprise, dont les responsabilités incluent la sélection et la mise à jour du contenu du site et qui se charge de modifier les campagnes publicitaires proposées aux utilisateurs principaux, de mettre à jour le catalogue et publier ces modifications, et d’exécuter des rapports permettant d’évaluer l’impact de ces modifications sur la productivité du site.

Cette section contient les rubriques suivantes :

  • Mise en route de Business Desk. Décrit les concepts clés et explique les tâches courantes.

  • Didacticiel Business Desk. Explique comment utiliser Business Desk pour exécuter des tâches essentielles de gestion de vos sites de commerce entreprise-client (vente au détail) ou entreprise-entreprise (fournisseur).

  • Analyse Business Desk. Explique comment configurer et exécuter des rapports permettant d’analyser l’activité sur votre site Web.

  • Campagnes Marketing Business Desk. Explique comment créer et gérer des campagnes marketing de plusieurs types (campagnes de publicité, de remise et de publipostage) afin de cibler les différents groupes d’utilisateurs, développer la portée de votre commerce et augmenter les ventes.

  • Catalogues Business Desk. Explique comment créer un schéma de catalogue et comment créer et gérer un catalogue.

  • Commandes Business Desk. Explique comment vérifier l’état d’une commande et comment gérer les modèles de commandes, les paniers, ainsi que le processus d’approbation des bons de commande. Cette rubrique explique également comment ajouter, modifier et supprimer différents types de codes de données.

  • Utilisateurs Business Desk. Explique comment ajouter de nouveaux utilisateurs inscrits et approuver les limites d’achat. Cette rubrique explique également comment configurer et gérer des comptes pour vos partenaires commerciaux. Enfin, elle explique comment ajouter des entrées du glossaire du site.

  • Dépannage de Business Desk. Explique comment dépanner et résoudre les problèmes courants liés à l’utilisation de Business Desk.


Mise en route de Business Desk

Cette section fournit des informations aux nouveaux utilisateurs de Commerce Server Business Desk.

Cette section contient les rubriques suivantes :

  • Vue d’ensemble de Business Desk

  • Notions de base de Business Desk

  • Préliminaires

  • Tâches courantes

  • Exemple : fermeture de la boucle

  • Utilisation de l’aide en ligne de Business Desk

  • Pour obtenir un supplément d’aide


Vue d'ensemble de Business Desk

Vue d’ensemble de Business Desk

Commerce Server Business Desk est un outil de gestion de site Web inclus dans Microsoft Commerce Server 2000. Business Desk héberge des modules de gestion commerciale qui vous permettent de configurer, de gérer et d’analyser vos sites. Par exemple, les modules Business Desk permettent de mettre à jour les tarifs de vos catalogues, de cibler de nouvelles publicités en fonction d’utilisateurs spécifiques, et d’exécuter des rapports pour mesurer l’impact de ces modifications sur la productivité du site.

Business Desk comporte deux parties : l’application Business Desk et le client Business Desk.

  • Application Business Desk. Outil de gestion permettant de configurer, de gérer et d’analyser votre site. Après avoir installé Commerce Server, vous pouvez décompresser un site solution pour installer une application Business Desk. Business Desk est accessible depuis n’importe quel ordinateur exécutant Microsoft Internet Explorer 5.5, ce qui permet un accès à distance sécurisé.

  • Client Business Desk. Logiciel client installé localement sur votre ordinateur, qui fournit l’interface avec l’application Business Desk. Lorsque vous accédez à l’application Business Desk pour la première fois (via une adresse URL), le client Business Desk est téléchargé et installé sur votre ordinateur. Il est préférable que l’ordinateur qui exécute le client Business Desk dispose d’une connexion haute vitesse avec l’application Business Desk.
Client
Business Desk
Client
Business Desk
Client
Business Desk
Commerce Server Data Center
Application
Business Desk
Votre
site Web
Londres
Tokyo
Paris
Londres
Internet
Figure illustrant la façon dont un client Business Desk accède à l'application Business Desk

Cette section contient les rubriques suivantes :

  • Composants Business Desk

  • Mise à jour de votre site Web à l’aide de Business Desk

  • Utilisation de BizTalk Server

  • Configuration de Commerce Server et Business Desk


Composants Business Desk

Les modules, principaux composants de Commerce Server Business Desk, permettent de gérer les différents aspects de votre site Web. Le tableau suivant répertorie les modules Business Desk et les catégories qui les contiennent, et décrit les tâches qu’ils permettent d’effectuer.

Catégorie | Description
Analyse Rapports Analyse de rapports Identification de segments | Exécutez et consultez les rapports représentant l’activité de votre site, et effectuez une analyse prédictive. Les modules Analyse sont fournis avec un grand nombre de rapports traitant divers aspects de votre site.
Campagnes marketing Expressions de la campagne marketing Gestionnaire de campagnes Gestionnaire de listes Groupe cible Tables de références Publier les campagnes marketing | Créez et planifiez des campagnes marketing. Vous pouvez ajouter des informations sur les clients, gérer des campagnes marketing et des éléments de la campagne. Les éléments de la campagne sont par exemple des bannières publicitaires, des travaux de publipostage et des remises sur les produits. Chaque élément de la campagne peut être ciblé en fonction d’utilisateurs spécifiques, ce qui permet de créer un site extrêmement personnalisé.
Catalogues Définition de catalogue Éditeur de catalogue Groupes de catalogues | Importez ou créez des catalogues, ajoutez et appliquez une tarification aux produits. Créez des catalogues personnalisés contenant des prix spéciaux, qui ne s’affichent que pour certains utilisateurs, par exemple, les membres d’un club.
Commandes Gestionnaire de panier Codes de données Statut de la commande Publier les transactions Modes de livraison Taux de taxes | Recherchez des informations sur les commandes existantes dans la base de données Commerce Server, et ajoutez, supprimez, approuvez ou modifiez les informations sur les commandes. Ajoutez, supprimez et modifiez les frais de livraison et les taux de taxes.
Utilisateurs Utilisateurs Organisations Définitions de profil Éditeur du glossaire du site Publier les profils | Créez et modifiez des utilisateurs, des organisations et des profils. Créez et modifiez les entrées du glossaire du site.

Voir aussi

Mise à jour de votre site Web à l’aide de Business Desk

Configuration de Commerce Server et Business Desk

Utilisation de BizTalk Server

Notions de base de Business Desk

Préliminaires


Mise à jour de votre site Web à l'aide de Business Desk

Mise à jour de votre site Web à l’aide de Business Desk

La figure suivante montre comment utiliser les modules Business Desk de Commerce Server pour mettre à jour votre site Web. Par exemple, les données du site sont collectées sur votre site Web puis importées vers Data Warehouse, ensuite, vous pouvez exécuter les rapports d’analyse. Les modules Campagnes marketing permettent de créer et d’afficher les publicités, remises et promotions. Les modules Catalogues permettent de mettre à jour les informations de votre catalogue. Les modules Commandes permettent de rechercher les commandes des utilisateurs. Les modules Utilisateurs permettent de réinitialiser les mots de passe des utilisateurs, de modifier d’autres informations du profil utilisateur, et de déterminer les données de profil à collecter.

La figure suivante montre comment utiliser les clients Business Desk pour accéder à distance à l’application Business Desk afin de mettre à jour un site Web.

Figure illustrant la mise à jour de votre site Web par les modules Business Desk
Utilisateurs
Commandes
Campagnes marketing
Commandes
Profils
Commerce Server
Data
Warehouse
Enregistrer les
utilisateurs
Business Desk
Bases de données Commerce Server
Votre site Web
Afficher les catalogues
Catalogues
Catalogues
Campagnes marketing
Analyse
Enregistrer
l'activité
Prendre les
commandes
Afficher les
publicités

Voir aussi

Composants Business Desk

Configuration de Commerce Server et Business Desk

Utilisation de BizTalk Server

Notions de base de Business Desk

Préliminaires


Utilisation de BizTalk Server

BizTalk Server 2000 fournit une passerelle pour l’échange de documents commerciaux entre votre société et vos partenaires commerciaux (également appelés fournisseurs). Par exemple, si votre société utilise BizTalk Server, vous pouvez échanger des catalogues, des commandes, des documents et d’autres formulaires électroniques avec vos partenaires commerciaux. BizTalk Server gère la traduction des données, le cryptage, les signatures numériques et les services de suivi des documents pour différents mécanismes de transport.

Vous pouvez utiliser BizTalk Server et Commerce Server conjointement pour traiter les commandes passées par les utilisateurs sur votre site Web Commerce Server. Supposons, par exemple, que vous vendiez du matériel informatique sur votre site. Une partie de ce matériel est fabriquée par votre société et une partie vous est fournie par vos partenaires commerciaux. BizTalk Server permet de créer un contrat commercial pour chaque partenaire commercial fournissant du matériel vendu sur votre site. Lorsqu’un utilisateur visite votre site et commande un des produits fournis par un partenaire commercial, Commerce Server traite cette commande et l’envoie à BizTalk Server, puis BizTalk Server l’envoie au partenaire commercial pour qu’il l’exécute.

Catalogues de fournisseurs multiples

Identificateur du fournisseur

Catalogues de fournisseurs multiples

Avant d’utiliser BizTalk Server pour transmettre des commandes à vos partenaires commerciaux, vous devez d’abord organiser les catalogues des partenaires commerciaux dont les produits apparaissent sur votre site. Chacun de vos partenaires commerciaux peut envoyer un ou plusieurs catalogues de ses produits. En fonction de la configuration de votre site Web, vous pouvez faire apparaître ces catalogues sous la forme d’un seul catalogue ou de plusieurs catalogues distincts.

Les fournisseurs envoient leurs catalogues par courrier électronique ou à l’aide de BizTalk Server, puis vous les importez dans votre base de données Commerce Server à l’aide du module Éditeur de catalogue de Business Desk. Pour plus d’informations sur l’importation des catalogues, consultez Importation d’un catalogue.

Identificateur du fournisseur

Lorsque vous définissez un contrat avec un fournisseur, l’identificateur de ce fournisseur est automatiquement fourni à Commerce Server. Commerce Server affiche l’identificateur du fournisseur dans Commerce Server Business Desk. Il affiche les partenaires commerciaux (organisations) qui prennent en charge le même type de document que votre organisation, et qui utilisent donc un acheminement des documents compatible. Vous pouvez alors utiliser Business Desk pour associer l’identificateur du fournisseur au catalogue.

Plusieurs catalogues peuvent être associés à un fournisseur donné. Vous pouvez aussi spécifier un fournisseur au niveau du produit ; dans ce cas, votre développeur de site doit personnaliser une page dans votre site Web (_additem.asp).

Si vous nommez un fournisseur « par défaut », Commerce Server reconnaît votre propre site en tant que fournisseur. Pour plus d’informations sur la définition d’un identificateur du fournisseur pour un catalogue, consultez Création d’un catalogue.

Remarque

  • Lorsqu’un utilisateur commande un article à partir de votre site Web, cet article doit exister dans le catalogue de l’organisation de destination. Si l’organisation de destination ne dispose pas de cet article dans son catalogue, BizTalk Server ne pourra pas envoyer le bon de commande de votre site vers le fournisseur. Il écrira un message d’erreur dans le journal des événements.

Votre administrateur système est chargé de la configuration de BizTalk Server et de la définition des contrats avec les partenaires commerciaux. Pour plus d’informations, contactez votre administrateur système.

Voir aussi

Envoi d’un catalogue à un partenaire commercial

Importation d’un catalogue

Création d’un catalogue


Configuration de Commerce Server et Business Desk

Commerce Server Business Desk est hébergé sur un serveur Web exécutant Commerce Server, de la même façon qu’un site Web est hébergé sur un serveur Web. Votre développeur de site et/ou votre administrateur système sont chargés de configurer Business Desk pour qu’il réponde à vos besoins commerciaux. Ils doivent également s’assurer que vous avez accès aux données nécessaires pour analyser et mettre à jour votre site Web.

L’administrateur système configure et gère Business Desk à l’aide de Commerce Server Manager. Commerce Server Manager est une application Windows, pas une application Web, à laquelle vous ne pouvez pas accéder à distance.

Le tableau suivant répertorie certaines des tâches effectuées par votre administrateur système pour configurer Commerce Server. Si vous avez des questions relatives aux tâches ou à des composants du site, contactez votre administrateur système.

Catégorie Tâches de l’administrateur système
Analyse
  • Si nécessaire, attribue aux utilisateurs de base de données SQL Server des rôles spécifiques pour permettre à certains utilisateurs de lire et d’enregistrer des rapports, tandis que les autres utilisateurs ne peuvent que les lire.

  • Importer les données du site vers Data Warehouse pour vous permettre d’exécuter des rapports.

  • Construire de nouveaux modèles de segments pour vous permettre d’effectuer des analyses de segments.
Campagnes marketing
  • Déterminer le moment et la fréquence des mises à jour des éléments de la campagne de publicité et de remise sur votre site de production.

  • Fournir la chaîne de connexion et la requête SQL vous permettant de générer des listes directement depuis votre base de données SQL.
Catalogues
  • Déterminer le moment et la fréquence des mises à jour des catalogues sur votre site de production.

  • Créer un dossier partagé (\\serveur\CommerceCatalogs) pour l’importation et l’exportation de catalogues.

  • Convertir les catalogues externes au format de fichier XML (Extensible Markup Language) ou CSV (valeurs séparées par une virgule) pour permettre leur importation.

  • Définir les propriétés suivantes de Commerce Server :
    • Langue (paramètres régionaux) du site (1031 = Allemand, 1033 = Anglais, 1034 = Espagnol, 1036 = Français, 1041 = Japonais).

    • Paramètres régionaux définissant le format de la devise de base.

    • Options de devise secondaire permettant le double affichage de deux devises monétaires.

    • Unité de mesure du poids pour le calcul des frais de livraison des produits (par exemple, des kilogrammes ou des livres).

    • Options d’intégration à BizTalk permettant l’envoi et la réception des catalogues des partenaires commerciaux.
Commandes
  • Définir les types de paiement pris en charge par votre site : carte de crédit, facturation d’un compte, ou les deux.
Utilisateurs
  • Ajouter des définitions de profils.

  • Ajouter des sources de données qui contrôlent l’emplacement de stockage des données de profil.

  • Définir les propriétés suivantes de Commerce Server :
    • Options d’inscription au site. Elles permettent aux utilisateurs de s’inscrire sur votre site.

    • Options de confidentialité du site. Elles permettent de collecter des informations de profil sur les utilisateurs invités.

    • Options du carnet d’adresses. Elles permettent d’activer la prise en charge de la fonctionnalité du carnet d’adresses sur votre site.

    • Options de connexion. Elles permettent de déterminer le moment où les utilisateurs doivent se connecter au site : connexion lors de l’accès au site ; facultative à l’entrée sur le site ; obligatoire lors de l’achat ; facultative en toutes circonstances.

    • Nombre de fois où les utilisateurs sont invités à saisir leur nom d’utilisateur et mot de passe avant qu’un message ne s’affiche pour leur conseiller d’appeler le service client.

Voir aussi

Mise à jour de votre site Web à l’aide de Business Desk

Composants Business Desk

Utilisation de BizTalk Server

Notions de base de Business Desk

Préliminaires


Notions de base de Business Desk

Commerce Server Business Desk étant une application Web, elle se distingue par son aspect et son fonctionnement des autres applications Microsoft conçues pour les ordinateurs personnels, par exemple, Microsoft Word et Microsoft Excel. Par exemple, vous naviguez dans Business Desk à l’aide des options (modules) d’un menu situé sur votre gauche. Cette structure est similaire à celle de nombreuses pages Web.

Cette section contient les rubriques suivantes :

  • Navigation dans Business Desk

  • Utilisation des boutons de barre d’outils

  • Sécurisation des modules Business Desk

  • Personnalisation de Business Desk

  • Importation et exportation de données

  • Utilisation des raccourcis clavier


Navigation dans Business Desk

Bien que chaque module de Commerce Server Business Desk possède une fonction unique, tous les modules ont été conçus avec des fonctionnalités de navigation similaires, pour vous aider à retrouver et à trier les informations. Une fois que vous avez appris à effectuer des tâches de base dans l’un des modules Business Desk, vous pouvez appliquer ce savoir aux autres modules. Cette section décrit l’organisation des écrans de Business Desk, et la méthode permettant de naviguer d’une catégorie vers un module, puis vers un écran.

Le volet de navigation

Le volet de contenu

Boutons de la barre d’outils

Le volet de navigation

La partie gauche de l’écran de Commerce Server Business Desk s’appelle le volet de navigation. Ce volet vous permet de sélectionner des catégories et d’ouvrir des modules. Lorsque vous cliquez sur le nom d’une catégorie, celle-ci se développe et les noms des modules s’affichent dans une liste sous la catégorie. Cliquez de nouveau sur le nom de la catégorie pour réduire les noms des modules dans la catégorie.

La position de la pointe de flèche à gauche du nom de la catégorie indique si celle-ci doit être développée ou réduite. Une pointe de flèche orientée vers la droite indique que vous pouvez développer la liste. Une pointe de flèche orientée vers le bas indique que la liste est déjà développée.

La figure suivante montre le volet de navigation avec la catégorie Commandes développée pour pouvoir afficher la liste des modules.

Volet de navigation de Business Desk

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Remarque

Lorsque vous affichez les propriétés d’un élément listé, le volet de navigation disparaît de l’affichage. Par exemple, dans la figure précédente, si vous visualisez les propriétés de Code n°1 – Panier, un nouvel écran s’affiche et le volet de navigation disparaît. Vous utilisez les boutons de barre d’outils Retour et Enregistrement et retour pour revenir à l’écran principal qui contient le volet de navigation.

Le volet de contenu

La partie droite de l’écran de Business Desk s’appelle le volet de contenu. Le volet de contenu vous permet d’afficher les données du site et de modifier les informations. Lorsque vous cliquez sur un nom de module dans le volet de navigation, le volet de contenu affiche une liste contenant toutes les informations en cours sur le module.

Par exemple, si vous ouvrez la catégorie Commandes, et que vous cliquez sur le nom de module Codes de données, l’écran Codes de données – Codes de statut de la commande s’affiche dans le volet de contenu. Dans cet écran, vous pouvez afficher, ajouter et supprimer les codes relatifs au statut de la commande, au pays et à la région.

Boutons de barre d’outils

La barre d’outils s’affiche horizontalement en haut du volet de contenu, et contient des boutons permettant d’effectuer des tâches standard. Cliquez sur un bouton de la barre d’outils, par exemple, pour ajouter, copier ou supprimer un élément. Chaque bouton de la barre d’outils affiche une représentation graphique de l’action qu’il exécute. Pour voir la description d’une action, placez quelques instants la souris au-dessus d’un bouton avant de cliquer sur celui-ci. Pour obtenir une liste de tous les boutons de barre d’outils disponibles et une description de leurs fonctions, consultez Utilisation des boutons de barre d’outils.

Les boutons de commande portent le nom de la commande qu’ils exécutent. Cliquez sur les boutons de commande pour effectuer des tâches spécifiques dans le volet de contenu. Par exemple, cliquez sur le bouton Tout sélectionner pour sélectionner l’ensemble des éléments d’une liste de résultats.

Voir aussi

Utilisation des boutons de barre d’outils

Utilisation des raccourcis clavier

Utilisation de l’aide en ligne de Business Desk


Utilisation des boutons de barre d'outils

Utilisation des boutons de barre d’outils

Chaque bouton de la barre d’outils permet d’exécuter une action standard dans n’importe quel écran de Commerce Server Business Desk. Tous les boutons de barre d’outils ne sont pas disponibles sur tous les écrans. Le tableau suivant répertorie les boutons de barre d’outils et décrit leurs fonctions.

Bouton de barre d’outils | Description
Archive Archive | Enregistre l’élément sélectionné dans les archives de Business Desk.
Retour Retour | Ferme l’écran des modifications et vous renvoie à l’écran précédent.
Annuler Annuler | Annule l’opération en attente.
Copier Copier | Ouvre les informations détaillées sur l’élément sélectionné puis copie cet élément pour en créer un nouveau disposant de propriétés similaires.
Supprimer Supprimer | Supprime le ou les éléments sélectionnés.
Exporter Exporter | Exporte un ensemble d’informations.
Rechercher Rechercher | Ouvre le volet de recherche.
Menu rechercher par Menu rechercher par | Ouvre une liste déroulante où vous pouvez sélectionner l’un des différents types d’éléments sur lesquels effectuer une recherche.
Aide Aide | Ouvre l’aide de Business Desk du module en cours. Dès lors, vous pouvez afficher les autres rubriques d’aide.
Importer Importer | Importe un ensemble d’informations.
Nouveau Nouveau | Ajoute un nouvel élément.
Ouvrir Ouvrir | Ouvre l’élément sélectionné.
Afficher les rapports Afficher les rapports | Affiche le rapport sélectionné dans son format d’impression.
Imprimer Imprimer | Imprime le rapport sélectionné. Ce bouton n’est disponible que dans les modules Analyse.
Publier un catalogue Publier | Publie un catalogue sur un site de vente au détail. Ce bouton n’est disponible que dans le module Éditeur de catalogue.
Restaurer Restaurer | Restaure un élément de la campagne supprimé. Ce bouton n’est disponible que dans le module Gestionnaire de campagnes.
Exécuter le rapport Exécuter | Exécute le rapport sélectionné. Ce bouton n’est disponible que dans les modules Analyse.
Enregistrer Enregistrer | Enregistre l’élément ou la propriété qui a été ajouté ou modifié.
Enregistrer et créer Enregistrer et créer | Enregistre l’élément ou la propriété qui a été ajouté ou modifié, et ouvre une nouvelle page pour créer un nouvel élément.
Enregistrement et retour Enregistrement et retour | Enregistre l’élément ou la propriété qui a été ajouté ou modifié, et retourne à l’écran principal du module.
Envoyer Envoyer | Envoie un catalogue à un partenaire commercial via Microsoft BizTalk Server. Ce bouton n’est disponible que dans le module Éditeur de catalogue, et n’est activé que si BizTalk Server est installé.
Afficher Afficher | Sélectionne le type des éléments à afficher.

Voir aussi

Navigation dans Business Desk

Utilisation des raccourcis clavier

Utilisation de l’aide en ligne de Business Desk


Sécurisation des modules Business Desk

Commerce Server Business Desk fournit une sécurité basée sur les rôles : les utilisateurs de Business Desk ne peuvent afficher et gérer que les modules autorisés. Par exemple, si un groupe d’utilisateurs n’utilise pas le module Définition de catalogue, vous pouvez empêcher ce module de s’afficher dans le volet de navigation lorsque ces utilisateurs accèdent à Business Desk. Une fois que le développeur de site a défini les autorisations d’accès à un module, l’utilisateur qui ne dispose pas des autorisations nécessaires pour ce module ne peut pas le voir s’afficher.

La limitation de l’accès à des modules spécifiques de Business Desk n’est pas destinée à empêcher les violations de sécurité. En fait, elle empêche les utilisateurs de voir les modules Business Desk situés en dehors de leurs zones de responsabilité.

Contactez votre administrateur système pour implémenter la sécurité. Pour sécuriser un module Business Desk, votre administrateur système doit définir des listes de contrôle d’accès Windows pour les fichiers ASP (Active Server Pages) du module. Pour plus d’informations, consultez « Sécurité » dans la section « Architecture de Business Desk » de l’aide de Commerce Server 2000.

Remarques

  • Si vous sécurisez un des modules suivants, tous les modules sont sécurisés par défaut : Publier les profils, Publier les campagnes marketing et Publier les transactions.

  • Cette fonctionnalité ne limite pas l’accès à des données spécifiques dans Business Desk. Pour limiter l’accès aux données visibles par un utilisateur dans Business Desk, contactez votre administrateur système ou votre développeur de site pour implémenter une sécurité au niveau de la base de données Commerce Server. Par exemple, pour empêcher un utilisateur de Business Desk de modifier un catalogue spécifique, votre développeur de site peut implémenter ce type de sécurité.

  • Si un utilisateur se connecte à Business Desk à partir d’Internet via une session non authentifiée, Internet Explorer invite à entrer le nom d’utilisateur, le mot de passe et le nom du domaine afin d’authentifier l’utilisateur par rapport à l’application Business Desk.

Voir aussi

Composants Business Desk

Personnalisation de Business Desk


Personnalisation de Business Desk

Les développeurs de site et les administrateurs système peuvent personnaliser Commerce Server Business Desk pour répondre aux besoins de l’entreprise. Par exemple, un développeur de site peut ajouter ou supprimer des fonctionnalités, intégrer Business Desk à une application existante, ou modifier la manière dont Business Desk exécute certaines fonctions spécifiques.

Le tableau suivant décrit plusieurs domaines dans lesquels vous pouvez coordonner la personnalisation avec votre administrateur système ou votre développeur de site.

Composant de Business Desk Personnalisation et coordination
Analyse : module Rapports
  • Votre développeur de site peut créer des rapports ou les personnaliser en fonction des besoins de l’entreprise. Vous pouvez également créer des rapports personnalisés à partir des rapports dynamiques existants du module Rapports de Business Desk.

  • L’administrateur système est responsable de l’importation des données dans Data Warehouse à intervalles réguliers. Une fois les données importées dans Data Warehouse, vous pouvez les utiliser pour exécuter des rapports, et les analyser.

  • L’administrateur système peut personnaliser les données des fichiers journaux Web qui doivent être importées dans Data Warehouse, et établir les définitions d’utilisateurs et de visites affectant les résultats des rapports exécutés.
Analyse : module Identification de segments
  • L’administrateur système utilise la ressource Predictor dans Commerce Server Manager pour créer des configurations de modèles. L’administrateur système utilise des configurations de modèles pour construire des modèles de segments et des modèles de prévision à partir des données contenues dans Data Warehouse. Vous pouvez afficher les modèles de segments dans le module Identification de segments de Business Desk. L’administrateur système utilise le Prediction Model Viewer pour afficher les modèles de prévision.
Utilisateurs : module Définitions de profil
  • L’administrateur système crée des définitions de profils à l’aide de Commerce Server Manager, puis ajoute des sources de données, des objets de données et des membres de données pour exposer la structure de la base de données Commerce Server à la définition de profil. Lorsque vous utilisez Business Desk pour ajouter une propriété de profil à une définition de profil, vous sélectionnez le membre de données qui mappe la nouvelle propriété de profil vers l’emplacement de la base de données Commerce Server où sont stockées les données collectées par la propriété de profil.
Paramètres généraux du système
  • L’administrateur système configure les paramètres système tels que les unités de mesure, les devises, les options de paiement, ainsi que les options liées à l’inscription et à la sécurité du site Web. Vous devez coordonner les modifications apportées à ces options ou à ces paramètres avec l’administrateur système.

Voir aussi

Composants Business Desk

Configuration de Commerce Server et Business Desk

Préliminaires

Pour obtenir un supplément d’aide


Importation et exportation de données

Commerce Server Business Desk vous permet d’importer et d’exporter des catalogues, des listes de publipostage et des listes d’utilisateurs. Le tableau suivant décrit les données pouvant être importées ou exportées.

Module | Données importées ou exportées
Éditeur de catalogue | Catalogues. Vous pouvez importer et exporter des catalogues, au format XML (Extensible Markup Language) ou CSV (valeurs séparées par une virgule), vers et depuis des sources externes. Pour plus d’informations sur l’importation et l’exportation de catalogues, consultez Importation d’un catalogue et Exportation d’un catalogue. Propriétés de catalogue. Le module Définition de catalogue permet de spécifier les propriétés de catalogue qui seront importées et stockées dans Data Warehouse. Une fois que votre administrateur système aura importé les propriétés de catalogue dans Data Warehouse, vous pourrez les utiliser pour exécuter des rapports.
Gestionnaire de listes | Listes d’utilisateurs et listes de publipostage Vous pouvez importer et exporter des listes d’utilisateurs et des listes de publipostage, statiques ou dynamiques, à partir du module Gestionnaire de listes. Pour plus d’informations sur l’importation et l’exportation de listes, consultez Importation et exportation de listes.
Définitions de profil | Propriétés de profil. Le module Définitions de profil permet de spécifier les propriétés de profil qui seront importées et stockées dans Data Warehouse. Une fois que votre administrateur système aura importé les propriétés de profil dans Data Warehouse, vous pourrez les utiliser pour exécuter des rapports.
Rapports | Lorsque vous exécutez un rapport dynamique, vous pouvez l’exporter vers Microsoft Excel et l’enregistrer sous forme de feuille de calcul Excel. Vous pouvez exporter des rapports statiques vers le Gestionnaire de listes. Après avoir exporté un rapport statique vers le Gestionnaire de listes, vous pouvez importer la liste dans le service de publipostage pour l’utiliser dans une campagne de publipostage si elle contient des adresses de messagerie, ou vous pouvez l’importer dans le module Utilisateurs, si elle contient des informations sur le profil utilisateur, pour mettre à jour les profils des utilisateurs listés.

Voir aussi

Importation d’un catalogue

Exportation d’un catalogue

Importation et exportation de listes

Pour obtenir un supplément d’aide


Utilisation des raccourcis clavier

Dans Commerce Server Business Desk, vous pouvez utiliser des raccourcis clavier pour exécuter les mêmes fonctions de navigation et de modification qu’avec la souris. Ces raccourcis vous permettent d’effectuer toutes les fonctions utilisées dans Business Desk.

Cette section décrit les raccourcis clavier et fournit également des conseils sur l’utilisation du clavier pour naviguer dans Business Desk.

Tabulations

Tableau des raccourcis clavier

Tabulations

Lorsque vous vous déplacez à l’aide de la tabulation dans l’écran d’accueil Business Desk, le focus de la tabulation se trouve sur le volet de navigation. Le focus de la tabulation en cours est indiqué par une ligne pointillée autour de l’élément d’écran.

Lorsque vous vous déplacez à l’aide de la tabulation en dehors du volet de navigation, le focus se place sur la barre d’outils puis sur le volet de contenu. Lorsque vous vous déplacez à l’aide de la tabulation sur une liste d’éléments, vous devez utiliser les touches de direction pour naviguer dans la liste. Utilisez la touche ENTRÉE ou la barre d’espace pour effectuer une sélection.

  • Si vous effectuez une sélection dans un menu déroulant (menu incluant une flèche vers le bas), utilisez les touches de direction pour identifier la sélection, puis appuyez sur ENTRÉE.

  • Vous pouvez ouvrir les menus déroulants en appuyant sur la barre d’espace.

  • Si vous devez utiliser un bouton, appuyez sur TABULATION jusqu’à ce que le bouton reçoive le focus, puis appuyez sur ENTRÉE.

  • Si vous voulez revenir sur un élément à l’aide de la tabulation, appuyez sur MAJ+TAB.

Pour ouvrir un module Business Desk

Pour accéder aux boutons de barre d’outils à l’aide d’un clavier

Pour ouvrir les propriétés d’un élément à l’aide d’un clavier

Pour ouvrir un module Business Desk

  1. Dans le volet de navigation, déplacez-vous à l’aide de la tabulation vers la catégorie contenant le module Business Desk à utiliser, puis appuyez sur ENTRÉE.

  2. Placez-vous à l’aide de la tabulation sur le nom du module à utiliser, puis appuyez sur ENTRÉE.

Le module sélectionné s’ouvre.

Pour accéder aux boutons de barre d’outils à l’aide d’un clavier

  1. Dans le volet de navigation, déplacez-vous à l’aide de la tabulation vers la catégorie contenant les éléments à ajouter ou à modifier, puis appuyez sur ENTRÉE.

  2. Placez-vous à l’aide de la tabulation sur le nom du module à utiliser, puis appuyez sur ENTRÉE.

  3. Placez-vous à l’aide de la tabulation sur le bouton de barre d’outils à utiliser, puis appuyez sur ENTRÉE.

Vous pouvez à présent effectuer des modifications ou des ajouts à l’aide de la fonction de barre d’outils utilisée.

  4. Appuyez sur ALT+S pour enregistrer vos ajouts ou vos modifications.

Remarques

  • Si vous vous placez à l’aide de la tabulation sur une zone contenant une liste déroulante, vous devez appuyer sur ENTRÉE pour effectuer une sélection dans cette liste. Utilisez les touches HAUT et BAS pour sélectionner une option, puis appuyez sur ENTRÉE.

  • Pour revenir à la zone précédente, appuyez sur MAJ+TAB.

Les mêmes combinaisons de touches d’accès rapide sont parfois affectées à certains éléments d’écran. Par exemple, le module Commandes dans le volet de navigation et le bouton de barre d’outils Ouvrir se partagent ALT+O. Dans ce cas, la première fois que vous appuyez sur une combinaison de touches d’accès rapide, vous activez le premier élément d’écran, la seconde fois, vous activez le deuxième élément, etc.

Pour ouvrir les propriétés d’un élément à l’aide d’un clavier

  1. Dans le volet de navigation, déplacez-vous à l’aide de la tabulation vers les éléments à utiliser, puis appuyez sur ENTRÉE.

  2. Placez-vous à l’aide de la tabulation sur le module à utiliser, puis appuyez sur ENTRÉE. Le module sélectionné s’ouvre.

  3. Déplacez-vous à l’aide de la tabulation vers la liste d’éléments du volet de contenu, puis utilisez les touches HAUT ou BAS pour donner le focus à un élément.

  4. Appuyez sur ENTRÉE. L’élément est mis en évidence.

Placez-vous à l’aide de la tabulation sur Ouvrir dans la barre d’outils, et appuyez sur ENTRÉE.

  5. Les propriétés de l’élément s’affichent et vous pouvez à présent les visualiser ou les modifier.

Tableau des raccourcis clavier

Business Desk offre des raccourcis clavier permettant de naviguer sans utiliser la souris. Le tableau suivant répertorie les raccourcis clavier fréquemment utilisés dans Business Desk. Vous pouvez également déterminer le raccourci clavier d’un bouton de barre d’outils en plaçant le pointeur de la souris sur ce bouton. Cela permet d’afficher l’info-bulle du bouton de la barre d’outils.

Action | Raccourci
Ouvrir | ALT+V
Rechercher | ALT+H
Nouvelle | ALT+N
Enregistrer | ALT+S
Enregistrement et retour | ALT+D
Enregistrer et créer | ALT+N
Supprimer | ALT+P
Copier | ALT+C
Afficher les propriétés | ALT+V
Afficher l’aide | ALT+?
Retour | ALT+R
Exécuter Rapport | ALT+X
Exporter | ALT+X
Importer | ALT+I

Voir aussi

Utilisation des boutons de barre d’outils

Utilisation de l’aide en ligne de Business Desk

Navigation dans Business Desk

Pour obtenir un supplément d’aide


Préliminaires

Avant de pouvoir ouvrir votre site Web aux activités commerciales, vous ou votre développeur de site devez utiliser Commerce Server Business Desk pour effectuer les tâches suivantes :

  1. Créer un catalogue. Vous pouvez importer un catalogue existant ou créer un schéma de catalogue.
    • Importer un catalogue. Contactez votre administrateur système pour connaître le nom et l’emplacement du catalogue que vous souhaitez importer. Vous avez besoin du nom et du chemin d’accès complet au catalogue situé sur le serveur Commerce Server principal, par exemple, C:\Commerce Server\Catalogs\SportsCatalog.xml.

    • Créer un schéma de catalogue. Si vous ne disposez pas de catalogues existants à importer, vous devez créer un schéma de catalogue. Il est recommandé de planifier l’organisation de votre catalogue avant de créer un schéma de catalogue.
  2. Appliquer une tarification aux produits.

  3. Publier votre catalogue sur votre site.

  4. Personnaliser les modes de livraison. Vous devez spécifier le mode de calcul des frais de livraison par Commerce Server : en fonction du poids du produit, de la quantité achetée par les utilisateurs, ou d’après le montant du sous-total des achats.

Après avoir effectué ces étapes, vous pouvez ouvrir votre site Web aux activités commerciales. En outre, il est recommandé d’effectuer les étapes suivantes pour vous familiariser avec la configuration de Business Desk pour votre site.

Dans Campagnes marketing, effectuez les tâches suivantes :

  • Définir des tables de référence. Les tables de références stockent les activités, les groupes de pages et les tailles de contenu. Commerce Server fournit plusieurs activités et tailles de contenu courantes.

Dans Analyse, effectuez les tâches suivantes :

  1. Consultez les rapports existants pour vérifier qu’ils répondent à vos besoins ; pour obtenir une liste des rapports livrés avec Commerce Server, consultez Rapports Commerce Server. Si vous avez besoin d’autres rapports, vous pouvez créer des rapports personnalisés ou contacter votre développeur de site. Pour créer de nouveaux rapports, consultez Création d’un nouveau rapport dynamique.

  2. Contactez votre administrateur système pour déterminer le moment où les données seront importées dans Data Warehouse. Avant de pouvoir exécuter un rapport, l’administrateur système doit importer les données dans Data Warehouse.

  3. Contactez votre administrateur système pour déterminer le moment où les modèles de segments seront construits. Avant de pouvoir afficher les modèles de segments, votre administrateur système doit les construire.

Dans Utilisateurs, effectuez les tâches suivantes :

  1. Consultez les définitions de profils existantes pour vérifier qu’elles répondent à vos besoins ; pour obtenir une liste des définitions de profils livrées avec Commerce Server, consultez Exemples de définitions de profils. Pour ajouter des définitions de profils, contactez votre administrateur système. Pour ajouter des propriétés aux définitions de profils, consultez Ajout de propriétés à une définition de profil.

  2. Consultez les entrées existantes du glossaire du site pour vérifier qu’elles répondent à vos besoins. Pour ajouter des entrées du glossaire du site, consultez Ajout d’une entrée du glossaire du site.


Tâches courantes

Une fois votre site ouvert, vous devez parfois fréquemment effectuer les tâches suivantes :

  • Réinitialisation d’un mot de passe utilisateur

  • Recherche et tri des commandes

  • Tarification des produits

  • Application d’une remise sur le prix des produits

  • Ciblage d’une publicité ou d’une remise

  • Exécution de rapports

  • Exportation d’un rapport statique

  • Ajout d’une organisation

  • Ajout d’une entrée du glossaire du site


Exemple : fermeture de la boucle

Commerce Server Business Desk vous permet d’analyser vos activités commerciales, puis d’utiliser les résultats de cette analyse pour rendre votre site plus efficace et plus proche des attentes de vos utilisateurs. Les utilisateurs qui trouvent votre site digne d’intérêt, utile et agréable se montreront fidèles à votre société, et reviendront souvent sur votre site. Cette fonctionnalité de type « boucle fermée » consiste à collecter les données utilisateur, à analyser ces données, puis à délivrer des informations aux utilisateurs répondant à vos critères de sélection ; elle affecte directement l’activité commerciale de votre site Web car les visiteurs sont convertis en acheteurs et les acheteurs en utilisateurs fidèles.

Commerce Server offre plusieurs méthodes pour vous permettre d’analyser l’activité d’un site et le mettre à jour. Les exemples de procédures suivants décrivent un scénario de boucle fermée : comment personnaliser les données de profil utilisateur, analyser les informations utilisateur, puis créer une campagne de publipostage pour cibler les utilisateurs qui répondent à vos critères de sélection.

Étape 1 : Ajouter des propriétés à une définition de profil

Étape 2 : Publier les modifications apportées au profil sur votre site Web

Étape 3 : Ajouter un utilisateur avec une nouvelle propriété

Étape 4 : Exécuter un rapport statique

Étape 5 : Exporter un rapport statique vers une liste

Étape 6 : Créer une campagne de publipostage

Étape 1 : Ajouter des propriétés à une définition de profil

Le module Définitions de profil vous permet de spécifier les données que vous voulez collecter sur vos utilisateurs. Pour spécifier les données que vous voulez collecter, vous devez ajouter des propriétés aux définitions de profils utilisateur. Par exemple, vous pouvez ajouter une propriété telle que « couleur préférée » pour identifier les utilisateurs qui aiment le bleu, puis cibler les produits de couleur bleue en fonction de ces utilisateurs.

Pour ajouter une nouvelle propriété à un profil utilisateur

  1. Dans Utilisateurs, cliquez sur Définitions de profil.

Dans l’écran Profils, sélectionnez la définition de profil Objet utilisateur, puis cliquez sur Ouvrir dans la barre d’outils.

  2. Dans l’écran Profil, dans la liste Propriétés, sélectionnez Informations générales, puis cliquez sur Ajouter.

  3. Dans la boîte de dialogue Ajouter, sélectionnez l’option Ajouter une nouvelle propriété, puis cliquez sur OK.

  4. Dans la section Attributs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom de la propriété, par exemple, CouleurPréférée.
    Nom complet | Taper un nom complet pour la propriété, par exemple, « Couleur préférée ».

  5. Dans la section Attributs avancés, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Activé | Vérifier que Oui est sélectionné.
    Mapper vers les données Dans la zone Mapper vers les données, cliquer sur le bouton de sélection [...] pour ouvrir la boîte de dialogue Sélecteur de source de données.

    Dans la boîte de dialogue Sélecteur de source de données, sélectionnez ProfileService_SQLSource, faites défiler l’écran, sélectionnez Objet utilisateur, puis sélectionnez Propriété personnalisée 1.

    Si vous ne mappez pas la propriété vers une source de données, la propriété ne pourra pas être modifiée dans les modules Utilisateurs ou Organisations.

  6. Cliquez sur OK, puis sur Appliquer.

Pour enregistrer la propriété et revenir à l’écran Définitions de profil, cliquez sur Enregistrement et retour dans la barre d’outils.

La nouvelle propriété est ajoutée à la définition de profil. Vous pouvez à présent publier les modifications de profil sur votre site Web.

Étape 2 : Publier les modifications apportées au profil sur votre site Web

Après avoir ajouté une propriété à une définition de profil, vous utilisez le module Publier les profils pour publier vos modifications sur votre site Web.

Pour publier des modifications apportées au profil

  1. Dans Utilisateurs, cliquez sur Publier les profils.

  2. Dans l’écran Publier les profils, sélectionnez le site, puis cliquez sur Publier les modifications pour la production et actualiser le cache dans la barre d’outils.

Les modifications apportées au profil sont mises à jour et disponibles sur votre site Web. Vous pouvez maintenant ajouter un utilisateur avec le nouveau profil.

Étape 3 : Ajouter un utilisateur avec une nouvelle propriété

Le module Utilisateurs permet d’ajouter les informations de profil des utilisateurs inscrits. Au cours de cette étape, vous devez entrer les informations du profil utilisateur, notamment la propriété « Couleur préférée » ajoutée à l’étape 1.

Pour ajouter un utilisateur avec le nouveau profil

  1. Dans Utilisateurs, cliquez sur Utilisateurs.

  2. Dans l’écran Gestion des utilisateurs inscrits, cliquez sur Nouveau dans la barre d’outils.

  3. Dans l’écran Nouvel utilisateur, dans la section Informations générales, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’ouverture de session | Taper un nom d’ouverture de session pour le nouvel utilisateur.
    Mot de passe de l’utilisateur | Taper un mot de passe pour le nouvel utilisateur.
    Adresse électronique | Taper une adresse électronique pour le nouvel utilisateur.
    Nom | Taper le nom du nouvel utilisateur.
    Prénom | Taper le prénom du nouvel utilisateur.
    Couleur préférée | Taper bleu.

Pour enregistrer le nouvel utilisateur et revenir à l’écran Utilisateurs, cliquez sur Enregistrement et retour.

Cet utilisateur est alors ajouté à la base de données Commerce Server. Vous pouvez désormais cibler l’utilisateur en fonction de ses informations de profil.

Étape 4 : Exécuter un rapport statique

Une fois que les données contenant les informations sur l’activité de l’utilisateur et du serveur sont traitées dans Data Warehouse, votre administrateur système doit importer les informations dans Microsoft SQL Server Enterprise Manager. Une fois les fichiers journaux importés, vous utilisez les modules Analyse pour analyser vos données utilisateur en exécutant des rapports qui affichent les caractéristiques et le comportement antérieur de vos utilisateurs. Vous pouvez ensuite mettre à jour votre site pour cibler la publicité ou les produits en fonction de ces utilisateurs. Par exemple, vous pouvez exécuter un rapport Propriétés de l’utilisateur inscrit, analyser les informations contenues dans ce rapport, puis sélectionner les utilisateurs en fonction desquels vous souhaitez cibler une campagne de publipostage.

Pour exécuter un rapport statique

  1. Dans Analyse, cliquez sur Rapports.

  2. Dans la liste des rapports disponibles, sélectionnez Propriétés de l’utilisateur inscrit, puis cliquez sur Exécuter dans la barre d’outils.

  3. Dans la boîte de dialogue Exécuter un rapport, dans la section Nom du site, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Opérande | Déterminer le site pour lequel le rapport doit s’exécuter en sélectionnant dans la liste déroulante un opérande (Tous, Égal, Est différent de, Comme, Différent de).
    Valeur du paramètre | Taper le nom du site pour lequel le rapport doit s’exécuter.

  4. Dans la boîte de dialogue Exécuter un rapport, dans la section Nombre d’utilisateurs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Sélectionner Sélectionner un paramètre pour le nombre d’utilisateurs à inclure dans le rapport, à partir de la liste déroulante :
    • Tous. Tous les utilisateurs de la base de données Commerce Server qui répondent aux critères de la requête.

    • Haut. La limite maximale du nombre d’utilisateurs de la base de données Commerce Server qui répondent aux critères de la requête. Tapez le nombre maximal d’utilisateurs dans la zone Valeur du paramètre.

    • Différent. Un utilisateur particulier de la base de données Commerce Server qui répond aux critères de la requête.
    Valeur du paramètre | Taper le nombre maximal d’utilisateurs que le rapport doit renvoyer.

  5. Cliquez sur OK.

Le rapport statique s’exécute et, lorsqu’il est terminé, s’affiche dans le module Analyse de rapports. Le rapport peut à présent être exporté sous forme de liste dans le Gestionnaire de listes, et être utilisé pour cibler les utilisateurs dans une campagne de publipostage.

Étape 5 : Exporter un rapport statique vers une liste

Les données des rapports statiques peuvent être utilisées dans des campagnes de publipostage. Une campagne de publipostage peut être adressée à des utilisateurs spécifiques grâce aux listes de publipostage du Gestionnaire de listes.

Pour exporter un rapport statique

  1. Dans Analyse, cliquez sur Rapports.

  2. Dans la liste des rapports, sélectionnez le rapport statique contenant les données à exporter, par exemple, Propriétés de l’utilisateur inscrit, puis cliquez sur Exporter dans la barre d’outils.

  3. Dans la boîte de dialogue Exécuter un rapport, dans la section Nom du site, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Opérande | Déterminer le site pour lequel le rapport doit s’exécuter en sélectionnant dans la liste déroulante un opérande (Tous, Égal, Est différent de, Comme, Différent de).
    Valeur du paramètre | Taper le nom du site pour lequel le rapport doit s’exécuter.

  4. Dans la boîte de dialogue Exécuter un rapport, dans la section Nombre d’utilisateurs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Sélectionner Sélectionner un paramètre pour le nombre d’utilisateurs à inclure dans le rapport, à partir de la liste déroulante :
    • Tous. Tous les utilisateurs de la base de données Commerce Server qui répondent aux critères de la requête.

    • Haut. La limite maximale du nombre d’utilisateurs de la base de données Commerce Server qui répondent aux critères de la requête. Tapez le nombre maximal d’utilisateurs dans la zone Valeur du paramètre.

    • Différent. Un utilisateur particulier de la base de données Commerce Server qui répond aux critères de la requête.
    Valeur du paramètre | Taper le nombre maximal d’utilisateurs que le rapport doit renvoyer.

  5. Cliquez sur OK.

  6. Dans la boîte de dialogue Exporter le rapport en tant que liste, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Statique | Vérifier que Statique est sélectionné.
    Taper le nom de la liste vers laquelle effectuer la copie | Taper un nom de liste unique.

  7. Cliquez sur OK.

Votre rapport statique est exporté vers le Gestionnaire de listes sous forme de liste. Vous pouvez maintenant utiliser cette liste pour créer une campagne de publipostage.

Étape 6 : Créer une campagne de publipostage

Les campagnes de publipostage permettent aux utilisateurs de voir vos publicités. Les modules Campagnes marketing permettent de créer des campagnes de publipostage, qui peuvent être ciblées en fonction d’utilisateurs spécifiques grâce aux listes de publipostage du Gestionnaire de listes. Vous pouvez utiliser ces listes pour exécuter des travaux de publipostage afin de mieux cibler vos utilisateurs.

La procédure suivante part de l’hypothèse selon laquelle vous avez déjà créé un client et une campagne marketing.

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la campagne pour laquelle vous souhaitez créer une campagne de publipostage, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Nouveau publipostage dans la liste déroulante.

  3. Dans l’écran Propriétés du publipostage, dans la section Élément de publipostage, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de publipostage | Taper un nom pour le travail de publipostage.
    Adresse électronique d’expédition du message | Taper l’adresse à partir de laquelle le publipostage est envoyé.
    Adresse de réponse Taper l’adresse à laquelle le destinataire doit répondre, si celle-ci diffère de l’adresse par défaut.

    La valeur par défaut de cette zone correspond à l’adresse à partir de laquelle le publipostage est envoyé.
    Objet du message | Taper le texte de l’objet pour ce travail de publipostage.
    Chemin d’accès à un fichier ou adresse URL contenant le corps du message | Taper le chemin d’accès au fichier ou l’adresse URL que vous utilisez pour afficher le message de publipostage.
    Pièce jointe Taper le chemin d’accès au fichier et le nom de fichier de la pièce jointe envoyée avec le message.

    Si aucune pièce jointe n’est envoyée, laissez cette zone vide.
    Liste de publipostage | Sélectionner dans la liste déroulante la liste de publipostage qui sera utilisée, par exemple, Propriétés de l’utilisateur inscrit, par cette campagne de publipostage.
    Personnalisation Sélectionner Oui ou Non dans la liste déroulante.
    • Oui – Active la personnalisation pour cette campagne de publipostage.

    • Non – Désactive la personnalisation pour cette campagne de publipostage.
    Format du message Sélectionner le format de ce message.

    Les options sont les suivantes :

    • Texte – Applique un format ASCII au message.

    • MHTML – Applique un format HTML multilingue au message.

    • MIME – Applique un format MIME au message.
    Commentaires (non inclus dans le message) | Taper tout commentaire nécessaire concernant ce travail de publipostage.

  4. Pour enregistrer la campagne de publipostage et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

La campagne de publipostage est ajoutée au module Gestionnaire de campagnes, le publipostage est envoyé aux utilisateurs figurant sur la liste de publipostage spécifiée, et la boucle est bouclée.


Utilisation de l'aide en ligne de Business Desk

Utilisation de l’aide en ligne de Business Desk

Pour accéder à l’aide dans Commerce Server Business Desk, cliquez sur Aide. L’aide s’affiche pour tous les écrans et toutes les tâches où vous avez besoin d’assistance.

Business Desk offre une aide au niveau des boîtes de dialogue et au niveau des tâches. L’aide au niveau des boîtes de dialogue décrit les entrées nécessaires dans les zones de texte spécifiques. L’aide au niveau des tâches vous guide progressivement dans l’exécution d’une tâche spécifique. Une documentation élaborée spécialement pour les administrateurs système et les développeurs de site est également fournie dans Commerce Server 2000.

Impression de rubriques

Onglet Sommaire

Onglet Index

Onglet Recherche

Termes du glossaire

Impression de rubriques

  • Cliquez avec le bouton droit sur la rubrique que vous souhaitez imprimer, puis cliquez sur Imprimer.

  • Pour imprimer une rubrique contextuelle, cliquez avec le bouton droit à l’intérieur de la fenêtre contextuelle, puis cliquez sur Imprimer.

  • Pour imprimer toutes les rubriques d’un livre, sous l’onglet Sommaire, sélectionnez le livre souhaité. Dans la barre d’outils de l’aide, cliquez sur Options, sur Imprimer, puis sur Imprimer le titre sélectionné et toutes les sous-rubriques.

Remarque

  • L’impression de grandes illustrations peut parfois s’effectuer de manière incomplète. Si une illustration est très grande, le bord droit de l’exemple de code ou de l’illustration peut dépasser les marges et ne pas s’imprimer.

Onglet Sommaire

Dans le volet d’ouverture de l’aide de Business Desk, cliquez sur l’onglet Sommaire pour afficher la table des matières de l’aide de Business Desk. Cliquez sur le nom de la rubrique que vous voulez afficher, ou cliquez sur le signe plus (+) pour développer cette rubrique. La rubrique s’affiche à droite de la fenêtre d’aide dans le volet de contenu.

Pour imprimer la rubrique en cours, ou la rubrique et toutes ses sous-rubriques, cliquez sur [image]. Vous pouvez également cliquer sur le bouton Synchronisation pour synchroniser la table des matières avec le volet de contenu situé à droite. Vous devez synchroniser la table des matières avec le volet de contenu après avoir effectué une recherche.

Onglet Index

Pour afficher l’index en ligne de Business Desk, cliquez sur l’onglet Index.

Pour rechercher un mot dans l’index

  1. Dans la fenêtre Documentation de Business Desk, cliquez sur l’onglet Index.

  2. Dans la zone Entrez le mot clé à rechercher, entrez un mot clé ou une expression à rechercher. L’index affiche automatiquement la correspondance la plus proche du mot.

  3. Si vous trouvez une correspondance, cliquez sur Afficher pour afficher une zone Rubriques trouvées, qui répertorie les rubriques contenant le mot.

  4. Pour trouver l’information souhaitée, sélectionnez la rubrique puis cliquez sur Afficher. La rubrique s’affiche dans le volet de contenu.

Onglet Recherche

Pour rechercher des mots clés ou des expressions spécifiques dans l’aide de Business Desk, cliquez sur l’onglet Recherche.

Pour rechercher un mot clé ou une expression

  1. Dans la fenêtre Documentation de Business Desk, cliquez sur l’onglet Recherche.

  2. Dans la zone Rechercher, entrez un mot clé ou une expression à rechercher, puis cliquez sur Rechercher. La liste des résultats s’affiche dans le volet de contenu.

    Vous pouvez utiliser la zone Sélectionnez le type de recherche pour sélectionner un type de recherche spécifique. Par défaut, la recherche porte sur l’expression exacte saisie. Vous pouvez sélectionner l’une des recherches suivantes :

    Type de recherche

            Description

    Phrase exacte

            Recherche la séquence exacte des mots que vous tapez. Par exemple, si vous tapez Business Desk, la recherche renvoie uniquement les rubriques contenant « Business Desk ».

    Recherche standard

            Recherche toutes les formes des mots que vous tapez. Par exemple, si vous tapez Business Desk, le moteur de recherche renvoie toutes les rubriques contenant « business » et toutes les rubriques contenant « desk ».

  3. Pour afficher la rubrique que vous voulez consulter, cliquez sur son titre.

La rubrique s’affiche dans le volet de contenu.

Termes du glossaire

Lorsqu’une rubrique d’aide de Business Desk s’affiche dans le volet de contenu, vous pouvez voir que certains mots sont surlignés en vert. En cliquant sur un ou plusieurs mots surlignés, vous pouvez afficher la définition correspondante. Vous pouvez également trouver une liste alphabétique de ces termes à la fin de la table des matières de Business Desk sous Glossaire.


Pour obtenir un supplément d'aide

Pour obtenir un supplément d’aide

Pour obtenir un supplément d’aide et utiliser ou personnaliser Commerce Server Business Desk selon vos besoins, contactez votre administrateur système ou votre développeur de site. Le tableau suivant répertorie les tâches effectuées par chaque personne.

Contact Pour faire cela
Administrateur du système (sa)
  • Créer un dossier partagé pour vous permettre d’importer et d’exporter les catalogues

  • Convertir les catalogues externes au format XML ou CSV, pour vous permettre de les importer

  • Définir des partenaires commerciaux pour vous permettre de leur envoyer ou d’échanger des catalogues, à l’aide de BizTalk Server

  • Importer des données vers Data Warehouse pour vous permettre d’exécuter des rapports

  • Construire des modèles de segments pour vous permettre de les consulter à l’aide du module Identification de segments

  • Ajouter de nouvelles définitions de profils et sources de données pour vous permettre de collecter des données de profil supplémentaires

  • Sécuriser les modules Business Desk

  • Planifier les travaux de publipostage

  • Assurer la maintenance de Business Desk

  • Assurer la maintenance de l’environnement du site Web
Développeur de site
  • Intégrer votre site Web aux systèmes existants

  • Personnaliser la fonctionnalité de Business Desk

  • Ajouter de nouveaux modules à Business Desk

  • Ajouter une fonctionnalité vente associée à votre site, telle que la vente croisée et l’offre de lancement des articles

  • Activer une page Web pour la publicité pour vous permettre de cibler des groupes de pages

  • Créer des rapports personnalisés

  • Étendre Data Warehouse


Didacticiel Business Desk

Microsoft Commerce Server 2000 fournit un ensemble d’outils complet permettant de créer des applications commerciales pour le Web. Les didacticiels suivants donnent des instructions pas à pas relatives à l’utilisation de Commerce Server pour la gestion de vos sites Web :

  • Didacticiel Entreprise-client

  • Didacticiel Entreprise-entreprise

Les modules de Commerce Server Business Desk permettent de gérer les différents aspects de votre site Web.


Didacticiel Entreprise-client

Le didacticiel Business Desk entreprise-client (Retail) fournit des instructions simples permettant d’utiliser les fonctionnalités de Commerce Server pour importer et créer des catalogues, gérer les profils utilisateur, créer des campagnes de publicité, cibler les utilisateurs du site, analyser l’utilisation du site et exécuter des rapports.

Le didacticiel Retail contient les ateliers suivants pour le site solution Retail. Pour connaître l’emplacement de votre site solution Retail, consultez votre administrateur système. Il est important d’effectuer les ateliers dans l’ordre dans lequel ils sont répertoriés ci-dessous. Chaque atelier est nécessaire aux ateliers suivants.

  • Ajout d’un mode de livraison et d’un taux de taxe

  • Création d’un catalogue

  • Création d’une entrée du glossaire du site

  • Ajout d’un utilisateur avec un nouveau profil

  • Importation d’un catalogue et exécution de recherches en texte libre ou avec propriété

  • Création d’une campagne de publicité

  • Création d’une expression de ciblage

  • Création d’une campagne de remise

  • Importation d’un fichier journal

  • Exécution d’un rapport dynamique

  • Exécution d’un rapport statique

  • Exportation d’un rapport statique

  • Création d’une campagne de publipostage


Ajout d'un mode de livraison et d'un taux de taxe

Ajout d’un mode de livraison et d’un taux de taxe

Le module Commandes de Commerce Server Business Desk permet d’afficher des informations sur le statut des commandes, d’ajouter et de modifier des modes de livraison et de définir des taux de taxe pour différents pays, états et régions.

Dans cet atelier, vous allez ajouter un mode de livraison, ajouter et modifier des taux de livraison en fonction du sous-total et définir un taux de taxe pour l’état de Washington.

Pour ajouter un mode de livraison

  1. Ouvrez Commerce Server Business Desk à partir du menu Démarrer ou du Bureau.

  2. Dans Commandes, cliquez sur Modes de livraison.

  3. Dans l’écran Modes de livraison, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Facturer en fonction du sous-total dans la liste déroulante.

  4. Dans l’écran Facturer en fonction du sous-total - Nouveau, dans la section Propriétés du mode de livraison, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper Air Voyages.
    Description | Taper Nous livrons tout.
    Activée | Vérifier que la case à cocher Mode de livraison activé est activée.

  5. Dans la section Taux, cliquez sur Nouvelle, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Prix, jusqu’à | Taper 60.
    Taux de livraison | Taper 30.

  6. Cliquez sur Accepter.

  7. Pour ajouter un autre taux de livraison, cliquez sur Nouvelle, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Prix, jusqu’à | Taper 120.
    Taux de livraison | Taper 60.

  8. Cliquez sur Accepter.

  9. Pour ajouter le taux de livraison supérieur à 120, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Prix, jusqu’à | Double-cliquer sur supérieur à 120.
    Taux de livraison | Taper 90.

  10. Cliquez sur Accepter.

Les nouveaux taux de livraison sont définis en fonction du sous-total.

Pour modifier un taux de livraison

  1. Dans l’écran Facturer en fonction du sous-total - Nouveau, dans la section Taux, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Prix, jusqu’à | Sélectionner 120, puis cliquer sur Modifier.
    Taux de livraison | Cliquer à côté de 60, puis passer le taux de livraison à 63,00.

  2. Cliquez sur Accepter.

  3. Pour enregistrer les nouveaux taux de livraison et revenir à l’écran Modes de livraison, cliquez sur Enregistrement et retour dans la barre d’outils.

Les taux de livraison sont enregistrés et seront appliqués en fonction du sous-total aux achats effectués sur le site Retail.

Pour ajouter un taux de taxe

  1. Dans Commandes, cliquez sur Taux de taxes.

  2. Dans l’écran Taxe, cliquez sur Nouvelle, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Pays/région | Sélectionner États-Unis d’Amérique dans la liste déroulante.
    Département/province | Sélectionner Washington dans la liste déroulante.
    Taux de taxe (%) | Taper 10.

  3. Cliquez sur Accepter.

  4. Pour enregistrer le nouveau taux de taxe et revenir à l’écran Business Desk, cliquez sur Enregistrement et retour dans la barre d’outils.

Le taux de taxe est enregistré et sera appliqué aux achats livrés dans l’état de Washington.


Création d'un catalogue

Création d’un catalogue

Les modules Catalogues permettent d’ajouter et de mettre à jour des données sur les produits et de créer des catalogues de produits. Un catalogue se compose de deux parties : le schéma du catalogue et les données du catalogue. Pour créer un catalogue, vous devez d’abord créer le schéma du catalogue, puis ajouter des données à ce catalogue. Un schéma de catalogue spécifie la structure du catalogue, alors que les données du catalogue constituent le contenu du catalogue.

Les données d’un catalogue sont classées selon les groupes hiérarchiques suivants :

  • Les catégories contiennent des produits ou des sous-catégories. Chaque catégorie est une instance unique d’une définition de catégorie.

  • Les produits sont les éléments à vendre d’un catalogue. Chaque produit est une instance unique d’une définition de produit. Un groupe de produits proches constitue une famille de produits.

  • Un produit est une combinaison de définitions de propriétés. Par exemple, si vous avez une définition de produit appelée Maillots, avec les propriétés Couleur, Longueur et Taille, vous créez un produit pour chaque combinaison de couleur, de longueur et de taille que vous souhaitez inclure dans votre catalogue.

  • Les composants produit sont des éléments spécifiques regroupés avec des composants liés qui forment un produit.

Dans cet atelier, vous allez utiliser le module Définition de catalogue pour créer des définitions de propriétés et de produits et pour ajouter des produits à un catalogue. Les définitions de propriétés spécifient les propriétés qui décrivent les produits de votre catalogue et les définitions de produits spécifient un type de produit donné.

Pour créer des définitions de propriétés

  1. Dans Catalogues, cliquez sur Définition de catalogue.

  2. Dans l’écran Définition de catalogue : Définitions de catégories, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définitions de propriétés dans la liste déroulante.

  3. Dans l’écran Définition de catalogue : Définitions de propriétés, cliquez sur Nouvelle dans la barre d’outils, puis sélectionnez Texte dans la liste déroulante.

  4. Dans l’écran Définition de propriété : Nouvelle (Texte), effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper MonTitre.
    Nom complet | Taper Mon Titre.
    Afficher dans la liste de produits | Sélectionner Oui pour afficher cette définition de propriété dans la liste de produits.

  5. Pour enregistrer la nouvelle définition de propriété et en créer une autre, cliquez sur Enregistrer et créer dans la barre d’outils.

  6. Dans la boîte de dialogue Nouvelle définition de propriété, sélectionnez Texte dans la liste déroulante Type, puis cliquez sur Continuer.

  7. Dans l’écran Définition de propriété : Nouvelle (Texte), effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper MonAuteur.
    Nom complet | Taper Mon Auteur.

  8. Pour enregistrer la nouvelle définition de propriété et en créer une autre, cliquez sur Enregistrer et créer dans la barre d’outils.

  9. Dans la boîte de dialogue Nouvelle définition de propriété, sélectionnez Texte dans la liste déroulante Type, puis cliquez sur Continuer.

  10. Dans l’écran Définition de propriété : Nouvelle (Texte), effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper MonISBN.
    Afficher sur le site | Activer la case à cocher Oui.
    Possibilité de recherche en texte libre | Désactiver la case à cocher Oui.
    Possibilité de recherche avec propriété | Désactiver la case à cocher Oui.
    Longueur minimale | Taper 10.
    Longueur maximale | Taper 20.
    Exporter vers Data Warehouse | Activer la case à cocher Oui.

  11. Pour enregistrer la nouvelle définition de propriété et revenir à l’écran Définition de catalogue : Définitions de propriétés, cliquez sur Enregistrement et retour dans la barre d’outils.

Les nouvelles définitions de propriétés sont enregistrées. Vous pouvez maintenant ajouter vos définitions de produits.

Pour ajouter une définition de produit

  1. Dans l’écran Définition de catalogue : Définitions de propriétés, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définitions de produits dans la liste déroulante.
    2. Dans l’écran Définition de catalogue : Définitions de produits, cliquez sur Nouveau dans la barre d’outils.
  3. Dans l’écran Définition de produit : Nouveau, dans la section Propriétés de la définition de produit, tapez MonLivre dans la zone Nom.

  4. Dans la section Propriétés du produit, dans la zone Propriétés disponibles, faites défiler la liste pour afficher MonAuteur, MonISBN et MonTitre. Maintenez la touche [CTRL] enfoncée, cliquez sur MonAuteur, MonISBN et MonTitre, puis relâchez la touche [CTRL].

  5. Cliquez sur Ajouter.

  6. Les propriétés sélectionnées sont déplacées vers la zone Propriétés attribuées.

  7. Pour enregistrer les nouvelles définitions de produits et revenir à l’écran Définition de catalogue : Définitions de produits, cliquez sur Enregistrement et retour dans la barre d’outils.

  8. La définition de produit MonLivre s’affiche dans la zone Nom.

  9. Double-cliquez sur la définition de produit MonLivre.

Les propriétés de produits MonAuteur, MonISBN et MonTitre s’affichent sous la définition de produit MonLivre, en plus des propriétés Description et Name et Weight.

Pour ajouter un nouveau catalogue

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Nouveau catalogue dans la liste déroulante.

  3. Dans l’écran Catalogue : nouveau, dans la section Propriétés du catalogue, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper MesLivres.
    Identificateur unique du produit | Sélectionner MonISBN dans la liste déroulante.
    Identificateur unique du composant produit | Sélectionner MonISBN dans la liste déroulante.

  4. Pour enregistrer les propriétés du catalogue, cliquez sur Enregistrer dans la barre d’outils.

Les propriétés du catalogue sont enregistrées avec le nouveau catalogue.

Pour ajouter une nouvelle catégorie basée sur la définition de catégorie Service

  1. Dans la section Catégories, cliquez sur Nouvelle.

  2. Dans la boîte de dialogue Nouvelle catégorie, sélectionnez Service, puis cliquez sur Continuer.

  3. Dans la section Propriétés de la catégorie, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper Livres sur le commerce.
    Description | Taper Livres sur le commerce disponibles.

  4. Pour enregistrer la nouvelle catégorie et revenir à l’écran Catalogue - MesLivres, cliquez sur Enregistrement et retour dans la barre d’outils.

    La catégorie Livres sur le commerce est créée à partir de la définition de catégorie Service.

  5. Pour revenir à l’écran Catalogues, cliquez sur Retour dans la barre d’outils.

Le catalogue MesLivres s’affiche dans la zone Nom. Vous pouvez maintenant ajouter un nouveau produit au catalogue.

Pour ajouter un nouveau produit au catalogue

  1. Dans l’écran Catalogues, sélectionnez le catalogue MesLivres, puis cliquez sur Ouvrir dans la barre d’outils.

  2. Dans la section Produits, cliquez sur Nouveau.

  3. Dans la boîte de dialogue Nouveau produit, sélectionnez MonLivre, puis cliquez sur OK.

  4. Dans la section Propriétés du produit, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    MonISBN | Taper 1-2345-6789-0.
    Description | Taper Réflexions de Bill Gates.
    Name | Taper Le travail à la vitesse de la pensée.
    MonAuteur | Taper Bill Gates.
    MonTitre | Taper Le travail à la vitesse de la pensée.
    Prix | Taper 119,90.

  5. Dans la section Catégories attribuées, sélectionnez Livres sur le commerce dans la zone Catégories disponibles.

  6. Cliquez sur Ajouter.

Le nouveau livre est attribué à la catégorie Livres sur le commerce.

  7. Pour enregistrer le nouveau produit dans le catalogue et revenir à l’écran Catalogue - MesLivres, cliquez sur Enregistrement et retour dans la barre d’outils.

Le nouveau produit (le livre Le travail à la vitesse de la pensée) est enregistré dans le catalogue. Vous pouvez maintenant ajouter un autre produit.

Pour ajouter un autre produit au catalogue

  1. Dans la section Produits, cliquez sur Nouveau.

  2. Dans la boîte de dialogue Nouveau produit, sélectionnez MonLivre, puis cliquez sur OK.

  3. Dans la section Propriétés du produit, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    MonISBN | Taper 2-3452-8892-9.
    Description | Taper Premier livre de Bill Gates.
    Nom | Taper La Route du futur.
    MonAuteur | Taper Bill Gates.
    MonTitre | Taper La Route du futur.
    Prix | Taper 179,90.

  4. Dans la section Catégories attribuées, sélectionnez Livres sur le commerce dans la zone Catégories disponibles.

  5. Cliquez sur Ajouter.

  6. Dans la section Relations du produit, cliquez sur Nouvelle, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Relation | Taper Autres livres de Bill Gates.
    Élément | Cliquer sur le bouton de sélection […] pour ouvrir la boîte de dialogue Sélecteur de produits.

  7. Dans la boîte de dialogue Sélecteur de produits, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Catégories | Sélectionner Livres sur le commerce.
    Produits dans la catégorie | Sélectionner le numéro MonISBN 1-2345-6789-0 (Le travail à la vitesse de la pensée).

  8. Cliquez sur OK, puis dans la section Relations du produit, cliquez sur Accepter.

Une relation avec le livre Le travail à la vitesse de la pensée est établie.

  9. Pour enregistrer le nouveau produit dans le catalogue et revenir à l’écran Catalogue - MesLivres, cliquez sur Enregistrement et retour dans la barre d’outils.

  10. Pour revenir à l’écran Catalogues, cliquez sur Retour dans la barre d’outils.

Le nouveau produit (le livre Le Route du futur) est enregistré dans le catalogue. Ce produit s’affichera sur le site Retail dans la catégorie Livres sur le commerce.

Étapes de vérification du site

Pour vérifier les modifications apportées sur le site Retail

  1. Pour ouvrir le site Retail, dans Internet Explorer, tapez http://<nom_ordinateur>/retail dans la ligne Adresse.

  2. Cliquez sur Nouvel utilisateur dans le volet gauche sous Se connecter, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’utilisateur | Taper Jean Visiteur.
    Mot de passe | Taper monsésame.
    Confirmer le mot de passe | Taper monsésame.

  3. Cliquez sur Soumettre.

  4. Cliquez sur la catégorie Livres sur le commerce, sélectionnez Le travail à la vitesse de la pensée, puis cliquez sur Ajouter au panier.

  5. Cliquez sur Panier dans l’en-tête de l’écran, puis sur Valider.

    Le message Le Carnet d’adresses est vide s’affiche.

  6. Cliquez sur Cliquez ici pour ajouter une adresse, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de l’adresse | Taper Jean.
    Nom | Taper Visiteur.
    Prénom | Taper Jean.
    Adresse (1re ligne) | Taper One Microsoft Way.
    Ville | Taper Redmond.
    Département/Province | Taper WA.
    Code postal | Taper 98052.
    Pays/Région | Sélectionner États-Unis d’Amérique dans la liste déroulante.

  7. Cliquez sur Soumettre.

  8. Dans l’écran Adresse du destinataire, sélectionner une adresse de livraison, puis cliquez sur Sélectionner une adresse.

  9. Dans l’écran Options de livraison, cliquez sur Valider.

  10. Vérifiez que le taux de taxe s’élève à 10 pour cent du sous-total de la commande et que le taux de livraison s’élève à 63,00 francs, puis cliquez sur Valider.

  11. Dans l’écran Carte de crédit, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Titulaire de la carte | Vérifier que Visiteur Jean est bien indiqué comme titulaire de la carte.
    Numéro de carte | Taper 4111-1111-1111-1111.
    Type | Sélectionner VISA dans la liste déroulante.
    Mois d’expiration | Sélectionner Juillet dans la liste déroulante.
    Année d’expiration | Sélectionner 2003 dans la liste déroulante.

  12. Pour confirmer votre commande, cliquez sur Soumettre.

L’écran Confirmation de la commande s’affiche et le lien vers le numéro de commande est activé.

Pour vérifier que le profil du produit correspond bien à l’élément ajouté

  1. Dans le volet gauche, sous Service clientèle, cliquez sur Commandes, puis sur Afficher les détails de l’article.

  2. Dans l’écran Détails de la commande, vérifiez les éléments de commande suivants :
    Zone | Description
    Nom | Le travail à la vitesse de la pensée.
    Description | Réflexions de Bill Gates.
    Product ID | 1-2345-6789-0.
    Quantité | 1.
    Prix unitaire | 119,90

  3. Dans le volet gauche, sous Service clientèle, cliquez sur Profil.

    Le profil correspond aux informations que vous avez entrées concernant Jean Visiteur. Vous pouvez modifier les détails concernant l’utilisateur, puis cliquer sur Enregistrer pour mettre à jour le profil utilisateur.

  4. Fermez la fenêtre du navigateur.


Création d'une entrée du glossaire du site

Création d’une entrée du glossaire du site

Le module Éditeur d’entrées du glossaire du site permet de définir les valeurs pertinentes pour votre site. Les entrées du glossaire du site permettent d’uniformiser facilement les valeurs utilisées sur votre site. Vous pouvez utiliser les entrées du glossaire du site pour cibler les produits de vos catalogues, un contenu ou des publicités à l’usage des utilisateurs du site.

Dans cet atelier, vous allez ajouter les entrées du glossaire du site homme et femme. Après avoir créé vos entrées du glossaire du site, vous allez définir un profil utilisateur qui inclut ces entrées du glossaire du site afin de pouvoir ensuite cibler une publicité destinée aux utilisateurs qui répondent au profil spécifié.

Pour créer une entrée du glossaire du site

  1. Dans Utilisateurs, cliquez sur Éditeur d’entrées du glossaire du site.

  2. Dans l’écran Éditeur d’entrées du glossaire du site, cliquez sur Ajouter.

  3. Dans la boîte de dialogue Ajouter, sélectionnez un nouveau groupe, puis cliquez sur OK.

  4. Dans la section Attributs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper InfosPersonnelles.
    Nom complet | Taper Infos personnelles.

  5. Cliquez sur Appliquer.

  6. Dans la liste Structure des entrées du glossaire du site, sélectionnez Infos personnelles, puis cliquez sur Ajouter.

  7. Dans la boîte de dialogue Ajouter, sélectionnez une nouvelle entrée du glossaire du site, puis cliquez sur OK.

  8. Dans la section Attributs de l’entrée du glossaire du site, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper Sexe.
    Nom complet | Taper Sexe.

  9. Dans la section Entrées du glossaire, cliquez sur Nouvelle, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de l’entrée du glossaire | Taper Homme.
    Nom complet | Taper Homme.

  10. Cliquez sur Accepter.

  11. Dans la section Entrées du glossaire, cliquez sur Nouvelle, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de l’entrée du glossaire | Taper Femme.
    Nom complet | Taper Femme.

  12. Cliquez sur Accepter, puis sur Appliquer.

  13. Pour enregistrer les entrées du glossaire du site et revenir à l’écran Business Desk, cliquez sur Enregistrement et retour dans la barre d’outils.

Les entrées du glossaire du site Homme et Femme sont enregistrées et peuvent maintenant être ajoutées à un profil utilisateur.

Pour ajouter une entrée du glossaire du site à un profil utilisateur

  1. Dans Utilisateurs, cliquez sur Définition de profil.

  2. Dans l’écran Profils, dans la zone Nom, sélectionnez Objet utilisateur, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Profil : Objet utilisateur, dans la liste Propriétés, sélectionnez Informations générales, puis cliquez sur Ajouter.

  4. Dans la boîte de dialogue Ajouter, sélectionnez une nouvelle propriété, puis cliquez sur OK.

  5. Dans la section Attributs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper Sexe.
    Nom complet | Taper Sexe.
    Type | Sélectionner Entrée du glossaire du site dans la liste déroulante.
    Référence de type | Cliquer sur le bouton de sélection […], sélectionner Infos personnelles, puis sélectionner Sexe.

  6. Cliquez sur OK.

  7. Dans la section Attributs avancés, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Activé | Vérifier la case à cocher Oui est activée.
    Mapper vers les données | Cliquer sur le bouton de sélection […] pour ouvrir la boîte de dialogue Sélecteur de source de données.

  8. Dans la boîte de dialogue Sélecteur de source de données, sélectionnez ProfileService_SQLSource, sélectionnez Objet utilisateur, faites défiler l’écran, puis sélectionnez Propriété personnalisée 1 (STRING).

  9. Cliquez sur OK.

  10. Dans la section Attributs personnalisés, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Sélectionner sUserAccess, puis cliquer sur Modifier.
    Valeur | Choisir la valeur 1.

  11. Cliquez sur Accepter, puis sur Appliquer.

  12. Pour enregistrer l’entrée du glossaire du site avec le profil utilisateur et revenir à l’écran Profils, cliquez sur Enregistrement et retour dans la barre d’outils.

Après avoir ajouté une propriété à une définition de profil, vous publiez vos modifications sur votre site Web.

Pour publier les modifications apportées au profil sur votre site Web

  1. Dans Utilisateurs, cliquez sur Publier les profils.

  2. Dans l’écran Publier les profils, sélectionnez le site dont vous souhaitez publier les modifications, puis cliquez sur Publier dans la barre d’outils.

Les modifications apportées au profil sont mises à jour et sont disponibles sur le site Web.


Ajout d'un utilisateur avec un nouveau profil

Ajout d’un utilisateur avec un nouveau profil

Le module Utilisateurs permet de gérer les utilisateurs inscrits, c’est-à-dire les utilisateurs reconnus par votre site Web car ils ont rempli un formulaire d’inscription en ligne ou ont défini un compte d’utilisateur sur votre site d’une manière quelconque.

Dans cet atelier, vous allez ajouter deux nouveaux utilisateurs avec les nouvelles entrées du glossaire du site, Homme et Femme, que vous avez créées dans l’atelier précédent.

Pour créer l’utilisateur masculin

  1. Dans Utilisateurs, cliquez sur Utilisateurs.

  2. Dans l’écran Utilisateurs, cliquez sur Nouveau dans la barre d’outils.

  3. Dans l’écran Nouvel utilisateur, dans la section Informations générales, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’ouverture de session | Taper JacquesUtilisateur.
    Mot de passe de l’utilisateur | Taper monsésame.
    Adresse de messagerie | Taper JacquesUtilisateur@Microsoft.com.
    Nom | Taper Utilisateur.
    Prénom | Taper Jacques.
    Sexe | Sélectionner Homme dans la liste déroulante.

  4. Pour enregistrer l’utilisateur masculin et créer un autre utilisateur, cliquez sur Enregistrer et créer dans la barre d’outils.

L’utilisateur masculin est enregistré. Vous pouvez maintenant ajouter un autre utilisateur.

Pour créer l’utilisatrice féminine

  1. Dans la section Informations générales, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’ouverture de session | Taper JulieUtilisatrice.
    Mot de passe de l’utilisateur | Taper monsésame.
    Adresse de messagerie | Taper JulieUtilisatrice@Microsoft.com.
    Nom | Taper Utilisatrice.
    Prénom | Taper Julie.
    Sexe | Sélectionner Femme dans la liste déroulante.

  2. Pour enregistrer l’utilisatrice féminine et revenir à l’écran Utilisateurs, cliquez sur Enregistrement et retour dans la barre d’outils.

L’utilisateur et l’utilisatrice sont enregistrés avec les nouvelles entrées du glossaire de site Homme et Femme.

Étapes de vérification du site

Pour vérifier les modifications apportées sur le site Retail

  1. Pour ouvrir le site Retail, dans Internet Explorer, tapez http://<nom_ordinateur>/retail dans la ligne Adresse.

  2. Dans l’écran Retail, cliquez sur Cliquez ici pour entrer dans le site en tant que visiteur invité.

  3. Cliquez sur S’inscrire dans le volet gauche sous Se connecter.

  4. Dans l’écran S’inscrire, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’utilisateur | Taper JacquesUtilisateur.
    Mot de passe | Taper monsésame.

  5. Cliquez sur Soumettre.

  6. Dans le volet gauche, sous Service clientèle, cliquez sur Profil.

  7. Vérifiez que la nouvelle entrée du glossaire du site Sexe s’affiche sous Informations générales.

  8. Fermez la fenêtre du navigateur.


Importation d'un catalogue et exécution de recherches en texte libre ou avec propriété

Importation d’un catalogue et exécution de recherches en texte libre ou avec propriété

Le module Éditeur de catalogue permet de gérer les catégories et les catalogues. Vous pouvez créer, modifier et supprimer des catégories et des catalogues. Vous pouvez également utiliser le module Éditeur de catalogue pour importer des catalogues. Vous pouvez importer un catalogue à partir d’un fichier XML (Extensible Markup Language) ou CSV ( Comma-Separated Value).

Dans cet atelier, vous allez importer un fichier de catalogue XML. Vous allez ensuite visiter le site et effectuer une recherche en texte libre, puis une recherche avec propriété pour afficher des produits, des familles de produits et des familles de produits avec composants qui ont des propriétés pouvant faire l’objet de recherches et répondant à vos critères de recherche. Après avoir trouvé un produit répondant à vos critères de recherche, vous allez l’ajouter à votre panier d’achat.

Pour copier les fichiers de catalogue XML dans le dossier Catalogs

  1. Copiez le fichier Hardwarefull.xml du dossier \Tutorial à la racine du CD-ROM vers le dossier <lecteur:>\Inetpub\wwwroot\RetailBizDesk\Catalogs.

  2. Copiez le fichier Booksfull.xml du dossier \Tutorial à la racine du CD-ROM vers le dossier <lecteur:>\Inetpub\wwwroot\RetailBizDesk\Catalogs.

Pour importer le fichier de catalogue Hardwarefull.xml

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, cliquez sur Importer dans la barre d’outils, puis sélectionnez Importer XML dans la liste déroulante.

  3. Dans la boîte de dialogue Importer le catalogue XML, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom du fichier | Taper <lecteur>:\Inetpub\wwwroot\RetailBizDesk\Catalogs\hardwarefull.xml.
    Supprimer les données existantes de ce catalogue | Vérifier que cette case à cocher est désactivée.

  4. Cliquez sur OK.

  5. Dans la boîte de dialogue Business Desk : Importer le catalogue XML, cliquez sur OK.

Le catalogue Matériel est importé et disponible sur le site Retail.

Remarque

  • Le catalogue n’apparaît pas encore dans la zone Nom de l’Éditeur de catalogue.

Pour importer le fichier de catalogue Booksfull.xml

  1. Dans l’écran Éditeur de catalogue, cliquez sur Importer dans la barre d’outils, puis sélectionnez Importer XML dans la liste déroulante.

  2. Dans la boîte de dialogue Importer le catalogue XML, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom du fichier | Taper <lecteur:>\Inetpub\wwwroot\RetailBizDesk\Catalogs\Booksfull.xml.
    Supprimer les données du catalogue existantes | Vérifier que cette case à cocher est désactivée.

  3. Cliquez sur OK.

  4. Dans la boîte de dialogue Business Desk : Importer le catalogue XML, cliquez sur OK.

Le catalogue MesLivres est importé et disponible sur le site Retail.

Remarque

  • Le catalogue n’apparaît pas encore dans la zone Nom de l’Éditeur de catalogue.

    Utilisez le module Éditeur de catalogue pour actualiser et publier un catalogue sur votre site Web. Vous devez actualiser et publier votre catalogue chaque fois que vous le modifiez, afin que vos modifications apparaissent sur votre site Web.

Pour actualiser et publier le catalogue

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, cliquez sur Publier un catalogue dans la barre d’outils.

Le catalogue est mis à jour et publié sur le site Web. .

Pour exécuter une recherche en texte libre

  1. Pour ouvrir le site Retail, dans Internet Explorer, tapez http://<nom_ordinateur>/retail dans la ligne Adresse.

  2. Dans la zone Recherche de produit, tapez livre, puis cliquez sur Rechercher.

    L’écran Résultats de la recherche s’affiche. Il contient les éléments qui répondent à vos critères de recherche, à savoir :

    • les produits qui ont un composant avec une propriété pouvant faire l’objet d’une recherche et correspondant à vos critères de recherche ;

    • une famille de produits contenant La Route vers le futur qui répond aux critères de recherche ;

    • une catégorie de produits avec des descriptions de propriétés de produit pouvant faire l’objet d’une recherche et correspondant à vos critères de recherche.

Pour exécuter une recherche avec propriété

  1. Cliquez sur le lien de recherche Options avancées.

    L’écran Recherche approfondie s’affiche. Il contient les catalogues Matériel et Livres.

  2. Sous le catalogue Matériel, cliquez sur Souris.

    Le message Nombre de correspondances trouvées jusqu’ici : 24 s’affiche.

  3. Pour affiner vos critères de recherche, dans l’écran Recherche approfondie, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Sans fil | Sélectionner O.
    OS | Sélectionner Win 32 bits.
    MoletteDéfilement | Sélectionner O.

  4. Cliquez sur Rechercher.

    Le message Nombre de correspondances renvoyées : 2 s’affiche.

Après avoir affiné vos critères de recherche, vous n’obtenez plus qu’une correspondance : Microsoft® Cordless Wheel Mouse.

Pour afficher les composants produit

  1. Cliquez sur Microsoft® Cordless Wheel Mouse.

    Faites défiler la liste de variations. Le produit s’affiche avec deux variations. Vous pouvez ajouter une de ces deux variations à votre panier d’achat.

  2. Sélectionnez le deuxième composant Couleur : Blanc, Référence : C57-00001w, Prix catalogue 269,00 FF.

  3. Cliquez sur Ajouter au panier, puis sur Valider.

  4. Dans le formulaire Adresse de livraison, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Prénom | Taper Laura.
    Nom | Taper Bartoli.
    Adresse 1 | Taper 48, boulevard du Montparnasse.
    Ville | Taper Paris.
    Département/Province | Taper Paris.
    Code postal | Taper 75014.

  5. Cliquez sur Soumettre.

  6. Dans l’écran Options de livraison, cliquez sur Valider.

  7. Dans l’écran Résumé de la commande, cliquez sur Valider.

  8. Dans l’écran Carte de crédit, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Mois d’expiration | Sélectionner Mars dans le calendrier déroulant.
    Année d’expiration | Sélectionner 2003 dans le calendrier déroulant.

  9. Cliquez sur Soumettre.

    L’écran Confirmation de la commande s’affiche avec le numéro de commande.

  10. Fermez la fenêtre du navigateur.


Création d'une campagne de publicité

Création d’une campagne de publicité

Les modules Campagnes marketing de Commerce Server Business Desk permettent de créer et de planifier des campagnes marketing. Vous pouvez créer des campagnes de publicité, des campagnes de publipostage et des campagnes de remise. Les modules Campagnes marketing permettent de gérer les différents types de campagnes marketing pour différents clients. Vous pouvez également utiliser le module Tables de références de Campagnes marketing pour définir vos codes d’activité. Les codes d’activité permettent d’identifier le secteur d’activité associé à une publicité ou à une remise, afin d’éviter que deux publicités ou remises de clients d’un même secteur s’affichent sur la même page.

Dans cet atelier, vous allez ajouter un code d’activité Livres. Vous allez ensuite ajouter un nouveau client de campagne, les Éditions Luzerne, puis une nouvelle campagne de publicité appelée Ouvrages de Bill Gates.

Pour ajouter un code d’activité aux tables de références

  1. Dans Campagnes marketing, cliquez sur Tables de références.

  2. Dans l’écran Tables de références, dans la section Codes d’activité, cliquez sur Nouvelle.

  3. Dans la zone Code d’activité, tapez Livres.

  4. Cliquez sur Accepter.

  5. Pour enregistrer le nouveau code d’activité et revenir à l’écran Business Desk, cliquez sur Enregistrement et retour dans la barre d’outils.

Le nouveau code d’activité est enregistré. Vous pouvez maintenant éviter que deux publicités présentant deux livres différents s’affichent sur la même page Web.

Pour ajouter un client de campagne

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Nouveau client dans la liste déroulante.

  3. Dans l’écran Gestionnaire de campagnes – Nouveau (client), dans la section Propriétés du client, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper Éditions Luzerne.
    Type | Sélectionner Annonceur dans la liste déroulante.
    Activité | Sélectionner Livres dans la liste déroulante.

  4. Pour enregistrer le nouveau client et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

Le nouveau client est enregistré et s’affiche dans l’écran Gestionnaire de campagnes. Vous pouvez maintenant ajouter une nouvelle campagne marketing.

Pour ajouter une campagne marketing

  1. Dans l’écran Gestionnaire de campagnes, sélectionnez Éditions Luzerne.

  2. Dans l’écran Gestionnaire de campagnes, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Nouvelle campagne marketing dans la liste déroulante.

  3. Dans la section Propriétés de la campagne marketing, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de la campagne marketing | Taper Ouvrages de Bill Gates.
    Date de début | Sélectionner la date de la veille dans le calendrier déroulant.
    Date de fin | Sélectionner la date correspondant à un mois après la date du jour dans le calendrier déroulant.
    Statut | Sélectionner Active dans la liste déroulante.

  4. Dans la section But quantitatif de la campagne / publicité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Définir les objectifs par | Sélectionner Éléments de la publicité dans la liste déroulante.
    Planifié par | Sélectionner Demandes dans la liste déroulante.

  5. Pour enregistrer la campagne marketing et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

La campagne marketing Ouvrages de Bill Gates est enregistrée. Son but quantitatif a été défini au niveau de l’élément de publicité. Vous pouvez maintenant créer une publicité et cibler les utilisateurs pour lesquels vous souhaitez afficher cette publicité.


Création d'une expression de ciblage

Création d’une expression de ciblage

Le module Expressions de la campagne marketing permet de définir le groupe d’utilisateurs que vous souhaitez cibler. Vous pouvez cibler une publicité ou un publipostage ou appliquer une campagne de remise à un groupe donné.

Dans cet atelier, vous allez créer une campagne de publicité destinée à tous les clients masculins. Vous avez défini la propriété Sexe dans l’atelier « Création d’une entrée du glossaire du site ». Vous pouvez donc utiliser cette propriété de profil pour cibler la publicité.

Remarque

  • Dans cet atelier, pour pouvoir afficher la publicité, vous devez disposer d’une image dans le dossier du site Retail.

Pour copier des fichiers image sur votre site

  • Copiez le fichier image MSPress.gif du dossier \Tutorial à la racine du CD-ROM vers le dossier <lecteur:>\Inetpub\wwwroot\Retail\Images.

Pour cibler une expression

  1. Dans Campagnes marketing, cliquez sur Expressions de la campagne marketing.

  2. Dans l’écran Expressions de la campagne marketing : Expressions de ciblage, cliquez sur Nouveau dans la barre d’outils.

  3. Dans la boîte de dialogue Expression de ciblage, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper UtilisateursMasculins, puis cliquer sur Nouvelle.
    Cible basée sur les conditions suivantes
    • Première zone - Sélectionner Objet utilisateur dans la liste déroulante, puis Informations générales et enfin Sexe.

    • Deuxième zone - Sélectionner Est égal à dans la liste déroulante.

    • Troisième zone - Cliquer sur le bouton de sélection […], sélectionner le jeton d’entrée du glossaire du site Homme, puis cliquer sur OK.

  4. Cliquez sur Appliquer.

  5. Pour enregistrer l’expression, cliquez sur Enregistrer.

L’expression est enregistrée et la publicité ciblera les utilisateurs masculins.

Pour créer un groupe cible

  1. Dans Campagnes marketing, cliquez sur Groupe cible.

  2. Dans l’écran Groupe cible, cliquez sur Nouveau dans la barre d’outils.

  3. Dans l’écran Groupe cible : Nouveau, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom du groupe cible | Taper GroupeMasculin, puis cliquer sur Nouvelle.
    Expression | Sélectionner UtilisateursMasculins dans la liste déroulante.
    Action | Sélectionner Requérir dans la liste déroulante.

  4. Cliquez sur Accepter.

  5. Pour enregistrer le groupe cible et revenir à l’écran Groupe cible, cliquez sur Enregistrement et retour dans la barre d’outils.

Le groupe cible est créé avec l’expression de ciblage UtilisateursMasculins.

Pour créer une nouvelle publicité

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, cliquez sur la flèche en regard de la campagne Éditions Luzerne, puis sélectionnez Ouvrages de Bill Gates.

  3. Dans l’écran Gestionnaire de campagnes, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Nouvelle publicité dans la liste déroulante.

  4. Dans l’écran Gestionnaire de campagnes - Éditions Luzerne - Ouvrages de Bill Gates - Nouvelle (publicité), dans la section Propriétés de la publicité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de la publicité | Taper CibleHommes.
    Statut | Sélectionner Active dans la liste déroulante.
    Type | Sélectionner Publicité payée dans la liste déroulante.
    Demandes | Taper 1000.
    Limite d’exposition | Sélectionner Aucun dans la liste déroulante.
    Activité | Sélectionner Livres dans la liste déroulante.

  5. Dans la section Cible publicitaire, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Groupes de pages | Vérifier que la case à cocher Afficher sur tous les groupes de pages est activée pour afficher la publicité sur toutes les pages Web du site Retail.
    Groupes cibles : Disponibles | Sélectionner GroupeMasculin, puis cliquer sur > pour placer ce groupe dans la zone Attribués.

  6. Faites défiler l’écran et dans la section Affichage de la publicité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Taille | Sélectionner Bannière entière dans la liste déroulante.
    Type | Sélectionner Image dans la liste déroulante.
    URL d’image | Taper http://<nom_ordinateur>/Retail/Images/MSPress.gif.
    Adresse URL pointée | Taper http://www.microsoft.com/france/mspress.

La publicité est définie. Vous pouvez maintenant afficher un aperçu de la publicité avant de l’envoyer en production.

Pour afficher un aperçu de la publicité

  1. Dans la section Affichage de la publicité, cliquez sur Aperçu.

  2. Dans la boîte de dialogue Aperçu, sélectionnez Oui pour enregistrer l’élément de la campagne.

    Une copie de la publicité s’affiche dans la zone d’affichage en dessous du bouton Aperçu.

  3. Pour revenir à l’écran Gestionnaire de campagnes, cliquez sur Retour dans la barre d’outils.

Pour vérifier l’état de la publicité ciblée

  1. Dans l’écran Gestionnaire de campagnes, cliquez sur Rechercher dans la barre d’outils.

  2. Dans l’écran Rechercher, dans la zone Statut, sélectionnez Tous dans la liste déroulante.

  3. Cliquez sur Rechercher.

  4. Dans la liste Affichage filtré, cliquez sur la flèche en regard de Éditions Luzerne, puis sur la flèche en regard de Ouvrages de Bill Gates pour vérifier que la publicité ciblée s’affiche.

Le statut de la Publicité ciblée est actif.

Pour mettre à jour la campagne marketing sur le site Web

  1. Dans Campagnes marketing, cliquez sur Publier les campagnes marketing.

  2. Dans l’écran Publier les campagnes marketing, dans la liste Éléments de production, sélectionnez advertising.

  3. Pour mettre à jour la campagne marketing, cliquez sur Publier les modifications dans la barre d’outils.

La campagne de publicité est mise à jour et s’adressera aux utilisateurs masculins du site Retail.

Étapes de vérification du site

Pour vérifier les modifications apportées sur le site Retail

  1. Pour ouvrir le site Retail, dans Internet Explorer, tapez http://<nom_ordinateur>/Retail dans la ligne Adresse.

  2. Cliquez sur S’inscrire sous Se connecter, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’utilisateur | Taper JulieUtilisatrice.
    Mot de passe | Taper monsésame.

  3. Cliquez sur Soumettre.

    La publicité ne s’affiche pas sur le site Retail car vous avez ciblé les utilisateurs masculins.

  4. Fermez la fenêtre du navigateur.

  5. Pour rouvrir le site Retail, dans Internet Explorer, tapez http://<nom_ordinateur>/Retail dans la ligne Adresse.

  6. Cliquez sur S’inscrire sous Se connecter, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’utilisateur | Taper JacquesUtilisateur.
    Mot de passe | Taper monsésame.

  7. Cliquez sur Soumettre.

    La publicité s’affiche sur le site Retail car vous avez ciblé les utilisateurs masculins.

  8. Fermez la fenêtre du navigateur.


Création d'une campagne de remise

Création d’une campagne de remise

Après avoir créé une campagne marketing, vous pouvez utiliser le module Gestionnaire de campagnes pour créer une remise. Vous pouvez spécifier le produit auquel la remise s’applique, indiquer le montant de la remise et préciser le nombre d’articles qu’un utilisateur doit acheter pour bénéficier de la remise.

Dans cet atelier, vous allez créer une campagne de remise concernant l’ensemble du site, offrant une remise de 20 % à tous les utilisateurs.

Pour créer un élément de la campagne de remise

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, cliquez sur la flèche en regard de Éditions Luzerne, sélectionnez Ouvrages de Bill Gates, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Nouvelle remise dans la liste déroulante.

  3. Dans l’écran Gestionnaire de campagnes - Éditions Luzerne - Ouvrages de Bill Gates - Nouvelle (remise), dans la section Propriétés de la remise, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de la remise | Taper Remise de 20 % sur tout le site.
    Statut | Sélectionner Active dans la liste déroulante.
    Date de début | Sélectionner la date du jour dans le calendrier déroulant.
    Date de fin | Sélectionner la date correspondant à deux mois après la date du jour dans le calendrier déroulant.

  4. Dans la section Définition de la remise, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Acheter : n’importe quelle | Appliquer la remise à tous les produits.
    Obtenir comme remise
    • Première zone - Vérifier que la valeur illimitée est définie pour le nombre d’articles offerts.

    • Deuxième zone - Sélectionner [tout produit] dans la liste déroulante.

    • Troisième zone - Sélectionner Pourcentage (%) dans la liste déroulante.

    • Quatrième zone - Taper 20.

  5. Dans la section Affichage de la remise, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Affichage du panier | Taper Remise de 20 % effective.
    Taille du contenu | Sélectionner Demi-bannière dans la liste déroulante.
    Type de contenu | Sélectionner Image.
    URL d’image | Taper http://<nom_ordinateur>/Retail/Images/MSPress.gif.
    Adresse URL pointée | Taper http://www.microsoft.com/france/mspress.

  6. Pour enregistrer la remise et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

Une remise de 20 % sera appliquée à tous les produits du site Retail.

Pour envoyer la campagne de remise en production

  1. Dans Campagnes marketing, cliquez sur Publier les campagnes marketing.

  2. Dans l’écran Publier les campagnes marketing, sélectionnez discounts, puis cliquez sur Publier un catalogue dans la barre d’outils.

La campagne de remise est envoyée en production.

Étapes de vérification du site

Pour vérifier les modifications apportées sur le site Retail

  1. Pour ouvrir le site Retail, dans Internet Explorer, tapez http://<nom_ordinateur>/Retail dans la ligne Adresse.

  2. Cliquez sur S’inscrire dans le volet gauche sous Se connecter, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’utilisateur | Taper JacquesUtilisateur.
    Mot de passe | Taper monsésame.

  3. Cliquez sur Soumettre.

  4. Cliquez sur la catégorie Livres sur le commerce, puis sélectionnez Le travail à la vitesse de la pensée.

Le prix de ce livre est de 119,90 FF.

  5. Cliquez sur Ajouter au panier.

  6. Cliquez sur Panier dans l’en-tête de l’écran.

  7. Une remise de 24 FF est appliquée au prix final, ce qui représente une réduction de 20 % par rapport au prix unitaire. Fermez la fenêtre du navigateur.


Importation d'un fichier journal

Importation d’un fichier journal

Vous pouvez importer dans Data Warehouse des fichiers journaux contenant des données sur les activités des utilisateurs et du serveur, puis vous pouvez exécuter des rapports sur les données importées. Avant d’importer les fichiers journaux, vous devez choisir le site à partir duquel vous souhaitez effectuer l’importation. Vous devez également spécifier les fichiers journaux à importer.

Une fois que les données d’événements contenues dans les journaux Web ont été traitées dans Data Warehouse, vous pouvez exécuter une tâche de service de transformation de données (DTS, Data Transformation Service) pour charger les données descriptives concernant les éléments de la campagne marketing (par exemple le nom de la remise), puis créer un rapport.

Dans cet atelier, vous allez importer un fichier journal dans Data Warehouse et exécuter le processus de postimportation, que vous utilisez ultérieurement pour importer une tâche DTS. L’importation d’un journal de site nécessite l’utilisation de Microsoft SQL Server Enterprise Manager.

Remarque

  • L’administrateur système se charge généralement d’exécuter les procédures de cet atelier.

Pour synchroniser Data Warehouse et votre application

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server, puis cliquez sur Enterprise Manager.

  2. Dans le volet gauche, développez Serveurs Microsoft SQL>Groupe SQL Server>(NomDuServeur)>Data Transformation Services, puis sélectionnez Lots locaux.

  3. Dans le menu Action, cliquez sur Nouveau lot.

    La fenêtre Lot DTS <Nouveau lot> s’affiche.

  4. Dans le menu Tâche, cliquez sur Synchronisation de la configuration (Commerce Server).

  5. Dans la boîte de dialogue Propriétés de la synchronisation de Data Warehouse, cliquez sur OK.

Pour importer les fichiers journaux Web

  1. Dans le menu Tâche, cliquez sur Importation de journal de serveur Web (Commerce Server).

  2. Dans la boîte de dialogue Importer les journaux de serveur Web, dans la zone Nom du site, sélectionnez Retail dans la liste déroulante. Sous Application, sélectionnez l’application retail, retailBizDesk.

  3. Dans la zone Chemin d’accès au fichier journal, tapez <lecteur:>\Winnt\System32\LogFiles\W3svc1, puis cliquez sur OK.

Pour importer les données de profil utilisateur

  1. Dans le menu Tâche, cliquez sur Importation de profil utilisateur (Commerce Server).

  2. Dans la boîte de dialogue Propriétés d’importation de l’utilisateur, dans la zone Nom du site, sélectionnez Retail dans la liste déroulante, puis cliquez sur OK.

Pour remplir les cubes OLAP avec les données importées

  1. Dans le menu Tâche, cliquez sur Préparation du rapport (Commerce Server).

  2. Dans la boîte de dialogue Propriétés de préparation des rapports, dans la zone Nom du site, vérifiez que Retail est sélectionné, puis cliquez sur OK.

Pour exécuter les quatre tâches DTS

  1. Sélectionnez l’icône Synchronisation de la configuration qui se trouve dans la fenêtre Lot DTS <Nouveau lot>, maintenez la touche [MAJ] enfoncée, puis cliquez sur l’icône Préparation du rapport.

    Les quatre icônes Tâche DTS de Commerce Server sont sélectionnées.

  2. Dans le menu Flux de travail, cliquez sur À l’achèvement.

  3. Dans le menu Lot, cliquez sur Exécuter.

    Une boîte de dialogue d’avancement s’affiche, indiquant que les tâches sont en cours d’exécution.

  4. Une fois les tâches terminées, la boîte de dialogue Résultats d’exécution du lot s’affiche. Cliquez sur OK.

  5. Fermez SQL Server Enterprise Manager sans enregistrer le lot.

Les données sont importées dans Data Warehouse.


Exécution d'un rapport dynamique

Exécution d’un rapport dynamique

Commerce Server 2000 fournit environ 50 rapports par défaut que vous pouvez utiliser dès que vous vous connectez à une source de données. Vous pouvez exécuter des rapports dynamiques et statiques à partir du module Rapports ou planifier des rapports à exécuter automatiquement à intervalles réguliers. Les rapports dynamiques s’exécutent en quelques secondes et s’affichent immédiatement dans une fenêtre séparée sous la forme d’un tableau croisé dynamique.

Dans cet atelier, vous allez configurer vos options Internet pour permettre l’accès aux sources de données sur les différents domaines, puis vous allez exécuter un rapport dynamique affichant une synthèse de l’utilisation quotidienne du site.

Pour accéder aux sources de données sur tous les domaines

  1. Dans Internet Explorer, cliquez sur Outils, puis sur Options Internet.

  2. Sous l’onglet Sécurité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Personnaliser le niveau | Afficher les options Paramètres de sécurité.
    Divers>Accès aux sources de données sur plusieurs domaines | Sélectionner Activer.
    Navigation des sous-cadres sur différents domaines | Sélectionner Activer.

  3. Dans la boîte de dialogue Options Internet, cliquez sur OK.

  4. Dans la boîte de dialogue Confirmation, cliquez sur Oui, puis dans la boîte de dialogue Options Internet, cliquez sur OK.

  5. Fermez la fenêtre du navigateur.

Pour exécuter le rapport de synthèse de l’utilisation par jour

  1. Dans Analyse, cliquez sur Rapports.

  2. Dans l’écran Rapports, cliquez sur Rechercher dans la barre d’outils.

  3. Dans l’écran Rechercher, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Rechercher par | Sélectionner Nom dans la liste déroulante.
    Nom | Taper Synthèse de l’utilisation.

  4. Cliquez sur Rechercher.

  5. Dans l’écran Rechercher, sélectionnez le rapport Synthèse de l’utilisation par jour de la semaine, puis cliquez sur Exécuter le rapport dans la barre d’outils pour exécuter le rapport.

Le rapport s’affiche dans une nouvelle fenêtre sous la forme d’un tableau croisé dynamique.

Pour enregistrer le rapport

  1. Dans la fenêtre contenant le tableau croisé dynamique, cliquez sur Enregistrer le rapport.

  2. Dans la zone Nom du rapport, tapez Synthèse de l’utilisation par jour, puis cliquez sur OK.

  3. Fermez la fenêtre du navigateur.


Exécution d'un rapport statique

Exécution d’un rapport statique

Les rapports statiques s’exécutent à partir du module Rapports. L’exécution d’un rapport statique peut prendre un certain temps. Toutefois, pendant l’exécution d’un rapport statique, vous pouvez utiliser le module Rapports pour exécuter d’autres rapports. Vous pouvez contrôler l’état d’un rapport en cours d’exécution dans le module Analyse de rapports, qui affiche également le rapport une fois son exécution terminée.

Dans cet atelier, vous allez exécuter un rapport statique, puis l’afficher dans le module Analyse de rapports.

Pour exécuter un rapport statique

  1. Dans Analyse, cliquez sur Rapports.

  2. Dans l’écran Rapports, cliquez sur Rechercher dans la barre d’outils.

  3. Dans l’écran Rechercher, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Rechercher par | Sélectionner Nom dans la liste déroulante.
    Nom | Taper Propriétés de l’utilisateur inscrit, puis cliquer sur Rechercher.

  4. Cliquez sur Rechercher.

  5. Dans l’écran Rechercher, sélectionnez le rapport Propriétés de l’utilisateur inscrit, puis cliquez sur Exécuter le rapport dans la barre d’outils pour exécuter le rapport.

  6. Dans la boîte de dialogue Exécuter un rapport, cliquez sur OK pour accepter les valeurs par défaut.

Le rapport est exécuté et s’affiche dans le module Analyse de rapports.

Pour afficher l’analyse de rapports

  1. Dans Analyse, cliquez sur Analyse de rapports.

  2. Dans l’écran Analyse de rapports, dans la zone Nom, sélectionnez Propriétés de l’utilisateur inscrit.

  3. Pour ouvrir le rapport, cliquez sur Ouvrir dans la barre d’outils.

    Le rapport Propriétés de l’utilisateur inscrit s’affiche.

  4. Fermez la fenêtre du navigateur.


Exportation d'un rapport statique

Exportation d’un rapport statique

Le module Gestionnaire de listes permet de créer et de gérer les listes des utilisateurs du site. Une fois qu’une liste a été exportée vers le Gestionnaire de listes, vous pouvez créer une liste de publipostage qui peut être utilisée par le service de publipostage pour créer et envoyer des courriers électroniques à certains destinataires de la liste.

Dans cet atelier, vous allez exporter le rapport Propriétés de l’utilisateur inscrit vers le Gestionnaire de listes. Toutefois, vous n’enverrez pas de publipostage.

Pour exporter un rapport statique vers le Gestionnaire de listes

  1. Dans Analyse, cliquez sur Rapports.

  2. Dans l’écran Rapports, cliquez sur Rechercher dans la barre d’outils.

  3. Dans l’écran Rechercher, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Rechercher par | Sélectionner Nom dans la liste déroulante.
    Nom | Taper Propriétés de l’utilisateur inscrit, puis cliquer sur Rechercher.

  4. Cliquez sur Rechercher.

  5. Dans l’écran Rechercher, sélectionnez le rapport Propriétés de l’utilisateur inscrit, puis cliquez sur Exporter dans la barre d’outils pour exporter le rapport.

  6. Dans la boîte de dialogue Exécuter un rapport, cliquez sur OK pour accepter les valeurs par défaut.

  7. Dans la boîte de dialogue Exporter le rapport sous forme de liste, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Type de liste | Sélectionner Statique.
    Nom de la liste | Taper PropriétésUtilisateur.

  8. Cliquez sur OK.

Dans Campagnes marketing, dans le module Gestionnaire de listes, la liste PropriétésUtilisateur s’affiche dans le Gestionnaire de listes. Vous pouvez maintenant utiliser cette liste pour créer une campagne de publipostage.


Création d'une campagne de publipostage

Création d’une campagne de publipostage

Les campagnes de publipostage permettent aux utilisateurs de voir vos publicités. Une campagne de publipostage peut être adressée à des utilisateurs spécifiques grâce aux listes de publipostage du Gestionnaire de listes. Vous pouvez utiliser ces listes pour exécuter des travaux de publipostage afin de mieux cibler vos utilisateurs.

Dans cet atelier, vous allez créer une campagne de publipostage à l’aide de la liste PropriétésUtilisateur, que vous avez exportée vers le Gestionnaire de listes à partir d’un rapport statique dans l’atelier précédent.

Pour créer une campagne de publipostage

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, double-cliquez sur Éditions Luzerne, puis sélectionnez la campagne marketing Ouvrages de Bill Gates.

  3. Cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Nouveau publipostage dans la liste déroulante. Dans l’écran Gestionnaire de campagnes - Éditions Luzerne - Ouvrages de Bill Gates - Nouveau (publipostage), dans la section Propriétés du publipostage, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de publipostage | Taper CourrierCiblé.
    Adresse de messagerie d’expédition du message | Taper WebMaster@LivresAGogo.
    Objet du message | Taper Excellentes nouvelles pour nos clients.
    Chemin d’accès à un fichier ou URL contenant le corps du message | Taper http://www.microsoft.com/france.
    Liste de publipostage | Sélectionner PropriétésUtilisateur dans la liste déroulante.
    Personnaliser le publipostage par utilisateur | Désactiver la case à cocher.
    Format du message | Sélectionner MHTML dans la liste déroulante.

  4. Dans la section Planification du message, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Date de début | Taper la date du jour.
    Heure de début Sélectionner la prochaine heure pleine après l’heure actuelle.

    Par exemple, s’il est 11h45, sélectionnez 12:00.
    Intervalle de publipostage | Vérifier que la valeur Une seule fois est affichée.

  5. Dans la section Texte, dans la zone Liste de test, sélectionnez PropriétésUtilisateur dans la liste déroulante.

  6. Cliquez sur Envoyer le message de test.

  7. Dans la zone Message, cliquez sur OK.

  8. Pour enregistrer la campagne de publipostage et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

La campagne de publipostage est ajoutée au Gestionnaire de campagnes.

Étapes de vérification du site

Pour vérifier que le message de test a bien été envoyé

  • Placez-vous dans le répertoire DML_drop sur votre ordinateur local. Dans l’Explorateur Windows, placez-vous dans <lettre_lecteur:>\Program Files\Microsoft Commerce Server\DML_drop.

Le fichier .eml contenant le message de publipostage s’affiche.

Pour afficher le message de test

  1. Double-cliquez sur le fichier .eml.

  2. Vérifiez si :
    Cette zone | Contient
    De : WebMaster@LivresÀGogo.com
    À : <votre adresse de messagerie>
    Objet : Excellentes nouvelles pour nos clients
    Corps du message | Page d’accueil de Microsoft.com

Remarque

  • Pour vérifier si le message planifié a été envoyé, répétez les étapes 1 à 3 à l’heure de début spécifiée.


Didacticiel Entreprise-entreprise

Le didacticiel Business Desk Entreprise-entreprise (Supplier) fournit des instructions simples permettant d’utiliser les fonctionnalités de Commerce Server pour importer des catalogues, ajouter des partenaires commerciaux à votre site, ajouter des utilisateurs et gérer les profils.

Le didacticiel Supplier contient les ateliers suivants pour le site solution Supplier. Pour connaître l’emplacement de votre site solution Supplier, consultez votre administrateur système. Il est important d’effectuer les ateliers dans l’ordre dans lequel ils sont répertoriés ci-dessous. Chaque atelier est nécessaire aux ateliers suivants.

  • Ajout d’un mode de livraison

  • Importation d’un catalogue

  • Création d’un groupe de catalogues

  • Création d’une organisation

  • Création d’un utilisateur

  • Création d’une entrée du glossaire du site

  • Ajout d’un utilisateur avec un nouveau profil


Ajout d'un mode de livraison

Ajout d’un mode de livraison

Le module Commandes de Commerce Server Business Desk permet d’afficher des informations sur le statut des commandes, d’ajouter et de modifier des modes de livraison et de définir des taux de taxe pour différents pays, états et régions.

Dans cet atelier, vous allez ajouter un taux de livraison en fonction du sous-total.

Pour ajouter un taux de livraison

  1. Ouvrez Commerce Server Business Desk à partir du menu Démarrer ou du Bureau.

  2. Dans Commandes, cliquez sur Modes de livraison.

  3. Dans l’écran Modes de livraison, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Facturer en fonction du sous-total dans la liste déroulante.

  4. Dans l’écran Facturer en fonction du sous-total - Nouveau, dans la section Propriétés du mode de livraison, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper Air Voyages.
    Description | Taper Nous livrons tout.
    Activée | Vérifier que la case à cocher Mode de livraison activé est activée.

  5. Dans la section Taux, cliquez sur Nouvelle, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Prix, jusqu’à | Taper 60.
    Taux de livraison | Taper 5.

  6. Cliquez sur Accepter, puis cliquez sur Nouvelle pour ajouter un autre taux de livraison.

  7. Dans la section Taux, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Prix, jusqu’à | Taper 120.
    Taux de livraison | Taper 10.

  8. Cliquez sur Accepter.

  9. Dans la section Taux, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Prix, jusqu’à | Double-cliquer sur supérieur à 120.
    Taux de livraison | Taper 15.

  10. Cliquez sur Accepter pour ajouter le taux de livraison Supérieur à 120.

  11. Pour enregistrer les taux de livraison et revenir à l’écran Modes de livraison, cliquez sur Enregistrement et retour dans la barre d’outils.

Les taux de livraison sont enregistrés et seront appliqués aux achats effectués sur le site Web.


Importation d'un catalogue

Importation d’un catalogue

Le module Éditeur de catalogue permet de gérer les catégories et les catalogues. Vous pouvez créer, modifier et supprimer des catégories et des catalogues. Vous pouvez également utiliser l’Éditeur de catalogue pour importer des catalogues. Vous pouvez importer un catalogue à partir d’un fichier XML (Extensible Markup Language) ou CSV (Comma-Separated Value).

Dans cet atelier, vous allez importer un fichier de catalogue XML.

Pour copier le fichier de catalogue XML dans le dossier Catalogs

  1. Copiez le fichier Hardwarefull.xml du dossier \Tutorial à la racine du CD-ROM vers le dossier <lecteur:>\Inetpub\wwwroot\SupplierADBizDesk\Catalogs.

Pour importer un fichier de catalogue XML

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, cliquez sur Importer dans la barre d’outils, puis sélectionnez Importer XML dans la liste déroulante.

  3. Dans la boîte de dialogue Importer le catalogue XML, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de fichier | Taper <lecteur:>\Inetpub\wwwroot\SupplierADBizDesk\Catalogs\Hardwarefull.xml.
    Supprimer les données du catalogue existantes | Vérifier que cette case à cocher est désactivée.

  4. Cliquez sur OK.

Le catalogue Matériel a été importé et est disponible sur le site SupplierAD.

Remarque

  • Le catalogue n’apparaît pas encore dans la zone Nom de l’Éditeur de catalogue.

    Utilisez le module Éditeur de catalogue pour actualiser et publier un catalogue sur votre site Web. Vous devez actualiser et publier votre catalogue chaque fois que vous le modifiez, afin que vos modifications apparaissent sur votre site Web.

Pour actualiser et publier le catalogue

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, cliquez sur Publier un catalogue dans la barre d’outils.

Le catalogue est mis à jour et publié sur le site Web.


Création d'un groupe de catalogues

Création d’un groupe de catalogues

Les groupes de catalogues sont des sous-ensembles de vos catalogues de produits. Vous pouvez utiliser le module Groupes de catalogues de Commerce Server Business Desk pour créer des groupes de catalogues, puis les attribuer à un utilisateur ou à un groupe d’utilisateurs spécifique en fonction du profil utilisateur.

Dans cet atelier, vous allez ajouter un groupe de catalogues appelé SpécialInternational.

Pour créer un groupe de catalogues

  1. Dans Catalogues, cliquez sur Groupes de catalogues.

  2. Dans l’écran Groupes de catalogues, cliquez sur Nouveau dans la barre d’outils, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper SpécialInternational.
    Description | Taper Groupe de catalogues spécial pour Aux Quatre Coins du monde.
    Catalogues disponibles | Sélectionner Matériel.

  3. Pour placer le catalogue Matériel dans la zone Catalogues attribués, cliquez sur Ajouter.

  4. Pour enregistrer le groupe de catalogues et revenir à l’écran Groupes de catalogues, cliquez sur Enregistrement et retour dans la barre d’outils.

Le groupe de catalogues SpécialInternational est enregistré avec le catalogue Matériel.


Création d'une organisation

Création d’une organisation

Le module Organisations permet de créer et de modifier des organisations. Vous utilisez également ce module pour ajouter un partenaire commercial à votre site et spécifier des informations sur ce partenaire, par exemple le nom du contact principal, l’adresse, le numéro de téléphone, le processus d’approbation des bons de commande, le centre de coût et les remises.

Dans cet atelier, vous allez ajouter une organisation appelée Aux Quatre Coins du monde.

Pour ajouter une organisation

  1. Dans Utilisateurs, cliquez sur Organisations.

  2. Dans l’écran Organisations, cliquez sur Nouveau dans la barre d’outils.

  3. Dans l’écran Nouvelle organisation, dans la section Informations générales, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper Aux Quatre Coins du monde.
    Numéro de partenaire commercial | Taper 02.
    Groupe de catalogues de l’organisation | Sélectionner SpécialInternational dans la liste déroulante.

  4. Pour enregistrer la nouvelle organisation avec le groupe de catalogues SpécialInternational et revenir à l’écran Organisations, cliquez sur Enregistrement et retour dans la barre d’outils.

L’organisation Aux Quatre Coins du monde est enregistrée. Le groupe de catalogues SpécialInternational s’affichera sur le site SupplierAD pour la société Aux Quatre Coins du monde.


Création d'un utilisateur

Création d’un utilisateur

Le module Utilisateurs inscrits permet de gérer les utilisateurs inscrits, c’est-à-dire les utilisateurs reconnus par votre site Web car ils ont rempli un formulaire d’inscription en ligne ou ont défini un compte d’utilisateur sur votre site d’une manière quelconque.

Dans cet atelier, vous allez ajouter trois nouveaux utilisateurs pour la société Aux Quatre Coins du monde : un administrateur, un administrateur délégué et un utilisateur ordinaire.

Pour créer un administrateur

  1. Dans Utilisateurs, cliquez sur Utilisateurs.

  2. Dans l’écran Utilisateurs, cliquez sur Nouveau dans la barre d’outils.

  3. Dans l’écran Nouvel utilisateur, dans la section Informations générales, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’ouverture de session | Taper Jean.
    Mot de passe de l’utilisateur | Taper monsésame.
    Adresse de messagerie | Taper Jean@Aux4CoinsduMonde.com.
    Nom | Taper Utilisateur.
    Prénom | Taper Jean.

  4. Dans la section Informations sur le compte, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Identificateur d’organisation | Cliquer sur le bouton de sélection […] pour ouvrir la boîte de dialogue Sélectionner Organisation.

  5. Dans la boîte de dialogue Sélectionner Organisation, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom (Rechercher) Taper Aux Quatre Coins du monde, puis cliquer sur Rechercher.

    Aux Quatre Coins du monde s’affiche dans la zone Nom.
    Nom (Liste) | Sélectionner Aux Quatre Coins du monde.

  6. Cliquez sur OK.

  7. Dans la section Informations sur le compte, dans la zone État du compte, sélectionnez Compte actif dans la liste déroulante.

  8. Dans la section Business Desk, dans la zone Indicateurs de rôles du Service Partenaire, sélectionnez Administrateur dans la liste déroulante.

  9. Pour enregistrer le nouvel utilisateur et revenir à l’écran Utilisateurs, cliquez sur Enregistrement et retour dans la barre d’outils.

Le nouvel utilisateur est enregistré dans l’organisation Aux Quatre Coins du monde.

Pour créer un administrateur délégué

  1. Pour ouvrir le site SupplierAD, dans Internet Explorer, tapez http://<nom_ordinateur>/SupplierAD dans la ligne Adresse.

  2. Dans l’écran S’inscrire du site SupplierAD, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’utilisateur | Taper Jean.
    Mot de passe | Taper monsésame.

  3. Cliquez sur Soumettre.

    Service partenaire s’affiche dans le volet gauche.

  4. Dans le volet gauche, sous Service partenaire, cliquez sur Utilisateurs, puis au-dessus des informations sur l’utilisateur, cliquez sur Nouveau.

  5. Dans la section Informations sur le compte, dans la liste déroulante État du compte, sélectionnez Actif.

  6. Dans la section Business Desk, dans la liste déroulante Indicateurs de rôles du Service Partenaire, sélectionnez Administrateur délégué.

  7. Dans la section Informations générales, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’ouverture de session | Taper Brigitte.
    Mot de passe | Taper monsésame.
    Adresse de messagerie | Taper Brigitte@Aux4CoinsduMonde.com.
    Nom | Taper Utilisatrice.
    Prénom | Taper Brigitte.

  8. Cliquez sur Enregistrer, puis sur Fermer.

    Brigitte Utilisatrice est enregistrée en tant qu’administrateur délégué.

  9. Fermez la fenêtre du navigateur.

Pour créer un utilisateur ordinaire

  1. Pour ouvrir le site SupplierAD, dans Internet Explorer, tapez http://<nom_ordinateur>/SupplierAD dans la ligne Adresse.

  2. Dans l’écran S’inscrire du site SupplierAD, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’utilisateur | Taper Brigitte.
    Mot de passe | Taper monsésame.

  3. Cliquez sur Soumettre.

  4. Dans le volet gauche, sous Service partenaire, cliquez sur Utilisateurs, puis sur Nouveau.

  5. Dans la section Informations sur le compte, dans la liste déroulante État du compte, sélectionnez Actif.

  6. Dans la section Business Desk, dans la liste déroulante Indicateurs de rôles du Service Partenaire, sélectionnez Utilisateur.

  7. Dans la section Informations générales, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’ouverture de session | Taper Bernard.
    Mot de passe | Taper monsésame.
    Adresse de messagerie | Taper Bernard@Aux4Coinsdu Monde.com.
    Nom | Taper Utilisateur.
    Prénom | Taper Bernard.

  8. Cliquez sur Enregistrer, puis sur Fermer.

    Bernard Utilisateur est enregistré en tant qu’utilisateur ordinaire.

  9. Fermez la fenêtre du navigateur.

Étapes de vérification du site

Pour vérifier que Bernard Utilisateur n’est PAS un administrateur délégué

  1. Pour ouvrir le site SupplierAD, dans Internet Explorer, tapez http://<nom_ordinateur>/SupplierAD dans la ligne Adresse.

  2. Dans l’écran S’inscrire du site SupplierAD, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’utilisateur | Taper Bernard.
    Mot de passe | Taper monsésame.

  3. Cliquez sur Soumettre.

    Aucun service partenaire n’est répertorié.

  4. Cliquez sur la catégorie Claviers.

    Remarque

    • Étant donné qu’un seul catalogue est disponible, le site affiche les catégories de ce catalogue plutôt que son nom.
  5. Cliquez sur Microsoft® Internet Keyboard Pro, faites défiler l’écran, puis cliquez sur Ajouter au panier.

  6. Cliquez sur Panier dans l’en-tête de l’écran.

  7. Dans la zone Quantité, tapez 5, puis cliquez sur Mettre à jour.

    Le prix total correspond aux cinq claviers figurant sur la page Web du panier.

  8. Fermez la fenêtre du navigateur.

Pour vérifier que le panier existe dans Business Desk

  1. Dans Commandes, cliquez sur Gestionnaire de panier.

  2. Dans l’écran Gestionnaire de panier, dans l’écran Rechercher, sélectionnez Tous les paniers dans la liste déroulante Rechercher par.

  3. Cliquez sur Rechercher.

La commande de Bernard Utilisateur s’affiche dans l’écran Rechercher.


Création d'une entrée du glossaire du site

Création d’une entrée du glossaire du site

Le module Entrées du glossaire du site permet de définir les valeurs pertinentes pour votre site. Les entrées du glossaire du site permettent d’uniformiser facilement les valeurs utilisées sur votre site. Vous pouvez utiliser les entrées du glossaire du site pour cibler les produits de vos catalogues, un contenu ou des publicités à l’usage des utilisateurs du site.

Dans cet atelier, vous allez ajouter les entrées du glossaire du site Responsable et Employé. Après avoir créé vos entrées du glossaire du site, vous allez définir un profil utilisateur qui inclut ces entrées afin de pouvoir ensuite cibler une publicité destinée aux utilisateurs qui répondent au profil spécifié.

Pour créer une entrée du glossaire du site

  1. Dans Utilisateurs, cliquez sur Éditeur d’entrées du glossaire du site.

  2. Dans l’écran Éditeur d’entrées du glossaire du site, cliquez sur Ajouter.

  3. Dans la boîte de dialogue Ajouter, cliquez sur un nouveau groupe, puis sur OK.

  4. Dans la section Attributs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper InformationsSociete.
    Nom complet | Taper Informations sur la société.

  5. Cliquez sur Appliquer.

  6. Dans la zone Structure des entrées du glossaire du site, sélectionnez Informations sur la société, puis cliquez sur Ajouter.

  7. Dans la boîte de dialogue Ajouter, sélectionnez une nouvelle entrée du glossaire du site, puis cliquez sur OK.

  8. Dans la section Attributs de l’entrée du glossaire du site, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper TypeFonction.
    Nom complet | Taper Type de fonction.

  9. Dans la section Entrées du glossaire, cliquez sur Nouvelle, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de l’entrée du glossaire | Taper Responsable.
    Nom complet | Taper Responsable.

  10. Cliquez sur Accepter, puis cliquez sur Nouvelle pour ajouter une autre entrée du glossaire du site.

  11. Dans la section Entrées du glossaire, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de l’entrée du glossaire | Taper Employe.
    Nom complet | Taper Employé.

  12. Cliquez sur Accepter, puis sur Appliquer.

  13. Pour enregistrer les nouvelles entrées du glossaire du site et revenir à l’écran Entrées du glossaire du site, cliquez sur Enregistrement et retour dans la barre d’outils.

Les nouvelles entrées du glossaire du site sont enregistrées et peuvent maintenant être ajoutées à un profil utilisateur.

Pour ajouter une entrée du glossaire du site à un profil utilisateur

  1. Dans Utilisateurs, cliquez sur Définition de profil.

  2. Dans l’écran Profils, dans la liste Nom, sélectionnez le profil Objet utilisateur, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Profil : Objet utilisateur, dans la liste Propriétés, sélectionnez Informations générales.

  4. Cliquez sur Ajouter.

  5. Dans la boîte de dialogue Ajouter, cliquez sur un nouveau groupe.

  6. Cliquez sur OK.

  7. Dans l’écran Profil : Objet utilisateur, dans la section Attributs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper InformationsSociete.
    Nom complet | Taper Type de fonction.

  8. Cliquez sur Appliquer, puis sur Ajouter.

  9. Dans la boîte de dialogue Ajouter, cliquez sur une nouvelle propriété, puis sur OK.

  10. Dans l’écran Profil : Objet utilisateur, dans la section Attributs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper TypeFonction.
    Nom complet | Taper Type de fonction.
    Type | Sélectionner Entrée du glossaire du site dans la liste déroulante.
    Référence de type | Cliquer sur le bouton de sélection […], sélectionner Informations sur la société, puis Type de fonction.

  11. Cliquez sur OK.

  12. Dans la section Attributs avancés, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Activé | Vérifier que Oui est sélectionné.
    Mapper vers les données | Cliquer sur le bouton de sélection […] pour ouvrir la boîte de dialogue Sélecteur de source de données.

  13. Dans la boîte de dialogue Sélecteur de source de données, sélectionnez ProfileService_SQLSource, sélectionnez Objet utilisateur, faites défiler l’écran, puis sélectionnez Propriété personnalisée 1 (CHAÎNE).

  14. Cliquez sur OK, puis sur Appliquer.

  15. Pour enregistrer les attributs avec le profil utilisateur et revenir à l’écran Profils, cliquez sur Enregistrement et retour dans la barre d’outils.

Le profil utilisateur est enregistré avec les entrées du glossaire du site Type de fonction.

Pour mettre à jour le profil utilisateur

  1. Dans Utilisateurs, cliquez sur Publier les profils.

  2. Dans l’écran Publier les profils, sélectionnez l’application SupplierAD, puis cliquez sur Publier dans la barre d’outils.

Le profil utilisateur est mis à jour et vous pouvez maintenant cibler les utilisateurs du site qui correspondent à ce profil utilisateur.


Ajout d'un utilisateur avec un nouveau profil

Ajout d’un utilisateur avec un nouveau profil

Le module Utilisateurs inscrits permet de gérer les utilisateurs inscrits, c’est-à-dire les utilisateurs reconnus par votre site Web car ils ont rempli un formulaire d’inscription en ligne ou ont défini un compte d’utilisateur sur votre site d’une manière quelconque.

Dans cet atelier, vous allez ajouter deux nouveaux utilisateurs avec les nouvelles entrées du glossaire du site, Responsable et Employé, que vous avez créées dans l’atelier précédent.

Pour créer l’utilisateur Responsable

  1. Dans Utilisateurs, cliquez sur Utilisateurs.

  2. Dans l’écran Utilisateurs, cliquez sur Nouveau dans la barre d’outils.

  3. Dans l’écran Nouvel utilisateur, dans la section Informations générales, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’ouverture de session | Taper Jacques.
    Mot de passe de l’utilisateur | Taper monsésame.
    Adresse de messagerie | Taper Jacques@Aux4CoinsduMonde.com.
    Nom | Taper Utilisateur.
    Prénom | Taper Jacques.
    Type de fonction | Cliquer sur Type de fonction, puis sélectionner Responsable dans la liste déroulante.

  4. Dans la section Informations sur le compte, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Identificateur d’organisation | Cliquer sur le bouton de sélection […] pour ouvrir la boîte de dialogue Sélectionner Organisation. Sélectionnez Aux Quatre Coins du monde, puis cliquez sur OK.
    État du compte | Sélectionner Compte actif dans la liste déroulante.

  5. Dans la section Business Desk, dans la zone Indicateurs de rôles du Service Partenaire, sélectionnez Utilisateur ordinaire dans la liste déroulante.

  6. Pour enregistrer l’utilisateur et revenir à l’écran Utilisateurs, cliquez sur Enregistrement et retour dans la barre d’outils.

Jacques Utilisateur a été créé en tant qu’utilisateur Responsable pour l’organisation Aux Quatre Coins du monde.

Pour créer l’utilisateur Employé

  1. Dans Utilisateurs, cliquez sur Utilisateurs.

  2. Dans l’écran Utilisateurs, cliquez sur Nouveau dans la barre d’outils.

  3. Dans l’écran Nouvel utilisateur, dans la section Informations générales, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’ouverture de session | Taper Julie.
    Mot de passe de l’utilisateur | Taper monsésame.
    Adresse de messagerie | Taper Julie@Aux4CoinsduMonde.com.
    Nom | Taper Utilisatrice.
    Prénom | Taper Julie.
    Type de fonction | Cliquer sur Type de fonction, puis sélectionner Employé dans la liste déroulante.

  4. Dans la section Informations sur le compte, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Identificateur d’organisation | Cliquer sur le bouton de sélection […] pour ouvrir la boîte de dialogue Sélectionner Organisation. Sélectionnez Aux Quatre Coins du monde, puis cliquez sur OK.
    État du compte | Sélectionner Compte actif dans la liste déroulante.

  5. Dans la section Business Desk, dans la zone Indicateurs de rôles du Service Partenaire, sélectionnez Utilisateur ordinaire dans la liste déroulante.

  6. Pour enregistrer l’utilisateur et revenir à l’écran Utilisateurs, cliquez sur Enregistrement et retour dans la barre d’outils.

Julie a été créée en tant qu’utilisateur Employé pour l’organisation Aux Quatre Coins du monde.


Analyse Business Desk

Les modules d’analyse vous permettent d’analyser les données relatives à l’activité des utilisateurs sur votre site. Vous pouvez analyser des informations spécifiques sur les utilisateurs inscrits, ainsi que leur comportement durant la visite de votre site, notamment le temps qu’ils ont passé sur une page particulière, ou les liens sur lesquels ils ont cliqué.

Vous pouvez exécuter des rapports pour consulter les données, et afficher des segments de population. Les informations fournies dans ces rapports et ces segments peuvent vous aider à prendre les bonnes décisions en matière de tarifs, de marketing et de publicité ou concernant d’autres aspects de votre commerce.

Avant d’exécuter des rapports d’analyse ou d’afficher des segments pour analyser l’activité des utilisateurs sur votre site Web, votre administrateur système doit installer Microsoft Commerce Server 2000. En outre, il doit également importer les données correspondant aux journaux Web, transactions, campagnes marketing, utilisateurs et catalogues dans Data Warehouse, puis exécuter le processus de préparation des rapports.

Cette section contient les rubriques suivantes :

  • Déroulement des opérations pour la gestion des rapports. Présente la marche à suivre pour exécuter, modifier et gérer des rapports.

  • Déroulement des opérations pour les analyses de segment. Présente la marche à suivre pour afficher et gérer les segments ainsi que les modèles de segments dans le module Identification de segments.

  • À propos de Analyse. Décrit les composants d’un rapport et présente une vue d’ensemble des différents types de rapports. Décrit le module Identification de segments et comment l’utiliser pour analyser l’activité de votre site.

  • Rapports Commerce Server. Décrit les rapports fournis avec Commerce Server, leurs propriétés et leur mode de gestion du temps.

  • Définition de l’analyse commerciale. Décrit les étapes nécessaires à l’exécution des fonctions analytiques de Commerce Server.

  • Recherche de rapports. Explique comment trouver un rapport dans la liste des rapports.

  • Exécution de rapports. Explique comment exécuter des rapports dynamiques et statiques.

  • Affichage de rapports dynamiques. Explique comment afficher des rapports dynamiques.

  • Affichage de rapports statiques. Explique comment ouvrir et afficher des rapports statiques dans le module Analyse de rapports.

  • Impression de rapports. Explique comment imprimer des rapports dynamiques et statiques à partir de la fenêtre du navigateur.

  • Exportation d’un rapport dynamique. Explique comment exporter un rapport dynamique vers Microsoft Excel.

  • Exportation d’un rapport statique. Explique comment exporter un rapport statique sous forme de liste vers le module Gestionnaire de listes.

  • Création d’un nouveau rapport dynamique. Explique comment modifier puis enregistrer un rapport dynamique sous forme de nouveau rapport dynamique.

  • Suppression de rapports. Explique comment supprimer des définitions de rapport dynamique personnalisé et des rapports statiques.

  • Affichage des propriétés de rapport. Explique comment afficher les propriétés d’un rapport.

  • Analyse des segments de population. Explique comment ouvrir un modèle de segment, afficher un segment ou un groupe de segments, comparer deux segments ou groupes de segments, et comment exporter des données de segments vers une liste.


Déroulement des opérations pour la gestion des rapports

La figure suivante illustre un exemple de scénario permettant d’exécuter, de modifier et de gérer des rapports.

Diagramme de déroulement des opérations pour la gestion des rapports
Rapports
Exécuter le rapport
Afficher le rapport dynamique
Modifier le rapport
Configurer les paramètres

Enregistrer les modifications pour créer une définition de rapport dynamique

Afficher le rapport statique
Analyse de rapports
Fenêtre du navigateur
Exécuter un nouveau rapport dynamique
Rapports
Dynamique
Statique

Exemple de scénario d’exécution de rapports dynamiques

  1. Dans le module Rapports, exécutez un rapport dynamique.

  2. Dans la fenêtre du navigateur, affichez le rapport dynamique.

  3. Dans la fenêtre du navigateur, modifiez le rapport dynamique.

  4. Dans la fenêtre du navigateur, enregistrez le rapport dynamique modifié sous forme de nouvelle définition de rapport.

  5. Dans le module Rapports, exécutez le nouveau rapport dynamique.

Exemple de scénario d’exécution de rapports statiques

  1. Dans le module Rapports, exécutez un rapport statique.

  2. Configurez les paramètres du rapport.

  3. Dans le module Analyse de rapports, ouvrez le rapport statique et affichez-le dans une fenêtre du navigateur.

  4. Dans le module Rapports, exportez un rapport statique sous forme de liste.

  5. Configurez les paramètres du rapport.

  6. Configurez la liste.

  7. Dans le module Gestionnaire de listes, ouvrez la nouvelle liste.
    Déroulement des opérations pour l'exportation d'un rapport statique sous forme de liste
    Rapports
    Exportation d'un rapport statique
    Configurer les paramètres
    Configurer la liste
    Afficher une nouvelle liste
    Gestionnaire de listes

Exemple de scénario d’exportation de rapports statiques

  1. Dans le module Rapports, exportez un rapport statique sous forme de liste.

  2. Configurez les paramètres du rapport.

  3. Configurez la liste.

  4. La nouvelle liste est disponible dans le module Gestionnaire de listes.


Déroulement des opérations pour les analyses de segment

La figure suivante illustre un exemple de scénario pour afficher et gérer les segments ainsi que les modèles de segments dans le module Identification de segments.

Déroulement des opérations pour l'Identification de segments
Identification de segments
Sélectionner un modèle de segment
Analyser et comparer les segments
Renommer et enregistrer un segment
Créer un rapport de comparaison de synthèse
Exporter le segment vers le Gestionnaire de listes

  1. Dans le module Identification de segments, sélectionnez un modèle de segment à afficher et à analyser.

  2. Analysez le segment ou groupe de segments sélectionné pour déterminer les caractéristiques qui le définissent, ainsi que les caractéristiques qui le différencient des autres segments ou groupes de segments du modèle. Analysez ces caractéristiques en consultant les informations de synthèse de chacune d’elles, puis en comparant ces informations à celles des autres segments ou groupes de segments.

  3. Si nécessaire, renommez le segment ou groupe de segments pour refléter ses caractéristiques de synthèse et de comparaison.

  4. Créez un rapport de synthèse dans Internet Explorer pour les segments comparés, puis imprimez-le.

  5. Exportez un segment vers le module Gestionnaire de listes pour créer une liste des utilisateurs du segment, et permettre une analyse et une gestion optimales.

Voir aussi

À propos de Analyse


À propos de Analyse

Analyse vous permet d’exécuter des rapports sur les données utilisateur et de site stockées dans Data Warehouse, en outre, les résultats de ces rapports vous permettent d’effectuer une analyse commerciale des performances de votre site Web. Par exemple, vous pouvez exécuter des rapports qui montrent les caractéristiques et les comportements antérieurs de vos utilisateurs, pour mettre à jour votre site en ciblant les publicités ou les produits en fonction de ces utilisateurs.

Outre l’exécution des rapports d’analyse, vous pouvez utiliser le module Identification de segments pour analyser les segments de population des utilisateurs. Les segments représentent les groupes d’utilisateurs qui partagent des caractéristiques ou un comportement similaires. Le module Identification de segments vous permet d’analyser les segments pour identifier ces caractéristiques ou ce comportement spécifiques, par exemple, les tendances d’utilisation. Vous pouvez ensuite utiliser les résultats de cette analyse pour prendre des décisions commerciales basées sur les similitudes existant entre les utilisateurs.

Votre administrateur système doit exécuter plusieurs tâches pour que vous puissiez exécuter des rapports et analyser les segments. Pour plus d’informations, consultez Définition de l’analyse commerciale.

Cette section contient les rubriques suivantes :

  • Définitions de rapport

  • Dimensions et indicateurs

  • Rapports dynamiques et statiques

  • Rapports personnalisés

  • Analyse de segment


Définitions de rapport

Une définition de rapport représente la structure d’un rapport, et non le rapport dans sa totalité. Si vous exécutez un rapport pour la deuxième fois, après que les nouvelles données ont été importées dans Data Warehouse, la seconde version du rapport contient les données mises à jour. L’exécution des rapports permet de visualiser une « capture instantanée » des données de Data Warehouse.

Le module Rapports contient deux types de définitions de rapport : un type de définition pour les rapports dynamiques, et un autre type de définition pour les rapports statiques. Pour plus d’informations sur les rapports dynamiques et statiques, consultez Rapports dynamiques et statiques.

Les rapports du module Rapports sont répartis en plusieurs catégories : publicité, ventes de produits, utilisation du Web, utilisateurs, visites, diagnostics et chaînes de requête. Pour plus d’informations sur les définitions de rapport disponibles dans le module Rapports, consultez Rapports Commerce Server.

Vous pouvez créer des définitions de rapport dynamique personnalisé. Votre administrateur système peut créer des définitions de rapport dynamique ou statique personnalisé. Une fois exécutés, les rapports dynamiques et statiques renvoient les vues demandées des données résumées de Data Warehouse. Pour plus d’informations sur les rapports personnalisés, consultez Rapports personnalisés.


Dimensions et indicateurs

Les données renvoyées dans un rapport sont déterminées par les dimensions et les indicateurs contenus dans sa définition. Les indicateurs sont des valeurs numériques. Les dimensions sont des entités commerciales, telles que la couleur, la taille, le produit ou l’heure. En associant les dimensions aux indicateurs, les définitions de rapport Commerce Server fournissent des informations basées sur la quantité et le temps.

Lorsque vous exécutez un rapport statique, vous pouvez modifier les paramètres des données renvoyées. Par exemple, vous ne pouvez demander des données que pour les 25 utilisateurs ayant effectué des achats, cependant, vous ne pouvez pas modifier les dimensions et les indicateurs du rapport.

Lorsque vous exécutez un rapport dynamique, une liste des dimensions et des indicateurs disponibles s’affiche dans le sélecteur de champs du tableau croisé dynamique. Vous pouvez modifier les dimensions et les indicateurs dans un rapport dynamique en ajoutant, en supprimant ou en modifiant l’orientation des dimensions et des indicateurs, mais également en modifiant le niveau de détail affiché par le rapport. Si vous modifiez un rapport dynamique, vous pouvez enregistrer la définition de rapport avec les modifications sous forme de définition de rapport dynamique personnalisé.

Voir aussi

Rapports dynamiques et statiques

Rapports personnalisés

Rapports Commerce Server


Rapports dynamiques et statiques

Commerce Server fournit deux types de rapports :

  • Rapports dynamiques. Ils sont créés lors de l’exécution. Chaque fois qu’un rapport dynamique est exécuté, il récupère les données les plus récentes dans Data Warehouse. Seule la définition du rapport, qui ne change jamais, est stockée.

  • Rapports statiques. Ils sont immédiatement exécutés sur demande, puis stockés avec leurs données dans le module Analyse de rapports. Les rapports SQL statiques sont exécutés de manière asynchrone, ce qui vous permet de continuer à utiliser Commerce Server Business Desk pour d’autres tâches pendant l’exécution de ces rapports statiques. Les rapports statiques d’expression multidimensionnelle (MDX) sont exécutés de manière synchrone, de sorte que vous ne pouvez pas effectuer d’autres tâches à l’aide de Business Desk tant que les rapports ne sont pas exécutés.

Remarque

  • Vous pouvez vérifier si un rapport statique est basé sur MDX ou SQL en regardant les propriétés du rapport. Pour plus d’informations sur l’affichage des propriétés d’un rapport, consultez Affichage des propriétés de rapport.

Fonctionnalités des rapports dynamiques et statiques

Rapports dynamiques

Tableaux croisés dynamiques

Liste de champs d’un tableau croisé dynamique

Dimensions réduites

Graphiques croisés dynamiques

Rapports statiques

Fonctionnalités des rapports dynamiques et statiques

Le tableau suivant répertorie les différences entre les rapports statiques et dynamiques.

Fonctionnalité | Rapport dynamique | Rapport statique
Contrôler la taille des résultats du rapport | Vous pouvez contrôler la taille des résultats du rapport en n’affichant pas les données détaillées. | Vous pouvez contrôler la taille des résultats du rapport en limitant le nombre de lignes analysées pour le rapport.
Modifier le contenu du rapport | Les fonctionnalités du tableau croisé dynamique vous permettent d’ajouter et de supprimer des dimensions et des indicateurs des résultats du rapport. | L’administrateur système modifie les rapports statiques par programmation. Pour connaître les instructions à suivre sur la modification des rapports statiques, consultez « Création de rapports personnalisés » dans l’aide de Commerce Server 2000.
Exporter les résultats du rapport directement vers le Gestionnaire de listes | Vous ne pouvez pas exporter les résultats d’un rapport dynamique vers le Gestionnaire de listes. | Vous pouvez exporter un rapport statique sous forme de liste dynamique ou statique vers le Gestionnaire de listes.
Exporter les résultats du rapport vers Microsoft Excel | Vous pouvez exporter les résultats d’un rapport dynamique vers Microsoft Excel. | Vous ne pouvez pas exporter un rapport dynamique vers Microsoft Excel.
Créer des définitions de rapport | Vous pouvez modifier puis enregistrer un rapport dynamique sous forme de nouvelle définition de rapport dynamique. | L’administrateur système peut modifier les rapports statiques par programmation. Pour connaître les instructions à suivre sur la modification des rapports statiques, consultez « Création de rapports personnalisés » dans l’aide de Commerce Server 2000.
Supprimer des définitions de rapport | Vous pouvez supprimer des définitions de rapport dynamique personnalisé. Vous ne pouvez pas supprimer des définitions de rapport dynamique par défaut. | Vous pouvez supprimer des définitions de rapport statique personnalisé. Vous ne pouvez pas supprimer des définitions de rapport statique par défaut.
Enregistrer des rapports | Vous ne pouvez pas enregistrer des rapports dynamiques contenant des données dans Business Desk. | Les rapports statiques sont stockés avec leurs données dans le module Analyse de rapports jusqu’à ce qu’ils soient supprimés.
Afficher les résultats du rapport sous forme de graphique | Vous pouvez afficher les rapports dynamiques sous forme de graphiques croisés dynamiques. | Vous ne pouvez pas afficher les rapports statiques sous forme de graphiques.

Rapports dynamiques

Lorsqu’un rapport dynamique est terminé, il s’affiche par défaut sous forme de rapport de tableau croisé dynamique ou de rapport de graphique croisé dynamique dans une nouvelle fenêtre du navigateur Internet Explorer. Vous pouvez masquer ou afficher le tableau croisé dynamique et le graphique croisé dynamique dans chaque rapport dynamique. Les tableaux croisés dynamiques comprennent des filtres, des lignes et des colonnes qui contiennent les détails du rapport. Les graphiques croisés dynamiques sont des représentations graphiques des données du rapport. Dans le tableau croisé dynamique, vous pouvez examiner les détails de vos données et déplacer les dimensions et les indicateurs pour obtenir une perspective différente de ces données.

Remarque

  • Pour accéder à l’aide de la liste de tableau croisé dynamique Microsoft, Microsoft Office doit être installé sur le même ordinateur que celui sur lequel s’exécute Business Desk.

Tableaux croisés dynamiques

Vous pouvez modifier un tableau croisé dynamique de rapport dynamique. Vous pouvez ajouter ou supprimer des dimensions sous forme de lignes ou de colonnes, et ajouter ou supprimer des indicateurs. Vous pouvez développer ou réduire le niveau de détail affiché, et ajouter ou modifier les dimensions de filtre. Une fois ces modifications effectuées, vous pouvez enregistrer le rapport sous forme d’une nouvelle définition de rapport dynamique, disponible dans le module Rapports. Pour plus d’informations sur la création d’une nouvelle définition de rapport dynamique, consultez Création d’un nouveau rapport dynamique.

La figure suivante utilise le rapport Portée et fréquence d’accès à la publicité par élément de la campagne pour afficher les éléments d’écran d’un tableau croisé dynamique.

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Liste de champs d’un tableau croisé dynamique

La liste de champs d’un tableau croisé dynamique vous permet d’ajouter des dimensions et des indicateurs à un tableau croisé dynamique. Cette liste apparaît lorsque le rapport s’affiche dans la fenêtre du navigateur. Si la liste de champs n’apparaît pas automatiquement, cliquez sur le bouton Liste de champs de tableau croisé dynamique. La liste de champs affiche les dimensions et indicateurs qui peuvent être inclus dans un rapport. Les dimensions et les indicateurs affichés en gras sont inclus dans l’affichage par défaut d’un rapport ; les dimensions et indicateurs qui ne sont pas en gras peuvent être utilisés dans le rapport. Vous pouvez utiliser le glisser-déplacer pour ajouter d’autres dimensions et indicateurs à un rapport.

La figure suivante montre les éléments d’écran d’une liste de champs d’un tableau croisé dynamique.

Liste des champs d'un tableau croisé dynamique

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Dimensions réduites

Vous pouvez développer et réduire les dimensions pour modifier le niveau de détail des informations affichées dans un rapport. Les dimensions réduites s’affichent dans le tableau croisé dynamique avec un signe plus (+) situé à gauche du nom de la dimension. Lorsqu’une dimension est réduite, le total affiché dans le rapport est un total cumulé de l’ensemble de la dimension. Vous pouvez cliquer sur le signe plus situé en regard du nom d’une dimension pour afficher ses membres individuels. Les dimensions réduites sont triées au niveau où est effectuée la réduction.

Si vous réduisez les dimensions d’un rapport dynamique qui contient des indicateurs possédant des décomptes uniques, les totaux affichés dans le rapport ne seront pas précis. Par exemple, le rapport Portée et fréquence d’accès à la publicité par jour montre la portée totale (nombre d’utilisateurs uniques) et la fréquence (nombre de visites uniques) pour chaque campagne publicitaire par jour. Si vous développez une campagne publicitaire, le total du nombre d’utilisateurs uniques par jour ne sera pas un total précis pour la campagne publicitaire car un utilisateur peut avoir visité le site Web pendant plusieurs jours. Les autres rapports Commerce Server contenant des décomptes uniques sont Portée et fréquence d’accès à la publicité par campagne, Portée et fréquence d’accès à la publicité par élément de la campagne, Utilisateurs et visites distincts par semaine, et Utilisateurs distincts par jour.

Graphiques croisés dynamiques

Vous pouvez afficher des graphiques croisés dynamiques de rapport dynamique. Le bouton Afficher le graphique permet d’afficher votre rapport dynamique selon l’un des 15 types de graphiques disponibles dans Commerce Server. Chaque rapport dynamique Commerce Server reçoit le format de graphique par défaut considéré comme la meilleure représentation des données du rapport. Vous pouvez choisir des formats de graphiques différents selon vos besoins.

La figure suivante montre les éléments d’écran d’un graphique croisé dynamique dans le rapport Insertion de publicité.

Exemple de graphique croisé dynamique

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Remarque

  • Seul le premier indicateur est affiché dans les graphiques croisés dynamiques. Si vous souhaitez visualiser un graphique présentant un indicateur différent, vous devez placer cet indicateur en première position (à l’extrémité gauche) dans le tableau croisé dynamique sur lequel est basé le graphique.

Le tableau suivant répertorie chaque format de graphique ainsi qu’une description du type de données affiché. Pour plus d’informations sur l’affichage de votre rapport dynamique sous forme de graphique croisé dynamique, consultez Affichage de rapports dynamiques.

Format du graphique | Données affichées
Barres : groupé | Affiche les comparaisons entre des éléments.
Histogramme : groupé | Affiche les modifications de données effectuées sur une certaine durée, ou compare des éléments.
Courbes | Affiche les tendances des données.
Courbes : avec marqueurs | Affiche les tendances des données selon des intervalles égaux, avec des marqueurs pour désigner les intervalles.
Courbes : lissées | Affiche les tendances des données selon des intervalles égaux, et de manière lissée pour représenter les données estimées entre les intervalles.
Courbes : lissées avec marqueurs | Affiche les tendances des données selon des intervalles égaux, avec des marqueurs pour désigner les intervalles, et de manière lissée pour représenter les données estimées entre ces intervalles.
Secteurs | Affiche la taille proportionnelle des éléments constituant une seule série de données par rapport à la somme des éléments.
Secteurs : éclaté | Affiche la taille proportionnelle des éléments constituant une seule série de données par rapport à la somme des éléments, avec une mise en valeur d’un élément spécifique.
Aires | Affiche l’ampleur des modifications au fil du temps, et la relation entre certaines parties des données et l’ensemble.
Anneau | Affiche la relation entre les éléments et les séries de données qu’ils constituent, en montrant différentes séries de données dans chaque anneau du graphique.
Anneau : éclaté | Affiche la relation entre les éléments et les séries de données qu’ils constituent, en montrant différentes séries de données dans chaque anneau du graphique, avec une mise en valeur d’un élément spécifique.
Radar : avec courbes | Affiche une comparaison entre les valeurs agrégées de plusieurs séries de données, affichées sous forme de points rayonnant depuis un noeud central.
Radar : avec courbes et marques | Affiche une comparaison entre les valeurs agrégées de plusieurs séries de données, affichées sous forme de points reliés et rayonnant depuis un noeud central, avec des marqueurs pour identifier les valeurs.
Radar : avec courbes lissées | Affiche une comparaison entre les valeurs agrégées de plusieurs séries de données, affichées sous forme de points reliés et rayonnant depuis un noeud central, de manière lissée pour représenter les données estimées entre les intervalles.
Radar : avec courbes lissées et marques | Affiche une comparaison entre les valeurs agrégées de plusieurs séries de données, affichées sous forme de points reliés et rayonnant depuis un noeud central, avec des marqueurs identifiant les valeurs, et de manière lissée pour représenter les données estimées entre les intervalles.

Rapports statiques

Les rapports statiques sont stockés dans le module Analyse de rapports. Les rapports statiques peuvent porter sur de grands ensembles de résultats, cependant le temps d’exécution de ces rapports peut être très long. Pendant l’exécution du rapport, son état est affiché comme étant « En attente » dans le module Analyse de rapports. Lorsque vous ouvrez un rapport statique, celui-ci s’ouvre sous forme de document HTML dans une nouvelle fenêtre du navigateur Microsoft Internet Explorer.

La figure suivante montre les éléments d’écran d’un rapport statique.

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Vous pouvez exporter les résultats d’un rapport statique sous forme de listes statiques ou dynamiques vers le module Gestionnaire de listes du module Campagnes marketing. La liste statique du Gestionnaire de listes contient les mêmes données que celles contenues dans le rapport statique lors de son exécution ; cependant, un rapport statique est limité à 1 000 lignes dans le rapport HTML résultant. Vous pouvez exporter un nombre illimité de lignes sous forme de liste.

Une liste dynamique contient un pointeur vers le rapport statique. Par exemple, si vous exportez le rapport Nouveaux utilisateurs inscrits, vous devez utiliser la boîte de dialogue Exécuter un rapport pour configurer les paramètres du rapport. Si vous sélectionnez « Le mois dernier » comme date de rapport, les données exportées sous forme de liste correspondront au mois précédent.

Si vous avez exporté le rapport sous forme de liste dynamique, la définition et les paramètres du rapport sont stockés. Chaque fois qu’une liste dynamique est exécutée, elle affiche des données correspondant au mois précédant le mois en cours ; par exemple, les données de juin sont renvoyées si vous exécutez la liste en juillet. Une liste dynamique récupère les données les plus récentes de Data Warehouse lorsque vous exécutez cette liste dans le Gestionnaire de listes. Cependant, si vous avez exporté le rapport sous forme de liste statique (par opposition à liste dynamique) en juin et que vous avez sélectionné « Le mois dernier », les données de la liste correspondront toujours à mai, quel que soit le moment où vous ouvrez la liste.

Exporter un rapport statique vers le Gestionnaire de listes

Liste statique :
la définition de rapport statique collecte des données dans le Data Warehouse

Commerce Server Data Warehouse

Exporter
le rapport statique

Données collectées dans le Data Warehouse à l'ouverture de la liste

Liste dynamique

Définition de liste dynamique ajoutée au Gestionnaire de listes

Liste statique ajoutée au Gestionnaire de listes

Gestionnaire de listes

Les propriétés du rapport statique dans la boîte de dialogue Exécuter un rapport vous permettent de personnaliser les résultats d’un rapport statique. Vous pouvez modifier ou entrer de nouvelles valeurs pour chacun des paramètres sur lesquels le rapport est basé. Par exemple, vous pouvez restreindre le rapport Propriétés de l’utilisateur inscrit à l’affichage des propriétés pour les vingt-cinq derniers utilisateurs inscrits. Si vous exécutez un rapport possédant un paramètre de date, vous pouvez sélectionner une date absolue, un intervalle de date, ou une date relative, telle que l’année dernière. Si vous exécutez un rapport possédant un paramètre d’expression, vous pouvez créer l’expression souhaitée en choisissant parmi un ensemble complet d’opérandes.

Après avoir exécuté un rapport statique, vous ne pouvez pas modifier les résultats de ce rapport dans la fenêtre du navigateur. Cependant, vous pouvez utiliser les fonctions de Internet Explorer pour imprimer le rapport ou l’enregistrer en tant que fichier, comme n’importe quel fichier HTML. Pour plus d’informations sur les fonctionnalités de Microsoft Internet Explorer, consultez l’aide de Microsoft Internet Explorer.

Voir aussi

Rapports Commerce Server

Exécution de rapports

Exportation d’un rapport dynamique

Création d’un nouveau rapport dynamique

Affichage de rapports dynamiques

Exportation d’un rapport statique

Affichage de rapports statiques


Rapports personnalisés

Vous pouvez modifier une définition de rapport dynamique et l’enregistrer sous forme de définition de rapport personnalisé, laquelle est ensuite ajoutée au module Rapports. Les définitions de rapport dynamique personnalisé vous permettent de créer un nouvel affichage des données contenues dans un rapport dynamique. Par exemple, vous pouvez exécuter le rapport Tendances d'utilisation pour visualiser le nombre total de demandes, d’utilisateurs et de visites par an, pour votre site.

Pour visualiser davantage de détails sur les tendances d’utilisation, vous pouvez créer une définition de rapport dynamique à partir du rapport Tendances d'utilisation pour afficher les tendances d’utilisation par type d’utilisateur visitant votre site, ou les tendances d’utilisation selon différentes périodes (par jour, par mois ou par trimestre) plutôt que par an. Lorsque vous enregistrez le rapport Tendances d’utilisation avec vos modifications, la nouvelle définition de rapport est ajoutée au module Rapports. Actualisez la liste des rapports dans le module Rapports pour afficher la nouvelle définition de rapport dynamique. Pour plus d’informations sur la création d’une nouvelle définition de rapport dynamique, consultez Création d’un nouveau rapport dynamique.

Pour créer une définition de rapport dynamique personnalisé, modifiez le tableau croisé dynamique d’un rapport existant, puis enregistrez le résultat sous forme de nouvelle définition de rapport. Vous pouvez modifier le tableau croisé dynamique d’un rapport existant en ajoutant et en supprimant des filtres, en triant les données affichées, en ajoutant des indicateurs, en déplaçant des champs, en modifiant les données développées et celles qui sont réduites, et en permutant (ou en manipulant) les colonnes et les lignes. Par exemple, vous pouvez développer les dimensions des années du rapport Tendances d'utilisation pour afficher les tendances d’utilisation par jour. Vous pouvez développer les dimensions des années, supprimer les dimensions des années, des trimestres et des jours pour afficher uniquement les données d’utilisation par mois.

Pour plus d’informations sur le travail avec des tableaux croisés dynamiques, votre administrateur système peut créer des définitions de rapport statique ou dynamique personnalisé, et les ajouter directement à la base de données utilisée par les rapports. Pour plus d’informations sur les développeurs de site qui créent des rapports personnalisés, consultez Creating Custom Reports (en anglais). Pour plus d’informations sur la planification du processus de création des rapports personnalisés, consultez Planification du système d’analyse commerciale.

Voir aussi

Rapports Commerce Server

Exécution de rapports

Création d’un nouveau rapport dynamique


Analyse de segment

Le module Identification de segments vous permet d’effectuer des analyses de segmentation (ou mise en clusters). Dans les analyses de segmentation, les utilisateurs sont regroupés en segments en fonction de leur comportement sur le site et des propriétés telles que l’âge et le sexe. Les utilisateurs du même segment possèdent un comportement ou des propriétés similaires. Les enregistrements regroupés dans un segment ont tendance à se ressembler davantage entre eux, qu’ils ne ressemblent aux enregistrements des autres segments. Le résultat du processus de segmentation est un modèle de segment. Le modèle de segment décrit les caractéristiques partagées par les utilisateurs appartenant à un segment ou un groupe de segments. Les segments et les groupes de segments sont créés dans Commerce Server Manager à partir des données de votre Data Warehouse.

Le module Identification de segments vous permet d’examiner un segment unique ou de comparer un segment à un autre. Vous pouvez également utiliser le module Identification de segments pour créer un rapport de synthèse de tous vos segments.

Segments et groupes de segments

Modèles de segments

Identification de segments

Rapports de segment

Segments et groupes de segments

Les segments sont des groupes d’utilisateurs qui possèdent un comportement similaire sur le site ou des propriétés similaires, telles que l’âge et le sexe. Un segment se compose d’une synthèse des enregistrements de base de données qui le composent. Cette synthèse provient des propriétés de Data Warehouse utilisées pour rassembler les enregistrements de base de données. Les groupes de segments sont des ensembles de segments similaires ou d’autres groupes de segments. Les segments et groupes de segments similaires sont ensuite fusionnés pour former des groupes de segments de niveau supérieur. Le processus se poursuit jusqu’à ce qu’un groupe de segments unique, de niveau élevé, se forme et représente la population entière.

Le module Identification de segments présente les segments dans un ordre hiérarchique, où le groupe de segments le plus élevé résume la population entière alors que les segments et groupes de segments les moins élevés résument les sous-ensembles les plus petits de la population. Les informations rassemblées dans l’Identification de segments peuvent servir de base à des objectifs de personnalisation et de ciblage via d’autres modules Business Desk de Commerce Server.

Les groupes de segments forment une hiérarchie à partir de laquelle vous pouvez analyser des tendances et identifier des corrélations entre les données à différents niveaux de la hiérarchie de segments. En regroupant les utilisateurs selon leurs similitudes, de nouvelles corrélations peuvent se révéler. Ces nouvelles corrélations peuvent constituer la base d’un ensemble de règles de ciblage et de personnalisation.

Modèles de segments

Un modèle de segment décrit les caractéristiques des utilisateurs appartenant à chacun des segments et groupes de segments. Les modèles de segments permettent d’identifier et d’analyser les valeurs d’attributs qui caractérisent les utilisateurs visitant votre site. Par exemple, après avoir construit un modèle de segment, vous pouvez identifier un segment caractérisant les utilisateurs qui ont acheté un célèbre conte pour enfants : femme de plus de 40 ans, avec des revenus supérieurs à 330 000 francs par an et un niveau d’études supérieures. Après avoir identifié ces caractéristiques communes, vous pouvez à présent offrir des produits similaires aux utilisateurs qui correspondent aux mêmes critères. Par exemple, ces utilisateurs peuvent être amenés à acheter un livre pour enfants sur les animaux.

À la demande, votre administrateur système peut construire des modèles de segments utilisant des données provenant de Data Warehouse de Commerce Server. Votre administrateur système doit vous avertir une fois que le modèle de segment est terminé, afin que vous puissiez afficher la mise à jour des informations du modèle de segment dans le module Identification de segments de Commerce Server Business Desk.

Identification de segments

Vous pouvez visualiser les groupes de segments et les segments uniques dans le module Identification de segments, un outil d’analyse de données destiné au chef d’entreprise. À l’aide du module Identification de segments, vous pouvez identifier les tendances d’utilisation et prendre des décisions commerciales basées sur les similitudes entre utilisateurs.

Le module Identification de segments permet d’afficher les informations pertinentes de divers segments, et de comparer ou différencier leurs propriétés. Vous pouvez enregistrer les membres des segments uniques dans une liste du module Gestionnaire de listes, si vous souhaitez approfondir l’analyse et la classification de ces segments.

Lorsque vous ouvrez pour la première fois le module Identification de segments, une liste des modèles de segments disponibles s’affiche. Après avoir sélectionné un modèle de segment et cliqué sur le bouton Ouvrir le modèle dans la barre d’outils, l’écran Identification de segments s’affiche. Trois zones de travail figurent sur cet écran :

  • Un affichage hiérarchique des segments et groupes de segments du modèle de segment ouvert.

  • Un résumé des propriétés pertinentes du segment ou groupe de segments sélectionné.

  • Une comparaison du segment sélectionné par rapport à un autre segment ou groupe de segments.

La première fois que vous affichez un modèle de segment à l’aide du module Identification de segments, les segments et groupes de segments de la liste possèdent des noms génériques, tels que Segment1, Segment2, etc. Le pourcentage de la population totale représentée dans un segment ou un groupe de segments s’affiche entre parenthèses après le nom. Le résumé du segment s’affiche à l’écran, à droite de la liste de segments.

Zone de travail de l'Identification de segments

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Le résumé de votre segment ou groupe de segments contient un tableau avec les colonnes suivantes :

  • Couples Propriété/valeur. Ils ont une correspondance réciproque et constituent le meilleur résumé des enregistrements du segment ou du groupe de segments sélectionné. Par exemple, si la majorité des enregistrements d’un segment donné correspondent aux personnes dont l’occupation professionnelle est « Étudiant », alors « Occupation » s’affiche dans la colonne Propriété et « Étudiant » dans la colonne Valeur.

  • Score. Affiche une barre rouge, dont la longueur indique la précision avec laquelle le couple propriété/valeur résume les enregistrements du segment ou du groupe de segments sélectionné.

Rapports de segment

Le module Identification de segments vous permet de générer un rapport qui représente un résumé de tous les groupes de segments et segments créés. Grâce à ce rapport, vous pouvez comparer tous les segments. Chaque segment et groupe de segments possède des liens vers des informations détaillées ; en cliquant sur ces liens, vous pouvez vous déplacer facilement entre les segments. Le rapport s’affiche dans une nouvelle fenêtre du navigateur.

Voir aussi

Rapports Commerce Server

Affichage d’un modèle de segment

Affichage d’un rapport de segment

Exportation de données de segment vers le Gestionnaire de listes


Rapports Commerce Server

Commerce Server offre un ensemble de 39 définitions de rapport. Vous pouvez modifier les rapports dynamiques pour créer de nouveaux rapports et les ajouter au module Rapports. Pour plus d’informations sur la création d’une nouvelle définition de rapport dynamique, consultez Création d’un nouveau rapport dynamique. En outre, votre développeur de site ou votre administrateur système peuvent créer des rapports personnalisés à leur gré.

Remarque

  • Votre administrateur système doit effectuer plusieurs tâches avant que vous ne puissiez exécuter des rapports. Pour plus d’informations, consultez Définition de l’analyse commerciale.

Cette section contient les rubriques suivantes :

  • Rapports de publicité

  • Rapports de vente de produits

  • Rapports sur l’utilisation du Web

  • Rapports d’utilisateur

  • Rapports de visite

  • Rapports de diagnostic

  • Rapports de chaîne de requête

  • Propriétés de rapport

  • Gestion du temps dans les rapports


Rapports de publicité

Vous pouvez utiliser le module Rapports pour exécuter des rapports et analyser les données sur la publicité.

Insertion de publicité

Portée et fréquence d’accès à la publicité par jour

Portée et fréquence d’accès à la publicité par campagne

Portée et fréquence d’accès à la publicité par campagne

Synthèse de l’élément de la campagne

Synthèse de l’événement de la campagne

Insertion de publicité (dynamique)

Utilisez le rapport Insertion de publicité pour déterminer si les publicités ont été placées efficacement sur votre site. Ce rapport affiche une synthèse de l’activité de la campagne marketing selon l’emplacement sur votre site. Ce rapport ne collecte des données que pour les visites terminées.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Événements de comptabilisation | Campagne marketing Événements Groupe de pages Site

Revenir aux rapports de publicité

Portée et fréquence d’accès à la publicité par jour (dynamique)

Utilisez le rapport Portée et fréquence d’accès à la publicité par jour pour connaître le comportement des utilisateurs par rapport aux éléments de campagne sur votre site. Ce rapport affiche l’activité des utilisateurs uniques par jour, pour chaque élément de la campagne. Ce rapport ne fournit des données que pour les visites terminées.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateurs | Dimensions
Événements Fréquence Portée | Campagne marketing Date Utilisateurs distincts Événement Site

Revenir aux rapports de publicité

Portée et fréquence d’accès à la publicité par élément de la campagne (dynamique)

Utilisez le rapport Portée et fréquence d’accès à la publicité par élément de la campagne pour connaître le comportement des utilisateurs par rapport aux éléments de campagne, au fil du temps. Ce rapport affiche l’activité des utilisateurs uniques par jour, pour chaque élément de la campagne au fil du temps. Ce rapport ne fournit des données que pour les visites terminées.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateurs | Dimensions
Événements Fréquence Portée | Campagne marketing Élément de la campagne Date Utilisateurs distincts Événement Site

Revenir aux rapports de publicité

Portée et fréquence d’accès à la publicité par campagne (dynamique)

Utilisez le rapport Portée et fréquence d’accès à la publicité par campagne pour connaître le comportement des utilisateurs par rapport aux campagnes marketing. Ce rapport affiche l’activité des utilisateurs uniques par jour, pour chaque campagne marketing au fil du temps. Ce rapport ne fournit des données que pour les visites terminées.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateurs | Dimensions
Événements Fréquence Portée | Campagne marketing Utilisateurs distincts Événement Site

Revenir aux rapports de publicité

Synthèse de l’élément de la campagne (dynamique)

Utilisez le rapport Synthèse de l’élément de la campagne pour déterminer l’efficacité des campagnes marketing sur votre site. Ce rapport affiche une synthèse de l’activité par élément de la campagne sur votre site. Ce rapport ne fournit des données que pour les visites terminées.

Ce rapport affiche une synthèse de l’activité de la campagne marketing sur votre site. Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateurs | Dimensions
% de suivi de clic sur sommaire Demandes de publicité restantes Clics Demandes Rendement | Annonceur Campagne marketing Élément de la campagne Portée Site

Revenir aux rapports de publicité

Synthèse de l’événement de la campagne (dynamique)

Utilisez le rapport Synthèse de l’événement de la campagne pour déterminer l’efficacité des campagnes marketing sur votre site. Ce rapport affiche une synthèse de l’activité de l’événement de la campagne sur votre site. Ce rapport ne collecte des données que pour les visites terminées.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Événements de comptabilisation | Annonceur Événement Site

Revenir aux rapports de publicité

Voir aussi

À propos de Analyse

Rapports Commerce Server

Définition de l’analyse commerciale

Recherche de rapports

Exécution de rapports

Affichage de rapports dynamiques

Affichage de rapports statiques

Impression de rapports


Rapports sur les ventes de produits

Vous pouvez utiliser le module Rapports pour exécuter des rapports et analyser les données sur les ventes de produits.

Itinéraire d’achat de l’acheteur

Ventes client

Synthèse des dépenses du client

Événements de commande

Ventes produits

Évènements du panier d’achat

Itinéraire d’achat de l’acheteur (dynamique)

Utilisez le rapport Itinéraire d’achat de l’acheteur pour connaître les schémas de visite et d’achat des utilisateurs. Ce rapport affiche le nombre de nouveaux acheteurs et d’acheteurs fréquents, ainsi que le nombre moyen de visites pour chaque achat par acheteur.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateurs | Dimensions
Compter les ventes Comptage des visites Comptage des visiteurs Visites par achat | Type d’acheteur Site

Revenir aux rapports sur les ventes de produits

Ventes client (statique)

Utilisez le rapport Ventes client pour visualiser les détails ainsi que le total des ventes et des commandes relatifs à un client. Ce rapport peut être exporté vers le Gestionnaire de listes ; les informations qu’il fournit permettent de cibler des clients à l’aide de campagnes marketing en ligne, telles que des promotions par publipostage.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Commandes Ventes | Adresse électronique Prénom Nom Identificateur d’utilisateur

Revenir aux rapports sur les ventes de produits

Synthèse des dépenses du client (dynamique)

Utilisez le rapport Synthèse des dépenses du client pour connaître le volume et le chiffre d’affaires des ventes par client. Ce rapport affiche les données des ventes par nom d’ouverture de session pour les utilisateurs inscrits, et par identificateur d’utilisateur invité pour les utilisateurs invités.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Quantité Chiffre d’affaires | Client Date Produits Site

Revenir aux rapports sur les ventes de produits

Événements de commande (dynamique)

Utilisez le rapport Événements de commande pour connaître les événements liés au passage d’une commande, par exemple, un utilisateur qui clique sur le bouton Valider pour indiquer qu’une commande est terminée. Ce rapport affiche le nombre d’événements de commande soumis par les utilisateurs inscrits et les utilisateurs invités, chaque heure.

Remarque

  • La dimension Semaine de l’année permet de calculer les dimensions de date contenues dans ce rapport. Pour les années qui commencent un samedi, la dimension Semaine de l’année renvoie la semaine 53 pour la dernière semaine.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Événements de comptabilisation | Date Événements Heure de la journée Site Type d’utilisateur

Revenir aux rapports sur les ventes de produits

Ventes produits (dynamique)

Utilisez le rapport Ventes produits pour connaître le volume et le chiffre d’affaires des ventes de produits par date. Ce rapport affiche la quantité et le chiffre d’affaires total pour chaque produit vendu.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Quantité Chiffre d’affaires | Date Site

Revenir aux rapports sur les ventes de produits

Événements du panier d’achat (dynamique)

Utilisez le rapport Événements du panier d’achat pour connaître le comportement de l’utilisateur concernant l’activité du panier d’achat. Ce rapport affiche les produits et la fréquence à laquelle ils ont été ajoutés et supprimés du panier d’achat.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Nombre | Date Événements Site

Revenir aux rapports sur les ventes de produits

Voir aussi

À propos de Analyse

Rapports Commerce Server

Définition de l’analyse commerciale

Recherche de rapports

Exécution de rapports

Affichage de rapports dynamiques

Affichage de rapports statiques

Impression de rapports


Rapports sur l'utilisation du Web

Rapports sur l’utilisation du Web

Le module Rapports vous permet d’exécuter des rapports pour analyser l’utilisation du site, les adresses URL de référence et les demandes de données.

Répertoires

Analyse des chemins d’entrée

Domaines de référence les plus demandés par nombre de demandes

Pages les plus demandées

Synthèse de l’utilisation par jour de la semaine

Synthèse de l’utilisation par heure de la journée

Synthèse de l’utilisation par semaine de l’année

Tendances d’utilisation

Visites par navigateur, version et système d’exploitation

Répertoires (dynamique)

Utilisez le rapport Répertoires pour déterminer les niveaux de répertoires d’URI (Uniform Resource Identifier) les plus visités sur un total de 5 000. Ce rapport affiche l’activité des six premiers niveaux de répertoires d’URI.

Remarque

  • Pour voir d’autres URI d’informations que les 5 000 URI les plus demandés, par exemple, les URI les moins demandés, demandez à votre administrateur système de modifier la procédure CSDW_MakeAggRequestsByUri stockée dans la base de données du site.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Comptage des accès | Date Répertoire de niveau Demande? Site

Revenir aux rapports sur l’utilisation du Web

Analyse des chemins d’entrée (statique)

Utilisez le rapport Analyse des chemins d’entrée pour déterminer les chemins d’entrée les plus fréquemment utilisés pour accéder à votre site. Ce rapport affiche les six premiers niveaux des répertoires du chemin d’accès.

Remarque

  • Le rapport Analyse des chemins d’entrée effectue une analyse approfondie du mode d’entrée des utilisateurs sur votre site. Il s’agit d’une tâche intensive qui peut demander beaucoup de temps pour s’exécuter.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Nombre | URI 1 URI 2 URI 3 URI 4 URI 5 URI 6

Revenir aux rapports sur l’utilisation du Web

Domaines de référence les plus demandés par nombre de requêtes (statique)

Utilisez le rapport Domaines de référence les plus demandés par nombre de demandes pour connaître les sites à partir desquels les utilisateurs accèdent à votre site. Ce rapport affiche une liste des domaines de référence les plus demandés par nombre de demandes.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Domaine | % de demandes Nombre de demandes

Revenir aux rapports sur l’utilisation du Web

Pages les plus demandées (statique)

Utilisez le rapport Pages les plus demandées pour connaître les pages les plus demandées. Ce rapport affiche une liste des 5 000 pages les plus demandées, y compris les chaînes de requête, par nombre de demandes.

Remarque

  • Pour voir d’autres pages que les 5 000 pages les plus demandées, par exemple, les pages les moins demandées, demandez à votre administrateur système de modifier la procédure stockée CSDW_MakeAggRequestsByUri située sous Procédures stockées dans Data Warehouse.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Domaine | % de demandes Nombre de demandes

Revenir aux rapports sur l’utilisation du Web

Synthèse de l’utilisation par jour de la semaine (dynamique)

Utilisez le rapport Synthèse de l’utilisation par jour de la semaine pour afficher un graphique croisé dynamique indiquant le nombre moyen de demandes de pages par jour de la semaine.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateurs | Dimensions
Nombre moyen de demandes par jour de la semaine Nombre moyen de visites par jour de la semaine | Date Jour de la semaine Site

Revenir aux rapports sur l’utilisation du Web

Synthèse de l’utilisation par heure de la journée (dynamique)

Utilisez le rapport Synthèse de l’utilisation par heure de la journée pour afficher un graphique croisé dynamique indiquant le nombre moyen de demandes de pages par heure de la journée.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateurs | Dimensions
Nombre moyen de demandes par heure de la journée Nombre moyen de visites par heure de la journée | Date Heure de la journée Site

Revenir aux rapports sur l’utilisation du Web

Synthèse de l’utilisation par semaine de l’année (dynamique)

Utilisez le rapport Synthèse de l’utilisation par semaine de l’année pour afficher un graphique croisé dynamique indiquant le nombre moyen de demandes de pages par semaine.

Remarque

  • Pour les années qui commencent un samedi, la dimension Semaine de l’année renvoie la semaine 53 pour la dernière semaine.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateurs | Dimensions
Nombre moyen de demandes par semaine de l’année Nombre moyen de visites par semaine de l’année | Date Site Semaine de l’année

Revenir aux rapports sur l’utilisation du Web

Tendances d’utilisation (dynamique)

Utilisez le rapport Tendances d’utilisation pour obtenir une synthèse des demandes de pages, des utilisateurs et des visites au quotidien.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateurs | Dimensions
Demandes Utilisateurs Visites | Date Site Type d’utilisateur

Revenir aux rapports sur l’utilisation du Web

Visites par navigateur, version et système d’exploitation (dynamique)

Utilisez le rapport Visites par navigateur, version et système d’exploitation pour déterminer les navigateurs les plus fréquemment utilisés pour visiter votre site. Par exemple, si vos utilisateurs possèdent des navigateurs anciens, vous pouvez éviter d’incorporer des fonctionnalités telles que les cadres, ou des effets multimédias, lors de la conception du site. Ce rapport affiche les navigateurs, versions et systèmes d’exploitation exécutés par les utilisateurs pour accéder à votre site.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Visites | Navigateur Date Nom du système d’exploitation Site Version Nombre de visites

Revenir aux rapports sur l’utilisation du Web

Voir aussi

À propos de Analyse

Rapports Commerce Server

Définition de l’analyse commerciale

Recherche de rapports

Exécution de rapports

Affichage de rapports dynamiques

Affichage de rapports statiques

Impression de rapports


Rapports d'utilisateur

Rapports d’utilisateur

Vous pouvez utiliser le module Rapports pour exécuter des rapports et analyser les données sur les utilisateurs.

Utilisateurs et visites distincts par semaine

Utilisateurs distincts par jour

Nouveaux utilisateurs inscrits

Propriétés de l’utilisateur inscrit

Utilisateurs inscrits par date d’inscription

Jours avant inscription de l’utilisateur

Taux d’inscription des utilisateurs

Tendances des utilisateurs

Utilisateurs et visites distincts par semaine (dynamique)

Utilisez le rapport Utilisateurs et visites distincts par semaine pour déterminer si un petit nombre de personnes visitent votre site à de nombreuses reprises, ou si de nombreuses personnes visitent votre site à une seule reprise. Ce rapport affiche le nombre d’utilisateurs uniques visitant votre site, et la fréquence à laquelle votre site a été visité au cours d’une semaine particulière. Ce rapport établit une corrélation entre le nombre d’utilisateurs uniques et le nombre de visites effectuées par chacun d’eux.

Si vous réduisez la dimension de la date, vous pouvez voir le nombre d’utilisateurs hebdomadaires uniques pour la période (année). Ce rapport ne fournit pas le nombre de visites d’un utilisateur unique par an, car il ne comptabilise que les visiteurs hebdomadaires uniques. Par exemple, si un utilisateur effectue une visite le mercredi d’une semaine précise, et qu’il renouvelle sa visite le vendredi de la semaine suivante de la même année, cet utilisateur est comptabilisé comme un utilisateur unique pour chacune des deux semaines. Le nombre d’utilisateurs uniques pour l’année est égal à deux, même si les deux visites ont été effectuées par le même utilisateur.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateurs | Dimensions
Utilisateurs Visites | Site Utilisateurs uniques Type d’utilisateur Visites Numéro de semaine Année

Revenir aux rapports d’utilisateur

Utilisateurs distincts par jour (dynamique)

Utilisez le rapport Utilisateurs distincts par jour pour déterminer le nombre d’utilisateurs uniques visitant votre site un jour précis. Si vous réduisez la dimension de la date, vous pouvez voir le nombre d’utilisateurs quotidiens uniques pour la période (semaine ou année). Ce rapport ne fournit pas le nombre de visites d’un utilisateur unique par semaine ou par an, car il ne comptabilise que les visiteurs quotidiens uniques. Par exemple, si un utilisateur effectue une visite sur deux jours pendant une semaine donnée, cet utilisateur est comptabilisé comme un utilisateur unique pour chacun de ces deux jours, et le nombre d’utilisateurs uniques pour la semaine est égal à deux, même si les deux visites ont été effectuées par le même utilisateur.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Utilisateurs | Date Site Utilisateurs Type d’utilisateur

Revenir aux rapports d’utilisateur

Nouveaux utilisateurs inscrits (statique)

Utilisez le rapport Nouveaux utilisateurs inscrits pour identifier les nouveaux utilisateurs inscrits. Ces données peuvent servir à créer des campagnes promotionnelles spécifiques. Exportez ce rapport vers le Gestionnaire de listes pour cibler les nouveaux utilisateurs inscrits à l’aide de campagnes marketing en ligne, telles que les promotions par publipostage.

Pour plus d’informations sur l’exportation de rapports statiques, consultez Exportation d’un rapport statique.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateurs | Dimensions
Il n’y a pas d’indicateurs dans ce rapport. | Date d’inscription Date de création Adresse électronique Prénom Nom Identificateur d’utilisateur

Revenir aux rapports d’utilisateur

Propriétés de l’utilisateur inscrit (statique)

Utilisez le rapport Propriétés de l’utilisateur inscrit pour connaître les informations fournies par les utilisateurs inscrits. Ces données peuvent servir à créer des campagnes promotionnelles spécifiques. Exportez ce rapport vers le Gestionnaire de listes pour cibler les utilisateurs inscrits à l’aide de campagnes marketing en ligne, telles que les promotions par publipostage.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateurs | Dimensions
Il n’y a pas d’indicateurs dans ce rapport. | Date de création Date d’inscription Adresse électronique Prénom Nom Identificateur d’utilisateur

Revenir aux rapports d’utilisateur

Utilisateurs inscrits par date d’inscription (dynamique)

Utilisez le rapport Utilisateurs inscrits par date d’inscription pour connaître le comportement de vos utilisateurs en matière d’inscription. Ce rapport affiche l’historique des inscriptions des utilisateurs de votre site, pour une période particulière (année, trimestre, mois et jour).

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Utilisateurs inscrits | Date Utilisateurs inscrits Site

Revenir aux rapports d’utilisateur

Jours avant inscription de l’utilisateur (dynamique)

Utilisez le rapport Jours avant inscription de l’utilisateur pour connaître le nombre moyen de jours écoulés avant que les utilisateurs invités ne s’inscrivent sur votre site.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Nombre moyen des jours écoulés avant l’inscription | Nombre moyen des jours écoulés DateCreated Site

Revenir aux rapports d’utilisateur

Taux d’inscription des utilisateurs (dynamique)

Utilisez le rapport Taux d’inscription des utilisateurs pour déterminer si vous avez réussi à convaincre les utilisateurs invités de s’inscrire sur votre site. Ce rapport affiche le temps écoulé entre la date à laquelle les utilisateurs ont accédé à votre site pour la première fois, en tant qu’invités, et la date où ils se sont inscrits.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Utilisateurs inscrits | Jours écoulés Utilisateurs inscrits Site

Revenir aux rapports d’utilisateur

Tendances des utilisateurs (dynamique)

Utilisez le rapport Tendances des utilisateurs pour déterminer si vous avez réussi à fidéliser les utilisateurs. Ce rapport affiche par date les types d’utilisateurs (nouveaux et habitués) qui visitent votre site.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateurs | Dimensions
Nouveaux utilisateurs % de répétition des utilisateurs Répétition des utilisateurs Utilisateurs | Date Site Semaine de l’année

Revenir aux rapports d’utilisateur

Voir aussi

À propos de Analyse

Rapports Commerce Server

Définition de l’analyse commerciale

Recherche de rapports

Exécution de rapports

Affichage de rapports dynamiques

Affichage de rapports statiques

Impression de rapports


Rapports de visite

Vous pouvez utiliser le module Rapports pour exécuter des rapports et analyser les données sur les visites.

Pages d’entrée

Pages de sortie

Statistiques d’activités générales

Tendances des visites des utilisateurs

Pages d’entrée (dynamique)

Utilisez le rapport Pages d’entrée pour déterminer les 5 000 pages de votre site que les utilisateurs sont susceptibles de visiter en premier. Ce rapport affiche les 5 000 URI les plus fréquemment utilisés pour entrer sur votre site ainsi que le nombre d’utilisations de chacun d’eux.

Remarque

  • Pour voir d’autres URI d’informations que les 5 000 URI les plus fréquemment utilisés, par exemple, les URI les moins utilisés, demandez à votre administrateur système de modifier la procédure CSDW_MakeAggRequestsByUri stockée dans la base de données du site.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Comptage des visites | Date Site URI

Revenir aux rapports de visite

Pages de sortie (dynamique)

Utilisez le rapport Pages de sortie pour déterminer les pages à partir desquelles les utilisateurs sont susceptibles de quitter votre site. Ce rapport affiche les 5 000 URI les plus fréquemment utilisés pour quitter votre site ainsi que le nombre d’utilisations de chacun d’eux.

Remarque

  • Pour voir autre chose que les 5 000 URI les plus fréquemment utilisés, par exemple, les pages les moins demandées, demandez à votre administrateur système de modifier la procédure CSDW_MakeAggRequestsByUri stockée dans la base de données du site.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Comptage des visites | Date Site URI

Revenir aux rapports de visite

Statistiques d’activités générales (dynamique)

Utilisez le rapport Statistiques d’activités générales pour connaître rapidement l’activité de votre site. Ce rapport affiche les demandes moyennes par visite, la durée de visite moyenne ainsi que le nombre de demandes et de visites dans le temps.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateurs | Dimensions
Durée moyenne (secondes) par visite Nombre moyen de demandes par visite Demandes Visites | Date Site

Revenir aux rapports de visite

Tendances des visites des utilisateurs (dynamique)

Utilisez le rapport Tendances des visites des utilisateurs pour connaître le nombre de visites effectuées sur votre site dans le temps. Ce rapport affiche le nombre total des visites, ainsi les visites par utilisateurs inscrits et non inscrits.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Visites | Date Site Type d’utilisateur

Revenir aux rapports de visite

Voir aussi

À propos de Analyse

Rapports Commerce Server

Définition de l’analyse commerciale

Recherche de rapports

Exécution de rapports

Affichage de rapports dynamiques

Affichage de rapports statiques

Impression de rapports


Rapports de diagnostic

Vous pouvez utiliser le module Rapports pour exécuter des rapports et analyser les données de diagnostic.

Synthèse de la bande passante

Tendances de la bande passante

Nombre d’accès par état HTTP

Nombre d’accès par état Win32

Synthèse de la bande passante (dynamique)

Utilisez le rapport Synthèse de la bande passante pour afficher un graphique croisé dynamique de la consommation hebdomadaire de bande passante pour votre site.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Bande passante (Mo) | Date Site

Revenir aux rapports de diagnostic

Tendances de la bande passante (dynamique)

Utilisez le rapport Tendances de la bande passante pour connaître la consommation quotidienne de bande passante pour votre site.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Bande passante (Mo) | Date Jour de la semaine Site

Revenir aux rapports de diagnostic

Nombre d’accès par état HTTP (dynamique)

Utilisez le rapport Nombre d’accès par état HTTP pour connaître et diagnostiquer les problèmes auxquels les utilisateurs peuvent être confrontés avec les 5 000 pages les plus demandées sur votre site. Ce rapport affiche les messages d’erreur HTTP associés aux 5 000 pages les plus demandées sur votre site Web.

Remarque

  • Pour voir d’autres pages que les 5 000 pages les plus demandées, par exemple, les pages les moins demandées, demandez à votre administrateur système de modifier la procédure CSDW_MakeAggRequestsByUri stockée dans la base de données du site.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Comptage | Date État HTTP Site Uri

Revenir aux rapports de diagnostic

Nombre d’accès par état Win32 (dynamique)

Utilisez le rapport Nombre d’accès par état Win32 pour connaître et diagnostiquer les problèmes auxquels les utilisateurs peuvent être confrontés avec les 5 000 pages les plus demandées sur votre site. Ce rapport affiche les messages d’erreur Win32 associés aux 5 000 pages les plus demandées sur votre site Web.

Remarque

  • Pour voir d’autres pages que les 5 000 pages les plus demandées, par exemple, les pages les moins demandées, demandez à votre administrateur système de modifier la procédure CSDW_MakeAggRequestsByUri stockée dans la base de données du site.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Count | Date Site État Win32

Revenir aux rapports de diagnostic

Voir aussi

À propos de Analyse

Rapports Commerce Server

Définition de l’analyse commerciale

Recherche de rapports

Exécution de rapports

Affichage de rapports dynamiques

Affichage de rapports statiques

Impression de rapports


Rapports de chaîne de requête

Vous pouvez utiliser le module Rapports pour exécuter des rapports et analyser les données sur la chaîne de requête.

Chaînes de requête (valeurs multiples)

Chaînes de requête (valeur unique)

Chaînes de requête (valeurs multiples) (statique)

Utilisez le rapport Chaînes de requête (valeurs multiples) pour déterminer les informations recherchées par les utilisateurs sur votre site. Ce rapport affiche le nombre de demandes de chaînes de requête configurées pour être analysées par le système. Par exemple, l’administrateur système peut configurer une chaîne de requête à valeurs multiples pour suivre les stocks auxquels les utilisateurs s’intéressent le plus.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Demandes | Nom Valeur

Revenir aux rapports de chaîne de requête

Chaînes de requête (valeurs uniques) (statique)

Utilisez le rapport Chaînes de requête (valeur unique) pour déterminer les informations recherchées par les utilisateurs sur votre site. Ce rapport affiche le nombre de demandes de chaînes de requête configurées pour être analysées par le système. Par exemple, l’administrateur système peut configurer une chaîne de requête à valeur unique pour suivre la fréquence à laquelle les utilisateurs entrent une chaîne de recherche particulière sur votre site. Vous pouvez ensuite utiliser ce rapport pour analyser les chaînes de recherche les plus usuelles sur votre site.

Le tableau suivant répertorie les indicateurs et les dimensions contenus dans ce rapport.

Indicateur | Dimensions
Demandes | Nom Valeur

Revenir aux rapports de diagnostic

Voir aussi

À propos de Analyse

Rapports Commerce Server

Définition de l’analyse commerciale

Recherche de rapports

Exécution de rapports

Affichage de rapports dynamiques

Affichage de rapports statiques

Impression de rapports


Propriétés de rapport

Vous utilisez les Propriétés du rapport pour rechercher des détails sur un rapport avant de l’exécuter. L’affichage d’une requête d’un rapport, à partir des propriétés du rapport, permet de déterminer si une définition de rapport particulière va renvoyer les données souhaitées. Cela est particulièrement important si vous exécutez un rapport statique sur un vaste ensemble de données, par exemple, l’exécution du rapport Propriétés de l’utilisateur inscrit pour 10 000 000 utilisateurs. Les rapports statiques exécutés sur de vastes ensembles de données peuvent parfois nécessiter un temps de traitement très long.

Les propriétés d’un rapport rassemblent des informations utiles, telles que le nom, la description, le type, la date de création et la requête sur laquelle le rapport est basé. Vous ne pouvez pas modifier les propriétés d’un rapport. Pour plus d’informations sur l’affichage des propriétés d’un rapport, consultez Affichage des propriétés de rapport.

Le tableau suivant décrit les propriétés qui peuvent être affichées dans le module Rapports.

Propriété | Description
Nom | Nom du rapport.
Description | Description du rapport.
Type de rapport | Type du rapport.
Date de création | Date à laquelle le rapport a été créé.
Créé par | Nom de la personne qui a créé le rapport.
Date de modification | Date de la dernière modification du rapport.
Modifié par | Nom de la personne qui a effectué la dernière modification.
Requête | Requête en langage de requête structuré (SQL, Structured Query Language) ou requête d’expressions multidimensionnelles (MDX) à exécuter pour le rapport. Les requêtes ne sont pas disponibles pour les rapports OLAP (Online Analytical Processing) dynamiques.
Exporter sous forme de liste de publipostage ? | Indique si les données du rapport peuvent être exportées vers le Gestionnaire de listes sous forme de liste de publipostage.
Exporter sous forme de liste des utilisateurs ? | Indique si les données du rapport peuvent être exportées vers le Gestionnaire de listes sous forme de liste d’utilisateurs.

Voir aussi

À propos de Analyse

Rapports Commerce Server

Création d’un nouveau rapport dynamique


Gestion du temps dans les rapports

Tous les rapports Commerce Server présentent des données sur le comportement de l’utilisateur en fonction de la notion de temps. Les rapports sur l’activité hebdomadaire utilisent toujours le jour de démarrage par défaut de la semaine (dimanche généralement) dans la version localisée de SQL Server.


Définition de l'analyse commerciale

Définition de l’analyse commerciale

Les modules Analyse vous permettent d’exécuter des rapports et d’afficher des modèles de segments pour analyser l’activité des utilisateurs sur votre site Web. Plusieurs tâches doivent être effectuées pour permettre l’analyse des données sur l’activité des utilisateurs. La figure suivante montre les processus nécessaires pour pouvoir soumettre les données aux processus d’analyse de Commerce Server 2000.

Identification de segments
Afficher les modèles de segments
Créer des modèles de segments
Définition de l'analyse commerciale
Installer
Commerce Server
Installer
Business Desk
Rapports
Exécuter des rapports
Exécuter la tâche de préparation des rapports
Importer des données dans
le Data Warehouse
Configurer le
Data Warehouse

Pour définir l’analyse commerciale

  1. Votre administrateur système installe Commerce Server. Pour obtenir des instructions sur l’installation de Commerce Server, consultez http://support.microsoft.com/support/commerceserver/2000/install/default.asp

  2. Installez le client Commerce Server Business Desk sur les ordinateurs qui doivent servir à effectuer les tâches d’analyse commerciale.

  3. Votre administrateur système configure Data Warehouse. Pour plus d’informations sur la configuration de Data Warehouse, consultez « Définition des propriétés d’un Data Warehouse » dans l’aide de Commerce Server 2000. Votre administrateur système peut également attribuer aux utilisateurs des rôles spécifiques de base de données SQL Server pour permettre à certains utilisateurs de lire et d’enregistrer des rapports tandis que les autres utilisateurs ne peuvent que les lire. Pour plus d’informations sur la création de ces rôles, consultez « Définition des autorisations d’un Data Warehouse » dans l’aide de Commerce Server 2000.

  4. Votre administrateur système importe les données sur l’activité des utilisateurs sous forme de données de journaux Web, de transaction, d’utilisateur, de campagne marketing et de catalogue, dans Data Warehouse. Pour plus d’informations sur l’importation de données dans Data Warehouse, consultez « Importation de données dans Data Warehouse » dans l’aide de Commerce Server 2000.

  5. Votre administrateur système exécute le processus Préparation du rapport pour charger les cubes OLAP contenant les données dans Data Warehouse. Les cubes OLAP sont installés lors de la décompression d’un site. Ces cubes OLAP organisent et stockent les données pour optimiser leur récupération par les processus d’analyse. Pour plus d’informations sur l’exécution du processus Préparation du rapport, consultez « Préparation à la création de rapports » dans l’aide de Commerce Server 2000.

Votre administrateur système construit les modèles de segments à l’aide des données contenues dans Data Warehouse. Pour plus d’informations sur la construction des modèles de segments, consultez « Construction d’un nouveau modèle d’analyse » dans l’aide de Commerce Server 2000.

  6. Analysez l’activité des utilisateurs sur votre site Web en exécutant les rapports d’analyse et en affichant les modèles de segments. Pour plus d’informations sur l’exécution de rapports, consultez Exécution de rapports. Pour plus d’informations sur l’affichage de modèles de segments, consultez Affichage d’un modèle de segment.

Voir aussi

Recherche de rapports

Exécution de rapports

Affichage d’un modèle de segment


Recherche de rapports

Le module Rapports permet de rechercher des rapports dynamiques et statiques.

Vous pouvez rechercher un rapport ou un groupe de rapports particulier dans la liste des rapports. Utilisez le volet Rechercher pour obtenir une liste de tous les rapports disponibles, ou pour affiner votre recherche à l’aide des propriétés du rapport. La liste résultante contient tous les rapports qui répondent à vos critères de recherche. Cette liste contient quatre colonnes (Nom, Catégorie, Créé par et Type), chacune correspondant aux quatre propriétés de rapport possédant ces noms. Vous pouvez trier la liste résultante par nom, par catégorie, par créateur et par type de propriétés du rapport.

Lorsque vous recherchez des rapports par leur nom, leur catégorie ou leur auteur, le module Rapports renvoie toutes les entrées qui correspondent ou commencent par la chaîne de recherche.

Pour afficher une liste de tous les rapports disponibles

Pour rechercher un rapport à partir de ses propriétés

Pour trier la liste des rapports

Pour afficher une liste de tous les rapports disponibles

  1. Dans Analyse, cliquez sur Rapports, puis cliquez dans la barre d’outils sur Rechercher.

  2. Dans la liste déroulante Rechercher par, sélectionnez Tous les rapports, puis cliquez sur Rechercher.

Une liste de tous les rapports disponibles s’affiche dans l’écran Rapports.

Pour rechercher un rapport à partir de ses propriétés

  1. Dans Analyse, cliquez sur Rapports, puis cliquez dans la barre d’outils sur Rechercher.

  2. Dans la liste déroulante Rechercher par, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Rechercher un rapport en fonction de son nom.
    Catégorie | Rechercher un rapport en fonction de la catégorie qui l’inclut.
    Créé par | Rechercher un rapport en fonction de son auteur.
    Type | Rechercher un rapport en fonction de son type, dynamique ou statique.
    Toute information | Rechercher un rapport en fonction de n’importe quelle combinaison de critères de recherche (Nom, Catégorie, Créé par et Type).
    Tous les rapports | Inclure l’ensemble des rapports disponibles.

  3. Dans la zone Valeur de la propriété qui s’affiche ensuite, tapez ou sélectionnez dans la liste la valeur spécifique d’une ou plusieurs des propriétés sélectionnées (Nom, Catégorie, Créé par et Type).

Si vous avez sélectionné l’option Toute information, des zones de texte s’affichent pour quatre propriétés : Nom, Catégorie, Créé par et Type.

  4. Dans les zones de valeurs de propriétés appropriées, tapez ou sélectionnez des valeurs spécifiques pour une ou plusieurs des propriétés.

  5. Cliquez sur Rechercher.

Une liste de tous les rapports correspondant à vos critères de recherche s’affiche dans l’écran Rapports.

Pour trier la liste des rapports

  • Dans Analyse, cliquez sur Rapports, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Cliquer pour effectuer un tri selon le nom du rapport. Par défaut, la liste des rapports est triée dans l’ordre alphabétique.
    Catégorie | Cliquer pour effectuer un tri selon la catégorie du rapport.
    Créé par | Cliquer pour effectuer un tri selon la personne qui a créé le rapport.
    Type | Cliquer pour effectuer un tri selon le type du rapport.

Voir aussi

À propos de Analyse

Rapports Commerce Server

Exécution de rapports

Affichage des propriétés de rapport


Exécution de rapports

Le module Rapports permet d’exécuter à la fois des rapports dynamiques et des rapports statiques. Votre système administrateur doit exécuter plusieurs tâches pour que vous puissiez exécuter des rapports. Par exemple, l’administrateur système doit importer à intervalles réguliers les données dans Data Warehouse et exécuter le processus de préparation de rapport pour assurer que les données les plus actuelles se trouvent dans Data Warehouse. (Si nécessaire, votre administrateur système vous attribue également les autorisations appropriées pour enregistrer et visualiser un rapport.) Pour plus d’informations, consultez Définition de l’analyse commerciale.

Remarque

  • Lorsque vous ouvrez le module Rapports pour la première fois, l’affichage par défaut propose une recherche de « Tous les rapports ». Vous pouvez réduire la liste des rapports en utilisant des critères de recherche plus spécifiques.

Pour exécuter un rapport dynamique

Pour exécuter un rapport statique

Pour exécuter un rapport dynamique

  • Dans Analyse, cliquez sur Rapports. Dans la liste des rapports disponibles, sélectionnez le rapport dynamique à exécuter, puis cliquez dans la barre d’outils sur Exécuter.

Le rapport dynamique s’affiche sous forme de tableau croisé dynamique dans une nouvelle fenêtre du navigateur.

Remarques

  • Si votre tableau croisé dynamique n’est pas visible, cliquez sur Afficher le tableau croisé dynamique.

  • Commerce Server 2000 prend en charge jusqu’à 250 000 membres par dimension dans les rapports dynamiques. Si l’ensemble de données du rapport possède plus de 250 000 membres dans une dimension, le rapport s’affiche dans la fenêtre du navigateur sans contenir de données.

Pour exécuter un rapport statique

  1. Dans Analyse, cliquez sur Rapports. Dans la liste des rapports disponibles, sélectionnez le rapport statique à exécuter, puis cliquez dans la barre d’outils sur Exécuter.

  2. Dans la boîte de dialogue Exécuter un rapport, dans la section Nom du site, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Opérande | Déterminer le site pour lequel le rapport doit s’exécuter en sélectionnant dans la liste déroulante un opérande (Tous, Égal, Est différent de, Comme, Différent de).
    Valeur du paramètre | Cette zone contient le nom du site en tant que valeur par défaut. Si vous souhaitez exécuter le rapport pour un autre site, tapez le nom de ce site. Si le nom saisi ne correspond pas à un nom de site Commerce Server, le rapport échoue ou ne contient aucune donnée.

  3. Dans la boîte de dialogue Exécuter un rapport, ajustez les paramètres selon vos besoins. Tous les paramètres sont spécifiques au rapport.

    Remarque

    • Vous pouvez afficher la requête, le nom du site, le nom du champ et les balises de paramètre du rapport pour le nombre d’utilisateurs et le nom du site, en cliquant dans la boîte de dialogue Exécuter un rapport sur le bouton Options avancées.
  4. Cliquez sur OK.

Le rapport statique s’exécute et, lorsqu’il est terminé, s’affiche dans le module Analyse de rapports.

Attention

  • Si de nombreux rapports statiques s’exécutent simultanément, cela peut ralentir le temps de traitement, voire bloquer Business Desk.

Voir aussi

À propos de Analyse

Rapports Commerce Server

Recherche de rapports


Affichage de rapports dynamiques

Vous pouvez afficher un rapport dynamique sous forme de tableau croisé dynamique ou de graphique croisé dynamique dans une fenêtre du navigateur.

Pour afficher un rapport dynamique sous forme de graphique croisé dynamique

Pour afficher un rapport dynamique sous forme de tableau croisé dynamique

Pour afficher un rapport dynamique sous forme de graphique croisé dynamique

  1. Dans Analyse, cliquez sur Rapports, puis sélectionnez le rapport dynamique à exécuter.

  2. Dans l’écran Rapports, cliquez sur Exécuter dans la barre d’outils pour exécuter le rapport dynamique.

    Le rapport s’affiche dans une nouvelle fenêtre du navigateur sous forme de tableau croisé dynamique ou de graphique croisé dynamique.

    Remarque

    • La première fois que vous exécutez un rapport dynamique à partir de Commerce Server Business Desk, il vous est demandé si vous possédez une copie enregistrée de Microsoft Office installée sur l’ordinateur où s’exécute Business Desk. S’il n’y a pas de copie enregistrée de Microsoft Office installée sur cet ordinateur, vous ne pourrez pas exporter de rapports dynamiques vers Microsoft Excel, ni modifier le rapport ou accéder à l’aide de la liste de tableau croisé dynamique Microsoft. Vous pourrez obtenir l’affichage standard des données du rapport.
  3. Dans la fenêtre < Analyse de rapport > du navigateur, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Afficher le graphique | Afficher le graphique croisé dynamique. Masquer le graphique croisé dynamique.
    Afficher la légende | Afficher une légende pour votre graphique croisé dynamique. Masquer la légende.
    Permuter les séries | Modifier la présentation des données dans le graphique croisé dynamique. L’utilisation du bouton Permuter les séries produit le même effet que la permutation des dimensions en ligne et en colonne dans le tableau croisé dynamique.
    Liste déroulante : type de graphique | Sélectionner un nouveau type de graphique croisé dynamique dans la liste déroulante.

Pour afficher un rapport dynamique sous forme de tableau croisé dynamique

  1. Dans Analyse, cliquez sur Rapports, puis sélectionnez le rapport dynamique à exécuter.

  2. Dans l’écran Rapports, cliquez sur Exécuter dans la barre d’outils pour exécuter le rapport dynamique.

    Le rapport s’affiche dans une nouvelle fenêtre du navigateur sous forme de tableau croisé dynamique ou de graphique croisé dynamique.

  3. Dans la fenêtre < Analyse de rapport > du navigateur, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Afficher le tableau croisé dynamique | Afficher le tableau croisé dynamique. Masquer le tableau croisé dynamique.
    Afficher la description | Afficher la description du rapport.


Affichage de rapports statiques

Après avoir exécuté un rapport statique, vous trouverez celui-ci dans la liste des rapports du module Analyse de rapports.

Pour contrôler l’état d’un rapport statique

Pour rechercher des rapports statiques

Pour trier la liste des rapports

Pour ouvrir un rapport statique

Pour ouvrir plusieurs rapports statiques

Pour fermer un rapport statique

Pour contrôler l’état d’un rapport statique

  • Dans Analyse, cliquez sur Analyse de rapports.

L’état du rapport s’affiche dans la colonne État de la liste des rapports. Les différents états possibles sont les suivants :

  • Terminé. Le rapport est terminé. Vous pouvez l’ouvrir pour le visualiser.

  • En attente. Le rapport est en cours d’exécution.

  • Échec. Le rapport ne s’est pas terminé correctement. En cas d’échec d’un rapport, supprimez celui-ci de la liste Analyse de rapports, puis réexécutez le rapport.

Remarque

  • La colonne État du module Analyse de rapports trie le Statut dans l’ordre suivant : Terminé, En attente et Échec.

Pour rechercher des rapports statiques

  1. Dans Analyse, cliquez sur Analyse de rapports, puis cliquez dans la barre d’outils sur Rechercher.

  2. Dans la liste déroulante Rechercher par, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Rechercher un rapport en fonction de son nom.
    Exécuté par | Rechercher un rapport en fonction du nom de la personne l’ayant exécuté.
    Date d’exécution | Rechercher un rapport en fonction d’une plage de dates pendant laquelle il a été exécuté.
    État | Rechercher un rapport en fonction de son état : Terminé, En attente ou Échec.
    Toute information | Rechercher un rapport en fonction de n’importe quelle combinaison de critères de recherche (Nom, Catégorie, Créé par et Type).
    Tous les rapports | Rechercher l’ensemble des rapports disponibles.

  3. Dans la zone Valeur de la propriété qui s’affiche ensuite, tapez ou sélectionnez dans la liste la valeur spécifique du critère sélectionné (par exemple, Nom, Date d’exécution, Exécuté par et État), puis cliquez sur Rechercher.

La liste de rapports résultante contient tous les rapports statiques qui répondent à vos critères de recherche. Vous pouvez trier cette liste de rapports en cliquant sur n’importe quel en-tête de colonne.

Pour trier la liste des rapports

  • Dans Analyse, cliquez sur Analyse de rapports, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Cliquer pour effectuer un tri selon le nom du rapport.
    Date d’exécution | Cliquer pour effectuer un tri selon la date d’exécution du rapport. Par défaut, les rapports sont triés par Date d’exécution dans l’ordre décroissant.
    Heure d’exécution | Cliquer pour effectuer un tri selon l’heure d’exécution du rapport.
    Exécuté par | Cliquer pour effectuer un tri selon le nom de la personne ayant exécuté le rapport.
    État | Cliquer pour effectuer un tri selon l’état du rapport : Terminé, En attente ou Échec.

Remarques

  • La colonne État du module Analyse de rapports effectue un tri dans l’ordre suivant : Échec, En attente et Terminé.

  • La colonne Heure d’exécution effectue un tri selon la date d’exécution du rapport. Vous ne pouvez pas trier par Heure d’exécution indépendamment de la Date d’exécution.

Pour ouvrir un rapport statique

  1. Dans Analyse, cliquez sur Analyse de rapports.

  2. Dans la liste des rapports, sélectionnez le rapport à ouvrir, puis cliquez dans la barre d’outils sur .

    Remarque

    • Vous ne pouvez ouvrir que les rapports dont l’état est Terminé.

Le rapport statique s’affiche dans une nouvelle fenêtre du navigateur sous forme de document HTML.

Pour ouvrir plusieurs rapports statiques

  1. Dans Analyse, cliquez sur Analyse de rapports.

  2. Dans la liste des rapports, sélectionnez les rapports à ouvrir, puis cliquez dans la barre d’outils sur .

Les rapports statiques s’affichent dans de nouvelles fenêtres du navigateur sous forme de documents HTML.

Remarques

  • Si vous cliquez sur le bouton Sélectionner tout pour sélectionner tous les rapports de la liste, vous ne pouvez pas les ouvrir. Pour ouvrir tous les rapports de votre liste, vous devez sélectionner individuellement chaque rapport.

  • L’ouverture de plusieurs rapports statiques peut saturer la mémoire du navigateur Web, et provoquer l’arrêt du module Analyse de rapports.

Pour fermer un rapport statique

  • Fermez la fenêtre du navigateur qui contient le rapport.

Voir aussi

Impression de rapports

Exportation d’un rapport dynamique

Exportation d’un rapport statique


Impression de rapports

Les rapports Commerce Server 2000 sont conçus pour être affichés dans la fenêtre du navigateur. Vous pouvez imprimer des rapports dynamiques et statiques à partir du navigateur Web. Des limites de taille existent lorsque vous imprimez et affichez des rapports volumineux.

Lorsque vous imprimez un tableau croisé dynamique de rapport dynamique, le navigateur Web n’imprime que les parties visibles du tableau croisé dynamique dans la fenêtre du navigateur, sans défilement. Si vous développez les noeuds du tableau croisé dynamique et que le tableau résultant dépasse la capacité de mémoire du navigateur, le tableau croisé dynamique ne s’imprime pas. Pour imprimer un grand tableau croisé dynamique dans son intégralité, exportez-le vers Microsoft Excel. Pour plus d’informations sur l’exportation d’un tableau croisé dynamique vers Microsoft Excel, consultez Exportation d’un rapport dynamique. Pour plus d’informations sur l’impression à partir de Excel, consultez l’aide de Excel.

Lorsque vous exécutez un rapport statique, celui-ci est limité à un affichage de 1 000 lignes dans la fenêtre du navigateur. Vous pouvez exporter un rapport statique volumineux vers le Gestionnaire de listes pour voir toutes les lignes de ce rapport. Pour plus d’informations sur l’exportation de rapports vers le Gestionnaire de listes, consultez Exportation d’un rapport statique.

Pour imprimer un rapport

  1. Dans la fenêtre du navigateur, dans le menu Fichier, cliquez sur Imprimer.

  2. Dans la boîte de dialogue Imprimer, cliquez sur Imprimer.

L’impression du rapport s’exécute.

Voir aussi

Exportation d’un rapport dynamique

Exportation d’un rapport statique


Exportation d'un rapport dynamique

Exportation d’un rapport dynamique

Les contrôles du tableau croisé dynamique vous permettent d’exporter un rapport dynamique vers Microsoft Excel. Utilisez Microsoft Excel pour enregistrer, modifier et imprimer les rapports dynamiques. Microsoft Excel doit être installé sur l’ordinateur où vous visualisez le rapport.

Pour exporter un rapport dynamique vers Microsoft Excel

  1. Dans Analyse, cliquez sur Rapports. Dans la liste des rapports disponibles, sélectionnez le rapport dynamique à exécuter, puis cliquez dans la barre d’outils sur Exécuter.

    Le rapport dynamique s’affiche sous forme de tableau croisé dynamique dans une nouvelle fenêtre du navigateur.

    Remarque

    • Si le tableau croisé dynamique n’est pas visible, cliquez sur Afficher le tableau croisé dynamique.
  2. Pour ouvrir votre rapport dans Microsoft Excel, dans l’écran Tableau croisé dynamique, cliquez dans la barre d’outils du Tableau croisé dynamique sur Exporter vers Excel.

Le rapport s’affiche à présent sous forme de feuille de calcul Excel.

Voir aussi

À propos de Analyse

Rapports Commerce Server

Exécution de rapports

Exportation d’un rapport statique

Exportation d’un rapport vers le Gestionnaire de listes


Exportation d'un rapport statique

Exportation d’un rapport statique

Le module Rapports vous permet d'exporter les données de votre rapport statique vers le module Gestionnaire de listes. Les données des rapports statiques qui possèdent la propriété Publipostage peuvent être utilisées dans les campagnes de publipostage. Vous pouvez accéder aux données et les mettre à jour à partir de rapports d’utilisateur statiques, par exemple, Propriétés de l’utilisateur inscrit, dans le module Utilisateurs.

Pour exporter des données vers une liste

  1. Dans Analyse, cliquez sur Rapports.

  2. Dans la liste des rapports, sélectionnez le rapport statique contenant les données à exporter, puis cliquez dans la barre d’outils sur .

  3. Dans la boîte de dialogue Exécuter un rapport, ajustez les paramètres du rapport selon vos besoins. Tous les paramètres sont spécifiques au rapport.

    Remarques

    • Si le nom que vous tapez dans la zone Nom du site : Valeur du paramètre ne correspond pas au nom d’un site Commerce Server, l’exportation ne contient pas de données.

    • Pour afficher la requête, le nom du site, le nom du champ et les balises de paramètre du rapport pour le nombre d’utilisateurs et le nom du site, cliquez dans la boîte de dialogue Exécuter un rapport sur le bouton Options avancées.
  4. Cliquez sur OK.

  5. Dans la boîte de dialogue Exporter le rapport en tant que liste, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Statique | Exporter une liste statique.
    Dynamique | Exporter une liste dynamique.
    Taper le nom de la liste vers laquelle effectuer la copie | Taper un nom de liste unique.
    Nom du rapport | Afficher le nom du rapport à partir duquel la liste est créée.

  6. Cliquez sur OK.

Votre rapport statique est exporté vers le module Gestionnaire de listes sous forme de liste.

Ouvrez le module Gestionnaire de listes pour vérifier que vos données ont été exportées sous forme de liste. Pour plus d’informations sur l’exportation de listes vers le Gestionnaire de listes, consultez Exportation d’un rapport vers le Gestionnaire de listes.

Voir aussi

À propos de Analyse

Rapports Commerce Server

Exécution de rapports

Exportation d’un rapport dynamique

Exportation d’un rapport vers le Gestionnaire de listes


Création d'un nouveau rapport dynamique

Création d’un nouveau rapport dynamique

Le module Rapports vous permet de modifier le tableau croisé dynamique d’un rapport, et d’enregistrer le rapport ainsi modifié sous forme d’une nouvelle définition de rapport. Le rapport enregistré est ensuite disponible dans la liste des rapports. Pour plus d’informations sur la création de rapports personnalisés utilisables par des développeurs de site, consultez Creating Custom Reports (en anglais).

Remarque

  • Vous ne pouvez pas enregistrer les graphiques croisés dynamiques.

Pour ajouter des champs à un tableau croisé dynamique

Pour voir votre nouveau rapport dans la liste des rapports

Pour actualiser la liste des rapports

Pour ajouter des champs à un tableau croisé dynamique

  1. Dans Analyse, cliquez sur Rapports, puis sélectionnez le rapport dynamique à exécuter.

  2. Dans l’écran Rapports, cliquez sur Exécuter dans la barre d’outils pour exécuter le rapport dynamique.

    Le rapport s’affiche dans une nouvelle fenêtre du navigateur sous forme de tableau croisé dynamique. La liste de champs du tableau croisé dynamique s’affiche au-dessus du tableau croisé dynamique.

    Remarque

    • Si la liste de champs du tableau croisé dynamique ne s’affiche pas automatiquement lorsque vous ouvrez le tableau, cliquez dans la barre d’outils du tableau croisé dynamique sur le bouton Liste des champs.
  3. Faites glisser les champs de la liste de champs du tableau croisé dynamique et déplacez-les vers le tableau croisé dynamique.

    Dans un tableau croisé dynamique, les éléments situés sous Total général dans la liste de champs sont des indicateurs ; les éléments situés au même niveau que Total général sont des dimensions. Les indicateurs peuvent être ajoutés à la zone de données (en l’occurrence, les cellules du centre) du tableau croisé dynamique. Les dimensions peuvent servir de lignes, de colonnes ou de filtres.

    Outre le glisser-déplacer de champs à partir de la liste de champs du tableau croisé dynamique, vous pouvez cliquer sur le bouton Ajouter à situé au bas de la liste de champs du tableau croisé dynamique. Pour plus d’informations sur l’utilisation de la liste de champs, cliquez dans la barre d’outils du tableau croisé dynamique sur le bouton Aide.

  4. Dans la fenêtre du rapport, cliquez sur Enregistrer juste au-dessus du tableau croisé dynamique. La boîte de dialogue Enregistrer un rapport — Dialogue de page Web s’affiche.

  5. Dans la boîte de dialogue Enregistrer un rapport — Dialogue de page Web, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom du rapport | Taper le nom de votre nouveau rapport.
    Description du rapport | Taper une description de votre nouveau rapport.
    Description détaillée du rapport | Taper une description plus détaillée de votre rapport. Cette description est visible dans la fenêtre du navigateur au-dessus des contrôles du tableau croisé dynamique lorsque vous cliquez sur Afficher la description.

  6. Cliquez sur OK. Votre nouveau rapport est enregistré.

  7. Pour revenir à l’écran Rapports, fermez la fenêtre du rapport.

Pour plus d’informations sur l’utilisation de tableaux croisés dynamiques, consultez l’aide en cliquant dans la barre d’outils de tableau croisé dynamique sur le bouton Aide.

Important

  • Lorsque vous enregistrez un nouveau rapport, vous enregistrez la définition du rapport, pas les données. La prochaine fois que vous exécuterez le rapport, il possédera les mêmes lignes, colonnes et filtres ; en outre, les données actuelles seront interrogées à partir de Microsoft SQL Server 2000 Analysis Services (OLAP), comme le spécifie la définition de rapport.

Pour voir votre nouveau rapport dans la liste des rapports

  1. Dans Analyse, cliquez sur Rapports.

  2. Dans l’écran Rapports, cliquez dans la barre d’outils sur Rechercher, vérifiez que les critères de recherche présents permettront de trouver votre rapport, puis cliquez sur Rechercher.

Pour actualiser la liste des rapports

  1. Dans Analyse, cliquez sur Rapports, puis cliquez dans la barre d’outils sur Rechercher.

  2. Dans la zone Rechercher par, sélectionnez Tous les rapports, puis cliquez sur Rechercher.

Une nouvelle liste des rapports s’affiche avec tous les rapports.

Voir aussi

À propos de Analyse

Rapports Commerce Server


Suppression de rapports

Le module Rapports vous permet de supprimer des définitions de rapport personnalisé. Grâce au module Analyse de rapports, vous pouvez supprimer des rapports statiques. Vous ne pouvez pas supprimer les définitions de rapports statiques ou dynamiques incluses dans Commerce Server. Il s’agit de rapports système. Les rapports système affichent « Système » dans la colonne Créé par de la liste des rapports du module Rapports.

Suppression de définitions de rapport personnalisé

Suppression de rapports statiques

Suppression de définitions de rapport personnalisé

Le module Rapports vous permet de supprimer des définitions de rapport personnalisé. Vous ne pouvez pas supprimer de rapports système. Les rapports système affichent « Système » dans la colonne Créé par.

Attention

  • Lorsque vous supprimez un rapport personnalisé dans le module Rapports, vous supprimez la définition du rapport, ce qui vous empêche d’exécuter à nouveau ce rapport.

Pour supprimer un rapport personnalisé

  1. Dans Analyse, cliquez sur Rapports, puis sélectionnez les rapports personnalisés à supprimer.

  2. Cliquez dans la barre d’outils sur Supprimer.

  3. Dans la boîte de dialogue Supprimer les rapports ?, cliquez sur Oui.

Les rapports personnalisés sélectionnés sont supprimés. La liste des rapports n’affiche plus les rapports qui viennent d’être supprimés.

Suppression de rapports statiques

Grâce au module Analyse de rapports, vous pouvez supprimer des rapports statiques. Lorsque vous supprimez un rapport statique du module Analyse de rapports, vous ne supprimez que le rapport. La définition du rapport est conservée dans le module Rapports.

Remarques

  • Vous pouvez supprimer un rapport ayant échoué de la même façon qu’un rapport terminé.

  • La suppression d’un rapport en cours d’exécution (En attente) de la liste des rapports ne met pas fin au rapport. Le rapport continue de s’exécuter.

Pour supprimer un rapport statique

  1. Dans Analyse, cliquez sur Analyse de rapports.

  2. Dans la liste des rapports, sélectionnez les rapports à supprimer, puis cliquez dans la barre d’outils sur .

Les rapports statiques sélectionnés sont supprimés. La liste des rapports n’affiche plus les rapports qui viennent d’être supprimés.

Voir aussi

À propos de Analyse

Rapports Commerce Server


Affichage des propriétés de rapport

Le module Rapports vous permet d’afficher les propriétés suivantes : Nom, Description, Type de rapport, Date de création, Créé par, Date de modification, Modifié par, Requête, Exporter sous forme de liste de publipostage et Exporter sous forme de liste des utilisateurs pour les rapports statiques et dynamiques. L’affichage des propriétés de la requête permet de déterminer si le rapport renvoie les informations souhaitées.

Vous ne pouvez pas modifier les propriétés d’un rapport. Si vous ne pouvez pas trouver de définition de rapport avec une requête qui renvoie les données que vous recherchez, vous pouvez modifier une définition de rapport dynamique et l’enregistrer sous forme de nouvelle définition de rapport dynamique, ou demander à votre administrateur système de créer une définition de rapport statique ou dynamique qui réponde à vos besoins. Pour plus d’informations sur la modification d’une définition de rapport dynamique pour créer une définition de rapport dynamique, consultez Création d’un nouveau rapport dynamique.

Pour afficher les propriétés d’un rapport

  • Dans Analyse, cliquez sur Rapports. Dans la liste des rapports, sélectionnez celui qui contient les propriétés à afficher, puis cliquez dans la barre d’outils sur .

Une liste des propriétés du rapport s’affiche.

Voir aussi

À propos de Analyse

Rapports Commerce Server

Recherche de rapports


Analyse des segments de population

Les segments représentent les groupes d’utilisateurs qui partagent des caractéristiques ou un comportement similaires. Les segments sont issus des propriétés stockées dans Data Warehouse. Le module Identification de segments vous permet d’analyser les segments et groupes de segments pour identifier des caractéristiques ou un comportement spécifiques, par exemple, les tendances d’utilisation. Vous pouvez ensuite utiliser les résultats de cette analyse pour prendre des décisions commerciales basées sur les similitudes existant entre les utilisateurs.

Un modèle de segment est l’ensemble des segments créés lors de la construction du modèle de segment, et décrit les caractéristiques des utilisateurs appartenant à chacun des segments et groupes de segments. Un modèle de segment décrit les caractéristiques des utilisateurs appartenant à chacun des segments et groupes de segments. Les modèles de segments permettent d’identifier et d’analyser les valeurs d’attributs qui caractérisent les utilisateurs visitant votre site.

Par exemple, après avoir construit un modèle de segment, vous pouvez identifier un segment caractérisant les utilisateurs qui ont acheté un célèbre conte pour enfants : femme de plus de 40 ans, avec des revenus supérieurs à 330 000 francs par an et un niveau d’études supérieures. Après avoir identifié ces caractéristiques communes, vous pouvez à présent offrir des produits similaires aux utilisateurs qui correspondent aux mêmes critères. Par exemple, ces utilisateurs peuvent être amenés à acheter un livre pour enfants sur les animaux.

Vous pouvez afficher les modèles de segments dans le module Identification de segments de Commerce Server Business Desk. Les segments et groupes de segments uniques que vous visualisez sont nommés de manière générique par Commerce Server ; après avoir analysé leur contenu, vous devez les renommer de manière plus significative. Après avoir renommé vos segments, vous pouvez les comparer puis générer un rapport qui montre ces comparaisons. Vous pouvez également exporter les données de segment vers le module Gestionnaire de listes de Business Desk pour créer des listes de publipostage, ajouter des propriétés aux profils utilisateur dans le but d’effectuer un ciblage, etc.

Cette section contient les rubriques suivantes :

  • Affichage d’un modèle de segment

  • Comparaison de deux segments ou groupes de segments

  • Modification du nom d’un segment ou d’un groupe de segments

  • Affichage d’un rapport de segment

  • Exportation de données de segment vers le Gestionnaire de listes

Voir aussi

Analyse de segment

Rapports Commerce Server


Affichage d'un modèle de segment

Affichage d’un modèle de segment

La première fois que vous affichez un modèle de segment, les segments et groupes de segments de la hiérarchie de segments possèdent des noms génériques, tels que Segment1, Segment2, etc. Le pourcentage de la population totale représentée dans un segment ou un groupe de segments s’affiche entre parenthèses après le nom. Le résumé du segment s’affiche à l’écran, à droite de la liste de segments.

Zone de travail de l'Identification de segments

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Le résumé de votre segment ou groupe de segments contient un tableau avec les colonnes suivantes :

  • Couples Propriété/valeur. Ils ont une correspondance réciproque et constituent le meilleur résumé des enregistrements du segment ou du groupe de segments sélectionné. Par exemple, si la majorité des enregistrements d’un segment donné correspondent aux personnes dont l’occupation professionnelle est « Étudiant », alors « Occupation » s’affiche dans la colonne Propriété et « Étudiant » dans la colonne Valeur.

  • Score. Affiche une barre rouge, dont la longueur indique la précision relative avec laquelle le couple propriété/valeur résume les enregistrements du segment ou du groupe de segments sélectionné.

Pour afficher un modèle de segment

  • Cliquez sur Identification de segments, sélectionnez le modèle de segment à afficher, puis cliquez dans la barre d’outils sur Ouvrir le modèle.

L’écran Identification de segments s’affiche en montrant le groupe de segments le plus élevé, qui se nomme Population (100%). Pour afficher les segments et groupes de segments les moins élevés, cliquez sur la flèche située en regard du groupe de segments le plus élevé.

Remarque

  • Vous ne pouvez afficher qu’un seul modèle de segment à la fois.

Les modèles de segments sont créés par votre administrateur système dans Commerce Server Manager. Pour plus d’informations sur la création de modèles de segments, consultez « Exécution de la ressource Predictor » dans l’aide de Commerce Server 2000.

Voir aussi

Déroulement des opérations pour les analyses de segment

Identification de segments

Rapports Commerce Server


Comparaison de deux segments ou groupes de segments

Vous pouvez comparer un segment ou un groupe de segments à un autre via le module Identification de segments. Par exemple, un segment peut correspondre aux utilisateurs qui visitent fréquemment votre site, et un autre segment aux utilisateurs qui le visitent moins fréquemment. Vous avez la possibilité de comparer les utilisateurs pour déterminer les caractéristiques qui différencient les utilisateurs fréquents des utilisateurs occasionnels.

Pour effectuer des comparaisons de segments, sélectionnez un premier segment puis un autre segment auquel vous souhaitez le comparer. La comparaison s’affiche dans un tableau qui comporte les colonnes suivantes :

  • Couples propriété/valeur. Les couples Propriété/Valeur qui s’affichent sont ceux qui différencient le plus les utilisateurs dans le segment ou groupe de segments sélectionné par rapport aux utilisateurs du segment ou groupe de segments de comparaison.

  • Segment sélectionné. Cette colonne contient une barre jaune dont la longueur indique le degré d’appartenance d’un enregistrement, avec le couple Propriété/Valeur correspondant, au segment ou groupe de segments sélectionné par opposition au segment ou groupe de segments de comparaison.

  • Comparaison du segment. Cette colonne contient une barre bleue dont la longueur indique le degré d’appartenance d’un enregistrement, avec le couple Propriété/Valeur correspondant, au segment ou groupe de segments de comparaison par opposition au segment ou groupe de segments sélectionné.

Pour comparer deux segments ou groupes de segments

  1. Cliquez sur Identification de segments, sélectionnez le modèle de segment contenant les segments à comparer, puis cliquez dans la barre d’outils sur Ouvrir le modèle.

  2. Dans la Hiérarchie du segment, sélectionnez le segment ou groupe de segments à comparer.

    Un résumé du segment ou groupe de segments sélectionné s’affiche dans l’écran Identification de segments sous Résumé de <Nom du segment>.

  3. Dans la zone Comparer Segment <Nom du segment> à, sélectionnez dans la liste déroulante le segment ou groupe de segments auquel vous voulez comparer le segment sélectionné au cours de l’étape précédente.

Un résumé de comparaison s’affiche dans la section inférieure de l’écran Identification de segments. Les propriétés s’affichent dans l’ordre de leur degré d’appartenance relative au segment sélectionné ou au segment de comparaison.


Modification du nom d'un segment ou d'un groupe de segments

Modification du nom d’un segment ou d’un groupe de segments

La première fois que vous affichez un modèle de segment, les segments et groupes de segments possèdent des noms génériques, tels que Segment1, Segment2, etc. Ces noms génériques sont répertoriés dans la Hiérarchie du segment. La population entière de segments est répertoriée dans la Hiérarchie du segment sous la forme Population (100%).

Après avoir examiné un segment ou groupe de segments, et déterminé ses caractéristiques les plus significatives, en utilisant les informations de synthèse du segment et en les comparant à d’autres segments, vous pouvez le nommer de manière plus descriptive. Lorsque vous choisissez un nouveau nom pour un segment ou groupe de segments, celui-ci doit être unique pour le modèle de segment.

Pour renommer un segment ou groupe de segments

  1. Cliquez sur Identification de segments, sélectionnez le modèle de segment contenant le segment ou groupe de segments à renommer, puis cliquez dans la barre d’outils sur Afficher les propriétés.

  2. Dans la Hiérarchie du segment, développez le groupe de segments le plus élevé jusqu’à ce que vous trouviez le segment ou groupe de segments à renommer, sélectionnez-le, puis cliquez sur Renommer.

  3. Dans la boîte de dialogue Renommer le segment, tapez le nouveau nom du segment ou groupe de segments, puis cliquez sur OK.

    Le nouveau nom remplace l’ancien dans la Hiérarchie du segment.

  4. Pour renommer d’autres segments ou groupes de segments supplémentaires, répétez l’étape 3.

  5. Une fois que vous avez renommé tous les segments et groupes de segments voulus, et que vous êtes prêt à enregistrer vos modifications dans le modèle de segment, cliquez dans la barre d’outils sur .

Les nouveaux noms sont enregistrés.

Remarque

  • Si vous modifiez plusieurs noms pour un grand groupe de segments, l’enregistrement de vos modifications peut prendre plusieurs minutes.

Voir aussi

Rapports Commerce Server


Affichage d'un rapport de segment

Affichage d’un rapport de segment

Le module Identification de segments vous permet de générer un rapport qui résume tous les segments et groupes de segments que vous avez créés. Le rapport s’affiche dans une nouvelle fenêtre de Microsoft Internet Explorer. Grâce à ce rapport, vous pouvez comparer tous les segments. Chaque segment et groupe de segments possède des liens vers des informations détaillées ; en cliquant sur ces liens, vous pouvez vous déplacer facilement entre les segments.

Pour afficher un rapport de segment

  1. Cliquez sur Identification de segments, sélectionnez le modèle de segment contenant le rapport à afficher, puis cliquez dans la barre d’outils sur Ouvrir le modèle.

  2. Dans la liste Hiérarchie du segment, sélectionnez le segment à partir duquel vous souhaitez créer un rapport, puis cliquez dans la barre d’outils sur .

Le rapport s’affiche dans une fenêtre de Microsoft Internet Explorer.


Exportation de données de segment vers le Gestionnaire de listes

Après avoir créé vos segments, vous pouvez créer une liste des utilisateurs contenus dans ces segments pour les analyser et les gérer de manière plus approfondie. Vous pouvez exporter vos données de segment vers le Gestionnaire de listes de Commerce Server Business Desk.

Pour exporter des données de segment vers le Gestionnaire de listes

  1. Cliquez sur Identification de segments, sélectionnez le modèle de segment contenant les données à exporter, puis cliquez dans la barre d’outils sur Ouvrir le modèle.

  2. Dans la Hiérarchie du segment, sélectionnez le segment contenant les données à exporter, puis cliquez dans la barre d’outils sur .

  3. Dans la boîte de dialogue Exporter le segment dans la liste, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Entrer le nom de liste | Taper un nom de liste.
    Probabilité minimale | Taper le seuil de probabilité d’appartenance qu’un utilisateur doit dépasser pour pouvoir être inclus dans une liste.

  4. Cliquez sur OK.

Après avoir exporté vos données, accédez au module Gestionnaire de listes de Business Desk pour les afficher. Si vous exportez un volume de données relativement faible, les données exportées s’affichent presque immédiatement dans le Gestionnaire de listes. Si vous exportez un volume de données important, quelques minutes seront peut-être nécessaires pour les voir s’afficher. Pour plus d’informations sur l’exportation de rapports, consultez Exportation d’un rapport vers le Gestionnaire de listes.

Remarque

  • Pour exporter des informations utilisateur vers une liste, vous devez sélectionner un segment et non un groupe de segments. Si vous sélectionnez un groupe de segments, le bouton Exporter le segment dans la liste dans la barre d’outils est désactivé.


Campagnes marketing Business Desk

Les modules Campagnes marketing permettent de créer et de gérer des campagnes marketing. Les modules Campagnes marketing fournissent une interface conviviale qui vous aide à créer et à gérer vos planifications de campagnes marketing. La planification des campagnes marketing permet de déterminer le type de contenu qui sera affiché à l’utilisateur ainsi que la période d’affichage. Vous pouvez créer une campagne de publicité, une campagne de publipostage ou une campagne de remise, puis spécifier le moment où le contenu doit être fourni au groupe d’utilisateurs ciblé.

Vous pouvez exécuter des rapports sur vos campagnes marketing pour vous aider à prendre les bonnes décisions en matière de tarification, de marketing et de publicité ou concernant d’autres aspects de votre commerce. L’analyse de vos campagnes marketing vous permet de promouvoir celles qui ont rencontré le plus de succès.

Cette section contient les rubriques suivantes :

  • Déroulement des opérations pour la gestion des campagnes. Présente la marche à suivre pour créer, cibler et gérer des campagnes marketing.

  • À propos des campagnes marketing. Décrit les publicités, les remises et les publipostages, ainsi que la façon d’utiliser les buts quantitatifs de la campagne. Décrit comment créer des expressions de ciblage.

  • Définition des tables de références. Explique comment définir des tailles de contenu, des codes d’activité et des groupes de pages convenant à votre modèle commercial.

  • Création d’une campagne marketing. Explique comment ajouter des informations sur les clients, ajouter et planifier une campagne marketing et créer un élément de la campagne, en afficher un aperçu, puis l’envoyer en production.

  • Publication des modifications de la campagne marketing sur votre site Web. Explique comment mettre à jour votre site avec les nouvelles informations ajoutées à l’aide de Business Desk.

  • Permutation entre un but quantitatif de niveau campagne et un but quantitatif de niveau élément de la publicité. Explique la répercussion de la modification du but quantitatif de la campagne marketing sur les volumes de vos publicités.

  • Ajout d’un élément de la campagne de publicité. Explique comment ajouter un élément de la campagne de publicité, spécifier la taille de la publicité et cibler la publicité en fonction de certaines pages Web ou certains groupes d’utilisateurs.

  • Ajout d’un élément de la campagne de remise. Explique comment créer et gérer une campagne de remise.

  • Ciblage d’une publicité ou d’une remise. Explique le but et le fonctionnement des expressions de ciblage et des expressions de catalogue, ainsi que la marche à suivre pour créer un groupe cible.

  • Ajout d’un élément de la campagne de publipostage. Explique comment créer et utiliser des listes des utilisateurs du site.

  • Gestion des listes des enregistrements utilisateur. Explique comment utiliser le Gestionnaire de listes pour créer et gérer des listes de publipostage et des listes des utilisateurs.

  • Analyse d’une campagne marketing. Explique comment exécuter un rapport de campagne marketing et l’exporter vers le Gestionnaire de listes.

  • Suppression et restauration des campagnes marketing. Explique comment supprimer et restaurer des campagnes marketing.

  • Recherche de campagnes marketing. Explique comment rechercher des campagnes marketing sur votre site à l’aide de critères de filtre.


Déroulement des opérations pour la gestion des campagnes

La figure suivante présente un exemple de scénario pour créer, gérer, analyser et cibler des campagnes marketing.

Déroulement des opérations pour la création, la gestion, l'analyse et le ciblage des campagnes marketing
Tables de références
Analyse d'une campagne marketing
Gestionnaire de campagnes
Définition des tables de références
Création d'une campagne marketing
Importation d'une liste de publipostage
Création d'une campagne de publipostage
Analyse
Gestionnaire de campagnes
Groupe cible d'expressions de la campagne
Ciblage d'une publicité ou d'une remise
Gestionnaire de listes

  1. Dans le module Tables de références, vous spécifiez les tailles de contenu et vous ajoutez les codes d’activité ainsi que les groupes de pages. Vous ne devez effectuer cette étape que si vous avez besoin d’ajouter ou de modifier les tables fournies par votre développeur de site.

  2. Dans le module Gestionnaire de campagnes, vous créez un client (par exemple Chaussures Arbor), vous créez une campagne marketing (par exemple Vente promotionnelle d’automne), puis vous ajoutez un élément de la campagne de remise (par exemple Remise aux membres).

  3. Dans le module Expressions de la campagne marketing, vous créez une expression de ciblage pour spécifier les utilisateurs auxquels vous voulez proposer la remise.

  4. Dans le module Gestionnaire de campagnes, vous exécutez un rapport afin d’analyser l’efficacité de votre campagne de publicité.

  5. Dans le module Gestionnaire de listes, vous importez le rapport de la campagne dans le Gestionnaire de listes.

  6. Dans le module Gestionnaire de campagnes, vous utilisez la liste pour exécuter un travail de publipostage afin de mieux cibler vos utilisateurs.

Voir aussi

À propos des campagnes marketing


À propos des campagnes marketing

Les modules Campagnes marketing permettent de créer et de planifier des campagnes marketing et de fournir un contenu ciblé pour vos sites Web. Commerce Server offre plusieurs mécanismes de production de vos campagnes marketing en ligne. Par exemple, vous pouvez créer des campagnes pour les publicités, les remises et les publipostages. Vous pouvez également analyser vos campagnes marketing, afin de vous aider à prendre des décisions en matière de tarification, de ciblage de contenu et d’autres aspects de votre commerce. Après avoir analysé vos données utilisateur, vous pouvez mettre à jour votre site pour mieux cibler vos utilisateurs.

Les modules Campagnes marketing ont été conçus pour vous permettre de travailler avec vos clients de manière à optimiser l’effet des publicités, remises et publipostages. Avec les modules Campagnes marketing, vous pouvez :

  • Cibler des publicités ou des remises en fonction d’utilisateurs présentant un certain profil. Vous définissez un profil utilisateur à l’aide du module Définition de profil, puis vous l’intégrez dans une campagne marketing. Pour chaque page de publicité individuelle, vous pouvez spécifier si le profil de l’utilisateur qui visite cette page doit être pris en compte pour le contenu ciblé, ou s’il doit être ignoré.

  • Exécuter des campagnes marketing pour des clients concurrents travaillant dans le même domaine d’activité. Les publicités concurrentes ne sont jamais affichées sur la même page.

  • Facturer vos clients en fonction du nombre de demandes de publicité qu’ils souhaitent pour leurs publicités.

Cette section contient les rubriques suivantes :

  • Structure d’une campagne marketing

  • But quantitatif de la campagne

  • Tables de références

  • Publicités

  • Remises

  • Publipostage

  • Listes des utilisateurs et listes de publipostage

  • Ciblage et personnalisation

  • Efficacité de la campagne marketing


Structure d'une campagne marketing

Structure d’une campagne marketing

Une campagne marketing est un programme marketing qui représente des contrats ou des commandes d’un client. Par exemple, vous pouvez créer une campagne marketing pour introduire de nouveaux produits, fidéliser des utilisateurs existants ou augmenter vos parts de marché. Chaque campagne marketing peut comprendre plusieurs éléments de la campagne : publicités, remises ou messages de publipostage.

Le module Gestionnaire de campagnes vous permet de créer et de gérer des clients, puis des campagnes marketing, puis des éléments de la campagne.

La figure suivante représente la structure hiérarchique de l’arborescence du Gestionnaire de campagnes.

Gestionnaire de campagnes

Cliquez sur l'illustration pour l'agrandir ou la réduire.

Les informations concernant le client, telles que l’adresse de facturation, sont utilisées pour l’ensemble des campagnes marketing créées pour ce client. Vous pouvez afficher tous vos clients par ordre alphabétique dans le module Gestionnaire de campagnes.

Tous les éléments de la campagne d’une campagne marketing ont un client et une plage de dates communs. Par exemple, dans la section Voyages du site d’un journal, un annonceur peut demander la livraison de 10 000 demandes en l’espace d’une semaine pour les utilisateurs du Nord-Ouest. L’annonceur peut décider d’exécuter trois publicités différentes pour ces 10 000 demandes, puis voir laquelle de ces trois publicités attire le plus grand nombre de visiteurs. Chaque publicité est un élément de la campagne.


But quantitatif de la campagne

Le but quantitatif de la campagne constitue le processus qui permet de spécifier le nombre de publicités à fournir (but) dans un laps de temps déterminé. Vous pouvez définir un but quantitatif en termes de clics sur une publicité ou de demandes pour une publicité. Vous pouvez définir des buts quantitatifs pour une campagne marketing au niveau de la campagne ou au niveau de la publicité.

  • Le but quantitatif de niveau campagne permet d’appliquer les buts quantitatifs à tous les éléments de la campagne (publicités) d’une campagne marketing, en utilisant une distribution pondérée du nombre total des demandes.

    Supposons que vous définissiez un but quantitatif au niveau de la campagne pour un client. Ce client vous donne deux publicités et commande 25 000 demandes de publicité. Au niveau de la campagne, une publicité est définie pour afficher 60 pour cent des demandes de publicité et une autre publicité est définie pour afficher 40 pour cent des demandes de publicité. Si le client décide de changer le nombre de demandes de publicité pour passer à 40 000, vous n’aurez pas à modifier manuellement le nombre d’affichages des publicités : vous conserverez les proportions de 60 % et de 40 %.

  • Le but quantitatif de niveau publicité permet d’appliquer les buts quantitatifs au niveau de l’élément de la campagne. Le nombre total de demandes pour la campagne marketing sera égal au nombre total de demandes commandées pour chaque élément de la campagne. Par exemple, un client commande 50 000 demandes à livrer en un mois. L’élément de la publicité doit être livré 50 000 fois.

Vous pouvez permuter les buts quantitatifs de niveau campagne et de niveau publicité. Par exemple, un client commande l’exécution à proportion égale de deux éléments de la campagne de publicité, pour une quantité commandée de 1 000 demandes de publicité. Vous effectuez les opérations suivantes :

  1. Vous ajoutez les éléments de la campagne à une campagne marketing et vous attribuez à chaque élément un volume égal à 1. La quantité commandée pour chaque élément est de 500 demandes de publicité.

  2. Plus tard, le même client commande 500 demandes de plus pour la publicité 1. Vous ouvrez la campagne marketing et vous modifiez le but quantitatif pour que ce soit un but de niveau publicité, vous sélectionnez la publicité 1, puis ajoutez 500 éléments à la quantité.

    La quantité commandée pour la publicité 1 est à présent de 1 000 demandes. La quantité commandée pour la publicité 2 est de 500 demandes. La quantité totale commandée n’est pas visible dans le module Gestionnaire de campagnes pour les campagnes à but quantitatif de niveau publicité.

  3. Finalement, le client veut répartir de nouveau la distribution de la commande de telle sorte que la publicité 1 soit affichée selon un taux de 3 pour 1 par rapport à la publicité 2. Vous changez le but quantitatif pour passer à un but quantitatif de niveau campagne. La quantité commandée est de nouveau visible et représente la somme de la quantité commandée pour l’ensemble des publicités, soit 1 500. À présent, les volumes pour chacune des publicités correspondent à la quantité commandée.

    À ce niveau, vous pouvez modifier les volumes de chacune des publicités de sorte qu’ils correspondent à un rapport de 3 pour 1. Commerce Server calcule alors les nouvelles quantités, ou détermine que les nouveaux volumes payés correspondent à 1 125 et 375.

Dans un autre cas de figure, par exemple après la deuxième étape, le client veut que la campagne marketing soit exécutée selon un rapport de 2 pour 1 et qu’une troisième publicité ait également un volume égal à 1. Si vous ajoutez une publicité à une campagne marketing qui est passée d’un but quantitatif de niveau publicité à un but quantitatif de niveau campagne et que vous laissez un volume égal à 1 sans modifier les volumes payés des autres publicités, la livraison de la publicité sera erronée. Vous devrez rouvrir le Gestionnaire de campagnes et attribuer de nouveaux volumes à l’ensemble des publicités, puis vérifier les calculs réels.

Voir aussi

Permutation entre un but quantitatif de niveau campagne et un but quantitatif de niveau élément de la publicité

Planification d’une campagne marketing


Tables de références

Le module Tables de références de Business Desk vous permet de définir les tailles du contenu affiché sur votre site, de gérer les noms des groupes de pages, ainsi que d’établir des codes d’activité que vous pouvez utiliser afin d’éviter l’affichage simultané sur une même page de deux publicités pour le même secteur d’activité. Les propriétés contenues dans le module Tables de références garantissent la cohérence du contenu publicitaire sur votre site.

  • Les tailles de contenu correspondent aux tailles que vous voulez attribuer à votre contenu (publicités et remises). Commerce Server 2000 fournit plusieurs tailles de contenu par défaut. Ces tailles de contenu proviennent d’une liste de tailles fréquemment utilisées approuvée par le bureau Internet Advertising Bureau (IAB). Les tailles de contenu sont validées par l’intermédiaire de la section Taille du contenu du module Tables de références.

    Les tailles de contenu des tables de références sont disponibles lorsque vous sélectionnez la taille souhaitée pour le contenu d’un élément de la campagne. Vous pouvez afficher, modifier et supprimer n’importe laquelle des tailles prédéfinies. Vous pouvez également créer une taille de contenu adaptée à vos besoins.

  • Les codes d’activité correspondent à des codes pour les différents secteurs d’activité, par exemple le secteur automobile, aéronautique ou les boissons. Les codes d’activité permettent d’identifier le secteur d’activité associé à une publicité, afin d’éviter que deux publicités de sociétés concurrentes d’un même secteur d’activité s’affichent sur la même page. Les codes d’activité ne s’appliquent pas aux remises.

    Vous pouvez mettre à jour vos codes d’activité, par exemple pour inclure plusieurs codes pour les boissons, tels qu’un code pour du café et un autre pour du lait, de sorte que des publicités pour différentes boissons puissent s’afficher sur la même page. Il est par exemple tolérable de mettre sur la même page une publicité pour du café et une publicité pour du lait. Vous pouvez définir le niveau d’analyse des conflits du secteur d’activité en contrôlant le nombre d’entrées de cette table.

    Commerce Server fournit plusieurs codes d’activité courants. Les codes d’activité utilisés dans les publicités sont validés par l’intermédiaire de la section Code d’activité du module Tables de références. Les codes d’activité des tables de références sont disponibles lorsque vous sélectionnez le code d’activité souhaité pour un élément de la campagne. Vous pouvez afficher une liste de tous les codes d’activité disponibles, ajouter de nouveaux codes, modifier des codes existants et supprimer des codes de la section Code d’activité du module Tables de références.

  • Les groupes de pages représentent un ensemble de pages Web apparentées, indiquées par un nom de groupe de pages particulier et qui sont utilisées pour le ciblage des publicités. Par exemple, pour le site d’un journal, vous pouvez créer un groupe de pages pour les sports, un autre pour les nouvelles principales et un autre pour les nouvelles locales. Vous pouvez ensuite cibler les publicités pour qu’elles s’affichent uniquement sur les pages de certains groupes de pages.

    Lorsque vous facturez à vos clients l’affichage de publicités sur votre site, vous pouvez établir les taux de publicité par groupe de pages. Par exemple, vous pouvez faire payer le montant maximal pour les publicités affichées sur votre page d’accueil, et un montant moins important pour les publicités affichées sur les autres pages.

Remarque

  • Avant d’utiliser un groupe de pages, vous devez contacter le développeur de votre site pour qu’il active la page pour la publicité.

Voir aussi

Définition des tables de références


Publicités

Commerce Server prend en charge deux types de publicités : les publicités payées et les publicités maison.

  • Les publicités payées sont un contenu que Commerce Server délivre en fonction d’une formule de livraison spécifique appelée estimation de livraison.

  • Les publicités maison sont un contenu fourni lorsque les publicités payées ont pris de l’avance sur leur planification d’estimation de livraison. Par exemple, un client commande 1 000 publicités payées à livrer sur quatre mois, mais au cours des deux premiers mois, la publicité a été affichée 850 fois. Dans ce cas, pour rééquilibrer la planification d’estimation de livraison, des publicités maison sont affichées.

    Les publicités maison sont essentielles pour garantir une livraison uniforme des publicités payées. Des publicités maison sont également affichées lorsqu’aucune publicité payée ne convient pour la demande. Par exemple, une publicité maison est affichée si aucune publicité payée ne convient à une cible donnée.

    Les publicités maison peuvent également permettre de vendre le stock invendu à prix réduit. Elles peuvent également être utilisées si les publicités du site n’ont pas de but de livraison spécifique, mais que vous souhaitez exécuter des publicités selon des volumes spécifiés.

Composants d’une publicité

Dans Commerce Server, les publicités se composent de quatre éléments :

  • Les propriétés de la publicité comprennent le nom de la publicité, son type (publicité payée ou publicité maison), son volume ou le nombre de demandes ou de clics à livrer planifié (publicité payée et publicité maison), sa limite d’exposition et le secteur d’activité qui y est associé.

  • La planification de la publicité correspond à la date/heure de début et la date/heure de fin. Vous pouvez sélectionner les jours de la semaine d’affichage de la publicité et les heures de la journée auxquelles ces affichages ont lieu.

  • La cible publicitaire identifie les pages sur lesquelles la remise doit être affichée, ainsi que les groupes qu’elle cible.

  • L’affichage de la publicité identifie la taille de la publicité, son type (par exemple, image, texte ou HTML), et si nécessaire, l’image et/ou l’adresse URL sur laquelle l’utilisateur peut cliquer pour aller sur une autre page (ou un autre site Web). Vous pouvez afficher les publicités sous forme d’images, de texte, de pages HTML, d’images non associées à un lien hypertexte, de publicités d’achat immédiat, de Services Windows Media ou de vignette. (Une vignette publicitaire est composée d’un texte affiché à côté de l’image correspondant à la publicité.)

Ciblage des publicités

Commerce Server vous permet de déterminer le moment où une publicité doit être affichée, son emplacement et son destinataire. Lorsque vous créez une publicité, vous spécifiez les éléments suivants :

  • Limite d’exposition. Nombre de fois où la publicité peut être affichée à un utilisateur au cours d’une session.

  • Volume. Moyen permettant de déterminer la fréquence à laquelle une publicité doit être affichée, par rapport à tous les éléments de la campagne d’un client donné. Dans une campagne marketing, le volume s’applique uniquement aux publicités dont le but quantitatif a été défini au niveau de la campagne. Si les publicités ont un but quantitatif de niveau élément, le volume n’est pas utilisé pour les publicités payées.

    Pour les publicités maison, le volume est déterminé en fonction de toutes les autres publicités maison pour tous les clients et toutes les campagnes marketing. Pour les publicités payées, le volume est déterminé en fonction des autres publicités payées de la même campagne marketing. Le volume d’un élément de la campagne est calculé par rapport au volume de tous les autres éléments de la campagne.

    Supposons que vous ayez quatre publicités pour vendre de la peinture et que vous définissiez le volume de la manière suivante :

    Publicité | Volume | Pourcentage d’affichage
    Peinture bleue | 1 | 10
    Peinture verte | 2 | 20
    Peinture rouge | 3 | 30
    Peinture jaune | 4 | 40
    Volume total | 10 | 100

    Le volume total de toutes les publicités est de 10 (1+2+3+4 = 10). La publicité pour la peinture bleue ayant un volume égal à 1, elle sera affichée une fois toutes les dix demandes de publicité.

    Pour les publicités payées, le volume correspond au rapport entre une publicité et la somme des éléments de la campagne de cette campagne marketing. Pour les publicités maison, le volume correspond à la somme des volumes de toutes les autres publicités maison de la campagne marketing.

    Pour les publicités dont le but quantitatif est défini au niveau de l’élément de la campagne, le volume n’est pas utilisé pour déterminer la livraison de la publicité. Vous spécifiez directement le nombre de demandes ou de clics à fournir.

  • Groupes de pages. Ensemble de pages Web apparentées, indiquées par un nom de groupe de pages particulier, et utilisées pour le ciblage des publicités. Par exemple, pour le site d’un journal, vous pouvez créer un groupe de pages pour les sports, un autre pour les nouvelles principales et un autre pour les nouvelles locales. Vous pouvez ensuite cibler les publicités pour qu’elles s’affichent uniquement sur les pages de certains groupes de pages.

    Les groupes de pages sont créés à l’aide du module Tables de références.

  • Groupes cibles. Ensemble de cibles où du contenu sera affiché. Par exemple, vous pouvez cibler des publicités pour des utilisateurs possédant des propriétés de profil spécifiques. Pour plus d’informations sur les cibles et les groupes cibles, consultez Ciblage et personnalisation.

Traitement des éléments de la campagne de publicité

L’infrastructure de sélection de contenu (CSF) traite les variables spécifiées pour une publicité : but quantitatif de la campagne, limite d’exposition, planification, volume, groupes de pages et groupes cibles. Chaque fois qu’un utilisateur visite votre site, l’infrastructure détermine si la publicité doit être affichée.

L’infrastructure de sélection de contenu pour la publicité utilise une formule appelée estimation de livraison (NOD) pour attribuer initialement aux publicités un score définissant leur état d’avancement par rapport à la planification. Cette formule tient compte de la quantité totale de contenu à livrer et de la période sur laquelle cette quantité doit être livrée. L’estimation de livraison est calculée par l’infrastructure de sélection de contenu pour chaque demande de publicité, une fois la demande de publicité traitée. L’estimation de livraison est appliquée aux publicités payées uniquement ; elle n’est pas appliquée aux publicités maison.

Si vous possédez plusieurs publicités et que vous vouliez savoir sur quelle base elles sont affichées, contactez votre développeur de site. Commerce Server comprend un outil appelé TraceScores que votre développeur de site peut utiliser pour suivre le processus de sélection. Utilisez TraceScores pour connaître le fonctionnement exact du processus de décision de contenu interne.

Si vous envisagez d’exécuter de nombreuses campagnes marketing simultanément, à l’aide du même groupe cible et de la même priorité, l’infrastructure de sélection de contenu (CSF) sélectionne la publicité à afficher en fonction de son type. Si les publicités sont des publicités maison, la sélection de publicité est effectuée de manière aléatoire en utilisant les volumes comme probabilités relatives. Si les publicités sont des publicités payées, la sélection s’effectue en fonction du calcul de l’estimation de livraison (qui prend en compte la date de début, la date de fin, le nombre d’événements planifiés et le nombre d’événements qui se sont produits à ce jour). La pénalité d’historique peut modifier le score ; elle applique une pénalité décroissante aux publicités récemment affichées par l’utilisateur. Lorsque la pénalité d’historique est activée, les publicités font l’objet de « rotations » dans le temps.

Voir aussi

Ajout d’un élément de la campagne de publicité


Remises

Vous pouvez appliquer des remises à tous les éléments de votre catalogue. Vous pouvez appliquer une remise sur une commande entière (remise au niveau de la commande), ou sur les articles spécifiques d’une commande (remise au niveau de l’article).

  • Les remises au niveau de la commande s’appliquent à tous les produits d’un panier d’achat. Par exemple, la livraison gratuite est un type de remise au niveau de la commande : vous pouvez accorder aux utilisateurs une livraison gratuite pour tous les produits de leur panier. La livraison gratuite est la seule remise au niveau de la commande fournie avec Commerce Server. Pour offrir un autre type de remise au niveau de la commande, par exemple une remise de 10 pour cent aux utilisateurs privilégiés, un développeur de site doit apporter des modifications personnalisées à votre site.

  • Les remises au niveau de l’article s’appliquent à des produits spécifiques du panier.

Si vous appliquez une remise à l’intégralité d’une commande, la remise est appliquée à chaque article de manière individuelle. Une seule remise peut être appliquée à une quantité d’un élément de commande. Il est impossible d’appliquer deux remises à une quantité du même élément.

Vous pouvez utiliser Commerce Server pour créer et appliquer les types de remises suivants :

  • Les remises sur clic ne sont appliquées que si l’utilisateur clique sur l’adresse URL de la remise, qui peut être représentée par une image du produit indiquant, par exemple, « 10 pour cent de remise ». Les développeurs de site peuvent étendre ce type de remise à d’autres usages, tels que des coupons de réduction, que les utilisateurs doivent posséder pour bénéficier de la remise.

  • Les remises supplémentaires sont basées sur l’achat d’autres produits. Par exemple, lorsque les utilisateurs ajoutent un téléphone à leur panier, vous pouvez leur offrir un kit mains-libres au moment de la validation des achats, qu’ils peuvent ensuite accepter en l’ajoutant à leur panier. Vous pouvez également leur proposer un autre accessoire à un prix remisé.

  • Les remises en pourcentage réduisent le prix des produits en fonction d’un pourcentage, plutôt que d’un montant en francs. Par exemple, vous pouvez appliquer une remise de 10 pour cent à des produits, puis modifier le prix de ces produits, si besoin est. Lorsque vous modifiez le prix des produits, le montant de la remise est mis à jour automatiquement.

  • Les remises en francs réduisent le prix des produits selon un montant fixe. Par exemple, vous pouvez offrir une remise de 30,00 FF sur certains produits. Même si vous modifiez le prix des produits, le montant de la remise (30,00 FF) reste le même.

  • Les remises « planifiées » réduisent le prix des produits à certaines dates. Pour planifier l’application de remises à certaines heures, vous pouvez créer des expressions qui évaluent la propriété Heure actuelle. Par exemple si Heure actuelle > 17:00 et Heure actuelle < 21:00, vous appliquez une remise de 10 pour cent au produit.

Vous pouvez appliquer ces remises à des produits individuels, à tous les produits d’une catégorie, ou vous pouvez créer une expression pour appliquer une remise aux produits répondant à des critères spécifiques, par exemple offrir 10 pour cent de remise sur tous les articles d’un fabricant donné.

Vous pouvez par exemple créer des remises qui s’appliquent dans les situations suivantes :

  • Le prix du produit est supérieur à 120,00 FF. Il s’agit d’une expression de condition de remise. Les expressions de condition de remise se basent sur une propriété de produit.

  • L’utilisateur achète 2. Il s’agit d’un critère obligatoire de condition de remise.

  • L’utilisateur clique sur une publicité de remise dans la page des sports. Il s’agit de la partie de la remise sur clic.

  • L’utilisateur est inscrit. Il s’agit d’une expression d’éligibilité pour la remise. Les expressions d’éligibilité pour la remise sont basées sur les profils utilisateur et les profils de contexte.

Vous ne pouvez pas appliquer simultanément plusieurs remises à un même produit. Un client ne peut bénéficier que d’une remise par produit, ou une condition ne peut s’appliquer qu’à une seule remise. Une fois qu’un produit a été utilisé comme condition ou comme remise exceptionnelle pour une remise, il ne peut l’être à nouveau pour une autre remise.

Composants d’une remise

Un élément de la campagne de remise possède les composants suivants : propriétés de la remise, définition de la remise, cible de la remise et affichage de la remise. Le module Gestionnaire de campagnes vous permet de définir ces composants lorsque vous créez la remise.

  • Les propriétés de la remise correspondent au nom de la remise, à sa priorité, à sa date de début et à sa date de fin.

  • La définition de la remise spécifie l’objet de la remise, son montant et son bénéficiaire. Une définition de la remise possède les composants suivants :
    • L’expression de ciblage identifie l’objet de la remise. Par exemple, l’expression de ciblage Prix_livre > 120 applique la remise à tous les livres qui répondent à ce critère.

    • Les conditions identifient l’utilisateur et/ou le contexte dans lequel la remise est affichée. Par exemple, si l’utilisateur est une femme inscrite, qui a acheté pour 300 FF de marchandises lors de sa dernière visite, vous pouvez proposer une remise. Ou, si l’utilisateur effectue des achats sur votre site un jour particulier ou qu’il consulte une page spécifique, il peut répondre aux exigences du contexte et recevoir une remise de 10 pour cent.

    • La remise exceptionnelle identifie ce que les utilisateurs reçoivent, par exemple, une remise de 10 pour cent ou une livraison gratuite. La condition de remise exceptionnelle doit être vraie pour permettre l’application de la remise. La condition de remise exceptionnelle est évaluée pour chaque article du bon de commande. Une condition de remise exceptionnelle peut être une expression spécifiant que la remise s’applique à un article en particulier ou à l’ensemble des articles.
  • La cible de la remise identifie les pages et les groupes cibles sur lesquels la remise doit s’afficher.

  • L’affichage de la remise identifie le nombre de fois que la remise est affichée à un utilisateur, l’image et/ou l’adresse URL sur laquelle l’utilisateur doit cliquer pour obtenir la remise, ainsi que les informations de remise affichées dans le panier lorsque l’utilisateur procède à la validation de ses achats.

Priorité d’une remise

Vous attribuez à chaque remise une priorité qui détermine le moment où elle doit être appliquée, par rapport à d’autres remises qui peuvent également s’appliquer à un produit. (À la différence des publicités, les remises n’utilisent pas de volume pour déterminer le moment où elles sont appliquées.) Par exemple, vous créez trois remises en attribuant une priorité à chacune d’elles, comme l’illustre le tableau suivant.

Remise | Priorité
Remise de 10 pour cent sur les téléphones | 10
Remise de 30 pour cent pour les premiers utilisateurs qui achètent des téléphones, radios ou ordinateurs | 20
Livraison gratuite | 30

Si un premier utilisateur navigue sur votre site et qu’il achète un téléphone, ainsi que d’autres articles, seule une remise de 10 pour cent sera appliquée au téléphone. Ni la remise de 30 pour cent ni celle de livraison gratuite ne s’appliquent à l’achat du téléphone, car il s’agit de remises d’une priorité inférieure.

Si deux remises possèdent la même priorité, le type de base de données peut influer sur la remise qui est appliquée. Les résultats sont indéterminés pour les remises d’égale priorité.

Remises en fonction de la quantité ou de la valeur achetée

Vous pouvez appliquer des remises en fonction de la quantité ou de la valeur des achats effectués par les utilisateurs. Par exemple, vous pouvez créer une remise qui s’applique lorsqu’un utilisateur achète trois packs de jus de fruits (quantité), ou une remise qui s’applique lorsqu’un utilisateur achète du jus de fruits pour une somme de 120,00 FF (valeur).

Vous pouvez appliquer une remise par quantité ou par valeur. Supposons que le rayon boissons de votre boutique en ligne propose une offre spéciale pour l’été : pour un pack de jus de fruits acheté, le second est à moitié prix. Votre boutique en ligne propose en outre une autre offre spéciale : une remise de 10 pour cent sur tous les produits de la catégorie des boissons. Supposons que vous attribuiez des priorités à ces remises, comme l’illustre le tableau suivant.

Remise | Priorité
Pour un pack de jus de fruits acheté, le second est à moitié prix. | 10
10 pour cent de remise sur tous les produits de la catégorie des boissons. | 20

Si un utilisateur achète quatre packs de jus de fruits, les remises sont appliquées comme suit :

  • Pack 1 : Aucune remise

  • Pack 2 : 50 pour cent de remise

  • Pack 3 : 10 pour cent de remise

  • Pack 4 : 50 pour cent de remise, seulement si aucune limite n’a été fixée pour la remise « Pour un pack de jus de fruits acheté, le second est à moitié prix ». La remise de 50 pour cent s’appliquera de nouveau au lieu des 10 pour cent car vous lui avez attribué une priorité supérieure.

Limites de remise

Vous pouvez limiter le nombre de remises applicables à un panier. Si la valeur de la limite de remise est égale à zéro (0), les remises sont illimitées : la remise peut être appliquée plusieurs fois, si les conditions requises sont satisfaites à plusieurs reprises dans le panier. Une limite de remise est spécifique à un panier et ne s’applique pas à un ensemble de paniers. Par exemple, si un utilisateur procède à la validation des achats, puis qu’il retourne sur le site et qu’il achète les mêmes articles faisant l’objet d’une remise, il bénéficiera à nouveau de la même remise.

Traitement des éléments de la campagne de remise

Les campagnes de remise sont traitées par le pipeline de sélection de contenu pour les remises et le composant de pipeline Remise de commande. Le pipeline de sélection de contenu pour les remises vous permet d’afficher la remise la plus appropriée à un utilisateur. Le composant Remise de commande contenu dans le pipeline Panier vous permet d’appliquer des remises au panier d’achat.

  • Le pipeline de sélection de contenu pour les remises vérifie les dates de début et de fin des remises, puis ajuste les scores figurant dans la liste des remises possibles. Il garantit que les remises les plus appropriées pour l’utilisateur en cours reçoivent la priorité la plus élevée.

  • Le composant de pipeline Remise de commande applique d’abord les conditions préalables aux remises disponibles. En fonction de la remise concernée, il utilise les informations de profil utilisateur et de profil de contexte pour évaluer les expressions de ciblage. En outre, si une remise nécessite qu’un clic soit effectué, il vérifie la liste des identificateurs des éléments de la campagne de tous les éléments sur lesquels un clic a été exécuté. Ensuite, le pipeline des commandes traite chaque élément, en testant les conditions et les remises exceptionnelles. Les remises sont appliquées par ordre de priorité, de la plus élevée à la moins élevée. Si deux remises possèdent la même priorité, les propriétés autres que la priorité déterminent l’ordre d’application des remises.

Voir aussi

Ajout d’un élément de la campagne de remise

Ciblage d’une publicité ou d’une remise


Publipostage

Vous créez un élément de la campagne de publipostage pour diffuser des publicités sous forme de messages électroniques à un groupe d’utilisateurs ciblé. L’objectif est d’obtenir un taux de réponse élevé à ces publipostages. Vous pouvez envoyer des messages électroniques personnalisés à partir d’une page Web, ou des messages non personnalisés à partir d’un fichier texte simple. Vous pouvez créer des messages de publipostage qui comprennent des pièces jointes, telles que des images, remises ou adresses URL. Le service de publipostage est conçu pour envoyer en bloc des messages électroniques personnalisés à des millions d’utilisateurs.

Pour créer une campagne de publipostage, vous devez utiliser le module Gestionnaire de campagnes dans Business Desk. Les éléments de campagne de publipostage sont traités par le service de publipostage, qui est un puissant moteur capable d’envoyer un grand nombre de messages électroniques très rapidement.

Pour créer un élément de la campagne de publipostage, vous devez effectuer les étapes suivantes :

  • Créer le message. Pour pouvoir créer des messages électroniques personnalisés, votre développeur de site doit au préalable créer des pages ASP comportant le texte personnalisé, puis les ajouter au serveur Web. Il doit vous donner l’adresse URL correspondant à l’emplacement des pages ASP. Pour créer un message non personnalisé, vous pouvez taper le texte dans un fichier texte simple, par exemple, à l’aide du Bloc-notes.

  • Générer une liste de destinataires. Vous pouvez générer une liste de destinataires pour la campagne de publipostage grâce aux puissants outils d’analyse de Commerce Server. Par exemple, à l’aide du module Rapports de Business Desk, vous pouvez exécuter un rapport sur les données Data Warehouse, et obtenir une liste d’utilisateurs spécifiques. Vous pouvez ensuite exporter la liste résultante vers le Gestionnaire de listes. Sinon, vous pouvez utiliser la ressource Predictor pour générer une liste d’utilisateurs dans un segment de population, puis exporter cette liste vers le Gestionnaire de listes. Une fois qu’une liste a été exportée vers le Gestionnaire de listes, elle est disponible pour le service de publipostage.

    Vous ne pouvez pas utiliser de groupes cibles pour envoyer directement le publipostage aux adresses de messagerie des utilisateurs.

  • Créer et planifier la campagne de publipostage. Utilisez le module Gestionnaire de campagnes pour spécifier le nom de la campagne marketing, le nom de la liste de destinataires, l’heure et la date de début de l’élément de la campagne, ainsi que l’adresse URL (pour les messages personnalisés) ou le fichier statique où le service de publipostage doit trouver le corps du message.

Pour plus d’informations sur l’ajout d’éléments de la campagne de publipostage, consultez Ajout d’un élément de la campagne de publipostage.

Listes d’annulations d’abonnements

Le service de publipostage prend en charge la fonctionnalité d’annulation d’abonnement. Pour les travaux de publipostage s’exécutant dans le cadre d’un élément de la campagne, les destinataires individuels peuvent demander d’annuler l’abonnement à un élément de la campagne de publipostage. Vous pouvez filtrer une liste de publipostage par rapport à une liste d’annulations d’abonnements à l’aide d’une page ASP d’annulation d’abonnement fournie avec les sites solutions.

Le développeur chargé de créer la page ASP pour les travaux de publipostage à partir du serveur Web peut fournir des liens vers une page ASP d’annulation d’abonnement, permettant au destinataire d’annuler son abonnement au site ou à l’élément de la campagne de publipostage en cliquant sur le lien approprié. Lorsqu’un travail de publipostage s’exécute dans le cadre d’un élément de la campagne, le service de publipostage recherche la présence de la liste d’annulations d’abonnements au niveau du site et au niveau de l’élément de la campagne. Si l’une des listes existe, elle est retirée de la liste de publipostage d’origine laissant ainsi à la liste résultante le rôle de nouvelle liste de publipostage.

Traitement des éléments de la campagne de publipostage

Le service de publipostage effectue les tâches suivantes :

  • Il gère les travaux de publipostage.

  • Il élabore les corps de messages personnalisés et non personnalisés.

  • Il met en forme les en-têtes de messages électroniques.

  • Il définit la valeur de la page de code (langue) et convertit les corps de messages selon le type de message correct : MHTML (MIME Encapsulation of Aggregate HTML Documents), MIME (Multipurpose Internet Mail Extensions) ou texte.

  • Il envoie des messages électroniques aux destinataires.

Le pipeline du service de publipostage sert à traiter des listes de destinataires. Vous pouvez ajouter de nouveaux composants au pipeline, intégrer ces composants à des systèmes professionnels de gestion d’activité, ou les remplacer par les composants de fournisseurs tiers.

Voir aussi

Ajout d’un élément de la campagne de publipostage


Listes des utilisateurs et listes de publipostage

Le module Gestionnaire de listes de Commerce Server Business Desk vous permet d’importer et d’exporter des listes des utilisateurs et des listes de publipostage dans Business Desk.

  • Ajout de listes au Gestionnaire de listes. Vous pouvez exporter un rapport d’analyse Commerce Server sous forme de liste vers le Gestionnaire de listes. Vous pouvez importer dans le Gestionnaire de listes une liste créée dans une autre application, telle que SQL Server (pour créer une table SQL), le Bloc-notes (pour créer un fichier texte ASCII), Microsoft Excel (pour créer une feuille de calcul) ou Microsoft Outlook (pour exporter un fichier .pst contenant une liste d’adresses).

    Par exemple, si vous possédez une liste d’adresses dans une feuille de calcul Microsoft Excel, vous pouvez utiliser le Gestionnaire de listes pour l’importer dans Business Desk, puis utiliser la liste dans une campagne de publipostage. Si vous identifiez une liste des utilisateurs dans un rapport d’analyse, vous avez la possibilité d’exporter les résultats du rapport sous forme de liste vers le Gestionnaire de listes, puis d’utiliser la liste dans une campagne de publipostage.

    Pour plus d’informations sur l’importation d’une liste dans le Gestionnaire de listes, consultez Importation et exportation de listes. Pour plus d’informations sur l’exportation d’un rapport d’analyse Commerce Server vers le Gestionnaire de listes, consultez Exportation d’un rapport statique.

  • Utilisation de listes du Gestionnaire de listes. Vous pouvez importer une liste des utilisateurs du module Gestionnaire de listes dans le module Utilisateurs, puis mettre à jour les profils utilisateur contenus dans la liste. Par exemple, vous exécutez le rapport Ventes client de Commerce Server afin d’identifier les utilisateurs achetant le plus grand nombre de produits, puis l’exportez sous forme de liste vers le Gestionnaire de listes. Vous importez la liste des utilisateurs du Gestionnaire de listes dans le module Utilisateurs, puis vous mettez à jour les profils utilisateur contenus dans la liste en attribuant une valeur spéciale à une propriété de profil des profils utilisateur. Vous utilisez cette valeur pour cibler des campagnes de publicité ou de remise spécifiques, destinées aux utilisateurs dont vous avez modifié les profils. Pour plus d’informations sur l’importation d’une liste dans le module Utilisateurs, consultez Importation d’une liste de profils utilisateur. Pour plus d’informations sur la modification de plusieurs profils utilisateur, consultez Modification de plusieurs utilisateurs.

    Vous avez également la possibilité d’exporter la liste vers une autre application. Vous pouvez par exemple exporter une liste générée à partir d’un rapport d’analyse vers une feuille de calcul Microsoft Excel. Pour plus d’informations sur l’exportation d’une liste vers un fichier, consultez Importation et exportation de listes.

Listes de publipostage

Les listes de publipostage contiennent des lignes d’adresses de messagerie destinées à une campagne de publipostage. Chaque ligne de la liste représente un destinataire unique et contient les éléments suivants, dans un format délimité par des virgules.

Élément | Description
Adresse de messagerie | Nom ou nom@domaine.
GUID | Identificateur global unique. Identificateur d’utilisateur utilisé pour fournir le contenu d’un message électronique personnalisé.
Format du message | Contrôle le type de format du message dans lequel l’objet de données de collaboration (CDO, Collaboration Data Object) traduit le résultat. Par exemple, le format texte, MHTML (MIME Encapsulation of Aggregate HTML Documents) ou MIME (Multipurpose Internet Mail Extensions).
Langue | Valeur de la page de code du message électronique.
URL | Permet de transmettre des adresses URL individuelles au niveau de chaque utilisateur à CDO.

Vous pouvez créer une liste à l’aide de n’importe quel éditeur de texte, comme le Bloc-notes. Vous pouvez ajouter une liste de publipostage à Business Desk à l’aide du module Gestionnaire de listes qui permet d’importer des fichiers texte ASCII, des fichiers provenant de Microsoft Excel ou Microsoft Outlook, ou des tables issues de bases de données SQL Server. Pour créer une liste de publipostage en utilisant des informations contenues dans un fichier .pst Microsoft Outlook, consultez la rubrique « Exportation d’éléments vers un fichier ou vers un fichier de dossiers personnels » dans l’aide en ligne de Microsoft Outlook.

Pour plus d’informations sur l’importation de listes de publipostage pour une campagne de publipostage, consultez Importation d’une liste de publipostage.

Listes des utilisateurs

Les listes des utilisateurs contiennent des lignes d’identificateurs d’utilisateurs et, facultativement, d’autres propriétés de profil utilisateur. Vous pouvez exporter des listes des utilisateurs du module Gestionnaire de listes vers le module Définition de profil, puis effectuer des mises à jour en bloc des propriétés d’utilisateurs donnés.

Par exemple, vous pouvez importer une liste du module Identification de segments et définir une propriété dans le profil utilisateur de chaque utilisateur pour indiquer son appartenance à un segment particulier. Vous pouvez ensuite utiliser ces informations pour cibler des publicités et des remises en fonction du segment d’utilisateurs spécifié.

Listes génériques

Contrairement aux listes des utilisateurs et listes de publipostage, les listes génériques ne sont soumises à aucune exigence en matière de contenu. Un développeur de site doit personnaliser votre application pour permettre l’utilisation des listes génériques.

Les listes génériques peuvent contenir toutes sortes d’éléments et peuvent inclure des en-têtes, comme dans l’exemple suivant :

Identificateur du produit | Nom du produit | Quantité
1 | Chaussettes | 100
2 | Maillots | 20

Vous pouvez utiliser les listes génériques pour définir des propriétés de produits. Vous exécutez le rapport Ventes produits de Commerce Server pour identifier les produits qui ont le plus de succès (en termes de ventes) sur votre site Web. Vous utilisez ensuite le module Gestionnaire de listes pour importer les résultats de ce rapport sous la forme d’une liste de produits, puis vous utilisez le module Éditeur de catalogue pour définir une propriété pour ces produits, les identifiant comme des produits qui se vendent bien. Vous pouvez alors utiliser cette propriété pour créer des expressions de ciblage ou pour augmenter le prix de ces produits de cinq pour cent.

Les listes génériques peuvent également être utilisées pour envoyer par messagerie électronique des bons de réduction à vos clients en ligne fréquents pour une utilisation dans votre magasin. Vous pouvez effectuer cette opération en exécutant un rapport pour analyser les achats des utilisateurs, en exportant les résultats du rapport sous la forme d’une liste qui inclut les adresses de messagerie, puis en utilisant le Gestionnaire de listes pour exporter cette liste pour qu’elle soit utilisée dans une application de création d’étiquettes.

Listes dynamiques et listes statiques

Les listes des utilisateurs, de publipostage et génériques peuvent être dynamiques ou statiques.

  • Les listes dynamiques sont créées au moment de l’exécution, par exemple lors de l’exportation de la liste à partir du Gestionnaire de listes, pour une utilisation dans une campagne de publipostage. Chaque fois que cette liste est demandée, le Gestionnaire de listes récupère les données les plus récentes dans Data Warehouse. Seules les informations nécessaires à la création de la liste sont stockées dans la base de données utilisée par le Gestionnaire de listes. Utilisez des listes dynamiques pour les campagnes de publipostage que vous exécutez fréquemment ou pour les listes de destinataires qui sont souvent mises à jour.

  • Les listes statiques sont immédiatement créées sur demande, puis stockées dans la base de données utilisée par le Gestionnaire de listes. Utilisez des listes statiques pour les campagnes de publipostage que vous n’exécutez pas fréquemment ou pour les listes de destinataires qui ne sont pas souvent mises à jour.

Voir aussi

Importation et exportation de listes

Importation d’une liste de profils utilisateur

Gestion des listes des enregistrements utilisateur

Création d’une liste de publipostage


Ciblage et personnalisation

Le ciblage et la personnalisation sont des processus de fourniture de contenu personnalisé à un ou plusieurs utilisateurs, ou à n’importe quelle autre entité commerciale dotée d’un profil. Par exemple, si vous gérez un site Web sur le sport, vous pouvez fournir des informations axées sur le tennis uniquement aux joueurs de tennis ou aux utilisateurs intéressés par le tennis. Vous pouvez réaliser des annonces concernant les prochains tournois de tennis, ou des publicités et des promotions pour les produits liés au tennis.

Commerce Server 2000 vous permet d’effectuer deux types de ciblage :

  • Ciblage basé sur des expressions. Également appelé ciblage explicite. Il s’utilise lorsque vous connaissez les propriétés de profil des utilisateurs auxquels vous fournissez du contenu, ou lorsque le contexte vous est familier et que vous savez quel est le contenu à offrir. Les modules Campagnes marketing de Commerce Server Business Desk vous permettent de spécifier ce type d’informations et de fournir le contenu souhaité aux utilisateurs.

  • Prévision. Également appelé ciblage implicite. Il s’utilise lorsque vous ne connaissez pas toutes les propriétés de profil nécessaires pour cibler l’utilisateur, ou que vous n’avez pas de contenu spécifique à fournir. La ressource Predictor de Commerce Server vous permet d’extrapoler ce type d’informations à partir des données utilisateur existantes, de manière à fournir un contenu intéressant chaque utilisateur.

Le ciblage basé sur des expressions et la prévision améliorent votre capacité à fournir un contenu intéressant les utilisateurs qui le reçoivent. Les utilisateurs sont plus enclins à revenir sur votre site lorsqu’ils s’attendent à recevoir un contenu personnalisé.

Utilisation des méthodes de ciblage dans la gestion d’un site Web

Ciblage basé sur des expressions

Générateur d’expressions

Traitement des expressions

Utilisation des méthodes de ciblage dans la gestion d’un site Web

Vous pouvez cibler un contenu en fonction de n’importe quel élément à caractère commercial possédant un profil. Par exemple, vous pouvez cibler un contenu en fonction d’utilisateurs anonymes, d’utilisateurs inscrits, de sociétés ou de contextes. Pour obtenir des informations conceptuelles sur les profils, consultez Profils.

Business Desk vous permet de cibler un contenu en fonction d’éléments à caractère commercial. Par exemple, vous pouvez effectuer les opérations suivantes :

  • Créer une campagne de publipostage pour adresser des messages personnalisés aux utilisateurs.

  • Fournir aux utilisateurs un contenu tel que de la publicité, d’après certaines propriétés de profil utilisateur. Par exemple, vous avez la possibilité d’afficher des publicités pour des vélos aux utilisateurs dont la propriété Sport favori est « Cyclisme ».

  • Identifier des groupes de pages Web, puis cibler le contenu à afficher uniquement sur ces pages, ou seulement lorsque des utilisateurs possédant des propriétés spécifiques accèdent à ces pages.

  • Afficher un contenu sur une page en fonction des propriétés d’un autre contenu sur cette page. Par exemple, si votre site Web propose des actualités, vous pouvez attribuer des profils au contenu en spécifiant si la propriété « Type_temps » est « Chaud » ou « Froid ». Si Type_temps = Chaud, vous pouvez afficher une publicité pour des climatiseurs.

  • Appliquer des remises à certains produits de votre catalogue d’après leurs caractéristiques ou en fonction du profil utilisateur.

  • Choisir le moment où une remise doit être affichée et celui où elle doit être appliquée à la commande. Par exemple, vous pouvez appliquer une remise au moment où les utilisateurs placent l’article dans leur panier ou lorsqu’ils procèdent à la validation des achats.

Ciblage basé sur des expressions

Le ciblage basé sur des expressions est un processus de création d’expressions qui définit les utilisateurs ou le contexte à cibler, ainsi que le contenu à fournir. Une expression est une condition qui est évaluée par rapport à des profils afin de déterminer si un contenu doit être fourni ou si une autre action doit être effectuée. Par exemple, user.totalvisit > 100 peut être une expression. Si cette expression prend la valeur « Vrai », un contenu spécifique s’affiche pour l’utilisateur.

Les modules Campagnes marketing Business Desk vous permettent de créer des expressions, puis d’associer ces expressions à l’action à effectuer une fois l’expression évaluée. Vous pouvez créer deux types d’expressions :

  • Expressions de ciblage. Elles identifient l’emplacement, le moment et le destinataire du contenu à afficher. Par exemple, vous pouvez cibler un contenu en fonction d’utilisateurs possédant des propriétés de profil spécifiques. Vous pouvez également cibler un contenu en fonction des sections spécifiques d’un site Web, appelées groupes de pages. Par exemple, vous pouvez créer une expression de ciblage qui affiche certaines publicités uniquement sur les pages de sport.

  • Expressions de catalogue. Elles indiquent les produits d’un catalogue auxquels il est possible d’appliquer une remise. Par exemple, Prix du produit = 120,00 peut être une expression de catalogue. Si cette expression a la valeur « Vrai » pour un produit donné, une remise de 10 pour cent est appliquée au prix de ce produit lorsque les utilisateurs l’ajoutent à leur panier d’achat.

Après avoir créé des expressions de ciblage, vous pouvez les associer pour former un groupe cible. Un groupe cible est un ensemble d’expressions et d’actions. Par exemple, vous créez une expression destinée à afficher un contenu spécifique aux utilisateurs ayant visité le site 10 fois, et une autre expression pour afficher un contenu aux utilisateurs ayant acheté un maillot de football. Vous pouvez associer les deux expressions en un groupe cible à l’aide des instructions ET ou OU. Par exemple :

Si l’utilisateur a visité le site 10 fois ET l’utilisateur a acheté un maillot de football,

Afficher une publicité pour un produit lié au football.

Dans un groupe cible, vous associez les expressions en spécifiant l’action à entreprendre lorsque chaque expression prend la valeur « Vrai ». Chaque action possède deux multiplicateurs : un multiplicateur à appliquer si l’expression prend la valeur « Vrai », et un multiplicateur à appliquer si l’expression prend la valeur « Faux ». Lorsque le multiplicateur est appliqué, l’expression reçoit un score qui détermine si le contenu peut être fourni ou non. Vous pouvez spécifier les actions suivantes :

  • Cibler. Si l’expression prend la valeur « Vrai », le score augmente, de même que la probabilité d’affichage du contenu. Si l’expression prend la valeur « Faux », le score n’est pas modifié. Dans ces deux scénarios, le contenu peut être fourni.

  • Requérir. Si l’expression prend la valeur « Vrai », le contenu peut être fourni ; si la valeur est « Faux », le contenu ne peut pas être fourni.

  • Exclure. Si l’expression prend la valeur « Vrai », le contenu ne peut pas être fourni ; si la valeur est « Faux », le contenu peut être fourni.

  • Sponsoriser. Si l’expression prend la valeur « Vrai », le contenu peut être fourni et aucun autre contenu n’est possible sauf s’il possède également une expression avec action = Sponsoriser. (Sponsoriser ne possède qu’un seul multiplicateur.) Par exemple, si Microsoft sponsorise une publicité sur une page d’accueil, seules les publicités de Microsoft s’affichent ; cependant, s’il existe plusieurs publicités d’autres sociétés sponsorisant la page d’accueil, ces publicités peuvent également être affichées.

Un développeur de site peut modifier les valeurs des multiplicateurs livrés avec Commerce Server. Cette opération vous sert à attribuer aux expressions comportant un type d’action spécifique une priorité plus élevée qu’aux expressions comportant un autre type d’action.

Générateur d’expressions

La fonctionnalité de Commerce Server qui permet aux chefs d’entreprise de créer, modifier et afficher des expressions s’appelle le Générateur d’expressions. Le Générateur d’expressions fournit l’interface utilisateur nécessaire à la création d’expressions. Il accède aux propriétés appropriées pour créer une expression, la nommer et la stocker dans les bases de données Commerce Server.

Le Générateur d’expressions est conçu de telle sorte que les développeurs de site peuvent facilement incorporer sa fonctionnalité et son interface utilisateur dans d’autres modules Business Desk. En outre, il peut être appelé par n’importe quelle application Web qui utilise et manipule des expressions, ce qui vous permet de l’intégrer à d’autres processus. Par exemple, si vous possédez déjà un processus de gestion de contenu, vous pouvez y incorporer la fonctionnalité du Générateur d’expressions, puis cibler le contenu en fonction des utilisateurs.

Pour créer des applications qui utilisent le Générateur d’expressions, vous devez effectuer les opérations suivantes :

  • Définir des profils. Vous spécifiez les profils que l’expression doit utiliser, et le Générateur d’expressions charge ces définitions de profils pour créer l’expression. Vous pouvez également spécifier un filtre de propriétés de profil pour limiter les propriétés du profil qui seront à la disposition d’un utilisateur du Générateur d’expressions.

  • Enregistrer des expressions. Vous pouvez spécifier la banque d’expressions/de profils à utiliser, et le Générateur d’expressions y charge et enregistre les expressions.

  • Afficher des messages aux utilisateurs. Vous pouvez personnaliser les messages affichés dans l’interface utilisateur du Générateur d’expressions. Par exemple, le message de titre par défaut est « Créer une expression », mais pour les besoins de votre implémentation, vous pouvez modifier ce message en « Créer une expression de ciblage publicitaire ».

Le Générateur d’expressions utilise le langage DHTML (Dynamic Hypertext Markup Language) pour son interface utilisateur, aussi les feuilles de style de l’application s’appliquent à l’interface utilisateur du Générateur d’expressions et donnent ainsi à votre application un aspect cohérent.

Traitement des expressions

Commerce Server effectue plusieurs étapes pour spécifier le contenu qui doit être affiché à l’utilisateur. Les composants suivants sont utilisés lors du processus :

  • ExpressionEval. Cet objet COM (Component Object Model) prend l’expression et les données utilisateur comme entrée, puis traite l’expression pour déterminer si elle prend la valeur « Vrai » ou « Faux ».

  • Infrastructure de sélection de contenu (CSF, Content Selection Framework). Cette infrastructure au niveau de la plate-forme comprend un ensemble de composants et de pipelines (le pipeline de sélection de contenu et le pipeline de traitement des événements) qui détermine l’action à exécuter comme résultat de l’expression.

La figure suivante montre la façon dont les expressions de ciblage, les expressions de catalogue, les données utilisateur et les données de contexte sont entrées dans l’Évaluateur d’expressions, qui renvoie en résultat des valeurs Vrai, Faux, ou des résultats indéfinis. Le résultat est entré dans l’infrastructure CSF, qui détermine alors l’action à exécuter.

Figure illustrant le traitement des expressions par l'Évaluateur d'expressions et l'infrastructure de sélection de contenu
Expression de ciblage
Expression de catalogue
Données d'utilisateur
Données de contexte
Évaluateur d'expressions
Vrai, Faux ou résultat indéfini
Infrastructure de sélection de contenu
Détermine l'action en fonction du résultat

Voir aussi

Profils

Création d’une expression de ciblage

Création d’un groupe cible


Efficacité de la campagne marketing

Le tableau suivant répertorie les rapports inclus dans Commerce Server, qui vous permettent d’analyser l’efficacité d’un élément de la campagne.

Rapport | Description
Synthèse de l’élément de la campagne | Permet de visualiser une synthèse de l’activité de la campagne marketing sur votre site. Ce rapport affiche des informations, telles que le nombre et le pourcentage de clics et le nombre de demandes de publicité restantes.
Portée et fréquence d’accès à la publicité par jour | Permet d’analyser le comportement des utilisateurs uniques quotidiens qui interagissent avec votre campagne marketing. Utilisez ce rapport pour comprendre l’interaction des utilisateurs uniques quotidiens avec vos campagnes marketing.
Portée et fréquence d’accès à la publicité par élément de la campagne | Permet d’analyser l’interaction des utilisateurs uniques avec vos éléments de la campagne. Ce rapport affiche le comportement des utilisateurs uniques qui interagissent avec vos éléments de la campagne dans le temps.
Portée et fréquence d’accès à la publicité par campagne | Permet d’analyser l’interaction des utilisateurs uniques avec vos campagnes marketing. Ce rapport affiche le comportement des utilisateurs uniques qui interagissent avec vos campagnes marketing dans le temps.
Synthèse de l’événement de la campagne | Permet d’analyser l’efficacité des campagnes marketing sur votre site. Ce rapport affiche une synthèse de l’activité de la campagne marketing sur votre site.
Insertion de publicité | Permet d’analyser l’endroit de votre site où les publicités sont les plus efficaces. Ce rapport affiche une synthèse de l’activité des campagnes marketing selon l’emplacement sur votre site.

Voir aussi

Rapports Commerce Server

Exécution de rapports


Définition des tables de références

En définissant des tables de références, vous pouvez refléter avec précision votre modèle commercial. Les tables de références gèrent les codes d’activité, les groupes de pages et les tailles de contenu publicitaires valides. Si un groupe de pages utilisé par un élément de la campagne n’est pas validé par rapport aux groupes de pages de la table de références, cet élément de la campagne ne sera pas mis en production.

Vous pouvez utiliser le module Tables de références pour ajouter des codes d’activité, des groupes de pages et des tailles de contenu, en plus de ceux fournis par Commerce Server 2000. Vous pouvez également supprimer les codes d’activité, les groupes de pages et les tailles de contenu dont vous n’avez pas besoin.

Spécification de tailles de contenu

Ajout de codes d’activité

Ajout de groupes de pages

Spécification de tailles de contenu

Vous pouvez spécifier la taille souhaitée pour le contenu d’un élément de la campagne. Commerce Server 2000 fournit plusieurs tailles de contenu par défaut. Ces tailles de contenu proviennent d’une liste de tailles fréquemment utilisées approuvée par le Standards and Practices Committee du Internet Advertising Bureau (IAB). Les tailles de contenu sont validées par l’intermédiaire de la section Taille du contenu du module Tables de références.

Les tailles de contenu des tables de références sont disponibles lorsque vous sélectionnez la taille souhaitée pour le contenu d’un élément de la campagne. Vous pouvez afficher, modifier et supprimer n’importe laquelle des tailles prédéfinies. Vous pouvez également créer une taille de contenu adaptée à vos besoins.

Pour spécifier une taille de contenu

  1. Dans Campagnes marketing, cliquez sur Tables de références.

  2. Dans l’écran Tables de références, dans la section Taille du contenu, cliquez sur Nouvelle, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Balise Taper le nom de la balise.

    Une balise est une valeur de paramètre à transmettre dans une demande de contenu d’une page, qui spécifie comment le document (ou une partie du document) doit être mis en forme.
    Nom | Taper un nom pour la nouvelle taille de contenu.
    Largeur | Taper la largeur de la taille de contenu (en pixels).
    Hauteur | Taper la hauteur de la taille de contenu (en pixels).

  3. Cliquez sur Accepter.

    La nouvelle taille de contenu est ajoutée à la liste de tailles de contenu. Les éléments de taille de contenu s’affichent dans la liste dans l’ordre alphabétique de leur attribut Balise.

  4. Pour enregistrer la nouvelle taille de contenu et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

La nouvelle taille de contenu est enregistrée et est à présent disponible lorsque vous sélectionnez des tailles de contenu pour les éléments de la campagne.

Ajout de codes d’activité

Les codes d’activité permettent de définir les secteurs d’activité, par exemple le secteur automobile, aéronautique ou les boissons. Les codes d’activité permettent d’identifier le secteur d’activité associé à une publicité, afin d’éviter que deux publicités de sociétés concurrentes d’un même secteur d’activité s’affichent sur la même page. Vous pouvez également mettre à jour les codes d’activité ; vous pouvez par exemple ajouter des codes de boissons pour le café et les sodas, de sorte que les publicités pour ces différents types de boissons puissent s’afficher sur la même page.

Commerce Server fournit plusieurs codes d’activité courants. Les codes d’activité utilisés dans les publicités sont validés par l’intermédiaire de la section Code d’activité du module Tables de références. Les codes d’activité des tables de références sont disponibles lorsque vous sélectionnez le code d’activité pour un élément de la campagne de publicité. Vous pouvez afficher une liste de tous les codes d’activité disponibles, ajouter de nouveaux codes, modifier des codes existants et supprimer des codes de la section Code d’activité du module Tables de références.

Pour créer un code d’activité

  1. Dans Campagnes marketing, cliquez sur Tables de références.

  2. Dans l’écran Tables de références, dans la section Code d’activité, cliquez sur Nouveau, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Code d’activité | Taper un nom pour le nouveau code d’activité.

  3. Cliquez sur Accepter.

    Le nouveau code d’activité est ajouté à la liste des codes, classée par ordre alphabétique.

  4. Pour enregistrer le nouveau code d’activité et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

Le nouveau code d’activité est enregistré et est disponible lorsque vous sélectionnez des codes d’activité pour les éléments de la campagne.

Ajout de groupes de pages

Les groupes de pages vous permettent de spécifier les pages sur lesquelles les publicités s’affichent sur votre site Web. Grâce aux groupes de pages, vous pouvez placer des publicités ciblées sur toutes les pages de votre site de commerce, ou uniquement sur une page donnée. Par exemple, un site d’actualités peut disposer d’un groupe de pages pour les sports, qui serait utilisé pour cibler les publicités relatives au sport. En outre, vous pouvez facturer les annonceurs selon différents taux, en fonction du groupe de pages dans lequel ils affichent les publicités. Les groupes de pages sont validés par l’intermédiaire de la section Groupes de pages du module Tables de références.

Les groupes de pages des tables de références sont disponibles lorsque vous sélectionnez la page sur laquelle vous souhaitez qu’un élément de la campagne s’affiche. Une fois que le groupe de pages utilisé par un élément de la campagne a été validé par rapport à la propriété Groupes de pages, cet élément de la campagne peut être mis en production. Vous pouvez afficher une liste de tous les groupes de pages disponibles, ajouter de nouveaux groupes, modifier des groupes existants et supprimer des groupes de la section Groupes de pages dans le module Tables de références.

Remarque

  • Pour que vous puissiez cibler une publicité pour un groupe de pages, le développeur de votre site doit préalablement activer la page pour la publicité. Pour activer une page pour la publicité, consultez l’exemple de mini-site de publicité dans le Kit de développement de logiciel (SDK) de Commerce Server 2000.

Pour ajouter un groupe de pages

  1. Dans Campagnes marketing, cliquez sur Tables de références.

  2. Dans l’écran Tables de références, dans la section Groupes de pages, cliquez sur Nouveau, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Groupe de pages | Taper un nom pour le nouveau groupe de pages.
    Description | Taper une description pour le groupe de pages.

  3. Cliquez sur Accepter.

    Le nouveau groupe de pages est ajouté à la liste de groupes de pages, classée par ordre alphabétique.

  4. Pour enregistrer le nouveau groupe de pages et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

Le nouveau groupe de pages est enregistré et est disponible lorsque vous sélectionnez des groupes de pages pour les éléments de la campagne.

Voir aussi

Tables de références

Ciblage d’une publicité pour un groupe de pages


Création d'une campagne marketing

Création d’une campagne marketing

Les modules Campagnes marketing permettent de créer un élément de la campagne et de l’envoyer en production. Pour créer un élément de la campagne, vous ajoutez en premier lieu le client au module Gestionnaire de campagnes. Dans le Gestionnaire de campagnes, vous créez ensuite une campagne marketing pour votre client, par exemple une campagne de sensibilisation à une marque. Vous planifiez la campagne marketing en fonction d’un but quantitatif de la campagne. Vous pouvez planifier la campagne selon un but quantitatif de niveau campagne ou un but quantitatif de niveau élément de la publicité. Après avoir créé une campagne marketing, vous pouvez créer un ou plusieurs éléments de la campagne, puis spécifier l’affichage de votre publicité. Après avoir spécifié l’affichage de la publicité, vous pouvez afficher un aperçu de la publicité avant de l’envoyer en production.

La figure suivante présente un exemple de scénario pour créer une campagne marketing, ajouter un élément de la campagne, puis envoyer cet élément de la campagne en production :

Déroulement des opérations pour la création d'un élément de la campagne et son envoi en production
Gestionnaire de campagnes

Création d'un élément de la campagne

Ajout d'informations sur les clients
Ajout d'une campagne marketing
Affichage d'un aperçu d'un élément de la campagne

Publication des modifications apportées à la campagne marketing sur votre site Web

Planification d'une campagne marketing
Publier les campagnes marketing

  1. Dans le module Gestionnaire de campagnes, vous ajoutez un nouveau client (par exemple Chaussures Arbor).

  2. Dans le module Gestionnaire de campagnes, vous ajoutez une nouvelle campagne marketing (par exemple Vente promotionnelle d’automne).

  3. Vous planifiez la campagne marketing (par exemple en fonction d’un but quantitatif de niveau campagne).

  4. Vous créez un élément de la campagne de publicité (tel que sandalettes).

  5. Vous affichez un aperçu de l’élément de la campagne de publicité avant de l’envoyer en production.

  6. Dans le module Publier les campagnes marketing, vous mettez votre site à jour avec la nouvelle publicité.

Cette section contient les rubriques suivantes :

  • Ajout d’informations sur les clients

  • Ajout d’une campagne marketing

  • Planification d’une campagne marketing

  • Création d’un élément de la campagne

  • Affichage d’un aperçu d’un élément de la campagne


Ajout d'informations sur les clients

Ajout d’informations sur les clients

Pour créer une campagne marketing, vous devez d’abord ajouter des informations sur le client propriétaire de cette campagne. Chaque client peut avoir plusieurs campagnes marketing, représentant différents programmes marketing. Par exemple, un client peut avoir une campagne de vente promotionnelle d’automne, une campagne pour un nouveau produit et une campagne de remise de printemps. Chaque campagne marketing peut avoir plusieurs éléments de la campagne, tels que des publicités, des remises ou promotions, et des publipostages.

Vous pouvez utiliser le Gestionnaire de campagnes pour ajouter des clients, modifier les propriétés des clients et supprimer des clients.

Pour créer un client

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Nouveau client dans la liste déroulante.

  3. Dans l’écran Gestionnaire de campagnes – Nouveau (client), dans la section Propriétés du client, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom du client.
    Adresse | Taper l’adresse du client, y compris la rue, la ville, le département, le code postal et le pays.
    Type | Sélectionner dans la liste déroulante le type de relation avec la société.
    URL | Taper l’adresse URL associée au client.
    Code d’activité Sélectionner le code d’activité du client.

    Les codes d’activité sont créés à l’aide du module Tables de références. Pour plus d’informations, consultez Définition des tables de références.

    Commentaires | Taper tout commentaire nécessaire concernant le client.

  4. Dans la section Contact, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Contact | Taper les informations de contact du client.
    Adresse de messagerie | Taper l’adresse de messagerie du contact.
    Téléphone | Taper le numéro de téléphone du contact.
    Télécopie | Taper le numéro de télécopie du contact.

  5. Pour enregistrer les informations sur le client et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

Les informations sur le client sont enregistrées. Vous pouvez maintenant ajouter une campagne marketing pour ce client.

Voir aussi

Déroulement des opérations pour la gestion des campagnes

À propos des campagnes marketing

Ajout d’une campagne marketing

Définition des tables de références


Ajout d'une campagne marketing

Ajout d’une campagne marketing

Après avoir ajouté des informations sur le client, vous pouvez ajouter une campagne marketing pour ce client. Chaque client peut avoir plusieurs campagnes marketing. Par exemple, un client peut avoir une campagne de sensibilisation à une marque et une campagne de fidélisation des clients. Vous pouvez utiliser le module Gestionnaire de campagnes pour ajouter la campagne marketing, afficher les propriétés de la campagne, copier la campagne pour en créer une nouvelle, modifier les propriétés de la campagne, planifier la campagne en fonction d’un but quantitatif de niveau élément de la publicité ou d’un but quantitatif de niveau campagne, localiser une campagne et supprimer et restaurer une campagne.

Pour ajouter une campagne marketing

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez le client pour lequel vous souhaitez créer une campagne marketing, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Nouvelle campagne dans la liste déroulante.

  3. Dans l’écran Gestionnaire de campagnes - <Client> - Nouvelle (campagne marketing), dans la section Propriétés de la campagne marketing, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de la campagne marketing | Taper le nom de la nouvelle campagne marketing.
    Date de début | Sélectionner la date de début de la campagne marketing dans le calendrier déroulant.
    Date de fin Sélectionner la date de fin de la campagne marketing dans le calendrier déroulant.

    Les dates de la campagne marketing sont utilisées comme dates par défaut pour les dates des éléments de la campagne. Cependant, les dates des éléments de la campagne annulent les dates de la campagne marketing. Il est possible de définir, pour un élément de la campagne, une date ultérieure aux dates de la campagne marketing.
    Statut | Sélectionner l’état de la campagne marketing dans la liste déroulante. L’état peut être Actif ou Inactif.
    Commentaires | Taper tout commentaire nécessaire concernant la campagne marketing.

Les propriétés de la campagne marketing sont créées. Pour planifier la campagne marketing en fonction d’un but quantitatif de niveau élément de la publicité ou d’un but quantitatif de niveau campagne, consultez Planification d’une campagne marketing.

Voir aussi

Déroulement des opérations pour la gestion des campagnes

À propos des campagnes marketing

Ajout d’informations sur les clients


Planification d'une campagne marketing

Planification d’une campagne marketing

Vous planifiez une campagne marketing à l’aide d’un but quantitatif de la campagne. Vous pouvez effectuer vos planifications en fonction d’un but quantitatif de niveau campagne ou de niveau élément de la publicité. Si vous créez une campagne marketing avec un but quantitatif de niveau campagne, vous commandez le nombre total de demandes pour l’ensemble de la campagne marketing. Supposons que vous définissiez un but quantitatif du niveau campagne et que votre client commande 25 000 demandes de publicité. Au niveau de l’élément de la campagne, une publicité est définie pour afficher 60 pour cent des demandes de publicité et une autre publicité est définie pour afficher 40 pour cent des demandes de publicité. Si le client décide de changer le nombre de demandes de publicité pour passer à 40 000, vous n’aurez pas à modifier manuellement le nombre d’affichages des publicités : elles sont toujours affichées selon des proportions de 60 pour cent et de 40 pour cent. Si vous effectuez la planification au niveau de la publicité, vous définissez les buts quantitatifs en termes de demandes pour chaque publicité. Pour plus d’informations sur le but quantitatif de la campagne, consultez But quantitatif de la campagne.

Dans une campagne marketing, le volume s’applique aux publicités dont le but quantitatif a été défini au niveau de la campagne. Pour les publicités maison, le volume est déterminé en fonction de toutes les autres publicités maison pour tous les clients et toutes les campagnes marketing. Pour les publicités payées, le volume est déterminé en fonction des autres publicités payées de la même campagne marketing.

Vous pouvez planifier la campagne marketing en termes de clics ou de demandes. Si vous planifiez une campagne marketing en termes de clics, les buts quantitatifs sont atteints lorsque l’utilisateur clique réellement sur la publicité. Si vous planifiez la campagne marketing en termes de demandes, les buts quantitatifs sont atteints lorsque la publicité est affichée sur le groupe de pages spécifié.

Pour planifier la campagne marketing

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans le Gestionnaire de campagnes, double-cliquez sur le client pour lequel vous voulez planifier une campagne marketing, sélectionnez la campagne marketing, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Gestionnaire de campagnes - <Nom du client> - <Nom de la campagne marketing> (campagne marketing), dans la section But quantitatif de la campagne/publicité, effectuez les opérations suivantes :
    Utilisez ceci Pour faire cela
    Définir les objectifs par Sélectionner le niveau du but quantitatif dans la liste déroulante. Vous pouvez définir le but quantitatif pour une campagne marketing au niveau de la Campagne marketing ou au niveau des Éléments de la publicité.

    Si vous sélectionnez le but quantitatif de niveau Campagne marketing, vous pouvez modifier le paramètre Quantité commandée dans le champ situé sous la zone Définir les objectifs par. Une fois que les éléments de la campagne de publicité ont été ajoutés à la campagne marketing dans le Gestionnaire de campagnes, vous pouvez modifier la table dynamique située au bas de la section But quantitatif de la campagne/publicité. Vous sélectionnez l’élément de la publicité dans la table, puis vous cliquez sur Modifier pour changer le volume de chaque publicité. Les quantités de chacune des publicités sont redistribuées en fonction des volumes que vous avez entrés.

    Si vous sélectionnez le but quantitatif de niveau Éléments de la publicité, le champ de quantité commandée disparaît. Pour les campagnes marketing dont le but quantitatif est défini au niveau de l’élément de la publicité, les quantités sont entrées dans l’élément de la campagne de publicité. Une fois que les éléments de la campagne de publicité ont été ajoutés à la campagne marketing dans le Gestionnaire de campagnes, vous pouvez modifier la table dynamique située au bas de la section But quantitatif de la campagne/publicité. Vous sélectionnez l’élément de la publicité dans la table, puis vous cliquez sur Modifier pour changer les quantités de chaque publicité.

    Remarques

    • Vous pouvez permuter le but quantitatif de niveau Campagne marketing et le but quantitatif de niveau Éléments de la publicité.

    • Cette zone n’est pas nécessaire pour les éléments de la campagne de remise et de la campagne de publipostage.
    Quantité commandée Taper le nombre de demandes commandées pour cette campagne marketing.

    Cette zone n’est disponible que si Campagne marketing a été choisi dans la zone Définir les objectifs par.
    Planifié par Sélectionner Demandes ou Clics dans la liste déroulante.

    Demandes indique que les buts quantitatifs de la campagne marketing sont atteints lorsque la publicité est affichée dans le groupe ou les groupes de pages spécifié(s).

    Clics indique que les buts quantitatifs de la campagne marketing sont atteints lorsque l’utilisateur clique réellement sur la publicité.

  4. Pour enregistrer la planification et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

La planification de la campagne marketing est enregistrée avec la campagne marketing. Vous pouvez maintenant créer un élément de la campagne de publicité pour la campagne marketing.

Voir aussi

Déroulement des opérations pour la gestion des campagnes

À propos des campagnes marketing

But quantitatif de la campagne

Ajout d’une campagne marketing


Création d'un élément de la campagne

Création d’un élément de la campagne

Il existe trois types d’éléments de campagne : les publicités, les remises et les publipostages. Pour planifier l’affichage du contenu, vous devez créer un élément de la campagne. Outre ces trois éléments de la campagne, le développeur de votre site peut ajouter des fonctionnalités de vente annexe à votre site, telles que des éléments de vente croisée intelligente et d’offres de lancement.

Remarques

  • Pour plus d’informations sur l’ajout de fonctionnalités de vente croisée intelligente à votre site, consultez Exécution de la ressource Predictor et Prediction Objects (en anglais).

  • Pour plus d’informations sur l’ajout d’autres fonctionnalités de vente annexe à votre site, consultez le Kit de développement de logiciel (SDK) de Commerce Server.

Pour plus d’informations sur la création d’un élément de la campagne, consultez les rubriques suivantes :

  • Ajout d’un élément de la campagne de publicité

  • Ajout d’un élément de la campagne de remise

  • Ajout d’un élément de la campagne de publipostage


Affichage d'un aperçu d'un élément de la campagne

Affichage d’un aperçu d’un élément de la campagne

Après avoir défini l’affichage de la publicité, vous pouvez en afficher un aperçu avant de la publier sur votre site Web. Vous pouvez également afficher un aperçu de la page Web qui apparaît lorsqu’un utilisateur clique sur la publicité s’il s’agit d’une publicité associée à un lien hypertexte.

Pour afficher un aperçu de la publicité

Pour afficher la page Web de la publicité

Pour afficher un aperçu de la publicité

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la campagne de publicité contenant la publicité dont vous souhaitez afficher un aperçu, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne> (ID de publicité : <numéro>), dans la section Affichage de la publicité, vérifiez que les informations sont entrées dans les champs nécessaires, puis cliquez sur Aperçu.

  4. Dans la boîte de dialogue Aperçu, cliquez sur Oui pour enregistrer l’élément de la campagne de publicité.

Une copie de la publicité s’affiche dans la zone d’affichage en dessous du bouton Aperçu.

Pour plus d’informations sur la définition du type de publicité dans la section Affichage de la publicité, consultez Définition d’un type de publicité.

Pour afficher la page Web de la publicité

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez l’élément de la campagne de publicité dont vous souhaitez afficher un aperçu, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne> (ID de publicité : <numéro>), dans la section Affichage de la publicité, vérifiez que les informations sont entrées dans les champs nécessaires, puis cliquez sur la publicité dans la zone d’affichage en dessous du bouton Aperçu.

La page Web associée à la publicité s’affiche dans une nouvelle fenêtre Internet Explorer. Pour plus d’informations sur la publication de la publicité sur votre site Web, consultez Publication des modifications de la campagne marketing sur votre site Web.

Voir aussi

Ajout d’un élément de la campagne de publicité

Dimensionnement d’une publicité

Définition d’un type de publicité

Publication des modifications de la campagne marketing sur votre site Web


Publication des modifications de la campagne marketing sur votre site Web

Le module Publier les campagnes marketing vous permet de mettre immédiatement votre site à jour avec les nouvelles informations ajoutées à votre site Web. Toutefois, même si vous n’effectuez pas cette étape pour publier les modifications apportées à votre campagne de publicité, votre site Web reflétera dans les cinq minutes qui suivent toute modification apportée. Les modifications apportées aux éléments de la campagne de remise ne sont pas mises à jour sur votre site Web tant que vous ne les publiez pas dans le module Publier les campagnes marketing.

Pour la plupart des activités de commerce électronique, les modifications sont en premier lieu effectuées sur un site test, puis elles sont publiées sur le site de production à des moments planifiés. Contactez votre administrateur système pour obtenir des informations sur le moment et la façon dont les modifications sont apportées sur le site de production.

Le module Publier les campagnes marketing contient un mécanisme de recherche qui vous permet de rechercher les publicités ou les remises que vous souhaitez afficher, publier ou supprimer.

Remarque

  • Vous devez visiter un nouveau site Web avant de le mettre à jour pour inclure une campagne de publicité. Chaque serveur de la Web farm doit être mis à jour avant qu’un élément de la campagne puisse être envoyé en production.

Pour rechercher un élément de production

Pour publier un élément de la campagne

Pour rechercher un élément de production

  1. Dans Campagnes marketing, cliquez sur Publier les campagnes marketing.

  2. Dans l’écran Publier les campagnes marketing, cliquez sur Rechercher dans la barre d’outils.

  3. Dans le volet Rechercher, dans la zone Rechercher, sélectionnez dans la liste déroulante le type d’élément de la campagne que vous recherchez, puis cliquez sur Rechercher.

Les éléments de la campagne correspondant aux critères de recherche s’affichent dans la zone Éléments de production.

Pour rechercher un élément de la campagne

  1. Dans Campagnes marketing, cliquez sur Publier les campagnes marketing.

  2. Dans l’écran Publier les campagnes marketing, sélectionnez l’élément de production que vous souhaitez publier, puis cliquez sur Publier dans la barre d’outils.

L’élément de la campagne est envoyé en production. Le site est mis à jour afin d’inclure la nouvelle campagne de publicité.

Voir aussi

Ajout d’un élément de la campagne de publicité

Affichage d’un aperçu d’un élément de la campagne


Permutation entre un but quantitatif de niveau campagne et un but quantitatif de niveau élément de la publicité

Les campagnes marketing sont planifiées en fonction d’un but quantitatif de la campagne. Vous pouvez effectuer vos planifications en fonction d’un but quantitatif de niveau campagne ou de niveau élément de la publicité. Dans une campagne marketing, le volume s’applique aux publicités dont le but quantitatif a été défini au niveau de la campagne. Pour les publicités maison, le volume est déterminé en fonction de toutes les autres publicités maison pour tous les clients et toutes les campagnes marketing. Pour les publicités payées, le volume est déterminé en fonction des autres publicités payées de la même campagne marketing. Une fois qu’une campagne marketing est planifiée, vous pouvez permuter le but quantitatif de niveau campagne et le but quantitatif de niveau élément de la publicité, qui déterminent le mode de calcul des volumes des publicités.

Vous trouverez ci-dessous une description de trois scénarios permettant de définir le but quantitatif pour des publicités payées. Dans le premier scénario, le client commande deux publicités dont le but quantitatif est défini au niveau de la campagne. Dans le deuxième scénario, le client souhaite ajouter des demandes à la première des deux publicités ; par conséquent, il passe à un but quantitatif de niveau élément de la publicité. Dans le troisième scénario, le client souhaite que la première publicité soit affichée selon un taux de 3 pour 1 par rapport à la seconde publicité ; par conséquent, il repasse à un but quantitatif de niveau campagne.

  • Scénario 1 : Un client commande deux publicités payées pour la vente promotionnelle d’automne, qui doivent être exécutées à proportion égale pour une quantité totale commandée de 1 000 demandes. La quantité commandée pour chacune des publicités est de 500 demandes. Le but quantitatif de la campagne marketing est défini au niveau de la campagne.
    But quantitatif de la campagne - poids égal

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  • Scénario 2 : Le client souhaite à présent ajouter 500 demandes supplémentaires à la première publicité. Le but quantitatif de la campagne marketing est changé pour passer à un but quantitatif de niveau élément de la publicité, et les 500 demandes supplémentaires sont ajoutées à la quantité commandée pour la première publicité ; le total obtenu est alors de 1 000 demandes. Le nombre de demandes de la seconde publicité reste égal à 500.
    But quantitatif de l'élément de la publicité

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  • Scénario 3 : Le client décide de répartir de nouveau la distribution de la commande de telle sorte que la première publicité soit exécutée selon un volume égal à 3 pour 1 par rapport à la seconde publicité. Le but quantitatif de la campagne marketing est de nouveau défini au niveau de la campagne, avec une quantité totale commandée de 1 500 demandes. Une fois que les volumes des éléments de la campagne sont changés et correspondent à 3 et 1 (respectivement pour la première et la seconde publicité), les nouveaux volumes payés pour la campagne marketing sont de 1 125 pour la première publicité et de 375 pour la seconde.
    But quantitatif de la campagne - poids 3/1

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

Attention

  • Dans le second scénario, si le client décide de répartir de nouveau la distribution de la commande, puis qu’il ajoute également une troisième publicité avec un volume égal à 1, les pondérations de toutes les publicités devront être revues. Étant donné que la publicité est passée d’une campagne à but quantitatif de niveau élément de la publicité à un but quantitatif de niveau campagne, le volume payé de l’ensemble des publicités doit être changé ou la livraison des publicités sera erronée.


Ajout d'un élément de la campagne de publicité

Ajout d’un élément de la campagne de publicité

Les éléments de la campagne de publicité permettent de planifier la livraison de vos publicités. Un élément de la campagne de publicité possède généralement un but de livraison, des plages de dates et des attributs cibles. Après avoir créé la campagne de publicité, vous pouvez planifier la publicité, indiquer les pages Web sur lesquelles la publicité doit s’afficher et cibler la publicité pour un groupe d’utilisateurs spécifié. Vous pouvez également définir l’affichage de votre publicité. Par exemple, vous pouvez afficher une publicité contenant du texte et une image ou une publicité contenant uniquement du texte. Après avoir défini l’apparence de la publicité, vous pouvez en afficher un aperçu.

Cette section contient les rubriques suivantes :

  • Création d’un élément de la campagne de publicité

  • Planification d’un élément de la campagne de publicité

  • Ciblage d’une publicité pour un groupe de pages

  • Ciblage d’une publicité pour un groupe d’utilisateurs

  • Spécification de l’affichage d’une publicité

  • Copie d’un élément de la campagne de publicité


Création d'un élément de la campagne de publicité

Création d’un élément de la campagne de publicité

Le module Gestionnaire de campagnes vous permet de créer un élément de la campagne de publicité pour une campagne marketing donnée. Vous sélectionnez le type de publicité, qui peut correspondre à une publicité payée ou une publicité maison, en fonction de la planification d’estimation de livraison. Vous pouvez également définir une limite pour le nombre d’affichages d’un contenu à un utilisateur au cours d’une session utilisateur. Vous pouvez sélectionner un code d’activité pour la publicité, afin d’éviter que deux publicités de sociétés concurrentes d’un même secteur d’activité s’affichent sur la même page.

Pour créer un élément de la campagne de publicité

Pour définir l’affichage de la publicité

Pour créer un élément de la campagne de publicité

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la campagne marketing pour laquelle vous souhaitez créer une campagne de publicité, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Nouvelle publicité dans la liste déroulante.

  3. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> Nouvelle (publicité), dans la section Propriétés de la publicité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de la publicité Taper le nom de la publicité.

    Pour faire la distinction entre les publicités maison et les publicités payées, utilisez une convention d’affectation des noms distincte pour les deux types de publicités. Par exemple, Livres sur le commerce_PM pour une publicité maison et Logiciels professionnels_PP pour une publicité payée.
    État Sélectionner l’état de la campagne de publicité dans la liste déroulante.

    L’état peut être Actif ou Inactif.
    Type Sélectionner le type de publicité voulu.

    Le type peut correspondre à Publicité payée ou Publicité maison.
    Demandes ou Clics/Poids Sélectionner le paramètre Poids pour le type Publicité maison ou Publicité payée, si la campagne marketing a un but quantitatif de niveau Campagne marketing.

    Effectuer les opérations suivantes, si la campagne marketing a un but quantitatif de niveau Éléments de la publicité via des demandes :

    • Si le type Publicité payée est sélectionné en tant que type de publicité, taper le nombre correspondant aux buts de demandes de publicité pour la publicité.

    • Si le type Publicité maison est sélectionné en tant que type de publicité, taper la valeur correspondant au volume de la publicité maison. Le volume par défaut des publicités maison est 1.

    Effectuer les opérations suivantes, si la campagne marketing a un but quantitatif de niveau Éléments de la publicité via des clics :

    • Si le type Publicité payée est sélectionné en tant que type de publicité, taper le nombre correspondant aux buts de clics de publicité pour la publicité.

    • Si le type Publicité maison est sélectionné en tant que type de publicité, taper la valeur correspondant au volume de la publicité maison. Le volume par défaut des publicités maison est 1.
    Limite d’exposition Sélectionner dans la liste déroulante le nombre de fois que la publicité peut être affichée à un utilisateur au cours d’une session.

    La publicité peut être affichée à un utilisateur 10 fois au maximum au cours d’une session.
    Date de réception Cette zone contient la date du jour en tant que valeur par défaut. Taper ou sélectionner dans le calendrier déroulant la date de réception de la publicité.

    Une fois que l’élément de la campagne de publicité est enregistré, la date ne peut pas être modifiée.

    Activité | Sélectionner le code d’activité pour la publicité.
    Commentaires | Taper tout commentaire nécessaire concernant cette publicité.

Remarque

  • Vous devez définir l’affichage de la publicité avant de pouvoir enregistrer l’élément de la campagne de publicité.

Pour définir l’affichage de la publicité

  1. Dans la section Affichage de la publicité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Taille | Sélectionner la taille du contenu de la publicité dans la liste déroulante.
    Type | Sélectionner le type de publicité dans la liste déroulante.

    Remarque

    • Les zones qui s’affichent sous la zone Type de contenu dépendent du type de publicité que vous avez sélectionné. Vous devez entrer les informations nécessaires dans la section Affichage de la publicité avant de pouvoir enregistrer l’élément de la campagne de publicité. Pour plus d’informations sur la définition de l’affichage de la campagne de publicité pour un type de publicité spécifique, consultez Définition d’un type de publicité.
  2. Pour enregistrer la publicité et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

La nouvelle publicité s’affiche dans l’arborescence du Gestionnaire de campagnes, sous le client et la campagne marketing spécifiés.

Voir aussi

Ajout d’une campagne marketing

Ajout de codes d’activité

Spécification de tailles de contenu

Spécification de l’affichage d’une publicité

Planification d’un élément de la campagne de publicité

Ciblage d’une publicité pour un groupe de pages

Ciblage d’une publicité pour un groupe d’utilisateurs


Planification d'un élément de la campagne de publicité

Planification d’un élément de la campagne de publicité

Après avoir créé un élément de la campagne de publicité, vous pouvez sélectionner les dates de début et de fin de l’exécution de la publicité. Lorsque la publicité est en cours d’exécution, vous pouvez changer la date de fin, par exemple ajouter ou supprimer un jour. L’estimation de livraison est alors recalculée en fonction de la quantité et du temps restants de la planification.

Pour planifier un élément de la campagne de publicité

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la publicité que vous souhaitez planifier, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), dans la section Planification de la publicité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Date de début | Taper ou sélectionner dans le calendrier déroulant la date de début de la publicité.
    Date de fin | Taper ou sélectionner dans le calendrier déroulant la date de fin de la publicité.
    Jours | Cocher chaque jour de la semaine pendant lequel vous voulez exécuter la publicité.
    Heure de début | Taper ou sélectionner dans la liste déroulante l’heure à laquelle la publicité doit commencer, en fonction de l’heure du serveur.
    Heure de fin | Taper ou sélectionner dans la liste déroulante l’heure à laquelle la publicité doit finir, en fonction de l’heure du serveur.

Remarques

  • Si vous définissez l’heure de début après l’heure de fin, la publicité commence à l’heure la plus tardive et s’exécute jusqu’à l’heure de fin. Par exemple, si l’heure de début est définie à 11:00 et l’heure de fin à 9:00, la publicité s’exécute pendant 22 heures.

  • Si vous définissez l’heure de début et l’heure de fin comme étant identiques, la publicité s’affiche pendant 24 heures.
  4. Pour enregistrer la publicité et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

La planification est enregistrée avec la publicité.

Voir aussi

Planification d’une campagne marketing

Ajout d’un élément de la campagne de publicité


Ciblage d'une publicité pour un groupe de pages

Ciblage d’une publicité pour un groupe de pages

Vous pouvez spécifier qu’un élément de la campagne de publicité doit s’afficher sur toutes les pages d’un site ou bien uniquement sur des groupes de pages donnés. Les groupes de pages permettent de spécifier les pages Web sur lesquelles un élément de la campagne de publicité doit s’afficher. Par exemple, si votre site Web est un journal en ligne, vous pouvez faire en sorte qu’une publicité sur des clubs de golf apparaisse uniquement dans la page des sports.

Vous pouvez afficher des publicités sur tous les groupes de pages ou bien effectuer une sélection parmi les groupes de pages disponibles créés dans la section Groupes de pages du module Tables de références.

Remarque

  • Pour que vous puissiez cibler une publicité pour un groupe de pages, le développeur de votre site doit préalablement activer la page pour la publicité. Pour activer une page pour la publicité, consultez l’exemple de mini-site de publicité dans le Kit de développement de logiciel (SDK) de Commerce Server 2000.

Pour cibler une publicité pour un groupe de pages

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la publicité pour laquelle vous souhaitez créer un groupe de pages, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), dans la section Cible publicitaire, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Afficher sur tous les groupes de pages Afficher la publicité sur tous les groupes de pages du site Web. Dans ce cas, activez la case à cocher.

    Attribuer la campagne de publicité à un groupe de pages spécifique. Dans ce cas, désactivez la case à cocher, puis suivez les autres étapes de cette procédure.
    Groupes de pages : Disponibles | Sélectionner le groupe ou les groupes de pages que vous voulez attribuer.

  4. Cliquez sur Ajouter.

La page sélectionnée est placée dans la zone Attribués.

  5. Pour enregistrer la publicité et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

La publicité s’affiche à présent sur les groupes de pages ciblés.

Voir aussi

Ajout d’un élément de la campagne de publicité

Ajout de groupes de pages


Ciblage d'une publicité pour un groupe d'utilisateurs

Ciblage d’une publicité pour un groupe d’utilisateurs

Les groupes cibles sont des expressions associées à une action permettant de cibler une publicité pour un groupe d’utilisateurs spécifique. Vous pouvez avoir plusieurs expressions et actions dans un groupe cible. Vous pouvez créer des groupes cibles afin d’inclure certains utilisateurs dans un groupe ou d’exclure certains utilisateurs d’un groupe. Vous sélectionnez le groupe d’utilisateurs que vous souhaitez cibler à partir d’une liste de groupes existante, que vous créez à l’aide du module Groupe cible. Pour plus d’informations sur la création de groupes cibles, consultez Création d’un groupe cible.

Pour cibler une publicité pour un groupe d’utilisateurs

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la publicité à laquelle vous souhaitez attribuer un nouveau groupe cible, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), dans la section Cible publicitaire, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Groupes cibles : Disponibles | Sélectionner le groupe cible que vous voulez attribuer.

  4. Cliquez sur Ajouter.

Le groupe cible est placé dans la zone Attribués.

  5. Pour enregistrer la publicité et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

La publicité est maintenant ciblée pour le groupe cible sélectionné.

Voir aussi

Ajout d’un élément de la campagne de publicité

Création d’une expression de ciblage

Création d’un groupe cible


Spécification de l'affichage d'une publicité

Spécification de l’affichage d’une publicité

Deux étapes principales sont nécessaires pour afficher une publicité. Ces étapes sont les suivantes :

  • Dimensionnement d’une publicité

  • Définition d’un type de publicité

Dimensionnement d’une publicité

Commerce Server 2000 comprend un ensemble de tailles de contenu standard que vous pouvez appliquer à vos publicités. Vous pouvez également définir vos propres tailles de contenu personnalisées. Que vous souhaitiez appliquer une taille standard ou une taille personnalisée, utilisez la procédure suivante pour appliquer cette taille à une publicité.

Remarque

  • Pour spécifier des tailles de contenu personnalisées, utilisez le module Tables de références. Pour plus d’informations, consultez Spécification de tailles de contenu.

Pour dimensionner une publicité

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la campagne de publicité contenant la publicité que vous souhaitez dimensionner, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), dans la section Affichage de la publicité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Taille | Sélectionner la taille de la publicité dans la liste déroulante.

La taille du contenu de la publicité est spécifiée. Vous pouvez à présent définir le type de publicité.

Définition d’un type de publicité

Il est possible d’exiger un type spécifique de publicité pour votre campagne de publicité. Par exemple, vous pouvez afficher une publicité contenant une image ou une publicité contenant uniquement du texte.

Pour définir un type de publicité

Pour définir une image publicitaire

Pour définir une publicité texte

Pour définir une publicité HTML

Pour définir une image publicitaire non associée à un lien hypertexte

Pour définir une publicité d’achat immédiat

Pour définir une publicité Services Windows Media

Pour définir une vignette publicitaire positionnable

Pour définir un type de publicité

  • Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), dans la section Affichage de la publicité, dans la zone Type, sélectionnez le type de publicité souhaité dans la liste déroulante.

    Remarque

    • Les zones qui s’affichent sous la zone Type dépendent du type de publicité que vous avez sélectionné. Pour plus d’informations sur la définition de l’affichage de la campagne de publicité pour un type de publicité spécifique, consultez les autres procédures de la section « Spécification de l’affichage d’une publicité ».

Pour définir une image publicitaire

Vous pouvez lier une image publicitaire aux pages Web spécifiées sur lesquelles la publicité doit s’afficher. Les utilisateurs voient cette image lorsqu’ils visitent les pages Web sur lesquelles la publicité est affichée.

  1. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), dans la section Affichage de la publicité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Taille | Sélectionner la taille voulue pour la publicité.
    Type | Sélectionner Image.
    URL d’image | Taper l’adresse URL correspondant à l’image à afficher dans la publicité.
    Adresse URL pointée | Taper l’adresse URL vers laquelle la publicité affichée établit un lien.
    Texte de légende | Taper le texte de légende que les utilisateurs voient lorsque les graphismes ne sont pas activés sur leur ordinateur.

  2. Pour enregistrer la publicité et ne pas quitter l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), cliquez sur Enregistrer dans la barre d’outils.

La publicité est définie comme une image publicitaire et est enregistrée avec l’élément de la campagne.

Pour définir une publicité texte

Une publicité texte est composée uniquement de texte. Les utilisateurs voient ce texte lorsqu’ils visitent les pages Web sur lesquelles la publicité est affichée.

  1. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), dans la section Affichage de la publicité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Taille | Sélectionner la taille voulue pour la publicité.
    Type | Sélectionner Texte.
    Texte | Taper le texte à afficher avec la publicité.
    Adresse URL pointée | Taper l’adresse URL vers laquelle la publicité affichée établit un lien.

  2. Pour enregistrer la publicité et ne pas quitter l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), cliquez sur Enregistrer dans la barre d’outils.

La publicité est définie comme publicité texte et est enregistrée avec l’élément de la campagne.

Pour définir une publicité HTML

Une publicité HTML est composée de code HTML. Les utilisateurs voient le texte résultant lorsqu’ils visitent les pages Web sur lesquelles la publicité est affichée.

  1. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), dans la section Affichage de la publicité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Taille | Sélectionner la taille voulue pour la publicité.
    Type | Sélectionner HTML.
    Texte HTML | Taper le texte HTML (au format HTML) à afficher dans la publicité.

  2. Pour enregistrer la publicité et ne pas quitter l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), cliquez sur Enregistrer dans la barre d’outils.

La publicité est définie comme publicité HTML et est enregistrée avec l’élément de la campagne.

Pour définir une image publicitaire non associée à un lien hypertexte

Une image publicitaire non associée à un lien hypertexte est une image graphique que les utilisateurs voient lorsqu’ils visitent les pages Web sur lesquelles l’affichage de la publicité est planifié. Cette publicité n’est pas liée à une page Web.

  1. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), dans la section Affichage de la publicité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Taille | Sélectionner la taille voulue pour la publicité.
    Type | Sélectionner Image non associée à un lien hypertexte.
    URL d’image | Taper l’adresse URL correspondant à l’image à afficher dans la publicité.
    Texte de légende | Taper le texte de légende que les utilisateurs voient lorsque les graphismes ne sont pas activés sur leur ordinateur.

  2. Pour enregistrer la publicité et ne pas quitter l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), cliquez sur Enregistrer dans la barre d’outils.

La publicité est définie comme une image publicitaire non associée à un lien hypertexte et est enregistrée avec l’élément de la campagne.

Pour définir une publicité d’achat immédiat

Les publicités d’achat immédiat permettent aux utilisateurs d’acheter des articles à partir de n’importe quelle page Web sur Internet. Lorsqu’un utilisateur clique sur l’image d’un produit, une boîte de dialogue lui demandant son adresse de livraison et son numéro de carte de crédit s’affiche.

  1. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), dans la section Affichage de la publicité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Taille | Sélectionner la taille voulue pour la publicité.
    Type | Sélectionner Acheter.
    URL d’image | Taper l’adresse URL correspondant à l’image à afficher dans la publicité.
    Adresse URL pointée | Taper l’adresse URL vers laquelle la publicité affichée établit un lien.
    Texte de légende | Taper le texte de légende que les utilisateurs voient lorsque les graphismes ne sont pas activés sur leur ordinateur.
    Largeur de la fenêtre | Entrer la largeur de la publicité en pixels.
    Hauteur de la fenêtre | Entrer la hauteur de la publicité en pixels.

  2. Pour enregistrer la publicité et ne pas quitter l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), cliquez sur Enregistrer dans la barre d’outils.

La publicité est définie comme publicité d’achat immédiat et est enregistrée avec l’élément de la campagne.

Pour définir une publicité Services Windows Media

Une publicité Services Windows Media affiche des publicités audio et vidéo haute qualité.

  1. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), dans la section Affichage de la publicité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Taille | Sélectionner la taille voulue pour la publicité.
    Type | Sélectionner Services Windows Media.
    Format ASF pour les services Windows Media | Taper le format ASF des Services Windows Media pour la publicité.
    Adresse URL pointée | Taper l’adresse URL vers laquelle la publicité affichée établit un lien.

  2. Pour enregistrer la publicité et ne pas quitter l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), cliquez sur Enregistrer dans la barre d’outils.

La publicité est définie comme publicité Services Windows Media et est enregistrée avec l’élément de la campagne.

Pour définir une vignette publicitaire positionnable

Une vignette publicitaire est composée d’un texte affiché à côté de l’image correspondant à la publicité.

  1. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), dans la section Affichage de la publicité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Taille | Sélectionner la taille voulue pour la publicité.
    Type Sélectionner Vignette gauche, droite ou supérieure.

    Gauche - place la publicité à gauche du texte.

    Droite - place la publicité à droite du texte.

    Supérieure - place la publicité au-dessus du texte.
    URL d’image | Taper l’adresse URL correspondant à l’image à afficher dans la publicité.
    Texte | Taper le texte à afficher à côté de la publicité.
    Adresse URL pointée | Taper l’adresse URL vers laquelle la publicité affichée établit un lien.
    Texte de légende | Taper le texte de légende que les utilisateurs voient lorsque les graphismes ne sont pas activés sur leur ordinateur.

  2. Pour enregistrer la publicité et ne pas quitter l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de publicité> (ID de publicité : <numéro>), cliquez sur Enregistrer dans la barre d’outils.

La publicité est définie comme une vignette publicitaire positionnable et est enregistrée avec l’élément de la campagne.

Voir aussi

Ajout d’un élément de la campagne de publicité

Spécification de tailles de contenu

Affichage d’un aperçu d’un élément de la campagne

Publication des modifications de la campagne marketing sur votre site Web


Copie d'un élément de la campagne de publicité

Copie d’un élément de la campagne de publicité

Vous pouvez copier un élément de la campagne de publicité existant afin d’ajouter rapidement des éléments de la campagne de publicité supplémentaires pour un client et sa campagne. En utilisant une publicité existante comme modèle, vous pouvez modifier les propriétés de cette publicité pour prendre en compte les buts quantitatifs du nouvel élément de la campagne de publicité.

Pour copier une publicité

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la publicité que vous souhaitez copier, puis cliquez sur Copier dans la barre d’outils.

  3. Dans la boîte de dialogue Copier la publicité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Sélectionner un client | Sélectionner dans la liste déroulante le client dont vous souhaitez copier la publicité.
    Sélectionner une campagne marketing | Sélectionner dans la liste déroulante la campagne marketing dont vous souhaitez copier la publicité.

  4. Cliquez sur OK.

  5. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> Nouvelle (publicité), dans la section Propriétés de la publicité, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de la publicité | Taper le nom de la nouvelle publicité.

  6. Modifiez les autres propriétés en fonction des besoins.

  7. Pour enregistrer la publicité et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

La nouvelle publicité s’affiche dans l’arborescence du Gestionnaire de campagnes, sous le client et la campagne marketing sélectionnés.

Voir aussi

Ajout d’un élément de la campagne de publicité


Ajout d'un élément de la campagne de remise

Ajout d’un élément de la campagne de remise

Vous pouvez créer des éléments de la campagne de remise et les appliquer à n’importe quel article de votre catalogue. Le module Gestionnaire de campagnes vous permet de créer des éléments de remise, de planifier l’affichage des remises sur le site, de déterminer les produits, les groupes de pages ou les groupes cibles concernés par la remise et de spécifier le mode d’affichage de la remise. Vous pouvez également afficher un aperçu de l’élément de remise sur le site Web ou le groupe de pages spécifié.

Cette section contient les rubriques suivantes :

  • Création d’un élément de la campagne de remise

  • Affichage d’un aperçu d’une remise

  • Copie d’un élément de la campagne de remise


Création d'un élément de la campagne de remise

Création d’un élément de la campagne de remise

Après avoir créé une campagne marketing, vous pouvez créer un élément de la campagne de remise. Vous pouvez appliquer des remises à tous les éléments ou catégories de votre catalogue. Vous pouvez par exemple appliquer une remise de 20 pour cent à une catégorie Clavier d’un catalogue Matériel. Lors de la création d’un élément de la campagne de remise, vous spécifiez comment et sous quelle forme la remise doit apparaître à l’utilisateur.

Les expressions de ciblage vous permettent de cibler la remise pour des utilisateurs spécifiques. Vous pouvez par exemple faire bénéficier des acheteurs privilégiés d’une remise de dix pour cent sur les deux premiers articles contenus dans leur panier d’achats. Vous pouvez également préciser combien de fois une remise donnée doit apparaître à l’utilisateur au cours d’une session. Après avoir spécifié l’affichage de la remise, vous pouvez en afficher un aperçu avant de l’enregistrer dans le Gestionnaire de campagnes.

Ajout de propriétés de la campagne de remise

Spécification des conditions de remise, des remises exceptionnelles et des conditions d’éligibilité

Ciblage d’une remise pour un groupe de pages

Spécification de l’affichage d’une campagne de remise

Ajout de propriétés de la campagne de remise

Vous pouvez attribuer des priorités pour l’ordre d’application des remises lorsque plusieurs remises sont créées, ainsi que spécifier les dates de début et de fin de l’élément de la campagne de remise.

Pour ajouter des propriétés de la campagne de remise

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la campagne pour laquelle vous souhaitez créer un élément de la campagne de remise, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Nouvelle remise dans la liste déroulante.

  3. Dans l’écran Gestionnaire de campagnes - <Nom du client> - <Nom de la campagne marketing> - Nouvelle (remise), dans la section Propriétés de la remise, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de la remise | Taper le nom de l’élément de la campagne de remise.
    État Sélectionner l’état de la campagne de remise dans la liste déroulante.

    L’état peut être Actif ou Inactif.

    Priorité Sélectionner la priorité de la campagne de remise dans la liste déroulante.

    La priorité de la remise détermine les remises pouvant être appliquées au panier. Par exemple, une remise avec une priorité 10 est appliquée de manière prioritaire par rapport à une remise de priorité 20.

    Commentaires | Taper tout commentaire concernant cette campagne de remise.
    Date de début | Taper ou sélectionner dans le calendrier déroulant la date de début de l’élément de la campagne de remise.
    Date de fin | Taper ou sélectionner dans le calendrier déroulant la date de fin de l’élément de la campagne de remise.

Remarque

  • Vous devez définir l’affichage de la remise avant de pouvoir enregistrer l’élément de la campagne de remise. Pour plus d’informations sur la définition de l’affichage de la remise, consultez Spécification de l’affichage d’une campagne de remise.

Spécification des conditions de remise, des remises exceptionnelles et des conditions d’éligibilité

Vous identifiez le produit ou la catégorie du catalogue à laquelle vous voulez appliquer la remise, puis vous indiquez le montant de la remise (ce montant correspond à une valeur en francs ou une valeur d’unité). Vous spécifiez les utilisateurs qui bénéficieront de la remise et le nombre d’articles à acheter avant que la remise puisse être appliquée. Vous spécifiez également la remise exceptionnelle (par exemple, un pourcentage de réduction sur le prix du produit, un produit gratuit ou une livraison gratuite) dont l’utilisateur bénéficie s’il reçoit cette remise. Vous pouvez par exemple accorder une remise exceptionnelle de 20 pour cent aux utilisateurs de plus de 40 ans sur un disque compact de jazz, s’ils achètent 3 articles de la catégorie des disques compacts dans votre catalogue.

Exemples de scénarios

Pour spécifier la définition de la remise

Exemple : définition de la condition d’une remise, d’une remise exceptionnelle et des conditions d’éligibilité

Exemples de scénarios

Les scénarios suivants présentent diverses remises exceptionnelles proposées ainsi que les conditions d’éligibilité pour chacune d’elles.

  • Scénario 1 : si un utilisateur achète n’importe quels produits pour une somme supérieure à 600 FF, il bénéficie de la livraison gratuite.
    Remises - livraison gratuite

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  • Scénario 2 : si un utilisateur achète n’importe quels produits du catalogue, il bénéficie d’une remise de dix pour cent sur n’importe quelle marque de blue-jeans.
    Remises - 10 pour cent de remise sur les jeans

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  • Scénario 3 : un client privilégié bénéficie d’une remise de dix pour cent sur les deux premiers articles de son panier.
    Remises - clients réguliers

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  • Scénario 4 : si les utilisateurs cliquent sur l’image de la remise, ils bénéficient d’une réduction de 30 FF sur le prix de n’importe quel ensemble de serviettes de toilette.
    Remises - 30 FF de remise sur les serviettes de bain

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  • Scénario 5 : les utilisateurs de plus de 40 ans qui achètent 3 articles de la catégorie des disques compacts bénéficient d’une remise exceptionnelle de 50 pour cent sur le prix d’un disque compact de jazz.
    Remises - 50 pour cent de remise sur les CD de jazz

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

Pour spécifier la définition de la remise

Pour spécifier la définition de la remise, vous définissez les conditions de la remise, la remise exceptionnelle et les conditions d’éligibilité. Pour avoir un exemple de la définition d’une remise, consultez Exemple : définition de la condition d’une remise, d’une remise exceptionnelle et des conditions d’éligibilité.

  1. Dans l’écran Gestionnaire de campagnes - <Nom du client> - <Nom de la campagne marketing> - Nouvelle (remise), dans la section Définition de la remise, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Acheter : n’importe quel Appliquer la remise à n’importe quel produit. Dans ce cas, activez la case à cocher.

    Appliquer la remise à des produits ou des catégories spécifiques. Dans ce cas, n’activez pas cette case à cocher, puis suivez les autres étapes indiquées dans cette procédure.

    Acheter :
    • Première zone. Sélectionner Valeur ou Quantité dans la liste déroulante.

    • Deuxième zone. Entrer la valeur en francs ou la valeur de l’unité de la remise, en fonction de la mesure sélectionnée dans Acheter : (première zone) pour la remise.

    • Troisième zone. Sélectionner l’option associée à cette remise dans la liste déroulante. Les valeurs figurant dans cette zone sont les suivantes : [tout produit], [Sélecteur de produits] et [Générateur d’expressions].

      [tout produit] Sélectionner cette option si la remise concerne n’importe quel produit.

      [Sélecteur de produits…] Sélectionner cette option si la remise concerne un produit ou une catégorie spécifique de votre catalogue. Utilisez la boîte de dialogue Sélecteur de produits pour rechercher des produits ou des catégories spécifiques dans vos catalogues. Pour plus d’informations sur l’utilisation du Sélecteur de produits, consultez Nouveau dans le sélecteur de produits.

      - ou -

      Cliquer sur le bouton de sélection […] ou sélectionner l’option [Générateur d’expressions] pour ouvrir la boîte de dialogue Expression de catalogue. Vous pouvez créer une expression de catalogue pour spécifier les catégories ou les produits auxquels vous souhaitez appliquer une remise. Pour plus d’informations sur la création d’expressions de catalogue, consultez Création d’une expression de catalogue.

      Remarque

      • D’autres produits et catégories s’affichent dans la liste déroulante s’ils ont été précédemment sélectionnés.
    Obtenir comme remise : Livraison gratuite Proposer une livraison gratuite en tant que remise exceptionnelle pour tous les produits commandés. Dans ce cas, activez la case à cocher.

    Spécifier les produits ou catégories qui bénéficieront des remises exceptionnelles. Dans ce cas, n’activez pas la case à cocher Livraison gratuite, puis suivez les autres étapes indiquées dans cette procédure.

    Obtenir comme remise
    • Première zone. Taper le nombre d’unités dont l’utilisateur bénéficie lorsque les critères de la remise sont remplis.

      Deuxième zone. Sélectionner l’option associée à cette remise dans la liste déroulante. Les valeurs figurant dans cette zone sont les suivantes : [tout produit], [Sélecteur de produits...] et [Générateur d’expressions...].

      [tout produit] Sélectionner cette option si la remise exceptionnelle concerne n’importe quel produit.

      [Sélecteur de produits…] Sélectionner cette option si la remise exceptionnelle concerne un produit ou une catégorie spécifique de votre catalogue. L’interface figurant dans la boîte de dialogue Sélecteur de produits permet de rechercher des produits ou catégories spécifiques dans les catalogues. Pour plus d’informations sur l’utilisation du Sélecteur de produits, consultez Nouveau dans le sélecteur de produits.

      - ou -

      Cliquer sur le bouton de sélection […] ou sélectionner l’option [Générateur d’expressions] pour ouvrir la boîte de dialogue Expression de catalogue. Vous pouvez créer une expression de catalogue pour spécifier les catégories ou les produits auxquels vous souhaitez appliquer la remise exceptionnelle. Pour plus d’informations sur la création d’expressions de catalogue, consultez Création d’une expression de catalogue.

      Remarque

      • D’autres produits et catégories s’affichent dans la liste déroulante s’ils ont été précédemment sélectionnés.
    • Troisième zone. Sélectionner la mesure de la remise exceptionnelle dans la liste déroulante.

    • Quatrième zone. Entrer la valeur en francs ou la valeur de l’unité de la remise exceptionnelle, correspondant soit à un prix, soit à un pourcentage en fonction de la mesure sélectionnée pour la remise exceptionnelle.
    Limite | Sélectionner une limite de remise dans la liste déroulante. Aucune indique l’absence de limite pour la remise. La limite de remise est de 10 attributions par utilisateur.
    Appliquer l’offre à la réservation du produit uniquement Appliquer la remise uniquement à la remise exceptionnelle.

    Par exemple, si un utilisateur achète deux paires de chaussures (notamment une paire de chaussures de tennis), et qu’il bénéficie d’une remise de 20 pour cent sur une paire de chaussures de tennis, les 20 pour cent de réduction ne s’appliquent qu’aux chaussures de tennis que l’utilisateur reçoit en tant que remise exceptionnelle.

    Appliquer l’offre à la réservation et à l’achat du produit Appliquer la remise à la fois au produit répondant aux conditions de qualification et à la remise exceptionnelle.

    Par exemple, si un utilisateur achète deux paires de chaussures (notamment une paire de chaussures de tennis), et qu’il bénéficie d’une remise de 20 pour cent sur une paire de chaussures de tennis, les 20 pour cent de réduction s’appliquent aux deux paires de chaussures de tennis.

    La remise est conditionnée par un clic de souris. Appliquer la remise uniquement lorsque le client clique sur une publicité de remise Appliquer la remise uniquement lorsque le client clique effectivement sur la remise. Dans ce cas, activez cette case à cocher.

    Si vous ne voulez pas que la remise soit conditionnée par un clic, n’activez pas cette case à cocher.

    Conditions d’éligibilité : Expression disponible Sélectionner les expressions pour la remise dans la liste des expressions disponibles, puis cliquer sur Ajouter.

    Pour plus d’informations sur la création d’expressions de ciblage, consultez Création d’une expression de ciblage.

La condition de remise, la remise exceptionnelle et les conditions d’éligibilité sont spécifiées pour l’élément de la campagne de remise.

Remarque

  • Vous devez définir l’affichage de la remise avant de pouvoir enregistrer l’élément de la campagne de remise. Pour plus d’informations sur la définition de l’affichage de la remise, consultez Spécification de l’affichage d’une campagne de remise.

Exemple : définition de la condition d’une remise, d’une remise exceptionnelle et des conditions d’éligibilité

L’exemple suivant montre comment définir une remise ciblant les utilisateurs âgés de plus de 40 ans qui achètent 3 articles d’une catégorie du catalogue et qui bénéficient alors d’une remise exceptionnelle de 50 pour cent de réduction sur un article du catalogue.

  1. Dans l’écran Gestionnaire de campagnes - <Nom du client> - <Nom de la campagne marketing> - Nouvelle (remise), dans la section Définition de la remise, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Acheter : n’importe quel | Appliquer la remise à des produits ou des catégories spécifiques. Dans ce cas, n’activez pas cette case à cocher, puis suivez les autres étapes indiquées dans cette procédure.
    Acheter :
    • Première zone. Sélectionner Quantité dans la liste déroulante.

      Dans la boîte de dialogue Sélecteur de produits, sélectionner le catalogue à utiliser dans la liste déroulante. Dans la zone Catégories, sélectionner la catégorie à laquelle appliquer la remise, puis cliquer sur OK.

    • Deuxième zone. Entrer 3 en tant que quantité à acheter.

    • Troisième zone. Sélectionner [Sélecteur de produits] dans la liste déroulante.
    Obtenir comme remise : Livraison gratuite | Spécifier les produits ou les catégories spécifiques qui bénéficieront des remises exceptionnelles. Dans ce cas, n’activez pas cette case à cocher, puis suivez les autres étapes indiquées dans cette procédure.
    Obtenir comme remise
    • Première zone. Taper 1 en tant que nombre d’unités dont l’utilisateur bénéficie lorsque les critères de la remise sont remplis.

      Deuxième zone. Sélectionner [Sélecteur de produits...] dans la liste déroulante.

      Dans la boîte de dialogue Sélecteur de produits, sélectionner le catalogue à utiliser dans la liste déroulante. Dans la zone Catégories, sélectionner la catégorie à laquelle appliquer la remise exceptionnelle. Dans la zone Produits dans la catégorie, sélectionner le produit auquel appliquer la remise exceptionnelle, puis cliquer sur OK.

      • Troisième zone. Sélectionner Pourcentage (%) dans la liste déroulante.

      • Quatrième zone. Entrer 50 en tant que valeur en francs de la remise exceptionnelle.
    Limite | Sélectionner Aucune en tant que limite, ce qui indique l’absence de limite pour la remise.
    Appliquer l’offre à la réservation du produit uniquement | Appliquer la remise uniquement à la remise exceptionnelle.
    La remise est conditionnée par un clic de souris. Appliquer la remise uniquement lorsque le client clique sur une publicité de remise | Appliquer la remise uniquement lorsque le client clique effectivement sur la remise, en activant cette case à cocher.
    Conditions d’éligibilité : Expression disponible Sélectionner les expressions pour la remise dans la liste des expressions disponibles, puis cliquer sur Ajouter.

    Il est par exemple possible de créer une expression de ciblage destinée à cibler les utilisateurs de plus de 40 ans.

Une remise exceptionnelle de 50 pour cent de réduction sur le prix d’un élément spécifié du catalogue sera accordée à tous les utilisateurs de plus de 40 ans qui achètent trois produits issus de la catégorie du catalogue spécifiée.

Ciblage d’une remise pour un groupe de pages

Vous pouvez spécifier si un élément de la campagne de remise doit s’afficher sur toutes les pages d’un site ou bien uniquement sur des groupes de pages déterminés. Les groupes de pages permettent de spécifier les pages Web sur lesquelles un élément de la campagne de remise doit s’afficher. Par exemple, si votre site Web est un journal en ligne, vous pouvez faire en sorte qu’une remise sur des clubs de golf apparaisse uniquement dans la page des sports.

Vous pouvez afficher vos éléments de remise sur tous les groupes de pages ou bien effectuer une sélection parmi les groupes de pages créés dans la section Groupes de pages du module Tables de références.

Remarque

  • Pour que vous puissiez cibler une publicité pour un groupe de pages, le développeur de votre site doit préalablement activer la page pour la publicité. Pour activer une page pour la publicité, consultez l’exemple de mini-site de publicité dans le Kit de développement de logiciel (SDK) de Commerce Server 2000.

Vous pouvez également spécifier les groupes cibles auxquels la remise doit s’appliquer. Un groupe cible est un ensemble de plusieurs expressions permettant de cibler un groupe d’utilisateurs spécifique. Vous pouvez utiliser des groupes cibles afin d’inclure certains utilisateurs dans un groupe ou d’exclure certains utilisateurs d’un groupe. Pour plus d’informations sur la création de groupes cibles, consultez Création d’un groupe cible.

Pour cibler une remise pour un groupe de pages

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes, sélectionnez la remise pour laquelle vous souhaitez spécifier une cible de la remise, puis cliquez sur Ouvrir dans la barre d’outils.

  2. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de remise> (ID de la remise : <numéro>), dans la section Cible de l’affichage de la remise, effectuez les opérations suivantes :
    Utilisez ceci Pour faire cela
    Utiliser ces cibles en plus des cibles admissibles sélectionnées Utiliser des groupes de pages et/ou des groupes cibles en plus des cibles admissibles sélectionnées dans l’écran Définition de la remise.

    Pour plus d’informations sur les groupes de pages, consultez Ajout de groupes de pages. Pour plus d’informations sur les groupes cibles, consultez Création d’un groupe cible.

    Utiliser ces cibles à la place des cibles admissibles sélectionnées Utiliser des groupes de pages et/ou des groupes cibles à la place des cibles admissibles sélectionnées dans l’écran Définition de la remise.

    Pour plus d’informations sur les groupes de pages, consultez Ajout de groupes de pages. Pour plus d’informations sur les groupes cibles, consultez Création d’un groupe cible.

    Afficher sur tous les groupes de pages Afficher la publicité sur tous les groupes de pages du site Web. Dans ce cas, activez la case à cocher.

    Attribuer un élément de la campagne de remise à un groupe de pages spécifique. Dans ce cas, désactivez la case à cocher, puis suivez les autres étapes de cette procédure.

    Groupes de pages : Disponibles Sélectionner les groupes de pages à attribuer, puis cliquer sur Ajouter.

    Le groupe de pages est placé dans la zone Attribués. Pour supprimer un groupe de pages de la zone Attribués, cliquez sur Supprimer. Le groupe de pages placé dans la zone Disponibles.

    Groupes cibles : Disponibles Sélectionner les groupes cibles auxquels cette remise s’applique, puis cliquer sur Ajouter.

    Le groupe cible est placé dans la zone Attribués. Pour supprimer un groupe cible de la zone Attribués, cliquez sur Supprimer. Le groupe cible est placé dans la zone Disponibles.

    Pour plus d’informations sur la création d’expressions de ciblage, consultez Création d’une expression de ciblage.

Les groupes de pages sélectionnés et les informations de ciblage de la campagne de remise sont spécifiés pour l’élément de la campagne de remise.

Remarque

  • Vous devez définir l’affichage de la remise avant de pouvoir enregistrer l’élément de la campagne de remise. Pour plus d’informations sur la définition de l’affichage de la remise, consultez Spécification de l’affichage d’une campagne de remise.

Spécification de l’affichage d’une campagne de remise

Vous pouvez spécifier comment et sous quelle forme une remise apparaît à l’utilisateur. Par exemple, vous pouvez afficher une grande publicité sur votre page d’accueil, offrant une remise de 20 % sur tous les produits de votre catalogue. Vous pouvez également préciser combien de fois une remise donnée doit apparaître à l’utilisateur au cours d’une session.

Pour spécifier l’affichage d’une campagne de remise

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes, sélectionnez la remise pour laquelle vous souhaitez spécifier l’affichage de la campagne de remise, puis cliquez sur Ouvrir dans la barre d’outils.

  2. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de remise> (ID de la remise : <numéro>), dans la section Affichage de la remise, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Limite d’exposition Sélectionner dans la liste déroulante le nombre de fois que la remise doit être affichée à l’utilisateur au cours d’une session.

    La valeur par défaut pour la limite d’exposition est zéro, ce qui signifie qu’aucune limite d’affichage n’est définie. La limite d’exposition doit avoir un seuil supérieur de 10 affichages par utilisateur et par session.

    Affichage du panier | Taper le texte qui doit apparaître dans la page du panier concernant la remise.
    Taille du contenu Sélectionner la taille de contenu de la remise dans la liste déroulante proposant les types disponibles.

    Il est possible d’exiger un type spécifique de publicité pour votre campagne de remise.

    Type de contenu | Sélectionner le type de contenu de la remise dans la liste déroulante proposant les types disponibles.

    Remarque

    • Les zones qui s’affichent sous la zone Type de contenu dépendent du type de contenu que vous avez sélectionné. Pour plus d’informations sur la définition de l’affichage de la campagne de publicité pour un type de remise spécifique, consultez Définition d’un type de publicité.
  3. Pour enregistrer la campagne de remise et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

L’affichage de la remise est enregistré avec la campagne de remise.

Pour plus d’informations sur la publication de la remise sur votre site Web, consultez Publication des modifications de la campagne marketing sur votre site Web.

Voir aussi

Remises

Affichage d’un aperçu d’une remise

Création d’une expression de ciblage

Création d’un groupe cible

Création d’une expression de catalogue

Nouveau dans le sélecteur de produits

Ajout de groupes de pages

Publication des modifications de la campagne marketing sur votre site Web


Affichage d'un aperçu d'une remise

Affichage d’un aperçu d’une remise

Après avoir défini l’affichage de la remise, vous pouvez en afficher un aperçu avant de l’envoyer en production.

Pour afficher un aperçu de la remise

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la remise dont vous souhaitez afficher un aperçu, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de la campagne de remise> (ID de la remise : <numéro>), dans la section Affichage de la remise, cliquez sur Aperçu.

  4. Dans la boîte de dialogue Aperçu, cliquez sur Oui pour enregistrer l’élément de la campagne de remise.

Une copie de la remise s’affiche dans la zone d’affichage en dessous du bouton Aperçu.

La page Web associée à la remise s’affiche dans une nouvelle fenêtre Internet Explorer.

Voir aussi

Création d’un élément de la campagne de remise

Spécification de l’affichage d’une publicité

Affichage d’un aperçu d’un élément de la campagne


Copie d'un élément de la campagne de remise

Copie d’un élément de la campagne de remise

Vous pouvez copier un élément de la campagne de remise existant afin d’ajouter rapidement des éléments de la campagne de remise supplémentaires pour un client et sa campagne. En utilisant une remise existante comme modèle, vous pouvez modifier les propriétés de cette remise pour prendre en compte les buts quantitatifs du nouvel élément de la campagne de remise.

Pour copier une remise

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la remise que vous souhaitez copier, puis cliquez sur Copier dans la barre d’outils.

  3. Dans la boîte de dialogue Copier la remise, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Sélectionner un client | Sélectionner dans la liste déroulante le client dont vous souhaitez copier la remise.
    Sélectionner une campagne marketing | Sélectionner dans la liste déroulante la campagne marketing dont vous souhaitez copier la remise.

  4. Cliquez sur OK.

  5. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> Nouvelle (remise), dans la section Propriétés de la remise, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de la remise | Taper un nom pour la nouvelle remise.

  6. Modifiez les autres propriétés en fonction des besoins puis, pour enregistrer la remise et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

La nouvelle remise s’affiche dans l’arborescence du Gestionnaire de campagnes, sous le client et la campagne marketing spécifiés.

Voir aussi

Création d’un élément de la campagne de remise


Ciblage d'une publicité ou d'une remise

Ciblage d’une publicité ou d’une remise

Vous pouvez utiliser le module Expressions de la campagne marketing pour définir les catégories, les produits ou les propriétés de produits que vous souhaitez afficher pour les utilisateurs qui répondent aux critères de ciblage. Vous utilisez le module Expressions de la campagne marketing pour créer des expressions permettant de cibler une publicité ou une remise pour un groupe d’utilisateurs.

Vous pouvez créer les types d’expressions suivants :

  • Expressions de catalogue. Elles permettent de définir les catégories, les produits ou les propriétés de produits auxquels une remise s’applique. Par exemple, « si Prix_Livre est supérieur à 120,00 FF, appliquer la remise ». Après avoir créé une expression de catalogue, vous pouvez cibler vos campagnes de remise pour qu’elles s’appliquent uniquement aux produits qui répondent aux critères de cette expression de catalogue.

  • Expressions de ciblage. Elles permettent de définir les utilisateurs pour lesquels vous souhaitez afficher des publicités ou des remises. Par exemple, « si Utilisateur a la propriété Femme, afficher la publicité pour la peinture bleue ».

  • Groupes cibles. Ils combinent plusieurs expressions de ciblage, vous permettant ainsi de cibler vos campagnes de publicité et de remise pour des groupes d’utilisateurs qui répondent aux critères de ces expressions de ciblage. Vous pouvez également utiliser des expressions de ciblage pour cibler des groupes de pages sur votre site Web. Après avoir défini vos expressions de ciblage, vous pouvez combiner plusieurs de ces expressions pour créer des groupes cibles. Il est par exemple possible de combiner les expressions « si Utilisateur a la propriété Femme » et « si Utilisateur a acheté de la peinture auparavant » pour créer le groupe cible « Utilisatrices de peinture ». Vous pouvez ensuite afficher une publicité ou une remise pour du papier peint au groupe « Utilisatrices de peinture ».

Cette section contient les rubriques suivantes :

  • Création d’une expression de catalogue

  • Création d’une expression de ciblage

  • Création d’un groupe cible


Création d'une expression de catalogue

Création d’une expression de catalogue

Vous créez des expressions de catalogue pour spécifier les catégories ou les produits auxquels vous souhaitez appliquer une remise. Vous créez une expression en effectuant une sélection dans une liste de produits, de propriétés de produits ou de catégories d’un catalogue, d’opérateurs et, si nécessaire, en entrant la valeur à évaluer par l’expression. Par exemple, une expression de catalogue pourrait être « Livres supérieurs à 120,00 » ou « Catégorie est égale à Fiction ». La remise est appliquée au produit ou à la catégorie pour lesquels les conditions de l’expression sont vraies.

Dans l’écran Expressions de catalogue, vous créez une expression de catalogue en sélectionnant une des options suivantes :

  • Nouveau dans le sélecteur de produits. Sélectionnez cette option si vous souhaitez rechercher le catalogue, le produit, la propriété de produit ou la catégorie utilisée dans les critères de l’expression.

  • Nouvelle expression de catalogue. Sélectionnez cette option pour ouvrir le Générateur d’expressions.

Nouveau dans le sélecteur de produits

Vous utilisez le Sélecteur de produits pour rechercher et sélectionner un produit ou une catégorie afin de cibler une campagne de remise. Vous pouvez rechercher des produits et des catégories en utilisant les méthodes de recherche suivantes :

  • Pour ouvrir le Sélecteur de produits

  • Pour parcourir un catalogue

  • Pour effectuer une recherche par mots-clés

  • Pour effectuer une recherche par propriétés de produits

Pour ouvrir le Sélecteur de produits

  1. Dans Campagnes marketing, cliquez sur Expressions de la campagne marketing.

  2. Dans l’écran Expressions de la campagne marketing : Expressions de ciblage, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Expressions de catalogue dans la liste déroulante.

  3. Dans l’écran Expressions de la campagne marketing : Expressions de catalogue, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Nouveau dans le sélecteur de produits dans la liste déroulante.

Pour parcourir un catalogue

  1. Dans la boîte de dialogue Sélecteur de produits, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Méthode de recherche | Sélectionner Parcourir le catalogue.
    Catalogue | Sélectionner dans la liste déroulante le catalogue faisant l’objet de la recherche.
    Catégories | Sélectionner la catégorie faisant l’objet de la recherche.

  2. Cliquez sur OK.

La catégorie sélectionnée s’affiche dans la zone Expression de catalogue.

Pour effectuer une recherche par mots-clés

  1. Dans la boîte de dialogue Sélecteur de produits, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Méthode de recherche | Sélectionner Recherche par mots-clés.
    Catalogue | Sélectionner dans la liste déroulante le catalogue faisant l’objet de la recherche.
    Mots-clés | Taper les mots que vous souhaitez rechercher, puis cliquer sur Rechercher.
    Produits | Sélectionner le produit que vous souhaitez cibler.

  2. Cliquez sur OK.

Le produit sélectionné s’affiche dans la zone Expression de catalogue.

Pour effectuer une recherche par propriétés de produits

  1. Dans la boîte de dialogue Sélecteur de produits, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Méthode de recherche | Sélectionner Rechercher par propriétés.
    Catalogue | Sélectionner dans la liste déroulante le catalogue faisant l’objet de la recherche.
    Cible basée sur les conditions suivantes Cliquer sur Nouvelle.

    La première des trois zones d’édition de la zone Cible basée sur les conditions suivantes est activée, ce qui vous permet de sélectionner ou de taper les clauses de l’expression.

    Cible basée sur les conditions suivantes :
    • Première zone. Sélectionner le groupe de propriétés dans la liste déroulante, puis sélectionner la propriété à utiliser pour créer l’expression de catalogue.

      • Deuxième zone. Sélectionner l’opérateur à utiliser avec cette expression de catalogue dans la liste déroulante.

      • Troisième zone. Taper la propriété ou la valeur qui doit être évaluée par l’expression de catalogue.

    Remarque

    • Dans les expressions de campagne marketing, vous devez utiliser un point-virgule (;) pour séparer plusieurs valeurs. Vous ne devez pas utiliser la virgule, car elle n’est pas reconnue en tant que séparateur. Par exemple, vous pouvez entrer une liste de nombres sous la forme 2,534; 3,485; 6,982. Le caractère d’échappement pour le point-virgule en tant que tel est une barre oblique inverse (\). Par exemple, la valeur ABC;12 doit être entrée sous la forme ABC\;12.

    Par exemple, dans un catalogue de livres, l’expression Auteur (propriété) contient (opérateur) Penn (chaîne) appliquera une remise uniquement aux livres dont l’auteur est Daniel Penn.

    Sélecteur de produits

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

    2. Cliquez sur Appliquer.

    Les produits correspondant aux critères de recherche s’affichent dans la zone Produits.

    3. Cliquez sur OK.

    4. Pour enregistrer l’expression et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

    L’expression est ajoutée à l’écran Expressions de la campagne marketing : Expressions de catalogue, dans le module Expressions de la campagne marketing. Vous pouvez maintenant utiliser cette expression pour cibler une campagne de remise pour un groupe d’utilisateurs.

    Nouvelle expression de catalogue

    Dans l’écran Expressions de catalogue, vous utilisez le Générateur d’expressions pour créer des expressions de catalogue.

    Pour créer une expression de catalogue

    1. Dans Campagnes marketing, cliquez sur Expressions de la campagne marketing, sur Afficher dans la barre d’outils, puis sélectionnez Expressions de catalogue dans la liste déroulante.

    2. Dans l’écran Expressions de la campagne marketing : Expressions de catalogue, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Nouvelle expression de catalogue.

    3. Dans la boîte de dialogue Expression de catalogue, effectuez les opérations suivantes :
      Utilisez ceci | Pour faire cela
      Nom | Taper un nom pour la nouvelle expression de catalogue.
      Description Taper une description pour la nouvelle expression de catalogue, puis cliquer sur Nouvelle.

      La première des trois zones d’édition de la zone Cible basée sur les conditions suivantes est activée, ce qui vous permet de sélectionner ou taper les clauses de l’expression.

      Cible basée sur les conditions suivantes :
      • Première zone. Sélectionner l’option associée à cette expression dans la liste déroulante. Les valeurs figurant dans cette zone sont les suivantes : Product et Expressions (le cas échéant).
        • Si vous sélectionnez Product, une liste des propriétés du produit s’affiche. Sélectionnez la propriété à utiliser pour créer la nouvelle expression de catalogue.

        • Si vous sélectionnez Expressions, une liste de l’ensemble des expressions en cours du catalogue s’affiche. Sélectionnez l’expression de catalogue à utiliser pour créer la nouvelle expression de catalogue, puis cliquez sur OK.
      • Deuxième zone. Sélectionner l’opérateur à utiliser avec cette expression de catalogue dans la liste déroulante.

      • Troisième zone. Taper la propriété ou la valeur qui doit être évaluée par l’expression de catalogue.

    Remarque

    • Dans les expressions de campagne marketing, vous devez utiliser un point-virgule (;) pour séparer plusieurs valeurs. Vous ne devez pas utiliser la virgule, car elle n’est pas reconnue en tant que séparateur. Par exemple, vous pouvez entrer une liste de nombres sous la forme 2,534; 3,485; 6,982. Le caractère d’échappement pour le point-virgule en tant que tel est une barre oblique inverse (\). Par exemple, la valeur ABC;12 doit être entrée sous la forme ABC\;12.

    Par exemple, dans un catalogue de livres, l’expression Artiste (propriété du produit) contient (opérateur) Penn (propriété) appliquera une remise uniquement aux livres dont l’auteur est Daniel Penn.

    Expression de catalogue

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

    4. Cliquez sur Appliquer.

      La nouvelle expression de catalogue est ajoutée à la zone Cible basée sur les conditions suivantes.

      Remarque

      • Pour ajouter d’autres conditions à l’expression de catalogue que vous venez de créer, répétez les étapes 2 à 4, puis sélectionnez Et ou Ou dans la liste déroulante.
    5. Pour enregistrer l’expression de catalogue et revenir à l’écran Expressions de la campagne marketing, cliquez sur Enregistrer.

    L’expression est ajoutée à l’écran Expressions de la campagne marketing : Expressions de catalogue. Vous pouvez maintenant utiliser cette expression pour cibler une campagne de remise pour un groupe d’utilisateurs.

    Voir aussi

    Création d’un élément de la campagne de remise


Création d'une expression de ciblage

Création d’une expression de ciblage

Vous créez des expressions de ciblage pour spécifier les utilisateurs que vous souhaitez cibler avec les publicités et les remises. Une expression est une combinaison de propriétés, d’opérateurs et de valeurs qui permettent d’obtenir un résultat après une évaluation. Vous créez une expression en effectuant une sélection dans une liste prédéfinie de cibles, d’opérateurs et, si nécessaire, en entrant la valeur à évaluer par l’expression (par exemple, un nombre). Par exemple, une expression de ciblage pourrait être « Classe du compte est égale à 10 » ou « Utilisatrice féminine est Vrai ». Vous utilisez le Générateur d’expressions de l’écran Expressions de ciblage pour créer des expressions de ciblage.

Pour créer une expression de ciblage

  1. Dans Campagnes marketing, cliquez sur Expressions de la campagne marketing.

  2. Dans l’écran Expressions de la campagne marketing : Expressions de ciblage, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Expressions de ciblage dans la liste déroulante.

  3. Dans l’écran Expressions de la campagne marketing : Expressions de ciblage, cliquez sur Nouveau dans la barre d’outils.

  4. Dans la boîte de dialogue Expression de ciblage, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom pour la nouvelle expression de ciblage.
    Description Taper une description pour la nouvelle expression de ciblage, puis cliquer sur Nouvelle.

    La première des trois zones d’édition de la zone Cible basée sur les conditions suivantes est activée, ce qui vous permet de sélectionner ou de taper les clauses de l’expression.

    Cible basée sur les conditions suivantes :
    • Première zone. Sélectionner l’option associée à cette expression dans la liste déroulante. Les valeurs figurant dans cette zone sont les suivantes : Objet utilisateur, Contexte de ciblage et Expressions (le cas échéant).

      Si vous sélectionnez Objet utilisateur, une liste déroulante présentant les objets utilisateur s’affiche. Sélectionnez l’objet utilisateur, puis sélectionnez le type d’objet utilisateur à utiliser dans cette expression.

      Si vous sélectionnez Contexte de ciblage, la propriété Groupe de pages et d’autres propriétés qui ont été créées pour le profil contexte de ciblage s’affichent. Sélectionnez la propriété à utiliser dans cette expression. Pour plus d’informations sur l’ajout de propriétés de profil, consultez Ajout de propriétés à une définition de profil.

      Si vous sélectionnez Expressions, la boîte de dialogue Choisir une expression s’affiche. Sélectionnez l’expression à utiliser dans la liste des expressions, puis cliquez sur OK.

      Les expressions s’affichent uniquement si une expression a été créée avant l’ouverture de la boîte de dialogue Expression de ciblage.

    • Deuxième zone. Sélectionner un type d’opérateur pour l’expression parmi les types disponibles dans la liste déroulante.

    • Troisième zone. Taper la propriété ou la valeur qui doit être évaluée par l’expression.

      Si un objet ou une fonction ne figure pas dans la liste, cela indique son invalidité dans le contexte dans lequel vous avez démarré le générateur. Par exemple, un jeu d’opérateurs différent s’affiche si la cible se base sur une expression plutôt que sur un objet utilisateur.

      Si vous avez sélectionné l’objet Groupe de catalogues de l’utilisateur dans la première zone, tapez la propriété Groupe de catalogues à évaluer par l’expression. Pour plus d’informations sur l’ajout d’une propriété pour un nom de groupe de catalogues, consultez Ajout d’une définition de propriété.

    Remarque

    • Dans les expressions de campagne marketing, vous devez utiliser un point-virgule (;) pour séparer plusieurs valeurs. Vous ne devez pas utiliser la virgule, car elle n’est pas reconnue en tant que séparateur. Par exemple, vous pouvez entrer une liste de nombres sous la forme 2,534; 3,485; 6,982. Le caractère d’échappement pour le point-virgule en tant que tel est une barre oblique inverse (\). Par exemple, la valeur ABC;12 doit être entrée sous la forme ABC\;12.

      Par exemple, l’expression Pays d'origine (propriété du produit) est égal à (opérateur) CA (chaîne), applique une remise uniquement aux clients qui habitent dans l’état de Californie.

    Expression de ciblage

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  5. Cliquez sur Appliquer.

    La nouvelle expression de ciblage est ajoutée à la zone Cible basée sur les conditions suivantes.

    Remarque

    • Pour ajouter d’autres conditions à l’expression de ciblage que vous venez de créer, répétez les étapes 3 à 5, puis sélectionnez Et ou Ou dans la liste déroulante.
  6. Pour enregistrer l’expression de ciblage et revenir à l’écran Expressions de la campagne marketing : Expressions de ciblage, cliquez sur Enregistrer.

L’expression est ajoutée à l’écran Expressions de la campagne marketing : Expressions de ciblage. Vous pouvez maintenant regrouper plusieurs expressions de ciblage pour créer un groupe cible, qui vous permettra de cibler vos publicités ou vos remises.

Voir aussi

Ajout d’un élément de la campagne de publicité

Création d’un groupe cible


Création d'un groupe cible

Création d’un groupe cible

Vous utilisez le module Groupe cible pour regrouper plusieurs expressions afin d’afficher une publicité ou une remise pour un groupe d’utilisateurs. Vous pouvez préciser si certains utilisateurs doivent être inclus dans ce groupe ou au contraire exclus du groupe. Par exemple, dans un groupe cible de propriétaires d’animaux, vous pouvez spécifier que les propriétaires de chats sont inclus mais que les propriétaires de chiens sont exclus, en appliquant des actions aux expressions de ciblage. Les groupes cibles permettent de créer des règles commerciales qui déterminent les groupes d’utilisateurs auxquels vos publicités et vos remises sont destinées.

Les groupes cibles sont créés à partir d’expressions de ciblage et d’actions existantes. Vous pouvez créer des expressions de ciblage dans le module Groupe cible, à l’aide du Générateur d’expressions de ciblage. Dans le module Groupe cible, vous pouvez spécifier si une expression est ciblée, requise, exclue ou si elle sponsorise une page d’accueil.

Pour créer un nouveau groupe cible

  1. Dans Campagnes marketing, cliquez sur Groupe cible.

  2. Dans l’écran Groupe cible, cliquez sur Nouveau dans la barre d’outils.

  3. Dans l’écran Groupe cible : Nouveau, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom du groupe cible | Taper un nom pour le nouveau groupe cible.
    Expression Sélectionner l’expression à utiliser pour créer le nouveau groupe cible dans la liste déroulante.

    Si vous voulez créer une expression, cliquez sur le bouton Créer une nouvelle expression. Pour plus d’informations sur la création d’expressions de ciblage, consultez Création d’une expression de ciblage.
    Action Sélectionner l’action pour le nouveau groupe cible dans la liste déroulante.

    Les actions disponibles sont les suivantes :

    • Cibler – Cette action peut être utilisée dans des situations où le remplissage de la propriété disponible est limité, mais que l’utilisateur veut acheter beaucoup de demandes.

    Si l’expression prend la valeur « Vrai », le score augmente, de même que la probabilité d’affichage du contenu. Si l’expression prend la valeur « Faux », le score n’est pas modifié. Dans ces deux scénarios, le contenu peut être fourni.

    • Sponsoriser – La publicité associée au groupe cible est affichée de manière exclusive sur le site.

    Si l’expression prend la valeur « Vrai », le contenu peut être fourni et aucun autre contenu n’est possible sauf s’il possède également une expression avec action = Sponsoriser. (Sponsoriser ne possède qu’un seul multiplicateur.)

    • Requérir - Le groupe d’utilisateurs de l’expression de ciblage est inclus dans le groupe cible.

    Si l’expression prend la valeur « Vrai », le contenu peut être fourni ; si la valeur est « Faux », le contenu ne peut pas être fourni.

    • Exclure - Le groupe d’utilisateurs de l’expression de ciblage est exclus du groupe cible.

    Si l’expression prend la valeur « Vrai », le contenu ne peut pas être fourni ; si la valeur est « Faux », le contenu peut être fourni.

    Attention

    • L’action Requérir et Exclure empêche l’affichage d’une publicité aux utilisateurs ayant la propriété exclue. En outre, si la propriété requise ou exclue n’est pas définie pour un utilisateur, il ne reçoit pas la publicité. Par exemple, si vous créez un groupe cible qui exclut les utilisateurs Hotmail, ce groupe exclura également les utilisateurs pour lesquels aucun compte de messagerie n’est défini. Par conséquent, tous les utilisateurs possédant un compte de messagerie défini, qui n’est pas un compte Hotmail verront la publicité.
  4. Cliquez sur Accepter.

  5. Pour enregistrer le groupe cible et revenir à l’écran Groupe cible, cliquez sur Enregistrement et retour dans la barre d’outils.

Le nouveau groupe cible est enregistré dans la liste des groupes cibles disponibles. Vous pouvez maintenant utiliser ce groupe cible pour cibler vos publicités ou vos remises.

Voir aussi

  • Ajout d’un élément de la campagne de publicité

  • Création d’un élément de la campagne de remise

  • Ciblage d’une publicité ou d’une remise

  • Création d’une expression de ciblage


Ajout d'un élément de la campagne de publipostage

Ajout d’un élément de la campagne de publipostage

Le module Gestionnaire de campagnes vous permet de créer et de gérer des campagnes de publicité par publipostage. Une campagne de publipostage peut être adressée à des utilisateurs spécifiques grâce aux listes de publipostage du Gestionnaire de listes. Vous utilisez le module Gestionnaire de campagnes pour créer des campagnes de publipostage, personnaliser des messages, ajouter des pièces jointes à vos messages de publipostage et modifier les propriétés d’un publipostage. Vous pouvez également tester vos listes de publipostage avant de les envoyer en production.

Le déroulement des opérations ci-dessous présente un exemple de scénario pour créer et gérer une campagne de publipostage :

Déroulement des opérations pour la création et la gestion d'une campagne de publipostage
Gestionnaire de listes

Ajout de pièces jointes à une campagne de publipostage

Gestionnaire de campagnes
Importation d'une liste de publipostage
Création d'une campagne de publipostage
Planification d'une campagne de publipostage
Test d'une campagne de publipostage
Personnalisation d'un message de publipostage

  1. Dans le module Gestionnaire de listes, vous importez une liste de publipostage (par exemple une liste de clients privilégiés).

  2. Dans le module Gestionnaire de campagnes, vous créez une campagne de publipostage dont le but est de cibler la liste de publipostage correspondant à ces clients.

  3. Vous entrez le nom d’une page HTML (Hypertext Markup Language) comportant le contenu personnalisé.

  4. Vous ajoutez une pièce jointe à la campagne de publipostage.

  5. Vous planifiez les dates de début et de fin de la campagne de publipostage, puis spécifiez la fréquence d’envoi des travaux de publipostage.

  6. Vous testez le publipostage envoyé à l’aide d’une liste de test, puis affichez vos pages de personnalisation.

Cette section contient les rubriques suivantes :

  • Création d’une liste de publipostage

  • Importation d’une liste de publipostage

  • Création d’une campagne de publipostage

  • Personnalisation d’un message de publipostage

  • Ajout de pièces jointes à une campagne de publipostage

  • Planification d’une campagne de publipostage

  • Test d’une campagne de publipostage

  • Copie d’un élément de la campagne de publipostage


Création d'une liste de publipostage

Création d’une liste de publipostage

Le module Gestionnaire de listes doit contenir une liste de publipostage valide avant de pouvoir créer une campagne de publipostage. Le service de publipostage utilise les listes de publipostage pour envoyer des messages à des destinataires sélectionnés dans une liste.

Vous pouvez créer une liste de publipostage à l’aide de n’importe quel éditeur de texte. Une liste de publipostage contient une ou plusieurs lignes de destinataires. Le Gestionnaire de listes nécessite les noms de champs indiqués dans le tableau ci-dessous lors de l’importation de listes à partir de SQL Server. Chaque ligne de la liste contient un destinataire unique et se compose des éléments suivants, dans un format délimité par des virgules :

Nom du champ | Paramètre | Description
rcp_email | Adresse de messagerie | Obligatoire. Nom ou nom@domaine.
rcp_guid | GUID | Facultatif. Identificateur global unique. Identificateur d’utilisateur unique utilisé pour fournir le contenu d’un message électronique personnalisé.
rcp_fmt | Format du message | Facultatif. Contrôle le type de format du message dans lequel l’objet de données de collaboration (CDO, Collaboration Data Object) traduit le résultat. Par exemple, le format texte, MHTML (MIME Encapsulation of Aggregate HTML Documents) ou MIME (Multipurpose Internet Mail Extensions).
rcp_locale | Langue | Facultatif. Valeur de la page de code du message électronique.
rcp_url | URL | Facultatif. Permet de transmettre des adresses URL individuelles au niveau de chaque utilisateur à CDO.

Remarques

  • Les noms de champs doivent respecter l’ordre indiqué dans le tableau. Vous devez fournir le délimiteur en cas d’omission d’un paramètre facultatif pour permettre le bon agencement des autres paramètres facultatifs.

  • Pour créer une liste en utilisant des informations de programme contenues dans un fichier .pst (fichier qui contient des messages, des rendez-vous, des contacts et d’autres éléments Outlook), consultez la rubrique « Exportation d’éléments vers un fichier ou vers un fichier de dossiers personnels » dans l’aide en ligne de Microsoft Outlook.


Importation d'une liste de publipostage

Importation d’une liste de publipostage

Le module Gestionnaire de listes doit contenir une liste de publipostage valide avant de pouvoir créer une campagne de publipostage. Vous utilisez le module Gestionnaire de listes pour importer des listes d’utilisateurs qui pourront constituer la cible d’une campagne de publipostage. Vous pouvez importer des fichiers texte ASCII, des fichiers de Microsoft Excel ou des tables de bases de données SQL Server.

Pour importer une liste

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de listes.

  2. Dans l’écran Gestionnaire de listes, cliquez sur Importer dans la barre d’outils.

  3. Dans la boîte de dialogue Importer une liste, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Type de liste Sélectionner le type de liste.

    Les options disponibles sont Statique et Dynamique.

    • Sélectionnez Statique pour importer une liste de fichier texte statique, sans mise en forme.

    • Sélectionnez Dynamique pour importer une liste dynamique (c’est-à-dire une liste qui change constamment, par exemple une liste issue d’une base de données SQL Server).
    Taper le nom de la liste vers laquelle effectuer la copie | Taper un nom pour la liste importée.
    Source de la liste Sélectionner le type de source pour la liste.

    Les options disponibles sont À partir d’un fichier ou À partir d’une base de données SQL.

    • Sélectionnez À partir d’un fichier dans le cas d’une liste statique.

    • Si vous sélectionnez À partir d’une base de données SQL, effectuez les opérations suivantes :
      1. Dans la zone Chaîne de connexion, entrez la chaîne de connexion de la base de données, qui détermine l’emplacement d’une base de données et la façon de s’y connecter.

      2. Dans la zone Requête SQL, entrez la requête SQL qui doit renvoyer les informations voulues.

        Exemple : requête SQL :

        SELECT u_email_address AS rcp_email FROM UserObject WHERE d_date_registered >= '03/01/2000'

        Pour plus d’informations sur les exigences en matière de nom de champs dans le Gestionnaire de listes, consultez Création d’une liste de publipostage.

      Remarque

      • Contactez votre administrateur système pour connaître les informations de propriétés de base de données et de requête SQL. Pour plus d’informations sur l’écriture de requêtes SQL, consultez Query Fundamentals dans la documentation en ligne de SQL Server.
    Nom du fichier | Taper le chemin, le nom du fichier et l’extension de la liste à importer.

  4. Cliquez sur OK.

La nouvelle liste est importée et s’affiche dans le Gestionnaire de listes. Vous pouvez maintenant utiliser cette liste dans une campagne de publipostage.

Voir aussi

Gestion des listes des enregistrements utilisateur

Importation et exportation de listes


Création d'une campagne de publipostage

Création d’une campagne de publipostage

Les campagnes de publipostage permettent aux utilisateurs de voir vos publicités. Une campagne de publipostage peut être adressée à des utilisateurs spécifiques grâce aux listes de publipostage du Gestionnaire de listes. Vous pouvez importer dans le Gestionnaire de listes des fichiers texte ASCII, des tables de bases de données SQL Server ou des rapports d’analyse. Vous pouvez utiliser ces listes pour exécuter des travaux de publipostage afin de mieux cibler vos utilisateurs.

Pour créer une campagne de publipostage

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la campagne marketing pour laquelle vous souhaitez créer une campagne de publipostage, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Nouveau publipostage dans la liste déroulante.

  3. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> Nouveau (publipostage), dans la section Propriétés du publipostage, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de publipostage | Taper un nom pour le travail de publipostage.
    Adresse de messagerie d’expédition du message | Taper l’adresse à partir de laquelle le publipostage est envoyé.
    Adresse de messagerie de réponse Taper l’adresse à laquelle le destinataire doit répondre, si celle-ci diffère de l’adresse par défaut.

    La valeur par défaut de cette zone correspond à l’adresse à partir de laquelle le publipostage est envoyé.
    Objet du message | Taper le texte de l’objet pour ce travail de publipostage.
    Chemin d’accès à un fichier ou URL contenant le corps du message Taper le chemin d’accès au fichier ou l’adresse URL que vous utilisez pour afficher le message de publipostage.

    L’adresse URL du corps du message personnalisé doit posséder une extension de type de contenu HTML valide, telle que .htm ou .asp. Les extensions qui ne sont pas valides, telles que .xml, génèrent une erreur d’objets de données de collaboration (CDO, Collaboration Data Objects) et le message n’est pas envoyé.

    Pour afficher des pages personnalisées, consultez Test d’une campagne de publipostage.

    Attention

    • Un fichier dont la taille dépasse deux mégaoctets sera tronqué. Seuls les deux premiers mégaoctets de données seront utilisés dans le publipostage.
    Pièce jointe Taper le chemin d’accès au fichier et le nom de fichier de la pièce jointe envoyée avec le message.

    Si aucune pièce jointe n’est envoyée, laissez cette zone vide.
    Liste de publipostage | Sélectionner dans la liste déroulante la liste de publipostage qui sera utilisée par cette campagne de publipostage.
    Personnaliser le publipostage par utilisateur Activer la personnalisation pour cette campagne de publipostage. Dans ce cas, activez cette case à cocher.

    Désactiver la personnalisation pour cette campagne de publipostage. Dans ce cas, désactivez cette case à cocher.
    Format du message Sélectionner le format de ce message.

    Les options sont les suivantes :

    • Texte – Applique un format ASCII au message.

    • MHTML – Applique un format HTML multilingue au message.

    • MIME – Applique un format MIME (Multipurpose Internet Mail Extensions) au message.
    Commentaires (non inclus dans le message) | Taper tout commentaire nécessaire concernant ce travail de publipostage.

  4. Pour enregistrer la campagne de publipostage et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

La campagne de publipostage est ajoutée au Gestionnaire de campagnes. Vous pouvez maintenant planifier, puis tester la campagne de publipostage.

Remarque

  • Dans la zone Chemin d’accès à un fichier ou URL contenant le corps du message, pour vérifier que le chemin de l’adresse URL du corps du message est valide, sélectionnez le chemin et le fichier ou l’adresse URL, et appuyez sur [CTRL C] pour copier la sélection. Ouvrez votre navigateur, appuyez sur [CTRL P] pour coller la sélection dans la ligne Adresse, et appuyez sur [ENTRÉE]. Si le fichier ou l’adresse URL est correct(e), la page correspondante s’affiche dans votre navigateur.

Pour plus d’informations sur la planification d’une campagne de publipostage, consultez Planification d’une campagne de publipostage. Pour plus d’informations sur le test d’une campagne de publipostage, consultez Test d’une campagne de publipostage.

Voir aussi

Ajout d’une campagne marketing

Gestion des listes des enregistrements utilisateur

Importation et exportation de listes


Personnalisation d'un message de publipostage

Personnalisation d’un message de publipostage

Vous pouvez personnaliser les messages électroniques adressés aux utilisateurs en utilisant une page ASP (Active Server Page) qui a été conçue pour la personnalisation. Par exemple, vous pouvez inclure le prénom de l’utilisateur dans une formule de salutation personnalisée. Un texte spécial peut être ajouté à la page ASP pour l’affichage. Si la personnalisation n’est pas spécifiée, le message de publipostage est affiché sous la forme d’une page HTML simple.

Pour personnaliser un message de publipostage

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la campagne de publipostage que vous souhaitez personnaliser, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de publipostage> (ID du publipostage : <numéro>), effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Chemin d’accès à un fichier ou URL contenant le corps du message | Entrer le nom de la page HTML comportant le contenu personnalisé.
    Personnaliser le publipostage par utilisateur Activer la personnalisation pour cette campagne de publipostage. Dans ce cas, activez cette case à cocher.

    Désactiver la personnalisation pour cette campagne de publipostage. Dans ce cas, désactivez cette case à cocher.
    Format du message Sélectionner le format de ce message.

    Les options sont les suivantes :

    • Texte – Applique un format ASCII au message.

    • MHTML – Applique un format HTML multilingue au message.

    • MIME – Applique un format MIME (Multipurpose Internet Mail Extensions) au message.

  4. Pour enregistrer la campagne de publipostage avec la personnalisation et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

Remarque

  • Pour afficher vos pages personnalisées, consultez Test d’une campagne de publipostage.

Le message de publipostage sera envoyé avec la personnalisation.

Voir aussi

Création d’une campagne de publipostage

Test d’une campagne de publipostage


Ajout de pièces jointes à une campagne de publipostage

Vous pouvez ajouter des pièces jointes aux campagnes de publipostage à l’aide de la section Propriétés du publipostage de l’écran Gestionnaire de campagnes. N’importe quel fichier contenant des informations que vous souhaitez envoyer avec la campagne de publipostage peut constituer une pièce jointe.

Pour ajouter une pièce jointe à une campagne de publipostage

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la campagne de publipostage à laquelle vous souhaitez ajouter une pièce jointe, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de publipostage> (ID du publipostage : <numéro>), effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Pièce jointe | Taper le chemin de la pièce jointe à envoyer avec le message électronique.

  4. Pour enregistrer la pièce jointe avec la campagne de publipostage et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

La pièce jointe est enregistrée avec ce travail de publipostage.

Voir aussi

Création d’une campagne de publipostage


Planification d'une campagne de publipostage

Planification d’une campagne de publipostage

La section Planification du message de l’écran Gestionnaire de campagnes vous permet de planifier les dates de début et de fin de la campagne de publipostage et de spécifier la fréquence d’envoi du publipostage.

Pour planifier une campagne de publipostage

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la campagne de publipostage que vous souhaitez planifier, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de publipostage> (ID du publipostage : <numéro>), dans la section Planification du message, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Date de début | Taper ou sélectionner dans le calendrier déroulant la date de début de la campagne.
    Date de fin Taper ou sélectionner dans le calendrier déroulant la date de fin de la campagne.

    La zone Date de fin n’est pas disponible si l’intervalle de publipostage est défini pour n’avoir lieu qu’une seule fois.
    Heure de début | Sélectionner une heure de début dans la liste déroulante pour la campagne.
    Intervalle de publipostage | Sélectionner dans la liste déroulante la fréquence à laquelle vous voulez envoyer le message.

    Remarque

    • Différentes options sont disponibles pour l’intervalle de publipostage. En fonction de l’option sélectionnée, vous disposez de différentes zones pour indiquer la périodicité de la campagne.
  4. Pour enregistrer la planification avec la campagne de publipostage et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

La planification est enregistrée avec la campagne de publipostage.

Remarque

  • Si l’Agent SQL Server est arrêté alors qu’un travail de publipostage planifié est en cours d’exécution, l’exécution de ce travail s’arrêtera et ne pourra pas être redémarrée. Lorsqu’un travail planifié est arrêté de cette manière, aucune indication n’est fournie pour signaler que le travail a échoué. Vous devez redémarrer l’Agent SQL Server, puis redémarrer le travail de publipostage.

Voir aussi

Création d’une campagne de publipostage


Test d'une campagne de publipostage

Test d’une campagne de publipostage

Vous pouvez tester vos campagnes de publipostage à l’aide d’une liste de test, avant de les envoyer à une liste de publipostage plus importante. Le message de test vous permet également de consulter vos pages de personnalisation pour voir si elles sont appropriées.

Pour tester une campagne de publipostage

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la campagne de publipostage que vous souhaitez tester, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> - <Élément de publipostage> (ID du publipostage : <numéro>), dans la section Test, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Liste de test | Sélectionner la liste de messagerie à utiliser pour tester la campagne de publipostage.

  4. Cliquez sur Envoyer le message de test.

Le service de publipostage a envoyé le message en utilisant la liste de test sélectionnée.

Voir aussi

Création d’une campagne de publipostage


Copie d'un élément de la campagne de publipostage

Copie d’un élément de la campagne de publipostage

Vous pouvez copier un élément de la campagne de publipostage existant afin d’ajouter rapidement des éléments de la campagne de publipostage supplémentaires pour un client et sa campagne. En utilisant l’élément de la campagne de publipostage existant comme modèle, vous pouvez modifier les propriétés de la campagne de publipostage existante pour prendre en compte les buts quantitatifs du nouvel élément de la campagne de publipostage.

Pour copier un élément de la campagne de publipostage

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la campagne de publipostage que vous souhaitez copier, puis cliquez sur Copier dans la barre d’outils.

  3. Dans la boîte de dialogue Copier le publipostage, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Sélectionner un client | Sélectionner dans la liste déroulante le client dont vous souhaitez copier l’élément de publipostage.
    Sélectionner une campagne marketing | Sélectionner dans la liste déroulante la campagne marketing dont vous souhaitez copier l’élément de publipostage.

  4. Cliquez sur OK.

  5. Dans l’écran Gestionnaire de campagnes - <Client> - <Campagne marketing> Nouveau (publipostage), dans la section Propriétés du publipostage, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de publipostage | Taper un nom pour le nouvel élément de publipostage.

  6. Modifiez les autres propriétés en fonction des besoins.

  7. Pour enregistrer l’élément de publipostage et revenir à l’écran Gestionnaire de campagnes, cliquez sur Enregistrement et retour dans la barre d’outils.

Le nouvel élément de publipostage s’affiche dans l’arborescence du Gestionnaire de campagnes, sous le client et la campagne marketing sélectionnés.


Gestion des listes des enregistrements utilisateur

Le Gestionnaire de listes vous permet de créer et de gérer des listes. Il existe deux types de listes : les listes génériques et les listes de publipostage. Les listes génériques sont des listes importées dans le Gestionnaire de listes à partir du module Rapports, du module Identification de segments, d’une table SQL Server ou d’un fichier texte ASCII. Le Gestionnaire de listes tente automatiquement de convertir les listes génériques en listes de publipostage, si elles contiennent des lignes d’adresses de messagerie. Le service de publipostage utilise les listes de publipostage pour créer et envoyer des messages à des destinataires sélectionnés dans la liste. Si la liste générique ne contient pas d’adresse de messagerie, elle est importée sous forme de liste des utilisateurs si les exigences d’une liste des utilisateurs sont satisfaites. Pour plus d’informations sur les exigences en matière de liste des utilisateurs, consultez « Objet ListManager » dans l’aide de Commerce Server 2000.

Une fois que les listes sont importées dans le Gestionnaire de listes, vous pouvez les utiliser pour exécuter des travaux de publipostage, afin de mieux cibler les utilisateurs. Par exemple, vous pouvez exécuter des rapports qui montrent les caractéristiques et les comportements antérieurs de vos utilisateurs, puis créer une campagne de publipostage pour cibler les publicités ou les produits en fonction de ces utilisateurs.

Les destinataires individuels peuvent demander à être placés dans une liste d’annulations d’abonnements soit au niveau du site ou au niveau de la campagne. Les destinataires qui demandent à ne pas recevoir de messages de publipostage créés dans le cadre d’un élément de la campagne en particulier sont placés sur une liste d’annulations d’abonnements au niveau de la campagne. La liste d’annulations d’abonnements au niveau de la campagne s’appelle Annulations d'abonnements <campaign item ID>. Les utilisateurs qui demandent à être placés sur la liste d’annulations d’abonnements au niveau du site ne recevront pas de messages de publipostage créés par n’importe quelle campagne de publipostage sur votre site. Dans l’écran Gestionnaire de listes, la liste d’annulations d’abonnements au niveau du site s’appelle annulations d’abonnements. Pour plus d’informations sur les listes d’annulations d’abonnements, consultez Listes d’annulations d’abonnements. Les listes sont créées dans le Gestionnaire de listes en important des listes créées dans d’autres applications, telles que Microsoft SQL Server (pour créer une table SQL), le Bloc-notes (pour créer un fichier texte ASCII), Microsoft Excel (pour créer une feuille de calcul) ou Microsoft Outlook (pour créer des fichiers .pst contenant des messages, des rendez-vous, des contacts et d’autres éléments Outlook).

Vous pouvez également utiliser le Gestionnaire de listes pour exporter des listes vers un fichier ou une base de données SQL Server, ajouter ou supprimer des listes, les copier et les extraire.

Cette section contient les rubriques suivantes :

  • Importation et exportation de listes

  • Affichage des listes exportées

  • Ajout et suppression de listes

  • Copie de listes de publipostage

  • Extraction de listes de publipostage


Importation et exportation de listes

Les listes sont créées dans le Gestionnaire de listes en important des listes créées dans d’autres applications, telles que Microsoft SQL Server (pour créer une table SQL), le Bloc-notes (pour créer un fichier texte ASCII), Microsoft Excel (pour créer une feuille de calcul) ou Microsoft Outlook (pour créer des fichiers .pst contenant des messages, des rendez-vous, des contacts et d’autres éléments Outlook). Vous pouvez également importer les listes des rapports d’analyse et d’identification de segments dans le Gestionnaire de listes. Vous pouvez ensuite utiliser ces listes pour exécuter des travaux de publipostage afin de mieux cibler vos utilisateurs.

Vous pouvez également exporter des listes du Gestionnaire de listes vers un fichier ou une base de données SQL Server, puis rechercher et afficher des membres des listes exportées.

Remarque

  • Vous ne pouvez pas utiliser le Gestionnaire de listes pour importer des listes génériques comportant des lignes d’en-tête, comme illustré dans l’exemple ci-dessous :
    Identificateur du produit | Nom du produit | Quantité
    1 | Chaussettes | 100
    2 | Maillots | 20

Si vous voulez utiliser une liste générique comportant des lignes d’en-tête, vous devez tout d’abord importer la liste dans SQL Server, à l’aide d’un outil d’importation SQL Server tel que la commande BULK INSERT, puis importer la liste dans le Gestionnaire de listes. Pour plus d’informations sur les outils d’importation SQL Server, consultez la documentation en ligne de SQL Server.

Pour importer une liste

Pour exporter une liste

Pour importer une liste

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de listes.

  2. Dans l’écran Gestionnaire de listes, cliquez sur Importer dans la barre d’outils.

  3. Dans la boîte de dialogue Importer une liste, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Type de liste Sélectionner le type de liste dans la liste déroulante.

    Les options disponibles sont Statique et Dynamique.

    • Sélectionnez Statique pour importer une liste de fichier texte statique, sans mise en forme.

    • Sélectionnez Dynamique pour importer une liste dynamique (c’est-à-dire une liste qui change constamment, par exemple une liste issue d’une base de données SQL Server).
    Taper le nom de la liste vers laquelle effectuer la copie | Taper un nom pour la liste importée.
    Source de la liste Sélectionner le type de source pour la liste.

    Les options disponibles sont À partir d’un fichier ou À partir d’une base de données SQL.

    • Sélectionnez À partir d’un fichier dans le cas d’une liste statique.

    • Si vous sélectionnez À partir d’une base de données SQL, effectuez les opérations suivantes :
      1. Dans la zone Chaîne de connexion, entrez la chaîne de connexion de la base de données, qui détermine l’emplacement d’une base de données et la façon de s’y connecter.

      2. Dans la zone Requête SQL, entrez la requête SQL qui doit renvoyer les informations voulues.

        Exemple : requête SQL :

        SELECT u_email_address AS rcp_email FROM UserObject WHERE d_date_registered >= '03/01/2000'

        Pour plus d’informations sur les exigences en matière de nom de champs dans le Gestionnaire de listes, consultez Création d’une liste de publipostage.

      Remarque

    • Contactez votre administrateur système pour connaître les informations de propriétés de base de données et de requête SQL. Pour plus d’informations sur l’écriture de requêtes SQL, consultez Query Fundamentals dans la documentation en ligne de SQL Server.
    Nom du fichier | Taper le chemin, le nom du fichier et l’extension de la liste que vous voulez importer, ou cliquer sur Parcourir pour rechercher le chemin de la liste.

  4. Cliquez sur OK.

La nouvelle liste s’affiche dans le Gestionnaire de listes. Vous pouvez maintenant utiliser cette liste dans une campagne de publipostage.

Pour exporter une liste

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de listes.

  2. Dans l’écran Gestionnaire de listes, sélectionnez la liste que vous souhaitez exporter, puis cliquez sur Exporter dans la barre d’outils.

  3. Dans la boîte de dialogue Exporter une liste, effectuez les opérations suivantes :
    Utilisez ceci Pour faire cela
    Exporter la liste vers Sélectionner Fichier ou Base de données SQL dans la liste déroulante.
    • Sélectionnez Fichier pour exporter la liste vers un fichier.

    • Sélectionnez Base de données SQL pour exporter la liste vers une base de données SQL Server.

    Si vous sélectionnez Fichier, tapez dans la zone Nom du fichier le chemin d’accès au fichier vers lequel vous voulez exporter la liste.

    Si vous sélectionnez Base de données SQL, tapez dans la zone Chaîne de connexion le nom de la chaîne de connexion de la base de données SQL Server. Dans la zone Nom de la table, tapez le nom de la table vers laquelle exporter la liste.

    Remarque

    • Contactez votre administrateur système pour connaître les informations de propriétés de base de données.

  4. Cliquez sur OK.

La liste est exportée vers la source sélectionnée.

Voir aussi

Exportation de données de segment vers le Gestionnaire de listes

Exportation d’un rapport statique

Exportation d’un rapport dynamique

Importation d’une liste de profils utilisateur


Affichage des listes exportées

Vous pouvez rechercher et afficher des membres d’une liste de publipostage exportée. Vous pouvez localiser une adresse de messagerie et afficher toutes les adresses d’une liste donnée.

Pour afficher une liste exportée vers une table SQL Server

  1. Ouvrez SQL Enterprise Manager à partir du menu Démarrer. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server, puis cliquez sur Enterprise Manager.

  2. Dans le volet gauche, développez Serveurs Microsoft SQL>Groupe SQL Server>(Nom du serveur)>Bases de données, puis développez la base de données dans laquelle se trouve la table contenant la liste.

  3. Dans le volet de détails, cliquez avec le bouton droit sur la table, pointez sur Ouvrir une table puis cliquez sur Renvoyer toutes les lignes afin d’afficher toutes les données de la table.

Pour plus d’informations sur la recherche dans des tables SQL Server, consultez « Specifying Search Criteria » dans la documentation en ligne de SQL Server Enterprise Manager.

Remarque

  • Pour trier ou rechercher des enregistrements spécifiques dans une liste exportée vers un fichier CSV, vous pouvez ouvrir ce fichier dans n’importe quelle application disposant de fonctionnalités de tri et de recherche.

Voir aussi

Ajout d’un élément de la campagne de publipostage

Exportation d’un rapport statique

Affichage de rapports statiques


Ajout et suppression de listes

Il est possible de combiner plusieurs listes du Gestionnaire de listes pour former une nouvelle liste. Si vous avez déjà combiné plusieurs listes du Gestionnaire de listes, vous pouvez supprimer une liste de cette combinaison. Le Gestionnaire de listes permet de gérer plusieurs listes.

Pour ajouter une liste à une autre liste

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de listes.

  2. Dans l’écran Gestionnaire de listes, sélectionnez la liste que vous souhaitez combiner avec une autre liste, puis cliquez sur Ajouter/Supprimer la liste dans la barre d’outils.

  3. Dans la boîte de dialogue Ajouter/supprimer des listes, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Opération | Sélectionner Ajouter à dans la liste déroulante.
    Liste cible | Sélectionner la liste à laquelle vous souhaitez ajouter la liste d’origine.
    Nom pour la nouvelle liste | Taper le nom pour la nouvelle liste.
    Description | Taper une description pour la nouvelle liste.

  4. Cliquez sur OK.

La nouvelle liste s’affiche dans le Gestionnaire de listes.

Pour supprimer une liste d’une autre liste

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de listes.

  2. Dans l’écran Gestionnaire de listes, sélectionnez la liste dont vous souhaitez supprimer des informations, puis cliquez sur Ajouter/Supprimer la liste dans la barre d’outils.

  3. Dans la boîte de dialogue Ajouter/supprimer la liste, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Opération | Sélectionner Supprimer de dans la liste déroulante.
    Liste cible | Sélectionner la liste dont vous souhaitez supprimer des informations.
    Nom pour la nouvelle liste | Taper le nom pour la nouvelle liste.
    Description | Taper une description pour la nouvelle liste.

  4. Cliquez sur OK.

La nouvelle liste s’affiche dans le Gestionnaire de listes, sans la liste que vous avez supprimée.

Voir aussi

Gestion des listes des enregistrements utilisateur


Copie de listes de publipostage

Vous pouvez utiliser une liste de publipostage existante pour créer d’autres listes de publipostage. Vous pouvez copier dans le Gestionnaire de listes une liste de publipostage qui a déjà été créée, puis modifier rapidement la liste copiée. Vous pouvez par exemple combiner cette liste avec une liste existante, afin de créer une liste de publipostage plus importante.

Pour copier une liste de publipostage

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de listes.

  2. Dans l’écran Gestionnaire de listes, sélectionnez la liste que vous souhaitez copier, puis cliquez sur Copier dans la barre d’outils.

  3. Dans la boîte de dialogue Copier la liste, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Sélectionner une liste existante vers laquelle effectuer la copie | Sélectionner une liste existante vers laquelle vous souhaitez copier la liste de publipostage.
    Taper le nom de la liste vers laquelle effectuer la copie | Taper le nom d’une nouvelle liste vers laquelle vous souhaitez copier la liste de publipostage.

  4. Cliquez sur OK.

La liste est copiée et vous pouvez maintenant modifier la liste copiée.


Extraction de listes de publipostage

Dans le Gestionnaire de listes, vous pouvez supprimer des adresses de messagerie en double et vides d’une liste générique, ne laissant ainsi que les champs nécessaires à un publipostage. La liste ainsi obtenue représente plus précisément le nombre d’adresses de messagerie uniques contenues dans la liste, ce qui rend la liste plus utile et augmente les performances au cours de l’exécution.

Pour extraire une liste de publipostage

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de listes.

  2. Dans l’écran Gestionnaire de listes, sélectionnez la liste que vous souhaitez extraire, puis cliquez sur Extraire la liste de publipostage dans la barre d’outils.

  3. Dans la boîte de dialogue Extraire la liste de publipostage, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Taper le nom de la liste vers laquelle effectuer la copie | Taper le nom d’une nouvelle liste vers laquelle vous souhaitez extraire la liste de publipostage.
    Description | Taper une description pour la liste extraite.

  4. Cliquez sur OK.

La liste est extraite et comporte des adresses de messagerie uniques.


Analyse d'une campagne marketing

Analyse d’une campagne marketing

Vous pouvez utiliser le module Gestionnaire de campagnes pour exécuter des rapports sur vos campagnes marketing, afin de vous aider à prendre des décisions en matière de tarification, de marketing et de publicité ou concernant d’autres aspects de votre commerce. L’analyse de vos campagnes marketing vous permet de promouvoir celles qui ont rencontré le plus de succès.

Cette section contient les rubriques suivantes :

  • Exécution d’un rapport de campagne marketing

  • Exportation d’un rapport vers le Gestionnaire de listes


Exécution d'un rapport de campagne marketing

Exécution d’un rapport de campagne marketing

Une fois que les fichiers journaux d’importation contenant les données sur vos campagnes ont été importés dans Data Warehouse, vous pouvez exécuter des rapports pour analyser l’efficacité de vos campagnes de publicité. Les fichiers journaux peuvent être exécutés tous les jours, une fois par semaine ou une fois par mois. Pour obtenir la planification concernant l’importation des fichiers journaux sur votre site, contactez votre administrateur système.

Vous pouvez utiliser le module Gestionnaire de campagnes pour afficher une liste des rapports. Lorsque vous affichez la liste des rapports, le module Rapports d’analyse s’affiche en haut du Gestionnaire de campagnes. Dans le module Rapports, vous pouvez exécuter des rapports dynamiques et statiques. Lorsque vous ouvrez le module Rapports pour la première fois, l’affichage par défaut propose une recherche de « Tous les rapports ». Vous pouvez réduire la liste en utilisant des critères de recherche plus spécifiques. Pour plus d’informations sur les rapports de publicité, consultez Rapports de publicité.

Pour rechercher un rapport de campagne marketing

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, cliquez sur Afficher les rapports dans la barre d’outils pour afficher la liste des rapports de campagne marketing.

    Remarque

    • Pour afficher une liste de tous les rapports, utilisez les boutons Défilement de page en bas de la liste.
  3. Dans l’écran Rapports, cliquez sur Rechercher dans la barre d’outils.

  4. Dans le volet Rechercher, effectuez les opérations suivantes :
    Utilisez ceci Pour faire cela
    Rechercher par Sélectionner dans la liste déroulante les critères en fonction desquels effectuer la recherche.

    Les zones qui s’affichent sous la zone Rechercher par dépendent du type de critère que vous avez sélectionné.

    Dans les zones situées sous la zone Rechercher par, tapez ou sélectionnez dans la liste la valeur spécifique pour les critères sélectionnés (nom, catégorie, créateur, type).

  5. Cliquez sur Rechercher.

Une liste des rapports qui répondent aux critères de recherche s’affiche dans la section inférieure du volet Rechercher.

Pour exécuter un rapport de campagne marketing

  • Dans Rapports, dans la liste des rapports disponibles, sélectionnez le rapport que vous souhaitez exécuter, puis cliquez sur Exécuter rapport dans la barre d’outils.

Pendant l’exécution d’un rapport dynamique, une nouvelle fenêtre Internet Explorer s’affiche à l’écran, par-dessus la fenêtre du module Rapports. Pendant l’exécution du rapport, vous pouvez réduire cette fenêtre et continuer à travailler dans Commerce Server Business Desk.

Pendant l’exécution d’un rapport statique, la fenêtre du module Rapports reste affichée à l’écran et vous pouvez donc continuer à travailler. Pour plus d’informations sur l’exécution de rapports, consultez Exécution de rapports.

Pour contrôler l’état d’un rapport

  • Dans Analyse, cliquez sur Analyse de rapports.

Dans l’écran Analyse de rapports, vous pouvez afficher la liste des rapports et contrôler l’état d’un rapport.

Voir aussi

Exécution de rapports

Recherche de rapports


Exportation d'un rapport vers le Gestionnaire de listes

Exportation d’un rapport vers le Gestionnaire de listes

Vous pouvez exporter un rapport d’analyse statique vers le module Gestionnaire de listes, puis utiliser cette liste pour exécuter un travail de publipostage. En analysant l’utilisation de votre site, vous pouvez générer une liste des utilisateurs inscrits pour lesquels vous pourrez ensuite cibler votre publicité (en utilisant le module Gestionnaire de campagnes) via un publipostage. Supposons que vous souhaitiez exécuter une publicité pour un nouveau livre sur le cyclisme. Dans le module Rapports, vous pouvez générer une liste des utilisateurs inscrits amateurs de cyclisme. Vous pouvez ensuite cibler votre publicité pour cette liste d’utilisateurs inscrits.

Pour rechercher un rapport statique

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, cliquez sur Afficher les rapports dans la barre d’outils pour afficher la liste des rapports.

  3. Dans l’écran Rapports, cliquez sur Rechercher dans la barre d’outils.

  4. Dans le volet Rechercher, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Rechercher par | Sélectionner Type dans la liste déroulante.
    Type | Sélectionner Statique dans la liste déroulante.

  5. Cliquez sur Rechercher.

Une liste des rapports statiques s’affiche dans le volet Rechercher.

Pour exporter un rapport vers le Gestionnaire de listes

  • Dans l’écran Rapports, sélectionnez le rapport que vous souhaitez exporter, puis cliquez sur Exporter dans la barre d’outils.

Le rapport est exporté vers le Gestionnaire de listes.

Voir aussi

Recherche de rapports

Gestion des listes des enregistrements utilisateur


Suppression et restauration des campagnes marketing

Vous pouvez supprimer des clients, des campagnes marketing ou des éléments de la campagne du module Gestionnaire de campagnes si vous n’en avez plus besoin. Le Gestionnaire de campagnes est organisé de façon hiérarchique, par client, campagne marketing et éléments de la campagne. Lorsque vous supprimez des clients, des campagnes marketing ou des éléments de la campagne, vous devez partir du bas de la hiérarchie. Par exemple, si vous supprimez un client, les campagnes marketing et les éléments de la campagne associés à ce client doivent également être supprimés. Lorsque vous restaurez des éléments de la campagne, vous devez partir du haut de la hiérarchie. Par exemple, si vous restaurez un élément de la campagne, vous devez vous assurer que les enregistrements de la campagne marketing et du client associés sont également restaurés.

Lorsque vous supprimez un client, il est archivé avec les campagnes marketing et les éléments de la campagne qu’il contient. Après avoir supprimé un client, une campagne marketing ou un élément de la campagne, vous pouvez effectuer une restauration à l’aide du Gestionnaire de campagnes.

Cette section contient les rubriques suivantes :

  • Suppression et restauration d’un client

  • Suppression et restauration d’une campagne marketing

  • Suppression et restauration d’un élément de la campagne


Suppression et restauration d'un client

Suppression et restauration d’un client

Vous pouvez supprimer un client à l’aide du module Gestionnaire de campagnes. Une fois qu’un client a été supprimé, il est archivé avec ses campagnes marketing et ses éléments de la campagne et peut être restauré à l’aide du Gestionnaire de campagnes.

Pour supprimer un client

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez le client que vous souhaitez supprimer, puis cliquez sur Supprimer dans la barre d’outils.

  3. Dans la boîte de dialogue Supprimer, cliquez sur Oui.

Le client est supprimé du Gestionnaire de campagnes et est archivé avec ses campagnes marketing et ses éléments de la campagne.

Pour restaurer un client

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, cliquez sur Rechercher dans la barre d’outils.

  3. Dans le volet Rechercher, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Client Taper le nom du client que vous voulez restaurer.

    Remarque

    • Vous pouvez taper une chaîne de lettres afin de limiter la recherche. Par exemple, la chaîne « ar » permet de récupérer uniquement les clients contenant les lettres « ar » dans leur nom, tel que Chaussures Arbor et École des Beaux-Arts.
    Supprimé | Sélectionner Les deux dans la liste déroulante.

  4. Cliquez sur Rechercher.

Le client s’affiche dans la liste Affichage filtré, avec l’état Supprimé.

  5. Sélectionnez le Client dans la liste Affichage filtré, puis cliquez sur Restaurer dans la barre d’outils.

  6. Dans la boîte de dialogue Voulez-vous restaurer ?, cliquez sur Oui.

L’état du client redevient actif.

  7. Cliquez sur Réinitialiser pour restaurer l’Affichage filtré, puis cliquez sur le bouton Fermer le volet de recherche.

Le client est restauré et s’affiche dans la liste Affichage filtré du Gestionnaire de campagnes.

Voir aussi

À propos des campagnes marketing

Suppression et restauration d’une campagne marketing

Suppression et restauration d’un élément de la campagne

Recherche de campagnes marketing


Suppression et restauration d'une campagne marketing

Suppression et restauration d’une campagne marketing

Vous pouvez supprimer une campagne marketing à l’aide du module Gestionnaire de campagnes. Une fois qu’une campagne marketing a été supprimée, elle est archivée avec ses éléments de la campagne et peut être restaurée à l’aide du Gestionnaire de campagnes.

Pour supprimer une campagne marketing

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez la campagne marketing que vous souhaitez supprimer, puis cliquez sur Supprimer dans la barre d’outils.

  3. Dans la boîte de dialogue Voulez-vous supprimer ?, cliquez sur Oui.

La campagne marketing est supprimée du Gestionnaire de campagnes et est archivée avec ses éléments de la campagne.

Pour restaurer une campagne marketing

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, cliquez sur Rechercher dans la barre d’outils.

  3. Dans le volet Rechercher, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Client | Taper le nom du client de la campagne marketing que vous voulez restaurer.
    Supprimé | Sélectionner Les deux dans la liste déroulante.
    Du | Taper ou sélectionner dans le calendrier déroulant la date de création de la campagne marketing.
    Au | Taper ou sélectionner dans le calendrier déroulant la date de suppression de la campagne marketing.

  4. Cliquez sur Rechercher.

La campagne marketing s’affiche dans la liste Affichage filtré, avec l’état Supprimé.

  5. Sélectionnez la Campagne marketing dans la liste Affichage filtré, puis cliquez sur Restaurer dans la barre d’outils pour que l’état de la campagne marketing redevienne actif.

  6. Dans la boîte de dialogue Voulez-vous restaurer ?, cliquez sur Oui.

L’état de la campagne marketing devient actif.

  7. Cliquez sur Réinitialiser pour restaurer l’Affichage filtré, puis cliquez sur le bouton Fermer le volet de recherche.

La campagne marketing est restaurée et s’affiche dans la liste Affichage filtré du Gestionnaire de campagnes.

Voir aussi

À propos des campagnes marketing

Suppression et restauration d’un client

Suppression et restauration d’un élément de la campagne

Recherche de campagnes marketing


Suppression et restauration d'un élément de la campagne

Suppression et restauration d’un élément de la campagne

Vous pouvez supprimer un élément de la campagne à l’aide du module Gestionnaire de campagnes. Une fois qu’un élément de la campagne a été supprimé, il est archivé et peut être restauré à l’aide du Gestionnaire de campagnes.

Pour supprimer un élément de la campagne

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, sélectionnez l’élément de la campagne que vous souhaitez supprimer, puis cliquez sur Supprimer dans la barre d’outils.

  3. Dans la boîte de dialogue Voulez-vous supprimer ?, cliquez sur Oui.

L’élément de la campagne est supprimé du Gestionnaire de campagnes.

Pour restaurer un élément de la campagne

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, cliquez sur Rechercher dans la barre d’outils.

  3. Dans le volet Rechercher, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Type d’élément | Sélectionner le type d’élément de la campagne que vous voulez restaurer.
    Client | Taper le nom du client de l’élément de la campagne que vous voulez restaurer.
    Supprimé | Sélectionner Les deux dans la liste déroulante.
    Du | Taper ou sélectionner dans le calendrier déroulant la date de création de l’élément de la campagne.
    Au | Taper ou sélectionner dans le calendrier déroulant la date de suppression de l’élément de la campagne.

  4. Cliquez sur Rechercher.

L’élément de la campagne s’affiche dans la liste Affichage filtré, avec l’état Supprimé.

  5. Sélectionnez la Campagne marketing dans la liste Affichage filtré, puis cliquez sur Restaurer dans la barre d’outils pour que l’état de l’élément de la campagne redevienne actif.

  6. Dans la boîte de dialogue Voulez-vous restaurer ?, cliquez sur Oui.

L’état de l’élément de la campagne devient actif.

  7. Cliquez sur Réinitialiser pour restaurer l’Affichage filtré, puis cliquez sur le bouton Fermer le volet de recherche.

L’élément de la campagne est restauré et s’affiche dans la liste Affichage filtré du Gestionnaire de campagnes.

Voir aussi

À propos des campagnes marketing

Suppression et restauration d’un client

Suppression et restauration d’une campagne marketing

Recherche de campagnes marketing


Recherche de campagnes marketing

La structure de l’arborescence du Gestionnaire de campagnes peut être étendue. Le volet Rechercher du module Gestionnaire de campagnes permet de rechercher des campagnes marketing à l’aide de critères de filtre. Les critères de filtre permettent de réduire le nombre d’éléments affichés dans l’arborescence du Gestionnaire de campagnes, facilitant ainsi la localisation et la gestion de vos campagnes marketing.

Vous pouvez rechercher les campagnes marketing par élément de la campagne, par nom de client ou par état (actif ou inactif). Vous pouvez également rechercher les campagnes marketing qui ont été supprimées. Une fois qu’une campagne marketing a été supprimée, elle est archivée avec ses éléments et peut être restaurée si nécessaire.

Pour rechercher un élément de la campagne

Pour rechercher un élément de la campagne de remise supprimé

Pour rechercher un élément de la campagne

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, cliquez sur Rechercher dans la barre d’outils.

  3. Dans le volet Rechercher, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Type d’élément | Sélectionner dans la liste déroulante le type d’élément de la campagne ou sélectionner Tous pour inclure l’ensemble des éléments de la campagne.
    Client | Taper le nom du client de la campagne marketing que vous voulez rechercher.
    État | Sélectionner Actif ou Tous dans la liste déroulante.
    Supprimé | Sélectionner Non ou Les deux dans la liste déroulante.
    Du | Taper ou sélectionner dans le calendrier déroulant la date de début de la campagne marketing.
    Au | Taper ou sélectionner dans le calendrier déroulant la date de fin de la campagne marketing ou sa date de fin prévue.

  4. Cliquez sur Rechercher.

Les éléments de la campagne correspondant aux critères de recherche s’affichent dans la zone Affichage filtré.

Remarque

  • Pour restaurer les critères de recherche par défaut, cliquez sur Réinitialiser.

Pour rechercher un élément de la campagne de remise supprimé

  1. Dans Campagnes marketing, cliquez sur Gestionnaire de campagnes.

  2. Dans l’écran Gestionnaire de campagnes, cliquez sur Rechercher dans la barre d’outils.

  3. Dans le volet Rechercher, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Type d’élément | Sélectionner Remise dans la liste déroulante.
    Client | Taper le nom du client de la campagne de remise.
    État | Sélectionner Tous dans la liste déroulante.
    Supprimé | Sélectionner Les deux dans la liste déroulante.
    Du | Taper ou sélectionner dans le calendrier déroulant la date de début de la campagne marketing.
    Au | Taper ou sélectionner dans le calendrier déroulant la date de fin de la campagne marketing ou sa date de fin prévue.

  4. Cliquez sur Rechercher.

Les éléments de la campagne correspondant aux critères de recherche s’affichent dans la zone Affichage filtré.

Remarque

  • Pour restaurer les critères de recherche par défaut, cliquez sur Réinitialiser.

Voir aussi

À propos des campagnes marketing

Suppression et restauration des campagnes marketing


Catalogues Business Desk

Les modules Catalogues permettent de créer des catalogues de produits, ainsi que d’ajouter et de mettre à jour les données sur les produits. Il n’est pas nécessaire de posséder des connaissances particulières sur les bases de données qui stockent vos données sur les produits, même si vous assemblez un catalogue de produits à partir de différentes sources, par exemple à partir de plusieurs fournisseurs.

Cette section contient les rubriques suivantes :

  • Déroulement des opérations pour la gestion des catalogues. Présente la marche à suivre pour créer et gérer un catalogue.

  • À propos des catalogues. Décrit les composants d’un catalogue et présente une vue d’ensemble de la procédure permettant de créer un schéma de catalogue.

  • Importation d’un catalogue. Explique comment importer un fichier de catalogue au format CSV (comma-separated value) ou XML (Extensible Markup Language).

  • Création d’un schéma de catalogue. Explique comment déterminer des définitions de catégories, de produits et de propriétés pour un catalogue.

  • Création d’un catalogue. Explique comment créer des catalogues et des groupes de catalogues, ajouter des éléments à un catalogue et appliquer une tarification aux produits d’un catalogue.

  • Tarification des produits. Explique comment définir le prix des produits de votre catalogue à la fois au niveau du produit et du composant produit, et comment tarifer les groupes de produits. Explique comment définir les prix dans un catalogue personnalisé.

  • Application d’une remise sur le prix des produits. Décrit plusieurs méthodes d’application d’une remise sur le prix des produits.

  • Création de hiérarchies pour les catégories. Explique comment établir des hiérarchies pour les catégories d’un catalogue.

  • Création de relations entre catégories et entre produits. Explique comment créer des relations dans un catalogue.

  • Actualisation et publication d’un catalogue. Explique comment publier des catalogues sur votre site Web et actualiser tous les caches et les index de texte intégral.

  • Envoi d’un catalogue à un partenaire commercial. Explique comment envoyer un catalogue à un partenaire commercial. Pour ce faire, Microsoft BizTalk Server doit être installé sur votre système informatique, ainsi que sur celui de votre partenaire commercial.

  • Exportation d’un catalogue. Explique comment exporter un catalogue vers un dossier partagé.

  • Gestion d’un schéma de catalogue. Explique comment modifier et supprimer des définitions de propriétés, de produits et de catégories.

  • Gestion des produits, des catégories, des catalogues et des groupes de catalogues. Explique comment modifier et supprimer des produits, des catégories, des catalogues et des groupes de catalogues.

  • Gestion des relations entre catégories et entre produits. Explique comment modifier et supprimer des relations entre catégories et entre produits.


Déroulement des opérations pour la gestion des catalogues

La figure suivante illustre un exemple de scénario de création d’un catalogue. Elle montre comment créer un catalogue en important un fichier de catalogue au format XML ou CSV, ou en créant un schéma de catalogue. Elle explique comment, après avoir créé votre schéma de catalogue, vous pouvez ajouter un produit et des composants produit au produit en ajoutant une catégorie. Après avoir créé un ou plusieurs catalogues, vous pouvez constituer un groupe de catalogues. Enfin, après avoir apporté les modifications souhaitées à votre catalogue, vous pouvez le publier sur votre site Web.

Diagramme de déroulement des opérations pour la gestion des catalogues
XML ou CSV
Importation d'un catalogue
Création d'un schéma de catalogue
Création d'un catalogue
Définitions de propriétés
Définitions de produits
Définitions de catégories
Tarification des produits
Tarification d'un catalogue personnalisé
Tarification d'un produit
Tarification au niveau du composant produit
Création d'un catalogue
Création d'un groupe de catalogues
Ajout d'une catégorie à un catalogue
Ajout d'un produit à un catalogue
Ajout de composants produit à un produit
Relations et hiérarchies
Création de hiérarchies de catégories
Création de relations entre catégories et entre produits
Actualisation et publication d'un catalogue


À propos des catalogues

Un catalogue est une méthode d’organisation des produits que vous voulez vendre. Business Desk vous aide à créer et à organiser les catalogues en gérant une description des propriétés que doivent posséder les différents articles de catalogue. Cette description s’appelle le schéma de catalogue. Ce schéma répertorie tous les types de catégories, produits et propriétés autorisés dans votre catalogue.

Dans Commerce Server 2000, vous utilisez les catalogues pour organiser et gérer les données sur les produits de votre base de données afin de les afficher sur votre site et de cibler les produits pour les utilisateurs.

Utilisation de catalogues pour la gestion du site Web

Remplissage du catalogue avec des données sur les produits

Échange de catalogues à l’aide de BizTalk Server

Structure du catalogue

Organisation du catalogue : hiérarchies et relations

Identificateurs uniques dans un catalogue

Catalogues de base, catalogues personnalisés et groupes de catalogues

Méthodes de tarification des produits

Analyse des ventes de catalogues

Utilisation de catalogues pour la gestion du site Web

Les modules Catalogues de Commerce Server Business Desk permettent de gérer, d’analyser et d’améliorer vos catalogues. Par exemple, lorsque votre site est en production, vous pouvez exécuter des rapports à partir de Business Desk pour identifier les produits qui ne se vendent pas, puis créer une campagne de remise pour augmenter les ventes de ces produits.

Business Desk vous permet de réaliser les tâches suivantes :

  • Importer des catalogues à partir d’autres sources de données. Vous pouvez importer des catalogues au format XML (Extensible Markup Language) ou CSV (comma-separated value) à partir de sources externes. Par exemple, si vous avez des catalogues dans d’autres bases de données, vous pouvez les importer dans la base de données Commerce Server, puis utiliser Business Desk pour les gérer.

    Pour convertir un catalogue au format XML ou CSV, vous pouvez utiliser votre système de gestion de base de données existant pour enregistrer le catalogue au format XML ou CSV, ou bien un développeur de site peut écrire un script à l’aide de Microsoft® Visual Basic® pour convertir ce catalogue.

    Avant que vous puissiez importer un catalogue, l’administrateur système doit créer un dossier partagé dans Commerce Server. Vous pouvez utiliser l’Explorateur Windows pour copier le catalogue dans ce dossier, puis utiliser Business Desk pour l’importer dans la base de données Commerce Server.

  • Exporter des catalogues. Vous pouvez exporter vos catalogues au format XML. Vous avez la possibilité d’exporter un catalogue lorsque, par exemple, vous vendez des produits en gros et que vous souhaitez exporter vos catalogues pour les adresser à des détaillants. Vous pouvez également exporter un catalogue vers une autre application, par exemple, un système d’inventaire ou de tarification.

    Avant que vous puissiez exporter un catalogue, l’administrateur système doit créer un dossier partagé dans Commerce Server ou vous devez connaître le nom d’un répertoire sur le serveur auquel vous avez accès. Vous pouvez ensuite utiliser Business Desk pour exporter le catalogue vers ce dossier partagé ou ce répertoire.

    Si vous souhaitez planifier l’importation ou l’exportation de catalogues par Commerce Server, adressez-vous à un développeur de site qui pourra vous proposer cette fonctionnalité.

  • Appliquer des remises aux produits. Vous pouvez appliquer des remises à tous les produits d’une catégorie, ou à certains produits répondant à des critères spécifiques. Par exemple, si un Prix.produit = 120,00, une remise de 10 pour cent est appliquée au prix de ce produit lorsque les utilisateurs l’ajoutent à leur panier d’achat. Pour plus d’informations sur l’application de remises aux produits, consultez Campagnes marketing, publicités, remises et publipostage. Pour obtenir des instructions sur l’ajout d’une campagne de remise, consultez Ajout d’un élément de la campagne.

  • Modifier des produits dans le catalogue. Vous pouvez modifier le nom du produit, son prix, sa description, etc.

  • Mettre à jour les informations sur un produit en temps réel. Vous pouvez mettre à jour les informations sur un produit, par exemple son prix, puis publier ces modifications sur votre site Web. Par exemple, si des clients ont ajouté ce produit dans leur panier et que le site est mis à jour avant qu’ils n’aient réglé leurs achats, Commerce Server applique le nouveau prix à leur panier. Si des clients ont déjà enregistré leur panier, puis le reprennent après la mise à jour du prix, le nouveau prix s’affiche.

  • Identifier les produits qui se vendent bien. Vous pouvez exécuter des rapports Commerce Server pour identifier les produits les plus vendus par unité et par total des ventes, ainsi que les catégories les plus vendues par unité et par total des ventes. Vous pouvez par exemple utiliser le résultat de votre analyse pour appliquer une remise aux produits qui ne se vendent pas bien ou proposer des accessoires pour les produits qui se vendent bien. D’autre part, le développeur de site peut personnaliser votre site de manière à prendre en charge les ventes annexes, telles que les offres de lancement et les ventes croisées intelligentes.

  • Rechercher des produits. Vous pouvez facilement trouver des produits en effectuant une recherche sur les propriétés ou une recherche en texte libre.

Remplissage du catalogue avec des données sur les produits

Vous pouvez utiliser le module Éditeur de catalogue Business Desk pour entrer manuellement les données sur les produits. Vous pouvez également l’utiliser pour importer ces données à partir d’un fichier XML ou CSV. Par exemple, si vous avez déjà un catalogue dans une autre base de données, votre administrateur système peut l’exporter sous forme de fichier XML, puis vous pouvez utiliser le module Éditeur de catalogue pour importer le catalogue dans votre base de données Commerce Server.

Échange de catalogues à l’aide de BizTalk Server

BizTalk Server 2000 joue le rôle d’une passerelle pour l’échange de documents commerciaux entre votre société et vos partenaires commerciaux (également appelés fournisseurs). Si votre société et tous vos partenaires commerciaux utilisent BizTalk Server, vous pouvez échanger des catalogues, des commandes, des documents et d’autres formulaires électroniques. Par exemple, des fournisseurs peuvent vous envoyer leurs catalogues, que vous pouvez publier sur votre site Web aux côtés de votre propre catalogue. Lorsque des utilisateurs entrent des commandes sur votre site Web, celles-ci sont envoyées directement au fournisseur pour qu’il les exécute.

Chacun de vos partenaires commerciaux peut envoyer un ou plusieurs catalogues de ses produits. En fonction de la configuration de votre site Web, vous pouvez faire apparaître ces catalogues sous la forme d’un seul catalogue ou de plusieurs catalogues distincts. Pour plus d’informations sur l’utilisation de BizTalk Server, consultez Utilisation de BizTalk Server.

Structure du catalogue

Un catalogue Commerce Server se compose de deux éléments principaux :

  • Schéma du catalogue. Il s’agit d’une description des catégories et des produits d’un site. Le schéma du catalogue est disponible pour tous les catalogues d’un site.

  • Catalogue. Il s’agit d’une instance du schéma du catalogue qui contient des données.

Le tableau suivant montre un exemple de schéma de catalogue appelé Vêtements, puis une instance unique du schéma du catalogue Vêtements qui comporte des données pour le catalogue Vêtements de sport.

Schéma du catalogue | Catalogue : Vêtements de sport
Définition de catégorie : Rayon Propriétés de la catégorie Nom Description Fichier_image Largeur_image Hauteur_image | Catégorie : Rayon des maillots de sport Rayon des maillots de sport Catalogue 2000 des maillots de sport Sports_shirts.gif 100 200
Définition de produit : Maillots Propriétés du produit : Nom Fabricant Prix Propriétés du composant produit : Taille Couleur Référence | Produit : Maillots de football Maillots de football Maillots Ace 120,00 FF M Vert 23354

Schéma du catalogue

Le schéma du catalogue décrit les caractéristiques des catégories et des produits d’un type de catalogue donné. Par exemple, le schéma de catalogue d’un catalogue de Vêtements de sport peut contenir les définitions de produits suivantes : Maillots, Shorts et Chaussures. Pour créer un schéma de catalogue, utilisez le module Définition de catalogue dans Business Desk.

Le schéma de catalogue se compose des définitions de catégories, des définitions de produits et des définitions de propriétés. Les définitions de catégories et les définitions de produits sont créées à partir des définitions de propriétés. La figure suivante montre les différentes parties d’un exemple de schéma de catalogue.

Figure illustrant l'utilisation des propriétés dans les définitions de produits et les définitions de catégories
Nom (Texte)
Fabricant (Texte)
Prix (Devise)
Définition de catégorie
Couleur (Choix multiple) Description (Texte) Fichier_image (Nom de fichier) Largeur_image (Nombre) Hauteur_image (Nombre) Fabricant (Texte)
Nom (Texte)
Prix (Devise)
Taille (Choix multiple)
Référence (Nombre)
Propriétés
Définition du produit
Couleur (Choix multiple) Description (Texte) Fichier_image (Nom de fichier) Largeur_image (Nombre) Hauteur_image (Nombre) Fabricant (Texte)
Nom (Texte)
Prix (Devise)
Taille (Choix multiple)
Référence (Nombre)
Nom (Texte) Description (Texte) Fichier_image (Nom de fichier) Largeur_image (Nombre) Hauteur_image (Nombre)
Propriétés du composant
Taille (Choix multiple)
Couleur (Choix multiple)
Référence (Nombre)
Schéma du catalogue

Les définitions de catégories décrivent les caractéristiques spécifiques des catégories de votre catalogue. Ces caractéristiques sont appelées propriétés de la catégorie. Vous créez une définition de catégorie en lui attribuant des propriétés de la catégorie. Par exemple, la définition de catégorie Rayon peut avoir les propriétés de catégorie suivantes : Nom, Description, Nom du fichier image, Hauteur d’image et Largeur d’image. Lorsque vous créerez une catégorie basée sur la définition de catégorie Rayon, vous entrerez les valeurs des propriétés de catégorie. Par exemple, la propriété de catégorie Nom peut correspondre à « Rayon des maillots de sport ».

Les définitions de produits décrivent les caractéristiques spécifiques d’un produit donné. Ces caractéristiques sont appelées propriétés du produit. Vous créez une définition de produit en lui attribuant des propriétés du produit. Par exemple, vous pouvez créer une définition de produit nommée Maillots qui comprend trois propriétés de produit : Nom, Fabricant et Prix. Lorsque vous créerez un produit basé sur la définition de produit Maillots, vous entrerez les valeurs des propriétés de produit. Par exemple, la propriété de produit Nom peut correspondre à « Maillots de football Ace ».

Les propriétés du produit et de la catégorie sont basées sur des définitions de propriétés. Une définition de propriété décrit les informations relatives à cette propriété comme le type de données de la propriété (par exemple, nombre, texte et décimal), le nom de la propriété et une valeur minimale pour la propriété. Par exemple, vous pouvez créer une propriété appelée Taille_maillot avec les valeurs Small, Medium et Large ou une propriété appelée Longueur avec une valeur minimale de 10 et une valeur maximale de 120.

Le schéma du catalogue peut être modifié. Vous pouvez le modifier même si ce catalogue comporte déjà des données. Par exemple, vous pouvez ajouter, supprimer ou renommer des définitions de propriétés ou modifier le type de données d’une propriété (pour passer par exemple d’un nombre à une chaîne de caractères).

Pour obtenir des instructions sur la création d’un schéma de catalogue, consultez Création d’un schéma de catalogue.

Catalogues

Un catalogue est une instance d’un schéma de catalogue qui contient des données sur des produits et des catégories permettant de classer ces produits. Pour créer un catalogue, utilisez le module Éditeur de catalogue dans Business Desk.

Un catalogue se compose de catégories, de produits, de composants produit et de propriétés. La figure suivante montre les différentes parties d’un exemple de schéma de catalogue et de quelle manière elles correspondent aux différentes parties d’un catalogue. Les propriétés sont utilisées dans la définition de catégorie et la définition de produit. La définition de catégorie « Rayon » est utilisée pour la catégorie « Maillots de football ». La définition de produit « Maillots de football » est utilisée pour le produit « Maillots de football Ace ».

Figure illustrant l'utilisation des propriétés dans les définitions de produits et les définitions de catégories
Nom (Texte)
Fabricant (Texte)
Prix (Devise)
Définition de catégorie
Couleur (Choix multiple) Description (Texte) Fichier_image (Nom de fichier) Largeur_image (Nombre) Hauteur_image (Nombre) Fabricant (Texte)
Nom (Texte)
Prix (Devise)
Taille (Choix multiple)
Référence (Nombre)
Propriétés
Définition du produit
Couleur (Choix multiple) Description (Texte) Fichier_image (Nom de fichier) Largeur_image (Nombre) Hauteur_image (Nombre) Fabricant (Texte)
Nom (Texte)
Prix (Devise)
Taille (Choix multiple)
Référence (Nombre)
Nom (Texte) Description (Texte) Fichier_image (Nom de fichier) Largeur_image (Nombre) Hauteur_image (Nombre)
Propriétés du composant
Taille (Choix multiple)
Couleur (Choix multiple)
Référence (Nombre)
Schéma du catalogue

Les catégories sont des instances individuelles d’une définition de catégorie. Par exemple, vous pouvez utiliser la définition de catégorie Rayon pour créer la catégorie Maillots de football.

Les produits sont des éléments d’un catalogue. Un produit est une combinaison de définitions de propriétés. Par exemple, si vous disposez d’une définition de produit nommée Maillots de football, qui possède les propriétés Nom, Couleur et Taille, vous créez un produit pour chaque combinaison de nom, couleur et taille à inclure dans votre catalogue.

Les produits peuvent être classés par groupes d’éléments proches appelés familles de produits. Une famille de produits est un groupe de produits contenant des composants produit. Par exemple, un maillot vert, de grande taille avec la référence 114 est un composant produit du produit Maillots de football ; la taille, la couleur et la référence forment un composant. Un composant produit comprend toujours un identificateur unique, tel qu’une référence, et un prix. Chaque composant produit est basé sur la même définition de produit.

Pour obtenir des instructions sur la création d’un catalogue, consultez Création d’un schéma de catalogue.

Organisation du catalogue : hiérarchies et relations

Pour organiser les produits dans votre catalogue et faciliter l’accès des utilisateurs à ce qu’ils souhaitent, vous pouvez créer des hiérarchies de catégories et des relations entre catégories et entre produits. Par exemple, vous pouvez créer une catégorie parent qui comprend deux catégories distinctes, également appelées catégories enfants. Lorsque les utilisateurs naviguent jusqu’à la catégorie parent, les catégories enfants sont affichées, ce qui permet aux utilisateurs de trouver rapidement les produits qu’ils souhaitent.

La figure suivante illustre une catégorie parent contenant plusieurs catégories enfants et montre comment chaque catégorie enfant peut également être une catégorie parent.

Figure illustrant un exemple de catalogue
Collection de catalogues
Catalogue B
Catalogue C
Catalogue Vêtements de sport
Shorts
Maillots
Maillots de football
Survêtements
deux pièces
Maillots de football Ace
Shorts de football Ace
Accessoire

Taille :
Couleur :
Référence :

Taille :
Couleur :
Référence :

Taille :
Couleur :
Référence :

S
Noir
113

M
Bleu
114

L
Vert
115

Dans la figure qui précède, le catalogue Vêtements de sport contient deux catégories : Maillots et Shorts. La catégorie Maillots se compose de deux catégories enfants : Maillots de football et Survêtements deux pièces. Cette organisation donne aux utilisateurs deux accès à la catégorie Survêtements deux pièces : via la catégorie Maillots ou via la catégorie Shorts. Cette figure illustre également une relation d’accessoire entre Maillots de football Ace et Shorts de football Ace. Si les utilisateurs sont intéressés par les maillots, ils peuvent également l’être par les shorts.

Pour obtenir des instructions sur la création de hiérarchies, consultez Création de hiérarchies de catégories. Pour obtenir des instructions sur la création de relations, consultez Création de relations entre catégories et entre produits.

Identificateurs uniques dans un catalogue

Les produits et les composants produit ont tous deux des identificateurs uniques. Les identificateurs uniques sont soit un type de propriété texte, soit un type de propriété nombre. Par exemple, pour un catalogue de livres, le titre du livre peut être l’identificateur unique du produit et la référence ISBN l’identificateur unique du composant produit. Pour le livre « Le futur de l'e-commerce », la version reliée représente un composant, la version brochée représente un deuxième composant et la version audio un troisième composant. Ces trois composants produit appartiennent à la famille de produits Le futur de l'e-commerce.

L’exemple suivant illustre les composants de la famille de produits Le futur de l'e-commerce.

Famille de produits = Le futur de l’e-commerce
ID unique = Titre : Le futur de l’e-commerce

Composant produit = Le futur de l’e-commerce, version reliée
ID unique = ISBN : 1102334
Prix = 120,00

Composant produit = Le futur de l’e-commerce, version brochée
ID unique = ISBN : 1102335
Prix = 60,00

Composant produit = Le futur de l’e-commerce, version audio
ID unique = ISBN : 1102336
Prix = 90,00

Lorsque vous créez un catalogue, vous spécifiez les propriétés qui constituent les identificateurs uniques des produits et des composants produit.

Catalogues de base, catalogues personnalisés et groupes de catalogues

Vous pouvez créer deux types de catalogues. Vous pouvez également regrouper deux catalogues ou plus dans des groupes de catalogues.

  • Un catalogue de base contient des catégories et des produits, mais ne comporte pas de règles de tarification spécifiques. Pour plus d’informations sur la création d’un catalogue de base, consultez Création d’un catalogue.

  • Un catalogue personnalisé est issu d’un catalogue de base et spécifie des règles de tarification spécifiques pour les produits qu’il contient. Les prix d’un catalogue personnalisé supplantent les prix du catalogue de base. Vous utilisez des catalogues personnalisés pour le site d’un fournisseur, par exemple pour offrir à certaines sociétés des tarifs personnalisés sur certains produits. Vous pouvez également utiliser des catalogues personnalisés pour le site d’un détaillant, s’il existe différents niveaux d’adhésion pour les clients et que vous souhaitez appliquer différents tarifs en fonction du niveau d’adhésion. Vous pouvez également afficher des tarifs différents pour les clients réguliers de votre site. Pour plus d’informations sur la création d’un catalogue personnalisé, consultez Création d’un catalogue personnalisé.

Vous déterminez le catalogue que l’utilisateur voit sur votre site en créant des groupes de catalogues. Un groupe de catalogues rassemble un ou plusieurs catalogues que vous rendez disponibles selon les différents utilisateurs ou organisations. Par exemple, vous pouvez créer un catalogue personnalisé, le combiner avec un catalogue général, puis afficher ce groupe de catalogues pour les membres d’une organisation spécifique. La figure suivante illustre la manière dont les membres d’un club de football peuvent consulter le catalogue vestimentaire d’une équipe avec des tarifs spéciaux.

Figure illustrant la manière dont différents utilisateurs peuvent afficher différents groupes de catalogues
Catalogue Vêtements de sport
Catalogue Vêtements d'hiver
Catalogue Vêtements de sport
Catalogue Vêtements d'hiver
Catalogue de vêtements pour l'équipe (tarification personnalisée au niveau de la catégorie)
Groupes de catalogues des membres du club
Membres d'un club de football
Tous les utilisateurs
Groupe de catalogues général

Pour plus d’informations sur la création de groupes de catalogues, consultez Création d’un groupe de catalogues.

Vous utilisez le module Utilisateurs Business Desk pour spécifier le groupe de catalogues qu’un utilisateur voit. Lorsque vous créez un utilisateur, vous indiquez le nom du groupe de catalogues. Pour plus d’informations sur la création d’un utilisateur et la spécification du groupe de catalogues, consultez Ajout d’un utilisateur.

Méthodes de tarification des produits

Vous pouvez définir le prix d’un produit d’un catalogue à l’aide de l’une des trois méthodes suivantes :

  • Tarification directe. Vous définissez le prix d’un produit dans la définition de produit. Vous pouvez le faire lors de la création du produit, mais vous pouvez également modifier un produit existant pour changer son prix. Pour obtenir des instructions sur l’application d’une tarification directe, consultez Tarification d’un produit et Tarification au niveau d’un composant produit.

  • Tarification indirecte. Le prix est déterminé par son association avec une catégorie de tarification spécifique. Si un produit est associé à une catégorie de tarification, le prix indiqué sur le produit est remplacé par le prix défini dans cette catégorie. La tarification indirecte est généralement utilisée lorsque vous voulez tarifer un groupe de produits de la même manière, par exemple, pour créer une catégorie spéciale où tous les produits coûtent 11,90 FF. Pour obtenir des instructions sur l’application d’une tarification indirecte, consultez Tarification des produits dans une catégorie.

  • Tarification personnalisée. Vous appliquez le prix à une catégorie. Vous pouvez ainsi créer un catalogue personnalisé. Il existe trois types de tarifications personnalisées que vous pouvez appliquer à un catalogue personnalisé :
    • Ajustement en fonction du pourcentage. Spécifie le pourcentage du prix catalogue auquel le produit doit être vendu. Par exemple, pour appliquer une remise de 10 pour cent, vous devez entrer 90, ce qui indique que le produit est vendu à 90 pour cent de son prix catalogue.

    • Ajustement fixe. Il indique le montant exact à appliquer pour augmenter ou baisser le prix catalogue. Par exemple, pour baisser le prix de 12 FF, vous devez taper –12 pour indiquer que le produit doit être vendu 12 FF de moins. Pour augmenter le prix de 12 FF, tapez 12 pour indiquer que le produit doit être vendu 12 FF de plus.

    • Prix défini. Spécifie le prix exact du produit. Par exemple, le produit est vendu pour exactement 60,00 FF.

    Pour obtenir des instructions sur l’application d’une tarification personnalisée, consultez Tarification d’un catalogue personnalisé.

Analyse des ventes de catalogues

Le tableau suivant répertorie les rapports inclus dans Commerce Server. Ces rapports vous permettent d’analyser les données sur les ventes de catalogues.

Rapport | Description
Ventes client | Permet de consulter les détails sur le client, ainsi que le total des ventes et des commandes. Ces informations permettent de cibler les clients à l’aide de campagnes marketing en ligne, par exemple les promotions par publipostage.
Évènements du panier d’achat | Détermine à quel moment les articles ont été ajoutés aux paniers d’achats ou retirés.
Itinéraire d’achat de l’acheteur | Analyse les schémas de visite de l’acheteur. Ce rapport fournit des données telles que le nombre moyen de visites, les visites par achat, le total des ventes, le nombre de ventes et le nombre de visiteurs.
Ventes produits | Analyse le volume et le chiffre d’affaires des ventes de produits par date. Ce rapport fournit des données sur les quantités et le chiffre d’affaires.
Événements de commande | Analyse à quel moment les commandes sont passées sur votre site. Ce rapport contient des données de type date, heure, événement et type d’utilisateur.
Synthèse des dépenses du client | Analyse le volume et le chiffre d’affaires des ventes par client.

Pour obtenir la liste de tous les rapports Commerce Server, consultez Rapports Commerce Server. Pour plus d’informations sur l’exécution de rapports, consultez Exécution de rapports.

Voir aussi

Importation d’un catalogue

Création d’un schéma de catalogue

Création d’un catalogue

Tarification des produits

Utilisation de BizTalk Server


Importation d'un catalogue

Importation d’un catalogue

Vous utilisez le module Éditeur de catalogue pour importer des catalogues au format XML (Extensible Markup Language) ou CSV (comma -separated values) à partir de sources externes. L’importation d’un catalogue permet d’intégrer un catalogue existant provenant d’une autre source dans votre base de données.

Le temps nécessaire à l’importation d’un catalogue dépend de la taille de ce catalogue. Étant donné qu’un catalogue peut être très volumineux, les importations et les exportations sont asynchrones, ce qui vous permet de continuer à travailler sur d’autres parties de Commerce Server Business Desk pendant le processus. Vous pouvez également quitter Business Desk et y revenir plus tard.

Cette section contient les rubriques suivantes :

  • Importation d’un fichier de catalogue XML

  • Importation d’un fichier de catalogue CSV


Importation d'un fichier de catalogue XML

Importation d’un fichier de catalogue XML

Un catalogue Commerce Server au format XML (Extensible Markup Format) contient à la fois le schéma du catalogue et les données sur les produits. Vous pouvez importer un catalogue Commerce Server au format XML, puis utiliser l’Éditeur de catalogue pour modifier les données sur les produits.

Vous pouvez copier un catalogue qui se trouve sur votre ordinateur local vers le répertoire partagé CommerceCatalogs du serveur. Utilisez l’Explorateur Windows pour copier votre fichier vers le répertoire partagé. Si vous utilisez le partage CommerceCatalogs, il n’est pas nécessaire de spécifier le chemin complet et le nom du fichier pendant l’importation.

Remarque

  • Contactez votre administrateur système pour vous assurer que le répertoire partagé CommerceCatalogs existe bien sur le serveur.

Pour importer un fichier de catalogue XML

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, cliquez sur Importer dans la barre d’outils, puis sélectionnez Importer XML dans la liste déroulante.

  3. Dans la boîte de dialogue Importer le catalogue XML, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de fichier | Taper le chemin complet et le nom de fichier du catalogue à importer ou, si le fichier se trouve dans le répertoire partagé CommerceCatalogs sur votre serveur, taper uniquement le nom du fichier. Par exemple, tapez SportsCatalog.xml si ce fichier se trouve dans le partage CommerceCatalogs sur votre serveur. Si le fichier se trouve dans un autre dossier, vous devez taper le nom et le chemin d’accès complet du fichier à importer, par exemple C:\CatalogsforBusiness\SportsCatalogs.xml.
    Supprimer les données du catalogue existantes | Supprimer les données du catalogue existant avant d’importer la nouvelle version en activant cette case à cocher, si vous importez un catalogue qui existe déjà dans votre base de données Commerce Server.

  4. Cliquez sur OK.

Remarques

  • Vous ne pouvez pas importer un catalogue contenant une définition de produit dont les propriétés sont différentes de celles d’une définition de produit existante portant le même nom.

  • Pour déterminer le statut de l’importation, demandez à votre administrateur de consulter l’Observateur d’événements. Si un problème est survenu lors du processus d’importation, une erreur est consignée dans le journal Applications de l’Observateur d’événements. Si le processus d’importation a réussi, le catalogue s’affiche dans la liste de l’Éditeur de catalogue.

Maintenant que vous avez importé un catalogue Commerce Server au format XML, vous pouvez publier ce nouveau catalogue sur votre site Web. Pour plus d’informations sur la publication des modifications sur votre site Web, consultez Actualisation et publication d’un catalogue.

Voir aussi

À propos des catalogues

Actualisation et publication d’un catalogue

Importation d’un fichier de catalogue CSV


Importation d'un fichier de catalogue CSV

Importation d’un fichier de catalogue CSV

Un fichier de catalogue CSV (comma-separated values) contient des données sur les produits, mains ne contient pas de schéma du catalogue. Les produits ne sont pas organisés en catégories et tous les produits d’un fichier de catalogue CSV sont mappés vers une définition de produit unique.. Le fichier de catalogue CSV doit avoir un identificateur du produit et une colonne de prix. Les fichiers de catalogue CSV contiennent seulement des produits autonomes et ne prennent pas en charge les composants produit. Les données de type chaîne de caractères sont les seuls types de données pris en charge par un fichier de catalogue CSV. Pour plus d’informations sur les données de type chaîne de caractères, contactez votre administrateur système.

Lorsqu’un fichier de catalogue CSV est importé, une définition de produit est automatiquement créée à partir des colonnes répertoriées dans le fichier. Chaque produit est importé en tant qu’instance de la définition de produit créée automatiquement. Le nom donné à la définition de produit est identique au nom du catalogue en cours d’importation.

Après avoir importé un fichier de catalogue CSV, vous pouvez utiliser l’Éditeur de catalogue pour créer des catégories et placer des produits dans ces catégories.

Pour importer un fichier de catalogue CSV

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, cliquez sur Importer dans la barre d’outils, puis sélectionnez Importer CSV dans la liste déroulante.

  3. Dans la boîte de dialogue Importer le catalogue CSV, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom du fichier | Taper le chemin d’accès complet et le nom de fichier du catalogue à importer ou, si le fichier se trouve dans le répertoire partagé CommerceCatalogs sur votre serveur, taper uniquement le nom du fichier. Par exemple, tapez SportsCatalog.xml si ce fichier se trouve dans le partage CommerceCatalogs sur votre serveur. Si le fichier se trouve dans un autre dossier, vous devez taper le nom et le chemin d’accès complet du fichier à importer, par exemple C:\CatalogsforBusiness\SportsCatalogs.xml.
    Nom du catalogue | Taper un nom pour le catalogue importé. Ce nom sera également utilisé pour la définition de produit créée au cours de l’importation.
    Identificateur du produit | Taper le nom de la colonne de l’identificateur.
    Colonne de prix | Taper le nom de la colonne de prix.
    Supprimer les données existantes contenues dans ce catalogue | Supprimer les données du catalogue existant avant d’importer la nouvelle version en activant cette case à cocher, si vous importez un catalogue qui existe déjà dans votre base de données Commerce Server.

  4. Cliquez sur OK.

Remarques

  • L’importation d’un catalogue portant le même nom qu’une définition de produit écrase la définition de produit d’origine.

  • Vous ne pouvez pas importer un catalogue qui contient une définition de produit dont les propriétés sont différentes de celles d’une définition de produit existante portant le même nom.

  • Pour déterminer le statut de l’importation, demandez à votre administrateur de consulter l’Observateur d’événements. Si un problème est survenu lors du processus d’importation, une erreur est consignée dans le journal Applications de l’Observateur d’événements. Si le processus d’importation a réussi, le catalogue s’affiche dans la liste de l’Éditeur de catalogue.

Voir aussi

À propos des catalogues

Importation d’un fichier de catalogue XML

Ajout d’une catégorie à un catalogue

Ajout d’un produit à un catalogue


Création d'un schéma de catalogue

Création d’un schéma de catalogue

Si vous décidez de créer votre propre catalogue au lieu d’en importer un, vous devez d’abord créer un schéma de catalogue. Après avoir créé le schéma du catalogue, vous pouvez ajouter des catégories, des produits et des propriétés à votre catalogue. Pour consulter un exemple de création d’un schéma de catalogue et d’un catalogue, consultez Création d’un catalogue dans le didacticiel Commerce Server Business Desk.

Cette section contient les rubriques suivantes :

  • Ajout d’une définition de propriété

  • Ajout d’une définition de produit

  • Ajout d’une définition de catégorie


Ajout d'une définition de propriété

Ajout d’une définition de propriété

Une définition de propriété spécifie une seule caractéristique d’une définition de catégorie ou d’une définition de produit de votre catalogue. Une même définition de propriété peut être utilisée par plusieurs définitions de catégories et définitions de produits, et peut être partagée entre plusieurs catalogues. Par exemple, la définition de propriété « Description » peut être utilisée dans chaque définition de produit et définition de catégorie pour ajouter des descriptions aux catégories et aux produits.

Après avoir créé une définition de propriété, vous pouvez l’ajouter à une définition de catégorie ou à une définition de produit.

Pour ajouter une définition de propriété

  1. Dans Catalogues, cliquez sur Définition de catalogue.

  2. Dans l’écran Définition de catalogue : Définitions de catégories, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définitions de propriétés dans la liste déroulante.

  3. Dans l’écran Définition de catalogue : Définitions de propriétés, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez le type de propriété que vous souhaitez utiliser pour créer une définition de propriété.

    Les zones affichées dans l’écran Définition de catalogue : Définitions de propriétés dépendent du type de définition de propriété que vous avez sélectionné.

  4. Dans l’écran Définitions de propriétés, effectuez les opérations suivantes :
    Utilisez ceci | Pour le type de propriété | Pour faire cela
    Nom Tous Taper un nom pour la propriété.

    Remarque

    Une fois que cette propriété est enregistrée, vous ne pouvez pas changer ce nom.

    Afficher sur le site | Tous | Afficher la propriété spécifiée sur le site Web afin que les utilisateurs la voient, en activant cette case à cocher. Si vous souhaitez garder certaines propriétés privées pour usage interne, n’activez pas cette case à cocher.
    Nom complet | Tous | Taper le nom qui sera affiché sur le site Web pour cette propriété. Par exemple, pour la propriété « CouleurChemise », vous pouvez choisir le nom « Couleur ».
    Possibilité de recherche en texte libre Texte, choix multiple Appliquer la fonction de recherche en texte libre dans votre catalogue aux valeurs stockées dans cette propriété, en activant cette case à cocher.

    Lorsque vous sélectionnez l’option Possibilité de recherche en texte libre, la définition de propriété est ajoutée à l’index intégral du catalogue. Vous devez mettre à jour l’index de texte intégral après avoir modifié des éléments de vos catalogues qui sont marqués comme pouvant faire l’objet d’une recherche. Pour plus d’informations sur la mise à jour de l’index de texte intégral, consultez Actualisation et publication d’un catalogue.
    Possibilité de recherche avec propriété | Texte, nombre, décimal, monnaie/devise, date/heure, choix multiple | Utiliser cette propriété dans les recherches avec propriété, en activant cette case à cocher. Une recherche avec propriété permet aux utilisateurs de sélectionner les valeurs de leur choix pour les aider à rechercher des produits particuliers.
    Longueur minimale | Texte | Taper le nombre définissant la longueur minimale de la valeur pour ce type de propriété. La longueur minimale par défaut est de zéro (0) caractère. Si vous spécifiez une longueur différente de zéro, cette propriété devient une propriété requise pour une définition de catégorie ou de produit.
    Longueur maximale | Texte | Taper le nombre définissant la longueur maximale de la valeur pour ce type de propriété. La longueur maximale autorisée est de 3 600 caractères.
    Valeur minimale | Nombre, décimal, monnaie/devise | Taper le nombre définissant la valeur minimale pour cette propriété. La valeur minimale par défaut est zéro (0).
    Valeur maximale | Nombre, décimal, monnaie/devise | Taper le nombre définissant la valeur maximale pour ce type de propriété. Par exemple, pour ajouter une propriété pour la monnaie, entrez un nombre décimal et indiquez dans la partie décimale le nombre de chiffres pouvant s’adapter à la valeur monétaire la plus élevée à appliquer à un produit.
    Date au plus tôt | Date/Heure | Taper la date à laquelle vous voulez que cette propriété soit valide au plus tôt. Par exemple, la date à laquelle les utilisateurs peuvent commander un nouvel enregistrement au plus tôt.
    Heure au plus tôt | Date/Heure | Taper l’heure au format 00:00 (par exemple, 13:00) à laquelle vous voulez que cette propriété soit valide au plus tôt. Par exemple, une heure de début.
    Date au plus tard | Date/Heure | Taper la date à laquelle vous voulez que cette propriété soit valide au plus tard. Par exemple, la date à laquelle les utilisateurs peuvent commander un produit en promotion au plus tard.
    Heure au plus tard | Date/Heure | Taper l’heure au format 00:00 (par exemple, 22:00) à laquelle vous voulez que cette propriété soit valide au plus tard. Par exemple, une heure d’expiration.
    Valeur par défaut | Texte, nombre, décimal, monnaie/devise, date/heure, choix multiple | Taper la valeur par défaut pour le type de propriété. Le format varie en fonction du type de propriété ajouté.
    Attribuer à tous les types de produits | Tous | Attribuer la propriété à tous les types de produits. Faites-le pour les propriétés de produits génériques, telles que le nom, la description ou le volume.
    Exporter vers Data Warehouse | Tous | Exporter la propriété vers Data Warehouse. L’exportation vers Data Warehouse rend les données disponibles à des fins de création de rapports.
    Afficher dans la liste de produits | Tous | Afficher cette propriété dans la liste de produits.

  5. Pour enregistrer la définition de propriété et revenir à l’écran Définition de catalogue : Définitions de propriétés, cliquez sur Enregistrement et retour dans la barre d’outils.

Vous pouvez maintenant ajouter la définition de propriété à une définition de catégorie et/ou à une définition de produit.

Remarques

  • Si vous sélectionnez Attribuer à tous, toutes les définitions que vous créerez par la suite auront automatiquement cette propriété.

  • Vous ne pouvez pas utiliser les caractères spéciaux suivants dans le nom d’une définition de propriété : flèches < >, esperluette (&) ou parenthèses ().

  • Un nom de propriété ne peut pas commencer par un numéro.

Voir aussi

À propos des catalogues

Ajout d’une définition de produit

Ajout d’une définition de catégorie


Ajout d'une définition de produit

Ajout d’une définition de produit

Tous les produits de votre catalogue sont des instances de définitions de produits. Une définition de produit spécifie les propriétés associées à un type de produit donné. Par exemple, un vendeur de disques en ligne peut créer une définition de produit pour le type de produit « CD » contenant les propriétés Artiste, Titre et Prix catalogue.

Après avoir créé une définition de produit, vous pouvez ajouter des instances de cette définition de produit dans un catalogue.

Il est supposé dans les instructions suivantes que vous avez déjà créé les définitions de produits à ajouter à votre définition de produit. Néanmoins, vous avez également la possibilité de créer des définitions de propriétés lors de l’ajout d’une définition de produit. Pour plus d’informations sur la création de définitions de produits, consultez Ajout d’une définition de produit.

Pour ajouter une définition de produit

  1. Dans Catalogues, cliquez sur Définition de catalogue.

  2. Dans l’écran Définition de catalogue : Définitions de catégories, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définitions de produits dans la liste déroulante.

  3. Dans l’écran Définition de catalogue : Définitions de produits, cliquez sur Nouveau dans la barre d’outils.

  4. Dans l’écran Définitions de produits : Nouveau, tapez un nom pour la nouvelle définition de produit dans la zone Nom.

  5. Dans la section Propriétés du produit, sélectionnez les propriétés souhaitées pour la nouvelle définition de produit dans la liste Propriétés disponibles, puis cliquez sur Ajouter.

    Les propriétés sélectionnées s’affichent dans la zone Propriétés attribuées de la section Propriétés du produit.

    Définition du produit

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

    Remarque

    • Certaines propriétés peuvent avoir l’ensemble d’attributs Attribuer à tous. Cela signifie que toutes les définitions de produits contiennent automatiquement cette propriété ; elle est affichée comme déjà attribuée et est mise en surbrillance en jaune. Si vous essayez de retirer l’une de ces propriétés de la définition de produit, elle sera automatiquement rajoutée dans la zone Propriétés attribuées au moment de l’enregistrement des propriétés du produit. La propriété prix catalogue est une propriété intégrée qui est attribuée à tous les produits.
  6. Si le nouveau produit a différents composants, dans la liste Propriétés disponibles de la section Propriétés du composant produit, sélectionnez les propriétés souhaitées, puis cliquez sur Ajouter.

    Les propriétés sélectionnées s’affichent dans la zone Propriétés attribuées.

    Remarque

    • L’ordre dans lequel les propriétés s’affichent dans la zone Propriétés attribuées est également l’ordre dans lequel elles s’afficheront dans le catalogue. Pour changer l’ordre des propriétés, sélectionnez la propriété que vous souhaitez déplacer, puis cliquez sur Monter ou Descendre jusqu’à ce que la propriété se trouve à l’emplacement voulu.
  7. Pour enregistrer la définition de produit et revenir à l’écran Définition de catalogue : Définitions de produits, cliquez sur Enregistrement et retour dans la barre d’outils.

Après avoir créé vos définitions de propriétés, définitions de produits et définitions de catégories, vous pouvez créer un catalogue et placer des catégories et des produits dans celui-ci. Pour obtenir des instructions, consultez Création d’un catalogue.

Voir aussi

À propos des catalogues

Ajout d’une définition de propriété

Ajout d’une définition de catégorie

Création d’un catalogue


Ajout d'une définition de catégorie

Ajout d’une définition de catégorie

Une catégorie peut avoir une ou plusieurs propriétés, comme le nom, la description et l’image. Ces propriétés sont définies dans la définition de catégorie.

Commerce Server fournit une définition de catégorie appelée Rayon que vous pouvez utiliser en l’état ou modifier. Vous pouvez également créer d’autres définitions de catégories. La définition de catégorie Rayon comprend les propriétés suivantes : description, nom du fichier image, largeur de l’image et hauteur de l’image. Vous pouvez utiliser la définition de catégorie Rayon telle quelle ou vous pouvez adapter ses propriétés à vos besoins. Vous pouvez également créer différents types de catégories. Par exemple, si vous souhaitez pouvoir stocker des informations sur les fabricants et organiser les produits par fabricant, vous pouvez créer une définition de catégorie Fabricant qui contiendra différentes propriétés telles que Nom du fabricant, Pays, Adresse et Personne à contacter.

Après avoir créé une définition de catégorie, vous pouvez créer des catégories reposant sur cette définition de catégorie.

Il est supposé dans les instructions suivantes que vous avez déjà créé les définitions de propriétés à ajouter à votre définition de catégorie. Néanmoins, vous avez également la possibilité de créer des définitions de propriétés lors de l’ajout d’une définition de catégorie. Pour plus d’informations sur la création de définitions de produits, consultez Ajout d’une définition de propriété.

Pour ajouter une définition de catégorie

  1. Dans Catalogues, cliquez sur Définition de catalogue.

  2. Dans l’écran Définition de catalogue : Définitions de catégories, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définitions de catégories dans la liste déroulante.

  3. Dans l’écran Définition de catalogue : Définitions de catégories, cliquez sur Nouveau dans la barre d’outils.

  4. Dans l’écran Définitions de catégories : Nouvelle, tapez un nom pour la nouvelle définition de catégorie dans la zone Nom.

  5. Dans la section Propriétés de la catégorie, sélectionnez les propriétés souhaitées pour la nouvelle définition de catégorie dans la liste Propriétés disponibles, puis cliquez sur Ajouter.

    Les propriétés sélectionnées s’affichent dans la zone Propriétés attribuées de la section Propriétés de la catégorie.

  6. Pour changer l’ordre des propriétés, sélectionnez la propriété que vous souhaitez déplacer, puis cliquez sur Monter ou Descendre jusqu’à ce que la propriété se trouve à l’emplacement voulu.

    Définition de catégorie

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  7. Pour enregistrer la nouvelle définition de catégorie et revenir à l’écran Définition de catalogue : Définitions de catégories, cliquez sur Enregistrement et retour dans la barre d’outils.

Après avoir créé vos définitions de propriétés, définitions de produits et définitions de catégories, vous pouvez créer un catalogue et placer des catégories et des produits dans celui-ci. Pour obtenir des instructions, consultez Création d’un catalogue.

Remarque

  • L’ordre dans lequel les propriétés s’affichent dans la zone Propriétés attribuées est également l’ordre dans lequel elles s’afficheront dans le catalogue.

Voir aussi

À propos des catalogues

Création d’un catalogue


Création d'un catalogue

Création d’un catalogue

Vous utilisez le module Éditeur de catalogue pour créer un catalogue. Si vous ne disposez pas de catalogues existants à importer, vous pouvez en créer. Si le schéma de catalogue existant n’est pas suffisant, vous pouvez apporter les modifications nécessaires aux définitions de propriétés, de catégories et de produits existantes avant ou après la création de vos catalogues.

Attention

  • Si vous apportez des modifications au schéma de catalogue, ces modifications affectent également les catalogues existants utilisant ce schéma. Si vous ne souhaitez pas que ces modifications affectent vos catalogues existants, vous devez créer une nouvelle définition (propriété, catégorie ou produit) pour le nouveau catalogue.

Cette section contient les rubriques suivantes :

  • Création d’un catalogue

  • Création d’un catalogue personnalisé

  • Création d’un groupe de catalogues

  • Ajout d’une catégorie à un catalogue

  • Ajout d’un produit à un catalogue

  • Ajout de composants produit à un produit


Création d'un catalogue

Création d’un catalogue

Après que votre administrateur de site ou vous avez créé le schéma de catalogue (définitions de propriétés, définitions de produits et définitions de catégories), vous l’utilisez pour créer un catalogue.

Lorsque vous créez un catalogue, vous devez spécifier la devise de tarification des produits (par exemple, Francs français), l’identificateur unique qui sera utilisé pour identifier les produits dans le catalogue (par exemple, le nom du produit) et l’identificateur unique qui sera utilisé pour identifier les composants produit (par exemple, numéro de référence). Les valeurs de ces propriétés dépendent de votre schéma de catalogue. Par exemple, vous pouvez spécifier dans le schéma de catalogue que l’identificateur unique sera le nom du produit.

Il est supposé dans la procédure suivante que votre développeur de site ou vous avez déjà créé votre schéma de catalogue. Si ce n’est pas le cas, consultez Création d’un schéma de catalogue.

Remarque

  • Si vous échangez ce catalogue avec un fournisseur à l’aide de Microsoft BizTalk Server, vous devez alors spécifier l’identificateur du fournisseur pour ce catalogue.

Pour créer un catalogue

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Nouveau catalogue dans la liste déroulante.

  3. Dans l’écran Catalogue : Nouveau, dans la section Propriétés du catalogue, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom Taper un nom pour le nouveau catalogue. Ce nom doit être unique ; il ne peut pas correspondre à un nom de catalogue existant dans la base de données Commerce Server. Si vous utilisez un nom qui existe déjà dans la base de données, vous recevrez un message d’erreur lorsque vous essaierez d’enregistrer le nom du catalogue.

    Remarque

    • Si vous disposez de plusieurs sites Commerce Server avec des bases de données distinctes stockant les données sur les catalogues et qu’ils partagent le même Data Warehouse, n’affectez pas le même nom aux différents catalogues sur les différents sites. Si deux catalogues portent le même nom, Data Warehouse les traite comme s’il s’agissait d’un seul catalogue.
    Date de début | Taper la date de début pour le catalogue. Cette date n’a aucune incidence sur votre site Web. Cependant, si vous échangez des catalogues avec un partenaire commercial, cette date permet à votre partenaire commercial de connaître la date de début de validité du catalogue.
    Date de fin | Taper la date de début pour le catalogue. Cette date permet à vos partenaires commerciaux de connaître la date de fin de validité du catalogue. Par défaut, il s’agit de la date actuelle plus trois mois. Par exemple, si vous créez le catalogue en décembre, la date de fin de validité du catalogue sera en mars.
    Devise | Taper l’abréviation de la devise, en trois caractères maximum, telle que USD, DM ou FF. La valeur par défaut est USD.
    Unité de mesure de poids | Afficher l’unité de mesure du poids pour les produits de ce catalogue. L’administrateur système spécifie cette valeur lors de la configuration de Commerce Server. Contactez votre administrateur système si cette valeur doit être modifiée.
    Identificateur unique de produit | Sélectionner un identificateur unique dans la liste déroulante. Si les produits ne possèdent pas de composants, il peut s’agir de la référence. Si les produits possèdent des composants, il peut s’agir du Nom ou du Titre, et l’Identificateur unique de composant produit sera alors la référence. La longueur maximale admise pour l’identificateur unique de produit est de 256 caractères.
    Identificateur unique de composant produit | Sélectionner un identificateur unique dans la liste déroulante pour les composants produit. Par exemple, il peut s’agir de la référence ou d’un autre identificateur unique. Si les produits ne possèdent pas de composants, sélectionnez la même propriété que pour l’Identificateur unique de produit. La longueur maximale admise pour l’identificateur unique de composant produit est de 256 caractères.
    Identificateur du fournisseur (Cette propriété est utilisée uniquement conjointement avec BizTalk Server.) Afficher la liste des fournisseurs qui ont été identifiés dans BizDesk Server Messaging Manager, en cliquant sur le bouton de sélection ( ... ). Sélectionner l’identificateur de fournisseur correspondant au fournisseur des produits de votre catalogue. Si vous utilisez BizTalk Server pour envoyer des commandes à des partenaires commerciaux, vous devez renseigner cette zone.

    Commerce Server met automatiquement à jour la liste des fournisseurs chaque fois que l’administrateur système crée un contrat avec un fournisseur à l’aide de BizTalk Server. Si vous ne voyez pas l’identificateur du fournisseur que vous voulez sélectionner, contactez votre administrateur système pour définir un contrat avec ce fournisseur.

    Pour plus d’informations sur BizTalk Server et Biztalk Server Messaging Manager, contactez votre administrateur système.

  4. Pour enregistrer le catalogue et revenir à l’écran Catalogues, cliquez sur Enregistrement et retour dans la barre d’outils.

Maintenant que vous avez créé un catalogue, vous pouvez lui ajouter des produits et des catégories. Pour plus d’informations, consultez Ajout d’une catégorie à un catalogue et Ajout d’un produit à un catalogue.

Voir aussi

À propos des catalogues

Création d’un schéma de catalogue

Ajout d’un produit à un catalogue

Ajout d’une catégorie à un catalogue

Utilisation de BizTalk Server


Création d'un catalogue personnalisé

Création d’un catalogue personnalisé

Vous utilisez le module Éditeur de catalogue pour créer des catalogues personnalisés. Un catalogue personnalisé est utile pour attribuer des prix personnalisés à des catégories spécifiques du catalogue. Par exemple, si vous souhaitez réduire le prix de certains articles pour un groupe d’utilisateurs donné (par exemple les utilisateurs privilégiés) sans pour autant modifier le catalogue de base, vous pouvez créer un catalogue personnalisé. Les catalogues personnalisés permettent de conserver des informations sur les produits et les catégories à un endroit et d’offrir des produits à différents prix selon les utilisateurs.

Après avoir créé un catalogue personnalisé, vous utilisez le module Groupes de catalogues pour l’ajouter à un ou plusieurs groupes de catalogues, puis vous utilisez le module Utilisateurs pour associer ce groupe de catalogues aux utilisateurs ou organisations qui doivent pouvoir consulter ce catalogue.

Remarque

  • Vous ne pouvez ajouter des catégories et des produits à un catalogue personnalisé, ni en retirer.

Pour créer un catalogue personnalisé

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Nouveau catalogue personnalisé dans la liste déroulante.

  3. Dans la boîte de dialogue Nouveau catalogue personnalisé, sélectionnez dans la liste déroulante le catalogue à partir duquel vous souhaitez créer votre catalogue personnalisé, puis cliquez sur OK.

  4. Dans l’écran Catalogue personnalisé - Nouveau, dans la section Propriétés du catalogue personnalisé, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom pour le catalogue personnalisé.
    Catégories | Sélectionner la catégorie à laquelle vous souhaitez appliquer un prix personnalisé.
    Utiliser la tarification personnalisée | Activer la tarification personnalisée.
    Mode de tarification Sélectionner l’un des trois modes de tarification suivants :

    Ajustement en fonction du pourcentage. Pourcentage du prix catalogue auquel le produit doit être vendu.

    Ajustement fixe. Montant duquel le prix catalogue est augmenté ou réduit.

    Prix défini. Prix exact du produit.

    Pour plus d’informations sur ces méthodes de tarification, consultez Tarification des produits.
    Valeur | Taper la valeur. La valeur détermine le pourcentage, l’ajustement ou le prix défini qui doit être appliqué au prix catalogue, selon la Méthode de tarification sélectionnée. Par exemple, si vous sélectionnez Ajustement en fonction du pourcentage et que vous souhaitez appliquer une remise de 10 pour cent, vous devez taper 90. Les articles de votre catalogue personnalisé seront alors vendus à 90 % du prix catalogue.

  5. Pour enregistrer le catalogue personnalisé et revenir à l’écran Catalogues, cliquez sur Enregistrement et retour dans la barre d’outils.

  6. Dans l’écran Éditeur de catalogue, le catalogue personnalisé s’affiche sous le catalogue de base. Cliquez sur la flèche à gauche du catalogue de base pour afficher le catalogue personnalisé.

Maintenant que vous avez créé un catalogue personnalisé, vous pouvez l’ajouter à un ou plusieurs groupes de catalogues. Pour plus d’informations sur l’ajout de catalogues à des groupes de catalogues, consultez Création d’un groupe de catalogues. Pour plus d’informations sur l’association d’un utilisateur à un groupe de catalogues, consultez Ajout d’un utilisateur.

Voir aussi

À propos des catalogues

Création d’un groupe de catalogues

Ajout d’un utilisateur

Tarification des produits

Tarification d’un catalogue personnalisé


Création d'un groupe de catalogues

Création d’un groupe de catalogues

Vous utilisez des groupes de catalogues pour créer des ensembles de catalogues spécifiques, puis attribuez à chaque ensemble un nom unique. Par exemple, si vous disposez d’un programme destiné aux clients fidèles et que vous proposez aux membres de ce programme des remises ou des promotions que vous n’offrez pas au public, vous pouvez créer un groupe de catalogues contenant les catalogues personnalisés, auxquels seuls les membres du programme pourront accéder. Si vous souhaitez proposer à un nombre restreint de clients des produits se trouvant dans différents catalogues, vous pouvez intégrer ces catalogues à un groupe de catalogues spécial auquel seuls ces utilisateurs auront accès. Vous autorisez l’accès des utilisateurs aux groupes de catalogues dans le module Utilisateurs.

Vous n’êtes pas obligé de créer des groupes de catalogues. Les groupes de catalogues n’entraînent aucun changement dans les catalogues individuels.

Pour créer un groupe de catalogues

  1. Dans Catalogues, cliquez sur Groupes de catalogues, puis sur Nouveau dans la barre d’outils.

  2. Dans l’écran Nouveau groupe de catalogues, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom pour le groupe de catalogues.
    Description | Taper une description pour le groupe de catalogues.
    Ajouter tous les catalogues | Faire en sorte que ce groupe de catalogues représente tous les catalogues, même lorsque de nouveaux catalogues sont ajoutés, en activant cette case à cocher. N’activez pas cette case à cocher si vous souhaitez spécifier les catalogues à ajouter à ce groupe de catalogues.
    Catalogues disponibles Sélectionner les catalogues à ajouter au groupe de catalogues. Cliquez ensuite sur Ajouter.

    Les catalogues que vous avez sélectionnés passent de la zone Catalogues disponibles à la zone Catalogues attribués.
    Catalogues attribués | Afficher les catalogues ajoutés à ce groupe de catalogues. Si vous retirez un catalogue de la zone Catalogues attribués, il passe automatiquement dans la zone Catalogues disponibles.

  3. Pour enregistrer le groupe de catalogues et revenir à l’écran Groupes de catalogues, cliquez sur Enregistrement et retour dans la barre d’outils.

Maintenant que vous avez créé un groupe de catalogues, vous pouvez ajouter les utilisateurs qui y auront accès. Pour plus d’informations sur l’ajout d’utilisateurs, consultez Ajout d’un utilisateur.

Voir aussi

À propos des catalogues

Ajout d’un utilisateur

Modification d’un groupe de catalogues

Suppression d’un groupe de catalogues


Ajout d'une catégorie à un catalogue

Ajout d’une catégorie à un catalogue

Vous utilisez le module Éditeur de catalogue pour ajouter une catégorie à un catalogue. Lors de l’ajout de produits à un catalogue, vous serez peut-être amené à ajouter une nouvelle catégorie.

Les noms de catégories doivent être uniques dans chaque catalogue. Si vous avez importé un catalogue au format CSV, vous devez créer les catégories du catalogue et leur attribuer des produits.

Remarque

  • Vous ne pouvez pas ajouter de nouvelles catégories à un catalogue personnalisé.

Pour ajouter une nouvelle catégorie

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue pour lequel vous souhaitez créer une catégorie, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Catégories, cliquez sur Nouveau.

  4. Dans la boîte de dialogue Nouvelle catégorie, sélectionnez la définition de catégorie sur laquelle doit reposer la catégorie, puis cliquez sur Continuer.

  5. Dans l’écran Éditeur de catalogue – <Nom du catalogue> nouvelle (catégorie), effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom Taper un nom pour la nouvelle catégorie. Ce nom est limité à 100 caractères.

    Remarque

    N’utilisez pas de signes < ou >, ni de parenthèses () dans le champ Nom.

    Prix | Taper un prix pour la catégorie. Attribuer des prix à tous les produits de cette catégorie. Pour plus d’informations sur l’attribution de prix directement au produit ou au composant produit, consultez Tarification des produits.
    Possibilité de recherche | Définir cette catégorie comme point de départ d’une recherche avec propriété, en activant cette case à cocher. Si cette case à cocher est activée, la catégorie sera répertoriée sur la page Recherche approfondie du site Web.

    Remarque

    • D’autres zones peuvent s’afficher sur cet écran en fonction de la définition de catégorie sélectionnée.
  6. Pour enregistrer la nouvelle catégorie et en créer une autre, cliquez sur Enregistrer et créer dans la barre d’outils.

    Remarque

  • Dans cet écran, vous pouvez également attribuer des catégories parents et enfants et établir des relations entre catégories. Pour plus d’informations, consultez Création de relations entre catégories et entre produits et Création de hiérarchies de catégories.

Voir aussi

À propos des catalogues

Actualisation et publication d’un catalogue

Tarification des produits

Ajout d’une définition de catégorie


Ajout d'un produit à un catalogue

Ajout d’un produit à un catalogue

Vous utilisez le module Éditeur de catalogue pour ajouter de nouveaux produits aux catalogues existants. Vous ne pouvez cependant pas ajouter de nouveaux produits à un catalogue personnalisé.

Il est supposé dans les instructions suivantes que votre développeur de site ou vous avez déjà créé des définitions de produits pour les produits que vous souhaitez ajouter au catalogue. D’autre part, vous êtes supposé avoir créé un catalogue et y avoir ajouté une ou plusieurs catégories. Si ce n’est pas le cas, consultez Ajout d’une définition de produit, Création d’un catalogue et Ajout d’une catégorie à un catalogue.

Pour ajouter un nouveau produit à un catalogue

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue auquel vous souhaitez ajouter un nouveau produit, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Produits, cliquez sur Nouveau.

  4. Dans la boîte de dialogue Nouveau produit, sélectionnez la définition de produit souhaitée pour ce produit, puis cliquez sur OK.

    Remarque

    • Les options disponibles dans la section Propriétés du produit dépendent des critères définis et du type de produit ajouté.
  5. Dans l’écran Éditeur de catalogue – <Nom du catalogue> nouveau (produit), dans la section Propriétés du produit, entrez les informations pour les propriétés disponibles.

  6. Dans l’écran Éditeur de catalogue - <Nom du catalogue> (produit), dans la section Composant produit, cliquez sur Nouveau, puis entrez les informations pour les propriétés disponibles.

  7. Dans l’écran Éditeur de catalogue - <Nom du catalogue> nouveau (produit), dans la section Catégories attribuées du produit, effectuez les opérations suivantes :
    Utilisez ceci Pour faire cela
    Catégories disponibles Sélectionner la catégorie à laquelle vous désirez attribuer le produit, puis cliquer sur Ajouter.

    Si vous voulez supprimer une catégorie attribuée, cliquez sur Supprimer.

    Catégories attribuées Sélectionner la catégorie attribuée, puis cliquer sur Modifier pour modifier la catégorie.

    Cliquer sur Nouvelle pour créer une nouvelle catégorie.
    Catégorie de tarification Sélectionner la catégorie dont la tarification sera appliquée au produit, puis cliquer sur Définir la tarification.

    Pour effacer la tarification de la catégorie sélectionnée, cliquer sur Effacer la tarification.

  8. Dans la section Relations entre des familles de produits, cliquez sur Nouveau, puis effectuez les opérations suivantes :

    Utilisez ceci | Pour faire cela
    Relation | Taper un nom pour la relation.
    Élément | Afficher la boîte de dialogue Sélecteur de produits en cliquant sur le bouton de sélection […].

    Remarque

    • Si vous créez un produit qui contiendra des composants produit, le prix spécifié ici sera utilisé comme prix par défaut de chaque composant que vous ajouterez. Au moment de la création d’un composant produit, vous pourrez remplacer cette valeur par défaut par un prix différent. Pour plus d’informations sur l’ajout de composants produit, consultez Ajout de composants produit à un produit. Pour plus d’informations sur la tarification des produits, consultez Tarification des produits.

Voir aussi

À propos des catalogues

Ajout de relations entre produits

Personnalisation des modes de livraison


Ajout de composants produit à un produit

Vous pouvez attribuer des composants produit aux produits de votre catalogue. Pour un t-shirt par exemple, les composants produit peuvent inclure la couleur et la taille. Dans ce cas, un t-shirt bleu de taille Large serait un composant de la famille de produits T-shirt. Un t-shirt bleu de taille Small serait un autre composant.

Chaque composant produit doit avoir un identificateur unique. Pour plus d’informations sur l’ajout d’un identificateur unique à un composant produit, consultez Création d’un catalogue.

Pour ajouter des composants produit à un produit

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue auquel vous souhaitez ajouter des composants produit, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Éditeur de catalogue - <Nom du catalogue>, dans la section Produits, sélectionnez le produit auquel vous souhaitez ajouter des composants produit, puis cliquez sur Modifier.

  4. Dans l’écran Éditeur de catalogue - <Nom du catalogue> (produit), dans la section Composants produit, cliquez sur Nouveau.

  5. Dans la section Composants produit, tapez le prix du produit dans la zone Prix du composant.

  6. Entrez les propriétés dans les différentes zones (sans oublier d’entrer une valeur unique pour la propriété relative à l’identificateur unique, telle que Référence), puis cliquez sur Terminé.

    Les informations sur le composant produit s’affichent dans le tableau Composants produit.

  7. Pour enregistrer les modifications et revenir à l’écran Catalogues, cliquez sur Enregistrement et retour dans la barre d’outils.

Voir aussi

À propos des catalogues

Pour créer une relation entre produits

Tarification des produits


Tarification des produits

Vous utilisez le module Éditeur de catalogue pour tarifer les produits de votre catalogue. Vous pouvez définir le prix d’un produit d’un catalogue à l’aide de l’une des trois méthodes suivantes : tarification directe, tarification indirecte et tarification personnalisée.

  • Tarification directe. Vous définissez le prix d’un produit dans le produit lui-même. Vous pouvez le faire lors de la création du produit, mais vous pouvez également modifier un produit existant pour changer son prix. Pour plus d’informations sur la tarification directe des produits, consultez Tarification d’un produit.

  • Tarification indirecte. Le prix est déterminé par son association avec une catégorie de tarification spécifique. Si un produit est associé à une catégorie de tarification, le prix indiqué sur le produit est remplacé par le prix défini dans cette catégorie. Le prix d’origine du produit est restauré lorsqu’il n’est plus associé avec cette catégorie de tarification particulière. La tarification indirecte est généralement utilisée lorsque vous voulez tarifer un groupe de produits de la même manière, par exemple, pour créer une catégorie spéciale où tous les produits coûtent 11,90 FF. Pour tarifer indirectement des produits, consultez Tarification au niveau d’un composant produit et Tarification des produits dans une catégorie.

  • Tarification personnalisée. Dans un catalogue personnalisé, vous pouvez appliquer un modificateur de prix à une catégorie. Il existe trois types de tarifications personnalisées que vous pouvez appliquer aux catégories d’un catalogue personnalisé :
    • Ajustement en fonction du pourcentage. Spécifie le pourcentage du prix catalogue auquel le produit doit être vendu. Par exemple, pour appliquer une remise de 10 pour cent, vous devez taper 90, indiquant ainsi que le produit doit être vendu à 90 pour cent du prix indiqué dans le catalogue.

    • Ajustement fixe. Spécifie le montant exact à ajouter ou à retrancher par rapport au prix du catalogue. Par exemple, pour baisser le prix de 12 FF, vous devez taper –12 pour indiquer que le produit doit être vendu 12 FF de moins. Pour augmenter le prix de 12 FF, tapez 12 pour indiquer que le produit doit être vendu 12 FF de plus.

    • Prix défini. Spécifie le prix exact du produit. Par exemple, le produit est vendu a exactement 60 FF. Ce prix remplace le prix spécifié dans le produit lui-même.

    Pour plus d’informations sur la tarification personnalisée des produits de votre catalogue, consultez Tarification d’un catalogue personnalisé.

Le modificateur de prix spécifié dans chaque catégorie s’applique à tous les produits de chacune des catégories. Si un produit appartient à deux catégories appliquant des modificateurs de prix différents, le prix du produit ne sera pas modifié et un message d’avertissement sera écrit dans le journal Applications de l’Observateur d’événements pour rendre compte de ce conflit.

Pour appliquer une remise au prix d’un produit, vous créez un élément de la campagne de remise. Pour plus d’informations sur l’application de remises à des produits, consultez Création d’un élément de la campagne de remise.

Cette section contient les rubriques suivantes :

  • Tarification d’un produit

  • Tarification au niveau d’un composant produit

  • Tarification des produits dans une catégorie

  • Tarification d’un catalogue personnalisé


#Tarification d'un produit

Tarification d’un produit

Vous définissez les prix des produits au moment de la création des propriétés des produits. Vous pouvez néanmoins modifier le prix de vos produits dès que vous recevez une notification de changement de prix. Par exemple, si le prix d’une veste en cuir noir est passé de 2 394 FF à 2 574 FF, vous pouvez apporter cette modification dans les propriétés du produit.

Remarque

  • Pour modifier temporairement le prix d’un produit pour une occasion spéciale, vous pouvez appliquer une remise à ce produit. Une remise peut être définie pour une période de temps spécifique ou pour un groupe restreint d’utilisateurs. Pour plus d’informations sur la définition de remises, consultez Application d’une remise sur le prix des produits.

Pour tarifer un produit

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue contenant le produit que vous souhaitez tarifer, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Produits, sélectionnez le produit que vous souhaitez tarifer dans le tableau des produits, puis cliquez sur Modifier.

  4. Dans l’écran Éditeur de catalogue - <Nom du catalogue> (produit), dans la section Propriétés du produit, tapez un nouveau prix pour le produit dans la zone Prix.

  5. Pour enregistrer vos modifications et revenir à l’écran Catalogue, cliquez sur Enregistrement et retour dans la barre d’outils.

Voir aussi

Tarification au niveau d’un composant produit

Tarification des produits dans une catégorie

Tarification d’un catalogue personnalisé

Création d’un élément de la campagne de remise


Tarification au niveau d'un composant produit

Tarification au niveau d’un composant produit

Vous pouvez définir différents prix pour chaque composant produit d’une famille de produits. De même, vous pouvez modifier le prix des composants de manière à refléter la tendance du marché. Supposons par exemple qu’une famille de produits Vestes contient des composants produit pour les vestes noires et les vestes marron. Vous exécutez un rapport d’analyse des ventes et déterminez que les vestes noires se vendent mieux que les marron. Vous pouvez utiliser ces informations pour baisser le prix des vestes marron au niveau du composant de manière à augmenter leurs ventes, tout en conservant le prix actuel des vestes noires.

Pour attribuer une tarification de niveau composant

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue contenant le produit que vous souhaitez tarifer, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Produits, sélectionnez le produit que vous souhaitez tarifer dans le tableau des produits, puis cliquez sur Modifier.

  4. Dans l’écran Catalogue - <Nom du catalogue> (produit), dans la section Composants produit, sélectionnez le composant que vous souhaitez modifier et changez son prix dans la zone Prix du composant.

  5. Pour enregistrer vos modifications et revenir à l’écran Éditeur de catalogue, cliquez sur Enregistrement et retour dans la barre d’outils.

Voir aussi

Tarification d’un produit

Tarification des produits dans une catégorie

Tarification d’un catalogue personnalisé

Création d’un élément de la campagne de remise


Tarification des produits dans une catégorie

Vous pouvez définir un seul prix pour tous les produits appartenant à la même catégorie. Ceci est utile lorsqu’une gamme de produits utilise la même gamme de prix par exemple. Vous pouvez utiliser cette tarification pour modifier le prix de tout le groupe de produits plutôt que de changer le prix de chaque produit individuel.

Pour attribuer un seul prix à un groupe de produits

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue contenant le produit que vous souhaitez tarifer, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Catégories, sélectionnez la catégorie que vous souhaitez tarifer, puis cliquez sur Modifier.

  4. Dans l’écran Éditeur de catalogue - <Nom du catalogue> - <Nom de catégorie>, dans la section Propriétés de la catégorie, tapez le prix dans la zone Prix.

  5. Cliquez sur Enregistrement et retour pour enregistrer la modification apportée à la catégorie et revenir à l’écran Catalogue - <Nom du catalogue>.

  6. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Produits, sélectionnez un produit dans la catégorie que vous venez de tarifer, puis cliquez sur Modifier.

  7. Dans l’écran Éditeur de catalogue - <Nom du catalogue> (produit), dans la section Catégories attribuées, sélectionnez la catégorie qui définit le prix de ce produit dans la liste de catégories de la zone Catégories attribuées, puis cliquez sur Définir la tarification.

    Le nom de la catégorie que vous avez sélectionnée s’affiche dans la zone Catégorie de tarification, comme illustré dans la figure suivante.

    Définition du tarif de catégorie pour un produit

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  8. Pour enregistrer la tarification et revenir à l’écran Catalogue, cliquez sur Enregistrement et retour dans la barre d’outils.

Remarques

  • Vous devez attribuer une catégorie de tarification à chaque élément de la catégorie à laquelle vous avez attribué un prix au niveau du produit (étapes 6 à 8). Par exemple, si vous avez attribué le prix 149,95 FF à un CD audio lorsque vous avez créé ce produit et que vous souhaitez que ce CD appartienne à la catégorie de budget 120 FF, vous devez attribuer ce CD audio à cette catégorie de budget pour que le nouveau prix prenne effet.

  • Un prix attribué au niveau de la catégorie remplace le prix de tous les produits et composants produit de cette catégorie.

Voir aussi

Tarification d’un produit

Tarification d’un catalogue personnalisé

Création d’un élément de la campagne de remise


Tarification d'un catalogue personnalisé

Tarification d’un catalogue personnalisé

Vous pouvez ajouter une tarification personnalisée à vos catalogues personnalisés. Vous pouvez proposer un prix défini, un ajustement fixe ou un ajustement en fonction du pourcentage à des utilisateurs sélectionnés. Par exemple, vous pouvez offrir des remises aux clients fréquents ou sur des marchandises saisonnières. Vous pouvez modifier le prix uniquement au niveau de la catégorie. Vous ne pouvez pas modifier le prix au niveau du produit ou d’un composant produit pour un catalogue personnalisé.

Il est supposé dans cette procédure que vous avez déjà créé un catalogue personnalisé. Si ce n’est pas le cas, consultez Création d’un catalogue personnalisé.

Pour attribuer une tarification à un catalogue personnalisé

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue personnalisé que vous souhaitez tarifer, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Éditeur de catalogue - <Nom du catalogue>, dans la section Tarification personnalisée, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Catégories | Sélectionner la catégorie à laquelle vous souhaitez appliquer un prix personnalisé.
    Utiliser la tarification personnalisée | Activer la tarification personnalisée, en activant cette case à cocher. Si vous désactivez cette case à cocher alors que la catégorie sélectionnée contient déjà une tarification personnalisée, la tarification personnalisée est supprimée.
    Mode de tarification Sélectionner l’un des trois modes de tarification suivants :

    Ajustement en fonction du pourcentage. Le pourcentage du prix catalogue auquel le produit doit être vendu.

    Ajustement fixe. Montant duquel le prix catalogue est augmenté ou réduit.

    Prix défini. Prix exact du produit.
    Valeur | Taper la valeur. La valeur détermine le pourcentage, l’ajustement ou le prix défini qui doit être appliqué au prix catalogue, selon la Méthode de tarification sélectionnée. Par exemple, si vous sélectionnez Ajustement en fonction du pourcentage et que vous souhaitez appliquer une remise de 10 pour cent, vous devez taper 90. Les articles de votre catalogue personnalisé seront alors vendus à 90 pour cent du prix catalogue.

  4. Pour enregistrer vos modifications et revenir à l’écran Catalogues, cliquez sur Enregistrement et retour dans la barre d’outils.

La tarification mise à jour ne sera pas appliquée à votre site Web jusqu’à la publication du catalogue personnalisé. Pour plus d’informations sur la publication de votre catalogue, consultez Actualisation et publication d’un catalogue. Pour plus d’informations sur l’ajout d’utilisateurs, consultez Ajout d’un utilisateur.

Voir aussi

À propos des catalogues

Création d’un catalogue personnalisé

Tarification au niveau d’un composant produit

Tarification d’un produit

Tarification des produits dans une catégorie

Création d’un élément de la campagne de remise


Application d'une remise sur le prix des produits

Application d’une remise sur le prix des produits

Vous pouvez appliquer des remises à des produits individuels, à tous les produits d’une catégorie, ou vous pouvez créer une expression pour appliquer une remise aux produits répondant à des critères spécifiques. Par exemple, vous pouvez créer des remises qui s’appliquent dans les situations suivantes :

  • Le prix du produit est supérieur à 120,00 FF. Il s’agit d’une expression de condition de remise. Ces expressions reposent sur une propriété de produit.

  • L’utilisateur achète 2 unités. Il s’agit d’un élément d’un critère de condition de remise requis.

  • L’utilisateur clique sur une publicité de remise sur la page Sports. Il s’agit de l’élément « clic requis » d’une remise.

  • L’utilisateur est inscrit. Il s’agit d’une expression d’éligibilité de remise. Ces expressions reposent sur les profils utilisateur et les profils de contexte.

Vous ne pouvez pas appliquer plusieurs remises simultanément à un même produit. Un client ne peut bénéficier que d’une remise par produit, ou une condition ne peut s’appliquer qu’à une seule remise. Une fois qu’un produit a été utilisé comme condition ou comme récompense pour une remise, il ne peut l’être à nouveau pour une autre remise.

Pour appliquer une remise sur le prix d’un produit, vous créez un élément de la campagne de remise. Pour plus d’informations sur l’application d’une remise à des produits, consultez Création d’un élément de la campagne de remise. Pour obtenir des informations conceptuelles sur les remises, consultez Campagnes marketing : Publicités, remises et publipostage.


Création de hiérarchies de catégories

Vous utilisez le module Éditeur de catalogue pour créer des hiérarchies de catégories. Les hiérarchies de catégories permettent d’organiser les produits dans votre catalogue et facilitent la navigation dans votre site Web. Vous pouvez attribuer des catégories parents et des catégories enfants et organiser les produits selon une hiérarchie. Par exemple, la catégorie CD peut contenir les catégories enfants Rock, Blues et Classique. Les catégories enfants peuvent elles-mêmes contenir des catégories enfants. Par exemple, la catégorie Rock peut contenir les catégories enfants Pop et Alternatif.

Pour attribuer des catégories parents et enfants

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue contenant les catégories auxquelles vous souhaitez attribuer des catégories parents ou enfants, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Catégorie, sélectionnez la catégorie à laquelle vous souhaitez ajouter des catégories parents ou enfants, puis cliquez sur Modifier.

  4. Dans la section Catégories attribuées, sélectionnez la catégorie que vous souhaitez attribuer en tant qu’enfant dans la zone Catégories enfants disponibles, puis cliquez sur Ajouter.

    Cette catégorie passe de la zone Disponible à la liste Catégories enfants attribuées.

  5. Pour enregistrer les attributions parents et enfants et revenir à l’écran Catalogues, cliquez sur Enregistrement et retour dans la barre d’outils.

    Remarque

    • Vous pouvez également attribuer des catégories enfants à une catégorie enfant et ainsi créer plusieurs niveaux d’imbrication.

Voir aussi

À propos des catalogues

Création de relations entre catégories et entre produits


Création de relations entre catégories et entre produits

Vous utilisez le module Éditeur de catalogue pour créer des relations entre catégories et entre produits. Les catégories et les produits peuvent être associés à d’autres catégories et à d’autres produits. Par exemple, dans une relation entre produits, si un utilisateur achète un film, vous souhaiterez peut-être lui proposer la bande originale de ce film. Il s’agit d’une relation explicite.

Dans une relation entre catégories, vous pouvez avoir une relation entre des catégories. Par exemple, vous pouvez avoir des catégories pour les CD et les Biographies. Si vous avez des CD de compositeurs classiques, vous avez peut-être également des biographies de compositeurs classiques.

Les étapes permettant de créer une relation entre des familles de produits sont identiques à celles permettant de créer des relations entre produits. Toutefois, une relation entre familles de produits est créée pour des produits avec composants.

Remarque

  • Les sites solutions Commerce Server n’affichent pas les relations. Si votre développeur de site a utilisé un site solution pour créer votre site, vous ne pourrez sans doute pas créer des relations entre catégories et entre produits. Pour plus d’informations sur l’affichage des relations sur votre site Web, contactez votre développeur de site.

Pour créer une relation entre catégories

Pour créer une relation entre produits

Pour créer une relation entre catégories

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue dans lequel vous souhaitez créer une relation, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Catégories, sélectionnez la catégorie à laquelle vous souhaitez ajouter une relation, puis cliquez sur Modifier.

  4. Dans l’écran Éditeur de catalogue - <Nom du catalogue> (catégorie), dans la section Relations de la catégorie, cliquez sur Nouveau puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Relation | Taper le nom de la relation.
    Élément | Ouvrir la boîte de dialogue Sélecteur de produits, en cliquant sur le bouton de sélection ( ... ).

  5. Dans la boîte de dialogue Sélecteur de produits, sélectionnez la catégorie avec laquelle vous souhaitez créer une relation dans la liste Catégories, puis cliquez sur OK.

    La catégorie choisie s’affiche dans la zone Élément de la section Relations de la catégorie. Dans la figure qui suit, « Catégorie » apparaît dans la zone Type d’élément pour indiquer qu’il s’agit d’une relation entre catégories.

    Définition d'une relation entre catégories

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

  6. Cliquez sur Accepter pour enregistrer la relation entre catégories.

  7. Pour enregistrer les modifications et revenir à l’écran Catalogue, cliquez sur Enregistrement et retour dans la barre d’outils.

Pour créer une relation entre produits

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue contenant le produit pour lequel vous souhaitez créer une relation, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Produits, sélectionnez le produit auquel vous souhaitez ajouter une relation, puis cliquez sur Modifier.

  4. Dans l’écran Éditeur de catalogue - <Nom du catalogue> (produit), dans la section Relations du produit, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Relation | Taper le nom de la relation.
    Élément | Ouvrir la boîte de dialogue Sélecteur de produits, en cliquant sur le bouton de sélection ( ... ).

  5. Dans la boîte de dialogue Sélecteur de produits, sélectionnez une catégorie dans la liste Catégories, sélectionnez un produit dans la liste Produits dans la catégorie, puis cliquez sur OK.

    La catégorie choisie s’affiche dans la zone Élément de la section Relation du Produit. Produit apparaît dans la zone Type d’élément pour indiquer qu’il s’agit d’une relation entre produits.

  6. Cliquez sur Accepter pour enregistrer la relation.

  7. Pour enregistrer les modifications et revenir à l’écran Éditeur de catalogue - <Nom du catalogue>, cliquez sur Enregistrement et retour dans la barre d’outils.


Actualisation et publication d'un catalogue

Actualisation et publication d’un catalogue

Vous utilisez le module Éditeur de catalogue pour mettre votre site à jour avec de nouvelles informations. Dans la plupart des activités de commerce électronique, ces modifications sont tout d’abord apportées sur un site de test, puis publiées sur un site de production à un moment bien précis. Contactez votre administrateur système pour savoir quand et comment apporter des modifications à votre site de production.

Vous utilisez le module Éditeur de catalogue pour actualiser et publier un catalogue sur votre site Web. Vous devez actualiser et publier votre catalogue dès que vous apportez une quelconque modification, de manière à être sûr que votre site Web la prend en compte.

Pour actualiser et publier vos catalogues

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, cliquez sur Publier un catalogue dans la barre d’outils.

Vos catalogues mis à jour sont publiés sur votre site Web, puis tous les caches de catalogues sont actualisés.


Envoi d'un catalogue à un partenaire commercial

Envoi d’un catalogue à un partenaire commercial

Vous utilisez le module Éditeur de catalogue pour envoyer un catalogue à un partenaire commercial. Les partenaires commerciaux sont configurés à l’aide BizTalk Messaging Manager. Ils doivent être configurés avant de pouvoir leur envoyer un catalogue. Pour plus d’informations sur la configuration de votre site pour envoyer des catalogues aux partenaires commerciaux, contactez votre administrateur système.

Pour envoyer un catalogue à un partenaire commercial

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue que vous souhaitez envoyer, puis cliquez sur Envoyer dans la barre d’outils.

  3. Dans la boîte de dialogue Sélectionner le fournisseur, sélectionnez les partenaires commerciaux auxquels envoyer le catalogue, puis cliquez sur OK.

Voir aussi

Utilisation de BizTalk Server

Exportation d’un catalogue


Exportation d'un catalogue

Exportation d’un catalogue

Vous pouvez exporter un catalogue vers un chemin identifié ou un dossier partagé appelé CommerceCatalogs sur l’ordinateur sur lequel Commerce Server est installé. L’exportation d’un catalogue peut rendre ce dernier portable. Par exemple, vous pouvez partager votre catalogue avec votre partenaire commercial ou sous-traiter le développement et la maintenance de vos catalogues.

Pour exporter un catalogue, vous devez avoir accès à un dossier partagé sur l’ordinateur Commerce Server. Contactez votre administrateur système pour configurer un dossier partagé.

Les catalogues peuvent être exportés au format XML (Extensible Markup Language) ou CSV (comma-separated value).

Pour exporter un catalogue

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue que vous souhaitez exporter, puis cliquez sur Exporter dans la barre d’outils.

  3. Sélectionnez le format XML ou CSV dans la liste déroulante pour l’exportation du catalogue.

  4. Dans la boîte de dialogue Exporter le catalogue, tapez dans la zone Exporter le fichier le chemin complet et le nom de fichier d’un catalogue dans lequel le serveur peut écrire (par exemple, C:\CatalogsforBusiness\SportsCatalog.xml), puis cliquez sur Continuer.

    Si vous exportez le catalogue vers le dossier partagé CommerceCatalogs dans lequel Commerce Server est installé, vous n’avez pas besoin de spécifier le chemin complet. Par exemple, vous pouvez taper SportsCatalogs.xml.

Ce catalogue est exporté à l’emplacement spécifié, depuis lequel vous pouvez le copier et l’utiliser ailleurs.

Voir aussi

À propos des catalogues

Envoi d’un catalogue à un partenaire commercial

Importation d’un catalogue


Gestion d'un schéma de catalogue

Gestion d’un schéma de catalogue

Au fur et à mesure de l’évolution de vos besoins, vous serez peut-être amené à modifier votre schéma de catalogue. Vous pouvez ajouter des définitions de propriétés, modifier des définitions de propriétés existantes ou supprimer des définitions de propriétés dont vous n’avez plus besoin. Vous pouvez également modifier ou ajouter de nouvelles définitions de produits et de catalogues.

Si vous modifiez le schéma de catalogue, vos modifications peuvent affecter des catégories et des produits existants associés aux définitions de propriétés que vous modifiez ou supprimez. Par exemple, si vous ajoutez un code fournisseur à la définition de produit CD, toutes les instances de produits utilisant cette définition de produit afficheront une zone pour le code fournisseur.

Cette section contient les rubriques suivantes :

  • Recherche et affichage d’un schéma de catalogue

  • Modification d’un schéma de catalogue

  • Copie d’un schéma de catalogue

  • Suppression d’un schéma de catalogue


Recherche et affichage d'un schéma de catalogue

Recherche et affichage d’un schéma de catalogue

Vous utilisez le module Définition de catalogue pour rechercher et afficher des définitions de propriétés, des définitions de catégories et des définitions de produits.

Pour rechercher une définition de propriété

Pour afficher une liste des définitions de propriétés

Pour afficher une liste des définitions de catégories

Pour afficher une liste des définitions de produits

Pour rechercher une définition de propriété

  1. Dans Catalogues, cliquez sur Définition de catalogue.

  2. Dans l’écran Définition de catalogue : Définitions de catégories, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définitions de propriétés dans la liste déroulante.

  3. Dans l’écran Définition de catalogue : Définitions de propriétés, cliquez sur Rechercher pour afficher la zone Rechercher.

  4. Dans la zone Rechercher, sélectionnez la caractéristique de la définition de propriété dans la liste déroulante et effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom (ou une partie du nom) de la propriété.
    Type | Sélectionner le type de propriété dans la liste déroulante.
    Affecter à tous les types de produits | Sélectionner Oui ou Non dans la liste déroulante. Si vous sélectionnez Oui, la recherche sera effectuée uniquement sur les propriétés communes à tous les types de produits.
    Toutes les définitions | Rechercher sur toutes les définitions existantes.

    Remarque

    • Si vous sélectionnez Toutes les définitions, l’option Rechercher uniquement dans la liste ci-dessous est désactivée, tous les filtres sont supprimés et toutes les définitions sont vérifiées.
  5. Cliquez sur Rechercher.

    Les résultats de votre recherche s’affichent dans une zone de liste sous la zone Rechercher.

Pour afficher une liste des définitions de propriétés

  1. Dans Catalogues, cliquez sur Définition de catalogue.

  2. Dans l’écran Définition de catalogue : Définitions de catégories, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définitions de propriétés pour afficher l’écran Définition de catalogue : Définitions de propriétés.

    Cet écran contient la liste de toutes les définitions de propriétés de votre catalogue (par ordre alphabétique) et de leur type de données.

Pour afficher une liste des définitions de catégories

  • Dans Catalogues, cliquez sur Définition de catalogue pour afficher l’écran Définition de catalogue : Définitions de catégories.

    Cet écran contient la liste des toutes les définitions de catégories de votre catalogue.

Pour afficher une liste des définitions de produits

  1. Dans Catalogues, cliquez sur Définition de catalogue.

  2. Dans l’écran Définition de catalogue : Définitions catégories, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définitions de produits pour afficher l’écran Définition de catalogue : Définitions de produits.

    Cet écran contient la liste des toutes les définitions de produits de votre catalogue.


Modification d'un schéma de catalogue

Modification d’un schéma de catalogue

Vous utilisez le module Définition de catalogue pour modifier votre schéma de catalogue. Vous pouvez le faire si vous créez un catalogue ou mettez à jour un catalogue existant. Si vous modifiez le schéma pour un nouveau catalogue, vous devez apporter vos modifications avant d’ajouter des produits et des catégories à ce catalogue.

Vous pouvez modifier le schéma après avoir rempli le catalogue de produits et de catégories, mais ces modifications risquent d’affecter le catalogue qui s’affiche sur votre site Web. Dans la plupart des organisations, la création du schéma du catalogue est confiée à une personne familiarisée avec les concepts de base de données.

Pour modifier une définition de catégorie

Pour modifier une définition de produit

Pour modifier une définition de propriété

Remarque

  • Vous ne pouvez pas changer le nom ni le type de propriété dans un schéma de catalogue. Vous pouvez supprimer la propriété, puis la rajouter en utilisant un nouveau nom et un nouveau type.

Pour modifier une définition de catégorie

  1. Dans Catalogues, cliquez sur Définition de catalogue.

  2. Dans l’écran Définition de catalogue : Définitions de catégories, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définitions de catégories dans la liste déroulante.

  3. Sélectionnez la catégorie que vous souhaitez modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  4. Dans l’écran Définitions de catégories, dans la section Propriétés de la catégorie, sélectionnez la propriété que vous souhaitez modifier dans la zone Propriétés attribuées, puis effectuez l’une des opérations suivantes :
    • Pour ajouter une propriété à une définition de catégorie, sélectionnez la propriété à ajouter dans la zone Propriétés disponibles, puis cliquez sur Ajouter. Vous pouvez créer une propriété en cliquant sur Nouveau si la propriété n’existe pas.

    • Pour supprimer une propriété d’une définition de catégorie, sélectionnez la propriété à supprimer dans la zone Propriétés attribuées, puis cliquez sur Supprimer.

    • Pour changer l’ordre des propriétés attribuées à une catégorie, sélectionnez la propriété que vous souhaitez déplacer dans la zone Propriétés attribuées, puis cliquez sur Monter ou Descendre.
  5. Pour enregistrer vos modifications et revenir à l’écran Définition de catalogue : Définitions de catégories, cliquez sur Enregistrement et retour dans la barre d’outils.

Pour modifier une définition de produit

  1. Dans Catalogues, cliquez sur Définition de catalogue.

  2. Dans l’écran Définition de catalogue : Définitions de catégories, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définitions de produits dans la liste déroulante.

  3. Sélectionnez la définition de produit que vous souhaitez modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  4. Dans l’écran Définition de catalogue : Définitions de produits, dans la section Propriétés du produit, sélectionnez la propriété que vous souhaitez modifier dans la zone Propriétés attribuées, puis effectuez l’une des opérations suivantes :
    • Pour ajouter une propriété à une définition de produit, sélectionnez la propriété à ajouter dans la zone Propriétés disponibles, puis cliquez sur Ajouter. Vous pouvez créer une propriété en cliquant sur Nouvelle si la propriété n’existe pas.

    • Pour supprimer une propriété d’une définition de produit, sélectionnez la propriété à supprimer dans la zone Propriétés attribuées, puis cliquez sur Supprimer.

    • Pour changer l’ordre des propriétés attribuées à un produit, sélectionnez la propriété que vous souhaitez déplacer dans la zone Propriétés attribuées, puis cliquez sur Monter ou Descendre.
  5. Pour enregistrer vos modifications et revenir à l’écran Définition de catalogue, cliquez sur Enregistrement et retour dans la barre d’outils.

Pour modifier une définition de propriété

  1. Dans Catalogues, cliquez sur Définition de catalogue.

  2. Dans l’écran Définition de catalogue, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définition de propriété dans la liste déroulante.

  3. Dans l’écran Définitions de propriétés, sélectionnez la propriété que vous souhaitez modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  4. Dans l’écran Définitions de propriétés - <Nom de la propriété>, effectuez les opérations suivantes :
    Utilisez ceci | Pour le type de propriété | Pour faire cela
    Nom | Tous | Il est impossible de modifier cette propriété.
    Afficher sur le site | Tous | Afficher la propriété spécifiée sur le site Web afin que les utilisateurs la voient, en activant cette case à cocher.
    Nom complet | Tous | Taper le nom qui sera affiché sur le site Web pour cette propriété. Par exemple, pour la propriété « CouleurChemise », vous pouvez choisir le nom « Couleur ».
    Possibilité de recherche en texte libre Texte, choix multiple, fichier Appliquer la fonction de recherche en texte libre dans votre catalogue aux valeurs stockées dans cette propriété, en activant cette case à cocher.

    Lorsque vous sélectionnez l’option Possibilité de recherche en texte libre, la définition de propriété est ajoutée à l’index intégral du catalogue. Vous devez mettre à jour l’index de texte intégral après avoir modifié des éléments de vos catalogues qui sont marqués comme pouvant faire l’objet d’une recherche. Pour plus d’informations sur la mise à jour de l’index de texte intégral, consultez Actualisation et publication d’un catalogue.
    Possibilité de recherche avec propriété | Tous | Utiliser cette propriété dans les recherches avec propriété, en activant cette case à cocher. Une recherche avec propriété permet aux utilisateurs de sélectionner les valeurs de leur choix pour les aider à rechercher des produits particuliers.
    Longueur minimale | Texte | Taper le nombre définissant la longueur minimale de la valeur pour ce type de propriété. La longueur minimale par défaut est de zéro (0) caractère. Si vous spécifiez une longueur différente de zéro, cette propriété devient une propriété requise pour une définition de catégorie ou de produit.
    Longueur maximale | Texte | Taper le nombre définissant la longueur maximale de la valeur pour ce type de propriété. La longueur maximale autorisée est de 3 600 caractères.
    Valeur minimale | Nombre, décimal, monnaie/devise | Taper le nombre définissant la valeur minimale pour cette propriété. La valeur minimale par défaut est zéro (0).
    Valeur maximale | Nombre, décimal, monnaie/devise | Taper le nombre définissant la valeur maximale pour ce type de propriété. Par exemple, pour ajouter une propriété pour la monnaie, entrez un nombre décimal et indiquez dans la partie décimale le nombre de chiffres pouvant s’adapter à la valeur monétaire la plus élevée à appliquer à un produit.
    Date au plus tôt | Date/Heure | Taper la date correspondant à la date au plus tôt qui doit être associée à la propriété. Par exemple, la date à laquelle les utilisateurs peuvent commander un nouvel enregistrement au plus tôt.
    Heure au plus tôt | Date/Heure | Taper l’heure au format 00:00 correspondant à l’heure au plus tôt qui doit être associée à la propriété. Par exemple, une heure de début.
    Date au plus tard | Date/Heure | Taper la date correspondant à la date au plus tard qui doit être associée à la propriété. Par exemple, la date à laquelle les utilisateurs peuvent commander un produit en promotion au plus tard.
    Heure au plus tard | Date/Heure | Taper l’heure au format 00:00 correspondant à l’heure au plus tard qui doit être associée à la propriété. Par exemple, une heure d’expiration.
    Valeur par défaut | Texte, nombre, décimal, monnaie/devise, date/heure, choix multiple | Taper la valeur par défaut pour le type de propriété. Cette valeur varie en fonction du type de propriété ajouté.
    Attribuer à tous les types de produits | Tous | Attribuer la propriété à tous les types de produits. Faites-le pour les propriétés de produits génériques, telles que le nom, la description ou le volume.
    Exporter vers Data Warehouse | Tous | Exporter la propriété vers Data Warehouse. L’exportation vers Data Warehouse rend les données disponibles à des fins de création de rapports.
    Afficher dans la liste de produits | Tous | Afficher cette propriété dans la liste de produits.

  5. Pour enregistrer vos modifications et revenir à l’écran Définition de catalogue, cliquez sur Enregistrement et retour dans la barre d’outils.


Copie d'un schéma de catalogue

Copie d’un schéma de catalogue

Vous utilisez le module Définition de catalogue pour copier une définition de propriété, une définition de produit ou une définition de catégorie existante. Par exemple, vous pouvez copier une définition pour créer une autre définition similaire.

Pour copier une définition de catégorie

Pour copier une définition de produit

Pour copier une définition de propriété

Pour copier une définition de catégorie

  1. Dans Catalogues, cliquez sur Définition de catalogue.

  2. Dans l’écran Définition de catalogue : Définitions de catégories, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définitions de catégories dans la liste déroulante.

  3. Dans l’écran Définition de catalogue : Définitions de catégories, sélectionnez la catégorie que vous souhaitez copier, puis cliquez sur Copier dans la barre d’outils.

  4. Dans l’écran Définition de catégorie : Nouvelle, dans la zone Nom, tapez un nom pour la nouvelle définition de catégorie. Ce nom est limité à 128 caractères.

  5. Modifiez les propriétés dans la zone Propriétés attribuées si vous souhaitez modifier les propriétés de catégorie pour la nouvelle définition de catégorie.

  6. Pour enregistrer la nouvelle définition de catégorie et revenir à l’écran Définition de catalogue : Définitions de catégories, cliquez sur Enregistrement et retour dans la barre d’outils.

Pour copier une définition de produit

  1. Dans Catalogues, cliquez sur Définition de catalogue.

  2. Dans l’écran Définition de catalogue : Définitions de catégories, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définitions de produits dans la liste déroulante.

  3. Dans l’écran Définition de catalogue : Définitions de produits, sélectionnez la définition de produit que vous souhaitez copier, puis cliquez sur Copier dans la barre d’outils.

  4. Dans la section Propriétés de la définition de produit, dans la zone Nom, tapez le nom de la nouvelle définition de produit. Ce nom est limité à 128 caractères.

  5. Modifiez la zone Propriétés attribuées si vous souhaitez modifier les propriétés de produit pour la nouvelle définition de produit.

  6. Pour enregistrer la nouvelle définition de produit et revenir à l’écran Définition de catalogue : Définitions de produits, cliquez sur Enregistrement et retour dans la barre d’outils.

Pour copier une définition de propriété

  1. Dans Catalogues, cliquez sur Définition de catalogue.

  2. Dans l’écran Définition de catalogue : Définitions de catégories, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définitions de propriétés dans la liste déroulante.

  3. Dans l’écran Définition de catalogue : Définitions de propriétés, sélectionnez la propriété que vous souhaitez copier, puis cliquez sur Copier dans la barre d’outils.

  4. Dans l’écran Définition de propriété : Nouvelle, effectuez les opérations suivantes :
    Utilisez ceci | Pour le type de propriété | Pour faire cela
    Nom Tous Taper un nom pour la propriété.

    Remarque

    Une fois que cette propriété est enregistrée, vous ne pouvez pas changer ce nom.
    Afficher sur le site | Tous | Afficher la propriété spécifiée sur le site Web afin que les utilisateurs la voient, en activant cette case à cocher. Si vous souhaitez garder certaines propriétés privées pour usage interne, n’activez pas cette case à cocher.
    Nom complet | Tous | Taper le nom qui sera affiché sur le site Web pour cette propriété. Par exemple, pour la propriété « CouleurChemise », vous pouvez choisir le nom « Couleur ».
    Possibilité de recherche en texte libre Texte, choix multiple, fichier Appliquer la fonction de recherche en texte libre dans votre catalogue aux valeurs stockées dans cette propriété, en activant cette case à cocher.

    Lorsque vous sélectionnez l’option Possibilité de recherche en texte libre, la définition de propriété est ajoutée à l’index intégral du catalogue. Vous devez mettre à jour l’index de texte intégral après avoir modifié des éléments de vos catalogues qui sont marqués comme pouvant faire l’objet d’une recherche. Pour plus d’informations sur la mise à jour de l’index de texte intégral, consultez Actualisation et publication d’un catalogue.
    Possibilité de recherche avec propriété | Tous | Utiliser cette propriété dans les recherches avec propriété, en activant cette case à cocher. Une recherche avec propriété permet aux utilisateurs de sélectionner les valeurs de leur choix pour les aider à rechercher des produits particuliers.
    Longueur minimale | Texte | Taper le nombre définissant la longueur minimale de la valeur pour ce type de propriété. La longueur minimale par défaut est de zéro (0) caractère. Si vous spécifiez une longueur différente de zéro, cette propriété devient une propriété requise pour la définition de propriété.
    Longueur maximale | Texte | Taper le nombre définissant la longueur maximale de la valeur pour ce type de propriété. La valeur est limitée à 3 600 caractères.
    Valeur minimale | Nombre, décimal, monnaie/devise | Taper le nombre définissant la valeur minimale pour ce type de propriété. La valeur minimale par défaut est zéro (0).
    Valeur maximale | Nombre, décimal, monnaie/devise | Taper le nombre définissant la valeur maximale pour ce type de propriété. Par exemple, pour ajouter une propriété pour la monnaie, entrez un nombre décimal et indiquez dans la partie décimale le nombre de chiffres pouvant s’adapter à la valeur monétaire la plus élevée à appliquer à un produit.
    Date au plus tôt | Date/Heure | Taper la date à laquelle vous voulez que cette propriété soit valide au plus tôt. Par exemple, la date à laquelle les utilisateurs peuvent commander un nouvel enregistrement au plus tôt.
    Heure au plus tôt | Date/Heure | Taper la date à laquelle vous voulez que cette propriété soit valide au plus tôt. Par exemple, une heure de début.
    Date au plus tard | Date/Heure | Taper la date à laquelle vous voulez que cette propriété soit valide au plus tard. Par exemple, la date à laquelle les utilisateurs peuvent commander un produit en promotion au plus tard.
    Heure au plus tard | Date/Heure | Taper la date à laquelle vous voulez que cette propriété soit valide au plus tard. Par exemple, une heure d’expiration.
    Valeur par défaut | Texte, nombre, décimal, monnaie/devise, date/heure, choix multiple | Taper la valeur par défaut pour le type de propriété. Cette valeur varie en fonction du type de propriété ajouté.
    Attribuer à tous les types de produits | Tous | Attribuer la propriété à tous les types de produits.
    Exporter vers Data Warehouse | Tous | Exporter la propriété vers Data Warehouse. L’exportation vers Data Warehouse rend les données disponibles à des fins de création de rapports.
    Afficher dans la liste de produits | Tous | Afficher cette propriété dans la liste de produits.

  5. Pour enregistrer vos modifications et revenir à l’écran Définition de catalogue : Définitions de catégories, cliquez sur Enregistrement et retour dans la barre d’outils.


Suppression d'un schéma de catalogue

Suppression d’un schéma de catalogue

Vous utilisez le module Définition de catalogue pour supprimer des définitions de propriétés, des définitions de produits et des définitions de catégories. Avant de supprimer une définition, vérifiez qu’elle n’est pas utilisée par des propriétés, des produits ou des catégories existants dans vos catalogues. Si vous essayez de supprimer une définition de produit ou de catégorie alors que des produits ou des catégories l’utilisent, vous recevez un message d’avertissement.

Pour supprimer une définition de catégorie

Pour supprimer une définition de produit

Pour supprimer une définition de propriété

Pour supprimer une définition de catégorie

  1. Dans Catalogues, cliquez sur Définition de catalogue.

  2. Dans l’écran Définition de catalogue : Définitions de catégories, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définitions de catégories dans la liste déroulante.

  3. Dans l’écran Définition de catalogue : Définitions de catégories, sélectionnez la définition de catégorie que vous souhaitez supprimer, puis cliquez sur Supprimer dans la barre d’outils.

  4. Dans la boîte de dialogue Confirmer la suppression des définitions de catégories, cliquez sur Oui pour supprimer la définition.

Pour supprimer une définition de produit

  1. Dans Catalogues, cliquez sur Définition de catalogue.

  2. Dans l’écran Définition de catalogue : Définitions de catégories, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définitions de produits dans la liste déroulante.

  3. Dans l’écran Définition de catalogue : Définitions de produits, sélectionnez la définition de produit que vous souhaitez supprimer, puis cliquez sur Supprimer dans la barre d’outils.

  4. Dans la boîte de dialogue Confirmer la suppression des définitions de produits, cliquez sur Oui pour supprimer la définition.

Pour supprimer une définition de propriété

  1. Dans Catalogues, cliquez sur Définition de catalogue.

  2. Dans l’écran Définition de catalogue : Définitions de catégories, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Définitions de propriétés dans la liste déroulante.

  3. Dans l’écran Définition de catalogue : Définitions de propriétés, sélectionnez la définition de catégorie que vous souhaitez supprimer, puis cliquez sur Supprimer dans la barre d’outils.

  4. Dans la boîte de dialogue Confirmer la suppression des définitions de propriétés, cliquez sur Oui pour supprimer la définition.


Gestion des produits, des catégories et des catalogues

Vous utilisez le module Éditeur de catalogue pour visualiser, rechercher, modifier et supprimer des produits, des catégories, des catalogues et des groupes de catalogues existants.

Cette section contient les rubriques suivantes :

  • Affichage d’une liste de catalogues

  • Affichage d’une liste de catégories dans un catalogue

  • Recherche d’éléments dans un catalogue

  • Modification des propriétés d’un catalogue

  • Modification d’une catégorie

  • Modification d’un produit

  • Modification de hiérarchies de catégories

  • Modification de composants produit

  • Modification d’un groupe de catalogues

  • Suppression d’une catégorie d’un catalogue

  • Suppression d’un produit d’un catalogue

  • Suppression d’un catalogue

  • Suppression d’un groupe de catalogues

  • Suppression de composants produit


Affichage d'une liste de catalogues

Affichage d’une liste de catalogues

Vous utilisez le module Éditeur de catalogue pour afficher la liste de tous les catalogues existants. Si vous sélectionnez un catalogue et cliquez sur la flèche à gauche de son nom, vous pouvez afficher les catalogues personnalisés qui ont été créés en utilisant le catalogue sélectionné comme base.

Pour afficher une liste des catalogues existants

  • Dans Catalogues, cliquez sur Éditeur de catalogue.

    L’écran Catalogues s’affiche. Il contient une liste de tous les catalogues existants.


Affichage d'une liste de catégories dans un catalogue

Affichage d’une liste de catégories dans un catalogue

Vous pouvez afficher les catégories et la hiérarchie des catégories d’un catalogue sélectionné. En affichant les associations parents et enfants entre les catégories, vous pouvez déterminer si des catégories supplémentaires sont nécessaires ou si des catégories existantes doivent être modifiées ou supprimées. Par exemple, si vous souhaitez ajouter une catégorie pour les cassettes vidéo liées à la musique, vous pouvez afficher la liste des catégories pour déterminer si cette nouvelle catégorie doit être une catégorie parent ou si elle doit être associée à une catégorie parent existante.

Pour afficher une liste des catégories attribuées à un catalogue

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue contenant les catégories que vous souhaitez afficher, puis cliquez sur Ouvrir dans la barre d’outils.

    L’écran Catalogue - <Nom du catalogue> s’affiche. Toutes les catégories attribuées au catalogue s’affichent dans la section Catégories.


Recherche d'éléments dans un catalogue

Recherche d’éléments dans un catalogue

Vous utilisez le module Éditeur de catalogue pour effectuer une recherche dans un catalogue. Vous pouvez effectuer les recherches suivantes :

  • Recherche de propriétés. Vous pouvez rechercher des propriétés ayant des valeurs spécifiques. Par exemple, Prix < 60 FF et Couleur = Rouge. Par défaut, toutes les propriétés peuvent être utilisées dans les recherches de propriétés.

  • Recherche en texte libre. Lorsque vous ajoutez des définitions de propriétés à votre catalogue, vous sélectionnez Recherche en texte libre pour spécifier qu’elles sont disponibles pour la recherche en texte libre. Dans une recherche en texte libre, toutes les instances de la propriété dans votre catalogue sont extraites. Ces définitions de propriétés sont consignées dans un index. Vous devez mettre à jour l’index de texte intégral après toute modification de vos catalogues marqués comme pouvant faire l’objet d’une recherche. Pour plus d’informations sur la mise à jour de l’index de texte intégral, consultez Actualisation et publication d’un catalogue.

Pour rechercher des produits dans un catalogue par mots-clés

Pour rechercher des produits dans un catalogue par propriétés

Pour rechercher des produits dans un catalogue par mots-clés

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue dans lequel vous souhaitez rechercher des produits, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Produits, sélectionnez Recherche par mots-clés dans la liste déroulante Méthode de recherche.

  4. Dans la zone Mots-clés, tapez le mot-clé à utiliser pour effectuer la recherche, puis cliquez sur Rechercher.

    Les résultats de la recherche par mots-clés s’affichent dans le tableau Produits.

Pour rechercher des produits dans un catalogue par propriétés

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue dans lequel vous souhaitez rechercher des produits, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Produits, sélectionnez Rechercher par propriétés dans la liste déroulante Méthode de recherche, puis cliquez sur Nouvelle.

  4. Dans le tableau Cible basée sur les conditions suivantes, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Sélectionnez une propriété ici | Sélectionner le type de propriété.
    Sélectionnez un opérateur ici | Sélectionner un opérateur de recherche.

  5. Tapez la valeur à rechercher dans la dernière zone de texte.

  6. Cliquez sur Rechercher.

    Les résultats de la recherche s’affichent dans le tableau Produits.

    Recherche de propriétés

    Cliquez sur l'illustration pour l'agrandir ou la réduire.

Voir aussi

Actualisation et publication d’un catalogue


Modification des propriétés d'un catalogue

Modification des propriétés d’un catalogue

Vous utilisez le module Éditeur de catalogue pour modifier les propriétés des catalogues. Par exemple, vous pouvez modifier les informations sur les catégories et les propriétés d’un catalogue, ou bien les dates de début et de fin d’un catalogue spécifique.

Remarque

  • Vous ne pouvez pas modifier le nom d’un catalogue.

Pour modifier les propriétés d’un catalogue

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue que vous souhaitez modifier, puis cliquez sur Ouvrir dans la barre d’outils.

    L’écran Catalogue - <Nom du catalogue> s’affiche. Dans cet écran, vous pouvez modifier n’importe quelle propriété qui n’est pas attribuée par Commerce Server. Pour enregistrer vos modifications et revenir à l’écran Catalogues, cliquez sur Enregistrement et retour dans la barre d’outils.

Après avoir apporté vos modifications, vous devez actualiser et publier votre site Web de manière à ce qu’elles apparaissent sur votre site. Pour plus d’informations sur l’actualisation et la publication de vos modifications, consultez Actualisation et publication d’un catalogue.


Modification d'une catégorie

Modification d’une catégorie

Vous utilisez le module Éditeur de catalogue pour modifier une catégorie existante dans un catalogue. Par exemple, vous pouvez modifier le prix attribué à une catégorie spécifique. Cela affecte la tarification de tous les produits associés à cette catégorie.

Remarque

  • Vous ne pouvez pas modifier le nom d’une catégorie.

Pour modifier une propriété de catégorie

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue dont vous souhaitez modifier une catégorie, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Éditeur de catalogue - <Nom du catalogue>, dans la section Catégories, sélectionnez la catégorie que vous souhaitez modifier dans la liste Catégories, puis cliquez sur Modifier.

  4. Dans l’écran Éditeur de catalogue - <Nom du catalogue> (catégorie), dans la section Propriétés de la catégorie, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Description | Taper la description de la propriété de catégorie.
    Fichier_image | Taper le nom de fichier de l’image utilisée sur le site Web pour cette catégorie.
    Largeur_image | Taper la largeur (en pixels) de l’image.
    Hauteur_image | Taper la hauteur (en pixels) de l’image.
    Prix | Taper le prix de la catégorie.
    Possibilité de recherche | Permettre aux utilisateurs visitant votre site d’effectuer des recherches dans votre catalogue.

  5. Si vous devez modifier les propriétés actuelles de la catégorie, modifiez les valeurs dans la zone Propriétés attribuées.

  6. Pour enregistrer vos modifications et revenir à l’écran Catalogue - <Nom du catalogue>, cliquez sur Enregistrement et retour dans la barre d’outils.

Après avoir apporté vos modifications, vous devez actualiser et publier votre site Web de manière à ce qu’elles apparaissent sur votre site. Pour plus d’informations sur l’actualisation et la publication de vos modifications, consultez Actualisation et publication d’un catalogue.


Modification d'un produit

Modification d’un produit

Vous utilisez le module Éditeur de catalogue pour modifier un produit existant dans un catalogue. Par exemple, si vous souhaitez modifier l’image qui illustre un produit sur votre site Web, vous pouvez modifier le nom du fichier image et ainsi spécifier la nouvelle image.

Remarque

  • Vous ne pouvez pas modifier le nom d’un produit.

Pour modifier un produit

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue que vous souhaitez modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Produits, sélectionnez le produit que vous souhaitez modifier dans la liste Produits, puis cliquez sur Modifier.

  4. Dans l’écran Éditeur de catalogue – <Nom du catalogue> (produit), effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Description | Taper une description pour la propriété du produit.
    Fichier_image | Taper le nom de fichier de l’image utilisée sur le site Web pour ce produit.
    Largeur_image | Taper la largeur (en pixels) de l’image.
    Hauteur_image | Taper la hauteur (en pixels) de l’image.
    Prix | Taper le prix du produit (le cas échéant).

    Remarque

    • Les zones de propriété qui s’affichent dans cet écran dépendent du type de produit que vous avez sélectionné. Dans cet écran, vous pouvez modifier n’importe quelle propriété qui n’est pas en lecture seule et qui n’est pas attribuée par Commerce Server 2000.
  5. Pour enregistrer les modifications et revenir à l’écran Catalogue - <Nom du catalogue>, cliquez sur Enregistrement et retour dans la barre d’outils.

Après avoir apporté vos modifications, vous devez actualiser et publier votre site Web de manière à ce qu’elles apparaissent sur votre site. Pour plus d’informations sur l’actualisation et la publication de vos modifications, consultez Actualisation et publication d’un catalogue.


Modification de hiérarchies de catégories

Vous pouvez modifier une hiérarchie de catégoriesexistante pour un catalogue sélectionné. Si vous avez deux catégories parentsproches et que l’une d’entre elles pourrait logiquement être subordonnée à l’autre, vous pouvez modifier l’attribution de catégorie. Par exemple, si vous avez une catégorie parent appelée Classique et une autre appelée Compositeurs, vous pouvez définir la catégorie Compositeurs comme catégorie enfant de la catégorie Classique.

Pour modifier une hiérarchie de catégories

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue contenant la hiérarchie de catégories que vous souhaitez modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Catégories, sélectionnez la catégorie dont vous souhaitez modifier la hiérarchie, puis cliquez sur Modifier.

  4. Dans l’écran Éditeur de catalogue - <Nom du catalogue> (catégorie), dans la section Catégories attribuées, sélectionnez la catégorie à laquelle vous souhaitez associer cette sous-catégorie dans la liste Catégories.

  5. Pour enregistrer la catégorie modifiée et revenir à l’écran Catalogue - <Nom du catalogue>, cliquez sur Enregistrement et retour dans la barre d’outils.

Après avoir apporté vos modifications, vous devez actualiser et publier votre site Web de manière à ce qu’elles apparaissent sur votre site. Pour plus d’informations sur l’actualisation et la publication de vos modifications, consultez Actualisation et publication d’un catalogue.


Modification de composants produit

Vous utilisez le module Éditeur de catalogue pour modifier des composants produit existant. Par exemple, si vous vendez des t-shirts et que vous souhaitez modifier le numéro de référence, vous pouvez modifier le composant existant pour le t-shirt sélectionné.

Pour modifier un composant produit

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue dans lequel vous souhaitez modifier un composant produit, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Produits, sélectionnez le produit pour lequel vous souhaitez modifier un composant produit, puis cliquez sur Modifier.

  4. Dans l’écran Éditeur de catalogue : <Nom du catalogue> (produit), dans la section Composants produit, sélectionnez le composant produit que vous souhaitez modifier dans la zone Composants produit.

    En fonction du type de composant produit que vous modifiez, différentes zones de propriété sont disponibles dans la section Composants produit.

  5. Modifiez les propriétés dans les différentes zones, puis cliquez sur Terminé.

  6. Pour enregistrer vos modifications et revenir à l’écran Catalogue - <Nom du catalogue>, cliquez sur Enregistrement et retour dans la barre d’outils.

Après avoir apporté vos modifications, vous devez actualiser et publier votre site Web de manière à ce qu’elles apparaissent sur votre site. Pour plus d’informations sur l’actualisation et la publication de vos modifications, consultez Actualisation et publication d’un catalogue.

Voir aussi

Suppression de composants produit

Tarification des produits


Modification d'un groupe de catalogues

Modification d’un groupe de catalogues

Vous pouvez modifier des groupes de catalogues existants. En supprimant ou en ajoutant des catalogues à des groupes existants, vous changez les catalogues que les utilisateurs peuvent afficher. Les modifications apportées aux groupes de catalogues n’affectent pas le contenu des catalogues.

Pour modifier un groupe de catalogues

  1. Dans Catalogues, cliquez sur Groupes de catalogues.

  2. Dans l’écran Groupes de catalogues, sélectionnez le groupe de catalogues que vous souhaitez modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Groupes de catalogues, apportez les modifications nécessaires aux propriétés de groupe de catalogues.

  4. Si vous souhaitez supprimer un catalogue de la liste Catalogues attribués, cliquez sur Supprimer.

    Le catalogue est replacé dans la liste Catalogues disponibles.

  5. Pour enregistrer vos modifications et revenir à l’écran Groupes de catalogues, cliquez sur Enregistrement et retour dans la barre d’outils.

Après avoir apporté vos modifications, vous devez actualiser et publier votre site Web de manière à ce qu’elles apparaissent sur votre site. Pour plus d’informations sur l’actualisation et la publication de vos modifications, consultez Actualisation et publication d’un catalogue.


Suppression d'une catégorie d'un catalogue

Suppression d’une catégorie d’un catalogue

Vous utilisez le module Éditeur de catalogue pour supprimer une catégorie d’un catalogue. Lorsque vous supprimez une catégorie, toute catégorie associée à celle-ci, soit par une relation, soit par une hiérarchie, est affectée. Si cette catégorie est associée à des produits par le biais d’une tarification par catégorie, ces produits seront affectés lors de la suppression de la catégorie. Par exemple, si vous souhaitez supprimer une catégorie nommée « 300 FF juste » et que 15 CD utilisent cette catégorie comme catégorie de tarification, ces CD reprendront le prix que vous leur avez attribué au niveau du produit une fois la catégorie supprimée.

Pour supprimer une catégorie d’un catalogue

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue dans lequel vous souhaitez supprimer une catégorie, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Catégories, sélectionnez la catégorie que vous souhaitez supprimer, puis cliquez sur Supprimer.

    Attention

    • Lorsque vous supprimez une catégorie, vous n’êtes pas invité à confirmer votre choix avant que la suppression soit effectuée. Si vous supprimez une catégorie par erreur, vous devrez la rajouter au catalogue.
  4. Pour revenir à l’écran Catalogues, cliquez sur Retour dans la barre d’outils.

Après avoir apporté vos modifications, vous devez actualiser et publier votre site Web de manière à ce qu’elles apparaissent sur votre site. Pour plus d’informations sur l’actualisation et la publication de vos modifications, consultez Actualisation et publication d’un catalogue.

Voir aussi

Ajout d’une catégorie à un catalogue

Modification d’une catégorie


Suppression d'un produit d'un catalogue

Suppression d’un produit d’un catalogue

Vous utilisez le module Éditeur de catalogue pour supprimer un produit d’un catalogue. Par exemple, si un produit de votre catalogue n’est plus disponible en stock et que vous n’avez plus l’intention de vendre ce produit, vous pouvez le supprimer du catalogue.

Remarque

  • Lorsque vous supprimez un produit qui est intégré dans une relation entre produits, cette relation est affectée.

Pour supprimer un produit

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue dans lequel vous souhaitez supprimer un produit, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Produits, sélectionnez le produit que vous souhaitez supprimer dans la liste Produits, puis cliquez sur Supprimer.

    Attention

    • Lorsque vous supprimez un produit, vous n’êtes pas invité à confirmer votre choix avant que la suppression soit effectuée. Si vous supprimez un produit par erreur, vous devrez le rajouter au catalogue.
  4. Pour revenir à l’écran Catalogues, cliquez sur Retour dans la barre d’outils.

Après avoir apporté vos modifications, vous devez actualiser et publier votre site Web de manière à ce qu’elles apparaissent sur votre site. Pour plus d’informations sur l’actualisation et la publication de vos modifications, consultez Actualisation et publication d’un catalogue.

Voir aussi

Ajout d’un produit à un catalogue

Modification d’un produit


Suppression d'un catalogue

Suppression d’un catalogue

Vous utilisez le module Éditeur de catalogue pour supprimer les catalogues obsolètes.

Attention

  • Si un catalogue personnalisé utilise comme base le catalogue que vous souhaitez supprimer, il sera supprimé en même temps que le catalogue de base. Si vous souhaitez conserver ce catalogue personnalisé, vous devez l’exporter, supprimer le catalogue de base, puis réimporter le catalogue personnalisé dans la base de données Commerce Server.

Pour supprimer un catalogue

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue que vous souhaitez supprimer, puis cliquez sur Supprimer dans la barre d’outils.

  3. Dans la boîte de dialogue Confirmer la suppression du catalogue, cliquez sur Oui pour supprimer le catalogue.

Après avoir apporté vos modifications, vous devez actualiser et publier votre site Web de manière à ce qu’elles apparaissent sur votre site. Pour plus d’informations sur l’actualisation et la publication de vos modifications, consultez Actualisation et publication d’un catalogue.

Attention

  • Une fois que vous avez supprimé un catalogue, vous ne pouvez plus le récupérer.

  • Ce catalogue apparaîtra sur le site Web jusqu’à ce que vous mettiez à jour le site.

Voir aussi

Exportation d’un catalogue

Création d’un catalogue

Modification des propriétés d’un catalogue

Modification d’un groupe de catalogues

Modification d’un schéma de catalogue


Suppression d'un groupe de catalogues

Suppression d’un groupe de catalogues

Si vous n’avez plus besoin d’un groupe de catalogues défini, vous pouvez le supprimer. La suppression d’un groupe de catalogues n’affecte pas les catalogues contenus dans ce groupe. Seule l’association est supprimée. Si le groupe de catalogues est associé à des utilisateurs existants, ce groupe n’est plus associé à ces utilisateurs.

Pour supprimer un groupe de catalogues

  1. Dans Catalogues, cliquez sur Groupes de catalogues.

  2. Dans l’écran Groupes de catalogues, sélectionnez le groupe de catalogues que vous souhaitez supprimer, puis cliquez sur Supprimer dans la barre d’outils.

  3. Dans la boîte de dialogue Confirmer la suppression du groupe de catalogues, cliquez sur Oui pour supprimer le groupe.

Après avoir apporté vos modifications, vous devez actualiser et publier votre site Web de manière à ce qu’elles apparaissent sur votre site. Pour plus d’informations sur l’actualisation et la publication de vos modifications, consultez Actualisation et publication d’un catalogue.


Suppression de composants produit

Vous pouvez supprimer des composants produit d’un produit à tout moment.

Pour supprimer un composant produit d’un produit

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue dans lequel vous souhaitez supprimer un composant produit, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Produits, sélectionnez le produit pour lequel vous souhaitez supprimer un composant produit, puis cliquez sur Modifier.

  4. Dans l’écran Éditeur de catalogue - <Nom du catalogue> (produit), dans la section Composants produit, sélectionnez le composant produit que vous souhaitez supprimer dans la liste Composants produit, puis cliquez sur Supprimer.

    Le composant produit est supprimé du tableau Composant produit.

    Attention

    • Lorsque vous supprimez un composant produit d’un catalogue, vous n’êtes pas invité à confirmer votre choix avant que la suppression soit effectuée. Si vous supprimez un composant produit par erreur, vous devrez le rajouter au catalogue.
  5. Pour enregistrer la suppression et revenir à l’écran Catalogue - <Nom du catalogue>, cliquez sur Enregistrement et retour dans la barre d’outils.

Après avoir apporté vos modifications, vous devez actualiser et publier votre site Web de manière à ce qu’elles apparaissent sur votre site. Pour plus d’informations sur l’actualisation et la publication de vos modifications, consultez Actualisation et publication d’un catalogue.


Gestion des relations entre catégories et entre produits

Les catégories et les produits peuvent être associés à d’autres catégories et à d’autres produits. Par exemple, dans une relation entre produits, si un utilisateur achète un film, il se peut qu’il souhaite également se procurer la bande originale de ce film. Dans une relation entre catégories, vous pouvez avoir une relation entre des catégories de CD et de Biographies. Si vous avez des CD de compositeurs classiques, vous avez peut-être également des biographies de compositeurs classiques.

Vous pouvez modifier ou supprimer des relations existantes entre produits ou entre catégories. Si vous souhaitez ajouter une nouvelle version d’une bande originale de film, vous pouvez modifier les relations entre produits pour la bande originale existante de manière à proposer aux utilisateurs une autre version de cette bande originale. Si vous souhaitez réorganiser les produits sur votre site Web, vous pouvez supprimer plusieurs relations entre produits.

Cette section contient les rubriques suivantes :

  • Modification d’une relation entre catégories

  • Modification d’une relation entre produits

  • Suppression d’une relation entre catégories

  • Suppression d’une relation entre produits


Modification d'une relation entre catégories

Modification d’une relation entre catégories

Vous pouvez modifier des relations entre catégories dès que la relation est modifiée. Par exemple, s’il existe une relation entre les catégories Musique classique et Biographies des compositeurs classiques, vous souhaiterez peut-être modifier cette relation et indiquer une relation entre la Musique classique et les Documentaires si vous décidez de ne plus conserver les biographies, mais de conserver des documents sur les compositeurs classiques.

Pour modifier une relation entre catégories

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue dans lequel vous souhaitez modifier une relation, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Catégorie, sélectionnez la catégorie pour laquelle vous souhaitez modifier une relation, puis cliquez sur Modifier.

  4. Dans l’écran Éditeur de catalogue - <Nom du catalogue> (catégorie), entrez les modifications nécessaires pour la relation entre catégories dans la section Relations de la catégorie, puis cliquez sur Accepter pour enregistrer la relation.

  5. Pour enregistrer vos modifications et revenir à l’écran Catalogue - <Nom du catalogue>, cliquez sur Enregistrement et retour dans la barre d’outils.

Après avoir apporté vos modifications, vous devez actualiser et publier votre site Web de manière à ce qu’elles apparaissent sur votre site. Pour plus d’informations sur l’actualisation et la publication de vos modifications, consultez Actualisation et publication d’un catalogue.


Modification d'une relation entre produits

Modification d’une relation entre produits

Vous pouvez modifier des relations entre produits dès que la relation est modifiée. Par exemple, si vous avez créé une relation entre produits pour un film et la bande originale de ce film, et que vous souhaitez ajouter une nouvelle version de cette bande originale, vous devez modifier la relation entre produits.

Pour modifier une relation entre produits

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue dans lequel vous souhaitez modifier une relation entre produits, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Produit, sélectionnez le produit pour lequel vous souhaitez modifier une relation, puis cliquez sur Modifier.

  4. Dans l’écran Éditeur de catalogue - <Nom du catalogue> (produit), entrez les modifications nécessaires pour la relation entre produits dans la section Relations du produit, puis cliquez sur Accepter pour enregistrer la relation.

  5. Pour enregistrer vos modifications et revenir à l’écran Éditeur de catalogue - <Nom du catalogue>, cliquez sur Enregistrement et retour dans la barre d’outils.

Après avoir apporté vos modifications, vous devez actualiser et publier votre site Web de manière à ce qu’elles apparaissent sur votre site. Pour plus d’informations sur l’actualisation et la publication de vos modifications, consultez Actualisation et publication d’un catalogue.


Suppression d'une relation entre catégories

Suppression d’une relation entre catégories

Vous pouvez supprimer des relations entre catégories à tout moment. Par exemple, si vous avez arrêté la vente d’une catégorie de produits ou si vous souhaitez réorganiser les produits sur votre site Web.

Pour supprimer une relation entre catégories

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue dans lequel vous souhaitez supprimer une relation entre catégories, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Catégories, sélectionnez la catégorie pour laquelle vous souhaitez supprimer une relation, puis cliquez sur Modifier.

  4. Dans l’écran Éditeur de catalogue - <Nom du catalogue> (catégorie), dans la section Relations de la catégorie, sélectionnez la relation que vous souhaitez supprimer, puis cliquez sur Supprimer.

    Attention

    • Lorsque vous supprimez une relation entre catégories, vous n’êtes pas invité à confirmer votre choix. Si vous supprimez une relation par erreur, vous devrez la rajouter au catalogue.

Après avoir apporté vos modifications, vous devez actualiser et publier votre site Web de manière à ce qu’elles apparaissent sur votre site. Pour plus d’informations sur l’actualisation et la publication de vos modifications, consultez Actualisation et publication d’un catalogue.


Suppression d'une relation entre produits

Suppression d’une relation entre produits

Vous pouvez supprimer un produit d’une relation entre produits à tout moment. Par exemple, si vous souhaitez réorganiser les produits sur votre site Web, vous pouvez supprimer plusieurs relations entre produits.

Pour supprimer une relation entre produits

  1. Dans Catalogues, cliquez sur Éditeur de catalogue.

  2. Dans l’écran Catalogues, sélectionnez le catalogue dans lequel vous souhaitez supprimer une relation entre produits, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Catalogue - <Nom du catalogue>, dans la section Produits, sélectionnez la propriété pour laquelle vous souhaitez supprimer une relation, puis cliquez sur Modifier.

  4. Dans l’écran Éditeur de catalogue - <Nom du catalogue> (produit), dans la section Relations du produit, sélectionnez la relation entre produits que vous souhaitez supprimer, puis cliquez sur Supprimer.

    Attention

    • Lorsque vous supprimez une relation entre produits, vous n’êtes pas invité à confirmer votre choix. Si vous supprimez une relation par erreur, vous devrez la rajouter au catalogue.

Après avoir apporté vos modifications, vous devez actualiser et publier votre site Web de manière à ce qu’elles apparaissent sur votre site. Pour plus d’informations sur l’actualisation et la publication de vos modifications, consultez Actualisation et publication d’un catalogue.


Commandes Server>Business Desk

Commandes Business Desk

Les modules Commandes permettent de rechercher dans votre base de données Commerce Server des informations concernant des commandes existantes, ainsi que de supprimer des paniers enregistrés qui ne sont plus utilisés. Par exemple, vous pouvez utiliser les codes de statut de la commande pour savoir où en est une commande dans le contexte général du processus de commande, ce qui vous permet de savoir où une commande est susceptible d’être bloquée ou de rencontrer des problèmes non résolus. Vous pouvez également ajouter des informations concernant les taux des taxes et les modes de livraison, puis mettre à jour ces informations sur votre site Web.

Cette section contient les rubriques suivantes :

  • Déroulement des opérations pour la gestion des commandes. Présente la marche à suivre pour gérer les commandes.

  • À propos des commandes. Décrit les composants constituant une commande.

  • Ajout de codes de statut de la commande. Explique comment ajouter des codes de statut de la commande.

  • Ajout de codes de pays. Explique comment ajouter des codes de pays ou de région.

  • Ajout de codes de département/province. Explique comment ajouter des codes de département ou de province.

  • Personnalisation des modes de livraison. Explique les trois modes de livraison inclus dans Microsoft Commerce Server 2000 et comment les personnaliser pour votre site Web.

  • Ajout de taux des taxes. Explique comment ajouter une table et fournit des exemples sur la personnalisation des diverses taxes nationales et régionales.

  • Publication de transactions sur votre site Web. Explique comment publier sur votre site Web des informations sur les transactions, qu’elles soient nouvelles ou modifiées, telles que des commandes modifiées et des nouveaux taux des taxes et modes de livraison.

  • Modification des propriétés des codes de données. Explique comment modifier les propriétés des codes de données.

  • Recherche de paniers. Explique comment consulter et trier les paniers enregistrés.

  • Suppression de paniers. Explique comment supprimer des paniers enregistrés qui ne sont plus utilisés.

  • Recherche et tri des commandes. Explique comment rechercher et trier des commandes.

  • Suppression de commandes. Explique comment supprimer des commandes de votre base de données Commerce Server.

  • Gestion de codes de données et de taux des taxes. Explique comment modifier et supprimer des codes de données et des taux des taxes.


Déroulement des opérations pour la gestion des commandes

La figure suivante illustre un exemple de scénario pour l’ajout de codes de statut de la commande, de codes de pays/région, de codes de département/province, la personnalisation des modes de livraison et l’ajout de taux des taxes.

Diagramme de déroulement des opérations pour la gestion des commandes
Statut de la commande
Personnalisation des modes de livraison
Statut de la commande
Ajout de codes de statut de la commande
Ajout de codes de pays
Ajout de taux de taxes
Publication de transactions sur votre site Web
Ajout de codes de région
Nouvelles commandes
Commandes enregistrées
Paniers
Facturer en fonction du poids
Facturer en fonction de la quantité
Facturer en fonction du sous-total
Statut de la commande
Modes de livraison
Taux de taxes
Publier les transactions

  1. Dans le module Statut de la commande, vous ajoutez des codes de statut de la commande pour garder la trace des commandes passées par les utilisateurs sur votre site Web. N’effectuez cette étape que si les codes de statut de la commande par défaut ne correspondent pas à vos besoins commerciaux.

  2. Dans le module Statut de la commande, vous ajoutez des codes de pays/région qui s’affichent sur votre site Web en tant qu’option de livraison pour vos utilisateurs.

  3. Dans le module Statut de la commande, vous ajoutez des codes de département/province qui s’affichent sur votre site Web en tant qu’option de livraison pour vos utilisateurs.

  4. Dans le module Modes de livraison, vous personnalisez un mode de livraison disponible pour vos utilisateurs sur votre site Web.

  5. Dans le module Taux des taxes, vous ajoutez des taux des taxes.

  6. Dans le module Publier les transactions, vous publiez des modifications sur votre site Web.

Voir aussi

À propos des commandes

Ajout de codes de statut de la commande

Ajout de codes de pays

Ajout de codes de département/province

Personnalisation des modes de livraison


À propos des commandes

Les modules Commandes de Commerce Server Business Desk permettent de consulter des informations concernant le statut des commandes, de gérer les codes de données associés aux commandes, ainsi que de gérer les commandes que les utilisateurs de votre site Web ont passées. Le module Gestionnaire de panier vous permet par exemple de supprimer les paniers abandonnés par les utilisateurs. Le module Commandes vous permet d’ajouter des taux des taxes et de personnaliser vos modes de livraison.

Codes de données

Modes de livraison

Commandes

Paniers abandonnés

Codes de données

Le module Codes de données vous permet d’ajouter des codes qui s’afficheront sur votre site Web et qui vous aideront à garder la trace des commandes passées par les utilisateurs.

Codes de statut de la commande

Vous utilisez les codes de statut de la commande pour savoir où en est une commande dans le contexte général du processus de commande et où une commande est susceptible d’être bloquée ou de rencontrer des problèmes non résolus. Il existe trois codes de statut de la commande par défaut : 4 (Nouvelle commande), 2 (Commande enregistrée) et 1 (Panier).

Une fois que les utilisateurs ont ajouté des éléments à leur panier ou qu’ils ont soumis leurs commandes sur votre site Web, des codes de statut de la commande sont attribués aux commandes. Par exemple, une nouvelle commande qui n’a pas encore été traitée se voit attribuer le code de statut 4 (Nouvelle commande). Les codes de statut de la commande vous permettent de savoir où en est une commande donnée dans le contexte général du processus de commande.

Dans certains cas, comme avec les codes de statut de la commande, vous pouvez utiliser les codes par défaut existants inclus dans Commerce Server ; cependant, s’il s’avère que ces codes sont insuffisants et que vous en ayez besoin d’autres, vous pouvez ajouter des codes de statut de la commande directement, à l’aide du module Codes de données de Business Desk. Pour plus d’informations sur l’ajout de codes de statut de la commande, consultez Ajout de codes de statut de la commande.

Codes de pays/région et codes de département/province

Vous pouvez utiliser les codes de pays/région et les codes de département/province pour afficher des informations géographiques pour la livraison et la facturation. Les codes de pays et de région permettent d’identifier les pays ou les régions où seront envoyés les articles commandés par des utilisateurs sur votre site. Les codes de département et de province permettent d’identifier les départements et les provinces où seront envoyées les commandes.

Lorsque vous ajoutez des codes de données, vous devez entrer les codes dans un ordre spécifique :

  1. Ajoutez un code de pays ou de région avant de pouvoir ajouter un nouveau code de département ou de province.

  2. Ajoutez un code de département ou de province.

  3. Définissez des taux des taxes.

Lorsque des utilisateurs commandent des articles sur votre site, ils remplissent un formulaire de profil comportant l’adresse de livraison. Les formulaires de profil de votre site Web comprennent les codes de département/province et les codes de pays/région spécifiés.

Modes de livraison

Votre site doit disposer d’un mode de livraison au minimum pour que les utilisateurs puissent passer des commandes. Commerce Server 2000 fournit trois modes de livraison par défaut : Facturer en fonction du poids, Facturer en fonction de la quantité et Facturer en fonction du sous-total. Vous devez contacter votre développeur de site pour obtenir de l’aide si d’autres modes de livraison vous sont nécessaires ou que vous avez recours à une société d’expédition (telle que UPS ou DHL) proposant une application tierce. Si vous devez utiliser une application tierce fournie par une société d’expédition, vous devez contacter cette société afin de connaître les codes de pays standard qu’elle utilise (par exemple DE pour l’Allemagne et FR pour la France) avant d’ajouter des codes de pays à votre base de données Commerce Server. Pour plus d’informations sur les modes de livraison, consultez Personnalisation des modes de livraison.

Pour plus d’informations sur l’ajout d’un mode de livraison personnalisé ou sur l’ajout d’une application tierce, consultez votre développeur de site.

Commandes

Lorsqu’un utilisateur soumet une commande sur votre site Web, elle est traitée par le pipeline de traitement des commandes de Commerce Server. Le pipeline de traitement des commandes décompose le traitement des commandes en étapes qui représentent une catégorie de travail. Un pipeline de traitement des commandes classique doit comprendre une étape d’information sur le client, une étape de paiement et une étape de livraison pour que le traitement soit correct. Par exemple, la description du produit et l’adresse de livraison de l’utilisateur sont récupérées de la base de données Commerce Server et le montant des taxes est calculé. Ces informations et le prix total sont stockés dans la base de données Commerce Server pour la commande.

Le module Statut de la commande vous permet d’afficher des informations sur le statut des commandes, ainsi que tous les détails concernant cette commande, comme l’en-tête et les éléments de la commande. Vous pouvez rechercher des commandes spécifiques passées par les utilisateurs ayant visité votre site. Par exemple, vous pouvez rechercher une commande en fonction de la description de l’élément, de l’identificateur du produit ou du numéro de commande. Vous pouvez également trier les commandes pour afficher plus clairement les informations que vous recherchez. Vous pouvez, par exemple, trier les commandes selon leur statut ou selon le nom de l’utilisateur.

Vous pouvez utiliser conjointement BizTalk Server 2000 et le module Commandes de Business Desk pour traiter les commandes passées par les utilisateurs sur votre site Web Commerce Server. Supposons que vous vendiez du matériel informatique sur votre site. Une partie de ce matériel est fabriquée par votre société et une partie vous est fournie par vos partenaires commerciaux. BizTalk Server permet de créer un contrat commercial pour chaque partenaire commercial fournissant du matériel vendu sur votre site. Lorsqu’un utilisateur visite votre site et passe une commande pour un des produits fournis par un partenaire commercial, Commerce Server traite cette commande et l’envoie à BizTalk Server, puis BizTalk Server l’envoie au partenaire commercial pour qu’il la remplisse. Pour plus d’informations sur l’intégration de BizTalk Server au module Commandes de Business Desk, contactez votre administrateur système.

Paniers abandonnés

Lorsque des utilisateurs font des achats sur votre site, ils placent les articles qu’ils veulent acheter dans un « panier » virtuel. Tous les articles que les utilisateurs ont l’intention d’acheter sont répertoriés dans le panier lorsqu’ils procèdent à la validation. Les utilisateurs peuvent se déconnecter de votre site sans procéder à la validation ou sans vider leur panier. Ces paniers abandonnés demeurent dans votre base de données Commerce Server tant que vous ne les avez pas supprimés ou tant que les utilisateurs ne sont pas retournés sur le site et qu’ils n’ont pas vidé leur panier eux-mêmes. Les utilisateurs ont également la possibilité d’enregistrer leur panier et de le laisser indéfiniment dans votre base de données Commerce Server.

Supprimez régulièrement les paniers qui ont été abandonnés ou ceux qui ont été enregistrés depuis un certain laps de temps pour éviter d’encombrer votre base de données Commerce Server. Vous pouvez utiliser le volet Rechercher du module Gestionnaire de panier pour rechercher les paniers à supprimer en utilisant des critères de filtre. Vous pouvez par exemple rechercher les paniers abandonnés ou enregistrés depuis plus de deux semaines, puis les supprimer. Pour plus d’informations sur la suppression de paniers, consultez Suppression de paniers.

Voir aussi

Personnalisation des modes de livraison

Modification des propriétés des codes de données

Ajout de codes de statut de la commande

Ajout de codes de pays

Ajout de codes de département/province

Recherche de paniers

Recherche et tri des commandes


Ajout de codes de statut de la commande

Vous utilisez les codes de statut de la commande pour suivre une commande dans le contexte général du processus de commande et pour déterminer où une commande est susceptible d’être bloquée ou de rencontrer des problèmes non résolus. Un code de statut de la commande identifie un nom par un code pour une étape spécifique du processus de commande. Par exemple, si un utilisateur a commandé il y a huit semaines deux disques compacts et deux maillots, vous pouvez afficher les codes de statut de la commande pour savoir où en est cette commande dans le contexte général du processus de commande. Il existe trois codes de statut de la commande par défaut : 4 (Nouvelle commande), 2 (Commande enregistrée), et 1 (Panier).

Pour ajouter un code de statut de la commande

  1. Dans Commandes, cliquez sur Codes de données.

  2. Dans l’écran Codes de statut de la commande, cliquez sur Afficher dans la barre d’outils, sélectionnez Codes de statut de la commande dans la liste déroulante, puis cliquez sur Nouveau dans la barre d’outils.

  3. Dans l’écran Codes de données – Codes de statut de la commande, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Code | Taper le code de statut de la commande numérique que vous voulez créer.
    Nom | Taper le nom du code de statut de la commande.
    Description | Taper la description du code de statut de la commande.

  4. Pour enregistrer le code de statut de la commande et continuer l’entrée de nouveaux codes de statut, cliquez sur Enregistrer et créer dans la barre d’outils.

Vous pouvez entrer le prochain nouveau code de statut de la commande.

Pour enregistrer les codes de statut de la commande et revenir à l’écran Codes de statut de la commande, cliquez sur Enregistrement et retour dans la barre d’outils.

Remarque

  • Une fois que vous avez ajouté un code de statut de la commande, votre administrateur système doit décharger l’application Commerce Server de la mémoire sur chaque serveur Web pour que la modification soit prise en compte. Pour plus d’informations, consultez « Déchargement d’une application de la mémoire » dans l’aide de Commerce Server 2000.

Voir aussi

Déroulement des opérations pour la gestion des commandes

À propos des commandes

Ajout de codes de pays

Ajout de codes de département/province

Gestion de codes de données et de taux des taxes


Ajout de codes de pays

Vous créez des codes de pays/région pour identifier les pays et les régions où seront envoyés les articles commandés par des utilisateurs sur votre site. Les codes de pays/région identifient les pays qui apparaissent sur votre site Web. Commerce Server fournit plusieurs codes de pays, dont ceux qui sont pour les États-Unis, le Japon, l’Allemagne et le Canada.

Remarques

  • Les codes de pays ou de région doivent être ajoutés à votre base de données Commerce Server avant que les codes de département ou de province de ce pays ou de cette région puissent être ajoutés. Si vous tentez d’ajouter un code de département ou de province pour un pays ou une région qui n’a pas encore été ajouté(e) à votre base de données, vous recevrez un message d’erreur.

  • Si vous devez utiliser une application plug-in fournie par une société d’expédition, vous devez contacter cette société afin de connaître les codes de pays standard qu’elle utilise (par exemple DE pour l’Allemagne et FR pour la France) avant d’ajouter des codes de pays/région à votre base de données.

Pour ajouter un code de pays/région

  1. Dans Commandes, cliquez sur Codes de données.

  2. Dans l’écran Codes de statut de la commande, cliquez sur Afficher dans la barre d’outils, sélectionnez Codes de pays/région dans la liste déroulante, puis cliquez sur Nouveau dans la barre d’outils.

  3. Dans l’écran Codes de pays, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Code de pays/région | Taper un code alphabétique pour le pays ou la région.
    Nom complet | Taper le nom du pays ou de la région.
    Description | Taper une description du code de pays ou de région si nécessaire.

Pour enregistrer le code de pays et revenir à l’écran Codes de pays/région, cliquez sur Enregistrement et retour dans la barre d’outils. Le nouveau code de pays apparaît dans l’écran Codes de pays/région.

Remarque

  • Une fois que vous avez ajouté un code de pays, votre administrateur système doit décharger l’application Commerce Server de la mémoire sur chaque serveur Web pour que la modification soit prise en compte. Pour plus d’informations, consultez « Déchargement d’une application de la mémoire » dans l’aide de Commerce Server 2000.

Voir aussi

Déroulement des opérations pour la gestion des commandes

À propos des commandes

Ajout de codes de département/province

Gestion de codes de données et de taux des taxes


Ajout de codes de département/province

Vous ajoutez des codes de département et de province à votre base de données Commerce Server pour identifier les départements et les provinces où seront expédiées les commandes. Les codes de département/province identifient les départements et les provinces qui apparaissent sur votre site Web.

Remarque

  • Les codes de pays/région doivent être ajoutés à votre base de données Commerce Server avant que les codes de département et de province de ce pays ou de cette région puissent être ajoutés. Si vous tentez d’ajouter un code de département/province pour un pays ou une région qui n’a pas encore été ajouté(e) à votre base de données, vous recevrez un message d’erreur. Pour plus d’informations sur l’ajout de codes de pays/région, consultez Ajout de codes de pays.

Pour ajouter un code de département/province

  1. Dans Commandes, cliquez sur Codes de données.

  2. Dans l’écran Codes de statut de la commande, cliquez sur Afficher dans la barre d’outils, sélectionnez Codes de département/province dans la liste déroulante, puis cliquez sur Nouveau dans la barre d’outils.

  3. Dans l’écran Codes de département/province, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Code de département/province | Taper un code alphabétique pour le département ou la province.
    Nom complet | Taper le nom du département ou de la province.
    Description | Taper une description du code de département ou de province si nécessaire.

  4. Pour enregistrer les modifications et revenir à l’écran Codes de département/province, cliquez sur Enregistrement et retour dans la barre d’outils.

Le nouveau code de département/province est enregistré dans votre base de données Commerce Server.

Remarque

  • Une fois que vous avez ajouté un code de département/province, votre administrateur système doit décharger l’application Commerce Server de la mémoire sur chaque serveur Web pour que la modification soit prise en compte. Pour plus d’informations, consultez « Déchargement d’une application de la mémoire » dans l’aide de Commerce Server 2000.

Voir aussi

Déroulement des opérations pour la gestion des commandes

À propos des commandes

Ajout de codes de pays

Gestion de codes de données et de taux des taxes


Personnalisation des modes de livraison

Commerce Server Business Desk prend en charge trois modes de livraison :

  • Facturer en fonction du poids. Ce mode permet de facturer à l’utilisateur la livraison en fonction du poids d’une commande. Vous utilisez ce mode de livraison pour spécifier des facturations en fonction d’une plage de poids. Par exemple, la livraison d’un article dont le poids est compris entre 1 kg et 1,5 kg coûte 24 FF. Si vous avez livré un article dont le poids était de 5 kg, la livraison peut coûter 48 FF.

    Remarque

    • Tous les produits de votre catalogue doivent prendre en charge le paramètre de poids pour pouvoir établir des facturations en fonction du poids. Si certains de vos produits ne le prennent pas en charge, cette option ne fonctionnera pas correctement sur votre site Web. Pour plus d’informations sur les définitions de produits et l’ajout de produits à un catalogue, consultez Ajout d’un produit à un catalogue.
  • Facturer en fonction de la quantité. Ce mode permet de facturer la livraison en fonction de la quantité d’articles composant une commande. Vous pouvez spécifier des facturations en fonction de quantités correspondant à un nombre exact d’articles ou à un lot d’articles. Par exemple, la livraison d’une commande comportant 3 articles au maximum coûte 12 FF. Si la commande comporte quatre articles ou plus, la livraison coûte 24 FF.

  • Facturer en fonction du sous-total. Ce mode permet de facturer la livraison en fonction du sous-total d’une commande. Par exemple, la livraison d’une commande composée de quatre disques compacts, dont le coût total est égal à 420 FF, coûte 18 FF. Si vous avez livré une commande comportant un disque compact dont le coût est de 109,90 FF, le coût de la livraison n’est que de 12 FF.

Vous pouvez également modifier les propriétés du mode de livraison d’un mode sélectionné. Par exemple, lorsque les coûts de livraison changent, vous pouvez changer en conséquence le coût en fonction du mode.

Si vous avez recours à des sociétés d’expédition (telles que Chronopost ou DHL) proposant diverses options de livraison ou dont les taux appliqués sont calculés en fonction du poids et de zones géographiques (telles que UPS), vous devez utiliser un composant de pipeline tiers fourni par ces sociétés. Pour plus d’informations sur l’installation d’un mode de livraison personnalisé ou d’un composant de pipeline de livraison tiers, contactez votre administrateur système.

Pour ajouter un mode de livraison Facturer en fonction du poids

Pour ajouter un mode de livraison Facturer en fonction de la quantité

Pour ajouter un mode de livraison Facturer en fonction du sous-total

Pour modifier les propriétés du mode de livraison

Pour ajouter un mode de livraison Facturer en fonction du poids

  1. Dans Commandes, cliquez sur Modes de livraison.

  2. Dans l’écran Modes de livraison, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Facturer en fonction du poids dans la liste déroulante.

  3. Dans l’écran Facturer en fonction du poids - Nouveau, dans la section Propriétés du mode de livraison, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom pour le mode de livraison.
    Description | Taper une description pour le mode de livraison.
    Activée | Activer ce mode de livraison. Si le mode de livraison n’est pas activé, il ne figurera pas sur votre site Web.

  4. Dans la section Taux, cliquez sur Nouvelle, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Poids, jusqu’à | Taper un poids pour le niveau de taux.
    Taux de livraison | Taper le taux.

  5. Cliquez sur Accepter.

  6. Une fois que tous les taux sont entrés, cliquez sur la dernière ligne de la liste des taux, indiquant supérieur à <poids le plus élevé entré>, puis cliquez sur Modifier.

    Important

    • Vous devez modifier la dernière ligne sous Taux pour pouvoir enregistrer le mode de livraison.
  7. Entrez le taux le plus élevé pour ce mode de livraison, puis cliquez sur Accepter.

  8. Pour enregistrer le mode de livraison et revenir à l’écran Modes de livraisons, cliquez sur Enregistrement et retour dans la barre d’outils.

Le mode de livraison Facturer en fonction du poids est enregistré.

Remarques

  • Tous les produits des catalogues doivent prendre en charge le paramètre de poids pour que le mode de livraison Facturer en fonction du poids soit opérant. Cela signifie que la propriété Poids doit être attribuée à chaque définition de produit. Pour plus d’informations sur l’ajout de définitions de produits, consultez Ajout d’une définition de produit.

  • Vous devez utiliser le module Publier les transactions pour mettre à jour votre site. Pour plus d’informations sur la publication des transactions, consultez Publication de transactions sur votre site Web.

Pour ajouter un mode de livraison Facturer en fonction de la quantité

  1. Dans Commandes, cliquez sur Modes de livraison.

  2. Dans l’écran Modes de livraison, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Facturer en fonction de la quantité dans la liste déroulante.

  3. Dans l’écran Facturer en fonction de la quantité - Nouveau, dans la section Propriétés du mode de livraison, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom pour le mode de livraison.
    Description | Taper une description pour le mode de livraison.
    Activée | Activer ce mode de livraison. Si le mode de livraison n’est pas activé, il ne figurera pas sur votre site Web.

  4. Dans la section Taux, cliquez sur Nouveau, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Quantité, jusqu’à | Taper la quantité pour le niveau de taux.
    Taux de livraison | Taper le taux.

  5. Cliquez sur Accepter.

  6. Une fois que tous les taux sont entrés, cliquez sur la dernière ligne de la liste des taux, indiquant supérieur à <quantité la plus élevée entrée>, puis cliquez sur Modifier.

    Important

    • Vous devez modifier la dernière ligne sous Taux pour pouvoir enregistrer le mode de livraison.
  7. Entrez le taux le plus élevé pour ce mode de livraison, puis cliquez sur Accepter.

  8. Pour enregistrer le mode de livraison et revenir à l’écran Modes de livraisons, cliquez sur Enregistrement et retour dans la barre d’outils.

Le mode de livraison Facturer en fonction de la quantité est enregistré.

Remarque

  • Vous devez utiliser le module Publier les transactions pour mettre à jour votre site. Pour plus d’informations sur la publication des transactions, consultez Publication de transactions sur votre site Web.

Pour ajouter un mode de livraison Facturer en fonction du sous-total

  1. Dans Commandes, cliquez sur Modes de livraison.

  2. Dans l’écran Modes de livraison, cliquez sur Nouveau dans la barre d’outils, puis sélectionnez Facturer en fonction du sous-total dans la liste déroulante.

  3. Dans l’écran Facturer en fonction du sous-total - Nouveau, dans la section Propriétés du mode de livraison, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom du mode de livraison.
    Description | Taper la description du mode de livraison.
    Activée | Activer ce mode de livraison. Si le mode de livraison n’est pas activé, il ne figurera pas sur votre site Web.

  4. Dans la section Taux, cliquez sur Nouveau, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Prix, jusqu’à | Taper le sous-total pour le niveau de taux.
    Taux de livraison | Taper le taux.

  5. Cliquez sur Accepter.

  6. Une fois que tous les taux sont entrés, cliquez sur la dernière ligne de la liste des taux, indiquant supérieur à <sous-total le plus élevé entré>, puis cliquez sur Modifier.

    Important

    • Vous devez modifier la dernière ligne sous Taux pour pouvoir enregistrer le mode de livraison.
  7. Entrez le taux le plus élevé pour ce mode de livraison, puis cliquez sur Accepter.

  8. Pour enregistrer le mode de livraison et revenir à l’écran Modes de livraisons, cliquez sur Enregistrement et retour dans la barre d’outils.

Le mode de livraison Facturer en fonction du sous-total est enregistré.

Remarque

  • Vous devez utiliser le module Publier les transactions pour mettre à jour votre site. Pour plus d’informations sur la publication des transactions, consultez Publication de transactions sur votre site Web.

Pour modifier les propriétés du mode de livraison

  1. Dans Commandes, cliquez sur Modes de livraison.

  2. Dans l’écran Modes de livraison, sélectionnez le mode de livraison que vous souhaitez modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Facturer en fonction de <mode> - Ouvrir <nom du mode>, modifiez les propriétés du mode de livraison.

  4. Pour enregistrer vos modifications et revenir à l’écran Modes de livraisons, cliquez sur Enregistrement et retour dans la barre d’outils.

Le mode de livraison modifié est enregistré.

Remarque

  • Vous devez utiliser le module Publier les transactions pour mettre à jour votre site. Pour plus d’informations sur la publication des transactions, consultez Publication de transactions sur votre site Web.

Voir aussi

Déroulement des opérations pour la gestion des commandes

À propos des commandes

Publication de transactions sur votre site Web

Gestion de codes de données et de taux des taxes


Ajout de taux des taxes

Les taxes à la vente appliquées diffèrent selon les départements/provinces et les pays/régions, et parfois, ceux-ci n’en appliquent aucune. Le module Taux des taxes vous permet d’ajouter des taux des taxes pour différents pays/régions et départements/provinces.

Remarque

  • Les codes de pays/région et les codes de département/province doivent être configurés avant de pouvoir ajouter des taux des taxes. Pour plus d’informations sur l’ajout de codes de pays/région et de codes de département/province, consultez Ajout de codes de pays et Ajout de codes de département/province.

Pour ajouter un taux de taxe

  1. Dans Commandes, cliquez sur Taux des taxes.

  2. Dans l’écran Taxes, cliquez sur Nouveau, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Pays/région | Sélectionner un pays ou une région dans la liste déroulante.
    Département/province | Sélectionner un département ou une province dans la liste déroulante.
    Taux de taxe | Taper un taux de taxe sous la forme d’un pourcentage, exprimé par un nombre décimal. Par exemple, un taux de taxe de 8,6 pour cent se tape 8,6.

    Remarque

    • Les taux des taxes définis pour des départements/provinces spécifiques annulent tout taux de taxe défini pour l’ensemble des départements et provinces de ce pays ou de cette région.
  3. Cliquez sur Accepter.

  4. Pour enregistrer le taux de taxe et revenir à l’écran d’accueil Business Desk, cliquez sur Enregistrement et retour dans la barre d’outils.

Le taux de taxe est enregistré.

Remarque

  • Vous devez utiliser le module Publier les transactions pour mettre à jour votre site. Pour plus d’informations sur la publication des transactions, consultez Publication de transactions sur votre site Web.

Voir aussi

Déroulement des opérations pour la gestion des commandes

À propos des commandes

Gestion de codes de données et de taux des taxes

Publication de transactions sur votre site Web


Publication de transactions sur votre site Web

Le module Publier les transactions permet de mettre immédiatement à jour votre site avec les nouvelles informations que vous avez ajoutées, comme des commandes modifiées, des nouveaux taux des taxes et modes de livraison.

Remarque

  • Pour publier des codes de pays, des codes de région et des codes de statut de la commande, votre administrateur système doit décharger l’application de la mémoire. Ne pas utiliser le module Publier les transactions.

Pour publier des informations concernant les taxes, les livraisons et les commandes

  1. Dans Commandes, cliquez sur Publier les transactions.

Seuls les caches actifs sont répertoriés dans l’écran Publier les transactions. Si aucun cache n’est répertorié à l’écran, cela signifie qu’il n’y a rien à publier.

  2. Dans la liste des caches actifs, sélectionnez le(s) cache(s) que vous voulez mettre à jour sur votre site, puis cliquez sur Publier les modifications dans la barre d’outils.

Toutes les informations concernant les commandes, notamment les nouvelles commandes, les commandes modifiées, ainsi que les informations concernant les taxes et les livraisons sont mises à jour immédiatement sur votre site.

Voir aussi

À propos des commandes

Personnalisation des modes de livraison

Ajout de taux des taxes


Modification des propriétés des codes de données

Vous pouvez afficher les propriétés d’un code de données sélectionné et les modifier. Vous ne pouvez cependant pas modifier le numéro réel du code. Pour plus d’informations sur la suppression de codes de données, consultez Gestion des codes de données et des taux des taxes.

Attention

  • Si vous changez un code de données par inadvertance, vous devez, pour réparer votre erreur, attribuer au code de données changé un numéro qu’aucun code de données existant n’utilise, puis rajouter l’ancien numéro de code de données, en remplacement de celui que vous avez ajouté involontairement.

Pour modifier les propriétés d’un code de données

  1. Dans Commandes, cliquez sur Codes de données.

  2. Dans l’écran Codes de statut de la commande, cliquez sur Afficher dans la barre d’outils, puis sélectionnez dans la liste déroulante le type de code de données que vous voulez afficher.

  3. Sélectionnez le code de données à modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  4. Dans l’écran <code de données>, modifiez les propriétés du code de données, puis cliquez sur Enregistrement et retour dans la barre d’outils.

Le code de données modifié est enregistré.

Remarques

  • Une fois que vous avez modifié un code de données, votre administrateur système doit décharger l’application Commerce Server de la mémoire sur chaque serveur Web pour que la modification soit prise en compte. Pour plus d’informations, consultez « Déchargement d’une application de la mémoire » dans l’aide de Commerce Server 2000.

  • Vous devez également contacter votre administrateur système pour implémenter toute modification des codes de données sur votre site Web.

Voir aussi

À propos des commandes


Recherche de paniers

Vous pouvez rechercher des paniers existants en fonction d’une date ou d’une organisation, ou bien répertorier l’ensemble des paniers actuellement présents sur votre site Web. En triant les paniers selon la date du dernier accès, vous pouvez déterminer quels sont les paniers qui ont été abandonnés et les supprimer.

Pour trier des paniers

  1. Dans Commandes, cliquez sur Gestionnaire de panier.

  2. Dans l’écran Gestionnaire de panier, cliquez sur la flèche de déroulement de la zone Rechercher par, puis sélectionnez un des éléments suivants dans la liste déroulante :
    Utilisez ceci | Pour faire cela
    Date du dernier accès Procéder à une recherche en fonction de la date, en effectuant une des opérations suivantes :
    • Sélectionner Du dans la liste déroulante. Entrer la plage de dates ou sélectionner les dates dans les calendriers déroulants Du et Au.

      - ou -

    • Sélectionner Le ou avant le dans la liste déroulante. Entrer la date ou sélectionner la date dans le calendrier déroulant.
    Organisation | Effectuer un tri selon l’organisation, en entrant le nom de l’organisation ou en sélectionnant le nom de l’organisation dans la liste déroulante.
    Tous les paniers | Répertorier tous les paniers figurant dans la base de données Commerce Server en fonction du nom des utilisateurs.

  3. Cliquez sur Rechercher.

Vous pouvez à présent consulter les résultats dans une liste de l’écran Gestionnaire de panier.

Voir aussi

À propos des commandes

Suppression de paniers


Suppression de paniers

Lorsqu’un utilisateur abandonne un panier, vous pouvez le supprimer de votre base de données Commerce Server. Vous supprimez généralement un panier parce qu’un utilisateur ne procède pas à la validation des achats ou ne vide pas son panier avant de quitter le site.

Pour supprimer un panier

  1. Dans Commandes, cliquez sur Gestionnaire de panier.

  2. Pour rechercher les paniers abandonnés en fonction de la Date du dernier accès, sélectionnez Le ou avant le en tant que critère de date, entrez une date ou sélectionnez la date dans le calendrier déroulant, puis cliquez sur Rechercher.

  3. Dans la liste des paniers, sélectionnez les paniers à supprimer, puis cliquez sur Supprimer dans la barre d’outils.

  4. Dans la boîte de dialogue de confirmation Voulez-vous supprimer, cliquez sur Oui.

Le panier est supprimé.

Attention

Une fois qu’un panier a été supprimé, il est impossible de le récupérer.

Remarque

  • Vous devez utiliser le module Publier les transactions pour mettre à jour votre site. Pour plus d’informations sur la publication des transactions, consultez Publication de transactions sur votre site Web.

Voir aussi

À propos des commandes

Recherche de paniers

Gestion de codes de données et de taux des taxes


Recherche et tri des commandes

Vous pouvez rechercher des commandes spécifiques passées par les utilisateurs ayant visité votre site. Vous disposez de huit options vous permettant de limiter votre recherche, ou vous pouvez répertorier l’ensemble des commandes. Par défaut, les commandes sont répertoriées par ordre décroissant selon leur numéro, mais vous avez la possibilité de changer l’ordre de tri. Vous pouvez par exemple trier les commandes selon leur statut ou selon le nom de l’utilisateur.

Pour rechercher une commande

Pour trier des commandes dans une liste

Pour rechercher une commande

  1. Dans Commandes, cliquez sur Statut de la commande.

  2. Dans l’écran Statut de la commande, dans la liste déroulante Rechercher par, sélectionnez un des éléments suivants :
    Utilisez ceci | Pour faire cela
    Date de la commande | Sélectionner pour répertorier toutes les commandes qui ont été passées à une date donnée ou avant cette date, ou encore à partir d’une date dans le futur. Taper la date ou sélectionner une date dans le calendrier déroulant.
    Nom d’utilisateur | Sélectionner pour répertorier l’ensemble des commandes créées par un utilisateur spécifique. Vous pouvez taper les premières lettres du prénom ou du nom de l’utilisateur, ou des deux, dans les zones Prénom et Nom.
    Numéro de commande | Sélectionner pour répertorier les commandes ayant un numéro de commande spécifique. Vous devez taper le numéro de commande exact dans la zone Numéro de commande.
    Organisation | Sélectionner pour répertorier l’ensemble des commandes provenant d’une organisation spécifique. Vous devez taper le nom de l’organisation dans la zone Organisation.
    Numéro du bon de commande | Sélectionner pour répertorier l’ensemble des commandes ayant un numéro de bon de commande spécifique. Vous devez taper le numéro de bon de commande exact dans la zone Numéro du bon de commande.
    Product ID | Sélectionner pour répertorier l’ensemble des commandes ayant un numéro d’identificateur du produit spécifique. Vous devez taper le numéro d’identificateur du produit exact dans la zone Product ID.
    Description de l’élément | Sélectionner pour répertorier l’ensemble des commandes ayant une description spécifique.
    Toute information | Sélectionner pour ouvrir l’ensemble des critères de recherche. Vous pouvez entrer tous les détails de la commande, ou seulement certains.
    Toutes les commandes | Sélectionner pour répertorier l’ensemble des commandes enregistrées qui n’ont pas été traitées.

  3. Cliquez sur Rechercher.

Vous pouvez à présent consulter les résultats de votre recherche dans l’écran Statut de la commande.

Pour trier des commandes dans une liste

  1. Dans Commandes, cliquez sur Statut de la commande.

  2. Dans la liste des commandes, cliquez sur l’en-tête de colonne à utiliser pour effectuer le tri des commandes.

Lorsque vous cliquez sur l’en-tête de colonne, le tri de la liste est effectué de manière dynamique.

Voir aussi

À propos des commandes

Suppression de commandes


Suppression de commandes

Vous pouvez supprimer des commandes existantes à l’aide du module Statut de la commande. Cette possibilité s’avère utile par exemple lorsqu’une commande doit être annulée, qu’un utilisateur a créé par inadvertance une commande en double ou que l’article que l’utilisateur souhaite n’est plus disponible.

Pour supprimer une commande

  1. Dans Commandes, cliquez sur Statut de la commande.

  2. Sélectionnez la commande que vous souhaitez supprimer de la liste des résultats des commandes, puis cliquez sur Supprimer dans la barre d’outils.

  3. Dans la boîte de dialogue de confirmation Voulez-vous supprimer, cliquez sur OUI pour confirmer la suppression.

La commande est supprimée de votre site.

Attention

  • Une fois qu’une commande a été supprimée, il est impossible de la récupérer.

Remarque

  • Vous devez utiliser le module Publier les transactions pour mettre à jour votre site. Pour plus d’informations sur la publication des transactions, consultez Publication de transactions sur votre site Web.

Voir aussi

À propos des commandes

Recherche et tri des commandes

Gestion de codes de données et de taux des taxes


Gestion de codes de données et de taux des taxes

Les modules Codes de données et Taux des taxes vous permettent de gérer les codes de données et les taux des taxes.

Cette section contient les rubriques suivantes :

  • Modification d’un code de statut de la commande

  • Suppression d’un code de statut de la commande

  • Modification d’un pays

  • Suppression d’un pays

  • Modification d’un code de département/province

  • Suppression d’un code de département/province

  • Modification d’un taux de taxe

  • Suppression d’un taux de taxe


Modification d'un code de statut de la commande

Modification d’un code de statut de la commande

Vous pouvez modifier le nom et la description de codes de statut de la commande existants en utilisant le module Codes de données.

Pour modifier un code de statut de la commande

  1. Dans Commandes, cliquez sur Codes de données.

  2. Dans l’écran Codes de statut de la commande, cliquez sur dans la barre d’outils, puis sélectionnez Codes de statut de la commande dans la liste déroulante.

  3. Sélectionnez le code de statut de la commande à modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  4. Dans l’écran Codes de statut de la commande - <code de statut de la commande>, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom du code | Taper un nouveau nom pour le code de statut de la commande.
    Description | Taper une nouvelle description pour le code de statut de la commande.

  5. Pour enregistrer vos modifications et revenir à l’écran Codes de statut de la commande, cliquez sur Enregistrement et retour dans la barre d’outils.

Le code de statut de la commande modifié est enregistré.

Remarques

  • Vous ne pouvez pas modifier le numéro de code lui-même dans la zone Code. Si vous voulez modifier le numéro de code, vous devez supprimer le code de statut de la commande et en ajouter un nouveau, comportant les modifications souhaitées, dans la zone Code. Pour plus d’informations sur la suppression et l’ajout de codes de statut de la commande, consultez Suppression d’un code de statut de la commande et Ajout de codes de statut de la commande.

  • Une fois que vous avez modifié un code de statut de la commande, votre administrateur système doit décharger l’application Commerce Server de la mémoire sur chaque serveur Web pour que la modification soit prise en compte. Pour plus d’informations, consultez « Déchargement d’une application de la mémoire » dans l’aide de Commerce Server 2000.


Suppression d'un code de statut de la commande

Suppression d’un code de statut de la commande

Vous pouvez supprimer des codes de statut de la commande existants à l’aide du module Codes de données. Ceci est utile, par exemple lorsqu’un code de statut de la commande n’est pas nécessaire pour identifier un objet particulier.

Pour supprimer un code de statut de la commande

  1. Dans Commandes, cliquez sur Codes de données.

  2. Dans l’écran Codes de statut de la commande, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Codes de statut de la commande dans la liste déroulante.

  3. Sélectionnez le code de statut de la commande à supprimer, puis cliquez sur Supprimer dans la barre d’outils.

  4. Dans la boîte de dialogue de confirmation Codes de statut de la commande, cliquez sur OK.

Le code de statut de la commande est supprimé de votre site.

Attention

  • Une fois qu’un code de statut de la commande est supprimé, il est impossible de le récupérer. Si le code de statut de la commande que vous avez supprimé vous est à présent nécessaire, vous devez le recréer.

Remarque

  • Une fois que vous avez supprimé un code de statut de la commande, votre administrateur système doit décharger l’application Commerce Server de la mémoire sur chaque serveur Web pour que la modification soit prise en compte. Pour plus d’informations, consultez « Déchargement d’une application de la mémoire » dans l’aide de Commerce Server 2000.


Modification d'un code de pays

Modification d’un code de pays

Vous pouvez modifier le nom et la description de codes de pays existants en utilisant le module Codes de données.

Pour modifier un code de pays

  1. Dans Commandes, cliquez sur Codes de données.

  2. Dans l’écran Codes de statut de la commande, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Codes de pays/région dans la liste déroulante.

  3. Sélectionnez le code de pays à modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  4. Dans l’écran Codes de pays - <pays>, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom complet | Taper le nom du pays ou de la région.
    Description | Taper une description du code de pays si nécessaire.

  5. Pour enregistrer vos modifications et revenir à l’écran Codes de pays/région, cliquez sur Enregistrement et retour dans la barre d’outils.

Le code de pays modifié est enregistré.

Remarques

  • Vous ne pouvez pas modifier le numéro de code lui-même dans la zone Code. Si vous voulez modifier le numéro de code, vous devez supprimer le code de pays/région dans sa totalité et en ajouter un nouveau, comportant les modifications souhaitées, dans la zone Code. Pour plus d’informations sur la suppression et l’ajout de codes de pays, consultez Suppression d’un code de pays et Ajout de codes de pays.

  • Une fois que vous avez modifié un code de pays, votre administrateur système doit décharger l’application Commerce Server de la mémoire sur chaque serveur Web pour que la modification soit prise en compte. Pour plus d’informations, consultez « Déchargement d’une application de la mémoire » dans l’aide de Commerce Server 2000.


Suppression d'un code de pays

Suppression d’un code de pays

Vous pouvez supprimer des codes de pays existants à l’aide du module Codes de données. Ceci est utile, par exemple, lorsque vous ne livrez pas des produits dans un certain pays ou dans une certaine région et que vous ne voulez pas que ce code s’affiche comme une option pour les utilisateurs.

Pour supprimer un code de pays

  1. Dans Commandes, cliquez sur Codes de données.

  2. Dans l’écran Codes de statut de la commande, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Codes de pays/région dans la liste déroulante.

  3. Sélectionnez le code de pays à supprimer, puis cliquez sur Supprimer dans la barre d’outils.

  4. Dans la boîte de dialogue Supprimer les codes associés, cliquez sur OK.

  5. Dans la boîte de dialogue Codes de pays/région, cliquez sur OK.

Le code de pays ou de région est supprimé de votre site.

Attention

  • La suppression d’un code de pays/région entraîne également la suppression de tous les codes de département/province qui y sont associés.

  • Une fois qu’un code de pays/région est supprimé, il est impossible de le récupérer. Si le code de pays/région que vous avez supprimé vous est à présent nécessaire, vous devez le recréer.

Remarque

  • Une fois que vous avez supprimé un code de pays/région, votre administrateur système doit décharger l’application Commerce Server de la mémoire sur chaque serveur Web pour que la modification soit prise en compte. Pour plus d’informations, consultez « Déchargement d’une application de la mémoire » dans l’aide de Commerce Server 2000.


Modification d'un code de département/province

Modification d’un code de département/province

Vous pouvez modifier le nom et la description d’un code de département/province existant en utilisant le module Codes de données.

Pour modifier un code de département/province

  1. Dans Commandes, cliquez sur Codes de données.

  2. Dans l’écran Codes de statut de la commande, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Codes de département dans la liste déroulante.

  3. Sélectionnez le code de département à modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  4. Dans l’écran Codes de département/province - <département>, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom complet | Taper le nom du département ou de la province.
    Description | Taper une description du code de département/province si nécessaire.

  5. Pour enregistrer vos modifications et revenir à l’écran Codes de département/province, cliquez sur Enregistrement et retour dans la barre d’outils.

Le code de département/province modifié est enregistré.

Remarques

  • Vous ne pouvez pas modifier le numéro de code lui-même dans la zone Code. Si vous voulez modifier le numéro de code, vous devez supprimer le code de département ou de province et en ajouter un nouveau, comportant les modifications souhaitées, dans la zone Code. Pour plus d’informations sur la suppression et l’ajout de codes de département, consultez Suppression d’un code de département/province et Ajout de codes de département/province.

  • Une fois que vous avez modifié un code de département/province, votre administrateur système doit décharger l’application Commerce Server de la mémoire sur chaque serveur Web pour que la modification soit prise en compte. Pour plus d’informations, consultez « Déchargement d’une application de la mémoire » dans l’aide de Commerce Server 2000.


Suppression d'un code de département/province

Suppression d’un code de département/province

Vous pouvez supprimer des codes de département ou de province existants à l’aide du module Codes de données. Ceci est utile, par exemple, lorsque vous ne livrez pas des produits dans un(e) certain(e) département/province et que vous ne voulez pas que ce code s’affiche comme une option pour les utilisateurs.

Pour supprimer un code de département/province

  1. Dans Commandes, cliquez sur Codes de données.

  2. Dans l’écran Codes de statut de la commande, cliquez sur Afficher dans la barre d’outils, puis sélectionnez Codes de département/province dans la liste déroulante.

  3. Dans l’écran Codes de département/province, sélectionnez le code à supprimer, puis cliquez sur Supprimer dans la barre d’outils.

  4. Dans la boîte de dialogue Codes de département/province, cliquez sur OK.

Le code de département/province est supprimé de votre site.

Attention

  • Une fois qu’un code de département ou de province est supprimé, il est impossible de le récupérer. Si le code de département ou de province que vous avez supprimé vous est à présent nécessaire, vous devez le recréer.

Remarque

  • Une fois que vous avez supprimé un code de département/province, votre administrateur système doit décharger l’application Commerce Server de la mémoire sur chaque serveur Web pour que la modification soit prise en compte. Pour plus d’informations, consultez « Déchargement d’une application de la mémoire » dans l’aide de Commerce Server 2000.


Modification d'un taux de taxe

Modification d’un taux de taxe

Vous pouvez modifier un taux de taxe existant en utilisant le module Taux des taxes. Ceci est utile, par exemple, lorsque le gouvernement change un taux de taxe.

Pour modifier un taux de taxe

  1. Dans Commandes, cliquez sur Taux des taxes.

  2. Sélectionnez le taux de taxe à modifier, puis cliquez sur Modifier.

  3. Modifiez le taux de taxe, puis cliquez sur Accepter.

  4. Pour enregistrer vos modifications et revenir à l’écran d’accueil Business Desk, cliquez sur Enregistrement et retour dans la barre d’outils.

Le taux de taxe est enregistré.

Remarque

  • Vous devez utiliser le module Publier les transactions pour mettre à jour votre site. Pour plus d’informations sur la publication des transactions, consultez Publication de transactions sur votre site Web.


Suppression d'un taux de taxe

Suppression d’un taux de taxe

Vous pouvez supprimer un taux de taxe existant en utilisant le module Taux des taxes. Ceci est utile, par exemple, lorsque le gouvernement annule un taux de taxe.

Pour supprimer un taux de taxe

  1. Dans Commandes, cliquez sur Taux des taxes.

  2. Sélectionnez le taux de taxe à supprimer, puis cliquez sur Supprimer.

  3. Pour enregistrer vos modifications et revenir à l’écran d’accueil Business Desk, cliquez sur Enregistrement et retour dans la barre d’outils.

Le taux de taxe est supprimé de votre site.

Attention

  • Une fois qu’un taux de taxe est supprimé, il est impossible de le récupérer. Si le taux de taxe que vous avez supprimé vous est à présent nécessaire, vous devez le recréer.

Remarque

  • Vous devez utiliser le module Publier les transactions pour mettre à jour votre site. Pour plus d’informations sur la publication des transactions, consultez Publication de transactions sur votre site Web.


Utilisateurs Business Desk

Les modules Utilisateurs vous permettent de gérer la collection de données sur votre site Web Commerce Server 2000. Par exemple, vous pouvez définir les données utilisateur qui seront collectées et les données qui seront exportées vers Data Warehouse. Vous pouvez également utiliser les modules Utilisateurs pour gérer les profils utilisateur et d’organisation, par exemple pour modifier un mot de passe utilisateur ou le contact administratif d’une organisation.

Cette section contient les rubriques suivantes :

  • Déroulement des opérations pour la gestion des utilisateurs. Présente la marche à suivre pour gérer les profils utilisateur et d’organisation, créer des définitions de profils et modifier des entrées du glossaire du site.

  • À propos des utilisateurs. Décrit les profils utilisateur et d’organisation, les définitions de profils et les entrées du glossaire du site, ainsi que la façon dont vous les utilisez dans Commerce Server.

  • Ajout d’une entrée du glossaire du site. Explique comment ajouter de nouvelles entrées du glossaire du site.

  • Ajout d’un groupe d’entrées du glossaire du site. Explique comment ajouter de nouveaux groupes d’entrées du glossaire du site.

  • Ajout de propriétés à une définition de profil. Explique comment ajouter de nouvelles propriétés à des définitions de profils.

  • Ajout d’un groupe de propriétés à une définition de profil. Explique comment organiser vos propriétés en ajoutant un groupe de propriétés à une définition de profil.

  • Publication des modifications apportées aux définitions de profil sur votre site Web. Explique comment synchroniser les modifications apportées aux définitions de profils sur votre site Web.

  • Ajout d’un utilisateur. Explique comment ajouter de nouveaux profils utilisateur à votre site Web.

  • Importation d’une liste de profils utilisateur. Explique comment importer une liste de profils utilisateur à partir du module Gestionnaire de listes dans le module Utilisateurs.

  • Ajout d’une organisation. Explique comment ajouter de nouveaux profils d’organisation sur votre site Web.

  • Réinitialisation d’un mot de passe utilisateur. Explique comment réinitialiser un mot de passe pour un utilisateur inscrit.

  • Gestion des groupes et des entrées du glossaire du site. Explique comment modifier, organiser et supprimer des entrées du glossaire du site et des groupes d’entrées du glossaire du site. Explique également comment supprimer des entrées (valeurs) à partir d’entrées du glossaire du site.

  • Gestion des définitions de profils. Explique comment rechercher, copier et modifier des définitions de profils, et comment supprimer des propriétés de profils.

  • Gestion des utilisateurs. Explique comment modifier, rechercher, copier et supprimer des profils utilisateur.

  • Gestion des organisations. Explique comment rechercher, copier, modifier et supprimer des profils d’organisation.


Déroulement des opérations pour la gestion des utilisateurs

La figure suivante illustre un exemple de scénario pour la gestion des profils utilisateur et d’organisation, la création des définitions de profils et la modification des entrées du glossaire du site.

Déroulement des opérations pour la gestion des profils utilisateur et des profils d'organisation
Publier le profil
Publication des modifications apportées aux définitions de profil sur votre site Web
Définition de profil
Ajout d'une entrée du glossaire du site
Ajout de propriétés à une définition de profil
Ajout d'une organisation
Ajout d'un utilisateur
Définition de catalogue
Organisations
Ajout d'une définition de propriété
Expressions de la campagne marketing
Utilisateurs
Création d'une expression de ciblage
Éditeur d'entrées du glossaire du site

  1. Le module Éditeur d’entrées du glossaire permet d’ajouter une nouvelle entrée du glossaire du site qui peut être utilisée dans une définition de profil pour limiter les entrées utilisateur pour cette propriété.

  2. Le module Définition de profil permet d’ajouter une nouvelle propriété à une définition de profil.

  3. Le module Publier les profils permet de publier les modifications apportées aux définitions de profils sur votre site.

  4. Le module Utilisateurs permet d’ajouter un nouveau profil utilisateur à votre site Web.

  5. Le module Organisations permet d’ajouter un nouveau profil d’organisation sur votre site Web.


À propos des utilisateurs

Le module Utilisateurs permet de gérer les définitions de profils, les profils utilisateur et d’organisation et les entrées du glossaire du site. Par exemple, vous pouvez utiliser les entrées du glossaire du site pour limiter les couleurs que les utilisateurs peuvent sélectionner lorsqu’ils choisissent leur couleur préférée. Vous pouvez définir l’emplacement où seront stockées les données de profil utilisateur collectées et celles qui seront exportées vers Data Warehouse. Vous pouvez ajouter des propriétés à la définition de profil Objet utilisateur pour collecter des données que vous pouvez utiliser pour distinguer les utilisateurs auxquels vous souhaitez diffuser des publicités ou des remises ciblées.

Cette section contient les rubriques suivantes :

  • Utilisateurs

  • Organisations

  • Profils

  • Définition de profil

  • Éditeur d’entrées du glossaire du site


Utilisateurs

Le module Utilisateurs permet d’entrer et de gérer des informations relatives à des utilisateurs inscrits et invités qui visitent votre site. Par exemple, vous pouvez modifier le mot de passe d’utilisateurs inscrits qui ont oublié le leur. La définition de profil Objet utilisateur du module Utilisateurs permet de collecter des informations sur les utilisateurs. Le module Définition de profil permet de personnaliser la définition de profil Objet utilisateur en fonction des besoins de votre site.

Commerce Server prend en charge deux types d’utilisateurs :

  • Utilisateurs invités. Utilisateurs qui ne fournissent pas d’informations personnelles lorsqu’ils visitent votre site Web.

  • Utilisateurs inscrits. Utilisateurs qui s’abonnent pour avoir un compte sur votre site et qui disposent généralement d’un nom d’accès et d’un mot de passe. Les utilisateurs inscrits peuvent fournir des informations supplémentaires afin d’interagir plus facilement et de façon plus interactive avec votre site.

L’administrateur système peut configurer Commerce Server de telle sorte qu’il émette automatiquement des cookies permettant d’identifier des utilisateurs invités et des utilisateurs inscrits distincts et de les associer à des profils utilisateur dans la base de données Commerce Server. Si un utilisateur configure son système de façon à ce que ce dernier refuse les cookies, Commerce Server lui attribuera un identificateur global unique (GUID, globally unique identifier) permettant d’identifier les utilisateurs.

L’administrateur système importe les données utilisateur collectées par Commerce Server dans sa base de données et vos fichiers journaux de serveur Web dans Data Warehouse. Vous pouvez ensuite exécuter des rapports en fonction de ces informations pour analyser les caractéristiques et le comportement de vos utilisateurs. Par exemple, vous pouvez exécuter des rapports pour analyser les informations démographiques les concernant, leurs produits préférés et leur comportement d’achat.

Vous pouvez exporter les rapports utilisateur vers le Gestionnaire de listes pour les utiliser comme listes de messagerie pour des campagnes de publipostage et vous pouvez importer les rapports utilisateur du Gestionnaire de listes vers le module Utilisateurs pour mettre à jour les informations utilisateur. Les rapports utilisateur peuvent être importés dans le Gestionnaire de listes à partir du module Rapports et des listes au format ASCII délimité contenant une adresse de messagerie et un GUID représentant les deux premiers champs de chaque utilisateur.

La figure suivante illustre le flux de données utilisateur de l’exécution d’un rapport, à l’exportation de données utilisateurs vers une liste de messagerie et à la mise à jour de votre site Web.

Importation de listes utilisateur et modification des profils utilisateur
Exportation d'un rapport
statique (utilisateur)
Rapports
Gestionnaire de listes
Utilisateurs
Données utilisateur modifiées disponibles sur votre site Web
Liste d'utilisateurs au format ASCII délimité importée dans le Gestionnaire de listes
Modifier des utilisateurs
dans la liste d'utilisateurs
Importer une liste d'utilisateurs à partir du Gestionnaire de listes
Liste d'utilisateurs exportée dans le Gestionnaire de listes

Voir aussi

Importation et exportation de listes

Importation d’une liste de profils utilisateur

Modification d’un utilisateur

Modification de plusieurs utilisateurs


Organisations

Le module Organisations permet d’ajouter des organisations à votre site et de spécifier des informations s’y rapportant. Une organisation est une division, un service ou une autre unité d’une société, ou une société externe jouant le rôle de partenaire commercial, identifiés dans Business Desk comme source ou destination dans le cadre d’échanges d’informations commerciales.

Si vous avez intégré BizTalk Server dans Commerce Server, vous pouvez utiliser BizTalk Server et Commerce Server conjointement pour traiter les commandes passées par les utilisateurs sur votre site Web Commerce Server. Par exemple, vous pouvez vendre votre stock et celui de vos partenaires commerciaux à partir de votre site Web Commerce Server. BizTalk Server permet de créer un contrat commercial pour chaque partenaire commercial fournissant des produits vendus sur votre site. Lorsqu’un utilisateur commande un des produits fournis par un partenaire commercial, Commerce Server traite cette commande et l’envoie à BizTalk Server, puis BizTalk Server l’envoie au partenaire commercial pour qu’il la remplisse. Pour plus d’informations sur la configuration de BizTalk Server, consultez Utilisation de BizTalk Server.

Il est possible d’ajouter, de supprimer et de gérer des profils d’organisation via le module Organisations. Lorsque vous ajoutez une organisation, vous pouvez spécifier des informations s’y rapportant, telles que le nom du contact principal, l’adresse, le numéro de téléphone et le nom du responsable des achats, et le groupe de catalogues disponible pour l’organisation. La définition de profil Organisation du module Organisations permet de collecter des informations sur les organisations. Le module Définition de profil permet de personnaliser la définition de profil Organisation en fonction des besoins de votre site.

Avant de pouvoir désigner un utilisateur comme contact administratif, comme récepteur autorisé des produits, ou comme responsable des achats pour l’organisation, vous devez effectuer les actions suivantes :

  1. Créez l’organisation, via le module Organisations.

  2. Créez l’utilisateur et attribuez celui-ci à l’organisation dans le module Utilisateurs.

  3. Désignez cet utilisateur comme contact administratif, récepteur ou responsable des achats pour l’organisation dans le module Utilisateurs.

Voir aussi

Ajout d’un utilisateur

Ajout d’une organisation

Utilisation de BizTalk Server


Profils

Un profil est un ensemble de caractéristiques qui définissent les éléments à caractère commercial, tels qu’un utilisateur, une société ou un contexte (date et heure). Par exemple, un profil utilisateur peut comporter des caractéristiques telles que le prénom, le nom, la ville, le sexe, l’âge et l’adresse de messagerie. Un profil de société peut comporter d’autres caractéristiques, par exemple, le nom de société, le contact, la ville et l’adresse de messagerie. Un profil de contexte peut comporter des caractéristiques telles que la date et l’heure où une page est affichée, ainsi que le chemin d’accès emprunté par l’utilisateur pour accéder à la page.

La figure suivante montre différents types de profils.

Figure illustrant différents types de profils
Historique des clics
Durée de la session
Nom de la société
Contact
Ville
Adresse électronique
Historique des clics
Durée de la session
Prénom
Nom
Ville
Sexe
Âge
Adresse électronique
Historique des clics
Durée de la session

Profil de la société

Profil de l'utilisateur anonyme

Profil de l'utilisateur inscrit

Dans Commerce Server, les profils permettent de stocker des informations sur des éléments à caractère commercial. Par exemple, les profils sont utilisés pour collecter des données auprès des utilisateurs de votre site Web. Vous pouvez également entrer des données directement dans les profils utilisateur et d’organisation via Business Desk.

  • Utilisation des profils dans la gestion d’un site Web

  • Collecte et stockage des profils

  • Analyse des données utilisateur

Utilisation des profils dans la gestion d’un site Web

Les profils sont essentiels à la gestion d’un site Web car ils fournissent des informations sur les visiteurs et leur mode d’utilisation de votre site. Les profils vous permettent d’analyser les données utilisateur et de cibler un contenu qui leur est destiné.

À l’aide de Commerce Server Business Desk, vous pouvez :

  • déterminer les informations à collecter sur les utilisateurs visitant votre site ;

  • analyser les informations de profil ;

  • créer des expressions de ciblage pour faire correspondre le contenu aux utilisateurs ;

  • créer de la publicité, des remises et des campagnes de publipostage pour cibler des groupes d’utilisateurs spécifiques ;

  • adresser des messages de publipostage personnalisés aux utilisateurs.

Par exemple, vous possédez un site de vente d’articles de sport. Le déroulement des opérations ci-dessous illustre la manière d’utiliser Business Desk pour analyser l’activité des utilisateurs et cibler un contenu qui leur est destiné.

  1. Votre administrateur système crée des définitions de profils pour les utilisateurs inscrits et les utilisateurs invités.

  2. Après avoir laissé s’écouler une certaine période d’activité sur votre site, analysez les données de profil pour mieux connaître les utilisateurs qui le visitent :
    • Exécutez des rapports pour analyser les visiteurs de votre site.

    • Exécutez des rapports pour analyser les produits de votre catalogue qui se vendent bien, et ceux qui se vendent mal.
  3. Utilisez les résultats de votre analyse pour créer une campagne marketing de ciblage du contenu en fonction des utilisateurs :
    • Utilisez les profils pour créer des expressions de ciblage et des groupes cibles.

    • Créez une campagne de remise pour offrir une remise aux utilisateurs spécifiés.
  4. Une fois la remise placée en production pour un certain temps, analysez les résultats de la campagne marketing.
    • Exécutez des rapports pour analyser le succès de la campagne marketing.

    • Exécutez des rapports pour déterminer si le groupe d’utilisateurs a augmenté ses achats d’articles remisés.
  5. Si vos utilisateurs n’ont pas augmenté leurs achats d’articles remisés, créez une campagne de publipostage pour leur adresser des messages personnalisés en leur offrant une remise sur un produit spécifique.

Pour plus d’informations sur la création d’expressions et le ciblage de contenu destiné aux utilisateurs, consultez Ciblage et personnalisation.

Collecte et stockage des profils

Les données de profil sont collectées sur un site Commerce Server de deux manières. Les utilisateurs qui visitent votre site fournissent des données de profil sur eux-mêmes ; cela s’appelle le profil explicite de l’utilisateur. Par exemple, lorsque des utilisateurs achètent des produits sur votre site, ils fournissent généralement leur nom, adresse postale, numéro de téléphone et adresse de messagerie. Ces informations servent à remplir leur profil utilisateur.

Vous pouvez également collecter des données grâce au profil implicite de l’utilisateur. Dans le profil implicite, les actions de tous les utilisateurs (anonymes et inscrits) sont enregistrées dans des fichiers journaux Web, au fur et à mesure que ces utilisateurs interagissent avec votre site Web. Par exemple, les fichiers journaux Web enregistrent les liens sur lesquels ont cliqué les utilisateurs anonymes, les produits qu’ils ont recherchés, la durée de leurs sessions et le temps de visite d’une page Web spécifique. Même si les utilisateurs sont anonymes — vous ignorez leur nom, leur adresse de messagerie ou toute autre information les concernant — leur mode d’utilisation de votre site reste une information importante. Par exemple, l’historique des clics fournit le chemin d’accès aux pages Web visitées ; vous pouvez utiliser ces informations pour déterminer un ensemble particulier d’intérêts.

Une autre forme de profil implicite de l’utilisateur est possible grâce à la ressource Predictor de Commerce Server. S’il manque une information concernant un utilisateur, par exemple les préférences musicales qui lui sont associées, cette information peut être devinée par la ressource Predictor en fonction des propriétés de synthèse des utilisateurs visitant votre site et des CD qu’ils achètent.

Toutes les informations collectées durant une session utilisateur spécifique sont rassemblées dans un seul profil, en l’occurrence, l’instance d’une définition de profil.

Lorsque les données de profil sont collectées initialement, elles sont d’abord stockées dans la base de données Commerce Server et les journaux de serveur Web. L’administrateur système importe les données de profil dans Data Warehouse à intervalles réguliers. Une fois les profils importés dans Data Warehouse, vous pouvez utiliser Business Desk pour analyser les données utilisateur, puis exploiter les résultats de l’analyse afin de mettre à jour votre site Web ou appliquer les valeurs aux propriétés de profil utilisateur.

Analyse des données utilisateur

Vous pouvez analyser les données utilisateur dans les rapports ou dans les modèles de segments. Pour plus d’informations sur l’analyse des modèles de segments, consultez Analyse des segments de population.

Le tableau suivant répertorie les rapports inclus dans Commerce Server, qui vous permettent d’analyser les données utilisateur.

Rapport | Description
Utilisateurs et visites distincts par semaine | Déterminer si quelques utilisateurs visitent votre site plusieurs fois ou si de nombreux utilisateurs visitent votre site en même temps.
Utilisateurs distincts par jour | Déterminer le nombre d’utilisateurs uniques visitant votre site un jour spécifique.
Nouveaux utilisateurs inscrits | Identifier les nouveaux utilisateurs inscrits. Ces données peuvent être utilisées pour créer des campagnes promotionnelles spéciales. Par exemple, vous pouvez exporter le rapport vers le Gestionnaire de listes puis envoyer à ces utilisateurs une promotion par publipostage.
Propriétés de l’utilisateur inscrit | Examiner les informations fournies par les utilisateurs inscrits. Ces données peuvent être utilisées pour créer des campagnes promotionnelles spéciales. Par exemple, vous ciblez les publicités ou les remises pour des utilisateurs possédant certaines propriétés.
Utilisateurs inscrits par date d’inscription | Examiner le comportement des utilisateurs lors de leur inscription.
Jours avant inscription de l’utilisateur | Noter le nombre de jours moyen nécessaire aux utilisateurs invités pour s’inscrire sur votre site.
Taux d’inscription des utilisateurs | Déterminer votre capacité à convaincre les utilisateurs invités de s’inscrire sur votre site.
Tendances des utilisateurs | Déterminer votre capacité à faire revenir les visiteurs sur le site.

Voir aussi

Ciblage et personnalisation

Analyse des segments de population

Exécution de rapports


Définition de profil

Utilisez le module Définition de profil pour modifier et gérer les définitions de profil. Une définition de profil est un ensemble de caractéristiques qui définissent les éléments à caractère commercial, tels qu’un utilisateur, une société ou un processus commercial. Un profil est une instance unique d’une définition de profil contenant les données que celle-ci collecte. Par exemple, vous pouvez concevoir une définition de profil pour collecter des données utilisateur. Vous pouvez ensuite utiliser le module Utilisateurs pour modifier le profil utilisateur d’un utilisateur particulier qui a entré ses données sur votre site Web.

Structure d’un profil

Définitions de profils

Propriétés de profil

Attributs

Exemples de définitions de profils

Structure d’un profil

Un profil Commerce Server se compose des éléments suivants :

  • Définition de profil. Description des données à collecter pour un type de profil déterminé. Vous pouvez posséder plusieurs profils basés sur une seule définition de profil. Par exemple, « Utilisateur » et « Adresse » sont des définitions de profils. Les administrateurs système créent des définitions de profils à l’aide de la ressource Profiles dans Commerce Server Manager.

  • Propriétés de profil. Caractéristique qui spécifie les données de profil à collecter lorsqu’un utilisateur visite votre site Web. Par exemple, la propriété Prénom indique que le prénom de l’utilisateur doit être collecté. Le module Définition de profil de Business Desk permet de créer des propriétés de profil et de les ajouter aux définitions de profils.

  • Attribut. Caractéristique qui fournit des informations sur la propriété, telles que son type de données (par exemple, nombre, chaîne, décimal et glossaire du site).

  • Profil. Instance unique d’une définition de profil qui contient des données. Chaque profil est basé sur une seule définition de profil.

Le tableau suivant montre un exemple de définition de profil utilisateur, ainsi qu’une instance unique de l’exemple de définition de profil utilisateur comportant les données de Philippe Tran.

Définition de profil : utilisateur | Écran Profil : Philippe Tran
Prénom | Philippe
Nom | Tran
Ville | Paris
Sexe | M
Âge | 52
Adresse de messagerie | philippetran@microsoft.com

Définitions de profils

Votre administrateur système vous aidera à créer des définitions de profils pour votre site. L’administrateur système détermine l’emplacement où seront stockées les données de profil dans la base de données de Commerce Server. Ce processus s’appelle mappage de la définition de profil vers la base de données. Par exemple, supposons que vous demandiez une nouvelle définition de profil nommée « Musique » et que vous souhaitiez stocker les propriétés de profil suivantes : Premier concert, Dernier concert, CD favori et deux autres propriétés que vous n’avez pas encore déterminées.

L’administrateur système crée la nouvelle définition de profil Musique, comprenant les trois propriétés connues et deux espaces réservés pour les propriétés que vous ajouterez ultérieurement, puis mappe cette définition de profil vers la base de données de Commerce Server où elle sera stockée. Une fois que l’administrateur système a créé la définition de profil et les nouvelles propriétés, vous pouvez utiliser le module Définition de profil pour ajouter les trois propriétés à la définition. (L’administrateur système peut également effectuer cette opération à l’aide de Commerce Server Manager). Ultérieurement, lorsque vous déterminerez d’autres informations à collecter à l’aide de la définition de profil Musique, vous pourrez utiliser le module Définition de profil pour créer deux nouvelles propriétés et les mapper vers les espaces réservés créés par votre administrateur système.

Les sites solutions Commerce Server comportent les exemples de définitions de profils suivants : Adresses, BlanketPOs (bons de commande), Organisation, Objet utilisateur et Contexte de ciblage. L’objet utilisateur comprend cinq propriétés sans nom de sorte que vous pourrez ajouter des propriétés à la définition de profil Utilisateur sans contacter votre administrateur système pour étendre votre base de données. Pour obtenir la liste des propriétés associée à chaque profil, consultez Exemples de définitions de profils.

Propriétés de profil

Une fois que l’administrateur système a créé la définition de profil, vous pouvez ajouter des propriétés de profil à l’aide du module Définition de profil de Business Desk. Les propriétés de profil déterminent les informations à collecter dans un profil. Par exemple, la définition d’un profil Utilisateur peut contenir les propriétés suivantes : prénom, nom, ville, sexe, âge et adresse de messagerie. Vous pouvez organiser les propriétés de profils liées en groupe.

La figure suivante montre les différentes parties d’un exemple de définition de profil Utilisateur.

Figure illustrant les différentes parties d'une définition de profil
Propriété de profil
Attributs de profil
Définition de profil Utilisateur
Prénom
Valeur unique Obligatoire Indexé
Nom
Valeur unique Obligatoire Indexé
Ville
(Entrée du glossaire du site : Ville)
(Chaîne)
(Chaîne)
Mexico Madrid
Paris
Sexe
(Entrée du glossaire du site : Sexe)
Masculin
Féminin
Non communiqué
Âge
(Nombre)
Adresse de messagerie
(Chaîne)
Type de données

Vous pouvez créer les types de propriétés de profil suivants :

Type de propriété | Description
Chaîne | Une propriété de type chaîne ne peut pas stocker plus de 4 000 caractères. Les propriétés de chaîne effectuent un mappage vers les membres de données chaîne.
Chaîne de type long | Une propriété de chaîne de type long ne peut pas stocker plus de 2 à la puissance 17 (2^17) caractères. Les propriétés de chaîne de type long effectuent un mappage vers les membres de données chaîne.
Nombre | Une propriété de type nombre stocke des nombres entiers. La longueur maximale d’une propriété nombre est déterminée par la banque de données. Les propriétés de nombre effectuent un mappage vers les membres de données nombre.
Décimal | Une propriété de type décimal stocke des nombres à virgule flottante. La longueur maximale d’une propriété de type décimal est déterminée par la banque de données. Les propriétés de type décimal effectuent un mappage vers les membres de données nombre.
Boolean | Une propriété de type Boolean stocke une des deux valeurs (vrai/faux, oui/non ou 1/0). Les propriétés Boolean effectuent un mappage vers les membres de données Boolean.
Binaire | Une propriété de type binaire stocke des données binaires d’une taille maximale de 4 Ko. Les propriétés de type binaire effectuent un mappage vers les membres de données de type binaire.
Binaire de type long | Une propriété binaire de type long stocke le contenu, tel que les feuilles de calcul, les documents, les graphiques et le son jusqu’à la taille maximale de 128 Ko. Les propriétés de type binaire de type long effectuent un mappage vers les membres de données de type binaire.
Date/heure | Une propriété de type date/heure est une valeur composite de la date et de l'heure. Le format utilisé et la longueur maximale sont déterminés par la banque de données. Les propriétés de date/heure effectuent un mappage vers les membres de données date/heure.
Date | Une propriété de type date contient des valeurs de dates dans la plage 1/1/1950 à 31/12/2049. Le format utilisé et la longueur maximale sont déterminés par la banque de données. Les propriétés de date effectuent un mappage vers les membres de données date/heure.
Heure | Une propriété de type heure contient les valeurs heure, minute, seconde et milliseconde. Le format utilisé et la longueur maximale sont déterminés par la banque de données. Les propriétés d’heure effectuent un mappage vers les membres de données date/heure.
Devise | Une propriété de type devise accepte des nombres au format devise. Le format devise utilisé et la longueur maximale sont déterminés par la banque de données. Les propriétés de devise effectuent un mappage vers les membres de données devise.
Mot de passe | Une propriété de type mot de passe accepte du texte et est traitée comme une chaîne par la ressource Profiles. Commerce Server Business Desk affiche la valeur stockée dans une propriété de mot de passe sous la forme d’astérisques (*). Les propriétés de mot de passe effectuent un mappage vers les membres de données chaîne et ne doivent pas excéder 255 caractères Unicode.
Entrées du glossaire du site | Une propriété de type Entrées du glossaire du site est associée au glossaire du site. La valeur stockée dans cette propriété doit être une valeur valide de la liste de noms des entrées associée aux entrées du glossaire du site. Les propriétés d’entrées du glossaire du site effectuent un mappage vers les membres de données chaîne et ne doivent pas excéder 255 caractères Unicode.
Profil | Une propriété de type profil est associée à une définition de profil. La valeur stockée dans cette propriété doit être une valeur correspondant à la valeur de la clé primaire d’une instance spécifique de ce profil. Les propriétés de profil effectuent un mappage vers les membres de données chaîne et ne doivent pas excéder 255 caractères Unicode.

Attributs

Chaque propriété de profil possède des attributs. Les attributs fournissent des informations sur la propriété. Par exemple, la propriété Prénom possède les attributs suivants : Nom, Nom complet, Description et Type.

Les attributs incluent des informations telles que le type de données de la propriété de profil (par exemple, nombre, texte, décimal ou entrée du glossaire du site) et indiquent si la propriété comporte une valeur unique (par exemple, une seule valeur Prénom autorisée) ou multiple. Vous pouvez également indiquer que les données peuvent être exportées. Par exemple, les données peuvent être exportées vers Data Warehouse.

Il existe deux types d’attributs particuliers : les attributs personnalisés et les attributs avancés.

  • Attributs personnalisés. Attributs spécifiques aux applications. Vous pouvez définir des attributs personnalisés pour des propriétés. Par exemple, vous pouvez créer un attribut personnalisé qui contrôle la façon dont une propriété est affichée sur une page de site Web.

  • Attributs avancés. Les attributs avancés permettent de modifier la façon dont vos applications utilisent une propriété de profil. Par exemple, l’attribut Exporté détermine si la propriété sera importée dans Data Warehouse.

Le tableau suivant répertorie les attributs avancés et décrit leur rôle.

Attribut | Rôle
Activé | Indique si cette propriété est disponible dans le service Profils. Les propriétés inactives ne sont pas affichées dans Business Desk.
Mapper vers les données | Membre de données vers lequel la propriété effectue le mappage.
Type de clé Vous pouvez attribuer quatre types de clés :
  • Clé unique. Indique que la valeur de cette propriété est unique pour tous les membres. Vous mappez un attribut qui est spécifié comme clé unique vers un champ unique d’une base de données SQL Server ou vers un attribut unique d’une source LDAP (Lightweight Directory Access Protocol).

  • Clé primaire. Indique que la valeur de cette propriété est unique pour tous les membres. Vous mappez un attribut qui est spécifié comme clé primaire vers un champ unique d’une base de données SQL Server ou vers un attribut unique d’une source LDAP.

  • Clé de jointure. Établit une relation entre plusieurs banques de données par l’intermédiaire d’une propriété commune dans le service Profils.

  • Double clé (primaire et de jointure). Indique que la valeur de cette propriété est unique et établit une relation entre cette propriété et une propriété se trouvant dans une autre banque de données.
Requis | Indique que la propriété est obligatoire.
Exportée | Indique que la propriété sera importée dans Data Warehouse.
Différer le chargement du cache | Indique que cette propriété ne sera pas chargée initialement lors de la récupération du profil, mais qu’elle sera chargée lorsqu’elle sera sollicitée.
À valeurs multiples | Active la capture d’une collection de valeurs associées à la propriété.
Possibilité de recherche | Indique que cette propriété est indexée dans la banque de données sous-jacente et qu’elle peut faire l’objet de recherches via la fonction Rechercher par. Vous mappez un attribut pouvant faire l’objet d’une recherche vers un champ indexé de la base de données SQL Server ou de la source LDAP.
RDN (Relative Distinguished Name) | Taper le RDN (Relative Distinguished Name) pour une banque de répertoires. Si cet attribut est défini pour une propriété, ce membre effectue un mappage vers l’attribut RDN d’une classe LDAP de la banque sous-jacente. Cela ne s’applique pas au Fournisseur des sources OLE DB pour Microsoft Commerce Server (OLE DB) ou à tout autre type de source de données.
Clé de hachage | Indique que cette propriété sera utilisée pour répartir des instances du profil entre plusieurs partitions. Pour récupérer ce profil, vous devez effectuer une requête sur cette clé.

Exemples de définitions de profils

Les sites solutions Commerce Server comportent des exemples de définitions de profils. Si le développeur de votre site a utilisé un site solution pour créer votre site, les cinq définitions de profils doivent être répertoriées dans le tableau suivant :

Définition de profils | Propriétés (type de données) | Description
Adresse | Identificateur de l’adresse (chaîne) | Identificateur de l’adresse
 | Identificateur (chaîne) | Identificateur de l’organisation/l’utilisateur
 | Nom (chaîne) | Nom de l’utilisateur
 | Prénom (chaîne) | Prénom de l’utilisateur
 | Nom de l’adresse (chaîne) | Nom de cette adresse
 | Type d’adresse (nombre) | Adresse/adresse de livraison/adresse de facturation
 | Description (chaîne) | Description de cette adresse
 | Ligne Adresse 1 (chaîne) | Première ligne de l’adresse
 | Ligne Adresse 2 (chaîne) | Deuxième ligne de l’adresse
 | Ville (chaîne) | Nom de la ville
 | Code de région (chaîne) | Code du département, de la région ou de la province
 | Nom de département (chaîne) | Nom du département, de la région ou de la province
 | Code postal (chaîne) | Code postal
 | Code de pays (chaîne) | Code ISO (Country International Standards Organization)
 | Nom de pays (chaîne) | Nom du pays
 | Numéro de téléphone (chaîne) | Numéro de téléphone à cette adresse
 | Numéro de poste (chaîne) | Numéro de poste à cette adresse
 | Identificateur de paramètre régional (nombre) | Paramètre régional de représentation du formulaire d’adresse
 | Modifié par (chaîne) | Nom de la personne qui a effectué la dernière modification de ce profil
 | Date de dernière modification (date/heure) | Date de la dernière modification de ce profil
 | Date de création (date/heure) | Date de création de ce profil
BlanketPOs | Identificateur du bon de commande (chaîne) | GUID faisant référence au bon de commande standard
 | Identificateur d’organisation (chaîne) | Identificateur de l’organisation
 | Numéro du bon de commande (chaîne) | Numéro de bon de commande standard
 | Description (chaîne) | Description du bon de commande
 | Modifié par (chaîne) | Nom de la personne qui a effectué la dernière modification de ce profil
 | Date de dernière modification (date/heure) | Date de la dernière modification de ce profil
 | Date de création (date/heure) | Date de création de ce profil
Organisation | Identificateur d’organisation (chaîne) | Identificateur de l’organisation
 | Nom (chaîne) | Nom de l’organisation
 | Numéro de partenaire commercial | Numéro de partenaire commercial
 | Contact administratif (chaîne) | GUID du contact administratif
 | Récepteur (chaîne) | Identificateur d’utilisateur de la personne qui recevra les produits livrés par le fournisseur
 | Groupe de catalogues de l’organisation (chaîne) | Groupe de catalogues de l’organisation
 | Modifié par (chaîne) | Nom de la personne qui a effectué la dernière modification de ce profil
 | Responsable des achats (chaîne) | Identificateur d’utilisateur du responsable des achats de l’organisation
 | Date de dernière modification (date/heure) | Date de la dernière modification de ce profil
 | Date de création (date/heure) | Date de création de ce profil
Objet utilisateur | Identificateur d’utilisateur (chaîne) | Identificateur de l’utilisateur
 | Nom d’ouverture de session (chaîne) | Nom d’ouverture de session
 | Mot de passe de l’utilisateur (mot de passe) | Mot de passe de l’utilisateur
 | Messagerie (chaîne) | Adresse de messagerie
 | Type d’utilisateur (nombre) | Type d’utilisateur
 | Titre de l’utilisateur (chaîne) | Titre de l’utilisateur
 | Nom (chaîne) | Nom de l’utilisateur
 | Prénom (chaîne) | Prénom de l’utilisateur
 | Numéro de téléphone (chaîne) | Numéro de téléphone de l’utilisateur
 | Numéro de poste (chaîne) | Numéro de poste de l’utilisateur
 | Numéro de télécopie (chaîne) | Numéro de télécopie de l’utilisateur
 | Numéro de poste de télécopie (chaîne) | Numéro de poste de télécopie de l’utilisateur
 | Modifié par (chaîne) | Nom de la personne qui a effectué la dernière modification de ce profil
 | Identificateur d’organisation (chaîne) | Identificateur de l’organisation
 | État du compte (nombre) | État du compte
 | Groupe de catalogues de l’utilisateur (chaîne) | Groupe de catalogues de l’utilisateur
 | Date d’inscription (date/heure) | Date d’inscription de l’utilisateur
 | Historique de la campagne marketing (chaîne) | Historique de la campagne marketing
 | Indicateurs de rôles du Service Partenaire | Rôle du Service Partenaire
 | Date de dernière modification (date/heure) | Date de la dernière modification de ce profil
 | Date de création (date/heure) | Date de création de ce profil
Contexte de ciblage | Groupe de pages (chaîne) | Nom du groupe de pages (par exemple, pages de sports)

Voir aussi

Ajout de propriétés à une définition de profil.

Ajout d’une entrée du glossaire du site à une définition de profil


Module Éditeur d'entrées du glossaire du site

Module Éditeur d’entrées du glossaire du site

Le module Éditeur d’entrées du glossaire du site permet de créer et de gérer des entrées du glossaire du site. Une entrée du glossaire du site est un type de données que vous créez. Il s’agit d’une liste de valeurs spécifiques pertinentes pour votre site. Un glossaire du site vous permet d’affecter cette liste de valeurs à une propriété ou un attribut.

Par exemple, si vous créez une entrée du glossaire du site pour la couleur préférée, vous fournissez une liste des couleurs dans laquelle les utilisateurs sélectionnent leur couleur préférée. L’entrée du glossaire du site « Couleur préférée » restreint le choix des couleurs aux couleurs que vous incluez. Cela nécessite que les utilisateurs qui préfèrent des variations du violet, telles que la couleur mauve, pourpre ou lavande, choisissent le violet.

Vous utilisez des entrées du glossaire du site pour :

  • uniformiser et limiter les choix proposés lorsqu’une entrée de l’utilisateur est requise sur votre site ;

  • éviter des variations orthographiques dans les entrées des utilisateurs ;

  • faire correspondre des valeurs, telles que la couleur d’un produit et la couleur préférée d’un utilisateur, de manière à cibler un contenu en fonction des utilisateurs. Par exemple, si la propriété de couleur d’un produit est « violet », vous pouvez la faire correspondre avec l’entrée du glossaire du site couleur préférée puis diffuser aux utilisateurs des publicités du produit de couleur violette.

Dans un formulaire de votre site Web, les entrées du glossaire du site sont présentées aux utilisateurs sous forme de zones de liste.

Groupes d’entrées du glossaire du site

Les groupes d’entrées du glossaire du site permettent d’organiser des entrées du glossaire du site dans l’Éditeur d’entrées du glossaire du site. Par exemple, si vous disposez de 50 entrées du glossaire du site et que vous en utilisez 10 pour collecter des informations sur les produits préférés d’un utilisateur, 20 pour collecter des informations sur le mode de vie d’un utilisateur et 20 pour collecter des informations sur les opinions d’un utilisateur à propos de l’actualité, vous pouvez créer un groupe d’entrées du glossaire du site nommé Produits pour les entrées du glossaire relatives aux produits préférés, un groupe nommé Mode de vie pour les entrées du glossaire relatives au mode de vie et un groupe nommé Opinions pour les entrées du glossaire relatives aux opinions.

Entrées du glossaire du site

Les sites solutions Commerce Server comportent des exemples d’entrées du glossaire du site. Si le développeur de votre site a utilisé un site solution pour créer votre site, vous devez disposer des entrées du glossaire du site suivantes :

Entrées du glossaire du site | Glossaire
État du compte | Compte actif Compte inactif
Rôle de l’utilisateur | Utilisateur normal Administrateur
Type d’utilisateur | Utilisateur invité Utilisateur inscrit
Jours | Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi
Mois | Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre Décembre

Voir aussi

Ajout d’une entrée du glossaire du site


Ajout d'une entrée du glossaire du site

Ajout d’une entrée du glossaire du site

Le module Éditeur d’entrées du glossaire du site permet de créer des entrées du glossaire du site et d’ajouter ensuite des entrées (valeurs) à vos entrées du glossaire du site.

Pour ajouter une entrée du glossaire du site

  1. Dans Utilisateurs, cliquez sur Éditeur d’entrées du glossaire du site.

  2. Dans l’écran Éditeur d’entrées du glossaire du site, sélectionnez le groupe auquel vous voulez ajouter l’entrée du glossaire du site, puis cliquez sur Ajouter.

  3. Dans la boîte de dialogue Ajouter, sélectionnez l’option Ajouter une nouvelle entrée du glossaire du site, puis cliquez sur OK.

  4. Dans l’écran Éditeur d’entrées du glossaire du site, dans la section Attributs de l’entrée du glossaire du site, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom de programmation pour la nouvelle entrée du glossaire du site, par exemple, Couleur_préférée. Ce nom ne peut pas excéder 128 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper un nom complet pour la nouvelle entrée du glossaire du site. Par exemple, Couleur préférée. Le nom complet ne peut pas excéder 128 caractères.
    Description | Taper une description d’identification pour la nouvelle entrée du glossaire du site.

  5. Dans la section Glossaire, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom de la valeur | Cliquer sur Nouveau, puis taper un nom de programmation pour la nouvelle entrée du glossaire. Une entrée du glossaire du site est représentée par une valeur. Par exemple, vous pouvez taper Rouge, Bleu, Vert et Jaune comme entrées du glossaire du site Couleur_préférée. Ce nom ne peut pas excéder 128 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper un nom complet pour la nouvelle entrée du glossaire. Le nom complet ne peut pas excéder 128 caractères.

  6. Cliquez sur Accepter.

    Remarque

    • Vous pouvez ajouter autant d’entrées que nécessaire à la nouvelle entrée du glossaire du site. Cliquez sur Nouveau pour ajouter une autre entrée du glossaire.
  7. Pour enregistrer la nouvelle entrée du glossaire du site et revenir à l’écran Business Desk, cliquez sur Appliquer, puis sur Enregistrement et retour dans la barre d’outils.

L’entrée du glossaire du site est alors enregistrée. Vous pouvez maintenant utiliser l’entrée du glossaire du site comme valeur de propriété de profil en ajoutant l’entrée du glossaire du site à la propriété de profil. Par exemple, vous pouvez créer une entrée du glossaire du site intitulée Couleur_préférée, puis ajouter l’entrée Couleur_préférée comme propriété Couleur préférée dans la définition de profil Objet utilisateur. Lorsque l’utilisateur répondra à la question Couleur préférée sur votre site Web, il sélectionnera la couleur préférée dans une liste déroulante contenant les entrées du glossaire que vous avez tapées dans le glossaire du site.

Voir aussi

À propos des utilisateurs

Ajout d’un groupe d’entrées du glossaire du site

Ajout d’une entrée du glossaire du site à une définition de profil


Ajout d'un groupe d'entrées du glossaire du site

Ajout d’un groupe d’entrées du glossaire du site

Le module Éditeur d’entrées du glossaire du site permet de créer des groupes d’entrées du glossaire du site qui organisent les entrées du glossaire du site associées dans l’Éditeur d’entrées du glossaire du site. Par exemple, si vous créez des entrées du glossaire du site pour le code postal, vous pouvez créer un groupe d’entrées du glossaire du site pour chaque département ou région et à l’intérieur de chaque département ou région, créer une entrée du glossaire du site pour chaque ville contenant les codes postaux de cette ville. Les groupes d’entrées du glossaire du site sont affichés dans la liste Structure des entrées du glossaire du site dans l’écran Éditeur d’entrées du glossaire du site avec une flèche de direction à gauche du nom du groupe. Cliquez sur cette flèche pour développer la liste des entrées du glossaire du site.

Pour créer un groupe d’entrées du glossaire du site

  1. Dans Utilisateurs, cliquez sur Éditeur d’entrées du glossaire du site.

  2. Dans l’écran Éditeur d’entrées du glossaire du site, cliquez sur Ajouter.

  3. Dans la boîte de dialogue Ajouter, sélectionnez Ajouter un nouveau groupe, puis cliquez sur OK.

  4. Dans l’écran Éditeur d’entrées du glossaire du site, dans la section Attributs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom de programmation pour le nouveau groupe d’entrées du glossaire du site. Ce nom ne peut pas excéder 128 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper un nom complet pour le nouveau groupe d’entrées du glossaire du site. Le nom complet ne peut pas excéder 128 caractères.
    Description | Taper une description pour le nouveau groupe d’entrées du glossaire du site.

  5. Pour enregistrer le nouveau groupe d’entrées du glossaire du site et revenir à l’écran principal Business Desk, cliquez sur Appliquer, puis sur Enregistrement et retour dans la barre d’outils.

Le groupe d’entrées du glossaire du site est alors enregistré. Vous pouvez maintenant utiliser le groupe d’entrées du glossaire du site pour organiser vos entrées du glossaire du site.

Voir aussi

À propos des utilisateurs

Ajout d’une entrée du glossaire du site

Modification des entrées du glossaire du site


Ajout de propriétés à une définition de profil

Le module Définition de profil permet d’ajouter des propriétés aux définitions de profils et de définir les attributs de la nouvelle propriété. Les propriétés de profil spécifient les données à collecter lorsqu’un utilisateur visite votre site Web. Par exemple, la propriété de profil Prénom indique que le prénom de l’utilisateur doit être collecté.

Chaque propriété de profil dispose d’attributs qui définissent les caractéristiques des informations collectées par la propriété. Par exemple, vous pouvez utiliser les attributs de la propriété de profil Prénom pour définir une propriété comme chaîne de valeur unique pouvant être exportée vers Data Warehouse. Vous pouvez également utiliser la fonctionnalité Définition de profil pour ajouter des attributs personnalisés à une définition de profil. Les attributs personnalisés permettent de définir des caractéristiques de propriétés de profil qui ne sont pas disponibles dans les attributs existants. Pour plus d’informations sur les attributs de propriétés de profil, consultez Définition de profil.

Pour ajouter une propriété

Pour ajouter un attribut personnalisé

Pour ajouter une propriété

  1. Dans Utilisateurs, cliquez sur Définition de profil.

  2. Dans l’écran Profils, sélectionnez la définition de profil à laquelle vous voulez ajouter une propriété, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Profil, dans la liste Propriétés, sélectionnez le groupe auquel vous voulez ajouter une propriété, puis cliquez sur Ajouter.

  4. Dans la boîte de dialogue Ajouter, sélectionnez l’option Ajouter une nouvelle propriété, puis cliquez sur OK.

  5. Dans la section Attributs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom de programmation pour la propriété. Ce nom ne peut pas excéder 128 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper un nom complet pour la propriété. Le nom complet ne peut pas excéder 128 caractères.
    Description | Taper une description pour la propriété.
    Type Sélectionner le type de propriété dans la liste déroulante. Une propriété peut être de l’un des types suivants :
    • Chaîne

    • Chaîne de type long

    • Nombre

    • Décimal

    • Boolean

    • Binaire

    • Binaire de type long

    • Date/heure

    • Devise

    • Mot de passe

    • Entrée du glossaire du site

    • Profil

    Pour plus d’informations sur l’ajout d’une propriété de type Entrée du glossaire du site à une définition de profil, consultez Ajout d’une entrée du glossaire du site à une définition de profil.

    Pour plus d’informations sur l’ajout d’une propriété de type Profil à une définition de profil, consultez Ajout d’une définition de profil à une définition de profil.

  6. Dans la section Attributs avancés, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Activé | Indiquer si la nouvelle propriété est Active ou Inactive.
    Mapper vers les données Cliquer sur le bouton de sélection […] pour ouvrir la boîte de dialogue Sélecteur de source de données.

    Dans la boîte de dialogue Sélecteur de source de données, sélectionner le membre de données pour la propriété. Les membres de données disponibles pour la propriété sont ceux qui ne sont pas déjà utilisés dans la définition de profil que vous modifiez. Les propriétés actuellement utilisées par le profil ne sont pas disponibles.

    Si vous ne mappez pas la propriété vers un membre de données, la propriété ne sera pas conservée mais sera disponible dans la mémoire, par exemple, pour stocker les informations sur le département lorsqu’un utilisateur visite votre site.

    Type de clé Sélectionner le type de clé dans la liste déroulante :

    Clé unique. Indique que la valeur de cette propriété est unique pour tous les membres. Vous mappez un attribut qui est spécifié comme clé unique vers un champ unique d’une base de données SQL Server ou vers un attribut unique d’une source LDAP (Lightweight Directory Access Protocol).

    Clé primaire. Indique que la valeur de cette propriété est unique pour tous les membres. Vous mappez un attribut qui est spécifié comme clé primaire vers un champ primaire d’une base de données SQL Server ou vers un attribut unique d’une source LDAP.

    Clé de jointure. Établit une relation entre cette propriété et une autre propriété se trouvant dans une autre banque de données du service Profils.

    Double clé (primaire et de jointure). Indique que la valeur de cette propriété est unique et établit une relation entre cette propriété et une propriété se trouvant dans une autre banque de données.
    Requis | Indiquer que la propriété requiert une entrée de l’utilisateur.
    Exportée | Indiquer que la propriété sera importée dans Data Warehouse.
    Différer le chargement du cache | Indiquer que la propriété ne sera renvoyée que lorsqu’elle sera sollicitée de façon explicite.
    À valeurs multiples | Indiquer que la propriété accepte les attributs à plusieurs valeurs.
    Possibilité de recherche | Indiquer que la propriété pourra être utilisée par la fonction de recherche du site Web.
    RDN (Relative Distinguished Name) | Considérer cette propriété comme RDN (Relative Distinguished Name) de tous les profils à mapper vers des sources LDAP. Cela ne s’applique pas au Fournisseur des sources OLE DB pour Microsoft Commerce Server (OLE DB) ou à tout autre type de source de données.
    Clé de hachage | Indiquer que cette valeur de propriété sera hachée et utilisée pour déterminer dans quelle partition de source de données seront stockées les données de profil.

  7. Pour enregistrer la propriété, cliquez sur Appliquer, puis sur Enregistrer dans la barre d’outils pour enregistrer le profil.

La définition de profil est enregistrée avec la nouvelle propriété. Après avoir ajouté une propriété à une définition de profil, vous devez publier les modifications sur votre site Web. Pour plus d’informations sur la publication de vos modifications, consultez Publication des modifications apportées aux définitions de profil sur votre site Web.

Pour ajouter un attribut personnalisé

  1. Dans Utilisateurs, cliquez sur Définition de profil.

  2. Dans l’écran Profils, sélectionnez la définition de profil qui contient la propriété à laquelle vous souhaitez ajouter un attribut personnalisé, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Profil, dans la liste Propriétés, développez le groupe contenant la propriété à laquelle vous voulez ajouter un attribut personnalisé, puis sélectionnez la propriété.

  4. Dans la section Attributs personnalisés, cliquez sur Nouveau, puis effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom de programmation pour l’attribut. Ce nom ne peut pas excéder 128 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper un nom complet pour l’attribut. Le nom complet ne peut pas excéder 128 caractères.
    Description | Taper une description de l’attribut.
    Valeur | Taper la valeur de l’attribut.

  5. Cliquez sur Accepter.

    Remarque

    • Répétez les étapes 4 et 5 pour ajouter autant d’attributs personnalisés que nécessaire pour cette propriété.
  6. Pour enregistrer la définition de profil avec le nouvel attribut personnalisé et revenir à l’écran Profils, cliquez sur Appliquer, puis sur Enregistrement et retour dans la barre d’outils.

La définition de profil est enregistrée avec le nouvel attribut personnalisé. Après avoir ajouté un attribut personnalisé à une définition de profil, vous devez publier les modifications sur votre site Web. Pour plus d’informations sur la publication de vos modifications, consultez Publication des modifications apportées aux définitions de profil sur votre site Web.

Voir aussi

À propos des utilisateurs

Ajout d’un groupe de propriétés à une définition de profil.

Ajout d’une entrée du glossaire du site à une définition de profil


Ajout d'un groupe de propriétés à une définition de profil

Ajout d’un groupe de propriétés à une définition de profil

Le module Définition de profil permet d’ajouter des groupes de propriétés à des définitions de profils. Les groupes de propriétés vous permettent d’organiser les propriétés de profil dans le module Définition de profil. Par exemple, vous pouvez ajouter 50 propriétés à la définition de profil Objet utilisateur pour collecter les données sur les produits préférés, les modes de vie et les opinions sur l’actualité des utilisateurs qui visitent votre site Web. Vous pouvez créer des groupes de propriétés, tels que Produit, Mode de vie et Opinions pour organiser les propriétés de sorte qu’ils soient faciles à trouver dans la liste Propriétés dans l’écran Définition de profil.

Les groupes de propriétés sont affichés dans la liste Propriétés dans l’écran Définition de Profil avec une flèche de direction à gauche du nom du groupe. Cliquez sur cette flèche pour développer la liste des propriétés.

Pour ajouter une nouvelle propriété de groupe

  1. Dans Utilisateurs, cliquez sur Définition de profil.

  2. Dans l’écran Profils, sélectionnez la définition de profil à laquelle vous souhaitez ajouter un nouveau groupe de propriétés, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Profil, dans la liste Propriétés, sélectionnez le groupe auquel vous voulez ajouter un nouveau groupe de propriétés, puis cliquez sur Ajouter.

    Remarque

    • Si vous souhaitez créer un groupe de propriétés qui n’appartient pas à un groupe existant, ne sélectionnez pas un groupe existant avant de cliquer sur Ajouter.
  4. Dans la boîte de dialogue Ajouter, sélectionnez l’option Ajouter un nouveau groupe, puis cliquez sur OK.

  5. Dans la section Attributs, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper un nom de programmation pour le nouveau groupe de propriétés. Ce nom ne peut pas excéder 128 caractères et doit contenir uniquement des caractères alphanumériques et des traits de soulignement (_). Le nom ne peut pas contenir d’espace.
    Nom complet | Taper un nom complet pour le nouveau groupe de propriétés. Le nom complet ne peut pas excéder 128 caractères.
    Description | Taper une description pour le nouveau groupe de propriétés.

  6. Pour enregistrer la définition de profil et revenir à l’écran Profils, cliquez sur Appliquer, puis sur Enregistrement et retour dans la barre d’outils.

La définition de profil est enregistrée avec le nouveau groupe de propriétés. Vous pouvez maintenant placer les propriétés existantes dans le nouveau groupe ou créer de nouvelles propriétés à l’intérieur du nouveau groupe. Après avoir ajouté une définition de profil à un groupe, vous devez publier les modifications sur votre site Web. Pour plus d’informations sur la publication de vos modifications, consultez Publication des modifications apportées aux définitions de profil sur votre site Web.

Voir aussi

À propos des utilisateurs

Ajout de propriétés à une définition de profil.

Modification de propriétés de profil


Publication des modifications apportées aux définitions de profil sur votre site Web

Vous devez publier les modifications apportées aux définitions de profils avant de pouvoir ajouter des données aux propriétés des nouveaux profils. Le module Publier les profils permet de mettre à jour votre site Web avec vos dernières modifications. Dans la plupart des sociétés de commerce électronique, ces modifications sont d’abord effectuées sur un site de test, puis publiées sur votre site de production à des heures planifiées. Contactez votre administrateur système pour savoir quand et comment des modifications sont apportées à votre site de production.

Pour publier les modifications apportées au profil

  1. Dans Utilisateurs, cliquez sur Publier les profils.

  2. Dans l’écran Publier les profils, sélectionnez le site sur lequel vous souhaitez publier les modifications apportées aux définitions de profils, puis cliquez sur Publier les modifications pour la production et actualiser le cache dans la barre d’outils.

    Remarques

    • Si votre site comprend plusieurs serveurs Web, vous devez publier les modifications apportées aux définitions de profil sur chaque serveur Web.

    • Vous pouvez réinitialiser l’état de l’actualisation en cliquant sur Réinitialiser l'état d'actualisation dans la barre d’outils. La réinitialisation de l’état de l’actualisation ne réinitialise pas ou n’annule pas les modifications publiées antérieurement.

Les modifications apportées aux définitions de profils sont publiées sur votre site Web.

Voir aussi

Définition de profil

Gestion de définitions de profils


Ajout d'un utilisateur

Ajout d’un utilisateur

Le module Utilisateurs permet d’ajouter un profil pour un nouvel utilisateur sur votre site. Si vous souhaitez associer l’utilisateur à une organisation, vous devez créer le profil de l’organisation dans le module Organisations avant de pouvoir associer un profil utilisateur au profil de cette organisation.

Remarque

  • Il est possible que l’écran Nouvel utilisateur ne contienne pas les mêmes propriétés que celles incluses dans la présente procédure. Les propriétés affichées dans l’écran Nouvel utilisateur sont contrôlées par la définition de profil Objet utilisateur. Si vous avez modifié les propriétés de cette définition, ces modifications seront reflétées dans l’écran Nouvel utilisateur. Pour plus d’informations sur la modification des propriétés d’une définition de profil, consultez Gestion de définitions de profils.

Pour ajouter un nouvel utilisateur

  1. Dans Utilisateurs, cliquez sur Utilisateurs.

  2. Dans l’écran Utilisateurs, cliquez sur Nouveau dans la barre d’outils.

  3. Dans l’écran Nouvel utilisateur, dans la section Informations générales, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’ouverture de session | Taper un nom d’ouverture de session pour le nouvel utilisateur.
    Mot de passe de l’utilisateur | Taper un mot de passe pour le nouvel utilisateur.
    Courrier électronique | Taper une adresse de messagerie pour le nouvel utilisateur.
    Type d’utilisateur | Sélectionner dans la liste déroulante si le nouvel utilisateur est un utilisateur Inscrit ou Invité. En règle générale, vous ne créerez que des utilisateurs inscrits.
    Titre de l’utilisateur | Taper un titre pour le nouvel utilisateur, tel que « M. » ou « Mme ».
    Nom | Taper le nom du nouvel utilisateur.
    Prénom | Taper le prénom du nouvel utilisateur.
    Numéro de téléphone | Taper un numéro de téléphone pour le nouvel utilisateur.
    Numéro de poste | Taper un numéro de poste pour le nouvel utilisateur.
    Numéro de télécopie | Taper un numéro de télécopieur pour le nouvel utilisateur.
    Numéro de poste de télécopie | Taper un numéro de poste de télécopieur pour le nouvel utilisateur.

  4. Dans la section Informations sur le compte, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    État du compte | Dans la liste déroulante, sélectionnez si l’utilisateur dispose d’un Compte actif ou d’un Compte inactif. L’état par défaut est Compte actif. Les utilisateurs disposant de comptes inactifs ne pourront pas se connecter à votre site.
    Groupe de catalogues de l’utilisateur | Dans la liste déroulante, sélectionnez le groupe de catalogues auquel vous souhaitez que l’utilisateur ait accès.

    Remarque

    • Si vous souhaitez configurer l’identificateur d’organisation pour l’utilisateur, vous devez d’abord créer l’organisation dans le module Organisations, avant de pouvoir associer l’utilisateur à cette organisation.
  5. Dans la section Business Desk, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Indicateurs de rôle du Service Partenaire | Dans la liste déroulante, sélectionnez si l’utilisateur est un Utilisateur ordinaire ou un Administrateur. L’indicateur de rôle par défaut est Utilisateur ordinaire. Les utilisateurs Administrateur sont des administrateurs délégués et disposent d’un accès étendu pour leur organisation (par exemple, consultation des commandes et création de profils utilisateur) dans un site qui prend en charge les administrateurs délégués.

  6. Pour enregistrer le nouveau profil utilisateur et revenir à l’écran Utilisateurs, cliquez sur Enregistrement et retour dans la barre d’outils.

Le nouveau profil utilisateur est enregistré.

Voir aussi

À propos des utilisateurs

Suppression d’utilisateurs

Recherche d’un utilisateur

Ajout d’une organisation


Importation d'une liste de profils utilisateur

Importation d’une liste de profils utilisateur

Le module Utilisateurs permet d’importer une liste de profils utilisateur à partir du module Gestionnaire de listes. Vous créez une liste d’utilisateurs en exportant un rapport utilisateur statique du module Rapports ver le module Gestionnaire de listes. Par exemple, vous pouvez exporter le rapport Nouveaux utilisateurs inscrits ou le rapport Propriétés de l’utilisateur inscrit comme liste vers le Gestionnaire de listes. Vous pouvez également importer une liste d’utilisateurs au format ASCII délimité dans le module Gestionnaire de listes. Une fois qu’une liste d’utilisateurs se trouve dans le module Gestionnaire de listes, utilisez la fonction Rechercher dans le module Utilisateurs pour importer cette liste dans le module Utilisateurs.

Pour importer une liste de profils utilisateur dans le Gestionnaire de listes

  1. Dans Utilisateurs, cliquez sur Utilisateurs. Si le volet Rechercher n’est pas ouvert sur l’écran Utilisateurs, cliquez sur Rechercher dans la barre d’outils.

  2. Dans la liste déroulante Rechercher par, sélectionnez Listes d’utilisateur :

  3. Une liste des utilisateurs du Gestionnaire de listes s’affiche dans le volet Rechercher.

  4. Sélectionnez la liste utilisateur que vous souhaitez ouvrir dans le module Utilisateurs.

  5. Cliquez sur Rechercher.

Les profils utilisateur de la liste des Gestionnaires de listes sont disponibles dans le module Utilisateurs. Vous pouvez modifier les profils individuellement ou par groupes. Une fois que vous avez enregistré les modifications apportées aux profils utilisateur, les données modifiées sont disponibles sur votre site Web.

Voir aussi

Modification d’un utilisateur

Modification de plusieurs utilisateurs

Exportation d’un rapport statique


Ajout d'une organisation

Ajout d’une organisation

Le module Organisations permet d’ajouter des profils d’organisation à votre site et de spécifier les informations les concernant, telles que les informations d’identification et de contact qui s’y rapportent et le groupe de catalogues qu’elles peuvent utiliser. Si vous souhaitez ajouter un contact administratif ou un récepteur à un profil d’organisation, vous devez d’abord créer le profil de l’organisation puis créer un profil utilisateur pour l’utilisateur qui appartient à cette organisation. Après avoir créé un profil utilisateur pour l’utilisateur qui appartient à l’organisation, vous pouvez ajouter ce profil utilisateur comme contact administratif ou comme récepteur de ce profil d’organisation.

Pour ajouter un profil d’organisation

Pour associer un profil utilisateur à un profil d’organisation existant

Pour associer un profil d’organisation à un profil utilisateur existant

Pour ajouter un profil d’organisation

  1. Dans Utilisateurs, cliquez sur Organisations.

  2. Dans l’écran Organisations, cliquez sur Nouveau dans la barre d’outils.

  3. Dans l’écran Nouvelle organisation, dans la section Informations générales, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Taper le nom de l’organisation. Les noms d’organisations peuvent comporter jusqu’à 53 caractères alphanumériques longs. Le nom peut contenir des espaces.
    Numéro de partenaire commercial | Taper le numéro de l’organisation ou du partenaire commercial.
    Groupe de catalogues de l’organisation | Dans la liste déroulante, sélectionnez le groupe de catalogues auquel vous souhaitez que l’organisation ait accès.

  4. Pour enregistrer le profil de l’organisation et revenir à l’écran Organisations, cliquez sur Enregistrement et retour dans la barre d’outils.

Le nouveau profil d’organisation est enregistré. Vous pouvez maintenant associer un profil utilisateur à un profil d’organisation.

Pour associer un profil utilisateur à un profil d’organisation existant

  1. Dans Utilisateurs, cliquez sur Utilisateurs.

  2. Dans l’écran Utilisateurs, sélectionnez le profil utilisateur que vous souhaitez modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Mettre à jour l’utilisateur : <utilisateur>, dans la section Informations sur le compte, dans la zone Identificateur d’organisation, cliquez sur le bouton de sélection [...] pour afficher la boîte de dialogue Sélectionner Organisation.

  4. Dans la boîte de dialogue Sélectionner Organisation, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Sélectionner l’organisation auquel cet utilisateur appartient | Sélectionner l’organisation auquel l’utilisateur appartient dans la liste.
    Nom Taper le nom de l’organisation (s’il ne figure pas dans la liste Choisir l’organisation à laquelle cet utilisateur appartient), puis cliquer sur Rechercher.

    Lorsque l’organisation s’affiche dans la liste Choisir l’organisation à laquelle cet utilisateur appartient, sélectionner l’organisation.

  5. Cliquez sur OK.

  6. Pour enregistrer le nouveau profil utilisateur et revenir à l’écran Utilisateurs, cliquez sur Enregistrement et retour dans la barre d’outils.

Le profil utilisateur est enregistré. Vous pouvez maintenant ajouter ce profil utilisateur au profil d’organisation comme contact administratif, récepteur ou responsable des achats. Vous ne pouvez ajouter des profils utilisateur qu’à un profil d’organisation qui a été enregistré.

Pour associer un profil d’organisation à un profil utilisateur existant

  1. Dans Utilisateurs, cliquez sur Organisations.

  2. Dans l’écran Organisations, sélectionnez le profil d’organisation auquel vous voulez associer des profils utilisateur, puis cliquez sur Ouvrir dans la barre d’outils.

    Remarque

    • Vous pouvez utiliser le volet Rechercher pour trouver des profils d’organisation par Nom, Date de dernière modification, or Date de création. Pour plus d’informations sur la recherche d’un profil d’organisation, consultez Recherche d’une organisation.
  3. Dans l’écran Mettre à jour l’organisation : <organisation>, dans la section Informations générales, dans la zone Contact administratif, cliquez sur le bouton de sélection [...] pour afficher la boîte de dialogue Sélectionner Utilisateur.

  4. Dans la boîte de dialogue Sélectionner Utilisateur, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Choisir un utilisateur existant | Sélectionner le nom de l’utilisateur que vous voulez ajouter comme contact administratif, puis cliquer sur OK.
    Nom d’ouverture de session Taper le nom de l’utilisateur que vous voulez ajouter comme contact administratif (s’il ne figure pas dans la liste Choisir un utilisateur existant), puis cliquer sur Rechercher.

    Lorsque l’utilisateur s’affiche dans la liste Choisir un utilisateur existant, sélectionner cet utilisateur.

  5. Cliquez sur OK.

  6. Dans la section Informations générales, dans la zone Récepteur, cliquez sur le bouton de sélection [...] pour afficher la boîte de dialogue Sélectionner Utilisateur.

  7. Dans la boîte de dialogue Sélectionner Utilisateur, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Choisir un utilisateur existant | Sélectionner le nom de l’utilisateur que vous voulez ajouter comme récepteur, puis cliquer sur OK.
    Nom d’ouverture de session Taper le nom de l’utilisateur que vous voulez ajouter comme récepteur (s’il ne figure pas dans la liste Choisir un utilisateur existant), puis cliquer sur Rechercher.

    Lorsque l’utilisateur s’affiche dans la liste Choisir un utilisateur existant, sélectionner cet utilisateur.

  8. Cliquez sur OK.

  9. Dans la section Achat, dans la zone Responsable des achats, cliquez sur le bouton de sélection [...] pour afficher la boîte de dialogue Sélectionner Utilisateur.

  10. Dans la boîte de dialogue Sélectionner Utilisateur, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Choisir un utilisateur existant | Sélectionner le nom de l’utilisateur que vous voulez ajouter comme responsable des achats, puis cliquer sur OK.
    Nom d’ouverture de session Taper le nom de l’utilisateur que vous voulez ajouter comme responsable des achats (s’il ne figure pas dans la liste Choisir un utilisateur existant), puis cliquer sur Rechercher.

    Lorsque l’utilisateur s’affiche dans la liste Choisir un utilisateur existant, sélectionner cet utilisateur.

  11. Cliquez sur OK.

  12. Pour enregistrer l’organisation et revenir à l’écran Organisations, cliquez sur Enregistrement et retour dans la barre d’outils.

Le profil de l’organisation est enregistré avec le contact administratif, le récepteur et le responsable des achats.

Voir aussi

À propos des utilisateurs

Modification d’une organisation

Recherche d’une organisation


Réinitialisation d'un mot de passe utilisateur

Réinitialisation d’un mot de passe utilisateur

Le module Utilisateurs permet de réinitialiser les mots de passe des utilisateurs inscrits qui ont oublié le leur. Après avoir réinitialisé le mot de passe de l’utilisateur, vous devez informer ce dernier de son nouveau mot de passe.

Pour réinitialiser le mot de passe d’un utilisateur

  1. Dans Utilisateurs, cliquez sur Utilisateurs.

  2. Dans l’écran Utilisateurs, sélectionnez le profil de l’utilisateur dont vous souhaitez réinitialiser le mot de passe, puis cliquez sur Ouvrir dans la barre d’outils.

    Remarque

    • Pour afficher le profil d’un utilisateur particulier, utilisez le volet de recherche situé en haut de l’écran Utilisateurs. Pour plus d’informations sur la recherche d’un profil utilisateur, consultez Recherche d’un utilisateur.
  3. Dans l’écran Mettre à jour l’utilisateur, dans la section Informations générales, dans la zone Mot de passe de l’utilisateur, sélectionnez le mot de passe actuel, qui est affiché sous la forme d’une ligne d’astérisques.

  4. Tapez le nouveau mot de passe.

    Remarque

    • Les mots de passe doivent comprendre entre 7 et 14 caractères alphanumériques. Les mots de passe ne peuvent pas contenir d’espaces.
  5. Pour enregistrer le nouveau mot de passe et revenir à l’écran Utilisateurs, cliquez sur Enregistrement et retour dans la barre d’outils.

Le profil utilisateur est enregistré avec le nouveau mot de passe. Vous devez informer l’utilisateur de son nouveau mot de passe.


Gestion des groupes et des entrées du glossaire du site

Le module Éditeur d’entrées du glossaire du site permet de créer et de mettre à jour des entrées du glossaire du site. Vous utilisez des entrées du glossaire du site pour uniformiser et limiter les choix proposés lorsqu’une entrée de l’utilisateur est requise, ainsi que pour cibler un contenu qui est destiné aux utilisateurs. Par exemple, vous pouvez limiter les couleurs que les utilisateurs peuvent sélectionner lorsqu’ils choisissent leur couleur préférée.

Cette section contient les rubriques suivantes :

  • Ajout d’une entrée du glossaire du site à une définition de profil

  • Modification des entrées du glossaire du site

  • Suppression d’une valeur d’une entrée du glossaire du site

  • Réorganisation des entrées du glossaire du site

  • Suppression d’entrées du glossaire du site


Ajout d'une entrée du glossaire du site à une définition de profil

Ajout d’une entrée du glossaire du site à une définition de profil

Après avoir créé une entrée du glossaire du site, vous pouvez l’ajouter à une définition de profil.

Pour ajouter une entrée du glossaire du site à une définition de profil

  1. Dans Utilisateurs, cliquez sur Définition de profil.

  2. Dans l’écran Profils, sélectionnez la définition de profil contenant la propriété que vous souhaitez modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Profil, dans la liste Propriétés, sélectionnez la propriété à laquelle vous souhaitez ajouter l’entrée du glossaire du site.

    Remarque

    • Si cette propriété ne figure pas dans la liste Propriétés, développez le groupe de propriétés contenant la propriété à laquelle vous voulez ajouter l’entrée du glossaire du site, puis sélectionnez la propriété.
  4. Dans l’écran Attributs, dans la section Attributs, sélectionnez Entrée du glossaire du site dans la liste déroulante Type.

  5. Dans la zone Référence de type, cliquez sur le bouton de sélection [...] pour ouvrir la boîte de dialogue Sélection de l’entrée du glossaire du site.

  6. Dans la boîte de dialogue Sélection de l’entrée du glossaire du site, dans la liste Sélectionner une entrée du glossaire du site, développez le groupe d’entrées du glossaire du site contenant l’entrée du glossaire du site que vous voulez ajouter à la définition de propriété, puis sélectionnez l’entrée du glossaire du site.

  7. Cliquez sur OK.

  8. Pour enregistrer la définition de profil modifiée et revenir à l’écran Profils, cliquez sur Appliquer, puis sur Enregistrement et retour dans la barre d’outils.

La définition de profil est enregistrée. Vous devez publier les modifications apportées aux définitions de profils sur votre site Web. Pour plus d’informations sur la publication de vos modifications, consultez Publication des modifications apportées aux définitions de profil sur votre site Web.

Voir aussi

Ajout d’une entrée du glossaire du site

Ajout de propriétés à une définition de profil.

Modification de propriétés de profil

Modification des entrées du glossaire du site


Modification des entrées du glossaire du site

Le module Éditeur d’entrées du glossaire du site permet de modifier des entrées du glossaire du site et des groupes d’entrées du glossaire du site existants.

Pour modifier une entrée du glossaire du site

  1. Dans Utilisateurs, cliquez sur Éditeur d’entrées du glossaire du site.

  2. Dans l’écran Éditeur d’entrées du glossaire du site, sélectionnez l’entrée du glossaire du site que vous souhaitez modifier.

  3. Dans la section Attributs de l’entrée du glossaire du site, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom complet | Modifier le nom complet de l’entrée du glossaire du site. Le nom complet ne peut pas excéder 128 caractères.
    Description | Modifier la description de l’entrée du glossaire du site.

    Remarque

    • Vous pouvez modifier le nom complet d’une entrée du glossaire du site, mais pas son nom de programmation. Si vous voulez modifier le nom de programmation d’une entrée du glossaire du site, vous devez supprimer l’entrée du glossaire du site, puis créer une nouvelle entrée du glossaire du site portant le nom que vous souhaitez utiliser.
  4. Dans la section Glossaire, sélectionnez l’entrée du glossaire que vous souhaitez modifier, puis cliquez sur Modifier.

  5. Modifiez l’entrée du glossaire comme vous le souhaitez, puis cliquez sur Accepter.

    Remarque

    • Vous pouvez modifier autant d’entrées du glossaire que nécessaire. Cliquez sur Modifier pour modifier une autre entrée du glossaire. Vous pouvez également ajouter et supprimer des entrées du glossaire du site. Cliquez sur Nouveau pour ajouter une nouvelle entrée du glossaire. Cliquez sur Supprimer pour supprimer une entrée du glossaire sélectionnée.
  6. Pour enregistrer l’entrée du glossaire du site et revenir à l’écran Business Desk, cliquez sur Appliquer, puis sur Enregistrement et retour dans la barre d’outils.

L’entrée du glossaire du site est alors enregistrée.

Voir aussi

À propos des utilisateurs

Ajout d’une entrée du glossaire du site

Ajout d’un groupe d’entrées du glossaire du site

Ajout d’une entrée du glossaire du site à une définition de profil


Suppression d'une valeur d'une entrée du glossaire du site

Suppression d’une valeur d’une entrée du glossaire du site

Le module Éditeur d’entrées du glossaire du site permet de supprimer des entrées du glossaire du site. Par exemple, vous pouvez supprimer « violet » de l’entrée du glossaire du site Couleur.

Pour supprimer une valeur

  1. Dans Utilisateurs, cliquez sur Éditeur d’entrées du glossaire du site.

  2. Dans l’écran Éditeur d’entrées du glossaire du site, sélectionnez l’entrée du glossaire du site pour laquelle vous voulez supprimer une valeur.

  3. Dans la section Glossaire, sélectionnez, dans la liste des entrées, l’entrée que vous souhaitez supprimer, puis cliquez sur Supprimer.

    L’entrée est alors supprimée de la liste Glossaire.

  4. Cliquez sur Appliquer pour enregistrer les modifications apportées aux attributs de l’entrée du glossaire du site.

  5. Pour enregistrer l’entrée du glossaire du site modifiée et revenir à l’écran Business Desk, cliquez sur Enregistrement et retour dans la barre d’outils.

L’entrée du glossaire du site modifiée est alors enregistrée.

Voir aussi

À propos des utilisateurs

Ajout d’une entrée du glossaire du site

Ajout d’un groupe d’entrées du glossaire du site


Réorganisation des entrées du glossaire du site

Le module Éditeur d’entrées du glossaire du site permet d’organiser des entrées du glossaire du site et des groupes d’entrées du glossaire du site. Vous pouvez déplacer les entrées et les groupes d’entrées du glossaire du site vers le haut et vers le bas dans la liste Structure des entrées du glossaire du site. Vous pouvez changer l’entrée du glossaire du site de groupe en déplaçant celle-ci entre les groupes.

Pour déplacer une entrée du glossaire du site

  1. Dans Utilisateurs, cliquez sur Éditeur d’entrées du glossaire du site.

  2. Dans l’écran Éditeur d’entrées du glossaire du site, sélectionnez l’entrée ou le groupe d’entrées du glossaire du site que vous souhaitez déplacer.

  3. Cliquez sur les flèches vers le haut et vers le bas situées sous la liste Structure des entrées du glossaire du site pour déplacer l’entrée ou le groupe d’entrées du glossaire du site jusqu’au nouvel emplacement.

  4. Pour enregistrer vos modifications et revenir à l’écran Business Desk, cliquez sur Enregistrement et retour dans la barre d’outils.

L’entrée du glossaire du site est alors enregistrée.

Voir aussi

À propos des utilisateurs

Ajout d’une entrée du glossaire du site

Ajout d’un groupe d’entrées du glossaire du site


Suppression d'entrées du glossaire du site

Suppression d’entrées du glossaire du site

Le module Éditeur d’entrées du glossaire du site permet de supprimer des entrées du glossaire du site et des groupes d’entrées du glossaire du site.

Pour supprimer une entrée du glossaire du site

  1. Dans Utilisateurs, cliquez sur Éditeur d’entrées du glossaire du site.

  2. Dans l’écran Éditeur d’entrées du glossaire du site, sélectionnez l’entrée ou le groupe d’entrées du glossaire que vous souhaitez supprimer, puis cliquez sur Supprimer.

  3. Dans la boîte de dialogue Supprimer, cliquez sur OK pour supprimer l’entrée du glossaire du site.

    Attention

    • Si vous supprimez un groupe d’entrées du glossaire du site, toutes les entrées du glossaire du site se trouvant dans ce groupe sont également supprimées.
  4. Pour enregistrer vos modifications et revenir à l’écran Business Desk, cliquez sur Enregistrement et retour dans la barre d’outils.

Voir aussi

À propos des utilisateurs

Ajout d’une entrée du glossaire du site

Ajout d’un groupe d’entrées du glossaire du site


Gestion des définitions de profils

Le module Définition de profil permet notamment d’ajouter, de modifier et de supprimer des propriétés de profil. Lorsque les informations dont vous avez besoin concernant les utilisateurs et les organisations changent, vous pouvez modifier les définitions de profils existantes en conséquence.

Cette section contient les rubriques suivantes :

  • Ajout d’une définition de profil à une définition de profil

  • Modification de propriétés de profil

  • Suppression de propriétés d’une définition de profil


Ajout d'une définition de profil à une définition de profil

Ajout d’une définition de profil à une définition de profil

Vous pouvez ajoute une définition de profil à une définition de profil. Vous pouvez définir une propriété comme profil dans une définition de profil, puis associer une définition de profil à cette propriété. Par exemple, vous pouvez associer des informations sur les adresses à la définition de profil Objet utilisateur en ajoutant à cette définition une propriété intitulée « Adresse » définissant la propriété Adresse comme profil avec l’attribut Type, puis en sélectionnant la définition de profil Adresse comme Référence de type de la propriété Adresse. Mappez la nouvelle propriété Adresse vers un membre de données de type chaîne qui stockera le nom de l’instance du profil contenant l’adresse de l’utilisateur. Vous pouvez utiliser cette procédure pour associer plusieurs adresses au profil Objet utilisateur. Par exemple, vous pouvez créer une propriété d’adresse de facturation et une propriété d’adresse de livraison, toutes les deux utilisant la définition de profil Adresse pour collecter les informations sur les adresses destinées à l’utilisateur.

Dans cet exemple, la valeur de la propriété d’adresse dans le profil utilisateur est le nom du profil d’adresse contenant l’adresse de l’utilisateur. L’administrateur système peut utiliser la propriété d’adresse dans le profil utilisateur pour présenter l’adresse de l’utilisateur avec les informations de profil de l’utilisateur.

Pour ajouter une définition de profil à une définition de profil

  1. Dans Utilisateurs, cliquez sur Définition de profil.

  2. Dans l’écran Profils, sélectionnez la définition de profil à laquelle vous voulez ajouter une définition de profil, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Profil, dans la liste Propriétés, sélectionnez la propriété à laquelle vous souhaitez ajouter la définition de profil.

    Remarque

    • Si cette propriété ne figure pas dans la liste Propriétés, développez le groupe de propriétés contenant la propriété à laquelle vous voulez ajouter la définition de profil, puis sélectionnez la propriété.
  4. Dans la section Attributs, sélectionnez Profil dans la liste déroulante Type.

  5. Dans la zone Référence de type, cliquez sur le bouton de sélection [...] pour ouvrir la boîte de dialogue Sélection de profil.

  6. Dans la boîte de dialogue Sélection de profil, dans la liste Sélectionner un profil, développez le Catalogue de profils, puis sélectionnez la définition de profil que vous voulez ajouter à la propriété.

  7. Cliquez sur OK.

  8. Pour enregistrer la propriété modifiée et revenir à l’écran Profils, cliquez sur Appliquer, puis sur Enregistrement et retour dans la barre d’outils.

La définition de profil modifiée est enregistrée.

Voir aussi

Définition de profil

Ajout de propriétés à une définition de profil.

Modification de propriétés de profil


Modification de propriétés de profil

Le module Définition de profil permet de modifier des propriétés de profil et des groupes de propriétés qui sont utilisés dans les définitions de profils.

Pour modifier une propriété de profil

  1. Dans Utilisateurs, cliquez sur Définition de profil.

  2. Dans l’écran Profils, sélectionnez le profil contenant la propriété que vous souhaitez modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Profil, dans la liste Propriétés, sélectionnez la propriété ou le groupe de propriétés que vous souhaitez modifier.

    Remarque

    • Si cette propriété ne figure pas dans la liste Propriétés, développez le groupe de propriétés contenant la propriété que vous voulez modifier, puis sélectionnez la propriété.
  4. Modifiez les attributs de la propriété.

    Remarque

    • Vous ne pouvez pas modifier le nom d’une propriété une fois qu’il est créé. Vous pouvez modifier son nom complet, mais son nom de programmation réel reste statique. Si vous souhaitez modifier le nom de programmation, vous devez supprimer la propriété puis la rajouter en utilisant le nouveau nom de programmation.
  5. Pour enregistrer la propriété modifiée et revenir à l’écran Profils, cliquez sur Appliquer, puis sur Enregistrement et retour dans la barre d’outils.

La définition de profil modifiée est enregistrée. Après avoir modifié une propriété dans une définition de profil, vous devez publier les modifications sur votre site Web. Pour plus d’informations sur la publication de vos modifications, consultez Publication des modifications apportées aux définitions de profil sur votre site Web.

Voir aussi

À propos des utilisateurs

Ajout de propriétés à une définition de profil.

Ajout d’un groupe de propriétés à une définition de profil.

Suppression de propriétés d’une définition de profil

Ajout d’une entrée du glossaire du site à une définition de profil


Suppression de propriétés d'une définition de profil

Suppression de propriétés d’une définition de profil

Le module Définition de profil permet de supprimer des propriétés et des groupes de propriétés d’une définition de profil.

Pour supprimer une propriété de profil

  1. Dans Utilisateurs, cliquez sur Définition de profil.

  2. Dans l’écran Profils, sélectionnez la définition de profil de laquelle vous souhaitez supprimer une propriété, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Profil, dans la liste Propriétés, sélectionnez la propriété que vous souhaitez supprimer.

    Remarque

    • Si cette propriété ne figure pas dans la liste Propriétés, développez le groupe de propriétés contenant la propriété que vous voulez supprimer, puis sélectionnez la propriété.
  4. Cliquez sur Supprimer.

  5. Dans la boîte de dialogue Supprimer, cliquez sur OK pour supprimer la propriété.

  6. Pour enregistrer vos modifications et revenir à l’écran Profils, cliquez sur Enregistrement et retour dans la barre d’outils.

La définition de profil modifiée est enregistrée. Après avoir supprimé une propriété dans une définition de profil, vous devez publier les modifications sur votre site Web. Pour plus d’informations sur la publication de vos modifications, consultez Publication des modifications apportées aux définitions de profil sur votre site Web.

Voir aussi

À propos des utilisateurs

Ajout de propriétés à une définition de profil

Ajout d’un groupe de propriétés à une définition de profil.

Modification de propriétés de profil

Gestion des groupes et des entrées du glossaire du site


Gestion des utilisateurs

Le module Utilisateurs permet de trouver, de modifier et de gérer des informations utilisateur.

Cette section contient les rubriques suivantes :

  • Recherche d’un utilisateur

  • Modification d’un utilisateur

  • Modification de plusieurs utilisateurs

  • Copie d’utilisateurs

  • Suppression d’utilisateurs


Recherche d'un utilisateur

Recherche d’un utilisateur

Le module Utilisateurs permet de rechercher un profil utilisateur ou un groupe de profils utilisateur sur votre site Web. Vous pouvez utiliser la boîte de dialogue Rechercher pour affiner votre recherche à l’aide des propriétés de la définition de profil Objet utilisateur et des valeurs du profil utilisateur que vous recherchez. Par exemple, vous pouvez rechercher un profil utilisateur contenant la valeur « Michel » dans la propriété de profil « Prénom ». La liste résultante dans le volet Rechercher contient tous les profils utilisateur correspondant à vos critères de recherche.

Pour rechercher un profil utilisateur

Pour créer une expression permettant de rechercher un profil utilisateur

Pour rechercher un profil utilisateur

  1. Dans Utilisateurs, cliquez sur Utilisateurs. Si le volet Rechercher n’est pas ouvert sur l’écran Utilisateurs, cliquez sur Rechercher dans la barre d’outils.

  2. Dans la liste déroulante Rechercher par, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’ouverture de session | Rechercher un profil utilisateur en fonction de son nom d’ouverture de session.
    Courrier électronique | Rechercher un profil utilisateur en fonction de son adresse de messagerie.
    Nom | Rechercher un profil utilisateur en fonction de son nom.
    Prénom | Rechercher un profil utilisateur en fonction de son prénom.
    État du compte | Rechercher un profil utilisateur dont le compte est actif ou inactif.
    Date d’inscription | Rechercher un profil utilisateur en fonction de la date d’inscription de l’utilisateur.
    Indicateurs de rôle du Service Partenaire | Rechercher le profil utilisateur d’un Utilisateur ordinaire ou d’un Administrateur.
    Date de dernière modification | Rechercher un profil utilisateur modifié à une date donnée.
    Date de création | Rechercher un profil utilisateur créé à une date donnée.
    Listes des utilisateurs. | Ouvrir une liste des utilisateurs dans le module Gestionnaire de listes.

  3. Dans la zone de saisie de la valeur de la propriété qui s’affiche ensuite, tapez ou sélectionnez dans la liste la valeur spécifique pour les propriétés que vous avez sélectionnées (par exemple, le nom ou l’adresse de messagerie du profil utilisateur que vous recherchez).

  4. Si vous avez besoin d’effectuer une recherche plus complexe, sélectionnez Rechercher par propriété dans la liste déroulante Rechercher par, puis créez une expression à rechercher.

    Remarque

    • Vous pouvez inclure une entrée générique (*) pour rechercher un nombre indéfini de caractères dans votre recherche. Par exemple, t* correspond à tous les utilisateurs dont le nom commence par la lettre « t ».
  5. Cliquez sur Rechercher.

Attention

  • Lorsque vous recherchez des profils utilisateur, il est important de limiter vos critères de recherche afin de contrôler le nombre de profils utilisateur correspondant à vos paramètres de recherche. Si un grand nombre de profils utilisateur correspondent à vos critères de recherche, les résultats pourraient nuire de façon significative aux performances de Commerce Server Business Desk.

La recherche s’effectue. Si elle réussit, les profils utilisateur que vous recherchez s’affichent dans la liste des utilisateurs. Si la recherche échoue, l’expression « Aucun élément ne correspond à cette recherche » s’affiche dans la liste des utilisateurs.

Pour créer une expression permettant de rechercher un profil utilisateur

  1. Dans Utilisateurs, cliquez sur Utilisateurs. Si le volet Rechercher n’est pas ouvert en haut de la liste des utilisateurs, cliquez sur Rechercher dans la barre d’outils.

  2. Sélectionnez Rechercher par propriété dans la liste déroulante Rechercher par.

  3. Cliquez sur Nouveau dans le volet Rechercher.

  4. Dans la première liste déroulante, cliquez sur la flèche à droite de la définition de profil, double-cliquez sur le groupe de propriétés, puis sélectionnez la propriété que vous souhaitez utiliser dans la recherche.

    Remarque

    • Le type de la propriété que vous sélectionnez détermine les conditions disponibles pour votre recherche. Par exemple, si la propriété sélectionnée est de type chaîne, vous pouvez définir la condition de votre recherche à est égal à, contient, ou commence par. Si la propriété sélectionnée est de type entrée du glossaire du site, vous pouvez définir la condition de votre recherche à est égal à ou est différent de.
  5. Dans la deuxième liste déroulante, sélectionnez la condition de votre recherche.

    Remarque

    • Le type de la propriété sélectionnée détermine la manière dont vous entrez les critères de votre recherche. Par exemple, si la propriété sélectionnée est de type chaîne, vous devez taper la chaîne recherchée dans la troisième zone. Si la propriété sélectionnée est de type entrée du glossaire du site, cliquez sur le bouton de sélection [...] pour ouvrir la boîte de dialogue Choisir une entrée du glossaire du site, puis sélectionnez la valeur que vous recherchez.
  6. Dans la troisième zone, tapez ou sélectionnez les critères de votre recherche.

  7. Cliquez sur Appliquer, puis sur Rechercher.

La recherche s’effectue. Si elle réussit, les profils utilisateur que vous recherchez s’affichent dans la liste des utilisateurs. Si elle échoue, l’expression « Aucun élément ne correspond à cette recherche » s’affiche dans la liste des utilisateurs.

Voir aussi

À propos des utilisateurs

Ajout d’un utilisateur

Modification d’un utilisateur

Copie d’utilisateurs

Suppression d’utilisateurs


Modification d'un utilisateur

Modification d’un utilisateur

Le module Utilisateurs permet de modifier un profil utilisateur existant.

Pour modifier un utilisateur

  1. Dans Utilisateurs, cliquez sur Utilisateurs.

  2. Dans l’écran Utilisateurs, sélectionnez le profil utilisateur que vous souhaitez modifier, puis cliquez sur Ouvrir dans la barre d’outils.

    Remarque

    • Pour afficher un profil utilisateur particulier, utilisez le volet de recherche situé en haut de l’écran Utilisateurs. Pour plus d’informations sur la recherche d’un profil utilisateur, consultez Recherche d’un utilisateur.
  3. Dans l’écran Mettre à jour l’utilisateur : <utilisateur>, modifiez le profil utilisateur.

  4. Pour enregistrer le profil utilisateur et revenir à l’écran Utilisateurs, cliquez sur Enregistrement et retour dans la barre d’outils.

Le profil utilisateur modifié est enregistré.

Voir aussi

À propos des utilisateurs

Ajout d’un utilisateur

Copie d’utilisateurs

Suppression d’utilisateurs

Recherche d’un utilisateur


Modification de plusieurs utilisateurs

Le module Utilisateurs permet de modifier plusieurs profils utilisateur. Lorsque vous modifiez plusieurs profils utilisateur, vous apportez les mêmes modifications à tous les profils utilisateurs que vous modifiez.

Pour modifier plusieurs utilisateurs

  1. Dans Utilisateurs, cliquez sur Utilisateurs.

  2. Dans l’écran Utilisateurs, sélectionnez les profils utilisateur que vous souhaitez modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Mettre à jour les utilisateurs : utilisateurs <nombre>, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nouvelle | Exécuter une nouvelle requête Mise à jour. Une requête de mise à jour permet de modifier la valeur d’une propriété dans plusieurs profils utilisateur.
    Première liste déroulante (gauche) | Sélectionner dans la liste déroulante la propriété faisant l’objet de la mise à jour.
    Deuxième liste déroulante (centre) | Sélectionner la condition de la mise à jour.
    Troisième liste déroulante (droite) | Taper ou sélectionner la nouvelle valeur de la propriété. Le type de la propriété sélectionnée dans la première zone détermine la manière dont vous entrez les modifications apportées à cette propriété. Par exemple, si la propriété sélectionnée est de type chaîne, tapez la chaîne recherchée dans la troisième zone. Si la propriété sélectionnée est de type entrée du glossaire du site, cliquez sur le bouton de sélection [...] pour ouvrir la boîte de dialogue Choisir une entrée du glossaire du site, puis sélectionnez la valeur attribuée à la propriété.

  4. Cliquez sur Appliquer, puis cliquez sur Enregistrement et retour dans la barre d’outils.

Les profils utilisateur sont enregistrés avec les nouvelles informations.

Voir aussi

Ajout d’un utilisateur

Importation d’une liste de profils utilisateur

Modification d’un utilisateur


Copie d'utilisateurs

Copie d’utilisateurs

Le module Utilisateurs permet de copier un profil utilisateur existant. Si vous devez ajouter un nouveau profil pour un utilisateur dont le profil ressemble beaucoup à un profil utilisateur existant, vous pouvez copier ce dernier, apporter les modifications nécessaires aux informations, puis enregistrer ce profil en tant que profil d’un nouvel utilisateur.

Pour copier un utilisateur

  1. Dans Utilisateurs, cliquez sur Utilisateurs.

  2. Dans l’écran Utilisateurs, sélectionnez le profil utilisateur que vous souhaitez copier, puis cliquez sur Copier dans la barre d’outils.

  3. Dans l’écran Nouvel utilisateur : Copie <utilisateur>, dans la section Informations générales, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom d’ouverture de session | Taper un nom d’ouverture de session pour le nouveau profil utilisateur.
    Mot de passe de l’utilisateur | Taper un mot de passe pour le nouveau profil utilisateur. Les mots de passe doivent comprendre entre 7 et 14 caractères alphanumériques. Les mots de passe ne peuvent pas contenir d’espaces.

  4. Modifiez les informations existantes dans le profil utilisateur copié en fonction du nouveau profil utilisateur.

  5. Pour enregistrer le nouveau profil utilisateur et revenir à l’écran Utilisateurs, cliquez sur Enregistrement et retour dans la barre d’outils.

Le nouveau profil utilisateur est enregistré.

Voir aussi

À propos des utilisateurs

Ajout d’un utilisateur

Modification d’un utilisateur

Suppression d’utilisateurs

Recherche d’un utilisateur


Suppression d'utilisateurs

Suppression d’utilisateurs

Le module Utilisateurs permet de supprimer des profils utilisateur existants de la base de données Commerce Server.

Attention

  • Il est impossible de récupérer un profil utilisateur qui a été supprimé.

Pour supprimer un utilisateur de la base de données Commerce Server

  1. Dans Utilisateurs, cliquez sur Utilisateurs.

  2. Dans l’écran Utilisateurs, sélectionnez le profil utilisateur que vous souhaitez supprimer, puis cliquez sur Supprimer dans la barre d’outils.

  3. Dans la boîte de dialogue Supprimer un utilisateur, cliquez sur OK pour supprimer le profil utilisateur.

    Le profil utilisateur est supprimé.

Voir aussi

À propos des utilisateurs

Ajout d’un utilisateur

Modification d’un utilisateur

Copie d’utilisateurs

Recherche d’un utilisateur


Gestion des organisations

Le module Organisations permet de gérer et de mettre à jour des profils d’organisation.

Cette section contient les rubriques suivantes :

  • Recherche d’une organisation

  • Modification d’une organisation

  • Modification de plusieurs organisations

  • Copie d’une organisation

  • Suppression d’une organisation


Recherche d'une organisation

Recherche d’une organisation

Le module Organisations permet de rechercher un profil d’organisation particulier. Vous pouvez utiliser la boîte de dialogue Rechercher pour affiner votre recherche à l’aide des propriétés de profil de l’organisation. La liste résultante contient tous les profils d’organisations qui correspondent à vos critères de recherche.

Pour rechercher un profil d’organisation

Pour créer une expression permettant de rechercher un profil d’organisation

Pour rechercher un profil d’organisation

  1. Dans Utilisateurs, cliquez sur Organisations. Si la boîte de dialogue Rechercher n’est pas ouverte en haut de la liste des organisations, cliquez sur Rechercher dans la barre d’outils.

  2. Dans la liste déroulante Rechercher par, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Rechercher un profil d’organisation en fonction de son nom.
    Date de dernière modification | Rechercher des profils d’organisations ayant fait l’objet de modifications à une date donnée.
    Date de création | Rechercher des profils d’organisations créés à une date donnée.

  3. Dans la zone de saisie de la valeur de la propriété qui s’affiche ensuite, tapez ou sélectionnez dans la liste la valeur spécifique pour les propriétés que vous avez sélectionnées (par exemple, le nom de l’organisation que vous recherchez).

    Remarque

    • Vous pouvez inclure une entrée générique (*) pour rechercher un nombre indéfini de caractères dans votre recherche. Par exemple, t* correspond à toutes les organisations dont le nom commence par la lettre « t ».
  4. Si vous avez besoin d’effectuer une recherche plus complexe, dans la liste déroulante Rechercher par, sélectionnez Rechercher par propriété, puis créez une expression à rechercher.

  5. Cliquez sur Rechercher.

La recherche s’effectue. Si elle réussit, les profils utilisateur que vous recherchez s’affichent dans la liste des utilisateurs. Si la recherche échoue, l’expression « Aucun élément ne correspond à cette recherche » s’affiche dans la liste des organisations.

Pour créer une expression permettant de rechercher une organisation

  1. Dans Utilisateurs, cliquez sur Organisations. Si le volet Rechercher n’est pas ouvert en haut de la liste des organisations, cliquez sur Rechercher dans la barre d’outils.

  2. Sélectionnez Rechercher par propriété dans la liste déroulante Rechercher par.

  3. Cliquez sur Nouveau dans le volet Rechercher.

  4. Dans la première liste déroulante, cliquez sur la flèche à droite d’Organisation, double-cliquez sur le groupe de propriétés, puis sélectionnez la propriété que vous souhaitez utiliser dans la recherche.

    Remarque

    • Le type de la propriété que vous sélectionnez détermine les conditions disponibles pour votre recherche. Par exemple, si la propriété sélectionnée est de type chaîne, vous pouvez définir la condition de votre recherche à est égal à, contient, ou commence par. Si la propriété sélectionnée est de type entrée du glossaire du site, vous pouvez définir la condition de votre recherche à est égal à ou est différent de.
  5. Dans la deuxième liste déroulante, sélectionnez la condition de votre recherche.

    Remarque

    • Le type de la propriété sélectionnée détermine la manière dont vous entrez les critères de votre recherche. Par exemple, si la propriété sélectionnée est de type chaîne, tapez la chaîne recherchée dans la troisième zone. Si la propriété sélectionnée est de type entrée du glossaire du site, cliquez sur le bouton de sélection [...] pour ouvrir la boîte de dialogue Choisir une entrée du glossaire du site, puis sélectionnez la valeur que vous recherchez.
  6. Dans la troisième zone, tapez ou sélectionnez les critères de votre recherche.

  7. Cliquez sur Appliquer, puis sur Rechercher.

La recherche s’effectue. Si elle réussit, l’organisation que vous recherchez s’affiche dans la liste des organisations. Si la recherche échoue, l’expression « Aucun élément ne correspond à cette recherche » s’affiche dans la liste des organisations.

Voir aussi

À propos des utilisateurs

Ajout d’une organisation

Modification d’une organisation

Modification de plusieurs organisations

Suppression d’une organisation


Modification d'une organisation

Modification d’une organisation

Le module Organisations permet de modifier et de mettre à jour des profils d’organisation existants. Vous pouvez également associer à une organisation des utilisateurs existants comme contacts administratifs et comme récepteurs.

Pour modifier un profil d’organisation

  1. Dans Utilisateurs, cliquez sur Organisations.

  2. Dans l’écran organisations, sélectionnez le profil d’organisation que vous souhaitez modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran Mettre à jour l’organisation, dans la section Informations générales, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nom | Modifier le nom de l’organisation.
    Numéro de partenaire commercial | Modifier le nom du partenaire commercial de l’organisation.
    Contact administratif | Cliquez sur le bouton de sélection [...] pour modifier le contact administratif. Pour plus d’informations sur la sélection d’un contact administratif, consultez Pour associer un profil d’organisation à un profil utilisateur existant.
    Récepteur | Cliquez sur le bouton de sélection [...] pour modifier le récepteur. Pour plus d’informations sur la sélection d’un récepteur, consultez Pour associer un profil d’organisation à un profil utilisateur existant.
    Groupe de catalogues de l’organisation | Sélectionner dans la liste déroulante un groupe de catalogues pour cette organisation.

  4. Dans la section Achat, dans la zone Responsable des achats, cliquez sur le bouton de sélection [...] pour afficher la boîte de dialogue Sélectionner Utilisateur.

  5. Dans la boîte de dialogue Sélectionner Utilisateur, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Choisir un utilisateur existant | Sélectionner le nom de l’utilisateur que vous voulez ajouter comme responsable des achats, puis cliquer sur OK.
    Nom d’ouverture de session Taper le nom de l’utilisateur que vous voulez ajouter comme responsable des achats (s’il ne figure pas dans la liste Choisir un utilisateur existant), puis cliquer sur Rechercher.

    Lorsque l’utilisateur s’affiche dans la liste Choisir un utilisateur existant, sélectionner cet utilisateur, puis cliquer sur OK.

  6. Pour enregistrer vos modifications et ajouter d’autres profils d’organisations, cliquez sur Enregistrer et créer dans la barre d’outils.

Le profil d’organisation est enregistré et un nouveau profil d’organisation est créé.

Voir aussi

À propos des utilisateurs

Ajout d’un utilisateur

Ajout d’une organisation

Copie d’une organisation

Recherche d’une organisation


Modification de plusieurs organisations

Le module Organisations permet de modifier les profils de plusieurs organisations. Lorsque vous modifiez plusieurs profils d’organisation, vous apportez les mêmes modifications à tous les profils d’organisation que vous modifiez.

Pour modifier plusieurs profils d’organisations

  1. Dans Utilisateurs, cliquez sur Organisations.

  2. Dans l’écran organisations, sélectionnez les profils d’organisations que vous souhaitez modifier, puis cliquez sur Ouvrir dans la barre d’outils.

  3. Dans l’écran UMettre à jour les organisations : organisations <nombre>, effectuez les opérations suivantes :
    Utilisez ceci | Pour faire cela
    Nouvelle | Exécuter une nouvelle requête Mise à jour. Une requête de mise à jour permet de modifier la valeur d’une propriété dans plusieurs profils utilisateur.
    Première liste déroulante (gauche) | Sélectionner dans la liste déroulante la propriété contenant les informations faisant l’objet de la modification.
    Deuxième liste déroulante (centre) | Sélectionner la condition de la modification.
    Troisième liste déroulante (droite) | Taper ou sélectionner la nouvelle valeur de la propriété. Le type de la propriété sélectionnée dans la première zone détermine la manière dont vous entrez les modifications apportées à cette propriété. Par exemple, si la propriété sélectionnée est de type chaîne, vous devez taper la chaîne recherchée dans la troisième zone.

  4. Pour enregistrer vos modifications et revenir à l’écran Organisations, cliquez sur Enregistrement et retour dans la barre d’outils.

Les profils d’organisation sont enregistrés avec les nouvelles données.


Copie d'une organisation

Copie d’une organisation

Le module Organisations permet d’effectuer des copies de profils d’organisations existants. Si vous devez créer un profil pour une organisation qui partage des propriétés avec un profil d’organisation existant, vous pouvez effectuer une copie du profil d’organisation existant, puis modifier cette copie pour créer un nouveau profil d’organisation.

Pour copier un profil d’organisation existant

  1. Dans Utilisateurs, cliquez sur Organisations.

  2. Dans l’écran Organisations, sélectionnez le profil d’organisation que vous souhaitez copier, puis cliquez sur Copier dans la barre d’outils.

  3. Dans l’écran Nouvelle organisation : copie <organisation>, dans la section Informations générales, dans la zone Nom, tapez un nom pour la nouvelle organisation.

  4. Pour enregistrer le profil de l’organisation et revenir à l’écran Organisations, cliquez sur Enregistrement et retour dans la barre d’outils.

Le nouveau profil d’organisation est enregistré. Si vous souhaitez ajouter un utilisateur comme contact administratif, récepteur ou responsable des achats à ce profil d’organisation, vous devez d’abord créer le profil de l’utilisateur qui sera ajouté à cette organisation, associer le profil utilisateur à cette organisation, puis modifier le profil de cette organisation pour ajouter le profil pour l’utilisateur qui sera le contact administratif, le récepteur ou le responsable des achats.

Voir aussi

À propos des utilisateurs

Ajout d’une organisation

Modification d’une organisation

Suppression d’une organisation

Recherche d’une organisation


Suppression d'une organisation

Suppression d’une organisation

Le module Organisations permet de supprimer les profils d’organisations de la liste Organisations.

Pour supprimer une organisation

  1. Dans Utilisateurs, cliquez sur Organisations.

  2. Dans l’écran organisations, sélectionnez le profil d’organisation que vous souhaitez supprimer, puis cliquez sur Supprimer dans la barre d’outils.

  3. Dans la boîte de dialogue Supprimer l’organisation, cliquez sur OK pour supprimer le profil d’organisation.

Le profil d’organisation est supprimé.

Attention

  • Une fois que vous avez supprimé un profil d’organisation, vous ne pouvez pas la récupérer.

Voir aussi

À propos des utilisateurs

Ajout d’une organisation

Modification d’une organisation

Copie d’une organisation

Recherche d’une organisation


Dépannage de Business Desk

Cette section traite des problèmes courants liés à l’utilisation de Commerce Server Business Desk. Localisez une brève description du problème dans la zone de fonctionnalité sur laquelle vous êtes en train de travailler, puis suivez le lien pour obtenir des informations plus détaillées.

Votre premier interlocuteur en matière de support technique est généralement votre administrateur système ou votre développeur de site. En outre, vous pouvez accéder aux groupes de discussion en ligne de Microsoft. Pour plus d’informations sur les groupes de discussion en ligne de Commerce Server 2000, allez à l’adresse www.microsoft.com/commerceserver.

Le tableau suivant répertorie les zones de fonctionnalités et les problèmes que vous pouvez rencontrer lors de l’utilisation de Business Desk.

Zone Problème
Installation
  • Impossible d’installer Business Desk
Analyse
  • Impossible d’exécuter des rapports

  • Impossible d’afficher les modèles de segments

  • Impossible d’exporter un rapport SQL Server statique

  • Le rapport s’affiche sans les données

  • Erreur du rapport Itinéraire d’achat de l’acheteur

  • Impossible d’exécuter le rapport statique

  • Nom de membre manquant pour le numéro de clé

  • Les rapports SQL Server dynamiques utilisent de grandes quantités de mémoire
Campagnes marketing
  • Impossible d’exécuter un travail de publipostage

  • Le travail de publipostage échoue sans générer d’erreur

  • Les éléments de la campagne ne s’affichent pas de la manière souhaitée sur le site Web

  • Les données ne s’affichent pas dans le Gestionnaire de listes
Catalogues
  • Impossible d’importer un catalogue

  • Impossible d’envoyer un catalogue à un partenaire commercial
Business Desk
  • Bibliothèque non inscrite

  • Impossible d’exécuter Business Desk

  • Erreur d’accès à Business Desk

  • Impossible pour l’utilisateur d’afficher une page : demande de renouvellement d’authentification

  • Les modifications ne s’affichent pas sur le site Web

  • Impossible d’ouvrir deux instances identiques de Business Desk

  • La recherche de texte intégral dans l’aide ne renvoie aucun résultat


Impossible d'installer Business Desk

Impossible d’installer Business Desk

Description

Lorsque vous essayez de vous connecter au site Web de Business Desk pour installer le client Business Desk, le message suivant s’affiche :

Erreur d'installation de Business Desk.

Solution

Pour installer Business Desk, vous devez activer les contrôles Microsoft ActiveX.

Pour poursuivre l’installation de Business Desk

  1. Dans Internet Explorer, cliquez sur Outils, puis sur Options Internet.

  2. Sous l’onglet Sécurité, cliquez sur Personnaliser le niveau.

  3. Sélectionnez la zone Intranet local puis cliquez sur Personnaliser le niveau.

  4. Dans la zone Contrôles ActiveX et plugins, activez Télécharger les contrôles ActiveX signés.

  5. Cliquez sur OK, sur Appliquer, puis une nouvelle fois sur OK.

  6. Cliquez dans la barre d’outils sur Actualiser, puis poursuivez l’installation en tapant l’adresse URL correspondant à Business Desk dans la fenêtre du navigateur. Par exemple, http://<nom_serveur>/mon_logiciel_bizdesk.


Impossible d'exécuter des rapports

Impossible d’exécuter des rapports

Description

Vous essayez d’exécuter des rapports à partir du module Rapports et rien ne se passe. Si vous essayez d’exécuter un rapport statique, vous recevez une erreur indiquant un état d’échec, ou le rapport s’affiche sans les données.

Remarque

  • Si vous exécutez un rapport dynamique, le message d’erreur suivant s’affiche :

« BOF ou EOF est égal à True ou l’enregistrement actuel a été supprimé »

Solution

Contactez votre administrateur système. Votre administrateur système doit importer des données dans Data Warehouse pour que le rapport puisse s’exécuter correctement.


Impossible d'afficher les modèles de segments

Impossible d’afficher les modèles de segments

Description

Lorsque vous ouvrez le module Identification de segments dans Business Desk, rien ne s’affiche à l’écran.

Solution

Contactez votre administrateur système. Votre administrateur système doit construire des modèles de segments pour que vous puissiez les voir.


Impossible d'exporter un rapport SQL Server statique

Impossible d’exporter un rapport SQL Server statique

Description

Si vous utilisez Microsoft SQL Server 7.0 avec Commerce Server, et si vous exportez un rapport SQL Server statique sous forme de liste vers le module Gestionnaire de listes, et que l’exportation échoue, le problème peut être dû au fait que les noms de colonnes SQL Server contiennent des caractères non valides, tels que ~`!@#$%^&*()-_+={}[]|\:;

Solution

Demandez à votre administrateur système de vérifier que tous les caractères de vos noms de colonnes SQL Server sont valides. Réexécutez le rapport.


Le rapport s'affiche sans les données

Le rapport s’affiche sans les données

Description

Votre rapport dynamique s’affiche dans la fenêtre du navigateur sans aucune donnée. Business Desk prend en charge jusqu’à 250 000 membres par dimension dans les rapports dynamiques. Si vous exécutez un rapport dynamique sur un ensemble de données contenant plus de 250 000 membres par dimension, le délai d’attente de Office 2000 Web Components (OWC) expire, et le rapport s’affiche dans la fenêtre du navigateur sans contenir de données.

Solution

Si vos données contiennent des dimensions de plus de 250 000 membres, contactez votre administrateur système pour obtenir un rapport statique personnalisé chargé d’analyser ces données.


Erreur du rapport Itinéraire d'achat de l'acheteur

Erreur du rapport Itinéraire d’achat de l’acheteur

Description

Vous tentez d’exécuter le rapport Itinéraire d’achat de l’acheteur, et un message d’erreur s’affiche.

Solution

Contactez votre administrateur système. Il peut résoudre cette erreur en se référant à l’aide de Commerce Server 2000.


Impossible d'exécuter le rapport statique

Impossible d’exécuter le rapport statique

Description

Lorsque vous essayez d’exécuter un rapport statique, aucun rapport n’est généré et tous les boutons de la barre des tâches sont désactivés. Un message d’erreur s’affiche en indiquant qu’une erreur Com des services Internet Information Services (IIS) s’est produite lors de la réinitialisation de IIS.

Solution

Contactez votre administrateur système et vérifiez que les services Internet Information Services (IIS) 5.0 n’ont pas été réinitialisés lors de l’exécution des rapports statiques. Si IIS n’a pas été réinitialisé, fermez Business Desk et réouvrez-le. Puis réexécutez le rapport statique.


Nom de membre manquant pour le numéro de clé

Description

Si vous exécutez le rapport Insertion de publicité de la dimension PageGroup ou le rapport Ventes produits de la dimension Customer, vous voyez s’afficher dans le rapport un message qui indique ceci « Nom de membre manquant ». Cette erreur provient du fait que les données importées dans Data Warehouse ne possèdent pas les valeurs uniques requises.

Solution

Rapport Insertion de publicité : Contactez votre administrateur système afin d’exécuter la tâche des services de transformation de données (DTS, Data Transformation Services) pour l’importation de campagne marketing, puis réexécutez la tâche DTS de préparation du rapport. Si le problème persiste, contactez votre administrateur système. Ce type de situation se produit lorsque les données ont été supprimées de la base de données source.

Rapport Ventes produits : Exécutez la tâche DTS d’importation de profil utilisateur puis réexécutez la tâche DTS de préparation du rapport. Si le problème persiste, contactez votre administrateur système. Ce type de situation se produit lorsque les données ont été supprimées de la base de données source.


Les rapports SQL Server dynamiques utilisent de grandes quantités de mémoire

Description

Lorsque vous exécutez un rapport SQL Server dynamique, le PivotControl essaie de charger toutes les données en mémoire avant d’afficher le rapport. Par exemple, l’exécution du rapport Portée et fréquence d’accès à la publicité par élément de la campagne, avec 400 000 lignes dans l’une des tables principales, entraîne une consommation de la mémoire système pouvant atteindre 700 Mo.

Solution

Surveillez l’utilisation de la mémoire lors de l’exécution des rapports SQL Server, et gérez-la en conséquence.

Voir aussi :

Création d’un nouveau rapport dynamique


Impossible d'exécuter un travail de publipostage

Impossible d’exécuter un travail de publipostage

Description

Un travail de publipostage ne s’est pas exécuté, et vous n’avez reçu aucun message d’erreur.

Solution

Contactez votre administrateur système. Si le travail de publipostage est une campagne de publipostage personnalisée, l’administrateur système l’a peut-être bloqué pour des raisons de performance. Si vous ne possédez pas de serveur Web dédié au publipostage, l’administrateur système a peut-être défini l’élément de la campagne pour qu’il démarre à une période de faible trafic, car il occupe l’accès au serveur Web comme n’importe quel utilisateur. En fonction du volume de la liste de publipostage, les performances du serveur Web peuvent s’en trouver affectées.


Le travail de publipostage échoue sans générer d'erreur

Le travail de publipostage échoue sans générer d’erreur

Description

Un travail de publipostage n’a pas pu démarrer, et vous n’avez reçu aucun message d’erreur vous informant sur l’origine de cet échec.

Solution

Contactez votre administrateur système. L’échec peut être lié à de nombreuses causes possibles. Par exemple, si l’Agent SQL Server s’arrête lorsqu’un travail de publipostage est planifié pour s’exécuter, le travail ne s’exécute pas, et l’erreur n’est pas enregistrée. Aucun élément n’indique que le travail ne s’est pas exécuté. Votre administrateur système doit démarrer le travail manuellement à partir du contrôle de l’Agent SQL Server dans SQL Server Enterprise Manager.


Les éléments de la campagne ne s'affichent pas de la manière souhaitée sur le site Web

Les éléments de la campagne ne s’affichent pas de la manière souhaitée sur le site Web

Description

Les éléments de la campagne de publicité et les éléments de la campagne de remise qui ont été créés ne s’affichent pas sur le site Web.

Solution

Lorsque vous créez une nouvelle publicité à l’aide du module Gestionnaire de campagnes, celle-ci est inactive jusqu’à ce qu’elle soit publiée, ou détectée lors du cycle régulier d’actualisation. Par défaut, les publicités sont automatiquement publiées toutes les cinq minutes. Les remises, cependant, doivent être publiées manuellement et ne sont pas automatiques. De même, si vous avez créé une publicité ou une remise à l’avance et qu’elle est restée inactive, vous devez la réouvrir et l’activer.

Remarque

  • Avant de mettre à jour une campagne de publicité sur un nouveau site, vous devez d’abord visiter ce site Web. Chaque serveur de la Web farm doit être mis à jour avant qu’un élément de la campagne puisse être envoyé en production.

Le tableau suivant répertorie les situations supplémentaires à vérifier si votre publicité ou votre remise ne s’affiche pas sur le site Web.

Description | Solution
L’élément de la campagne a-t-il été publié ? | Utilisez le module Publier les campagnes marketing pour publier votre campagne marketing.
L’état de l’élément de publicité ou de la campagne est-il inactif ? | Ouvrez l’élément de publicité ou de la campagne, et modifiez l’état en Actif.
Avez-vous défini une quantité ou un poids ? | Dans le cadre des publicités payées, vous devez spécifier une quantité ou un poids pour la campagne publicitaire.
Existe-t-il des ciblages, activités ou limites d’affichage en conflit ? | Vérifiez si le ciblage, l’activité ou les limites d’affichage de cette publicité peuvent l’empêcher de s’exécuter.
La date de la publicité ou de la campagne marketing est-elle hors limites ? | Vérifiez si la date de la publicité ou de la campagne marketing n’est pas trop éloignée dans le futur.
Une autre publicité s’affiche-t-elle à la place de la publicité prévue ? | Vérifiez qu’il n’existe pas d’autre publicité avec un niveau supérieur d’estimation de livraison, qui soit en train de remplacer votre publicité.
La publicité est-elle définie pour s’exécuter sur d’anciens groupes de pages ? | Si vous avez renouvelé la conception de votre site Web, la publicité est peut-être planifiée pour s’exécuter sur d’anciens groupes de pages. Vous devez définir de nouvelles publicités si vous possédez un nouveau site Web.
La publicité est-elle une publicité maison ? | Si la publicité est définie en tant que publicité maison, elle ne s’affichera pas sur le site Web tant que toutes les publicités payées n’auront pas satisfait l’estimation de livraison.
Une expression de ciblage empêche-t-elle la publicité de s’afficher ? | Si les propriétés des visiteurs du site ne correspondent pas à la définition de l’expression de ciblage, la publicité ne s’affiche pas.
L’espace publicitaire est-il limité par la taille ? | Si l’espace publicitaire du site Web est limité par une taille de contenu spécifique et que votre publicité n’est pas à la taille requise, elle ne peut pas s’afficher.


Les données ne s'affichent pas dans le Gestionnaire de listes

Les données ne s’affichent pas dans le Gestionnaire de listes

Description

L’exécution d’opérations de mise à jour ou de recherche sur de grands ensembles de données utilisateur via le module Utilisateurs peut entraîner une expiration du processus.

L’expiration de l’opération dépend d’un certain nombre de facteurs, et vous empêche par conséquent de visualiser les données. L’un de ces facteurs peut être la grande quantité d’entités à récupérer.

Solution

Contactez votre administrateur système. Il peut résoudre cette erreur en se référant à l’aide de Commerce Server 2000.


Impossible d'importer un catalogue

Impossible d’importer un catalogue

Description

Lorsque vous essayez d’importer un catalogue, l’importation échoue. Si, par exemple, le fichier de catalogue se trouve dans C:\Documents and Settings\<Nom_Utilisateur>\Bureau, l’échec de l’importation est dû à l’emplacement. Le message « Le processus d'importation du catalogue a débuté avec succès » s’affiche mais lorsque vous cliquez sur l’Éditeur de catalogue pour recharger la page, le catalogue n’est pas importé.

Solution

Contactez votre administrateur système. Lorsque vous exécutez Business Desk dans les services Internet Information Services (IIS) en mode Isolation moyenne, vous ne pouvez pas accéder aux dossiers système tels que le Bureau. Pour importer le fichier à partir du bureau, votre administrateur système doit faire passer Business Desk en mode Isolation basse.

Le tableau suivant répertorie les situations supplémentaires à vérifier lorsque l’importation d’un catalogue ne peut pas s’effectuer.

Description | Solution
Vous avez importé un catalogue et vous obtenez un message indiquant que l’importation est en cours. Cependant, lorsque vous cliquez sur l’Éditeur de catalogue pour recharger la page, le catalogue ne s’affiche pas. | Si vous importez un catalogue qui contient une définition de produit dont les propriétés diffèrent d’une définition de produit existante du même nom, l’importation échoue. Assurez-vous que les propriétés de la définition de produit sont cohérentes dans tous les catalogues.
À l’aide de l’Éditeur de catalogue, vous avez essayé d’importer un catalogue XML, mais l’importation a échoué. | Vérifiez que vous utilisez le nom et le chemin d’accès complet du fichier de catalogue, ou que ce dernier se trouve sur le partage CommerceCatalogs sur le serveur exécutant l’application Business Desk. Votre administrateur système peut vous aider en récupérant le catalogue sur le serveur.


Impossible d'envoyer un catalogue à un partenaire commercial

Impossible d’envoyer un catalogue à un partenaire commercial

Description

Vous avez créé un catalogue que vous ne pouvez pas envoyer à un partenaire commercial.

Solution

Vérifiez que votre administrateur système a installé Microsoft BizTalk Server 2000 et qu’il a correctement configuré Commerce Server pour les échanges de documents.


Bibliothèque non inscrite

Description

Vous recevez le message « Bibliothèque non inscrite » lors de l’utilisation de Business Desk.

Solution

Vous devez peut-être réinscrire le fichier Vbscript.dll qui se trouve dans le répertoire \winnt\system32. Contactez votre administrateur système.


Impossible d'exécuter Business Desk

Impossible d’exécuter Business Desk

Description

Bien que vous exécutiez Business Desk sans problème, vous recevez l’un des messages d’erreur suivants lorsque vous tentez de le démarrer :

  • Des erreurs se sont produites lors du chargement d’une partie de Business Desk.

  • Des erreurs se sont produites lors du chargement de l’application Business Desk.

Solution

Si le mot de passe de l’administrateur système a changé sur le serveur Web hébergeant l’application Business Desk, cette modification peut être à l’origine des erreurs ci-dessus. Votre administrateur système peut résoudre cette erreur en se référant à l’aide de Commerce Server 2000.


Impossible pour l'utilisateur d'afficher une page: demande de renouvellement d'authentification

Impossible pour l’utilisateur d’afficher une page : demande de renouvellement d’authentification

Description

Business Desk vous demande de manière inattendue vos nom d’utilisateur et mot de passe, ou vous recevez un message d’erreur indiquant que l’utilisateur n’est pas autorisé à afficher la page, ou la boîte de dialogue Mot de passe réseau se réaffiche alors que vous avez entré les informations d’ouverture de session appropriées.

Solution

Si Business Desk et Commerce Server ne s’exécutent pas sur le même serveur Web, le serveur où s’exécute Commerce Server manque peut-être de mémoire. Contactez votre administrateur système.


Erreur d'accès à Business Desk

Erreur d’accès à Business Desk

Description

Bien que vous ayez exécuté Business Desk sans problème jusqu’à maintenant, vous ne parvenez pas à le démarrer. Lorsque vous essayez d’ouvrir un module particulier, vous recevez le message « Erreur d’accès à Business Desk ».

Solution

Le module que vous essayez d’ouvrir requiert des droits de l’utilisateur que vous n’avez pas. Contactez votre administrateur système pour obtenir les droits d’accès nécessaires.


Les modifications ne s'affichent pas sur le site Web

Les modifications ne s’affichent pas sur le site Web

Description

Vous avez effectué des modifications dans Business Desk, mais elles ne s’affichent pas lorsque vous visualisez votre site Web.

Solution

Vous devez peut-être actualiser les caches de Commerce Server. Pour ce faire, utilisez le module Publier les campagnes marketing, le module Publier les transactions ou le module Publier les profils pour mettre à jour votre site. Vous devrez peut-être également publier les catalogues à l’aide du bouton Publier les catalogues personnalisés de la barre d’outils dans le module Éditeur de catalogue.


Impossible d'ouvrir deux instances identiques de Business Desk

Impossible d’ouvrir deux instances identiques de Business Desk

Description

Vous essayez d’ouvrir deux instances du client Business Desk pour le même site sur votre ordinateur, mais Business Desk ne s’ouvre pas.

Solution

Vous ne pouvez pas ouvrir deux instances du client Business Desk pour le même site sur votre ordinateur. Cependant, vous pouvez exécuter deux clients Business Desk en même temps pour des sites différents.


La recherche de texte intégral dans l'aide ne renvoie aucun résultat

La recherche de texte intégral dans l’aide ne renvoie aucun résultat

Description

Lorsque vous effectuez une recherche dans l’aide de Business Desk, aucun résultat n’est renvoyé.

Solution

Contactez votre administrateur système pour démarrer le service d’indexation sur le serveur Web hébergeant l’application Business Desk. Le service d’indexation doit toujours être défini sur Démarrage automatique car il peut y avoir un décalage important entre le démarrage du service d’indexation et le moment où le dossier contenant l’aide est disponible.


Extending Commerce Server

Microsoft Commerce Server 2000 peut être étendu de plusieurs manières. Par exemple :

  • Les ressources personnalisées et les modules Commerce Server Business Desk personnalisés peuvent respectivement être créés et intégrés dans Commerce Server Manager et Business Desk.

  • Le traitement par pipeline utilisé pour le traitement des commandes, la sélection du contenu et le publipostage peut être étendu en créant et en intégrant de nouveaux composants de pipeline.

  • Il est possible de stocker de nouveaux types de données dans le Data Warehouse, et de créer de nouveaux rapports afin de permettre l’analyse de ces données.

Ces extensions sont décrites parmi d’autres dans cette section.

Cette section contient les rubriques suivantes :

  • Integrating Custom Resources (en anglais). Explique comment intégrer une ressource personnalisée dans Commerce Server.

  • Building Business Desk Modules (en anglais). Explique comment créer un module Business Desk. Cette section comprend des informations générales concernant l’architecture, des informations sur l’intégration de nouveaux modules, ainsi que des documents de référence sur les composants HTML pouvant être utilisés dans les nouveaux modules.

  • Building Pipeline Components (en anglais). Explique comment créer des composants de pipeline dans C++ et Microsoft Visual Basic.

  • Integrating a Third-Party Product Catalog (en anglais). Décrit les divers points d’intégration de catalogue dans Commerce Server afin que les développeurs tiers puissent intégrer plus facilement un système de catalogue différent.

  • Extending the Content Selection Framework (en anglais). Explique comment l’infrastructure de sélection de contenu peut être personnalisée afin de modifier les algorithmes utilisés pour sélectionner un contenu personnalisé.

  • Creating Custom Reports (en anglais). Explique comment créer des rapports d’analyse pour compléter les rapports standard qui sont disponibles avec Commerce Server.

  • Working with the Data Warehouse (en anglais). Explique comment utiliser le Data Warehouse. Cette section contient également la description du schéma logique du Data Warehouse et de sa banque de données physique.

  • Integrating with Passport (en anglais). Explique comment intégrer Microsoft Passport dans un site Web Commerce Server, y compris ses technologies de connexion unique et de portefeuille.


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.


Programmer's Reference

Programmer’s Reference

Cette section (en anglais) fournit la documentation de référence concernant la programmation à l’aide de la plate-forme de Microsoft Commerce Server 2000. Elle contient des informations sur les objets COM (Component Object Model) que vous pouvez appeler, les interfaces COM que vous pouvez implémenter, les composants de pipeline fournis, les structures XML, les schémas de base de données, les utilitaires Business Desk, etc.

Cette section contient les rubriques suivantes :

  • Object Reference (en anglais). Fournit la documentation de référence concernant les objets COM fournis avec Commerce Server, et chacune de leurs propriétés et méthodes. Il s’agit des objets que vous allez explicitement créer et appeler. Des pages de référence parallèles décrivent ces objets du point de vue de deux langages de programmation différents :
    • Microsoft Visual Basic/Microsoft Visual Basic Scripting Edition (VBScript)

    • C++
  • Interface Reference (en anglais). Fournit la documentation de référence concernant les interfaces COM que vous pouvez implémenter afin que vos objets puissent être appelés par Commerce Server. Cela inclut les interfaces de pipeline que vous implémentez pour créer vos propres composants de pipeline, et l’interface du Gestionnaire de package de site qui vous permet de créer des objets pouvant être appelés par le Gestionnaire de package de site et Commerce Server Manager.

  • Pipeline Component Reference (en anglais). Fournit la documentation de référence concernant les composants de pipeline fournis avec Commerce Server.

  • OLE DB Provider for Commerce Server (en anglais). Fournit la documentation de référence concernant le fournisseur OLE DB qui permet d’accéder au service Profils et au Data Warehouse dans Commerce Server.

  • Business Desk Reference (en anglais). Fournit la documentation de référence concernant Commerce Server Business Desk, y compris les détails des événements, des propriétés et des méthodes des composants HTML (HTC), ainsi que les détails sur les constantes, les variables globales et les routines utilitaires fournies par Business Desk.

  • XML Reference (en anglais). Fournit la documentation de référence concernant la structure de divers documents XML utilisés dans Commerce Server.

  • Schema Reference (en anglais). Fournit la documentation de référence concernant divers schémas de base de données utilisés dans des zones essentielles de Commerce Server, où une parfaite connaissance du schéma est importante.

  • Database Table Reference (en anglais). Fournit des informations sur de nombreuses bases de données Commerce Server et sur les tables qu’elles contiennent. Ces informations peuvent s’avérer utiles lors de la création d’une réplication SQL.

  • Style Sheet Reference (en anglais). Fournit des informations sur les feuilles de style en cascade (documents CSS) utilisées par Commerce Server Business Desk.


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.
Tous droits réservés.


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 |  | 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.


Dépannage de Commerce Server

Cette section présente les problèmes courants que vous pouvez rencontrer lors de l’utilisation de Microsoft Commerce Server 2000.

Pour fournir un support technique, Microsoft propose des groupes de discussion en ligne sur son site Web. Pour plus d’informations sur les groupes de discussion de Commerce Server 2000, allez à l’adresse suivante : www.microsoft.com/commerceserver/.

Vous devriez également consulter le fichier Lisezmoi de Microsoft Commerce Server 2000. Ce document fournit une liste de problèmes connus et d’informations de dernière minute concernant cette version de Commerce Server, et il est inclus sur le CD-ROM d’installation de Commerce Server 2000.

Cette section contient les rubriques suivantes :

  • Dépannage de vos applications. Décrit les problèmes que vous pouvez rencontrer lors du développement et de la gestion de vos applications et de Business Desk, et fournit les solutions possibles.

  • Dépannage du Gestionnaire de package de site. Décrit les problèmes que vous pouvez rencontrer lors de l’utilisation du Gestionnaire de package de site de Commerce Server, et fournit les solutions possibles.

  • Dépannage des ressources de Commerce Server. Décrit les problèmes que vous pouvez rencontrer lors de l’utilisation des tâches DTS, de la ressource Predictor, de la ressource Profiles et du service de publipostage, et fournit les solutions possibles.

  • Pour plus d’informations sur le dépannage. Répertorie les autres ressources de dépannage qui sont à la disposition des administrateurs système.


Dépannage de vos applications

Cette section décrit les problèmes que vous pouvez rencontrer lors du développement et de la gestion de vos applications et de Commerce Server Business Desk.

Cette section contient les rubriques suivantes :

  • Utiliser une devise 64 bits pour assurer la disponibilité

  • Les commandes dont le total dépasse plus de 10 millions d’unités monétaires échouent

  • Activer « Approuver l’ordinateur pour la délégation » pour les serveurs Web

  • OLAP/SQL Server nécessite l’authentification Windows NT

  • Limite de la longueur des données Active Directory

  • Les publicités ou les remises ne s’affichent pas sur le site Web

  • Utilisation de regtrace.exe avec un débogueur

  • Impossible d’ouvrir une session sur une application Web en tant qu’administrateur

  • La modification du nom de l’ordinateur cause l’arrêt du fonctionnement de Commerce Server

  • La modification des séparateurs de la date système provoque une erreur

  • La fonction de recherche dans l’aide ne renvoie aucun résultat

  • Quelques DLLs ne prennent pas en charge l’auto-enregistrement

  • Création d’une nouvelle base de données d’administration

  • Business Desk : la modification du mot de passe d’administration déconnecte le client Business Desk

  • Business Desk : ajout de propriétés à valeurs multiples

  • Business Desk : configuration mise à jour non répercutée

  • Business Desk : les données ne s’affichent pas dans le Gestionnaire de listes ou les modules Utilisateurs

  • Business Desk : « Bibliothèque non inscrite » ou d’autres problèmes avec regexp

  • Business Desk : les utilisateurs avec des droits « Administrateur » ne peuvent accéder aux données de Business Desk

  • Business Desk : des erreurs d’exécution se produisent lorsque vous accédez à Business Desk

  • Business Desk : impossible d’accéder aux sites lorsque vous avez ouvert la session Business Desk en tant qu’administrateur

  • Rapports : synthèse des problèmes de rapport

  • Rapports : erreur du rapport Itinéraire d’achat de l’acheteur

  • Rapports : impossible d’afficher les rapports SQL dynamiques

  • Rapports : les rapports ne contiennent pas de données

Pour plus d’informations sur le débogage de vos applications, consultez les rubriques suivantes :

  • Debugging Tools (en anglais)

  • Debugging the Business Desk (en anglais)

  • Content Selection Framework Concepts (en anglais)


Utiliser une devise 64 bits pour assurer la disponibilité

Si un utilisateur crée un panier avec des articles dont le total dépasse 10 millions d’unités monétaires, le panier devient inutilisable. L’utilisateur reçoit le message suivant :

Un dépassement de capacité s’est produit lors du calcul de '_product_list_price'. Consultez la documentation pour plus d’informations sur l’élargissement de la plage de valeurs.

Toutes les commandes suivantes pour cet utilisateur échouent.

Solution

Dans Pipeline Editor, mettez à niveau la prise en charge des devises de 32 bits à 64 bits.

Pour définir une devise 64 bits

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft Commerce Server 2000, puis cliquez sur Pipeline Editor.

  2. Cliquez sur Ouvrir, puis naviguez vers l’emplacement de votre fichier pipeline. Double-cliquez sur le fichier pipeline pour l’ouvrir.

  3. Dans le menu Edition, cliquez sur Propriétés.

  4. Dans la zone Mode devise de la boîte de dialogue Propriétés de Pipeline, sélectionnez Devise (haute précision), puis cliquez sur OK.

    Remarque

    • Pour exécuter un pipeline en mode Haute précision, le pipeline ne doit inclure aucun composant de pipeline de Microsoft Site Server 3.0, Édition Commerce. Pour plus d’informations sur les composants de pipeline de Site Server 3.0, consultez Pipeline Component Reference (en anglais).
  5. Redémarrez le(s) serveur(s) Web.

Voir aussi

Les commandes dont le total dépasse plus de 10 millions d’unités monétaires échouent


Les commandes dont le total dépasse plus de 10 millions d'unités monétaires échouent

Les commandes dont le total dépasse plus de 10 millions d’unités monétaires échouent

Si un utilisateur crée un panier avec des articles dont le total dépasse 10 millions d’unités monétaires, le panier devient inutilisable. L’utilisateur reçoit le message suivant :

Un dépassement de capacité s’est produit lors du calcul de '_product_list_price'. Consultez la documentation pour plus d’informations sur l’élargissement de la plage de valeurs.

Toutes les commandes suivantes pour cet utilisateur échouent.

Solution

Pour activer la prise en charge des commandes dont le total dépasse 10 millions d’unités monétaires, vous devez mettre à niveau dans Pipeline Editor la prise en charge des devises de 32 bits à 64 bits.

Pour définir une devise 64 bits

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft Commerce Server 2000, puis cliquez sur Pipeline Editor.

  2. Cliquez sur Ouvrir, puis naviguez vers l’emplacement de votre fichier pipeline. Double-cliquez sur le fichier pipeline pour l’ouvrir.

  3. Dans le menu Edition, cliquez sur Propriétés.

  4. Dans la zone Mode devise de la boîte de dialogue Propriétés de Pipeline, sélectionnez Devise (haute précision), puis cliquez sur OK.

    Remarque

    • Pour exécuter un pipeline en mode Haute précision, le pipeline ne doit inclure aucun composant de pipeline de Microsoft Site Server 3.0, Édition Commerce. Pour plus d’informations sur les composants de pipeline de Site Server 3.0, consultez Pipeline Component Reference (en anglais).
  5. Redémarrez le(s) serveur(s) Web.


Activer «Approuver l'ordinateur pour la délégation» pour les serveurs Web

Activer « Approuver l’ordinateur pour la délégation » pour les serveurs Web

Les pages ASP (Active Server Pages) qui s’exécutent sur un serveur Web peuvent définir et réinitialiser des mots de passe utilisateur stockés dans Active Directory uniquement si le serveur Web est approuvé pour la délégation.

Solution

Pour activer cette option, allez dans la page de propriétés pour le compte d’ordinateur de Active Directory et assurez-vous que la case Approuver l'ordinateur pour la délégation est activée.

Pour activer l’option Approuver l'ordinateur pour la délégation

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Outils d’administration, puis cliquez sur Utilisateurs et ordinateurs Active Directory.

  2. Naviguez vers le compte de l’ordinateur qui a besoin d’être défini, par exemple, Utilisateurs et ordinateurs Active Directory/<nom_domaine>/Ordinateurs/<nom_ordinateur>.

  3. Double-cliquez sur le nom de l’ordinateur dans la liste figurant à droite. Sous l’onglet Compte, activez la case Approuver l’ordinateur pour la délégation, puis cliquez sur OK.

Il se peut que vous deviez redémarrer le serveur Web associé pour que ce paramètre soit pris en compte.


OLAP/SQL Server nécessite l'authentification Windows NT

OLAP/SQL Server nécessite l’authentification Windows NT

Si vous vous connectez à distance à un ordinateur SQL Server depuis un domaine ou un groupe de travail différent, le Gestionnaire de package de site Commerce Server échoue lorsqu’il tente d’effectuer la connexion OLAP (OnLine Analytical Processing) de la base de données OLE avec Data Warehouse.

Solution

La connexion OLAP (OnLine Analytical Processing) de la base de données OLE avec Data Warehouse nécessite l’authentification Microsoft Windows NT.

Pour établir ceci, vous devez créer un compte identique sur l’ordinateur du groupe de travail SQL Server, par exemple, <nom_ordinateur>\partage, de façon à ce que <nom_ordinateur>\partage puisse se connecter au Data Warehouse.

Remarque

  • Si SQL Server est un domaine approuvé, le compte de domaine doit faire partie du compte d’administrateur OLAP.

Voir aussi

Activation de l’authentification Windows


Limite de la longueur des données Active Directory

Si votre module de Commerce Server Business Desk utilise les données stockées dans les noms courants de Active Directory, la longueur maximale d’une chaîne est de 64 caractères. En outre, les noms d’organisation stockés dans Active Directory comprennent un nom de groupe (soit _Admingroup, qui est constitué de 11 caractères, soit _Usergroup, qui est constitué de 10 caractères).

Solution

Si vous stockez un nom d’organisation dans Active Directory, la longueur maximale de la combinaison des noms d’organisation et de groupe est de 64 caractères. Assurez-vous que votre nom respecte cette limite.


Les publicités ou les remises ne s'affichent pas sur le site Web

Les publicités ou les remises ne s’affichent pas sur le site Web

Les publicités ou les remises que vous avez créées et que vous pensiez visualiser sur votre site Web ne s’affichent pas.

Solution

Vous pouvez résoudre ce problème de l’une des deux manières suivantes :

  • Pour utiliser le fichier TraceScores.asp

  • Utilisation du fichier DumpContentList.asp

Pour utiliser le fichier TraceScores.asp

  1. Copiez le fichier TraceScores.asp figurant dans Program Files\Microsoft Commerce Server\SDK\Samples\Marketing\Debug vers le répertoire virtuel de votre site.

  2. Modifiez le code qui crée l’objet ContentSelector pour ajouter une ligne et inclure le fichier TraceScores.asp.

  3. Ajoutez une ligne qui définit la propriété Trace sur la valeur True.

  4. Ajoutez une ligne qui appelle la sous-routine TraceScores.

Exemple de code

L’exemple de code suivant dans le fichier TraceScores.asp contient les lignes ajoutées en caractères gras :

<!-- #include file="TraceScores.asp" -->

<%
    ' Créez un ContentSelectorObject
    Set CSO = Server.CreateObject("Commerce.ContentSelector")
    CSO.Trace = true
    ' Utilisez la méthode GetContent pour obtenir un contenu. Utilisez le ' dictionnaire précédemment créé
    ' dans Global.asa et référencé via l’ensemble
    ' des applications.
    Set Ads = CSO.GetContent(Application("CSFAdsContext"))
    ' Ads est un objet SimpleList comprenant le contenu sélectionné.
    ' Écrivez le contenu dans la page, le cas échéant.
    For Each Ad in Ads
        Response.Write(Ad)
    Next
    Response.Write("<P>")
    Call TraceScores(CSO)
%>

Exemple de sortie

Lorsque le traçage est activé, toutes les modifications apportées aux scores des éléments de contenu font l’objet d’un suivi. Les modifications des publicités détectées par le fichier TraceScore.asp sont affichées en caractères gras dans l’exemple suivant :

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)

Si la publicité qui selon vous devait s’afficher n’apparaît pas dans la trace, cela signifie qu’elle n’a pas été chargée dans le cache. Dans le module Publier les campagnes marketing de Commerce Server Business Desk, publiez de nouveau la campagne sur le serveur. Si la publicité n’apparaît toujours pas, vérifiez les éléments suivants :

  • Vérifiez les dates de début et de fin de la publicité.

  • Assurez-vous que les options Clients, Campagnes marketing et Éléments de la campagne sont activées.

Remarque

  • Lorsque l’indicateur TraceScores est défini comme Actif, les performances des pipelines de l'infrastructure de sélection de contenu (CSF) se dégradent considérablement.

Voir aussi

Les éléments de la campagne ne s’affichent pas de la manière souhaitée sur le site Web

Tracing and debugging (en anglais)

Utilisation du fichier DumpContentList.asp

Le fichier DumpContentList.asp est un autre outil que vous pouvez utiliser pour résoudre les problèmes liés aux threads et aux fonctionnalités de remise. Cet outil affiche toutes les publicités ou remises qui sont actuellement chargées dans la mémoire ainsi que toutes leurs propriétés. Il montre aussi le schéma de l’objet ContentList. Vous pouvez également utiliser cet outil pour vider le contenu des objets ContentList ou ContentListFactory.

Pour vider le contenu du fichier DumpContentList.asp

  1. Copiez le fichier DumpContentList.asp figurant dans Program Files\Microsoft Commerce Server\SDK\Samples\Marketing\Debug vers le répertoire virtuel de votre site.

  2. Modifiez le code qui crée l’objet ContentSelector pour ajouter une ligne et inclure le fichier DumpContentList.asp.

  3. Ajoutez une ligne qui appelle la sous-routine DumpContentList.

Exemple de code

L’exemple suivant contient les lignes ajoutées en caractères gras :

<!-- #include file="DumpContentList.asp" -->

<%
    ' Créez un ContentSelectorObject
    Set CSO = Server.CreateObject("Commerce.ContentSelector")
    ' Utilisez la méthode GetContent pour obtenir un contenu. Utilisez le ' dictionnaire précédemment créé
    ' dans Global.asa et référencé via l’ensemble
    ' des applications.
    Set Ads = CSO.GetContent(Application("CSFAdsContext"))
    ' Ads est un objet SimpleList comprenant le contenu sélectionné.
    ' Écrivez le contenu dans la page, le cas échéant.
    For Each Ad in Ads
        Response.Write(Ad)
    Next
    Response.Write("<P>")
    Call DumpContentList(CSO.Value("Order").Value("_Content"))
%>


Utilisation de regtrace.exe avec un débogueur

Le fichier exécutable Regtrace.exe est un outil qui permet le traçage des composants de publicité et de remise suivants :

  • CacheManager

  • CSFLoadAdvertisements

  • CSFLoadCampaignsCommon

  • CSFLoadDiscount

  • EvalTargetGroups

  • OrderDiscount

Pour utiliser regtrace.exe

  1. Cliquez sur Démarrer, puis sur Exécuter.

  2. Dans la boîte de dialogue Exécuter, tapez regtrace.exe, puis cliquez sur OK.

  3. Dans la boîte de dialogue Trace Settings, sous l’onglet Traces, sélectionnez les niveaux de trace que vous souhaitez.

  4. Sous l’onglet Sortie, sélectionnez Débogueur (OutputDebugString).

  5. Cliquez sur OK.

  6. Vous devez maintenant connecter un débogueur, tel que WinDBG ou Visual C++ 6.0, au processus où le code de votre site s’exécute. Au même moment que les composants sont lus par l’outil, les messages de trace sont journalisés et apparaissent dans le débogueur.

Si les messages de trace ne sont pas journalisés, effectuez une réinitialisation d’Internet Information Services (IIS) et connectez-vous de nouveau au débogueur.

Remarque

  • Lorsque vous activez le traçage, les performances sont affectées de manière adverse. Il est conseillé de désactiver le traçage lorsque vous ne l’utilisez pas.


Impossible d'ouvrir une session sur une application Web en tant qu'administrateur

Impossible d’ouvrir une session sur une application Web en tant qu’administrateur

Vous pouvez ouvrir une session avec Commerce Server Business Desk en tant qu’administrateur, mais vous ne pouvez pas ouvrir une session avec une autre application Commerce Server en tant qu’administrateur.

Solution

Ce problème est causé par un conflit entre les noms de domaine de Business Desk et de Windows. Pour éviter cette situation, créez des utilisateurs dans Business Desk, puis attribuez-leur des droits d’accès en les plaçant dans les groupes de domaine appropriés. Les utilisateurs qui ont besoin d’accéder à Business Desk peuvent être ajoutés en tant qu’administrateurs de domaine et peuvent accéder à Business Desk grâce à leurs noms d’utilisateur standard.


La modification du nom de l'ordinateur cause l'arrêt du fonctionnement de Commerce Server

La modification du nom de l’ordinateur cause l’arrêt du fonctionnement de Commerce Server

Si vous modifiez le nom de votre ordinateur, il se peut que SQL Server ne trouve pas la base de données d’administration automatiquement. Il se peut que le message suivant apparaisse :

"2735 CA_ADMIN_ValidateDB"

Solution

Modifiez les paramètres des chaînes de connexion dans Commerce Server Manager pour qu’ils utilisent le nouveau nom de l’ordinateur. Les paramètres que vous modifiez dépendent de la topologie utilisée pour déployer Commerce Server. Tapez le nouveau nom dans les champs de la base de données d’administration appropriés.

Vous devez également supprimer votre inscription SQL Server actuelle, puis inscrire une nouvelle instance de SQL Server. Vous devez modifier vos nom d’utilisateur et mot de passe SQL Server de la base de données d’administration Vous effectuez ceci en supprimant votre inscription SQL Server actuelle, puis en inscrivant une nouvelle instance de SQL Server. Utilisez la procédure suivante pour inscrire une nouvelle instance de SQL Server.

Pour modifier le nom d’utilisateur et le mot de passe SQL Server de la base de données d’administration

  1. Dans la console Microsoft Commerce Server Manager, cliquez avec le bouton droit sur Commerce Server Manager, puis cliquez sur Propriétés.

  2. Sous l’onglet Base de données d’administration de la boîte de dialogue Propriétés de Commerce Server Manager, cliquez sur Modifier.

    La boîte de dialogue Propriétés des liaisons de données s’affiche.

  3. Une fois que vous avez apporté les modifications nécessaires à la boîte de dialogue Propriétés des liaisons de données, cliquez sur OK.

Remarque

  • Pour obtenir des instructions sur les informations à indiquer dans la boîte de dialogue Propriétés des liaisons de données, cliquez sur Aide dans la boîte de dialogue Propriétés des liaisons de données pour ouvrir le fichier d’aide Liaisons de données Microsoft.


La modification des séparateurs de la date système provoque une erreur

Si vous modifiez les séparateurs de la date système avec un caractère autre qu’une barre transversale (/), un point (.) ou un tiret (-) et que vous essayez ensuite d’ouvrir Commerce Server Business Desk, l’erreur suivante s’affiche :

« Des erreurs se sont produites lors du chargement d’une partie de Business Desk ».

Cette erreur se produit uniquement lors du redémarrage d’Internet Information Services (IIS) 5.0.

Solution

Fermez Business Desk et revenez à une barre transversale (/) comme séparateur de la date système.

Pour modifier le séparateur de la date système

  1. Cliquez sur Démarrer, pointez sur Paramètres, puis cliquez sur Panneau de configuration.

  2. Double-cliquez sur Options régionales, puis cliquez sur l’onglet Date.

  3. Dans la boîte de dialogue Séparateur de date, sélectionnez /, puis cliquez sur OK.

    Attention

    • Le redémarrage de IIS (Internet Information Services) suspend le fonctionnement de votre site Web de façon temporaire. Assurez-vous donc de la nécessité de redémarrer IIS avant de continuer.
  4. Redémarrez IIS.

  5. Ouvrez de nouveau Business Desk.

Pour redémarrer IIS

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Outils d’administration, puis cliquez sur Gestionnaire des services Internet.

  2. Cliquez sur le signe plus (+) pour étendre le groupe des noms de votre serveur.

  3. Cliquez avec le bouton droit sur Site Web par défaut, puis cliquez sur Arrêter.

  4. Cliquez avec le bouton droit sur Site Web par défaut, puis cliquez sur Démarrer.

IIS est alors redémarré et vous pouvez ouvrir de nouveau Business Desk.


La fonction de recherche dans l'aide ne renvoie aucun résultat

La fonction de recherche dans l’aide ne renvoie aucun résultat

La recherche de mots ou de rubriques dans l’aide de Commerce Server Business Desk ne renvoie aucun résultat. Le message suivant s’affiche :

« Aucun document ne correspond à la requête <texte_de_votre_recherche>. »

Solution

Démarrez le Service d’indexation sur le serveur Web. Ce Service d’indexation doit toujours être défini sur Démarrage automatique, car il peut y avoir un décalage important entre le démarrage du service d’indexation et le moment où le dossier contenant l’aide de Business Desk est disponible.

Pour plus d’informations, consultez « Service d’indexation » de Windows 2000 Server.


Quelques DLLs ne prennent pas en charge l'auto-enregistrement

Quelques DLLs ne prennent pas en charge l’auto-enregistrement

Plusieurs fichiers DLL (Dynamic-Link Library) échouent si vous tentez de les enregistrer automatiquement à l’aide de Regsvr32.exe. Ces fichiers DLL sont les suivants :

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


Création d'une nouvelle base de données d'administration

Création d’une nouvelle base de données d’administration

Vous devez revenir à une base de données d’administration antérieure ou en créer une nouvelle, mais vous ne pouvez pas réinstaller Commerce Server. L’exécution du programme d’installation de Commerce Server en mode Réparation ne parvient pas non plus à cela.

Solution

Créez une nouvelle base de données nommée MSCS_Admin, puis exécutez sur cette dernière le fichier admin_schema.sql à l’aide de l’Analyseur de requêtes SQL. Une nouvelle base de données d’administration est créée. L’exécution du script remplit le schéma de la base de données d’administration mais aucune ressource n’est créée.

Pour créer une nouvelle base de données d’administration

  1. Supprimez ou renommez votre base de données d’administration existante, le cas échéant.

  2. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server, puis cliquez sur Enterprise Manager.

  3. Dans Enterprise Manager, développez Serveurs Microsoft SQL, Groupe SQL Server, puis développez le nom du serveur sur lequel vous souhaitez créer la nouvelle base de données d’administration.

  4. Cliquez avec le bouton droit sur Bases de données, puis cliquez sur Nouvelle base de données.

  5. Sous l’onglet Général de la boîte de dialogue Propriétés de la base de données, dans la zone Nom, tapez MSCS_Admin.

  6. Cliquez sur OK.

Votre nouvelle base de données est créée. L’étape suivante consiste à exécuter le fichier admin_schema.sql.

Pour exécuter le fichier admin_schema.sql

  1. Dans Enterprise Manager, cliquez sur la base de données MSCS_Admin.

  2. Dans le menu Outils, cliquez sur Analyseur de requêtes SQL.

  3. Dans le menu Fichier, cliquez sur Ouvrir.

  4. Accédez à Programmes\Microsoft Commerce Server, sélectionnez le fichier admin_schema, puis cliquez sur Ouvrir.

  5. Dans le menu Requête, cliquez sur Exécuter.

Vous devez décompresser de nouveau vos sites et réinstaller le service Direct Mailer ainsi que la ressource Predictor à l’aide du programme d’installation de Commerce Server.

Remarque

  • Immédiatement après avoir installé votre site, et chaque fois que vous modifiez la configuration du déploiement de votre Commerce Server, il est conseillé de sauvegarder votre base de données d’administration sous un nom différent. Vous pouvez utiliser cette copie pour annuler toute modification ultérieure.


Business Desk: la modification du mot de passe d'administration déconnecte le client Business Desk

Business Desk : la modification du mot de passe d’administration déconnecte le client Business Desk

Si vous modifiez le mot de passe d’administration du serveur sur lequel Commerce Server Business Desk est installé, des erreurs s’affichent lorsque les ordinateurs client Business Desk essaient d’accéder à Business Desk. Les erreurs suivantes peuvent s’afficher :

  • Des erreurs se sont produites lors du chargement d’une partie de Business Desk.

  • Des erreurs se sont produites lors du chargement de l’application Business Desk.

Solution

Lorsque vous modifiez le mot de passe d’administration Commerce Server sur le serveur, vous devez également modifier le mot de passe dans Services de composants et enregistrer le fichier Global.asa.

Pour modifier le mot de passe dans Services de composants

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Outils d’administration, puis cliquez sur Services de composants.

  2. Développez les nœuds jusqu’au chemin suivant : Services de composants/Ordinateurs/Poste de travail/Applications COM+/Commerce Event Logging.

  3. Cliquez avec le bouton droit sur Journalisation des événements Commerce, puis cliquez sur Propriétés.

  4. Sous l’onglet Identité de la boîte de dialogue Propriétés de Commerce Event Logging, dans la zone Mot de passe, tapez le nouveau mot de passe.

  5. Dans la zone Confirmer le mot de passe, tapez la nouvelle valeur, puis cliquez sur OK.

Le mot de passe est mis à jour et Business Desk doit maintenant pouvoir s’ouvrir correctement.

Pour enregistrer le fichier Global.asa

  1. Accédez au répertoire virtuel Business Desk. Par exemple, C:\Inetpub\wwwroot\retailbusinessdesk.

  2. Ouvrez le fichier Global.asa dans le Bloc-notes.

  3. Pour enregistrer vos modifications, dans le menu Fichier, cliquez sur Enregistrer, puis sur Quitter.

Les modifications apportées au fichier Global.asa sont enregistrées. Tous les utilisateurs doivent maintenant fermer et rouvrir Business Desk pour prendre en compte les modifications du mot de passe.

Remarque

  • Vous devez également modifier le mot de passe pour les services de Commerce Server, tels que le Gestionnaire de listes, le service de publipostage et la ressource Predictor.

Voir aussi

Modification d’un compte de service ou d’un mot de passe


Business Desk : ajout de propriétés à valeurs multiples

Lorsque vous saisissez des données à valeurs multiples dans Commerce Server Business Desk, utilisez un point-virgule (;) pour séparer les valeurs. Ceci s’applique aux données des profils utilisateur, aux données des profils d’organisation et aux expressions dans le module Expressions de la campagne.

Remarque

  • Si vous avez ajouté des propriétés à valeurs multiples aux définitions de profil utilisateur qui sont mappées vers les sources de données comportant des données de date ou date/heure, la tâche d’importation des données de profil exporte les propriétés vers Data Warehouse. Commerce Server 2000 ne prend en charge ni les dates à valeurs multiples ni les membres date/heure.


Business Desk : configuration mise à jour non répercutée

Si vous avez modifié la configuration de Commerce Server Business Desk, puis arrêté et redémarré votre site Web, Business Desk ne reflète pas ces modifications. L’application n’est pas rechargée et utilise encore les vieux fichiers .xml.

Solution

Après avoir modifié la configuration de Business Desk, vous devez redémarrer Business Desk sur le serveur Web pour que ces modifications s’affichent. Pour faire cela, vous pouvez ouvrir puis enregistrer le fichier Global.asa, ce qui change l’heure de « dernière modification » et fait afficher les mises à jour de la configuration dans Business Desk.

Pour ouvrir et enregistrer le fichier Global.asa

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Accessoires, puis cliquez sur Bloc-notes.

  2. Dans le menu Fichier, cliquez sur Ouvrir. Accédez au fichier Global.asa, puis double-cliquez sur le fichier pour l’ouvrir. Dans le menu Fichier, cliquez sur Enregistrer pour enregistrer le fichier Global.asa sans le modifier.

  3. Pour quitter le Bloc-notes, dans le menu Fichier, cliquez sur Quitter.

Les modifications apportées à la configuration de Business Desk sont maintenant enregistrées. Tous les utilisateurs des ordinateurs client Business Desk doivent maintenant fermer et rouvrir Business Desk pour voir les modifications.


Business Desk: les données ne s'affichent pas dans le Gestionnaire de listes ou les modules Utilisateurs

Business Desk : les données ne s’affichent pas dans le Gestionnaire de listes ou les modules Utilisateurs

L’exécution des opérations de mise à jour ou de recherche sur de grands ensembles de données utilisateur via les modules Utilisateurs et Organisations peut entraîner une expiration du processus.

Si vous utilisez le module Gestionnaire de listes sur un grand ensemble de données pour construire une liste d’utilisateurs, la même erreur d’expiration peut se produire.

L’expiration de l’opération dépend d’un certain nombre de facteurs, et vous empêche par conséquent de visualiser les données. L’un de ces facteurs peut être la grande quantité d’entités à récupérer.

D’autres facteurs contribuant à cette expiration peuvent inclure :

  • Configuration backend (utilisez-vous uniquement Active Directory ?) SQL uniquement ? Active Directory et SQL ?

  • Bande passante réseau

  • Configuration du système (ordinateurs rapides par opposition à lents)

Solution

Vous devez peut-être exécuter des opérations de mise en jour en bloc en utilisant un script personnalisé sur le fournisseur des sources OLE DB pour Commerce Server. Les scripts personnalisés ne sont pas sujet aux limitations de la propriété Session.Timeout sur l’objet Session ASP intrinsèque. Vous pouvez définir la propriété Session.Timeout sur : <% Session.Timeout = 10 %>. Cela définit le délai d’expiration de la session sur 10 minutes. La propriété Session.Timeout possède une valeur maximale de 24 heures.

Pour plus d’informations sur la création de scripts personnalisés pour des opérations en bloc, consultez Code to Perform Bulk Operations using ADO and SQl (en anglais).

Voir aussi

WaitOnOperation (en anglais)


Business Desk: «Bibliothèque non inscrite» ou d'autres problèmes avec regexp

Business Desk : « Bibliothèque non inscrite » ou d’autres problèmes avec regexp

Lors de l’utilisation de Commerce Server Business Desk, si vous recevez le message « Bibliothèque non inscrite » ou tout autre message indiquant qu’il existe un problème avec l’objet COM regexp (Regular Expression), vous devez peut-être procéder à l’annulation de l’inscription et à une nouvelle inscription du fichier Vbscript.dll, qui se trouve dans le dossier Windows System32 du serveur.

Ce message d’erreur peut s’afficher sur n’importe quelle page disposant de commandes d’édition de texte (EditField).

Solution

Annulez l’inscription, puis procédez à une nouvelle inscription du fichier VBScript.dll. La procédure suivante suppose que Windows est installé dans C:\winnt.

Pour annuler l’inscription du fichier VBScript.dll

  • À l’invite de commande, tapez : regsvr32.exe c:/winnt/system32/VBScript.dll /u

Pour inscrire de nouveau le fichier VBScript.dll

  • À l’invite de commande, tapez : regsvr32.exe c:/winnt/system32/VBScript.dll


Business Desk : les utilisateurs avec des droits « Administrateur » ne peuvent accéder aux données de Business Desk

Si vous supprimez le compte de service groupe d’utilisateurs Tout le monde dans Windows ou si vous n’accordez pas de droits à ce groupe, les utilisateurs disposant de droits d’accès administrateur sont verrouillés hors de Commerce Server Business Desk.

Solution

Ne supprimez pas le groupe d’utilisateurs Tout le monde et ne modifiez pas les droits accordés par défaut. Pour obtenir des instructions sur la modification d’un compte de service ou d’un mot de passe, consultez Modification d’un compte de service ou d’un mot de passe.


Business Desk: des erreurs d'exécution se produisent lorsque vous accédez à Business Desk

Business Desk : des erreurs d’exécution se produisent lorsque vous accédez à Business Desk

Lorsque vous accédez à Commerce Server Business Desk, l’une des erreurs suivantes s’affiche :

  • Une erreur est survenue.

  • Souhaitez-vous effectuer un débogage ?

Solution

Assurez-vous que le dossier racine de Business Desk est configuré pour permettre le partage Web ; par défaut, Commerce Server le permet pour ces dossiers. Utilisez la procédure suivante pour permettre le partage Web sur un dossier Business Desk.

Pour permettre le partage Web sur un dossier Business Desk

  1. Dans l’Explorateur Windows, placez-vous dans le dossier qui contient votre application Business Desk. Ce dossier se trouve par défaut dans le dossier C:\Inetpub\wwwroot.

  2. Cliquez avec le bouton droit sur le nom du dossier (par défaut, le site solution vide inclus avec Commerce Server nomme ce dossier blankbizdesk), puis cliquez sur Propriétés.

  3. Sélectionnez l’onglet Partage Web de la boîte de dialogue Propriétés.

  4. Sous l’onglet Partage Web, cliquez sur Partager ce dossier.

  5. Dans la zone Alias, sélectionnez blankbizdesk, puis cliquez sur Modifier les propriétés.

  6. Dans la zone Autorisations d’accès de la boîte de dialogue Modifier l’alias, sélectionnez les autorisations pour cet alias d’après les considérations suivantes :

    Lecture. Permet aux utilisateurs de lire les fichiers sur ce site. Assurez-vous que cette option est activée.

    Écriture. Permet aux utilisateurs d’écrire dans les fichiers sur ce site.

    Accès à la source du script. Permet aux utilisateurs d’accéder au code source du script.

    Exploration de répertoire. Permet aux utilisateurs de naviguer dans le contenu du dossier.

  7. Dans la zone Autorisations de l’application, sélectionnez les autorisations d’accès aux applications d’après les considérations suivantes :

    Aucun. Empêche les utilisateurs d’exécuter des fichiers d’application dans ce dossier.

    Scripts. Permet aux utilisateurs d’exécuter des scripts, mais pas des applications, dans ce dossier.

    Exécuter (scripts inclus). Permet aux utilisateurs d’exécuter des scripts et des applications dans ce dossier.

  8. Cliquez sur OK. Dans la boîte de dialogue Propriétés, passez en revue votre liste d’alias de partage, puis cliquez de nouveau sur OK.


Business Desk: impossible d'accéder aux sites lorsque vous avez ouvert la session Business Desk en tant qu'administrateur

Business Desk : impossible d’accéder aux sites lorsque vous avez ouvert la session Business Desk en tant qu’administrateur

Vous ouvrez une session avec succès sur Commerce Server Business Desk à l’aide du compte Administrateur créé dans Microsoft Windows 2000. Par contre, vous ne pouvez pas accéder aux sites. Business Desk ne vous permet pas d’accéder au site en tant que Administrateur car aucun profil d’utilisateur Business Desk n’existe pour ce nom. Cependant, vous ne pouvez pas créer un utilisateur nommé Administrateur dans Business Desk, car ce nom existe déjà sur l’ordinateur.

Solution

Ouvrez une session sur Business Desk à l’aide d’un compte d’utilisateur créé dans Business Desk. Assurez-vous que ce compte dispose des droits d’accès appropriés. Si nécessaire, ajoutez des utilisateurs Business Desk au groupe Administrateur.


Synthèse des problèmes de rapport

Le tableau suivant récapitule les problèmes connus quant aux rapports.

Rapport | Problème
Tendance d’utilisation | Le total et le grand total sont basés sur le nombre d’utilisateurs pendant un jour donné. Cela peut ne pas correspondre à la période de référence que vous avez spécifiée.
Statistiques d’activités générales | Le nombre rapporté du nombre moyen de visites durant un jour ouvrable peut s’avérer imprécis. Il est calculé comme le « nombre de visites durant un jour ouvrable sur un nombre de semaines donné durant la période spécifiée ». Ce rapport ne produit pas une moyenne précise dans plusieurs cas. Un problème similaire existe pour le nombre de visites par heure ou par jour.
Itinéraire d’achat de l'acheteur | Le pourcentage d’utilisateurs inscrits effectuant des achats est basé sur le nombre total des utilisateurs, pas le nombre d’utilisateurs inscrits comme spécifié dans le rapport.
Synthèse des dépenses du client et Ventes de produits | Le prix unitaire pour les deux rapports est imprécis.


Rapports: erreur du rapport Itinéraire d'achat de l'acheteur

Rapports : erreur du rapport Itinéraire d’achat de l’acheteur

Si vous exécutez le rapport Itinéraire d’achat de l’acheteur et un message d’erreur s’affiche, cela signifie peut-être que les cookies du système des profils sont désactivés. Par conséquent, les données des utilisateurs inscrits ne sont pas importées dans Data Warehouse et ne sont pas ajoutées au cube BuyerVisits. Les données des utilisateurs inscrits ne sont pas disponibles pour le rapport Itinéraire d’achat de l’acheteur.

Solution

Vous pouvez résoudre ce problème de l’une des trois manières suivantes :

  1. Activez les cookies du système des profils, importez les données utilisateur dans Data Warehouse, puis exécutez la tâche DTS de préparation du rapport. Réexécutez le rapport Itinéraire d’achat de l’acheteur

  2. Ajoutez des rapports statiques personnalisés qui établissent un rapport sur l’activité des acheteurs par utilisateur inscrit pour les utilisateurs inscrits anonymes. Les utilisateurs inscrits anonymes ont une valeur nulle pour le Nom_ouverture_session dans la table dbo.RegisteredUser. Exécutez ce rapport plutôt que le rapport Itinéraire d’achat de l’acheteur.

  3. Supprimez la dimension partagée RegisteredUser des cubes Basket et Web Usage. Vous pouvez rajouter la dimension partagée RegisteredUser une fois que les cookies du système des profils sont à nouveau activés. Réexécutez le rapport Itinéraire d’achat de l’acheteur Ce rapport n’affiche pas les données des utilisateurs inscrits.


Rapports: impossible d'afficher les rapports SQL dynamiques

Rapports : impossible d’afficher les rapports SQL dynamiques

Après avoir importé les données et les fichiers journaux dans Data Warehouse et avoir exécuté la tâche DTS (Data Transformation Services) de préparation de rapport, vous exécutez un rapport SQL Server dynamique ; le tableau croisé dynamique renvoie alors le message d’erreur suivant :

« Impossible à la liste du tableau croisé dynamique « Tableau croisé dynamique » de se connecter à la source de données. » Pour des informations sur la source de données, consultez le créateur du fichier. (0x80040e4d).

Si vous essayez d’afficher un rapport dynamique qui est en train d’accéder à une base de données SQL Server à laquelle vous n’avez pas accordé d’autorisations de lecture ou d’écriture, il vous est alors impossible d’afficher ce rapport. Ce problème n’affecte pas les rapports OLAP (OnLine Analytical Processing) dynamiques.

Les rapports suivants sont affectés :

  • Portée et fréquence d’accès à la publicité par campagne

  • Portée et fréquence d’accès à la publicité par élément de la campagne

  • Portée et fréquence d’accès à la publicité par jour

  • Synthèse de l’élément de la campagne

  • Utilisateurs et visites distincts par semaine

  • Utilisateurs distincts par jour

  • Utilisateurs inscrits par date d’inscription

  • Jours avant inscription de l’utilisateur

  • Taux d’inscription des utilisateurs

  • Visites par navigateur, version et système d’exploitation

Solution

Vous devez disposer des droits de lecture et d’écriture sur la base de données à laquelle les rapports accèdent. Il est conseillé de définir un groupe d’utilisateurs dans Microsoft Windows 2000 avec des droits de lecture/écriture sur la base de données. Vous pouvez alors ajouter des utilisateurs qui ont besoin de ces droits.

Pour définir un groupe d’utilisateurs avec des droits de lecture/écriture

  1. Créez un nouveau groupe d’utilisateurs dans Windows 2000. Ajoutez les utilisateurs que vous voulez inclure dans ce groupe.

  2. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server, puis cliquez sur Enterprise Manager.

  3. Développez le nœud racine de la console jusqu’à Serveurs Microsoft SQL/<nom_serveur>/Sécurité/Connexions.

  4. Cliquez avec le bouton droit sur Connexions et sélectionnez Nouvelle connexion.

  5. Sous l’onglet Général de la boîte de dialogue Propriétés de la connexion SQL Server – Nouvelle connexion, dans la zone Nom, tapez le nom du nouveau groupe de connexions, puis cliquez sur Bouton de sélection pour rechercher le nom du nouveau groupe.

  6. Sélectionnez Authentification SQL Server et entrez un mot de passe pour ce groupe.

  7. Cliquez sur OK.

  8. Sous l’onglet Accès aux bases de données, activez l’option Autoriser pour la base de données sur laquelle vous accordez des droits, par exemple Retail_dw.

    Le nom du nouveau groupe de connexions s’affiche dans la colonne Utilisateur.

  9. Dans la zone Rôles base de données, activez les options Autoriser pour db_datareader et db_datawriter, puis cliquez sur OK.

Vous pouvez maintenant vous ajouter à ce groupe ainsi que tout autre utilisateur pour accéder aux rapports SQL Server dynamiques.


Les rapports ne contiennent pas de données

Si vos rapports semblent ne pas contenir de données, la dimension partagée SiteUnfiltered a peut-être été supprimée de l’un ou plusieurs des cubes suivants :

  • BandWidth

  • Basket Events

  • Buyer Visits

  • OrderEvents

  • Users

  • Web Usage

  • Weekly User Trends

Solution

Si cette dimension a été supprimée, vous devez ajouter la dimension partagée SiteUnfiltered aux cubes appropriés dans Analysis Manager.

Pour ajouter la dimension partagée SiteUnfiltered

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft Commerce Server 2000, puis cliquez sur Commerce Server Manager.

  2. Développez le nœud Analysis Servers jusqu’à <nom_serveur>/<nom_BD_OLAP>/Cubes/<nom_cubes>/.

  3. Cliquez avec le bouton droit sur le nom du cube, puis cliquez sur Modifier.

  4. Dans la boîte de dialogue Éditeur de cube, cliquez avec le bouton droit sur Dimensions, puis sélectionnez Dimensions existantes.

  5. Dans la zone Dimensions partagées de la boîte de dialogue Gestionnaire de dimensions, cliquez sur SiteUnFiltered, puis sur le bouton de la flèche droite (>).

  6. Cliquez sur OK, puis cliquez sur Enregistrer dans la barre d’outils.

  7. Fermez l’Éditeur de cube et réexécutez la tâche DTS de préparation du rapport Commerce Server.

Remarque

  • Vous pouvez aussi traiter de nouveau manuellement les cubes dans Analysis Manager.


Dépannage du Gestionnaire de package de site

Cette section décrit les problèmes que vous pouvez rencontrer lors de l’utilisation du Gestionnaire de package de site de Commerce Server, et propose des solutions possibles.

Cette section contient les rubriques suivantes :

  • Messages d’erreur du Gestionnaire de package de site

  • Le message d’erreur « Échec de la connexion pour l’utilisateur » s’affiche lors de la décompression de Data Warehouse

  • Impossible de décompresser un site sur un serveur Web

  • Le message d’erreur « Le chemin d’accès n’est pas valide » s’affiche lors de la décompression d’un site

  • Le message d’erreur « Erreur survenue lors de l’appel de l’API d’importation… » s’affiche lors de la décompression d’un site

  • Le message d’erreur « Profil manquant » s’affiche lors de la décompression d’un site

  • Les bases de données ne s’affichent pas après avoir décompressé un site


Messages d'erreur du Gestionnaire de package de site

Messages d’erreur du Gestionnaire de package de site

Cette section fournit des informations sur plusieurs des messages d’erreur susceptibles d’apparaître dans le fichier journal des événements du Gestionnaire de package de site Commerce Server (Pup.log) lorsque vous utilisez le Gestionnaire de package de site. Il ne s’agit pas d’une liste exhaustive.

Erreur lors de la recherche de répertoire pour <Application> <Numéro_erreur>:<Description_erreur>

Le Gestionnaire de package de site a rencontré une erreur en recherchant les entrées de la métabase IIS 5.0 (Internet Information Services) pour une application ou pour le chemin d’accès physique. Cette erreur se produit lorsque la métabase pointe vers un répertoire inexistant, ou que l’entrée de la métabase de l’application a été supprimée. Cette erreur n’a lieu que durant la compression.

Erreur lors de la recherche d’objet IIS pour <Nom_application>:<Description_erreur>

Le Gestionnaire de package de site a rencontré une erreur lors de l’accès aux paramètres d’IIS pour <Nom_application>. Soit la métabase est endommagée, soit l’application pointe vers un répertoire virtuel inexistant. Vérifiez que les applications dans le package pointent vers un répertoire virtuel qui existe véritablement.

Erreur lors de l’importation de l’URL pour <Nom_application> <Numéro_erreur>:<Description_erreur>

Le Gestionnaire de package de site a rencontré une erreur lors de la création d’un répertoire virtuel pour l’application, ou lors de la copie des fichiers d’application vers un dossier. Assurez-vous de disposer des droits d’administrateur pour modifier les paramètres IIS (Internet Information Services).

Erreur lors de l’exportation des données d’objet de <Nom_ressource> vers le fichier <Nom_fichier> <Numéro_erreur>:<Description_erreur>

Le Gestionnaire de package de site a rencontré une erreur lors de l’exportation des données d’une ressource ou d’une application. Soit les données sont inexistantes, soit une erreur d’automatisation s’est produite. Ce message d’erreur n’a lieu que durant la compression.

Erreur lors de l’importation des données d’objet pour <Nom_ressource> à partir du fichier <Nom_fichier> <Numéro_erreur>:<Description_erreur>

Le Gestionnaire de package de site a rencontré une erreur lors de l’importation des données d’une ressource ou d’une application. Soit les données sont endommagées, soit une erreur d’automatisation s’est produite. Ce message d’erreur n’a lieu que durant la décompression.

Erreur lors de la création de la ressource de référence <Ressource_référence> pour <Ressource_globale> <Numéro_erreur>:<Description_erreur>

Le Gestionnaire de package de site a rencontré une erreur lors de la création d’un pointeur de ressource globale pour la ressource globale nommée. Après avoir identifié et résolu le problème, exécutez le Gestionnaire de package de site en utilisant le mode Personnalisé pour ajouter la ressource à une application existante.

Voir aussi

À propos du Gestionnaire de package de site


Le message d'erreur «Échec de la connexion de l'utilisateur» s'affiche lors de la décompression de Data Warehouse

Le message d’erreur « Échec de la connexion de l’utilisateur » s’affiche lors de la décompression de Data Warehouse

Lors de la décompression de Data Warehouse en mode Personnalisé à l’aide du Gestionnaire de package de site Commerce Server, le message d’erreur suivant s’affiche : Échec de la connexion de l’utilisateur <nom_utilisateur>. Lorsque vous cliquez sur OK, la boîte de dialogue Propriétés de Data Warehouse s’affiche.

Solution

Pour continuer la décompression

  • Dans la zone Mot de passe de la boîte de dialogue Propriétés de Data Warehouse, supprimez les astérisques (**), tapez votre mot de passe, puis cliquez sur OK.

    Si vous ne voulez pas définir un mot de passe, n’activez pas cette case à cocher.

Le Gestionnaire de package de site Commerce Server achève la décompression du site.


Impossible de décompresser un site sur un serveur Web

Vous installez Commerce Server sur l’ordinateur A et Data Warehouse sur l’ordinateur B, mais vous ne pouvez pas décompresser votre site sur l’ordinateur A.

Solution

Ce problème se manifeste lorsque le serveur de base de données ne partage pas de contexte de sécurité avec le serveur Web. Pour résoudre le problème, exécutez la commande suivante sur le serveur de base de données :

net use \\<nom_serveur_Web> /u:<nom_ordinateur_local>\administrator *

Entrez le mot de passe SQL Server lorsque cela vous est demandé.

Il est conseillé également de vérifier combien de connexions SQL sont autorisées sur l’ordinateur. Lorsque vous installez Microsoft SQL Server, le nombre de connexions SQL défini par défaut est zéro (0), ce qui correspond à un nombre illimité de connexions. Si vous décidez de changer le nombre de connexions, allouez quatre connexions pour chaque ordinateur dans le cadre de l’installation de Commerce Server.

Pour déterminer le nombre de connexions SQL Server en cours d’utilisation

Pour définir les connexions SQL

Remarque

  • Il est recommandé de disposer de 20 connexions au moins pour décompresser un site.

Pour déterminer le nombre de connexions SQL Server en cours d’utilisation

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server, puis cliquez sur Analyseur de requêtes.

  2. Tapez la requête suivante dans la fenêtre ouverte :
    select * from master..sysprocesses where hostname <>''

    où '' correspond à deux guillemets simples.

  3. Cliquez sur le bouton Exécuter la requête de la barre d’outils.

L’Analyseur de requêtes affiche le nombre de connexions SQL Server en cours d’utilisation. Le nombre de lignes équivaut au nombre de connexions SQL Server.

Pour définir les connexions SQL Server

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server, puis cliquez sur Enterprise Manager.

  2. Cliquez avec le bouton droit sur le serveur SQL Server auquel vous ajoutez des connexions, cliquez sur Propriétés, puis cliquez sur l’onglet Connexions.

  3. Sous l’onglet Connexions, dans la zone Nombre maximal de connexions utilisateur simultanées (0 = illimité), tapez le nombre de connexions nécessaires, puis cliquez sur OK.


Le message d'erreur «Le chemin d'accès n'est pas valide» s'affiche lors de la décompression d'un site

Le message d’erreur « Le chemin d’accès n’est pas valide » s’affiche lors de la décompression d’un site

Lorsque vous essayez de décompresser un site, vous obtenez l’erreur suivante :

« Le chemin d’accès n’est pas valide. Vérifiez le chemin, puis recommencez. »

Cette erreur peut se produire si vous essayez de décompresser un site dans un dossier qui contient des caractères spéciaux. Par exemple, le Gestionnaire de package de site Commerce Server ne peut pas décompresser dans un dossier nommé « Mon commerce $$% » .

Bien que vous puissiez installer Commerce Server dans un dossier contenant des caractères spéciaux, vous ne pouvez pas décompresser un site dans un tel dossier.

Solution

Copiez le package vers un répertoire différent, puis décompressez-le.


Le message d'erreur «Erreur survenue lors de l'appel de l'API d'importation…» s'affiche lors de la décompression d'un site

Le message d’erreur « Erreur survenue lors de l’appel de l’API d’importation… » s’affiche lors de la décompression d’un site

Lorsque vous décompressez un site, vous obtenez l’erreur suivante :

« Erreur survenue lors de l’appel de l’API d’importation sur Commerce.CatalogPUP pour le catalogue de produits 80040E14:Source:fournisseur OLE DB Microsoft pour SQL ServerDescription:la recherche de texte intégral n’est pas disponible. L’administrateur système doit démarrer ce service. »

Cette erreur se produit si le service Microsoft Search n’est pas en cours d’exécution lorsque le Gestionnaire de package de site Commerce Server exécute le script pour créer des catalogues.

Solution

Démarrez le service Microsoft Search. Veuillez ensuite soit supprimer le site avant de le décompresser de nouveau, soit juste supprimer et décompresser la ressource Catalogue.

Pour démarrer le service Microsoft Search

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Outils d’administration, puis cliquez sur Services.

  2. Dans la boîte de dialogue Services, sélectionnez Microsoft Search.

  3. Cliquez avec le bouton droit sur Microsoft Search, puis sur Démarrer.


Le message d'erreur «Profil manquant» s'affiche lors de la décompression d'un site

Le message d’erreur « Profil manquant » s’affiche lors de la décompression d’un site

Cette erreur s’applique au site solution Supplier. Cela se produit lorsque le service Profils ne peut pas trouver d’utilisateur dans Microsoft Active Directory.

« Le nom d’utilisateur peut ne pas être inclus dans des conteneurs Active Directory : OU=MSCS_40_Root et OU=nom_site. »

Solution

La solution recommandée dépend du moment où le message d’erreur s’affiche.

Ouvrez une session sur le site de fournisseur en utilisant un nom créé à l’aide des composants d’exécution de Microsoft Commerce Server 2000.

Si vous obtenez cette erreur juste après avoir décompressé le site

Dans ce cas, l’erreur se produit car le site utilise la méthode Authentification intégrée de Windows par défaut et l’utilisateur tente d’utiliser un nom d’accès qui n’a pas été créé en utilisant Commerce Server Business Desk ou la ressource Profiles.

Utilisez Business Desk pour créer un compte d’utilisateur, puis ouvrez une session sur le serveur sous ce nouveau nom. Vous devez maintenant être en mesure d’accéder au site de fournisseur.

Une autre solution possible consiste à activer l’option Authentification de base (dans Internet Information Services 5.0) avec le site de fournisseur. Ouvrez une session sur le site. Assurez-vous d’utiliser l’un des formats suivants lorsque vous tapez le nom d’utilisateur :

  • nom_domaine\nom_utilisateur

  • nom_utilisateur@nom_domaine_complet

Si vous obtenez cette erreur (ou une erreur similaire) tout en utilisant AuthFilter en mode Authentification Windows

Déterminez si la méthode GetProfileByKey sur la page de connexion fonctionne correctement. Si cette méthode produit un message d’erreur concernant un mode d’authentification non autorisé, un utilisateur anonyme n’a donc pas l’autorisation d’accéder au profil utilisateur ou de le lire. Pour plus d’informations, consultez GetProfileByKey (en anglais).

Dans ce cas, assurez-vous que l’utilisateur a un compte d’utilisateur Windows disposant de droits d’accès et de lecture sur les propriétés de profil utilisateur dans Active Directory.

Une autre solution consiste à s’assurer que vous pouvez accéder au site sans le filtre ISAPI AuthFilter.

Pour accéder au site sans AuthFilter

  1. Utilisez le Gestionnaire des services Internet pour supprimer le filtre.

  2. Définissez le mode de sécurité sur Authentification de base uniquement sur le site de fournisseur. Redéfinissez ensuite IIS (Internet Informations Services).

  3. Essayez d’accéder au site avec les informations d’identification correctes.

Si cela échoue, assurez-vous d’avoir créé le compte d’utilisateur avec Business Desk et que le compte est bien activé.

Voir aussi

Working with Site Security and Filters (en anglais)


Les bases de données ne s'affichent pas après avoir décompressé un site

Les bases de données ne s’affichent pas après avoir décompressé un site

Vous décompressez un site sur l’ordinateur A et vous créez des bases de données pour les ressources sur l’ordinateur B ; une fois la décompression du site achevée, les nouvelles bases de données n’apparaissent pas sur l’ordinateur B.

Solution

Patientez quelques minutes. Le Gestionnaire de package de site s’exécute sur l’ordinateur A ; si le réseau est encombré, il se peut qu’il y ait un retard avant la création des ressources. De plus, vous pouvez réexécuter le Gestionnaire de package de site Commerce Server pour vous assurer que vous avez créé les bases de données sur l’ordinateur B, pas sur l’ordinateur A.


Dépannage des ressources de Commerce Server

Cette section décrit les problèmes que vous pouvez rencontrer lors de l’utilisation des ressources de Commerce Server et propose des solutions possibles.

Cette section contient les rubriques suivantes :

  • Tâches DTS : la tâche de préparation du rapport échoue

  • Tâches DTS : les services Terminal Server et la tâche de préparation du rapport ne sont pas compatibles

  • Tâches DTS : la tâche d’importation des données de profil utilisateur ne prend pas en charge les dates à valeurs multiples

  • Predictor : impossible de construire les modèles d’analyse

  • Predictor : la construction de modèles d’analyse prend trop de temps

  • Predictor : le chargement d’un modèle d’analyse de Data Warehouse prend trop de temps

  • Predictor : création de plusieurs modèles d’analyse pour une application

  • Predictor : la prévision prend trop de temps

  • Predictor : les mêmes recommandations de la prévision sont renvoyées quelle que soit l’entrée

  • Predictor : le modèle d’analyse ne peut être construit en utilisant des caractères DBCS dans le nom du modèle

  • Ressource Profiles : la connexion a échoué pour l’utilisateur

  • Service de publipostage : les travaux de publipostage échouent sans générer de message d’erreur

  • Service de publipostage : découverte des détails des échecs de travaux


Tâches DTS : la tâche de préparation du rapport échoue

Si vous installez Data Warehouse sur un ordinateur sur lequel un logiciel exécute un balayage en temps réel de votre système (par exemple, un logiciel de protection anti-virus), vous ne pourrez peut-être pas exécuter la tâche DTS (Data Transformation Services) de préparation du rapport avec succès.

Solution

Pour résoudre ce problème, utilisez le Gestionnaire de tâches de Windows 2000 pour arrêter le processus utilisé par le logiciel de balayage.


Tâches DTS : les services Terminal Server et la tâche de préparation du rapport ne sont pas compatibles

Vous devez exécuter la tâche DTS (Data Transformation Services) de préparation du rapport directement sur le serveur. N’exécutez pas la tâche DTS de préparation du rapport depuis le package exécuté à partir des services de Terminal Server : effectuer ceci produit une erreur dans DTS.

Ce problème se rencontre également lors de la décompression d’un site. Lorsque vous décompressez Data Warehouse, la base de données OLAP peut ne pas être créée correctement.


Tâches DTS: la tâche d'importation des données de profil utilisateur ne prend pas en charge les dates à valeurs multiples

Tâches DTS : la tâche d’importation des données de profil utilisateur ne prend pas en charge les dates à valeurs multiples

Si vous avez défini des propriétés à valeurs multiples dans votre profil utilisateur qui sont mappées vers les sources de données comportant des données de date ou date/heure, elles ne seront pas exportées vers Data Warehouse par la tâche d’importation des données de profil utilisateur de Commerce Server 2000. Commerce Server 2000 ne prend en charge ni les dates à valeurs multiples ni les membres date/heure.


Predictor: impossible de construire les modèles d'analyse

Predictor : impossible de construire les modèles d’analyse

Vous essayez de construire un modèle de prévision ou de segment et aboutissez à un échec.

Solution

La demande de construction d’un modèle a été effectuée soit avant l’achèvement de la tâche DTS de préparation du rapport (Data Transformation Services), soit après l’échec de cette dernière.

Réexécutez la tâche DTS de préparation du rapport. Patientez jusqu’à son achèvement, puis essayez de construire les modèles de prévision et de segment.


Predictor: la construction de modèles d'analyse prend trop de temps

Predictor : la construction de modèles d’analyse prend trop de temps

Le temps nécessaire à la construction d’un modèle d’analyse dépend de la taille des données entrées (nombre total de cas), de la taille de l’échantillon, du nombre d’attributs dans les données, de divers facteurs liés aux statistiques des données entrées, mais aussi des caractéristiques du matériel et à la topologie du réseau.

Solution

Voici quelques méthodes permettant d’améliorer les performances de construction :

  • Choisissez une plus petite taille d’échantillon. Les échantillons de grande taille produisent des résultats plus fiables — jusqu’à une certaine limite. Par exemple, si vous possédez un total de 1 000 000 de cas entrés, vous pouvez commencer par construire un modèle d’analyse de 5 000 cas, puis de 10 000 etc., jusqu’à ce que la précision du modèle ne change plus de manière significative.

  • Si votre catalogue contient un très grand nombre de produits (plus de 1 000) et si vous construisez un modèle de prévision, il est préférable de définir les valeurs de Fraction d’attribut d’entrée et Fraction d’attribut de sortie sur des valeurs inférieures à 1.0 dans la boîte de dialogue Propriétés de construction d’un modèle.

Voir aussi

Construction d’un nouveau modèle d’analyse


Predictor: le chargement d'un modèle d'analyse de Data Warehouse prend trop de temps

Predictor : le chargement d’un modèle d’analyse de Data Warehouse prend trop de temps

Si vous essayez de charger un modèle d’analyse de grande taille depuis Data Warehouse, cela peut prendre un certain temps. Si vous chargez le modèle d’analyse depuis un fichier, le temps de chargement requis peut se réduire.

Solution

Au lieu de toujours utiliser la méthode LoadModelFromDB, vous pouvez mettre le modèle en cache sous forme de fichier sur le serveur Web à l’aide de IPredictorClient::SaveModelToFile, puis le charger à l’aide de LoadModelFromFile. Le chargement à partir d’un fichier s’avère plus rapide et fonctionne même si Data Warehouse n’est pas disponible.

Voir aussi

IPredictorClient::SaveModelToFile (Visual C++) (en anglais)

PredictorClient.SaveModelToFile (Visual Basic) (en anglais)


Predictor: création de plusieurs modèles d'analyse pour une application

Predictor : création de plusieurs modèles d’analyse pour une application

Si vous avez besoin de plusieurs modèles d’analyse pour une application particulière, évitez de réinitialiser les propriétés sur l’interface IPredictorClient au niveau de chaque page, car le seul état que l’objet PredictorClient conserve sont les propriétés définies sur l’objet et le modèle d’analyse chargé actuellement.

Solution

Pour créer plusieurs modèles d’analyse pour une application particulière, utilisez des instances séparées de l’objet PredictorClient au lieu de charger un modèle sur chaque page. Créez l’objet PredictorClient dans le contexte de l’application à l’aide de Microsoft Internet Information Services (IIS) 5.0 dans Application_OnStart, puis réutilisez l’objet sur des pages ASP (Active Server Pages) individuelles.

Voir aussi

PredictorClient Object (Visual C++) (en anglais)

PredictorClient Object (Visual Basic) (en anglais)


Predictor : la prévision prend trop de temps

Soit un modèle de prévision prend trop de temps pour s’ouvrir dans Prediction Model Viewer, soit un modèle de segment prend trop de temps pour s’ouvrir dans Segment Viewer.

Solution

Si le temps pris par la prévision est inacceptable, les informations suivantes peuvent s’avérer utiles :

  • Utilisez l’interface lMaxPredictions dans IPredictorClient::Predict pour limiter le nombre de prévisions au lieu de demander toutes les prévisions et traiter ultérieurement le résultat. Une prévision s’effectue plus rapidement lorsque le nombre de prévisions demandées est peu important.

  • Si vous utilisez un modèle de segment pour la prévision, vous pouvez limiter le nombre de segments utilisés lors de la construction de modèles de segment. La construction de modèles de segments s’effectue plus rapidement lorsque peu de segments sont demandés lors de la construction.

Remarque

  • Il est recommandé de ne pas utiliser de modèles de segment pour des recommandations en temps réel, puisqu’ils ne sont pas optimisés dans ce but et ne produisent pas de recommandations aussi précises que celles des modèles de prévision. Veuillez toujours construire et utiliser des modèles de prévision pour les recommandations en temps réel sur votre site.

Voir aussi

IPredictorClient::Predict (Visual C++) (en anglais)

PredictorClient.Predict (Visual Basic) (en anglais)

Construction d’un nouveau modèle d’analyse


Predictor: les mêmes recommandations de la prévision sont renvoyées quelle que soit l'entrée

Predictor : les mêmes recommandations de la prévision sont renvoyées quelle que soit l’entrée

Si vous obtenez les mêmes recommandations, quelle que soit l’entrée, il est possible que la ressource Predictor ne reconnaisse pas les noms des attributs entrés. Par défaut, l’objet PredictorClient ignore les attributs entrés qu’il ne reconnaît pas.

Solution

Si bFailOnUnknownInputAttributes prend la valeur True, l’objet PredictorClient génère une erreur lors de la prévision s’il ne reconnaît pas l’entrée. Pour les modèles de prévision, utilisez Prediction Model Viewer pour afficher les arborescences et identifier les prévisions qui peuvent être effectuées ainsi que les attributs entrés utilisés pour prévoir des attributs de sortie donnés. Il est possible que l’attribut faisant l’objet d’une prévision ne dépende pas suffisamment de l’attribut entré pour être inclus dans le modèle. Pour plus d’informations sur Prediction Model Viewer, consultez Prediction Model Viewer.

Voir aussi

PredictorClient Object (Visual C++) (en anglais)

PredictorClient Object (Visual Basic) (en anglais)


Predictor: le modèle d'analyse ne peut être construit en utilisant des caractères DBCS dans le nom du modèle

Predictor : le modèle d’analyse ne peut être construit en utilisant des caractères DBCS dans le nom du modèle

Vous obtenez le message d’erreur « Chargement du modèle impossible » lorsque vous construisez un modèle d’analyse en utilisant des caractères DBCS (Double-Byte Character Set) dans le nom du modèle.

Solution

Si vous utilisez des caractères DBCS dans le nom du modèle pour des modèles de prévision ou de segment, assurez-vous que le serveur SQL Server qui stocke les données est installé avec un jeu de caractères compatible.


Ressource Profiles: la connexion a échoué pour l'utilisateur

Ressource Profiles : la connexion a échoué pour l’utilisateur

Le message d’erreur suivant s’affiche :

« Fournisseur Microsoft OLE DB pour SQL Server :la connexion a échoué pour l’utilisateur <nom_utilisateur> »

Si vous effectuez une sauvegarde des tables de base de données SQL Server associées à la ressource Profiles et vous les restaurez sur une base de données différente sur la même installation de serveur SQL Server ou une autre installation de serveur SQL Server, la ressource Profiles peut ne pas se réinitialiser car une ou plusieurs chaînes de connexion vers les tables de base de données ne sont peut-être pas valides après les avoir restaurées sur le nouveau serveur SQL Server. La ou les chaînes de connexion ne sont peut-être pas valides, car soit les informations d’identification ne sont pas valides, soit la base de données n’est pas présente sur la même installation de serveur SQL Server, ou les deux.

Remarque

  • Il est déconseillé de sauvegarder et de restaurer vos bases de données directement. Vous devez plutôt utiliser le Gestionnaire de package de site Commerce Server pour sauvegarder et restaurer vos bases de données.

Solution

Le système de profil dépend de la chaîne de connexion s_CommerceProviderConnectionString. Cette chaîne de connexion est utilisée par le Fournisseur OLE DB pour Commerce Server ; elle est stockée au sein de la base de données d’administration de Commerce Server. Si vous restaurez la base de données d’administration à partir de la sauvegarde d’une base de données, cette chaîne de connexion est souvent incorrecte et doit être réinitialisée.

Pour réinitialiser la chaîne de connexion s_CommerceProviderConnectionString

  1. Développez Commerce Server Manager, puis Ressources globales, cliquez avec le bouton droit sur Profils, puis cliquez sur Propriétés.

  2. Sous l’onglet Chaînes de connexion de la boîte de dialogue Propriétés des profils, sélectionnez s_CommerceProvideConnectionString, puis cliquez sur Modifier.

  3. Apportez les modifications nécessaires dans la boîte de dialogue Propriétés des liaisons de données, puis cliquez sur OK.

    Remarque

    • Pour plus d’informations sur les informations à indiquer dans la boîte de dialogue Propriétés des liaisons de données, cliquez sur Aide dans la boîte de dialogue Propriétés des liaisons de données pour ouvrir le fichier d’aide Liaisons de données Microsoft.


Service de publipostage: les travaux de publipostage échouent sans générer de message d'erreur

Service de publipostage : les travaux de publipostage échouent sans générer de message d’erreur

Si l’Agent SQL Server s’arrête lorsqu’un travail de publipostage est planifié pour s’exécuter, le travail ne s’exécute pas. Vous ne recevez aucune indication que le travail n’a pas pu démarrer et aucune condition d’erreur n’est enregistrée dans le journal.

Solution

Pour démarrer un travail qui ne s’est pas exécuté, vous devez le lancer manuellement à partir du contrôle de l’Agent SQL Server dans SQL Enterprise Manager.

Pour démarrer un travail de publipostage manuellement

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server ou Microsoft SQL Server 7.0 (en fonction de la base de données installée), puis cliquez sur Enterprise Manager.

  2. Développez les nœuds jusqu’au chemin suivant : \Microsoft SQL Servers\Groupe SQL Server\<Nom_Serveur_SQL>\Gestion\Agent SQL Server\Travaux.

  3. Cliquez sur Travaux. Les travaux de publipostage s’affichent dans le volet droit de SQL Server Enterprise Manager.


Service de publipostage : découverte des détails des échecs de travaux

Lorsqu’un travail de publipostage s’achève, l’événement est enregistré dans le journal des événements de l’application. Cet événement contient le numéro du travail, l’heure de démarrage du travail, l’heure d’achèvement du travail, le nombre total de destinataires du courrier ainsi que le nombre des erreurs qui se sont produites.

Pour trouver plus d’informations sur les échecs, vous devez consulter la table dml_job_errors dans la base de données de publipostage.

Solution

Ouvrez l’Observateur d’événements et trouvez le message du journal des événements de l’application journalisé par le service de publipostage.

Pour ouvrir l’Observateur d’événements

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft Commerce Server, puis cliquez sur Commerce Server Manager.

  2. Développez le nœud de l’Observateur d’événements et double-cliquez sur Application.

  3. Dans la liste des événements, trouvez l’événement dont la source est le service de publipostage de Commerce Server et l’ID d’événement est 18.

  4. Double-cliquez sur le message d’événement pour ouvrir la boîte de dialogue Propriétés de Événement.

  5. Dans la boîte de dialogue Propriétés de Événement, copiez le numéro de travail dans le Presse-papiers Microsoft, puis ouvrez l’Analyseur de requêtes SQL Server.

Pour ouvrir l’Analyseur de requêtes SQL Server

  1. Cliquez sur Démarrer, pointez sur Programmes, sur Microsoft SQL Server, puis cliquez sur Analyseur de requêtes.

  2. Dans la boîte de dialogue Connexion à SQL Server, connectez-vous à la base de données de publipostage sur laquelle votre serveur est configuré pour s’exécuter.

  3. Tapez la requête suivante dans la fenêtre de l’Analyseur de requêtes :
    "SELECT * FROM dml_job_errors WHERE job_id = '<job id>'

    où <job id> correspond au numéro de travail copié dans l’étape 5 de la procédure Pour ouvrir l’Observateur d’événements.

L’ensemble de résultats renvoyé indique le code d’erreur et la description de chaque échec survenu durant le traitement du travail de publipostage.


Pour plus d'informations sur le dépannage

Pour plus d’informations sur le dépannage

Pour obtenir des informations supplémentaires sur le dépannage, consultez les ressources suivantes :

Ressource | Emplacement
Rubriques sur le débogage dans l’aide de Commerce Server 2000
  • Debugging Tools (en anglais)

  • Debugging the Business Desk (en anglais)

  • Content Selection Framework Concepts (en anglais)
Fichier Lisezmoi de Commerce Server 2000 | CD-ROM d’installation de Commerce Server 2000
Site Web Microsoft Commerce Server | www.microsoft.com/commerceserver
Sites solutions Commerce Server Contient des informations techniques et des versions à télécharger des sites solutions Commerce Server.

www.microsoft.com/commerceserver/solutionsites
TechNet Contient des informations techniques et des outils conçus pour vous aider à planifier, développer, déployer et gérer vos sites Web de commerce électronique.

Pour plus d’informations sur Commerce Server, sélectionnez l’option Commerce Server du menu Zones Produits situé sur le côté gauche de l’écran.

www.microsoft.com/technet/
Kit de développement de logiciel (SDK, Software Development Kit) de Commerce Server 2000. | Contient des informations techniques à l’intention des développeurs qui créent des programmes ou des pages Web intelligentes devant s’intégrer à l’interface API (Application Programming Interface) de Commerce Server. Le Kit de développement de logiciel contient un guide pour les programmeurs ainsi que des références aux diverses technologies Commerce Server et commerciales. Il comprend également des fichiers d’exemple et d’en-tête que vous pouvez utiliser pour créer vos propres programmes. Inclus avec Commerce Server 2000.
Kit de Ressources Techniques Commerce Server 2000 | Le Kit de Ressources Techniques Commerce Server 2000 contient des informations techniques et des outils conçus pour vous aider à planifier, développer, déployer et gérer votre site Web de commerce électronique. Il est disponible auprès de Microsoft Press.
Informations MSDN | Contient des informations sur Commerce Server 2000 et d’autres serveurs d’entreprise Microsoft .NET. Visiter ce site de façon régulière peut s’avérer utile. Cliquez sur Search MSDN, puis entrez dans Commerce Server 2000 pour trouver les documents et le livre blanc correspondants. www.msdn.microsoft.com
Site des serveurs Microsoft Un guide sur la gamme entière des produits serveur Microsoft pour les informaticiens, les développeurs et les spécialistes Internet.

www.microsoft.com/servers/
Groupes de discussion Utilisez des groupes de discussion avec vos homologues pour discuter de Commerce Server avec d’autres administrateurs, développeurs et Microsoft MVPs (Most Valuable Professionals). Microsoft n’analyse pas le contenu de ces groupes de discussion ou sites et ne fournit pas non plus de support technique.

www.microsoft.com/commerceserver/support/NewsGrps.htm
Premier Support « Premier Support for Developers » (Support technique de premier ordre pour les développeurs) est un programme offert par Microsoft pour vous aider à analyser votre site et vous aider avec d’autres problèmes liés au développement.

Présentation de Commerce Server 2000.


Glossaire

A

abonnement à une liste de publipostage

Action effectuée par un utilisateur pour s’inscrire à une liste de publipostage.

abonnement

Processus par lequel les utilisateurs ajoutent leur adresse électronique à une liste du Gestionnaire de listes afin de recevoir du contenu, ou fournissent des informations d’inscription pour récupérer du contenu ou accéder à un service ou à un site.

accès

Action unique (par exemple, un clic sur une publicité) effectuée par un utilisateur d’un site Web qui entraîne l’ajout d’une ligne de données dans le fichier journal du serveur Web.

accès anonyme

Voir authentification anonyme.

accès authentifié

Option d’accès des utilisateurs que vous pouvez définir au niveau du site Web par défaut ou de l’application dans IIS. Contrairement à l’accès anonyme, l’accès authentifié exige que l’utilisateur ait un compte et un mot de passe valides pour accéder au site. Les trois types d’accès authentifié sont l’authentification de base, l’authentification Digest et l’authentification intégrée de Windows.

Achat immédiat

Modèle de contenu utilisé dans Commerce Server pour encourager les achats sur impulsion : l’utilisateur peut acheter des produits sur n’importe quelle page Web disponible sur Internet. Lorsqu’un utilisateur clique sur l’image d’un produit, une boîte de dialogue lui demandant son adresse de livraison et son numéro de carte de crédit s’affiche.

action de ciblage

Option qui spécifie qu’un contenu doit être affiché lorsque la cible est atteinte plus souvent que lorsqu’elle ne l’est pas. Utilisez une action de ciblage lorsqu’il est difficile de respecter les buts quantitatifs de ciblage de l’élément de la campagne (par exemple, si vous n’avez pas suffisamment de cibles par rapport au nombre d’affichages souhaité). Par exemple, si vous devez livrer 1 000 demandes de publicité à des utilisateurs qui vivent en Alaska et que seuls 15 utilisateurs répondent à ce critère, vous serez obligé de livrer cette publicité à des personnes qui ne vivent pas en Alaska. Utilisez le module Groupes cibles Business Desk pour spécifier l’action de ciblage pour une expression.

Active Directory

Service d’annuaire de Windows NT 4.0 et Windows 2000 Server. Active Directory stocke les informations concernant les objets du réseau et permet aux administrateurs système et aux utilisateurs autorisés d’accéder à ces informations. Il permet aux utilisateurs du réseau d’accéder aux ressources autorisées de l’ensemble du réseau à l’aide d’un seul processus d’ouverture de session. En outre, il fournit aux administrateurs système un affichage hiérarchique intuitif du réseau et offre un point d’administration unique pour tous les objets du réseau.

Active Directory Service Interfaces (ADSI)

Modèle de service d’annuaire basé sur le modèle COM (Component Object Model) qui permet aux applications clientes compatibles ADSI d’accéder à une large gamme de protocoles d’annuaire, comme les services d’annuaire Windows, le protocole LDAP (Lightweight Directory Access Protocol) ou le service NDS (Novell Directory Services), en utilisant un ensemble d’interfaces unique et standard. ADSI épargne à l’application cliente les détails d’implémentation et de fonctionnement de la banque de données ou du protocole sous-jacents.

Active Server Pages (ASP)

Environnement de script côté serveur permettant de créer des pages Web dynamiques ou des applications Web. Les pages ASP sont des fichiers contenant des balises HTML, du texte et des commandes de script. Les pages ASP peuvent appeler des composants COM (Component Object Model) pour effectuer certaines tâches, par exemple pour se connecter à une base de données ou procéder à un calcul. Avec ASP, vous pouvez ajouter un contenu interactif à des pages Web ou créer des applications Web entières utilisant des pages HTML pour l’interface avec les clients.

Active Template Library (ATL)

Bibliothèque de modèles C++ qui facilite le développement de petits composants COM efficaces. Cette bibliothèque a été développée par Microsoft et est incluse dans Visual C++.

Active User Object (AUO)

Infrastructure qui fournit un mécanisme d’accès simple et uniforme pour toutes les informations de profil utilisateur, évitant ainsi aux créateurs de scripts de spécifier l’emplacement de l’identification des utilisateurs et de stockage du profil. Un administrateur système peut configurer un ordinateur pour définir un espace de noms virtuel pour les informations de profil, définissant ainsi les informations de configuration nécessaires pour accéder aux données de profil à partir de différentes sources.

Techniquement parlant, un objet AUO est un conteneur d’objets ADSI. Un administrateur système définit le nombre d’objets que l’objet AUO peut contenir et fournit des informations pour la gestion de ces objets. Cela permet d’obtenir un modèle extensible afin d’ajouter de nouveaux fournisseurs de stockage ou d’autres sources de profils. En créant ou en réutilisant des fournisseurs ADSI, vous pouvez accéder aux informations de profil de n’importe quelle banque.

ActiveX Data Objects (ADO)

Ensemble d’interfaces d’accès aux données basées sur les objets, indépendant du langage et de haut niveau, optimisé pour les applications de données. ADO permet aux applications clientes d’afficher et de manipuler les données d’un serveur de base de données via un fournisseur OLE DB.

Voir aussi : objets de données ADO MD (ActiveX Data Objects Multidimensional)

administrateur

Voir administrateur système.

administrateur système

Principal utilisateur de Commerce Server Manager. Cette personne est responsable de l’installation, de la configuration et de la gestion de Commerce Server.

ADO

Voir ActiveX Data Objects.

ADO MD

Voir objets de données ADO MD (ActiveX Data Objects Multidimensional).

adresse Internet

Voir nom de domaine Internet.

ADSI

Voir Active Directory Service Interfaces.

affinité d’étape

Qualité des composants qui peuvent fonctionner pour une certaine étape. Pour identifier les étapes avec lesquelles un composant a une affinité, vous devez écrire l’identificateur de classe du nouveau composant dans la clé \HKEY_CLASSES_ROOT\CLSID\idclasse_composant\catégories implémentées\idétape_ac du Registre Microsoft Windows NT, où idétape_ac est le GUID de l’étape avec laquelle le composant aura une affinité et idclasse_composant est l’identificateur de classe du composant.

Voir aussi : étape

agrégation

Table ou structure contenant des données précalculées pour un cube OLAP (OnLine Analytical Processing). Les agrégations prennent en charge l’interrogation rapide et efficace d’une base de données multidimensionnelle.

annulation de l’abonnement

Action effectuée par un utilisateur pour annuler son inscription à une liste de publipostage. Cet utilisateur est alors ajouté à la liste des annulations d’abonnements.

application

Du point de vue de l’administration de Commerce Server 2000, une application est une application ASP accessible via une seule adresse URL (Uniform Resource Locator). Une application apparaît dans l’arborescence de la console de Commerce Server et dans celle de IIS. L’application qui s’affiche dans l’arborescence de la console de Commerce Server Manager est une représentation logique de l’application qui apparaît dans IIS.

Application Center 2000

Outil Microsoft de gestion et de déploiement pour les applications Web haute disponibilité créées pour Windows 2000.

application Commerce Server

Voir application.

application HTML (HTA, HTML Application)

Mécanisme d’Internet Explorer permettant d’afficher du code HTML sous la forme d’une application autonome. Commerce Server Business Desk est implémenté en tant qu’application HTML et contient du code empêchant son exécution dans une instance de navigateur classique.

application IIS

Voir application.

application non-Commerce Server

Conteneur de serveurs Web non-Commerce Server avec des propriétés communes pour l’application. Ce type d’application est comparable à une application Commerce Server et ses serveurs Web Commerce Server membres.

application Web

Voir application.

arborescence de décision

Représentation graphique d’un ensemble de règles de prévision indiquant la probabilité pour qu’un événement prévoie un autre événement en fonction de données historiques. L’arborescence de décision pour l’attribut X code la distribution de probabilité p (X | attributs qui prévoient X).

Voir aussi : réseau de dépendances

arborescence de la console

Volet gauche d’une interface MMC qui affiche les éléments contenus dans la console. Par défaut, il s’agit du volet gauche de la fenêtre de la console, mais ce volet peut être masqué. Les éléments de l’arborescence de la console et leur organisation hiérarchique déterminent les fonctionnalités de cette console.

arc

Représentation graphique d’une relation statistique dans un réseau de dépendances. Par exemple, un arc du nœud A vers le nœud B signifie que l’attribut A aide à prévoir l’attribut B, mais n’implique pas que l’attribut B aide à prévoir l’attribut A.

Voir aussi : réseau de dépendances

architecture à trois niveaux

Architecture qui divise une application réseau en trois zones logiques : la couche de l’interface utilisateur (niveau supérieur), la couche logique d’entreprise (niveau intermédiaire) et la couche des bases de données (niveau inférieur ou principal). Une couche peut avoir un ou plusieurs composants. Par exemple, le niveau supérieur peut comporter une ou plusieurs interfaces utilisateur. En outre, chaque interface utilisateur peut communiquer simultanément avec plusieurs applications du niveau intermédiaire et les applications du niveau intermédiaire peuvent utiliser plusieurs bases de données à la fois. Les composants d’un niveau peuvent s’exécuter sur un ordinateur différent de celui utilisé par les autres niveaux et communiquer avec ces derniers via un réseau.

ASP

Voir Active Server Pages (ASP).

Assistant Composant de pipeline ATL

Assistant Visual C++ qui utilise ATL et d’autres modèles pour faciliter le développement de composants de pipeline.

ATL

Voir Active Template Library (ATL).

attribut des propriétés de profil

Caractéristique qui décrit une propriété de profil. Les attributs des propriétés de profil fournissent des informations telles que le type de données de la propriété de profil (par exemple, nombre, texte et décimal), si la propriété comporte une valeur unique (par exemple, seul un prénom est autorisé) ou multiple, et si un utilisateur visitant le site Web peut effectuer une recherche à l’aide de cette propriété.

attribut

Caractéristique qui décrit une propriété, un objet ou une personne. Les attributs peuvent inclure des informations telles que le type de données de la propriété (par exemple, nombre, texte ou décimal), si la propriété est exportée vers le Data Warehouse de Commerce Server, si la propriété est affichée aux utilisateurs ou si la propriété est indexée en texte intégral. Un attribut peut correspondre à un ensemble de valeurs comme la couleur des cheveux ou l’âge. En fonction de la propriété ou de l’objet décrit, un attribut peut également être appelé variable, colonne ou dimension.

Voir aussi : nœud

audit

Suivi des activités des utilisateurs via l’enregistrement de certains types d’événements dans le journal de sécurité d’un serveur ou d’une station de travail.

AUO

Voir Active User Object (AUO).

authentification anonyme

Une des méthodes d’authentification que vous pouvez définir au niveau du site Web ou de l’application dans IIS. L’authentification anonyme permet d’établir une connexion Web anonyme (HTTP) sans fournir de nom d’utilisateur ni de mot de passe. Elle est souvent utilisée dans les zones publiques d’un site Internet. Si vous activez l’authentification anonyme pour un site, une connexion anonyme sera établie même si l’accès authentifié a également été activé, à moins que des autorisations NTFS plus restrictives n’aient été définies sur le fichier demandé. Également appelée accès anonyme.

authentification Digest

Une des méthodes d’authentification que vous pouvez définir au niveau du site Web par défaut ou de l’application dans IIS. Avec l’authentification Digest, une valeur de hachage est envoyée sur le réseau, et non un mot de passe en clair. Cette méthode fonctionne sur des serveurs proxy et des pare-feu (firewall). Il s’agit d’une méthode d’accès authentifié haute sécurité.

authentification intégrée de Windows

Une des méthodes d’authentification que vous pouvez définir au niveau du site Web ou de l’application dans IIS. Cette méthode utilise le nom d’utilisateur et le mot de passe d’ouverture de session Windows pour l’authentification, mais ne demande pas ces informations à l’utilisateur, sauf si l’authentification échoue. Cette méthode ne fonctionne pas pour les connexions proxy et est utilisée pour les zones privées des intranets.

autorisation

Processus qui vérifie si un utilisateur dispose des autorisations adéquates pour accéder à une ressource (par exemple, une page Web ou une base de données ) ou s’il dispose des privilèges appropriés pour effectuer une tâche donnée (par exemple, une sauvegarde). L’autorisation est généralement définie par un administrateur système ou un développeur de site. Elle est vérifiée et supprimée par l’ordinateur. L’utilisateur fournit une identification, par exemple un numéro de code ou un mot de passe, que l’ordinateur confronte à ses enregistrements internes.

B

banque

Ensemble de tables d’une base de données.

Voir aussi : banque d’expressions

banque d’expressions

Tables d’une base de données Commerce Server permettant de stocker les informations sur les expressions.

Voir aussi : banque

banque de configuration de site

Base de données d’administration contenant les paramètres de configuration du site, dont la devise de base, la devise secondaire et le nom du serveur SMTP.

banque de données

Base de données SQL Server ou autre base de données contenant les données utilisées par un site commercial, par exemple des informations sur les utilisateurs inscrits, les produits ou les publicités. Ce terme désigne également le serveur qui contient les données (serveur de la banque de données).

barre d’état

Petite zone d’affichage en longueur située au bas du volet de contenu de Commerce Server Business Desk. Elle est utilisée pour afficher l’état de la tâche en cours (par exemple, le chargement d’un message) et la signification des symboles utilisés dans les composants HTML de la page d’action.

Voir aussi : page d’action

barre d’outils

Ligne horizontale de boutons située en haut d’un écran Commerce Server Business Desk lorsque le volet de contenu est affiché. Ces boutons permettent d’accéder aux fonctionnalités disponibles dans l’écran Business Desk affiché.

basculement

Processus consistant à mettre hors ligne des ressources, individuellement ou dans un groupe, sur un nœud de cluster serveur pour les remettre en ligne sur un autre nœud. La transition s’effectue dans un ordre prédéfini, les ressources qui dépendent d’autres ressources étant mises hors ligne avant et remises en ligne après les ressources dont elles dépendent.

base de données d’administration

Base de données SQL Server qui stocke les données de configuration des ressources pour tous les ordinateurs exécutés dans le cadre d’une même installation logique de Commerce Server. Cette base de données est créée par le programme d’installation de Commerce Server.

base de données du Gestionnaire de listes

Base de données qui stocke les listes d’enregistrements utilisateur. Vous créez des listes d’enregistrements utilisateur à l’aide du module Gestionnaire de listes de Commerce Server Business Desk. Ces listes sont utilisées par le service de publipostage pour exécuter des campagnes de publipostage et sont également disponibles dans le module Utilisateurs de Commerce Server Business Desk.

base de données du service de publipostage

Base de données SQL Server qui contient des corps de message électronique, des données d’événement et des données de travail. Le programme d’installation de Commerce Server installe la base de données du service de publipostage lorsque vous installez le service de publipostage Commerce Server. Cette base de données est installée sur le même ordinateur que le service de publipostage. Utilisez Commerce Server Manager pour spécifier la chaîne de connexion du service de publipostage vers la base de données du service de publipostage.

Voir aussi : service de publipostage Commerce Server

base physique

Bases de données physiques qui comprennent le Data Warehouse.

BizTalk Server 2000

Produit Microsoft qui fournit les outils et l’infrastructure dont les entreprises ont besoin pour échanger des documents commerciaux entre différentes plates-formes et différents systèmes d’exploitation, quelle que soit l’application utilisée pour traiter ces documents.

Business Desk

Voir Commerce Server Business Desk.

but quantitatif de la campagne de publicité

Voir but quantitatif de la campagne.

but quantitatif de la campagne

Définition du nombre de publicités à livrer sur une période donnée. Vous pouvez définir les buts via n’importe quel événement, par exemple le nombre de clics ou la quantité vendue. Commerce Server prend en charge les buts quantitatifs pour les publicités, mais pas pour les remises. Commerce Server Business Desk permet de définir des buts quantitatifs pour une campagne marketing au niveau de la campagne ou au niveau de la publicité.

Supposons par exemple que vous définissiez un but quantitatif au niveau de la campagne et que votre client commande 25 000 demandes de publicité. Au niveau de l’élément de la campagne, une publicité est définie pour afficher 60 pour cent des demandes de publicité et une autre publicité est définie pour afficher 40 pour cent des demandes de publicité. Si le client décide de changer le nombre de demandes de publicité pour passer à 40 000, vous n’aurez pas à modifier manuellement le nombre d’affichages des publicités : vous conserverez les proportions de 60 % et de 40 %. Si vous définissez le but quantitatif au niveau de l’élément de la campagne, vous définissez les buts quantitatifs en termes de demandes de publicité pour chaque publicité.

Voir aussi : demande de publicité

but quantitatif

Voir but quantitatif de la campagne.

C

cache

Sous-système mémoire dans lequel les données fréquemment utilisées sont dupliquées pour un accès plus rapide. Un cache stocke le contenu des emplacements de mémoire vive fréquemment demandés et les adresses où ces éléments de données sont stockés. Lorsque le processeur demande une adresse de mémoire, le cache vérifie s’il dispose de cette adresse. Si c’est le cas, les données sont renvoyées au processeur. Sinon, un accès mémoire classique est effectué.

Un cache est utile si les accès à la mémoire vive sont lents par rapport à la vitesse du microprocesseur, car la mémoire cache est plus rapide que la mémoire vive principale. Lorsque vous utilisez Commerce Server Business Desk, vous pouvez vider les caches qui stockent les données de profil, de catalogue, de transaction et de campagne marketing de votre site. La prochaine fois que Commerce Server recevra une demande pour ces données, les données mises à jour seront chargées dans les caches.

Voir aussi : module Publier les campagnes marketing, module Publier les profils, module Publier les transactions

Cache Loader

Composant utilisé par l’objet CacheManager pour charger des données dans un objet cache Dictionary. Bien que ce composant soit implémenté en tant que composant de pipeline, il n’est pas exécuté dans le contexte d’un pipeline.

Cache Writer

Composant utilisé par l’objet CacheManager pour écrire des données d’activité à partir d’un objet cache Dictionary. Bien que ce composant soit implémenté en tant que composant de pipeline, il n’est pas exécuté dans le contexte d’un pipeline.

calcul du prix du produit

Détermination du prix à appliquer pour un produit donné et pour un utilisateur donné.

campagne de publipostage

Campagne marketing qui consiste à envoyer des publicités sous forme de messages électroniques à un groupe d’utilisateurs ciblé. L’objectif est d’obtenir un taux de réponse élevé à ces publipostages.

campagne marketing

Programme marketing qui utilise différents supports de communication (par exemple, la publicité ou le publipostage) pour parvenir à un résultat spécifique : augmentation des parts de marché, introduction de nouveaux produits ou encore fidélisation des clients.

canal

Ensemble de propriétés qui identifient la source des documents et définissent les étapes du traitement effectué par BizTalk Server avant qu’un document parvienne à la destination spécifiée par le port d’échanges auquel le canal est associé.

cas

Ensemble d’informations connues au sujet d’un utilisateur donné, par exemple les données de profil utilisateur et l’historique des transactions. Chaque cas est créé à partir des données du Data Warehouse de Commerce Server. Les cas permettent à Commerce Server de définir un modèle de prévision.

catalogue

Collection de catégories et de produits.

catalogue de base

Catalogue source à partir duquel un catalogue personnalisé est créé.

catalogue de synthèse

Catalogue créé à partir de différentes sources, par exemple à partir de différents fournisseurs. Vous pouvez importer des données à partir d’un système de compatibilité ou d’autres documents, ou bien entrer des données à l’aide du module Éditeur de catalogue.

catalogue de texte intégral

Objet SQL Server qui stocke l’index de texte intégral d’une base de données.

catalogue personnalisé

Catalogue qui contient les mêmes catégories et produits qu’un catalogue de base, mais également des règles de tarification personnalisées pour les produits.

catégorie

Conteneur destiné à recevoir des produits ou des sous-catégories. Chaque catégorie est une instance unique d’une définition de catégorie. Par exemple, une catégorie basée sur la définition de catégorie Département (avec les propriétés Description et Responsable) peut être appelée Matériel et avoir les propriétés Outils électriques (Description) et Clément Beaune (Responsable). Utilisez le module Éditeur de catalogue pour gérer les catégories.

catégorie (Commerce Server Business Desk)

Mécanisme d’organisation utilisé dans le volet de navigation et permettant de regrouper des modules Commerce Server Business Desk liés.

catégorie ancêtre

Catégorie plus proche de la catégorie racine par l’intermédiaire d’une ou plusieurs relations parent-enfant. Une catégorie parent est une catégorie ancêtre, ainsi que le parent de ce parent, et ainsi de suite.

Voir aussi : catégorie enfant, catégorie racine, catégorie descendant, catégorie parent

catégorie de tarification

Catégorie dans laquelle le prix de chaque produit est défini selon cette catégorie. Cela signifie que la catégorie annule le prix attribué au niveau du produit.

catégorie descendant

Catégorie dépendant d’une autre catégorie par l’intermédiaire d’une ou plusieurs relations parent-enfant. Une catégorie enfant est une catégorie descendant, ainsi que l’enfant d’un enfant, et ainsi de suite.

Voir aussi : catégorie ancêtre, catégorie enfant, produits descendants, catégorie racine, catégorie parent

catégorie enfant

Entité utilisée dans les catalogues pour regrouper un ensemble de produits dans une hiérarchie. Une catégorie enfant dépend d’une catégorie parent. Par exemple, Musique est une catégorie parent et Rock, Country et Classique sont des catégories enfant. Vous créez des catégories parent et enfant pour organiser les produits affichés sur votre site.

Voir aussi : catégorie racine, catégorie ancêtre, catégorie descendant, catégorie parent

catégorie parent

Entité utilisée dans les catalogues pour regrouper un ensemble de produits dans une hiérarchie. Par exemple, Musique est une catégorie parent et Rock, Country et Classique sont des catégories enfants. Vous créez des catégories parent et enfant pour organiser les produits affichés sur votre site.

Voir aussi : catégorie ancêtre, catégorie enfant, catégorie descendant, catégorie racine

catégorie racine

Catégorie qui n’est pas une catégorie enfant d’une autre catégorie. Une catégorie racine peut avoir ou non des catégories enfants, mais elle n’a pas de catégorie parent.

Voir aussi : catégorie enfant, catégorie ancêtre, catégorie descendant, catégorie parent

chaîne de connexion

Série d’arguments délimités par des points-virgules définissant l’emplacement d’une base de données et la façon de s’y connecter.

chef d’entreprise

Principal utilisateur de Commerce Server Business Desk. Le chef d’entreprise connaît les objectifs commerciaux, les stratégies et les processus permettant de créer et de gérer un site Web de commerce électronique.

ciblage

Livraison d’un contenu spécifique à des utilisateurs spécifiques.

ciblage explicite

Livraison de contenu ciblé en utilisant les données existantes sur les utilisateurs qui visitent votre site.

ciblage implicite

Livraison de contenu ciblé en utilisant les données utilisateur existantes pour déduire des informations inconnues sur les utilisateurs qui visitent votre site. Dans Commerce Server, la ressource Predictor vous permet de segmenter les utilisateurs pour prendre en charge le ciblage implicite.

cible

Une ou plusieurs expressions permettant d’indiquer pour qui, où et quand un contenu doit être affiché. Vous pouvez cibler des données démographiques, des sections d’un site Web, ou les deux.

Voir aussi : groupe cible, expression de ciblage

cible publicitaire

Résultat d’un ensemble d’expressions qui décrivent une situation ou des utilisateurs visés par une publicité.

classe

Collection logique de membres de données liés. Les classes représentent souvent des objets physiques (utilisateurs, produits) ou des entités conceptuelles (visites, accès Web). Une instance d’une classe représente les données utilisateur importées dans le Data Warehouse de Commerce Server. Une classe est mappée vers une définition de table dans la base de données relationnelle sous-jacente.

Voir aussi : membre de données

clé

Identificateur d’un enregistrement ou d’un groupe d’enregistrements dans un fichier de données. Une clé indique une propriété spéciale d’un champ ou d’un ensemble de champs dans un enregistrement. Les types de clés possibles sont la double clé, la clé de jointure, la clé primaire et la clé unique.

Voir aussi : clé de classe

clé de classe

Sous-ensemble de membres de données d’une classe dont les valeurs identifient de façon unique une instance de cette classe.

Voir aussi : clé

clé de hachage

Clé unique, souvent une colonne ou un groupe de colonnes d’une base de données, utilisée pour accélérer la recherche d’un élément dans une liste volumineuse.

clé de jointure

Association entre un champ d’une table ou d’une requête et un champ d’une autre table ou requête utilisant le même type de données. Commerce Server utilise une clé de jointure pour lier les données d’une banque de données utilisée par la ressource Profiles aux données d’une autre banque de données également utilisée par la ressource Profiles. Par exemple, une clé de jointure peut être définie pour la propriété Nom d’utilisateur, liant le champ Nom d’utilisateur stocké avec des données Active Directory au champ Nom d’utilisateur stocké avec des données d’une table SQL Server.

Voir aussi : double clé

clé primaire

Un ou plusieurs champs (par exemple, dans une colonne) dont les valeurs identifient chaque enregistrement d’une table de façon unique. Une clé primaire n’accepte pas les valeurs nulles et doit toujours avoir un index unique. Une clé primaire permet de relier une table aux clés étrangères d’autres tables.

Voir aussi : clé unique, double clé

clé unique

Champ qui contient un identificateur unique pour chaque enregistrement d’une table. Par exemple, le champ contenant le numéro de sécurité sociale est une clé unique pour les enregistrements employé.

Voir aussi : clé primaire

clic de publicité

Action d’un utilisateur qui clique sur une publicité ou un autre élément lié sur une page Web, cette action étant enregistrée par le serveur et provoquant l’affichage d’une nouvelle page ou d’un nouveau contenu.

Voir aussi : taux de clics de publicité

client

Programme ou utilisateur qui émet une demande dans une relation client-serveur. Par exemple, un utilisateur de Commerce Server Business Desk émet des demandes client pour obtenir des informations du serveur Business Desk.

client

Société ou personne pour laquelle vous exécutez des campagnes marketing. Un client peut être une agence, un publicitaire ou votre propre entreprise.

cluster serveur

Plusieurs ordinateurs connectés ensemble afin de partager des ressources et la charge des demandes. Chaque membre d’un cluster serveur est appelé un nœud. Les nœuds d’un cluster serveur peuvent avoir leurs propres périphériques de stockage ou partager un périphérique commun. En règle générale, le clustering implique une prise en charge de l’équilibrage de la charge, de la tolérance de pannes et du basculement.

Voir aussi : Web farm

cluster

Dans la fonctionnalité Commerce Server Predictor, groupe d’utilisateurs qui partagent certaines caractéristiques de profil. Les clusters sont identifiés par la ressource Predictor et peuvent être affichés à l’aide du module Identification de segments.

Voir aussi : Web farm

code d’activité

Identificateur d’un secteur spécifique, par exemple l’industrie automobile, l’aéronautique ou l’agroalimentaire. Les codes d’activité sont créés à l’aide du module Tables de références. Les codes d’activité permettent d’identifier l’activité associée à une publicité, afin d’éviter que deux publicités de sociétés concurrentes d’une même activité s’affichent sur la même page. Les codes d’activité sont associés aux campagnes marketing au niveau du client. Le même code d’activité est utilisé par défaut pour toutes les campagnes de publicité d’un client donné. Si vous ne définissez pas de code d’activité au niveau du client, vous devez le faire au niveau de la publicité.

code de données

Valeur de code utilisée pour représenter des informations textuelles pour les propriétés, par exemple le pays, la région et le statut de la commande. Par exemple, WA est le code de données correspondant à l’état de Washington.

code de pays

Code de données à trois caractères utilisé dans Commerce Server Business Desk pour identifier le pays ou la région dans lequel vous expédiez des produits ou avec lequel vous entretenez des relations commerciales. Des codes de pays doivent être définis pour que vous puissiez utiliser le module Taux des taxes de Business Desk.

code de région

Code de données à trois caractères utilisé dans Commerce Server Business Desk pour identifier la région ou l’état dans lequel les produits seront expédiés. Des codes de région doivent être définis pour que vous puissiez utiliser le module Taxes de Commerce Server Business Desk.

code de statut de la commande

Code de données numérique utilisé dans Commerce Server Business Desk pour identifier les types de statuts de commande utilisés sur votre site Web. Par exemple, vous pouvez créer des codes pour définir les commandes enregistrées, les commandes supprimées et les commandes en attente.

COM

Voir modèle COM (Component Object Model).

commande

Achat en ligne soumis par un utilisateur à votre site Web. Une commande comprend généralement un ou plusieurs articles, le nom et l’adresse de l’utilisateur et le mode de paiement.

commerce électronique

Processus d’achat et de vente de produits et de services sur Internet.

Commerce électronique

Voir commerce électronique.

Commerce Server Business Desk

Outil de gestion de site Web disponible dans Commerce Server 2000 qui permet d’héberger des modules de gestion commerciale afin de gérer et d’analyser vos sites commerciaux. Par exemple, vous pouvez mettre à jour les prix de votre catalogue, cibler de nouvelles publicités pour des utilisateurs spécifiques, puis exécuter des rapports pour déterminer l’impact de ces modifications sur la productivité du site. Commerce Server Business Desk est accessible à partir de n’importe quel ordinateur qui exécute Microsoft Internet Explorer 5.5 et, comme il est basé sur le Web, vous pouvez y accéder localement ou à distance.

Par défaut, à chaque site Web Commerce Server est associée une instance distincte de Business Desk. L’infrastructure est implémentée principalement en langage DHTML (Dynamic Hypertext Markup Language). Ce produit est conçu pour que les développeurs de site puissent modifier ou étendre les fonctionnalités de gestion fournies avec Business Desk.

Commerce Server Manager

Outil d’administration système permettant de gérer et de configurer les ressources, sites, applications et serveurs Web de Commerce Server. Le programme d’installation de Commerce Server l’installe automatiquement lors d’une installation de serveur Web ou complète, ou lorsque vous sélectionnez le composant Outils d’administration lors d’une installation personnalisée. Microsoft Management Console (MMC) héberge Commerce Server Manager.

comparaison de segments

Dans le module Identification de segments, affichage indiquant les différences entre les segments sélectionnés.

composant

Combinaison unique d’attributs disponibles pour un produit. Par exemple, pour un type de maillot spécifique, chaque combinaison de couleur, de taille et de référence est un composant. Un composant produit comprend toujours un identificateur unique, tel qu’une référence, et un prix. Chaque composant produit est basé sur la même définition de produit.

composant COM (Component Object Model)

Fichier binaire contenant du code pour les références de classe, les classes COM, les mécanismes d’entrée dans le Registre, le code de chargement, etc.

composant de pipeline

Objet serveur COM (Component Object Model) qui implémente les interfaces de composant de pipeline requises. Chaque composant effectue des opérations une partie d’un objet OrderForm ou Dictionary avant de l’envoyer au composant suivant ou à l’étape suivante dans le pipeline.

composant HTML (HTC, HTML Component ) EditSheet

Composant HTML (HTC) utilisé pour regrouper les contrôles permettant de modifier les données.

composant HTML (HTC, HTML Component) DynamicTable

Composant HTML (HTC) utilisé pour modifier les colonnes affichées dans un tableau.

composant HTML (HTC, HTML Component) EditField

Composant HTML (HTC) utilisé pour modifier des éléments de données de différents types. Les composants HTML EditField sont souvent incorporés à d’autres composants HTML, comme DynamicTable, EditSheet ou ListEditor.

composant HTML (HTC, HTML Component) ExpressionBuilder

Composant HTML (HTC) utilisé pour créer des expressions nommées qui peuvent être utilisées pour un ciblage. Le composant HTML ExpressionBuilder utilise une version incorporée du composant HTML QueryBuilder.

composant HTML (HTC, HTML Component) ListBox

Composant HTML (HTC) utilisé pour les copies et déplacements entre listes.

composant HTML (HTC, HTML Component) ListEditor

Composant HTML (HTC) utilisé pour modifier les données d’un tableau. La modification des enregistrements est effectuée dans un tableau séparé situé sous le tableau contenant la liste.

composant HTML (HTC, HTML Component) ListSheet

Composant HTML (HTC) utilisé pour afficher une liste d’enregistrements et pour sélectionner un ou plusieurs enregistrements à modifier. Le composant HTML ListSheet est en lecture seule.

composant HTML (HTC, HTML Component) ProfileDesigner

Composant HTML utilisé pour modifier les profils, par exemple des profils utilisateur.

composant HTML (HTC, HTML Component) QueryBuilder

Composant HTML utilisé pour créer une requête simple.

composant HTML (HTC, HTML Component) TreeView

Composant HTML utilisé pour afficher une structure XML (Extensible Markup Language) sous la forme d’une arborescence développable.

composant HTML (HTC, HTML Component)

Contrôle implémenté à l’aide de comportements DHTML d’Internet Explorer. Des composants HTML sont utilisés dans les modules de Commerce Server Business Desk pour afficher et manipuler les données.

composant logiciel enfichable

Type d’outil que vous pouvez ajouter à une console prise en charge par Microsoft Management Console (MMC). Un composant logiciel enfichable autonome peut être ajouté de façon indépendante. Un composant logiciel enfichable d’extension peut uniquement être ajouté à un autre composant logiciel enfichable pour étendre ses fonctionnalités.

Voir aussi : Microsoft Management Console (MMC)

composant par défaut

Objet serveur COM (Component Object Model) qui garantit la présence des valeurs indispensables pour une étape donnée. Les composants par défaut apparaissent généralement au début d’une étape.

Voir aussi : étape

composant produit

Élément spécifique regroupé avec des composants liés qui forment un produit. Les composants sont souvent identiques à une ou plusieurs propriétés près. Par exemple, un maillot vert, de taille moyenne avec la référence 14678 est un composant produit du produit Maillot ; la taille, la couleur et la référence forment un composant. Un composant produit inclut toujours un identificateur unique (par exemple, une référence) et un prix. Chaque composant produit est basé sur la même définition de produit.

composant requis

Objet serveur COM (Component Object Model) qui garantit l’intégrité des données pour une étape. Les composants requis exécutent également des conversions de devise et d’entier afin que les étapes contenant tous les composants Site Server 3.0 Édition Commerce effectuent correctement les étapes contenant tous les composants Commerce Server 2000.

composants cloisonnés de threads

Composants COM qui se trouvent sur une seule thread d’exécution. Les composants cloisonnés de threads utilisent COM pour synchroniser les appels qui leur sont destinés. Tous les objets COM créés avec Visual Basic sont cloisonnés de threads.

composants libres de threads

Composants COM qui peuvent se trouver sur plusieurs threads d’exécution. Ces composants prennent en charge l’accès par plusieurs clients et n’utilisent pas COM pour synchroniser les appels qui leur sont destinés.

confiance par défaut

Valeur qui représente la probabilité d’achat. Seuls les éléments dont la probabilité d’achat est supérieure à ce chiffre sont renvoyés.

configuration de modèle de prévision

Description définie par l’utilisateur des données utilisées pour un modèle de prévision ou un modèle de segment.

contenu publicitaire

Contenu à placer dans la planification d’une publicité. Dans le secteur de la publicité, le contenu publicitaire désigne le propriétaire du contenu. Vous ne pouvez pas modifier l’aspect de la publicité de quelque manière que ce soit sans l’accord de la société propriétaire de la publicité que vous exécutez.

contraintes de données

Restrictions concernant les valeurs autorisées pour une propriété. Les contraintes de données sont spécifiques à chaque type de données. Par exemple, pour un nombre, les contraintes peuvent être la valeur minimale et la valeur maximale.

contrôle DTC

Type de contrôle ActiveX spécial utilisé pour générer du texte dans un environnement d’édition. En règle générale, l’utilisateur peut choisir entre différentes options dans ce contrôle. Les choix effectués modifient les détails d’une section de code de script ou de code HTML placée sur la page que l’utilisateur modifie.

cookie

Informations sur un utilisateur stockées dans un fichier, par exemple un numéro d’identification, un mot de passe, un historique des clics ou le nombre de visites d’un utilisateur sur un site donné. Un cookie peut également stocker des données de ticket. Commerce Server prend en charge les cookies persistants et non persistants. Les cookies persistants sont stockés sur l’ordinateur des utilisateurs. Les cookies non persistants permettent de suivre l’activité des utilisateurs authentifiés qui visitent votre site. Les cookies non persistants sont supprimés à la fin de la session.

Voir aussi : ticket

corps de message

Contenu livré dans un message électronique.

CSF

Voir infrastructure de sélection de contenu (CSF, Content Selection Framework).

csv

Voir fichier de valeurs délimitées par des virgules.

cube

Structure qui contient un sous-ensemble des données du Data Warehouse de Commerce Server, défini par des dimensions et des indicateurs partagés. Dans Commerce Server, un cube est créé lors du processus de décompression et est rempli et traité pour la récupération des données lors de l’exécution de la tâche DTS de préparation des rapports. Le stockage des données dans des cubes permet d’accélérer la récupération des données.

Voir aussi : OLAP (Online Analytical Processing)

D

Data Warehouse

Dans Commerce Server, combinaison composée d’une base de données SQL Server, d’une base de données OLAP (Online Analytical Processing) et d’un ensemble de processus qu’un administrateur système utilise pour importer et gérer de gros volumes de données provenant de différentes sources de données.

data-island Extensible Markup Language

Voir data-island XML (Extensible Markup Language).

data-island XML (Extensible Markup Language)

Données XML contenues dans une page ASP ou accessibles à partir d’une page ASP. Un data-island est défini à l’aide d’un de ces deux éléments : xml ou script. Il est référencé à l’aide de l’attribut d’identificateur de ces éléments. Les données se trouvent souvent à l’intérieur de ces éléments, mais elles peuvent également se trouver ailleurs si un attribut source est utilisé pour fournir l’adresse URL (Uniform Resource Locator) d’un autre emplacement.

définition de catégorie

Propriétés disponibles pour un type de catégorie donné. Une définition de catégorie peut être utilisée pour plusieurs catégories. Par exemple, la définition de catégorie Département peut contenir les propriétés Description et Responsable. Utilisez le module Définition de catalogue pour gérer les définitions de catégorie.

définition de profil

Propriétés disponibles pour un type de profil donné. Chaque profil est associé à une définition de profil. Par exemple, la définition de profil Nouvel utilisateur peut contenir les propriétés suivantes : nom, âge, sexe, adresse, etc. Utilisez le module Définition de profil Business Desk pour gérer les définitions de profil.

définition de propriété

Spécification d’une propriété qui peut être utilisée pour les définitions de profil, de catégorie ou de produit. Par exemple, vous pouvez créer une définition de propriété appelée Description, utilisant le type de données « chaîne ». Vous pouvez également créer une définition de propriété appelée Sexe, utilisant le type de données « énuméré » et acceptant uniquement les deux valeurs suivantes : « Homme » ou « Femme ». Utilisez les modules Définition de catalogue et Définition de profil Business Desk pour gérer les définitions de propriété.

définition de rapport

Champs et requêtes renseignés lors de l’exécution d’un rapport. Chaque rapport a sa propre définition de rapport. Lorsque vous personnalisez un rapport, vous personnalisez la définition du rapport, et non le rapport qui contient les données.

définition du produit

Propriétés disponibles pour un type de produit donné. Chaque produit est associé à une définition de produit. Par exemple, la définition de produit Livre peut contenir les propriétés suivantes : « Auteur », « Titre » et « Prix catalogue ». Une définition de produit doit avoir un identificateur de produit, par exemple une référence SKU (unité de gestion de stock), et une propriété Prix catalogue. Utilisez le module Définition de catalogue Business Desk pour gérer les définitions de produits.

demande

Connexion à un site Internet afin de récupérer du contenu à l’aide d’une adresse URL. Contrairement aux accès, les demandes sont liées au contenu et au comportement de l’utilisateur. Par exemple, si un utilisateur demande une page HTML contenant trois fichiers graphiques, le serveur Web peut ajouter une entrée de journal pour les trois fichiers graphiques et la page HTML, et éventuellement quelques lignes pour la charge de traitement. Toutefois, pour les rapports exécutés du module Analyse Business Desk, seule une demande est comptabilisée. Également appelée demande Web ou demande HTTP.

demande de publicité

Opportunité de livraison d’un élément de publicité à un visiteur d’un site Web. Les demandes sont générées par certains événements sur le site, par exemple la demande d’une page particulière ou l’achat d’un article donné. La publicité utilisée pour répondre à la demande est déterminée par l’estimation de livraison. Lorsque vous créez une campagne marketing ou un élément de la campagne à l’aide du module Gestionnaire de campagnes, vous pouvez indiquer le nombre de demandes de publicité ou de clics devant être enregistrés par Commerce Server pour cette campagne marketing ou pour cet élément de la campagne.

Voir aussi : taux de clics de publicité, but quantitatif de la campagne, estimation de livraison

développeur de site

Personne qui écrit le code HTML/ASP de votre site Web afin de le personnaliser pour votre entreprise. Cette personne peut également personnaliser les rapports et ajouter ou modifier des modules Business Desk pour adapter les fonctionnalités aux besoins uniques de votre entreprise.

devise de base

Unité de devise utilisée sur votre site pour effectuer les calculs.

Voir aussi : devise secondaire

devise secondaire

Unité de devise utilisée sur un site pour convertir et formater une devise secondaire pour un double affichage. Cette propriété est généralement utilisée sur les sites européens qui ont recours à l’objet EuroDisplay pour afficher à la fois la devise de base et la correspondance en euros.

Voir aussi : devise de base

dimension

Attribut qui décrit un indicateur, généralement textuel et discret. Par exemple, une dimension peut décrire le nombre d’achats. La quantité numérique correspond alors à l’indicateur.

Voir aussi : OLAP (online analytical processing), indicateur

disponibilité

Mesure de la tolérance de pannes pour un ordinateur, un cluster serveur ou un système et ses programmes. Un ordinateur ou un système haute disponibilité doit fonctionner à un niveau de service acceptable au moins 99,9 pour cent du temps.

distribution de probabilité

Pour un attribut discret, ensemble de probabilités (une pour chaque valeur possible de l’attribut).

Pour un attribut continu x, fonction qui, intégrée de a à b, donne la probabilité pour que la valeur de x soit comprise entre a et b. Également appelée densité de probabilité pour x.

données de catalogue

Contenu d’un catalogue, c’est-à-dire les données concernant les différents produits et les catégories d’organisation.

données de transaction

Données générées lorsque des utilisateurs achètent des produits sur votre site. Les données de transaction peuvent inclure n’importe quelle activité de l’utilisateur enregistrée à partir d’une page de produit, d’une page de panier ou d’une page de validation. Par exemple, elles peuvent comporter le nom d’utilisateur, l’adresse de livraison, la date et l’heure, le produit acheté et la valeur totale de la commande.

données opérationnelles

Données collectées généralement dans des fichiers journaux, tous les jours ou selon un autre intervalle spécifié. Une fois collectées, les données opérationnelles sont souvent importées dans le Data Warehouse.

double clé

Type de clé qui combine une clé primaire et une clé de jointure. Vous pouvez utiliser ce type de clé lorsque vous ajoutez des attributs de profil dans Commerce Server Business Desk. Voir aussi clé de jointure, clé primaire.

Voir aussi : clé de jointure, clé primaire

DTC

Voir contrôle DTC.

DTS

Voir services de transformation de données (DTS, Data Transformation Services).

durée de la demande

Temps écoulé entre deux demandes consécutives au cours d’une même visite.

durée de la visite

Temps écoulé entre la première et la dernière demande d‘une visite. Cette durée n’inclut pas la temps pendant lequel l’utilisateur visualise la dernière demande d’une visite.

E

échange électronique de données (EDI, Electronic Data Interchange)

Transfert de données entre différentes sociétés à l’aide de réseaux comme Internet. Compte tenu du nombre croissant d’entreprises qui se connectent à Internet, EDI acquiert un rôle crucial en tant que mécanisme simple permettant aux sociétés d’acheter, de vendre et de négocier des informations.

EDI

Voir échange électronique de données (EDI, Electronic Data Interchange).

éditeur de logiciel (ISV, Independent Software Vendor)

Fournisseur tiers qui développe des logiciels (par exemple, des logiciels d’imposition, de livraison ou d’inventaire) qui s’intègrent à Commerce Server et étendent ses fonctionnalités. Vous pouvez comparer les éditeurs de logiciel aux Partenaires Solutions qui personnalisent Commerce Server pour des clients ou des marchés verticaux spécifiques et conçoivent puis déploient des systèmes.

élément de la campagne

Support de communication qui contribue à obtenir un résultat spécifique pour une campagne marketing. Commerce Server permet de créer trois types d’éléments de campagne : publicités, publipostages et remises. Vous pouvez utiliser des produits tiers pour créer d’autres types d’éléments de campagne.

en-tête de message

Première partie d’un message électronique qui spécifie l’adresse du destinataire, le format du message, la langue et éventuellement l’identificateur global unique (GUID).

entrées du glossaire du site

Liste de valeurs spécifiques pertinentes pour votre site. Une entrée du glossaire du site vous permet d’attribuer cette liste de valeurs, appelées termes, à une propriété de profil comme le type de propriété. Par exemple, vous pouvez créer une entrée du glossaire du site intitulée Sexe et définir les termes possibles suivants : « Femme », « Homme » et « Non communiqué ». Lorsque vous créez une propriété de profil appelée Sexe et que vous affectez l’entrée du glossaire du site sexe comme référence de type, les utilisateurs pourront sélectionner les valeurs « Homme », « Femme » ou « Non communiqué » dans la liste déroulante affichée pour la propriété Sexe sur votre site Web. Les utilisateurs peuvent sélectionner seulement une de ces valeurs pour la propriété.

En appliquant les entrées du glossaire du site aux propriétés de profil, vous établissez des mots communs qu’il est possible d’utiliser n’importe où dans Commerce Server, par exemple pour cibler le contenu d’une publicité pour certains utilisateurs.

Voir aussi : module Éditeur d’entrées du glossaire du site, lexique du site

enveloppe

Ensemble de propriétés qui représentent un document commercial spécifique. Les propriétés d’enveloppe incluent un format d’enveloppe et éventuellement un pointeur vers une spécification d’enveloppe. Désigne également les informations d’en-tête et de pied de page, ou uniquement les informations d’en-tête, qui contiennent les données de commerce électronique pour le transport.

équilibrage de charge

Amélioration des performances d’un programme serveur (par exemple, un serveur Web) en répartissant les demandes des clients entre les différents serveurs du cluster serveur. Chaque hôte peut spécifier le pourcentage de charge qu’il gérera, ou bien la charge peut être répartie équitablement entre tous les hôtes. Si un hôte tombe en panne, la charge est redistribuée dynamiquement entre les hôtes restants. L’équilibrage de charge réseau est la solution d’équilibrage de la charge utilisée par le clustering Windows, disponible avec Windows 2000 Advanced Server.

estimation de livraison

Formule utilisée par Commerce Server pour déterminer l’heure et la fréquence de livraison d’un contenu. Cette formule tient compte de la quantité totale de contenu à livrer et de la période sur laquelle cette quantité doit être livrée. L’estimation de livraison est calculée par l’infrastructure de sélection de contenu pour chaque demande de publicité, une fois la demande de publicité traitée. L’estimation de livraison est appliquée aux publicités payées, mais pas aux publicités maison.

Voir aussi : demande de publicité

étape

Subdivision d’un pipeline permettant de regrouper les composants de manière logique. Par exemple, l’étape Taxe regroupe les composants du pipeline liés au calcul des taxes à appliquer à une commande donnée.

Voir aussi : composant par défaut, affinité d’étape

événement

Occurrence d’une action spécifique effectuée par un utilisateur. Par exemple, un événement peut consister à appuyer sur une touche du clavier ou à cliquer avec la souris pour choisir un bouton. Les événements sont enregistrés avec l’heure à laquelle ils ont eu lieu. Les programmeurs écrivent du code pour répondre à ces actions.

Voir aussi : fréquence

évolutivité horizontale

Accroissement des capacités d’un site Web en ajoutant des serveurs au cluster serveur.

Voir aussi : évolutivité verticale

évolutivité

Développement des capacités d’un serveur Web ou d’un cluster serveur pour prendre en charge un trafic plus important et améliorer les performances d’un site.

évolutivité verticale

Accroissement des capacités d’un site Web en mettant à niveau le matériel (par exemple, en ajoutant de la mémoire vive ou des processeurs), tout en conservant le même encombrement et le même nombre de serveurs dans le cluster serveur.

Voir aussi : évolutivité horizontale

expression de catalogue

Expression qui spécifie les produits d’un catalogue auxquels une remise peut être appliquée.

expression de ciblage

Pour les campagnes marketing Commerce Server, expression qui indique où, quand et pour qui un contenu doit être affiché. Par exemple, vous pouvez cibler un contenu pour des utilisateurs possédant des propriétés de profil spécifiques. Vous pouvez également cibler un contenu en fonction des sections spécifiques d’un site Web. Par exemple, vous pouvez créer une expression de ciblage qui affiche certaines publicités uniquement sur les pages traitant de sport.

Voir aussi : personalisation, cible

expression

Condition évaluée par rapport aux profils pour déterminer s’il convient de livrer du contenu ou d’effectuer une autre action. Par exemple, une expression peut être « user.totalvisit > 100 ». Si cette expression est vraie, un contenu spécifique est affiché à l’utilisateur. Utilisez le module Expressions de la campagne pour créer des expressions, puis combinez ces expressions avec l’action que vous souhaitez effectuer une fois ces expressions évaluées.

Voir aussi : Générateur d’expressions

expression multidimensionnelle (MDX, multidimensional expression)

Expression utilisée pour interroger et manipuler les données multidimensionnelles stockées dans les cubes de serveur OLAP.

Extensible Markup Language (XML)

Format de données permettant un échange de documents structuré sur le Web. Ce langage à balises est appelé extensible car son format n’est pas fixe comme celui du langage HTML. Le langage XML est conçu pour prendre en charge le langage SGML (Standard Generalized Markup Language) sur le Web. Il ne s’agit pas d’un langage à balises simple. C’est un métalangage qui permet à l’utilisateur de concevoir un langage à balises. Un langage à balises classique définit la façon de décrire les informations dans un certain type de documents (par exemple, HTML). Avec XML, vous pouvez définir votre propre langage à balises personnalisé pour de nombreux types de documents.

extensions MIME (Multipurpose Internet Mail Extensions)

Norme qui étend le protocole SMTP (Simple Mail Transfer Protocol) pour permettre le transfert via une messagerie Internet de données comme des vidéos, des sons ou des fichiers binaires, sans conversion préalable de ces données au format ASCII.

extensions serveur FrontPage

Ensemble de programmes que vous pouvez utiliser pour administrer, créer et parcourir un site Web étendu FrontPage.

extensions serveur

Ensemble de programmes d’un serveur Web permettant d’administrer, de créer et de parcourir un site Web étendu FrontPage.

extracteur de cas

Composant qui lit les données du Data Warehouse de Commerce Server et fournit des cas pour la création de modèles.

extranet

Extension d’un intranet d’entreprise utilisant la technologie Web, afin de faciliter la communication avec les fournisseurs et les clients de cette entreprise. Un extranet permet aux clients et fournisseurs d’avoir un accès limité à l’intranet d’une société afin d’accélérer les communications et d’améliorer l’efficacité des relations commerciales.

F

famille de produits

Produit qui a des composants produit. Par exemple, la famille de produits « Maillots en thermolactyl pour femme » peut avoir les composants produit suivants : maillot rouge, maillot bleu et maillot vert. Une famille de produits comprend toujours un identificateur unique, tel que le nom du produit.

fiabilité

Mesure du temps entre les pannes (temps moyen entre pannes). Le terme « panne » désigne la carence de service acceptable pour une application, un système informatique ou un système réseau. Par opposition, la disponibilité se définit en termes de fiabilité et de temps nécessaire pour remettre le système en état de fonctionnement après une panne (ou après une déconnexion pour une opération de maintenance prévue ou une mise à niveau). Lorsque vous planifiez une installation de Commerce Server, vous devez planifier le matériel, le réseau et les procédures de fonctionnement selon le niveau de fiabilité nécessaire.

fichier de configuration de module

Fichier de configuration XML qui définit les actions, les tâches et les points d’entrée pour un module de Commerce Server Business Desk (ou pour un ensemble de modules). Les points d’entrée d’un module identifient la catégorie à laquelle ils sont associés.

fichier de configuration de pipeline

Fichier contenant les données de configuration d’un pipeline. Le pipeline spécifié dans le fichier est créé et exécuté par un objet de pipeline. Le fichier contient des étapes et des composants qui peuvent être personnalisés à l’aide de Pipeline Editor.

fichier de configuration maître

Fichier de configuration XML qui définit les catégories et modules disponibles dans une instance donnée de Commerce Server Business Desk. Chaque entrée de module identifie un fichier de configuration de module qui contient les informations de configuration de ce module.

fichier de travail du service de publipostage

Fichier texte qui spécifie des informations sur le travail du service de publipostage, par exemple si des corps de message personnalisés doivent être livrés, le format des en-têtes de message électronique et l’emplacement de la liste de destinataires. Un fichier de travail du service de publipostage est utilisé uniquement pour le mode autonome du service de publipostage.

fichier de valeurs délimitées par des virgules (.csv, comma-separated value)

Fichier texte qui utilise la virgule pour séparer ou délimiter les colonnes ou les champs de base de données. La plupart des bases de données et des programmes peuvent exporter et importer un fichier CSV. Des fichiers de base de données peuvent donc être créés dans un programme et utilisés par un autre programme.

fichier délimité par des virgules

Voir fichier de valeurs délimitées par des virgules.

fichier journal

Enregistrement des transactions ou des activités d’un système informatique. Il peut s’agir d’un fichier texte ou d’un fichier de base de données. Dans Commerce Server, les fichiers journaux sont importés dans le Data Warehouse afin que vous puissiez analyser l’activité sur votre site à l’aide des modules Analyse de Commerce Server Business Desk.

fichier texte

Fichier composé de caractères textuels. Un fichier texte peut être un fichier de traitement de texte ou un fichier ASCII simple codé dans un format qui peut être lu par quasiment tous les ordinateurs. Pour le module Gestionnaire de campagnes, le texte est l’un des types d’affichage disponibles pour les publicités et les remises. Une publicité de ce type s’affiche sous forme de lignes de texte sur une page.

fournisseur

Partenaire commercial dans un site entreprise-entreprise. Utilisez Microsoft BizTalk Server pour ajouter des fournisseurs à un site. Également appelé fournisseur.

fournisseur de services Internet (ISP, Internet Service Provider)

Fournisseur public de connexions à distance à Internet. Un fournisseur de services Internet est une société qui permet aux utilisateurs distants d’accéder à Internet en fournissant des connexions d’accès à distance ou en installant des lignes spécialisées. Un fournisseur de services Internet peut héberger des sites commerciaux pour des sociétés clientes, hébergeant plusieurs sites sur un seul serveur ou cluster serveur. Le fournisseur de services Internet offre une infrastructure et effectue les tâches d’administration communes à tous les sites, tout en permettant aux clients d’effectuer certaines tâches d’administration à partir de leurs ordinateurs distants.

fréquence

Nombre d’événements divisé par la portée de ces événements.

Voir aussi : événement, portée

fréquence des clics

Nombre de clics divisé par la portée des clics.

Voir aussi : portée

G

Générateur d’expressions

Outil utilisé pour créer une expression. Le Générateur d’expressions comprend une liste des expressions courantes permettant de définir les propriétés que vous souhaitez cibler. Vous accédez au Générateur d’expressions lors de la création d’une nouvelle expression de ciblage ou de catalogue dans le module Expressions de la campagne.

Voir aussi : expression

Gestionnaire de package de site Commerce Server

Outil de déploiement utilisé pour compresser un site, des applications et des ressources dans un seul fichier (avec l’extension .pup), puis placer ce fichier sur un autre ordinateur. Le Gestionnaire de package de site permet de déployer votre site sur plusieurs ordinateurs dans un environnement distribué. Le programme d’installation de Commerce Server l’installe automatiquement lors d’une installation de serveur Web ou complète, ou lorsque vous sélectionnez le composant Objets d’exécution lors d’une installation personnalisée.

Gestionnaire de package de site

Voir Gestionnaire de package de site Commerce Server.

groupe

Dans un écran Commerce Server Business Desk, zone qui comporte un en-tête réductible permettant à l’utilisateur d’afficher ou de masquer les informations de cette section à sa convenance. Également appelé section.

groupe cible

Ensemble de cibles pour lesquelles un contenu doit être affiché. Lorsque vous créez un groupe cible, vous combinez plusieurs expressions. En combinant des expressions dans un groupe cible, vous pouvez créer des expressions utilisant des instructions OR, afin de cibler efficacement un public plus large.

Voir aussi : personalisation, cible

groupe de catalogues

Ensemble de catalogues que vous mettez à la disposition de différents utilisateurs ou différentes organisations. Par exemple, vous pouvez créer deux catalogues personnalisés que vous affichez aux membres d’une organisation donnée, puis créer deux autres catalogues que vous affichez à une autre organisation. Vous obtenez ainsi quatre catalogues intégrés à deux groupes de catalogues.

groupe de pages

Ensemble de pages Web associées que vous créez à l’aide du module Tables de références de Business Desk. Par exemple, pour le site d’un journal, vous pouvez créer un groupe de pages pour les sports, un autre pour les nouvelles principales et un autre pour les nouvelles locales. Vous pouvez définir des taux de publicité par groupe de pages, exécuter des rapports pour connaître le nombre total d’accès pour un groupe de pages et cibler des publicités pour qu’elles s’affichent sur certains groupes de pages. Un développeur de site doit activer les publicités pour une page Web avant de pouvoir affecter cette page à un groupe de pages.

groupe de segments

Dans le module Identification de segments, collection de segments similaires.

groupe de serveurs

Voir cluster serveur, Web farm.

GUID

Voir identificateur global unique (GUID, globally unique identifier).

H

héritage

Capacité d’un nouvel objet à prendre automatiquement les propriétés d’un objet existant. Par exemple, un nouveau répertoire enfant peut hériter des paramètres de contrôle d’accès du répertoire parent.

hiérarchie de catégorie

Hiérarchie dans laquelle une catégorie est définie comme catégorie parent et une ou plusieurs catégories sont définies comme catégories enfants. Une catégorie ne peut pas être à la fois parent et enfant (descendant) de la même catégorie.

hiérarchie de segments

Dans le module Identification de segments, organisation hiérarchique des segments et groupes de segments selon laquelle un segment parent comprend tous les utilisateurs contenus dans ses segments enfants. Le groupe de segments de niveau supérieur représente l’intégralité des utilisateurs.

HTA

Voir application HTML (HTA, HTML Application).

HTC

Voir composant HTML (HTC, HTML Component).

HTTP

Voir protocole HTTP (Hypertext Transfer Protocol).

I

identificateur de cas

Identificateur unique pour chaque utilisateur.

identificateur de l’élément de la campagne

Numéro d’identification généré par l’ordinateur pour un élément de la campagne.

identificateur de paramètres régionaux de devise (LCID)

Identifie les paramètres locaux pour la gestion des devises. La valeur par défaut est zéro et dans ce cas, le LCID par défaut du serveur est utilisé.

identificateur de programmation (ProgID, Programmatic Identifier)

Nom unique qui identifie un programme ou un objet COM (Component Object Model). Contrairement au GUID, le ProgID est généralement une chaîne alphanumérique intelligible, par exemple « Commerce.Dictionary ».

identificateur de publicité

Numéro d’identification généré par l’ordinateur pour une publicité ajoutée à Commerce Server à l’aide du module Gestionnaire de campagnes.

identificateur du produit

Propriété obligatoire qui définit de façon unique les produits d’un catalogue, par exemple une référence. L’identificateur du produit ne peut pas être supprimé de la définition du produit. .

identificateur global unique(GUID, globally unique identifier)

Numéro à 128 bits globalement unique. En règle générale, les GUID sont créées à l’aide du programme de ligne de commande Guidgen.exe. Le programme Guidgen.exe ne génère jamais deux fois le même numéro, quel que soit le nombre d’exécutions ou le nombre d’ordinateurs sur lesquels il est exécuté. Dans Commerce Server, l’objet GenID permet de générer des GUID.

identification

Processus de mappage d’un objet en utilisant des schémas d’identification pris en charge ou d’obtention de l’identificateur unique d’utilisateur (UID). Cette identification est généralement fournie par le système d’exploitation, IIS ou Commerce Server.

IIS

Voir services Internet (IIS).

image

Élément visuel utilisé sur une page Web, par exemple une illustration, une photographie ou une texture d’arrière-plan. Les images Web ont généralement une extension .gif ou .jpg.

impression

Voir demande de publicité.

index de texte intégral

Partie d’un catalogue de texte intégral qui stocke tous les mots de texte intégral et leur emplacement pour une table donnée. Lorsque des modifications sont apportées à un catalogue (par exemple, ajout ou suppression de produits ou modification des valeurs de champs pouvant faire l’objet de recherches en texte libre), l’index de texte intégral doit être mis à jour pour refléter ces modifications.

indicateur

Données généralement numériques qui mesurent un événement commercial. Par exemple, le nombre d’achats effectués par un utilisateur est un indicateur.

Voir aussi : dimension

infrastructure Commerce Server Business Desk

Ensemble de services fournis avec les modules Business Desk. Ces services incluent des contrôles de navigation, de sécurité et d’interface utilisateur. En outre, cette infrastructure fournit un ensemble de mécanismes standardisés qui définissent l’intégration des modules de Commerce Server Business Desk.

infrastructure de Business Desk

Ensemble de composants HTML (HTC), de routines utilitaires, de fichiers Include, de fichiers de configuration, de mécanismes de navigation et de conventions qui permettent une implémentation plus facile et uniforme des modules Business Desk.

infrastructure de sélection de contenu (CSF, Content Selection Framework)

Infrastructure de développement pour une livraison ciblée du contenu. L’infrastructure CSF fournit les composants permettant de créer un système de messagerie spécifique à une entreprise. Elle propose une plate-forme facilitant une prise de décision rapide lors du ciblage du contenu.

Internet

Ensemble de réseaux informatiques distincts reliés par des passerelles qui gèrent le transfert des données et la conversion des messages du réseau expéditeur vers les protocoles utilisés par les réseaux destinataires. Ces réseaux et passerelles utilisent les protocoles TCP/IP (Transmission Control Protocol/Internet Protocol).

intervalle de confiance

Nombre indiquant la probabilité pour qu’une valeur prévue se trouve dans certaines limites.

intranet

Réseau conçu pour le traitement des informations dans une société ou une organisation. Il permet de distribuer des documents et des logiciels, d’accéder aux bases de données et de procéder à des formations. L’intranet doit son nom au fait qu’il utilise généralement des applications associées à Internet (par exemple, des pages Web, des navigateurs Web, des sites FTP, une messagerie électronique, des groupes de discussion et des listes de publipostage) accessibles uniquement aux utilisateurs de la société ou de l’organisation.

ISP

Voir fournisseur de services Internet (ISP, Internet Service Provider).

ISV

Voir éditeur de logiciel (ISV, Independent Software Vendor).

J

Aucune entrée de glossaire ne commence par cette lettre.

K

Aucune entrée de glossaire ne commence par cette lettre.

L

LCID

Voir identificateur de paramètres régionaux de devise (LCID, Currency Locale Identifier).

lexique du site

Dans Site Server 3.0, ensemble de valeurs possibles d’attributs d’utilisateur et de contenu organisées de façon hiérarchique. Dans Commerce Server 2000, le lexique du site devient les entrées du glossaire du site.

Voir aussi : entrées du glossaire du site

limite d’affichage

Nombre de fois qu’un contenu peut être affiché à un utilisateur au cours d’une session. Par défaut, aucune limite d’affichage n’est imposée. Il est conseillé de définir une limite d’affichage maximale qui n’excède pas 10 affichages par utilisateur et par session.

liste de distribution par messagerie

Liste comportant une colonne rcp_email qui contient des adresses électroniques d’utilisateurs.

liste de publipostage

Liste à utiliser avec le service de publipostage. Une liste de publipostage contient cinq champs standard : rcp_email, rcp_guid, rcp_fmt, rcp_locale et rcp_url.

liste des annulations d’abonnements

Liste des utilisateurs qui ont choisi d’annuler leur inscription à une liste de publipostage.

liste des utilisateurs

Liste comportant une colonne rcp_guid qui contient des identificateurs d’utilisateur.

liste dynamique

Liste d’enregistrements utilisateur que le service Gestionnaire de listes crée lors de l’exécution, lorsque cela est nécessaire (par exemple, lors de l’exportation des données de la liste). Chaque fois que cette liste est demandée, le Gestionnaire de listes récupère les données les plus récentes dans le Data Warehouse. Les informations nécessaires à la création de la liste sont stockées dans la base de données du Gestionnaire de listes. (En revanche, avec une liste statique, la liste des enregistrements utilisateur est stockée dans son intégralité dans la base de données du Gestionnaire de listes.) Utilisez des listes dynamiques pour les campagnes de publipostage que vous exécutez fréquemment ou si la liste des destinataires est souvent mise à jour.

Voir aussi : liste statique

liste statique

Liste d’enregistrements utilisateur créée immédiatement sur demande, puis stockée dans la base de données du Gestionnaire de listes. (En revanche, avec une liste dynamique, seules les informations nécessaires à la création de la liste sont stockées dans la base de données du Gestionnaire de listes.) Utilisez des listes statiques pour les campagnes de publipostage que vous n’exécutez pas souvent, ou si la liste des destinataires n’est pas souvent mise à jour.

Voir aussi : liste dynamique

majoration fixe

Montant exact à ajouter au prix catalogue pour obtenir un prix personnalisé.

M

MDX

Voir expression multidimensionnelle (MDX, multidimensional expression).

membre de clé de classe

Un des membres d’une clé de classe à plusieurs valeurs.

membre de données

Membre d’une classe permettant de stocker des données. Un membre de données est mappé vers une colonne de la base de données relationnelle sous-jacente dans le Data Warehouse.

Voir aussi : classe

métadonnée

Donnée utilisée pour décrire d’autres données. Par exemple, le type de données est une métadonnée qui décrit une propriété.

métadonnée de classe

Modèle conceptuel qui décrit les attributs à spécifier pour créer une classe dans le schéma logique du Data Warehouse de Commerce Server.

métamodèle du Data Warehouse

Modèle conceptuel qui décrit la création de classes, de membres de données, de relations et de clés dans le schéma logique du Data Warehouse.

Microsoft Management Console (MMC)

Infrastructure permettant d’héberger des outils d’administration appelés consoles. Une console peut contenir des outils, des dossiers ou autres conteneurs, des pages Web et d’autres éléments d’administration. Ces éléments sont affichés dans le volet gauche de la console, appelé arborescence de la console. Une console se compose d’une ou plusieurs fenêtres qui contiennent des affichages de l’arborescence de la console. La fenêtre MMC principale fournit des commandes et des outils pour créer des consoles.

Voir aussi : composant logiciel enfichable

MIME

Voir extensions MIME (Multipurpose Internet Mail Extensions).

mise à jour

Régénération de l’index de texte intégral. Cette opération s’effectue uniquement dans le module Éditeur de catalogue de Commerce Server Business Desk.

mise en cache de fichiers

Voir mise en cache.

mise en cache

Stockage en mémoire des documents, images, scripts CGI (Common Gateway Interface) ou ASP et DLL d’extension ISAPI (Internet Server API) fréquemment utilisés afin d’améliorer les performances. Pour plus d’informations, consultez la rubrique « Mise en cache des applications » dans l’aide d’IIS. Également appelée mise en cache de fichiers ou mise en cache de documents.

MMC

Voir Microsoft Management Console (MMC).

modèle COM (Component Object Model)

Modèle de programmation orienté objet qui définit les interactions entre les objets au sein d’une même application ou entre différentes applications. Avec le modèle COM, le logiciel client accède à un objet à l’aide d’un pointeur vers une interface (ensemble de propriétés et de méthodes associé).

modèle de configuration de pipeline

Fichier de modèle utilisé pour créer des pipelines. Les pipelines créés à l’aide d’un modèle de configuration de pipeline sont enregistrés en tant que fichiers de configuration de pipeline (.pct). Les modèles sont utilisés comme base pour la création de pipelines personnalisés. Dans tout modèle, vous pouvez ajouter, supprimer ou renommer des étapes et des composants.

modèle de prévision

Synthèse des données utilisée par l’algorithme de prévision. Utilisez Prediction Model Viewer dans Commerce Server Manager pour afficher les modèles de prévision.

modèle de segment

Dans le module Identification de segments, synthèse des données utilisée par l’algorithme de segmentation. Utilisez le module Identification de segments de Commerce Server Business Desk pour afficher les modèles de segments.

module

Élément que vous pouvez sélectionner dans le volet de navigation de Commerce Server Business Desk. Par exemple, vous pouvez choisir le module Gestionnaire de campagnes, Définition de catalogue ou Rapports. Chaque module est un ensemble de fichiers ASP qui fournissent certaines fonctionnalités liées et qui disposent d’un ou plusieurs points d’entrée à partir du volet de navigation.

module Analyse de rapports

Module de Commerce Server Business Desk utilisé pour afficher à la fois l’état des rapports statiques exécutés et les rapports une fois leur exécution terminée.

module Codes de données

Module de Commerce Server Business Desk utilisé pour ajouter et gérer des codes de statut de la commande, des codes de région et des codes de pays. Des codes de pays et des codes de région doivent être définis pour que vous puissiez mettre à jour les tables de taxes dans le module Taux des taxes.

module Définition de catalogue

Module de Commerce Server Business Desk utilisé pour créer et gérer des schémas de catalogue. Le schéma de catalogue se compose des définitions de catégories, des définitions de produits et des définitions de propriétés. Ces composants servent de base aux catégories, produits et propriétés des catalogues.

module Définition de profil

Module de Commerce Server Business Desk utilisé pour ajouter et modifier des définitions de profil.

module Éditeur d’entrées du glossaire du site

Module de Commerce Server Business Desk utilisé pour ajouter et modifier des entrées du glossaire du site.

Voir aussi : entrées du glossaire du site

module Éditeur de catalogue

Module de Commerce Server Business Desk utilisé pour créer et gérer des catalogues. Le module Éditeur de catalogue prend en charge l’ajout, la modification et la suppression de produits et de catégories, ainsi que l’importation et l’exportation de catalogues et l’actualisation des index de texte intégral.

module Expressions de la campagne

Module de Commerce Server Business Desk utilisé pour créer et gérer des expressions.

Voir aussi : personnalisation

module Gestionnaire de campagnes

Module de Commerce Server Business Desk utilisé pour créer des comptes client, puis pour créer et gérer des campagnes de publicité, des campagnes de remise et des campagnes de publipostage.

module Gestionnaire de listes

Module de Commerce Server Business Desk utilisé pour créer, importer, exporter, copier, supprimer et fusionner des listes d’enregistrements utilisateur. Par exemple, vous pouvez créer une liste de destinataires pour une campagne de publipostage.

module Gestionnaire de panier

Module de Commerce Server Business Desk utilisé pour gérer les paniers d’achat des utilisateurs qui visitent votre site Web. Les utilisateurs peuvent enregistrer un panier d’achat, puis revenir ultérieurement sur le site et acheter les articles contenus dans ce panier. Utilisez le Gestionnaire de panier pour rechercher et supprimer les paniers abandonnés (c’est-à-dire les paniers enregistrés restés inactifs pendant une longue période).

Voir aussi : panier

module Groupe cible

Module de Commerce Server Business Desk utilisé pour gérer des groupes cibles.

module Groupes de catalogues

Module de Commerce Server Business Desk utilisé pour créer et gérer des groupes de catalogues.

module Identification de segments

Module de Commerce Server Business Desk utilisé pour identifier les tendances d’utilisation et prendre des décisions marketing basées sur les similitudes entre utilisateurs.

module Modes de livraison

Module de Commerce Server Business Desk utilisé pour définir votre mode de livraison, en termes de poids, de quantité ou de sous-total.

module Organisations

Module de Commerce Server Business Desk utilisé pour ajouter, modifier ou supprimer des profils d’organisation.

Voir aussi : organisation

module Publier les campagnes marketing

Module de Commerce Server Business Desk utilisé pour mettre à jour votre site avec les nouvelles informations sur les campagnes marketing. Le module Publier les campagnes marketing vide les caches qui stockent les informations sur les campagnes marketing pour votre site. La prochaine fois que Commerce Server recevra une demande pour ces données, les données mises à jour seront chargées dans les caches.

Voir aussi : cache

module Publier les profils

Module de Commerce Server Business Desk utilisé pour mettre à jour votre site avec les nouvelles informations de profil. Le module Publier les profils vide les caches qui stockent les informations sur les profils pour votre site. La prochaine fois que Commerce Server recevra une demande pour ces données, les données mises à jour seront chargées dans les caches.

Voir aussi : cache

module Publier les transactions

Module de Commerce Server Business Desk utilisé pour mettre à jour votre site avec les nouvelles informations sur les transactions, par exemple de nouveaux taux de taxes ou modes de livraison. Le module Publier les transactions vide les caches qui stockent les informations sur les transactions pour votre site. La prochaine fois que Commerce Server recevra une demande pour ces données, les données mises à jour seront chargées dans les caches.

Voir aussi : cache

module Rapports

Module de Commerce Server Business Desk utilisé pour sélectionner et exécuter un rapport.

module Statut de la commande

Module de Commerce Server Business Desk utilisé pour afficher des informations sur le statut des commandes, ainsi que tous les détails concernant cette commande, comme l’en-tête et les éléments de la commande.

module Tables de références

Module de Commerce Server Business Desk utilisé pour créer et gérer des tailles de contenu, des codes d’activité et des groupes de pages.

module Taux des taxes

Module de Commerce Server Business Desk utilisé pour mettre à jour les tables de taxes et les taux pour votre site Web.

module Utilisateurs

Module de Commerce Server Business Desk utilisé pour modifier des enregistrements utilisateur et pour ajouter ou supprimer des informations sur les utilisateurs.

N

nœud

Représentation graphique d’un attribut, affichée par Prediction Model Viewer.

Voir aussi : attribut

nom de domaine Internet

Nom utilisé pour l’hébergement d’un site sur Internet. Un nom de domaine Internet est une combinaison d’un nom de domaine de deuxième niveau (par exemple, « Microsoft ») et d’un nom de domaine de niveau supérieur (par exemple, « com » ou « net »), séparés par un point. Avant de créer un site commercial sur Internet, l’entreprise doit d’abord demander et enregistrer un nom de domaine de deuxième niveau auprès d’une autorité d’enregistrement de nom de domaine (DNS) certifiée. Ce nom doit répondre aux exigences de l’attribution de noms DNS externes et ne doit pas être identique à un nom déjà enregistré ou utilisé. Pour enregistrer un nom, l’entreprise doit obtenir (ou demander à un fournisseur de services Internet d’obtenir pour elle) au moins une adresse IP (Internet Protocol) valide à utiliser sur Internet et les adresses IP d’au moins deux serveurs DNS actifs sur Internet. Également appelé adresse Internet, nom de domaine ou adresse URL.

O

objet bon de commande

Objet qui stocke des données de statut sur les achats en cours (et éventuellement antérieurs) d’un utilisateur particulier.

objet de pipeline

Objet qui utilise des fichiers de configuration de pipeline pour exécuter une série de composants. Commerce Server 2000 fournit six objets permettant d’exécuter des pipelines : MtsPipeline, MtsTxPipeline, PooledPipeline, PooledTxPipeline, OrderGroup et OrderPipeline. Les objets MtsPipeline et PooledPipeline ne prennent pas en charge les transactions COM+.

Voir aussi : pipeline non traité, pipeline, pipeline traité

objet Dictionary

Objet utilisé pour prendre en charge la création, le stockage et la récupération de paires nom/valeur dans la mémoire. Tous les éléments d’un objet Dictionary étant de type Variant, vous pouvez créer un objet Dictionary contenant quasiment n’importe quel type de valeur (y compris d’autres objets Dictionary) et vous pouvez stocker n’importe quelle combinaison de types Variant dans le même objet Dictionary.

objets de données ADO MD (ActiveX Data Objects Multidimensional)

Ensemble d’interfaces d’accès aux données basées sur les objets, indépendant du langage et de haut niveau, optimisé pour les applications de données multidimensionnelles. Visual Basic et d’autres langages d’automatisation utilisent ADO MD comme interface d’accès aux données pour les emplacements de stockage de données multidimensionnelles. ADO MD est intégré à ADO version 2.0 et ultérieure.

Voir aussi : ActiveX Data Objects (ADO)

offre de lancement

Type spécifique de vente annexe qui propose à l’utilisateur de remplacer un produit qu’il est en train de regarder ou qu’il a placé dans son panier par un produit plus intéressant. Utilisez le Kit de développement de logiciel (SDK) pour ajouter la fonctionnalité d’offre de lancement à votre site.

Voir aussi : vente croisée intelligente

OLAP (online analytical processing)

Classe de technologies conçues pour une analyse et un accès aux données appropriés et en direct. Les données OLAP sont stockées dans une base de données multidimensionnelle, qui considère chaque attribut de données (par exemple, un produit, un secteur géographique ou une période de temps) comme une dimension distincte. Les données OLAP sont regroupées et organisées en cubes, en fonction de dimensions partagées. Le Data Warehouse utilise des cubes OLAP pour stocker les données importées, ce qui permet d’accélérer le traitement des rapports et des demandes.

Voir aussi : dimension, cube

online analytical processing

Voir OLAP.

opérations Extensible Markup Language/Hypertext Transfer Protocol

Voir opérations XMLHTTP (Extensible Markup Language/ Hypertext Transfer Protocol).

opérations XMLHTTP (Extensible Markup Language/ Hypertext Transfer Protocol)

Mécanisme utilisé par les composants HTML ListSheet et TreeView pour extraire des données XML du serveur, permettant d’afficher les nouvelles données sans régénérer la totalité de la page contenant ces données.

organisation

Société, division, département ou autre unité d’une société identifiés dans Commerce Server Business Desk comme source ou destination dans le cadre d’échange de documents commerciaux. L’ensemble de propriétés qui représentent les principales caractéristiques de l’organisation dans le cadre de l’échange électronique de documents sont appelées profil de l’organisation. Une organisation désigne également un ensemble d’utilisateurs.

Voir aussi : module Organisations

P

package

Fichier créé par l’outil de déploiement Gestionnaire de package de site Commerce Server, qui contient toutes les données nécessaires au déploiement d’un site sur un autre ordinateur. Cela inclut les applications et les ressources, y compris les paramètres de propriété de ressource stockés dans la base de données d’administration. Un package ne contient pas de paramètres de propriété spécifiques à un ordinateur (par exemple, les chaînes de connexion). Les fichiers de package ont une extension .pup.

page d’action

Fichier ASP unique qui fournit un aspect spécifique de la fonctionnalité associée à un module de Commerce Server Business Desk. C’est le cas par exemple de la définition des propriétés d’un produit donné. Des pages d’action sont généralement affichées lorsque l’utilisateur clique sur le nom d’un module dans le volet de navigation ou sur un bouton de tâche proposé par une autre page d’action du même module.

Voir aussi : barre d’état

page d’extraction

Type de page ASP (Active Server Pages) conçue pour renvoyer des documents XML (Extensible Markup Language) contenant des données au format XML standard. La page renvoyée contient exclusivement des données XML. Les composants HTML ListSheet et TreeView attendent ce format de données lorsqu’ils effectuent des opérations XMLHTTP.

page de liste

Un des deux principaux types de pages d’action dans Commerce Server Business Desk. Une page de liste fournit un affichage en lecture seule de certains types de données et permet généralement de filtrer, trier et sélectionner ces données. Une page de liste contient un composant HTML ListSheet et parfois un volet de recherche au-dessus de ce composant. Les pages de liste partagent l’espace de travail Business Desk avec le volet de navigation.

Voir aussi : page de modification

page de modification

Un des deux principaux types de pages d’action dans Commerce Server Business Desk. Les pages de modification fournissent des mécanismes permettant de modifier des données dans Business Desk. Les pages de modification ne partagent pas l’espace de travail Business Desk avec le volet de navigation. Ce dernier est masqué lorsque les pages de modification sont affichées, ce qui empêche l’utilisateur de passer à un autre module jusqu’à ce qu’il ferme la page de navigation et revienne à une page de liste.

Voir aussi : page de liste

panier

Liste d’articles qu’un utilisateur sélectionne en vue de les acheter sur un site Web commercial. Cette liste est généralement compilée dans un fichier.

Voir aussi : module Gestionnaire de panier

pare-feu (firewall)

Point de contrôle de sécurité qui sépare un intranet d’Internet (ou de groupes Internet). Seules certaines données spécifiques peuvent franchir un pare-feu (firewall).

partenaire commercial

Organisation externe avec laquelle votre organisation échange des données électroniques. Les échanges de données entre partenaires commerciaux sont réglementés par les accords, les pipelines et les listes de distribution créés entre votre organisation et ses partenaires commerciaux. Les échanges de données entre partenaires commerciaux sont gérés par Microsoft BizTalk Server 2000.

pénalité de popularité

Pénalité appliquée à une prévision afin de réduire la probabilité selon laquelle un article populaire (très connu) sera recommandé.

personnalisation

Fonctionnalité qui permet d’adapter un contenu Web ou un message électronique aux utilisateurs en fonction de leur profil utilisateur ou des demandes de contenu qu’ils ont effectuées auparavant.

Voir aussi : group cible, module Expressions de la campagne, service de publipostage Commerce Server, ressource Predictor, expression de ciblage

pipeline

Infrastructure logicielle qui définit et relie entre elles une ou plusieurs étapes d’un processus commercial, en les exécutant sous forme séquentielle pour effectuer une tâche spécifique. Chaque étape d’un pipeline contient un ou plusieurs composants de pipeline (objets COM) qui peuvent être configurés en fonction des besoins spécifiques du site.

pipeline de traitement des commandes

Infrastructure logicielle qui lie plusieurs composants et les exécute dans un certain ordre. Commerce Server 2000 comprend trois pipelines de traitement des commandes : produit, planification et achat.

Pipeline Editor

Application utilisée pour créer et modifier des fichiers de configuration de pipeline (.pct) Commerce Server. Pipeline Editor affiche un pipeline sous la forme d’un diagramme de type canal, chaque étape du pipeline étant représentée par un segment de pipeline. Les composants utilisés pour une étape sont représentés par des soupapes.

pipeline mis en pool

Objet de pipeline enregistré avec COM+ pour tirer parti de la mise en pool d’objets.

pipeline non traité

Pipeline qui ne prend pas en charge les transactions COM+. MtsPipeline et PooledPipeline sont les seuls objets qui prennent en charge les pipelines non traités.

Voir aussi : pipeline, objet de pipeline, pipeline traité

pipeline traité

Pipeline qui prend en charge les transactions COM+. MtsTxPipeline et PooledTxPipeline sont les seuls objets qui prennent en charge les transactions. Si l’un des composants d’un pipeline traité échoue, le travail des composants précédents est annulé et l’objet abandonne la transaction.

Voir aussi : pipeline non traité, pipeline, objet de pipeline

Voir aussi : pipeline non traité, objet de pipeline, pipeline traité

planification de la capacité

Planification des besoins en termes d’applications, de matériel et de réseau pour prendre en charge le trafic prévu et atteindre les performances souhaitées.

pointeur de ressource globale

Objet ressource affiché au niveau du site permettant de référencer une ressource globale utilisée par ce site. Ces ressources globales peuvent également être référencées et utilisées par d’autres sites.

port

Voir port d’échanges.

port d’échanges

Ensemble de règles configurées à l’aide de BizTalk Messaging Manager, qui permettent de définir comment les documents sont enveloppés, sécurisés et transportés vers l’organisation de destination.

portée

Nombre d’utilisateurs uniques qui ont effectué une action spécifique, par exemple nombre d’utilisateurs qui ont cliqué sur une publicité donnée.

Voir aussi : fréquence, fréquence des clics

possibilité de recherche avec propriété

Indicateur Oui/Non dans une définition de propriété qui indique si cette propriété peut faire l’objet d’une recherche avec propriété.

possibilité de recherche en texte libre

Indicateur Oui/Non dans une définition de propriété qui indique si cette propriété peut faire l’objet d’une recherche en texte libre. Pour que cet indicateur ait la valeur Oui, le type de propriété doit être « chaîne » ou « énuméré ». Une recherche en texte libre localise les correspondances et mots exacts dérivés du ou des mots que vous avez spécifiés. Par exemple, le mot « conduire » renvoie les correspondances conduis, conduisit, conduisant et conduit.

pourcentage de majoration

Pourcentage à ajouter au prix catalogue pour obtenir un prix personnalisé. Par exemple, un pourcentage de majoration de 20 % signifie que le prix est de 120 % du prix catalogue.

pourcentage de remise

Pourcentage à retirer au prix catalogue pour obtenir un prix personnalisé. Par exemple, un pourcentage de remise de 20 % signifie que le prix est de 80 % du prix catalogue.

Prediction Model Viewer

Outil de navigation permettant d’afficher le réseau de dépendances et les arborescences de décision d’un modèle de prévision.

prix direct

Prix associé à un produit spécifique d’un catalogue plutôt qu’à une catégorie de tarification.

Voir aussi : prix indirect

prix explicite

Type de remise qui spécifie un montant précis. Le prix explicite annule le prix spécifié dans le catalogue de base.

prix indirect

Prix associé à une catégorie de tarification. Le champ de prix de l’enregistrement produit est ignoré.

Voir aussi : prix direct

produit

Article à vendre dans un catalogue. Chaque produit est une instance unique d’une définition de produit. Par exemple, un produit basé sur la définition de produit Livre (avec les propriétés « Auteur », « Titre » et « Prix catalogue ») peut avoir les propriétés « Bill Gates », « La Route du futur » et « 90,00 FF ». Utilisez le module Éditeur de catalogue pour gérer les produits.

produit racine

Produit d’un catalogue qui n’est associé à aucune catégorie.

produits descendants

Produits associés à une catégorie ou à une de ses catégories descendants.

Voir aussi : catégorie descendant

profil

Ensemble de caractéristiques qui définissent les éléments à caractère commercial, tels qu’un utilisateur, une société ou un processus commercial. Chaque profil est une instance unique d’une définition de profil. Par exemple, un profil basé sur la définition de profil Nouvel utilisateur peut avoir les propriétés Alice Mirwault, 52, Femme. Vous pouvez spécifier les données de profil que le module Utilisateurs doit collecter pour les utilisateurs qui visitent votre site. Ces données peuvent inclure le nom, l’âge, le sexe, l’adresse, etc.

profil d’utilisation

Ensemble de propriétés qui décrivent les schémas de trafic sur un site. Par exemple, un profil d’utilisation indique combien de personnes ont visité une page donnée, évalue le rapport navigation/achat et précise le nombre d’utilisateurs qui ajoutent un article dans leur panier puis le retirent. Les administrateurs système se servent du profil d’utilisation pour savoir combien de serveurs Web sont nécessaires et pour configurer un site.

profil de l’organisation

Ensemble de propriétés qui décrivent une société, une division, un département ou une autre unité d’une société. Par exemple, le nom, le numéro de compte, les limites de dépenses ou la remise société sont des propriétés qui peuvent constituer le profil d’une organisation. Dans Commerce Server Business Desk, vous pouvez définir un profil d’organisation pour les sociétés avec lesquelles vous entretenez des relations commerciales.

profil de l’utilisateur

Processus de collecte des informations par lequel les utilisateurs qui visitent un site Web fournissent des données de profil sur eux-mêmes. Par exemple, les utilisateurs peuvent remplir un formulaire en ligne en indiquant leur nom, leur adresse, leur numéro de téléphone, etc.

Voir aussi : profil implicite de l’utilisateur

profil implicite de l’utilisateur

Processus de collecte des informations par lequel les actions et comportements d’un utilisateur visitant un site Web sont enregistrés au fur et à mesure des déplacements et des actions de cet utilisateur dans le site Web.

Voir aussi : profil de l’utilisateur, ressource Predictor

profil utilisateur

Ensemble de propriétés prédéfinies qui décrivent un utilisateur. Par exemple, le nom, l’adresse et le sexe peuvent constituer un profil utilisateur.

ProgID

Voir identificateur de programmation (ProgID, Programmatic Identifier).

propriété

Caractéristique d’un produit, d’une catégorie ou d’un profil. Toutes les propriétés ont un nom et un type de données (par exemple, Description).

propriété à choix multiple

Propriété qui contient un ensemble de valeurs prédéfinies. Par exemple, vous pouvez créer une propriété à choix multiple appelée Taille_Maillot et définir les valeurs possibles suivantes : S, M et L.

propriété de profil

Caractéristique qui spécifie les données de profil à collecter lorsqu’un utilisateur visite votre site Web. Par exemple, la propriété Prénom indique que le prénom de l’utilisateur doit être collecté. Utilisez le module Définition de profil Business Desk pour gérer les propriétés de profil.

propriétés de catalogue

Propriétés de base qui décrivent un catalogue, comme le nom, la date de début, la date de fin, la devise, l’unité de mesure du volume et les identificateurs de produit uniques. Utilisez l’Éditeur de catalogue pour gérer les propriétés des catalogues.

propriétés de catégories

Propriétés qui composent une définition de catégorie. Par exemple, la définition de catégorie Département peut avoir les propriétés suivantes : Description et Responsable. Utilisez le module Définition de catalogue pour gérer les propriétés de catégories.

propriétés du composant produit

Propriétés qui différencient les composants produit. Par exemple, le composant produit maillot vert de taille moyenne possède deux propriétés de composant produit : la taille et la couleur.

propriétés du produit

Propriétés qui composent une définition de produit. Par exemple, la définition de produit Livre peut contenir les propriétés de produit suivantes : « Auteur », « Titre » et « Prix catalogue ». Utilisez le module Définition de catalogue Business Desk pour gérer les propriétés de produits.

protocole HTTP (Hypertext Transfer Protocol)

Protocole client-serveur utilisé pour transmettre et recevoir des données sur le Web. Lorsque vous tapez une adresse URL dans votre navigateur, vous envoyez en fait une demande HTTP à un serveur Web pour obtenir une page de données.

publicité

Contenu que Commerce Server affiche en fonction d’une formule de livraison spécifique appelée estimation de livraison.

publicité maison

Publicité affichée lorsque les publicités payées ont pris de l’avance sur leur planification d’estimation de livraison. Par exemple, un client commande 1 000 publicités payées à livrer sur quatre mois, mais dans les deux premiers mois, la commande a été affichée 850 fois. Dans ce cas, pour rééquilibrer la planification d’estimation de livraison, des publicités maison sont affichées. Des publicités maison sont également affichées lorsqu’aucune publicité payée ne convient pour la demande.

Par exemple, une publicité maison est affichée si aucune publicité payée ne convient à une cible donnée ou si toutes les publicités payées sont confrontées à une exclusion. Une publicité maison permet de vendre le stock invendu à prix réduit. Les publicités maison sont également utilisées si les publicités d’un site n’ont pas de but de livraison spécifique, mais que vous souhaitez exécuter des publicités avec des volumes spécifiés.

Voir aussi : volume

publicité Services Windows Media

Publicité qui affiche des publicités audio et vidéo haute qualité.

publipostage

Message électronique destiné à un utilisateur spécifique qui répond aux critères de la campagne de publipostage correspondante.

PUP

Voir Gestionnaire de package de site Commerce Server.

Q

Aucune entrée de glossaire ne commence par cette lettre.

R

rapport de graphique croisé dynamique

Rapport affiché dans un graphique interactif. Vous pouvez utiliser ce graphique pour afficher et réorganiser les données graphiquement, comme dans un rapport de tableau croisé dynamique. Dans Commerce Server, vous pouvez afficher les rapports dynamiques sous forme de rapports de graphique croisé dynamique. Pour afficher des rapports de graphique croisé dynamique, utilisez le module Rapports de Commerce Server Business Desk.

rapport de tableau croisé dynamique

Rapport affiché dans un tableau interactif. Vous pouvez faire pivoter les lignes et les colonnes du tableau pour afficher différentes synthèses des données source, filtrer les données ou afficher des données détaillées pour différents centres d’intérêt. Dans Commerce Server, vous pouvez afficher les rapports dynamiques sous forme de rapports de tableau croisé dynamique. Pour afficher des rapports de tableau croisé dynamique, utilisez le module Rapports de Commerce Server Business Desk.

rapport dynamique

Rapport créé lors de l’exécution. Chaque fois que le rapport est exécuté, il récupère les données les plus récentes dans le Data Warehouse. Seule la définition du rapport, qui ne change jamais, est stockée. (Les rapports statiques, eux, sont stockés avec les données qu’ils contiennent dans le Data Warehouse.) Vous pouvez afficher les rapports dynamiques dans un tableau croisé dynamique ou un graphique croisé dynamique. Utilisez le module Rapports pour exécuter des rapports dynamiques.

rapport statique

Rapport exécuté immédiatement sur demande, puis stocké avec ses données dans le Data Warehouse. (En revanche, avec un rapport dynamique, seules les informations nécessaires à la création du rapport sont stockées dans le Data Warehouse.) Vous pouvez publier des rapports statiques sur votre site Web et exporter les données d’un rapport statique vers le module Gestionnaire de listes Business Desk. Utilisez le module Rapports pour exécuter des rapports statiques et utilisez le module Analyse de rapports pour les afficher.

recherche avec propriété

Méthode permettant de rechercher des produits en affinant progressivement votre recherche, grâce à la définition de contraintes de paramètre comme une catégorie, un produit ou une propriété. Lorsque vous effectuez une recherche avec propriété, vous recherchez des propriétés en réduisant progressivement le nombre de produits qui répondent à vos critères de recherche. Les recherches avec propriété sont utiles si vous ne souhaitez pas rechercher parmi tous vos produits, mais identifier un groupe de produits.

recherche basée sur les propriétés

Méthode de recherche permettant de rechercher dans un catalogue les produits dont certaines propriétés ont des valeurs spécifiques (par exemple, un prix supérieur à 100 francs et la couleur bleue).

référence (SKU)

Unité de gestion de stock. Dans Commerce Server, la référence est l’identificateur unique, généralement alphanumérique, d’un produit. La référence permet le suivi d’un produit à des fins d’inventaire. Une référence peut être associée à n’importe quel article pouvant être acheté. Par exemple, un maillot de type 3726, taille 8 peut avoir la référence 3726-8.

relation

Voir relation de classe et relation de membre de classe.

relation de catégorie

Méthode permettant d’associer un produit avec un autre produit ou une catégorie. Les relations de catégorie ont un nom, une description et une cible. Une catégorie peut être associée à une autre catégorie (par exemple, relation entre la catégorie Jeans et la catégorie Ceintures). Une catégorie peut également être associée à un produit (par exemple à un élément de cette catégorie). Une catégorie peut avoir plusieurs relations avec d’autres catégories et/ou produits.

relation de classe

Relation de type parent-enfant entre deux classes. La relation définit le nombre d’instances de chaque classe. Dans le Data Warehouse de Commerce Server, pratiquement toutes les relations de classe sont de type plusieurs-à-un. Cela signifie qu’un parent peut ne pas avoir d’enfant ou peut en avoir un ou plusieurs.

relation de membre de classe

Association entre des membres de données spécifiques des deux classes composant la relation de classe.

relations entre produits

Méthode permettant d’associer un produit d’un catalogue avec un autre produit ou une catégorie. Par exemple, les imprimantes peuvent être associées aux rubans d’imprimante ou aux cartouches d’encre, bien que ces produits se trouvent dans des catégories différentes. Une relation entre produits possède un nom précisant le type de lien (par exemple, « Accessoire »), ainsi qu’un produit ou une catégorie source et un produit ou une catégorie cible. Utilisez le module Définition de catalogue Business Desk pour gérer les relations entre produits.

remise

Type de promotion spécifique qui permet aux acheteurs de faire des économies sur certains produits ou groupes de produits s’ils répondent à certaines conditions spécifiées. Dans Commerce Server, les remises ont un composant de ciblage et un composant d’affichage.

remise fixe

Montant exact à retirer au prix catalogue pour obtenir un prix personnalisé.

répertoire virtuel

Nom de répertoire utilisé dans une adresse Web, qui correspond à un répertoire physique du serveur. Parfois appelé mappage URL. Dans les services Internet (IIS) 5.0, un répertoire virtuel est l’élément situé juste en dessous du site Web (serveur virtuel) dans la hiérarchie Microsoft Management Console (MMC). Il hérite des propriétés de ce site Web. Certaines de ces propriétés peuvent être annulées au niveau du répertoire virtuel ; certaines autres ne peuvent pas être modifiées. Les applications, y compris les applications Commerce Server, se situent au niveau du répertoire virtuel dans IIS et ont les mêmes relations parent-enfant avec le site Web.

réplication

Processus de copie de contenu et/ou de paramètres de configuration d’un nœud de serveur vers un autre. Vous pouvez copier les fichiers manuellement ou utiliser un logiciel de réplication pour les copier automatiquement. La réplication est nécessaire pour le clustering, afin d’assurer la tolérance de pannes.

réplication de contenu

Méthode permettant de copier le contenu d’un site Web d’un nœud de serveur vers un autre. Vous pouvez copier les fichiers manuellement ou utiliser un logiciel de réplication pour les copier automatiquement. La réplication est nécessaire pour le clustering, afin d’assurer la tolérance de pannes.

requête

Demande spécifique en vue de récupérer, de modifier ou de supprimer des données.

réseau de dépendances

Synthèse graphique des relations de prévision (dépendances) contenues dans un modèle Predictor. Synthèse graphique des relations de prévision (dépendances) contenues dans un modèle de prévision. Utilisez Prediction Model Viewer pour afficher un réseau de dépendances.

Voir aussi : arc, arborescence de décision

ressource

Entité qui fournit une fonctionnalité aux applications d’un site Commerce Server. Une ressource est composée d’un ou plusieurs objets COM. Ces objets sont utilisés sur les pages Web d’une application pour accéder aux fonctionnalités de la ressource. Une ressource peut avoir des propriétés globales ou des propriétés de niveau site, mais pas les deux. Les propriétés de ressource sont stockées dans la base de données d’administration. Commerce Server est livré avec un ensemble de ressources, dont certaines sont également des services Windows 2000. Des éditeurs tiers peuvent développer des ressources personnalisées à utiliser avec Commerce Server. Utilisez Commerce Server Manager pour gérer les ressources.

Voir aussi : ressource globale, service, ressource de site

ressource Campagnes marketing

Ressource Commerce Server avec des propriétés de niveau site, gérée via Commerce Server Manager. Utilisez cette ressource pour configurer la chaîne de connexion à la base de données contenant les données sur les campagnes marketing.

ressource Catalogue de produits

Ressource Commerce Server avec des propriétés de niveau site, gérée via Commerce Server Manager. Utilisez la ressource Catalogue de produits pour configurer la chaîne de connexion à la base de données contenant les données sur le catalogue.

ressource Configuration de la transaction

Ressource Commerce Server avec des propriétés de niveau site, gérée via Commerce Server Manager. Utilisez la ressource Configuration de la transaction pour configurer la chaîne de connexion à la base de données contenant les métadonnées de transaction.

ressource Configuration par défaut de l’application

Ressource Commerce Server avec des propriétés de niveau site, gérée via Commerce Server Manager. Utilisez Configuration par défaut de l’application pour définir les propriétés qui déterminent les fonctionnalités du site pour les options de devise, les options de facturation et l’intégration de BizTalk Server.

ressource CS Authentication

Ressource Commerce Server avec des propriétés de niveau global, gérée via Commerce Server Manager. Utilisez l’Authentification CS pour configurer les options d’authentification pour un site.

ressource Data Warehouse

Ressource Commerce Server avec des propriétés de niveau global, gérée via Commerce Server Manager. Utilisez la ressource Data Warehouse pour spécifier la chaîne de connexion à la base de données du Data Warehouse.

ressource de site

Ressource disponible pour un site spécifique. Toutes les ressources utilisées par un site affichent un objet au niveau du site dans Commerce Server Manager. Par exemple, une ressource globale peut également être une ressource de site : une ressource globale utilisée par un site affiche un objet au niveau du site ; la seule propriété affichée par l’objet est un pointeur vers la ressource globale associée au niveau global.

Une ressource de site peut avoir toutes ses propriétés au niveau du site ou au niveau global, mais elle ne peut pas avoir des propriétés aux deux niveaux en même temps. Vous configurez les propriétés d’une ressource de site au niveau du site. Un certain nombre de ressources de site sont fournies avec Commerce Server et les éditeurs tiers peuvent développer des ressources de site personnalisées. Utilisez Commerce Server Manager pour gérer les ressources de site.

Voir aussi : ressource

ressource globale

Ressource disponible pour tous les sites. Une ressource globale affiche un objet au niveau global dans Commerce Server Manager et au niveau du site pour tous les sites qui utilisent cette ressource globale. Les propriétés d’une ressource globale sont configurées au niveau global.

Les ressources globales suivantes sont fournies avec Commerce Server : Service de publipostage de Commerce Server et Predictor (qui sont également des services Windows 2000), CS Authentication, Profiles et Data Warehouse. Des éditeurs tiers peuvent développer des ressources globales personnalisées à utiliser avec Commerce Server. Utilisez Commerce Server Manager pour gérer les ressources globales.

Voir aussi : ressource

ressource Predictor

Ressource globale qui est également un service Windows 2000. La ressource Predictor est gérée par Commerce Server Manager et comprend un puissant moteur de data mining qui permet d’ajouter des fonctionnalités de prévision à votre site Web, en utilisant les propriétés résumées de tous les visiteurs de votre site. Utilisez la ressource Predictor pour créer des modèles d’analyse que vous pourrez déployer sur votre site Web pour analyser les informations sur les utilisateurs.

Voir aussi : profil implicite de l’utilisateur, personnalisation

ressource Profiles

Ressource Commerce Server avec des propriétés de niveau global, gérée via Commerce Server Manager. Utilisez la ressource Profiles pour spécifier la chaîne de connexion à la base de données contenant les données de profil utilisateur. La ressource Profiles permet également de créer, de modifier et de supprimer des propriétés de profil et des profils. Vous pouvez ajouter et supprimer des sources de données, par exemple des bases de données SQL Server ou des sources de données Active Directory.

ressource Transactions

Ressource Commerce Server avec des propriétés de niveau site, gérée via Commerce Server Manager. Utilisez la ressource Transactions pour configurer la chaîne de connexion à la base de données contenant les métadonnées de transaction.

S

schéma de catalogue

Description d’un catalogue qui spécifie ses définitions de catégories, de produits et de propriétés. Plusieurs catalogues peuvent partager un même schéma. Utilisez le module Définition de catalogue pour gérer les schémas de catalogue.

schéma logique du Data Warehouse

Voir schéma logique.

schéma logique

Dans le Data Warehouse, modèle conceptuel mappé vers les données de la base physique qui fournit un affichage compréhensible des données. Lorsqu’un développeur crée du code pour accéder ou apporter des modifications aux données du Data Warehouse, il interagit avec le schéma logique. Commerce Server traite l’accès aux données du Data Warehouse à l’aide du schéma logique.

score

Mesure qui évalue la précision d’un modèle d’analyse pour la prévision des données. Vous pouvez utiliser ces scores pour mesurer l’efficacité des modèles d’analyse lorsque vous ajustez les valeurs utilisées pour les paramètres Taille de l’échantillon, Fraction d’attribut d’entrée et Fraction d’attribut de sortie dans la boîte de dialogue Propriétés de construction d’un modèle.

Voir aussi : score d’ajustement aux données, score de recommandation

score d’ajustement aux données

Valeur qui mesure la qualité des prévisions effectuées par un modèle d’analyse lors du remplissage des données manquantes.

Voir aussi : score

score de recommandation

Valeur qui mesure la qualité des modèles d’analyse lorsqu’ils servent à recommander des produits pour de la vente croisée. Ce score mesure la qualité d’une liste classée de recommandations renvoyées par les modèles.

Voir aussi : score

score de sélection de contenu

Valeur numérique servant de base pour la sélection de contenu ciblé (par exemple, des publicités ou des remises) dans l’infrastructure de sélection de contenu (CSF). Un score initial est attribué à chaque élément lors de la phase de définition du score initiale (par défaut, le score initial est de 1 si aucune valeur n’est définie). Ce score est ensuite ajusté en fonction du degré de correspondance de l’élément avec le critère de ciblage. Le composant SelectWinners sélectionne les éléments dont le score ajusté est le plus élevé et les affiche à l’utilisateur du site Web. Les éléments dont le score est de zéro (0) ne sont pas sélectionnés.

segment

Dans le module Identification de segments, groupe d’utilisateurs qui partagent certaines propriétés de profil.

segmentation

Technique d’extraction de données qui identifie des groupes de cas similaires. Utilisez le module Identification de segments pour effectuer une segmentation.

serveur proxy

Composant d’un pare-feu (firewall) qui gère le trafic Internet en provenance et en direction d’un réseau local et qui peut également proposer d’autres fonctionnalités, comme la mise en cache de documents ou le contrôle de l’accès. Un serveur proxy peut améliorer les performances en mettant en cache et en fournissant directement les données souvent demandées (par exemple des pages Web très visitées). Il peut également filtrer et rejeter les demandes auxquelles le propriétaire ne souhaite pas répondre, par exemple les demandes d’accès non autorisées à des fichiers propriétaires.

serveur virtuel

Également appelé site Web (comme le site Web par défaut). Ordinateur virtuel qui se trouve sur un serveur HTTP mais s’affiche à l’utilisateur comme un serveur HTTP distinct. Plusieurs serveurs virtuels peuvent se trouver sur un ordinateur, chacun d’entre eux étant capable d’exécuter ses propres programmes et disposant d’un accès individualisé aux dispositifs d’entrée et autres périphériques.

Chaque serveur virtuel possède ses propres nom de domaine Internet et adresse IP (Internet Protocol) et s’affiche à l’utilisateur en tant que site Web distinct. Certains fournisseurs de services Internet utilisent des serveurs virtuels pour les clients qui souhaitent utiliser leurs propres noms de domaine. Un fournisseur de services Internet peut créer plusieurs sites Web IIS 5.0 et décompresser des applications Commerce Server pour différents clients dans des sites Web IIS différents. Des applications Commerce Server appartenant à des sites Web IIS différents peuvent partager des ressources globales.

serveur Web non-Commerce Server

Serveur Web sur lequel Commerce Server n’a pas été installé. Il génère un fichier journal au format W3C qui peut être importé dans le Data Warehouse et utilisé pour analyse. Un serveur Web non-Commerce Server peut exécuter ou non les services Internet (IIS).

serveur Web

En règle générale, ordinateur équipé d’un logiciel serveur qui utilise des protocoles comme HTTP pour répondre aux demandes des clients Web sur un réseau TCP/IP (Transmission Control Protocol/Internet Protocol).

Dans Commerce Server, un serveur Web est un ordinateur serveur physique qui exécute IIS et hérite des propriétés du site Web IIS 5.0. Un serveur Web s’affiche sous une application dans la console Commerce Server Manager. Une application Commerce Server peut utiliser plusieurs serveurs Web qui fournissent différents types de contenus à l’application.

service

Programme, routine ou processus qui exécute une fonction système spécifique pour prendre en charge d’autres programmes, en particulier à un bas niveau (proche du matériel). Si des services sont fournis sur un réseau, ils peuvent être publiés dans Active Directory, facilitant ainsi l’utilisation et l’administration orientées service. Les services ont des fonctions d’administration communes. Par exemple, un service peut être démarré, arrêté, suspendu ou repris, ses paramètres de démarrage peuvent être modifiés et il peut être administré à l’aide de scripts et d’utilitaires de ligne de commande. Commerce Server comprend les ressources suivantes, qui sont également des services : Service de publipostage, Predictor et Gestionnaire de listes.

service d’authentification

Voir ressource CS Authentication.

service de publipostage Commerce Server

Ressource globale qui est également un service Windows 2000. Le service de publipostage exécute des campagnes de publipostage. Il traite des listes de destinataires, crée des corps de messages personnalisés à partir de pages Web ou de fichiers statiques et envoie des messages électroniques aux destinataires. Utilisez Commerce Server Manager pour configurer et gérer le service de publipostage et pour spécifier la chaîne de connexion à la base de données du service de publipostage. Le programme d’installation de Commerce Server installe le service de publipostage et la base de données du service de publipostage lors d’une installation de serveur Web ou complète, ou lorsque vous sélectionnez le service de publipostage lors d’une installation personnalisée.

Voir aussi : personalisation, base de données du service de publipostage

service de publipostage

Voir service de publipostage Commerce Server.

service Gestionnaire de listes

Service Windows 2000 qui exécute les tâches que vous spécifiez dans le module Gestionnaire de listes de Commerce Server Business Desk. Par exemple, vous pouvez créer, supprimer, importer, exporter, copier et fusionner des listes d’enregistrements utilisateur. Pour créer une liste, vous pouvez importer des données à partir de fichiers plats, d’une base de données SQL Server, du Data Warehouse ou de segments de la ressource Predictor. Vous pouvez exporter une liste vers un fichier plat ou une base de données SQL Server.

Voir aussi : ressource

services de transformation de données (DTS, Data Transformation Services)

Composant SQL Server utilisé pour importer, exporter et transformer des données provenant de différentes sources de données. Commerce Server fournit un ensemble de tâches DTS que vous pouvez utiliser pour importer des données dans le Data Warehouse de Commerce Server.

services Internet (IIS)

Services Windows 2000 qui prennent en charge la création, la configuration et la gestion de sites Web, ainsi que d’autres fonctions Internet. Vous devez installer IIS sur un serveur avant d’installer Commerce Server.

site

Dans Commerce Server Manager, conteneur pour les applications Commerce Server et les ressources de niveau site. Par exemple, le site Retail contient deux applications : le site Web entreprise-client et Business Desk Commerce Server entreprise-client, qui partagent les mêmes ressources de niveau site.

site entreprise-client

Site Web commercial conçu pour la vente au détail auprès du public. Également appelé site de vente au détail.

site entreprise-entreprise

Site Web commercial conçu pour la création et la transmission de bons de commande entre des entreprises ayant une relation établie. Également appelé site fournisseur.

site solution

Ensemble de fonctionnalités Commerce Server préconfigurées pour un scénario de site spécifique et regroupées dans un fichier de package. Le site solution Blank est inclus dans le coffret Commerce Server. Deux autres sites, Retail et Supplier, sont disponibles en ligne à l’adresse suivante : http://www.microsoft.com/commerceserver/solutionsites (en anglais). Chaque site solution est conçu pour être décompressé, puis personnalisé en fonction des besoins de votre site.

site Web

En règle générale, collection de fichiers et d’applications accessibles via une adresse Web, concernant un thème ou un sujet spécifique et gérés par une personne ou une organisation donnée. Un site Web réside sur des serveurs connectés au Web et fournit du contenu disponible dans le monde entier, 24 heures sur 24 et 7 jours sur 7. Les sites Web utilisent généralement le langage HTML pour mettre en forme et présenter les informations et pour fournir des fonctionnalités de navigation aux utilisateurs, leur permettant de se déplacer à l’intérieur du site et sur le Web. Du point de vue de l’administration des services Internet (IIS) 5.0, un site Web désigne un serveur virtuel (par exemple, le site Web par défaut). Un serveur virtuel est un ordinateur virtuel qui se trouve sur un serveur HTTP mais s’affiche à l’utilisateur comme un serveur HTTP distinct. Plusieurs serveurs virtuels peuvent se trouver sur un ordinateur, chacun d’entre eux étant capable d’exécuter ses propres programmes et disposant d’un accès individualisé aux dispositifs d’entrée et autres périphériques. Chaque serveur virtuel dispose d’un nom de domaine Internet et d’une adresse IP qui lui sont propres.

sponsor

Client qui paie pour exécuter des publicités dans certaines sections ou sur certaines pages d’un site, en demandant qu’aucune autre publicité n’y figure. Ces publicités sont prioritaires par rapport à toutes les autres, même par rapport aux publicités ciblées. Ces publicités sont souvent des messages intégrés à votre contenu de façon exclusive. Il peut s’agir par exemple de publicité de transition avec un message de type « proposé par ». Les pages et les cibles peuvent avoir des sponsors. Pour définir ce type de publicité, utilisez le module Groupes cibles Business Desk et spécifiez l’action du sponsor dans une expression de ciblage.

synthèse de segment

Dans le module Identification de segments, liste triée des principales propriétés qui caractérisent un segment.

T

tâche

Dans Commerce Server Business Desk, opération effectuée à partir d’une page d’action, entraînant souvent l’affichage d’une autre page d’action dans laquelle les détails de la tâche peuvent être effectués. Les tâches sont initiées en appuyant sur un bouton de tâche. Certaines tâches, comme les tâches de modification ou de suppression, dépendent du contexte : elles sont appliquées à l’élément sélectionné dans la page d’action actuelle.

taille du contenu

Hauteur et largeur (en pixels) de votre contenu. Vous pouvez définir de nouvelles tailles de contenu à l’aide du module Tables de références. Lorsque vous créez ou modifiez une taille de contenu, la mise à jour s’affiche dans la liste déroulante répertoriant les tailles de contenu, disponible dans le module Gestionnaire de campagnes.

taux de clics de publicité

Pourcentage de demandes de publicité qui ont entraîné un clic de publicité.

Voir aussi : clic de publicité, demande de publicité

test de la charge

Voir test de stress.

test de stress

Test effectué sur une application Commerce Server pour s’assurer qu’elle peut prendre en charge un certain nombre d’utilisateurs simultanés et supporter les pics d’utilisation, tout en maintenant le niveau de performance souhaité. Ce test est effectué à l’aide d’un outil de stress qui génère les charges définies par l’administrateur système pour simuler le schéma d’utilisation attendu pour le site. Également appelé test de charge.

texte de légende

Chaîne de texte qui s’affiche à la place d’une image lorsqu’une page Web se charge, lorsque les graphismes ne sont pas affichés ou lorsque l’utilisateur s’arrête sur l’image avec sa souris. Les utilisateurs qui ne disposent pas d’un navigateur graphique ou qui ont choisi de ne pas télécharger les graphismes peuvent utiliser ce texte de légende pour identifier le graphisme qui aurait dû s’afficher.

ticket

Chaîne de paires propriété/valeur utilisée pour stocker des informations d’authentification et d’autres informations concernant un utilisateur. Par exemple, « Identificateur d’utilisateur/JeanUtilisateur » est un ticket. Les données de ticket peuvent être stockées dans un cookie ou dans une chaîne de requête d’adresse URL.

Voir aussi : ticket d’authentification, cookie, ticket de profil

ticket d’authentification

Ticket créé par Commerce Server pour les utilisateurs inscrits. Également appelé ticket MSCSAuth.

Voir aussi : ticket, ticket de profil

ticket de profil

Ticket créé par Commerce Server pour les utilisateurs anonymes (invités). Également appelé ticket MSCSProfile.

Voir aussi : ticket d’authentification, ticket

ticket MSCSAuth

Voir ticket d’authentification

ticket MSCSProfile

Voir ticket de profil.

transaction

Groupe d’opérations enregistrées dans un journal afin de pouvoir être annulées en cas d’erreur. Commerce Server 2000 fournit des objets de pipeline qui prennent en charge les transactions.

tri des données

Méthode de décompression des données permettant de conserver ces données dans un emplacement de stockage et de les récupérer ultérieurement par décompression. Commerce Server utilise le tri des données pour conserver le contenu des objets Dictionary dans la base de données.

TRUSTe

Initiative indépendante à but non lucratif dont l’objectif est de gagner la confiance des utilisateurs d’Internet par la promotion des principes TRUSTe garantissant des pratiques loyales en matière de transmission d’informations. Microsoft est l’un des principaux acteurs du programme TRUSTe et applique le programme de confidentialité TRUSTe.

type de données

Définition d’un ensemble de données qui spécifie la plage de valeurs possibles pour l’ensemble. Des exemples de types de données sont : nombre, décimal et texte.

type de remise

Règle de tarification spécifique qui s’applique aux produits d’un catalogue personnalisé. Il existe trois types de types de remise : pourcentage de remise, remise fixe et prix explicite.

U

Unified Modeling Language

Langage de modélisation visuel pour les systèmes informatiques.

Uniform Resource Identifier (URI)

Identifie des points de contenu sur Internet. Un contenu peut être une page de texte, une vidéo, un fichier son, une image ou un programme. Le type d’URI le plus courant est l’adresse de page Web, également appelée Uniform Resource Locator (URL). Un URI comprend généralement le nom de fichier de la ressource, le nom de l’ordinateur sur lequel la ressource se trouve et le protocole utilisé pour y accéder. Par exemple, http://www.microsoft.com/sql/techinfo/security.htm.

Uniform Resource Locator (URL)

Adresse d’un fichier (ressource) accessible sur Internet. Le type de ressource dépend du protocole d’application Internet. Par exemple, pour le protocole HTTP (Hypertext Transfer Protocol) utilisé sur le Web, la ressource peut être une page HTML, un fichier image, un programme comme une application CGI ou une applet Java ou tout autre fichier pris en charge par le protocole HTTP. L’adresse URL contient le nom du protocole nécessaire pour accéder à la ressource, un nom de domaine qui identifie un ordinateur spécifique sur Internet et une description hiérarchique d’un emplacement de fichier sur cet ordinateur.

URI

Voir Uniform Resource Identifier (URI).

URL

Voir Uniform Resource Locator (URL).

URL pointée

Adresse URL que les utilisateurs voient lorsqu’ils cliquent sur un élément de votre site Web ou un message de publipostage.

utilisateur

Personne qui visite un site Commerce Server au moins une fois. Ce terme désigne toute personne qui clique sur le site, que cette personne soit inscrite ou non.

utilisateur anonyme

Utilisateur qui accède au contenu d’un site Web sans fournir de nom d’utilisateur ni de mot de passe. Parfois appelé utilisateur invité.

utilisateur inscrit

Visiteur d’un site Web qui fournit volontairement des informations personnelles, comme son nom, son adresse ou son numéro de téléphone. Ces informations sont transmises au serveur et peuvent être utilisées pour vous indiquer la proportion d’hommes et de femmes parmi vos clients, le nombre de personnes qui ont acheté certains produits, le nom des clients qui achètent systématiquement les mêmes produits, ainsi que d’autres détails spécifiques.

utilisateur non inscrit

Utilisateur qui visite un site Web et s’abstient volontairement de fournir les informations personnelles ou d’identification nécessaires à l’inscription.

V

valeur

Donnée attribuée à une propriété de profil. Par exemple, la propriété de profil Prénom peut avoir la valeur Jean.

valeur de code

Abréviation utilisée pour représenter des informations textuelles pour les propriétés, par exemple le pays, la région et le statut de la commande. Par exemple, WA est la valeur de code correspondant à l’état de Washington.

valeur de devise haute précision

Valeur de devise exprimée par un entier à 64 bits et mis à l’échelle 10 000, par opposition aux entiers à 32 bits utilisés dans Site Server 3.0 Édition Commerce. Dans Commerce Server 2000, le chiffre 6,90 FF est représenté par la valeur 69000. Les clés auxquelles une valeur de devise haute précision a été affectée ont le préfixe cy_. Par exemple, la version comportant une devise haute précision de la clé _oadjust_adjustedprice est _cy_oadjust_adjustedprice.

validation

Processus de finalisation d’un achat sur un site Web. Lorsqu’un utilisateur fait ses courses sur votre site Web, il peut sélectionner plusieurs articles et les enregistrer dans son panier d’achat. Une fois qu’il a terminé ses courses, l’utilisateur clique sur un bouton graphique ou un lien de validation qui affiche un formulaire en ligne lui permettant d’entrer son nom, son adresse de facturation, le type de paiement et les informations de livraison.

vente annexe

Classe de promotion permettant d’afficher des produits supplémentaires aux clients en créant des relations entre le produit affiché ou ajouté au panier et d’autres produits associés. Utilisez le Kit de développement de logiciel (SDK) Commerce Server 2000 pour ajouter des fonctionnalités d’offre de lancement et de vente croisée à votre site. Utilisez la ressource Predictor pour ajouter des fonctionnalités de vente croisée intelligente.

Voir aussi : vente croisée, vente croisée intelligente

vente croisée intelligente

Méthode permettant d’adapter de façon dynamique les recommandations de produits affichées aux utilisateurs en fonction de leurs comportements d’achat antérieurs et des produits qu’ils affichent ou ajoutent à leur panier. Utilisez la ressource Predictor pour ajouter des fonctionnalités de vente croisée intelligente à votre site Web.

Voir aussi : vente annexe, offre de lancement

vente croisée

Type spécifique de vente annexe qui propose à l’utilisateur un produit lié aux produits qui se trouvent déjà dans son panier. Utilisez le Kit de développement de logiciel (SDK) Commerce Server 2000 pour ajouter la fonctionnalité de vente croisée à votre site.

Voir aussi : vente annexe

vignette publicitaire

Publicité composée d’un texte affiché à côté de l’image correspondant à la publicité. Le texte peut être placé à gauche, à droite ou au-dessus de la vignette publicitaire.

visite

Série de demandes envoyées par un utilisateur. Une visite peut commencer de l’une des deux façons suivantes : l’utilisateur peut être amené sur un site via un lien ou bien il peut taper l’adresse URL du site dans son navigateur. La visite se termine lorsqu’aucune demande n’a été formulée sur le site pendant une période donnée (par défaut, 30 minutes).

volet de contenu

Dans Commerce Server Business Desk, fenêtre dans laquelle les pages d’action sont affichées.

volet de navigation

Dans Commerce Server Business Desk, fenêtre située dans la partie gauche d’une page de liste qui affiche la hiérarchie de catégories et de modules.

volet de recherche

Dans Commerce Server Business Desk, zone située dans la partie supérieure du volet de contenu du module dans une page de liste. Les critères de recherche sont entrés dans le volet de recherche. Ces critères sont ensuite utilisés par une tâche de recherche. En règle générale, la partie inférieure du volet de contenu du module contient un composant HTML ListSheet dans lequel les résultats de la tâche de recherche sont affichés.

volume

Moyen permettant de déterminer à quel moment un élément de la campagne doit être affiché, par rapport aux autres éléments de la campagne d’un même client. Dans une campagne marketing, le volume s’applique uniquement aux publicités dont le but quantitatif a été défini au niveau de la campagne. Pour les publicités maison, le volume est déterminé en fonction de toutes les autres publicités maison pour tous les clients et toutes les campagnes marketing. Pour les publicités payées, le volume est déterminé en fonction des autres publicités payées de la même campagne marketing. Pour déterminer quand les éléments de la campagne de remise sont affichés, vous utilisez la priorité et non le volume.

Voir aussi : publicité maison

W

Web farm

Plusieurs serveurs Web connectés ensemble afin de partager des ressources et la charge des demandes. En règle générale, une Web farm implique une prise en charge de l’équilibrage de la charge, de la tolérance de pannes et du basculement et s’affiche à l’utilisateur comme un serveur unique avec une adresse IP (Internet Protocol) unique. Également appelée groupe de serveurs ou cluster serveur.

Voir aussi : cluster, cluster serveur

Windows Script Host (WSH)

Environnement de script indépendant du langage pour les plates-formes Windows 32 bits, installé par défaut avec Windows 2000 et IIS. WSH peut être utilisé pour automatiser des tâches d’administration sur un serveur, à l’aide de n’importe quel langage de script.

WSH

Voir Windows Script Host (WSH).

X

XML

Voir Extensible Markup Language (XML).

Y

Aucune entrée de glossaire ne commence par cette lettre.

Z

Aucune entrée de glossaire ne commence par cette lettre.


Support en ligne

Informations et
support en ligne

* | Site Web Microsoft Commerce Server 2000 (en anglais)
* | Sites solutions Microsoft Commerce Server 2000 (en anglais)
* | Site Web des partenaires et éditeurs de logiciels Commerce Server 2000 (en anglais)
* | Site Web des services de support produit Microsoft
* | MSDN Online
* | MSDN Online Library (en anglais)
* | Site Web Microsoft COM (en anglais)
* | Site Web Microsoft SQL Server
* | Site Web Microsoft Accessibility (en anglais)


Copyright

Les informations contenues dans ce document, y compris les URL et autres références à des sites Web Internet, pourront faire l’objet de modifications sans préavis. Sauf mention contraire, les noms de sociétés, d’organisations, de produits, de personnes ou les événements mentionnés dans les exemples sont fictifs et toute ressemblance avec des noms ou des événements réels est purement fortuite et involontaire. L’utilisateur est tenu de respecter la réglementation relative aux droits d’auteur applicable dans son pays. Aucune partie de ce document ne peut être reproduite, stockée ou introduite dans un système de restitution, ou transmise à quelque fin ou par quelque moyen que ce soit (électronique, mécanique, photocopie, enregistrement ou autre) sans l’autorisation expresse et écrite de Microsoft Corporation.

Microsoft peut détenir des brevets, avoir déposé des demandes d’enregistrement de brevets ou être titulaire de marques, droits d’auteur ou autres droits de propriété intellectuelle portant sur tout ou partie des éléments qui font l’objet du présent document. Sauf stipulation expresse contraire d’un contrat de licence écrit de Microsoft, la fourniture de ce document n’a pas pour effet de vous concéder une licence sur ces brevets, marques, droits d’auteur ou autres droits de propriété intellectuelle.

© 1999-2000 Microsoft Corporation. Tous droits réservés.

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 et Windows NT sont soit des marques de Microsoft Corporation, soit des marques déposées de Microsoft Corporation aux États-Unis d’Amérique et/ou dans d’autres pays.

Les noms de sociétés et de produits mentionnés dans ce document sont des marques de leurs propriétaires respectifs.


Propriétés du publipostage, onglet Chaînes de connexion

Ce tableau répertorie les options et fonctions disponibles sous l’onglet Chaînes de connexion de la boîte de dialogue Propriétés du publipostage.

Utilisez ceci | Pour faire cela
Chaînes de connexion dans cette ressource | Sélectionner la chaîne de connexion pour le service de publipostage.
Description de la chaîne de connexion sélectionnée | Fournir une description de la chaîne de connexion sélectionnée.
Valeur de la chaîne de connexion sélectionnée | Fournir une valeur pour la chaîne de connexion sélectionnée.


Propriétés du publipostage, onglet Propriétés

Ce tableau répertorie les options et fonctions disponibles sous l’onglet Propriétés de la boîte de dialogue Propriétés du publipostage.

Utilisez ceci | Pour faire cela
Propriétés | Sélectionner le nom de la propriété.
Valeur de propriété sélectionnée | Entrer les valeurs de la propriété sélectionnée.
Description | Fournir une description de la propriété sélectionnée.