Skip to main content

Import xml data into BCC with startSQLImport

Sometimes you need to ingest product catalog versioned data (or any other data) into BCC and be able to publish as a project, for that, startSQLImport has been added to ATG to ease your life, this post is based on a previous one about startSQLRepository approach , feel free to look for any additional questions you may have or in case you want to explore that option.

Information for configuring it is out there on Oracle docs, however, there are some tricks you might be missing, I'm going to detail steps for getting it up.

First of all, make sure you read through Oracle's documentation:
https://docs.oracle.com/cd/F25148_01/Platform.11-3-2/ATGContentAdminProgGuide/html/s0513startsqlimport01.html

Configure your datasources for database access

In order to get started with the utility you need to configure the FakeXADataSource component to allow the utility to connect to your database, you can see documentation from Oracle in  here . Let's get into detail:

Create a new server on your ATG installation along with the necessary folders for datasource configuration:

mkdir -p $ATG_ROOT/home/servers/startSQL-import/localconfig/atg/dynamo/service/jdbc

The default datasource is JTDataSource, so we will create an override for it with the values as suggested by Oracle's documentation:

vi $ATG_ROOT/home/servers/startSQL-import/localconfig/atg/dynamo/service/jdbc/JTDataSource.properties

And paste these values:

$class=atg.service.jdbc.MonitoredDataSource
min=10
max=20
blocking=false
maxFree=-1
loggingSQLWarning=false
loggingSQLDebug=false
loggingSQLInfo=false
dataSource=/atg/dynamo/service/jdbc/DirectJTDataSourceFakeXA
loggingSQLError=true

As you can see in the dataSource property, it points to a FakeXA component which specifies the database connection, so create a file like:

vi  $ATG_ROOT/home/servers/ startSQL-import/localconfig/atg/dynamo/service/jdbc/DirectJTDataSourceFakeXA.properties

And paste these values, notice I have ojdbc driver in this example:

$class=atg.service.jdbc.FakeXADataSource
server=localhost:1521:orcl
user=<the_pub_user>
needsSeparateUserInfo=false
URL=jdbc:oracle:thin:@localhost:1521:orcl
readOnly=true
password=<the_pub_user_password>
database=
driver=oracle.jdbc.xa.client.OracleXADataSource

Note: If you happen to have any problems related to missing driver, you can add it to the CLASSPATH in  $ATG_ROOT/home/localconfig/postEnvironment.sh

That will setup the connection for PUB schema, this is all you need, you might still see errors when the component is started and starts loading all necessary components, that's mostly because of other DataSources components point to OOTB configs, but keep an eye on the errors in case there is something not datasource-related, however, all this is Ok if all you want is to publish to BCC then you're covered with this single data source override.

Run the utility

This is a basic command you can use to use the utility:
$ATG_ROOT/home/bin/startSQLRepository.sh -m DCS.Versioned -s startSQL-import -import import.xml -project startSQLImportTest -user admin -repository "/atg/commerce/catalog/ProductCatalog"

A very brief explanation on what the above does:

  • -m DCS.Versioned -> This is for loading the DCS.Versioned module, which contains the catalog related components required for versioned items.
  • -s startSQL-import -> This is for using a server name startSQL-import for components override
  • -import import.xml -> The file with the xml operations to be processed, check here for more details on the format of the file
  • -project startSQLImportTest -> The name of the project to be created in BCC
  • -user admin -> The user with which the project will be created
  • -repository "/atg/commerce/catalog/ProductCatalog"  -> This is optional if you define your repository definition in the -import file, however, if you define it it will be used as the default repo if no definition is found

Note: If you have custom or extended repositories that you're going to make use of, make sure to add the corresponding repository definitions in your "startSQL-import" server, or within the -import xml file

Have a nice day!

Comments

Popular posts from this blog

Fix broken sequence on parent-child relationship tables for PUB schema

Whenever you find an error like this (for category-product relationship for example) ERROR [nucleusNamespace.atg.commerce.catalog.ProductCatalog-ver]  Error reading list or array index from the database. Expected: "0", got "1". The following property was not read: " {fixedChildProducts,pType=List,IDesc=[ItemDesc: category],table=dcs_cat_chldprd,cols=child_prd_id   ,pBI=atg.beans.MergedDynamicBeanInfo@5409e0ad,pIDesc=null   ,cType=interface atg.repository.RepositoryItem,cBI=[ItemDesc: product],cIDesc=[ItemDesc: product],colHandle=null}", for item id: "2350:36". This means the data base table holding this property does not have sequential integers starting with 0 in its multi-column. This should only happen if the database table was modifie d directly (outside of Dynamo).: java.lang.Exception It means sequence_num column doesn't contain a consecutive sequence number for the category on all of its products, this is, if category has

BCC Project Details With SQL Queries

Troubleshooting BCC projects can sometimes be a little tedious if you have to deal with the UI (someone mentioned flash?) while sifting through project assets, sometimes you just want to check if an asset exists on a given project, in what project was an asset updated, the history of a project, etc. etc. While BCC does a good job at presenting such data, sometimes it can get stuck depending on the number of assets it has or even the system resources. Feel free to use the following queries to soothe your pain a little bit:.

Configure LDAP SSO for BCC and Endeca Workbench

If you want to setup your BCC with a SSO server along with LDAP validation you can follow the next steps, this is all for OOTB configs: LDAP In Memory Server Feel free to clone and build:  https://github.com/kwart/ldap-server Then you can start it with:  java -jar ldap-server.jar -b 127.0.0.1 -p 10389 ldap_test.ldif Lastly, you can validate connectivity with this command:  ldapsearch -h localhost -p 10389 -x -D "uid=admin,ou=system" -w secret Just make sure that you defined user and organization appropriately. CIM Setup SSO Run <ATG_ROOT>/home/bin/cim.sh Select options as follows: Platform-Guided Search Integration [8] Content Administration Choose Commerce AddOns: [4] Single Sign On (SSO) [D] Done [1] Commerce Only SSO Authentication [1] LDAP Server Authentication [1] Non-Switching Datasource Don't include demo application [2] Index by Product [A] Select Application Server [2] Weblogic Enter Weblogic home path: /your/weblogic/wlserver/path Enter domain path: /your/