Sunday, July 24, 2016

ATG Repository Interview Questions and Answer

                       ATG Repository Q & A

Data-Types
1)      enumeration
<property name="orderSource" display-name="Order Source" data-type="enumerated"  default="DESKTOP" column-name="order_source"  category="Order Information">
                <attribute name="useCodeForValue" value="false"/>
        <option value="DESKTOP" code="101"/>
        <option value="MOBILE" code="102"/>
</property>

2)      list
<table name="onl_order_terms_conditions" type="multi" multi-column-name="sequence_num" id-column-name="order_id" shared-table-sequence="1">                              
                <property name="termsAndConditions" required="true" data-type="list" component-item-type="termsAndConditionsInfo" cascade="delete" column-name="terms_conditions_info_id" display-name="Terms And Conditions" category="Order Information">
                     <attribute name="propertySortPriority" value="219"/>
    </property>
</table>
                               
3)      map
<table name="onl_item_billing_info" type="multi" id-column-name="commerce_item_id" multi-column-name="billing_system">
                 <property name="billingInfoMap" category="Billing System Info" data-type="map" component-item-type="billingInfo" cascade="delete" column-name="billing_info_id" queryable="true">
                                  <attribute name="propertySortPriority" value="-2"/>
                 </property>
</table>             

4)      String

<item-descriptor name="billingInfo" display-name="Billing Info">
        <table name="onl_ord_billing_info" id-column-names="billing_info_id" type="primary">
            <property name="billCode" data-type="string" column-name="bill_code"/>
            <property name="systemName" data-type="string" column-name="system_name"/>
        </table>
</item-descriptor>

5)      Component
<property name="ssn" display-name="SSN" data-type="string" column-name="tssn" category="Customer Information" property-type="com. ecom.shopcore.repository.EncryptionPropertyDescriptor">
      <attribute name="propertySortPriority" value="20"/>
      <attribute name="encryptorComponent" bean=" /ecom/shopcore/commerce/order/OnlineOrderEncryptorComponent"/>
</property>
                               
<property name="sales" property-type="com.ecom.shopcore.repository.GetSalesRankPropertyDescriptor" item-type="skuSalesRank" hidden="false" repository=" /ecom/base/repositories/MiscellaneousRepository" category="Base SKU Information" writable="false" queryable="false">
                                <attribute name="salesRankManager" bean=" /ecom/shopcore/repository/SalesRankManager"/>
</property>      

6)      Repository
Rich way to organize and query data from multiple sources

7)      QueryBuilder
Step wise process where you get handle of Repository the repository item
More Java code
Repository > item descriptor > repository view > query builder > query > execute query

Repository profileRepository = (Repository)resolveName("/atg/userprofiling/ProfileAdaptorRepository")
RepositoryItemDescriptor userItem = profileRepository.getRepositoryItemDescriptor();
RepositoryView userView = userItem.getRepositoryView();
QueryBuilder userQueryBuilder = userView.getQueryBuilder();
Query allUserQuery = userQueryBuilder.createUnconstrainedQuery();
RepositoryItem[] allUsers = userView.executeQuery(allUserQuery)

8)      RQL Query Language     
query being configurable and also droplet support

Repository profileRepository = (Repository)resolveName("/atg/userprofiling/ProfileAdaptorRepository")
RepositoryItemDescriptor userItem = profileRepository.getItemDescriptor("user");
RepositoryView userView = userItem.getRepositoryView();
RqlStatement emailQuery = RqlStatement.parseRqlStatement("firstName EQUALS ?0 OR firstName EQUALS ?1");
Object[]params = new String[]{"anand", "jyothi"};

RepositoryItem[] results = emailQuery.executeQuery(userView,params);

No comments:

Post a Comment