Here is some sync code
//get a list of things in the local database already var localDBList = Models.AssetList.LoadActive(); // doesnt load IsArchived // mark the existing data in local db as 'processing' - if not already inactive foreach (var record in localDBList) { record.IsProcessing = true; } //open the infor list, step through each var fas = new Lawson.FAS001MI.LstAsset(); fas.In.Division_DIVI="200"; fas.ResultsPerPage=1000; fas.Run(); %> M3Host[<%=fas.M3Host %>]<br/> M3Port[<%=fas.M3Port %>]<br/> <div style="white-space: nowrap"> <% if(!fas.Error.IsError){ //int scan=0; //foreach (var inforObj in fas.Out) { for (int scan=0;scan<fas.Out.Count;scan++) { var inforObj=fas.Out[scan]; %><%=Fmt.PadZeros(scan,5)%>--------<% var javaScriptSerializer = new JavaScriptSerializer(); var rawData = javaScriptSerializer.Serialize(inforObj); var infoID=GetAssetInfoIdent(inforObj); //check if the infor item is in the local db var asset = localDBList.Find(f=>f.InforM3AssetASID+""==infoID); if(asset!=null){ // if exists, check for changes in the record. (use json object?) Logging.dout("found------------------------------------ ["+inforObj.FixedAsset_ASID+"]"); ImportAssetRecord(asset, inforObj); if(rawData!=asset.RawInforData){ Logging.dout("soomething in the raw data changed from last sync"); } //mark as not processing asset.IsProcessing=false; }else{ //if not exists, create the record, copy data in from infor data, set to 'not processing' Logging.dout("create new asset ["+inforObj.TextLine1_TXT1+"]"); asset = new Asset(); ImportAssetRecord(asset, inforObj); asset.IsDeleted = false; asset.IsArchived = false; localDBList.Add(asset); } asset.RawInforData = rawData; //overwrite existing raw data } // mark as inactive anything that is still marked as processing foreach (var record in localDBList) { if (record.IsProcessing) { Logging.dout("found item ["+record.AssetName+"] is not in infor any more, mark as deleted"); record.IsDeleted = true; } } if(Web.Request["doit"]=="1"){ localDBList.Save(); } }else{ %>Error:<%=fas.Error.ErrorText %><% }
Leave a Comment
Comments