Le seguenti informazioni si applicano a Windows (301 byte) Le seguenti informazioni si applicano a AIX (307 byte) Le seguenti informazioni si applicano a Solaris (388 byte) Le seguenti informazioni si applicano a Linux (282 byte) Creazione manuale di uno spazio di ricerca di Product Advisor per lo spazio di ricerca separato

Il processo di creazione manuale di uno spazio di ricerca di Product Advisor richiede una richiede una buona conoscenza del sottosistema del catalogo e dello schema di database associato. Lo spazio di ricerca è costituito da tabelle di database aggiuntive contenenti informazioni estratte dalle seguenti tabelle standard di WebSphere Commerce:
Le seguenti informazioni si applicano a iSeries 400 (278 byte) Nota: Tali informazioni non sono valide per gli utenti iSeries. Invece, fare riferimento a creazione di uno spazio di ricerca di Product Advisor mediante un file XML.

I passi riportati di seguito sono richiesti per creare le tabelle di database necessarie per supportare le ricerche di Product Advisor. Nei seguenti passi verranno fornite istruzioni SQL di esempio per creare uno spazio di ricerca semplice costituito da tabelle, visualizzazioni e indici appropriati. Queste istruzioni includono dati, quali l'ID di categoria e prodotto, che dovranno essere sostituiti con i propri dati. Vengono visualizzati a scopo dimostrativo. Nei casi in cui un'istruzione SQL restituisce dati, in modo particolare quando questi dati vengono utilizzati come immissione in un passo successivo, i dati restituiti verranno visualizzati in grassetto, racchiusi tra parentesi quadre e seguiranno l'istruzione SQL.

Nota: Gli esempi in questo file sono specifici per DB2. Gli utenti Oracle possono fare riferimento al programma di utilità di esempio appropriato per le istruzioni SQL specifiche per Oracle.

  1. Stabilire una categoria per cui si desidera abilitare una ricerca di Product Advisor. Questo esempio utilizza la categoria "1".
  2. Elencare tutti gli attributi e i relativi tipi per la categoria. Emettere le seguenti istruzioni SQL per richiamare il numero ID univoco delle categorie:

    db2 "select distinct(attribute_id),language_id,attrtype_id,name       
         from attribute
         dove
         catentry_id in(select catentry_id from catgpenrel dove
         catgroup_id=1)
         order by attribute_id"

  3. Scegliere uno o più attributi comuni a tutti i prodotti della categoria. Ad esempio, 'Colore' del tipo Stringa e 'Dimensione' del tipo Numero.
  4. Creare uno spazio di ricerca con attributi del prodotto standard, ad esempio l'ID e la descrizione del prodotto, e l'utente definito degli attributi del prodotto specificati nel passo 3 (Colore e Dimensione).
    [Lo spazio di ricerca della Categoria 1 è costituito da ICT1, ICTDESC1, ICV1_NULL]
    Emettere le seguenti istruzioni SQL:

    db2 create table ICT1
                   ( PRRFNBR int not null,
                     PRNBR varchar(64) );
    db2 create table ICTDESC1
                   ( PRRFNBR int not null,
                     PRSDESC varchar(254),
                     AVAILABLE int not null,
                     PRTHMB varchar(254),
                     XMLDETAIL long varchar,
                     LANGUAGE_ID int not null,
                     F_COLOR char(254),
                     F_SIZE int,
                     Constraint ictd1_pk
                     primary key (prrfnbr,language_id) );
    db2 create view  ICV1_NULL as select ic.prrfnbr,
                                      ic.prnbr,
                                      icd.PRSDESC,
                                      icd.AVAILABLE,
                                      icd.PRTHMB,
                                      icd.XMLDETAIL,
                                      icd.LANGUAGE_ID,
                                      icd.F_COLOR,
                                      icd.F_SIZE,
                                      p.ipsgnbr,
                                      p.storeid,
                                      p.ppprc,
                                      p.setccurr
                               from ICTPRICES p, ICT1 ic, ICTDESC1 icd
                               where ic.PRRFNBR=p.CATENTRY_ID and
                                     ic.PRRFNBR=icd.PRRFNBR and
                                     p.IPSGNBR is NULL;

  5. Uno spazio di ricerca esiste per una categoria quando nella tabella ICROOTCAT è presente una riga per tale categoria. Inserire meta dati per lo spazio di ricerca creato. Emettere le seguenti istruzioni SQL:

    db2 "insert into icrootcat
         (rootcategoryid,catgroup_id,pfpasync,pfreq,tablename,
          lastmodified)
         values
         (1,1,0,1,'ICV1_','2000-06-15-14.48.25.686000')"

  6. Nella tabella ICEXPLFEAT è presente una riga per ciascun attributo che è possibile ricercare. Il valore FEATUREID può essere ottenuto dalla tabella KEYS.
    Emettere le seguenti istruzioni SQL per inserire meta dati per ciascun attributo del prodotto definito dall'utente:

    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (1, 1,'F_COLOR',254,'com.ibm.commerce.datatype.DsString',
          0,1,1,1,0);
    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (2, 1,'F_SIZE',4,'com.ibm.commerce.datatype.DsInteger',
          0,1,1,1,0);

  7. Inserire meta dati per ciascun attributo del prodotto standard. Emettere le seguenti istruzioni SQL, che non dovrebbero richiedere modifiche:

    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (3, 1,'PRRFNBR',4,'com.ibm.commerce.datatype.DsInteger',
          1,0,0,1,0);
    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (4,1,'PRNBR',254,'com.ibm.commerce.datatype.DsString',
          0,0,0,1,0);
    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (5, 1,'PRSDESC',254,'com.ibm.commerce.datatype.DsString',
          0,1,3,1,0);
    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (6, 1,'PRTHMB',254,'com.ibm.commerce.datatype.DsImage',
          0,1,3,1,0);
    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (7, 1,'XMLDETAIL',32700,'com.ibm.commerce.datatype.DsURLLink',
          0,1,3,1,0);
    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (8, 1,'PPPRC',16,'com.ibm.commerce.datatype.DsCurrency',
          0,0,2,1,0);
    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (9, 1,'AVAILABLE',4,'com.ibm.commerce.datatype.DsInteger',
          0,0,3,1,0);

  8. La tabella ICEXPLDESC presenta una riga per ciascun attributo che può essere ricercato in ciascuna lingua supportata. Emettere le seguenti istruzioni SQL per inserire meta dati per ciascuna lingua di ciascun attributo prodotto definito dall'utente. Il valore per la colonna NAME deve corrispondere al valore della colonna NAME della tabella ATTRIBUTE.

    db2 "insert into icexpldesc (featureid,language_id,name,
          unitofmeasure,description,elaboration,scale,precision)
         values
         (1, 1,'Color','','Color',NULL,0,0);
    db2 "insert into icexpldesc (featureid,language_id,name,
          unitofmeasure,description,elaboration,scale,precision)
         values
         (2, 1,'Size','','Size',NULL,0,0);

  9. Inserire meta dati per ciascuna lingua di ciascun attributo prodotto standard. La colonna DESCRIPTION deve essere tradotta per ciascuna lingua.

    db2 "insert into icexpldesc (featureid,language_id,name,
          unitofmeasure,description,elaboration,scale,precision)
         values
         (3, 1,'CATENTRY_ID','','Product Reference Number',NULL,0,0);
    db2 "insert into icexpldesc (featureid,language_id,name,
          unitofmeasure,description,elaboration,scale,precision)
         values
         (4, 1,'PARTNUMBER','','ProductNumber/SKU',NULL,0,0);
    db2 "insert into icexpldesc (featureid,language_id,name,
          unitofmeasure,description,elaboration,scale,precision)
         values
         (5, 1,'SHORTDESCRIPTION','','Short Description',NULL,0,0);
    db2 "insert into icexpldesc (featureid,language_id,name,
          unitofmeasure,description,elaboration,scale,precision)
         values
         (6, 1,'THUMBNAIL','','Thumbnail Image File',NULL,0,0);
    db2 "insert into icexpldesc (featureid,language_id,name,
          unitofmeasure,description,elaboration,scale,precision)
         values
         (7, 1,'XMLDETAIL','','XML Detail',NULL,0,0);
    db2 "insert into icexpldesc (featureid,language_id,name,
          unitofmeasure,description,elaboration,scale,precision)
         values
         (8, 1,'STANDARDPRICE','','MSRP',NULL,2,15);
    db2 "insert into icexpldesc (featureid,language_id,name,
         unitofmeasure,description,elaboration,scale,precision)
         values
         (9, 1,'AVAILABLE','','Availability',NULL,0,0);

  10. Estrarre dati da CATENTRY in ICT1. Emettere i seguenti comandi SQL:

    db2 "insert into ict1 (select catentry_id,partnumber
         from catentry where catentry_id in (select catentry_id
         from catgpenrel where catgroup_id=1))"
    db2 "import from catentry.del of del insert into ict1"

  11. Estrarre dati da CATENTDESC in ICTDESC1. Le seguenti operazioni vanno eseguite per ciascuna lingua. L'esempio riportato di seguito è per la lingua inglese. Emettere i seguenti comandi SQL:

    db2 "insert into ictdesc1 (PRRFNBR,PRSDESC,AVAILABLE,
         PRTHMB,XMLDETAIL,LANGUAGE_ID)
         (select c2.catentry_id,c2.shortdescription,c2.available,
         c2.thumbnail, c2.xmldetail, c2.language_id
         from catentry c1, catentdesc c2
         where c1.catentry_id=c2.catentry_id
         and c2.language_id=-1
         and c2.published=1
         and (c2.catentry_id in (select catentry_id from catgpenrel
         where catgroup_id=1)))"

  12. Estrarre dati da ATTRVALUE per ciascuna lingua, per ciascun attributo prodotto definito dall'utente in ICTDESC1. Le seguenti operazioni vanno eseguite per ciascuna lingua. L'esempio riportato di seguito è per la lingua inglese.  Emettere i seguenti comandi SQL:

    db2 "update ictdesc1 set F_Color =
         (select stringvalue from attrvalue
         where ictdesc1.prrfnbr=attrvalue.catentry_id
         and ictdesc1.language_id=attrvalue.language_id
         and attrvalue.attribute_id in
         (select attribute_id from attribute
         where name = 'Color')
         and attrvalue.language_id=-1
         and attrvalue.catentry_id in
         (select catentry_id from catgpenrel
         where catgroup_id=1))
         where language_id=-1"

    db2 "update ictdesc1 set F_Size =
         (select integervalue from attrvalue
         where ictdesc1.prrfnbr=attrvalue.catentry_id
         and ictdesc1.language_id=attrvalue.language_id
         and attrvalue.attribute_id in
         (select attribute_id from attribute
         where name = 'Size')
         and attrvalue.language_id=-1
         and attrvalue.catentry_id in
         (select catentry_id from catgpenrel
         where catgroup_id=1))
         where language_id=-1"

  13. Estrarre i prezzi del prodotto dalla tabella OFFERPRICE e importarli nella tabella ICTPRICES. Deve essere presente un prezzo per ciascun prodotto in ciascuna valuta.

    db2 "insert into ictprices(storeid, catentry_id,setccurr,ppprc)
         select storeent_id, catentry_id, currency, price
         from storeent, offer, offerprice,tradeposcn
         where storeent_id=0
         and tradeposcn_id=offer.tradeposcn_id
         and offer.offer_id=offerprice.offer_id
         and tradeposcn.type='S'"

Argomenti correlati

Attività correlate

IBM copyright