Datadeploy replicants used in tabs

I am trying to set up a datadeployment but I am not having any luck and would appreciate any help.

 

I think if I could just more than one root-group it would make this easier. I am using tabs in the DCT to hold the information on different items (doc enclosed):

 

 

<root>
<product_type>mutualfunds</product_type>
<fund_name>Fund Name</fund_name>
. . .
<overview>
<share_class>FS-1055, FS-100</share_class>
<page_name>TABoverview</page_name>
<disclosure_text_id>100</disclosure_text_id>
<disclosure_id>-8522</disclosure_id>
</overview>
. . .
<port_char>
<share_class>FS-79, FS-1055</share_class>
<page_name>TABportfolioCharacteristics</page_name>
<disclosure_text_id>104</disclosure_text_id>
<disclosure_id>-721</disclosure_id>
</port_char>
</root>

I got this to work so far...but I'm hoping there is a cleaner solution:

 

<deployment name="disclosure_tab_location">
        <source>
            <teamsite-templating-records include-extended-attributes="yes" options="wide" area="$src" custom="yes">
                <path filelist="$flist"/>
            </teamsite-templating-records>
        </source>
        <filter use="disclosure_tab_filter"/>
        <destinations>
            <database use="$db" update-type="standalone" state-field="state" delete-tracker="yes" >
                <dbschema>

                    <group name="testmainoverview" table="atestmainoverview" root-group="yes">
                       <attrmap>
                            <column name="CONTENT_ID" data-type="NUMBER" allows-null="no" value-from-field="TeamSite/Metadata/content_id" />
                            <column name="FUND_NAME" data-type="VARCHAR2(255)" allows-null="yes" value-from-field="root/0/fund_name/0"/>
                            <column name="WEBSITE" data-type="VARCHAR2(100)" allows-null="yes" value-from-field="root/0/website/0"/>
                            <column name="SECTION" data-type="VARCHAR2(100)" allows-null="yes"    value-from-field="root/0/product_type/0"/>
                       </attrmap>
                       <keys>
                          <primary-key>
                                <key-column name="CONTENT_ID" />
                                <key-column name="SECTION" />
                                <key-column name="WEBSITE" />
                        </primary-key>
                       </keys>
                    </group>
                    
                    <group name="testoverview" table="atestOVERVIEW" root-group="no">
                        <attrmap>
                            <column name="CONTENT_ID" data-type="NUMBER" allows-null="no" value-from-field="TeamSite/Metadata/content_id" />
                            <column name="OVERVIEW_ID" data-type="NUMBER" allows-null="no" is-replicant="yes" value-from-field="root/0/overview/[0-20]/disclosure_text_id/0"/>
                        </attrmap>
                        <keys>
                            <primary-key>
                                <key-column name="CONTENT_ID"/>
                                <key-column name="OVERVIEW_ID"/>

                            </primary-key>
                        </keys>
                        <foreign-key parent-group="testmainoverview" ri-constraint-rule="ON DELETE CASCADE">
                                <column-pair parent-column="CONTENT_ID" child-column="CONTENT_ID"/>
                        </foreign-key>
                    </group>   

                    <group name="testoverviewdetail" table="atestOVERVIEWDETAIL" root-group="no">
                        <attrmap>
                            <column name="CONTENT_ID" data-type="NUMBER" allows-null="no" value-from-field="TeamSite/Metadata/content_id" />    
                            <column name="SORT_ORDER" data-type="NUMBER" value-from-field="not-used" allows-null="no" replicant-order-column="yes"/>
                            <column name="OVERVIEW_ID" data-type="NUMBER" allows-null="no" is-replicant="yes" value-from-field="root/0/overview/[0-20]/disclosure_text_id/0"/>
                            <column name="MESSAGE_ID" data-type="NUMBER" allows-null="no" is-replicant="yes" value-from-field="root/0/overview/[0-20]/disclosure_id/0"/>
                            <column name="COMBINED_ID" data-type="VARCHAR2(50)" allows-null="no" is-replicant="yes" list-to-replicant="yes"
                                list-field="root/0/overview/[0-20]/share_class/0"
                                value-from-field="root/0/overview/[0-20]/share_class/[0-99]/share_class"/>
                        </attrmap>
                        <keys>
                            <primary-key>
                                <key-column name="CONTENT_ID"/>
                                <key-column name="OVERVIEW_ID"/>
                                <key-column name="MESSAGE_ID"/>
                                <key-column name="COMBINED_ID"/>
                            </primary-key>
                        </keys>
                        <foreign-key parent-group="testoverview" ri-constraint-rule="ON DELETE CASCADE">
                                <column-pair parent-column="CONTENT_ID" child-column="CONTENT_ID"/>
                        </foreign-key>
                    </group>  

 

 

 Thanks

 

Comments

  • The Real issue with replicant is that, when data deploying, DD creates a cartesian product of the nested replicant. Now the problem is if you have too many nested replicant the cartesian product is a huge number (imagine you want to update only couple of hundred records, but due to cartesian product data deploy expect probably hundreds of thousands to a million row update). Therefore you have high CPU consumptions and also a large pool of jvm memory wasted. Check the need for the replicant size in the DD CFG. Try to reduce unwanted replicant size and you will see a large difference in performance. Hope this helps.
     
     

    Right off the bat, you have allows-null="no" but have required="f"

    That will always cause problems,

    Andy Knipp


TeamSite Developer Resources

  • Docker Automation

  • LiveSite Content Services (LSCS) REST API

  • Single Page Application (SPA) Modules

  • TeamSite Add-ons

If you are interested in gaining full access to the content, you can register for a My Support account here.
image
OpenText CE Products
TeamSite
APIs