How to transfer incremented file edge to Thingworx ??
Is there any way to transfer file only incremented size ??
Below is the code that I used to transfer files from edge to Thingworx.
Really what I wanted is only transfer the incremented
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var params = {
path: "/In" /* STRING */,
nameMask: undefined /* STRING */
};
// result: INFOTABLE dataShape: "FileSystemFile"
var deviceFileList = me.ListFiles(params);
for(var x = 0; x < deviceFileList.getRowCount(); x++ ){
logger.error("deviceFileList :"+ deviceFileList.getRow(x).name + " " + deviceFileList.getRow(x).size);
}
//2. Thingworx Server
var params = {
path: "/"+me.name /* STRING */,
nameMask: undefined /* STRING */
};
var twxFileList = Things["SystemRepository"].GetFileListing(params);
for(var x = 0; x < twxFileList.getRowCount(); x++ ){
logger.error("twxFileList :"+ twxFileList.getRow(x).name + " " + twxFileList.getRow(x).size);
}
var params = {
infoTableName : "InfoTable",
dataShapeName : "FileSystemFile"
};
// CreateInfoTableFromDataShape(infoTableName:STRING("InfoTable"), dataShapeName:STRING):INFOTABLE(FileSystemFile)
var list = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
var listToRemove = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
//3. file check
for(var j = 0; j < twxFileList.getRowCount(); j++ ){
for(var k = 0; k < deviceFileList.getRowCount(); k++ ){
var name1 = ""+twxFileList.getRow(j).name + "";
var name2 = ""+deviceFileList.getRow(k).name + "";
if(name1 == name2){
if(twxFileList.getRow(j).size != deviceFileList.getRow(k).size){
logger.error("????twxFileList.getRow(j)$$$$$$$ : " + twxFileList.getRow(j).name+" : "+twxFileList.getRow(j).size + " /////// "
+ "????list.getRow(k)$$$$$$$ : " +deviceFileList.getRow(k).name+" : "+ deviceFileList.getRow(k).size);
list.AddRow(deviceFileList.getRow(k));
}else{
listToRemove.AddRow(deviceFileList.getRow(k));
}
}
}
}
for(var z = 0; z < listToRemove.getRowCount(); z++ ){
deviceFileList.Delete(listToRemove.getRow(z));
}
for(var x = 0; x < deviceFileList.getRowCount(); x++ ){
logger.error("deviceFileList :"+ deviceFileList.getRow(x).name + " " + deviceFileList.getRow(x).size);
list.AddRow(deviceFileList.getRow(x));
}
for(var x = 0; x < list.getRowCount(); x++ ){
logger.error("list :"+ list.getRow(x).name + " " + list.getRow(x).size);
}
var fileList = list;
//2. Copy To Thingworx
for(var i=0; i < fileList.length;i++){
// logger.error(">>>>>>>> fileList.getRow(i).name : " + fileList.getRow(i).name);
var params = {
async: true /* BOOLEAN */,
sourceRepo: me.name /* STRING */,
metadata: undefined /* JSON */,
targetRepo: "SystemRepository" /* STRING */,
targetFile: fileList.getRow(i).name /* STRING */,
targetPath: "/"+me.name /* STRING */,
queueable: true /* BOOLEAN */,
sourceFile: fileList.getRow(i).name /* STRING */,
sourcePath: "/In" /* STRING */,
timeout: undefined /* INTEGER */
};
// result: INFOTABLE dataShape: FileTransferJob
var result = Subsystems["FileTransferSubsystem"].Copy(params);
}

