var isDifferent = false; var tempStructDataA = Duplicate(arguments.structDataA); var tempStructDataB = Duplicate(arguments.structDataB); var isEqual = compareStructData(structDataA=tempStructDataA,structDataB=tempStructDataB,excludeKeyList=arguments.excludeKeyList,objectFieldKeyList=arguments.objectFieldKeyList); if ( NOT isEqual ) isDifferent = true; return isDifferent; var isEqual = false; var i=1; var currentKey = ""; var dataAObjectValue = ""; var dataBObjectValue = ""; // Remove the Primary Keys before doing compare for ( i=1;i LTE ListLen(arguments.excludeKeyList);i=i+1 ) { currentKey = ListGetAt(arguments.excludeKeyList,i); if ( LEN(TRIM(currentKey)) ) { if ( StructKeyExists(arguments.structDataA,currentKey) ) StructDelete(arguments.structDataA,currentKey); if ( StructKeyExists(arguments.structDataB,currentKey) ) StructDelete(arguments.structDataB,currentKey); } } // Loop over the object fields to compare them individually for ( i=1;i LTE ListLen(arguments.objectFieldKeyList);i=i+1 ) { currentKey = ListGetAt(arguments.objectFieldKeyList,i); if ( LEN(TRIM(currentKey)) ) { // Compare the object fields if ( isJSON(arguments.structDataA[currentKey]) AND isJSON(arguments.structDataB[currentKey]) ) { // Set into variables to run the comparison dataAObjectValue = deserializeJSON(arguments.structDataA[currentKey]); dataBObjectValue = deserializeJSON(arguments.structDataB[currentKey]); // If not equal, then end all the remaining comparisons if ( NOT dataAObjectValue.EQUALS(dataBObjectValue) ) return false; } // If not equal, then remove from the structs for the final compare if ( StructKeyExists(arguments.structDataA,currentKey) ) StructDelete(arguments.structDataA,currentKey); if ( StructKeyExists(arguments.structDataB,currentKey) ) StructDelete(arguments.structDataB,currentKey); } } // Check the entire object because it is faster. if ( arguments.structDataA.EQUALS(arguments.structDataB) ) isEqual = true; return isEqual; var retStr = arguments.list; if ( NOT listFindNoCase(arguments.list,arguments.value,arguments.delimiters) ) retStr = listAppend(arguments.list,arguments.value,arguments.delimiters); return retStr; var findStr = "<[^>]*>"; return REREPLACE(arguments.str,findStr,arguments.replaceStr,'all'); return server.commonspot.udf.html.unescape(arguments.str); var bad_chars="#chr(47)#,#chr(92)#,#chr(42)#,#chr(38)#,#chr(37)#,#chr(36)#,#chr(191)#,#chr(198)#,#chr(199)#,#chr(208)#,#chr(209)#,#chr(221)#,#chr(222)#,#chr(223)#,#chr(230)#,#chr(231)#,#chr(240)#,#chr(241)#,#chr(247)#,#chr(248)#,#chr(253)#,#chr(254)#,#chr(255)#"; var good_chars="#chr(45)#,#chr(45)#,#chr(45)#,#chr(45)#,#chr(45)#,#chr(45)#,#chr(45)#,#chr(65)#,#chr(67)#,#chr(68)#,#chr(78)#,#chr(89)#,#chr(73)#,#chr(66)#,#chr(97)#,#chr(99)#,#chr(111)#,#chr(110)#,#chr(45)#,#chr(111)#,#chr(121)#,#chr(49)#,#chr(121)#"; var scrubbed=""; var b = "0"; // A's for (b = 192; b LTE 197; b++) { bad_chars=listAppend(bad_chars,CHR(b)); good_chars=listAppend(good_chars,"A"); } // a's for (b = 224; b LTE 229; b++) { bad_chars=listAppend(bad_chars,CHR(b)); good_chars=listAppend(good_chars,"a"); } // E's for (b = 200; b LTE 203; b++) { bad_chars=listAppend(bad_chars,CHR(b)); good_chars=listAppend(good_chars,"E"); } // e's for (b = 232; b LTE 235; b++) { bad_chars=listAppend(bad_chars,CHR(b)); good_chars=listAppend(good_chars,"e"); } // I's for (b = 204; b LTE 207; b++) { bad_chars=listAppend(bad_chars,CHR(b)); good_chars=listAppend(good_chars,"I"); } // i's for (b = 236; b LTE 239; b++) { bad_chars=listAppend(bad_chars,CHR(b)); good_chars=listAppend(good_chars,"i"); } // 0's for (b = 210; b LTE 216; b++) { bad_chars=listAppend(bad_chars,CHR(b)); good_chars=listAppend(good_chars,"O"); } // o's for (b = 242; b LTE 246; b++) { bad_chars=listAppend(bad_chars,CHR(b)); good_chars=listAppend(good_chars,"o"); } // U's for (b = 217; b LTE 220; b++) { bad_chars=listAppend(bad_chars,CHR(b)); good_chars=listAppend(good_chars,"U"); } // u's for (b = 249; b LTE 252; b++) { bad_chars=listAppend(bad_chars,CHR(b)); good_chars=listAppend(good_chars,"u"); } if ( arguments.fileName eq "" ) return ""; else return replace(replace(ReplaceList(trim(arguments.fileName), bad_chars, good_chars)," ","_","all"),"'","","all"); var qResult = queryNew("null"); var qColumnsList = arguments.query.columnList; var orderCol = ""; var orderTypeDefaults = "asc,desc"; var orderTypeOption = ""; if ( ListFindNoCase(qColumnsList,arguments.columnName) ) orderCol = arguments.columnName; if ( ListFindNoCase(orderTypeDefaults,arguments.orderType) ) orderTypeOption = arguments.orderType; SELECT #qColumnsList# FROM arguments.query ORDER BY #orderCol# #orderTypeOption# var qResult = queryNew("null"); var qColumnsList = arguments.query.columnList; var orderItem = ""; var columnTypesAllowed = "varchar,numeric,date"; var columnTypeOverride = ""; var n = 1; var newCol = ""; var newColList = ""; var criteriaValue = ""; var logSQL = (structKeyExists(Request.Params,"adfLogQuerySQL") and Request.Params.adfLogQuerySQL eq 1); var logMsg = ""; var createQueryResult = ''; // If a columnType is passed in set it as the override Column Type if ( ListFindNoCase(columnTypesAllowed,arguments.columnType) ) columnTypeOverride = arguments.columnType; // Protect against reserved words or columns with spaces query column names for ( n=1; n LTE ListLen(qColumnsList); n=n+1 ) { newCol = "[" & ListGetAt(qColumnsList,n) & "]"; newColList = ListAppend(newColList,newCol); } // A saftey catch so there is always a custom sort ORDERCOLUMNNAME defined if ( LEN(TRIM(arguments.orderColumnName)) EQ 0 ) arguments.orderColumnName = "recSortCol"; // Also make sure the ORDERCOLUMNNAME is unique and not one of the query columns if ( ListFindNoCase(qColumnsList,arguments.orderColumnName) ) arguments.orderColumnName = "xNew" & arguments.orderColumnName; SELECT #newColList#, #orderItem# AS [#arguments.orderColumnName#] FROM arguments.query WHERE [#arguments.columnName#] = WHERE CAST([#arguments.columnName#] AS DATE) = CAST( AS DATE) WHERE LOWER([#arguments.columnName#]) = UNION ORDER BY [#arguments.orderColumnName#] // if the right 2 digits are 11, 12, or 13, set number to them. // Otherwise we just want the digit in the one's place. var two=Right(arguments.number,2); var ordinal=""; switch(two) { case "11": case "12": case "13": { arguments.number = two; break; } default: { arguments.number = Right(arguments.number,1); break; } } // 1st, 2nd, 3rd, everything else is "th" switch(arguments.number) { case "1": { ordinal = "st"; break; } case "2": { ordinal = "nd"; break; } case "3": { ordinal = "rd"; break; } default: { ordinal = "th"; break; } } // return the text. return ordinal; return cardinalToOrdinal(NumberAsString(number)); var resultString = ""; // Generated result to return var lastCardinal = ""; // Last word in cardinal number string var TempNum = 0; // temp integer var cardinalSpecialStrings = "One,one,Two,two,Three,three,Four,four,Five,five,Six,six,Eight,eight,Nine,nine,Twelve,twelve"; var ordinalSpecialStrings = "First,first,Second,second,Third,third,Fourth,fourth,Fifth,fifth,Sixth,sixth,Eighth,eighth,Ninth,ninth,Twelfth,twelfth"; arguments.cardinalString = trim(arguments.cardinalString); lastCardinal = listLast(arguments.cardinalString," "); resultString = ListDeleteAt(arguments.cardinalString,ListLen(arguments.cardinalString," ")," "); // Is lastCardinal a special case? TempNum = listFindNoCase(cardinalSpecialStrings,lastCardinal); if (TempNum GT 0) { resultString = ListAppend(resultString,ListGetAt(ordinalSpecialStrings,TempNum)," "); } else { if (ListFindNoCase(Right(lastCardinal,2),"en")) { // Last word ends with "en", add "th" resultString = ListAppend(resultString,lastCardinal & "th"," "); } if (ListFindNoCase(Right(lastCardinal,1),"d")) { // Last word ends with "d", add "th" resultString = ListAppend(resultString,lastCardinal & "th"," "); } if (ListFindNoCase(Right(lastCardinal,1),"y")) { // Last word ends with "y", delete "y", add "ieth" resultString = ListAppend(resultString, Left(lastCardinal,Len(lastCardinal) - 1) & "ieth"," "); } if (ListFindNoCase(Right(lastCardinal,3),"ion")) { // Last word ends with "ion", add "th" resultString = ListAppend(resultString,lastCardinal & "th"," "); } } return resultString; var isDifferent = true; var listDifferences = listDiff(list1=arguments.list1,list2=arguments.list2,delimiters=arguments.delimiters); if ( ListLen(listDifferences, arguments.delimiters) EQ 0 ) isDifferent = false; return isDifferent; var listReturn = ""; var position = 1; var value = ""; //checking list1 for ( position = 1; position LTE ListLen(arguments.list1,arguments.delimiters); position = position + 1 ) { value = ListGetAt(arguments.list1, position , arguments.delimiters); if ( ListFindNoCase(arguments.list2, value , arguments.delimiters) EQ 0 ) listReturn = ListAppend(listReturn, value , arguments.delimiters ); } //checking list2 for ( position = 1; position LTE ListLen(arguments.list2,arguments.delimiters); position = position + 1 ) { value = ListGetAt(arguments.list2, position , arguments.delimiters); if ( ListFindNoCase(arguments.list1, value , arguments.delimiters) EQ 0 ) listReturn = ListAppend(listReturn, value , arguments.delimiters ); } return listReturn; var verifyDB = ''; var verifySourceDB = QueryNew("temp"); var datasourse = arguments.datasourseName; var dbType = arguments.databaseType; var selectFromTable = "INFORMATION_SCHEMA.TABLES"; // SQLServer and MySQL schema table // CFM 9+ syntax //var selectFromTable = (dbType == "Oracle") ? "USER_TAB_COLUMNS" : "INFORMATION_SCHEMA.TABLES"; var utilsLib = server.ADF.objectFactory.getBean("utils_1_2"); // Schema Table for ORACLE if ( dbType EQ "Oracle" ) selectFromTable = "USER_TAB_COLUMNS"; // ORACLE requires uppercase DB objects arguments.tableName = uCase(Trim(arguments.tableName)); SELECT TABLE_NAME FROM #selectFromTable# WHERE TABLE_NAME = AND TABLE_SCHEMA = DATABASE()