You must be logged in. Please login now.
// Copy GCE Records - Copy Element Records to new element
srcCeName = 'Source GCE';
destCeName = 'Destination GCE';
copyStart = 1; // 1 or higher
copyRows = 1; // or set to all
skipExists = true;
verbose = false;
// Config Values
// -----
skipFieldName = 'id';
excludeFields = '';
// dateField,mmnew,multimediaField,mmLocalField,mmBrightcoveField
// Url Params
if ( StructKeyExists(request.params,'start') )
copyStart = request.params.start;
if ( StructKeyExists(request.params,'rows') )
copyRows = request.params.rows;
if ( StructKeyExists(request.params,'skip') AND IsBoolean(request.params.skip) )
skipExists = request.params.skip;
if ( StructKeyExists(request.params,'verbose') AND IsBoolean(request.params.verbose) )
verbose = request.params.verbose;
// Get Source Records
srcArr = application.ADF.ceData.getCEData(customElementName=srcCeName);
//srcArr = application.ADF.ceData.getCEData(customElementName=srcCeName,customElementFieldName=skipFieldName,item=71629,queryType='equals');
// Get the Source Total
srcTotal = ArrayLen(srcArr);
WriteOutput('
Source Record Count (Before): #srcTotal#');
// Get Destination Count
destArr = application.ADF.ceData.getCEData(destCeName);
destTotal = ArrayLen(destArr);
WriteOutput('
Destination Record Count (Before): #destTotal#');
if ( NOT IsNumeric(copyStart) )
copyStart = 1;
calcRows = application.ADF.data.calcStartEndRows(total=srcTotal,start=copyStart,qty=copyRows);
startRow = calcRows.start;
endRow = calcRows.end;
rowCnt = calcRows.rows;
WriteOutput('
------');
for ( i=startRow; i <= endRow; i++ ) {
pageid = 0;
skippedRecordValue = '';
// Set source data to dataValues struct
dataValues = Server.CommonSpot.deepCopy(srcArr[i].values);
WriteOutput('
#i#: Copy DataPageID: ' & srcArr[i].pageid);
excludeFldArr = ListToArray(excludeFields);
for ( j=1; j <= ArrayLen(excludeFldArr); j++ ) {
skipFld = excludeFldArr[j];
if ( LEN(TRIM(skipFld)) AND StructKeyExists(dataValues,skipFld) )
StructDelete(dataValues,skipFld);
}
//if ( verbose )
WriteDump(var=dataValues, label="Source dataValues", expand=false);
copyRecord = true;
if ( skipExists AND TRIM(skipFieldName) NEQ '' AND StructKeyExists(dataValues,skipFieldName) )
{
existsArr = application.ADF.ceData.getCEData(customElementName=destCeName,customElementFieldName=skipFieldName,item=dataValues[skipFieldName],queryType='equals');
if ( ArrayLen(existsArr) )
{
copyRecord = false;
skippedRecordValue = existsArr[1].values[skipFieldName];
}
}
if ( copyRecord )
{
WriteOutput("
- Call addRecord...");
copyResult = Application.ADF.gceRecord.addRecord(ceName=destCeName,dataValues=dataValues);
if ( StructKeyExists(copyResult,'datapageid') )
pageid = copyResult.datapageid;
WriteOutput('
- New PageID: ' & pageid);
if ( pageid GT 0 )
{
WriteOutput('
++ Record Copied'); // Copy field
copyResultArr = application.ADF.ceData.getCEDataByPageID(customElementName=destCeName,csPageID=pageid);
if ( ArrayLen(copyResultArr) )
WriteDump(var=copyResultArr,label='By pageid: #pageid#');
}
if ( verbose OR pageid EQ 0 )
WriteDump(var=copyResult,label="copyResult",expand=false);
}
else
{
WriteOutput('
>> Record Exists - Skipped "#skipFieldName#": ' & skippedRecordValue);
}
WriteOutput('
------');
cfflush();
}
destArr = application.ADF.ceData.getCEData(destCeName);
destTotal = ArrayLen(destArr);
WriteOutput('
Destination Record Count (After): #destTotal#');
if ( verbose )
WriteDump(var=destArr,label="destArr",expand=false);