cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync<?xml version="1.0" encoding="UTF-8" ?>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync<dr_custom_scripts>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <scr id="D36CE536-D575-BE5C-625F-23DE23913C6B" name="Complex rule - check comments demo" object="Table" engine="Mozilla Rhino" type="Warning" var="table" library="my first library" method="checkcomments" purpose="validation" >
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <![CDATA[var ruleMessage;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncvar errType;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncvar table;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncfunction checkcomments(object){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync result = true;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ruleMessage="";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(table.getCommentInRDBMS().equals("")){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ruleMessage="no comments in RDBMS defined";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync errType="Problem:";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync result = false;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(table.getComment().equals("")){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(ruleMessage.equals("")){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ruleMessage="no comments defined";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }else{
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ruleMessage= ruleMessage +" , no comments defined";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync errType="Error";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync return false;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync return result;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}]]>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </scr>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <scr id="0BAA564F-AB5F-D776-2E4F-31FDB3047F69" name="Tables to lower case - Rhino" object="relational" engine="Mozilla Rhino" type="" var="model" library="" method="" purpose="transformation" >
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <![CDATA[tables = model.getTableSet().toArray();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncfor (var t = 0; t<tables.length;t++){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table = tables[t];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync name = table.getName().toLowerCase();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table.setName(name);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync columns = table.getElements();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync size = table.getElementsCollection().size();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for (var i = 0; i < size; i++) {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column = columns[i];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync cname = column.getName().toLowerCase();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column.setName(cname);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table.setDirty(true);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync keys = table.getKeys();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for (var i = 0; i < keys.length; i++) {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync key = keys[i];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(!key.isFK()){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync kname = key.getName().toLowerCase();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync key.setName(kname);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }else{
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync kname = key.getFKAssociation().getName().toLowerCase();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync key.getFKAssociation().setName(kname);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync key.getFKAssociation().setDirty(true);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}]]>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </scr>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <scr id="B673F271-4836-DD48-15AC-487DDECCAF49" name="Tables to upper case - JRuby" object="relational" engine="JSR 223 JRuby Engine" type="" var="model" library="" method="" purpose="transformation" >
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <![CDATA[tables =$model.getTableSet().toArray()
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncfor t in 0..tables.length-1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table = tables[t]
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync name = table.getName().upcase
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table.setName(name)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync columns = table.getElements()
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync size = table.getElementsCollection().size()-1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for i in 0..size
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column = columns[i]
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync cname = column.getName().upcase
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column.setName(cname)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync end
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync keys = table.getKeys()
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for i in 0..keys.length-1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync key = keys[i]
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync kname = key.getName().upcase
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync key.setName(kname)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync end
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncend]]>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </scr>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <scr id="3E7C4F9E-9FCB-56C7-086F-F976F9A66384" name="Tables to upper case - JRuby - library usage" object="relational" engine="JSR 223 JRuby Engine" type="" var="model" library="Jruby lib" method="tables_up" purpose="transformation" >
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <![CDATA[def tables_up(model)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsynctables = model.getTableSet().toArray()
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncfor t in 0..tables.length-1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table = tables[t]
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync name = table.getName().upcase
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table.setName(name)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync columns = table.getElements()
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync size = table.getElementsCollection().size()-1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for i in 0..size
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column = columns[i]
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync cname = column.getName().upcase
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column.setName(cname)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync end
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync keys = table.getKeys()
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for i in 0..keys.length-1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync key = keys[i]
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync kname = key.getName().upcase
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync key.setName(kname)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync end
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncend
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncreturn true
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncend]]>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </scr>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <scr id="E60A5A28-BB9B-3787-10E7-259DF900B9E6" name="Table abbreviation to column" object="relational" engine="Mozilla Rhino" type="" var="model" library="" method="" purpose="transformation" >
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <![CDATA[tables = model.getTableSet().toArray();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncfor (var t = 0; t<tables.length;t++){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table = tables[t];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync abbr = table.getAbbreviation()+"_";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(!"_".equals(abbr)){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync columns = table.getElements();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for (var i = 0; i < columns.length; i++) {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column = columns[i];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync cname = column.getName();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(!cname.startsWith(abbr)){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column.setName(abbr+cname);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}]]>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </scr>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <scr id="9BE4E26C-36D8-A92C-ADEA-F183327DC239" name="Remove Table abbr from column" object="relational" engine="Mozilla Rhino" type="" var="model" library="" method="" purpose="transformation" >
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <![CDATA[tables = model.getTableSet().toArray();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncfor (var t = 0; t<tables.length;t++){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table = tables[t];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync abbr = table.getAbbreviation()+"_";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync count = table.getAbbreviation().length()+1;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(!"_".equals(abbr)){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync columns = table.getElements();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for (var i = 0; i < columns.length; i++) {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column = columns[i];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync cname = column.getName();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(cname.startsWith(abbr)){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column.setName(cname.substring(count));
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table.setDirty(true);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}]]>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </scr>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <scr id="23BE8827-D732-72B0-C6E6-266EFE116EDD" name="Table template" object="relational" engine="Mozilla Rhino" type="" var="model" library="" method="" purpose="transformation" >
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <![CDATA[var t_name = "table_template";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncvar p_name = "ctemplateID";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsynctemplate = model.getTableSet().getByName(t_name);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncif(template!=null){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync tcolumns = template.getElements();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync tables = model.getTableSet().toArray();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for (var t = 0; t<tables.length;t++){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table = tables[t];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync // compare name ignoring the case
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(!table.getName().equalsIgnoreCase(t_name)){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for (var i = 0; i < tcolumns.length; i++) {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column = tcolumns[i];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync col = table.getColumnByProperty(p_name,column.getObjectID());
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(col==null){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync col = table.createColumn();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column.copy(col);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync //set property after copy otherwise it'll be cleared
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync col.setProperty(p_name,column.getObjectID());
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table.setDirty(true);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}]]>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </scr>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <scr id="5A8A151A-13FD-4B0A-E233-E3C5126BA02C" name="Tables to upper case - Rhino" object="relational" engine="Mozilla Rhino" type="" var="model" library="" method="" purpose="transformation" >
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <![CDATA[tables = model.getTableSet().toArray();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncfor (var t = 0; t<tables.length;t++){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table = tables[t];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync name = table.getName().toUpperCase();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table.setName(name);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync columns = table.getElements();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync size = table.getElementsCollection().size();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for (var i = 0; i < size; i++) {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column = columns[i];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync cname = column.getName().toUpperCase();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column.setName(cname);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table.setDirty(true);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync keys = table.getKeys();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for (var i = 0; i < keys.length; i++) {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync key = keys[i];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(!key.isFK()){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync kname = key.getName().toUpperCase();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync key.setName(kname);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }else{
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync kname = key.getFKAssociation().getName().toUpperCase();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync key.getFKAssociation().setName(kname);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync key.getFKAssociation().setDirty(true);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}]]>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </scr>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <scr id="0528C35C-F29B-E7BB-57AC-37BA2780A98D" name="Table template - uses column name" object="relational" engine="Mozilla Rhino" type="" var="model" library="" method="" purpose="transformation" >
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <![CDATA[// version without usage of dynamic properties, columns are found by column name
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync// this allow reuse of already existing columns
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncvar t_name = "table_template";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsynctemplate = model.getTableSet().getByName(t_name);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncif(template!=null){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync tcolumns = template.getElements();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync tables = model.getTableSet().toArray();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for (var t = 0; t<tables.length;t++){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table = tables[t];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync // compare name ignoring the case
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(!table.getName().equalsIgnoreCase(t_name)){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for (var i = 0; i < tcolumns.length; i++) {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column = tcolumns[i];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync col = table.getElementByName(column.getName());
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(col==null){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync col = table.createColumn();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column.copy(col);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table.setDirty(true);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}]]>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </scr>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <scr id="6279C414-90DD-A52B-4CEB-8D49AB31DC10" name="Copy Comments to Comments in RDBMS" object="relational" engine="Mozilla Rhino" type="" var="model" library="" method="" purpose="transformation" >
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <![CDATA[max_length = 4000;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncfunction copyComments(object){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(object.getCommentInRDBMS().equals("")){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(!object.getComment().equals("")){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(object.getComment().length()>max_length){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync object.setCommentInRDBMS(object.getComment().substring(0, max_length));
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }else{
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync object.setCommentInRDBMS(object.getComment());
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync object.setDirty(true);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsynctables = model.getTableSet().toArray();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncfor (var t = 0; t<tables.length;t++){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table = tables[t]
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync copyComments(table);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync columns = table.getElements();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync size = table.getElementsCollection().size();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for (var i = 0; i < columns.length; i++) {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column = columns[i];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync copyComments(column);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync keys = table.getKeys();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for (var i = 0; i < keys.length; i++) {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync key = keys[i];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(!key.isFK()){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync copyComments(key);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }else{
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync copyComments(key.getFKAssociation());
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}]]>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </scr>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <scr id="7C4EDFC0-26EA-859C-DBD9-AC9345DEAF98" name="Create index on FK" object="relational" engine="Mozilla Rhino" type="" var="model" library="" method="" purpose="transformation" >
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <![CDATA[function getIndex(tab,cols){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync keys = tab.getKeys();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for (var i = 0; i < keys.length; i++) {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync index = keys[i];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(!(index.isPK() || index.isUnique()) && !index.isFK() && index.isIndexForColumns(cols)){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync return index
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync return null;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsynctables = model.getTableSet().toArray();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncfor (var t = 0; t<tables.length;t++){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table = tables[t];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync indexes = table.getKeys();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for (var i = 0; i < indexes.length; i++) {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync index = indexes[i];
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(index.isFK()){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync columns = index.getColumns();
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(columns.length>0){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync newIndex = getIndex(table,columns);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(newIndex==null){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync newIndex = table.createIndex()
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table.setDirty(true);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for (var k = 0; k < columns.length; k++){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync newIndex.add(columns[k]);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}]]>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </scr>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <lib id="B310E434-78AE-6AED-EA94-6808B0262483" name="my first library" engine="Mozilla Rhino" methods="checkcomments" >
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <![CDATA[var ruleMessage;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncvar errType;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncvar table;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncfunction checkcomments(object){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync result = true;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ruleMessage="";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(table.getCommentInRDBMS().equals("")){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ruleMessage="no comments in RDBMS defined";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync errType="Problem:";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync result = false;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(table.getComment().equals("")){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if(ruleMessage.equals("")){
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ruleMessage="no comments defined";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }else{
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ruleMessage= ruleMessage +" , no comments defined";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync errType="Error";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync return false;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync }
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync return result;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}]]>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </lib>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <lib id="2518F33A-DE50-9E1D-7216-DD2A0FD6B84C" name="Jruby lib" engine="JRuby Engine" methods="tables_up" >
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync <![CDATA[def tables_up(model)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsynctables = model.getTableSet().toArray()
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncfor t in 0..tables.length-1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table = tables[t]
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync name = table.getName().upcase
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync table.setName(name)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync columns = table.getElements()
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync size = table.getElementsCollection().size()-1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for i in 0..size
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column = columns[i]
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync cname = column.getName().upcase
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync column.setName(cname)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync end
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync keys = table.getKeys()
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for i in 0..keys.length-1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync key = keys[i]
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync kname = key.getName().upcase
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync key.setName(kname)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync end
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncend
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncreturn true
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncend]]>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </script>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync </lib>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync</dr_custom_scripts>