public static void uploadImportDefinition(ICswResources CswResources, CswWebSvcReturn ret, CswNbtImportWcf.ImportFileParams parms) { CswNbtResources CswNbtResources = (CswNbtResources)CswResources; CswNbtImporter Importer = new CswNbtImporter(CswNbtResources.AccessId, CswEnumSetupMode.NbtWeb); // Write uploaded file to temp dir CswTempFile myTempFile = new CswTempFile(CswResources); string path = myTempFile.saveToTempFile(parms.PostedFile.InputStream, DateTime.Now.Ticks + "_" + parms.PostedFile.FileName); Importer.storeDefinition(path, parms.ImportDefName); Importer.Finish(); }
/// <summary> /// Public accessor for the _CAFOrder dictionary so we can use it to change the order in the future /// </summary> //public Dictionary<string, Int32> CAFImportOrder //{ // get { return _CAFOrder; } //} /// <summary> /// Build a new UpdateImportMgr for a particular definition /// </summary> /// <param name="SchemaModTrnsctn">The schema script resources class</param> /// <param name="DefinitionName">The IMPORT_DEF definition (use "CAF" for caf imports)</param> /// <param name="CafDbLink">Legacy: this should probably change/go away after case 31124</param> /// <param name="ImporterSetUpMode">NbtExe or NbtWeb - depending on where you are using the Imp mgr</param> public CswNbtSchemaUpdateImportMgr(CswNbtSchemaModTrnsctn SchemaModTrnsctn, string DefinitionName, string CafDbLink = null, CswEnumSetupMode ImporterSetUpMode = CswEnumSetupMode.NbtExe) { _CAFDbLink = CafDbLink ?? CswScheduleLogicNbtCAFImport.CAFDbLink; _NbtImporter = new CswNbtImporter(SchemaModTrnsctn.Accessid, ImporterSetUpMode); this.SchemaModTrnsctn = SchemaModTrnsctn; _importDefTable = SchemaModTrnsctn.makeCswTableUpdate("Import_getDefs", "import_def").getTable(); _importOrderTable = SchemaModTrnsctn.makeCswTableUpdate("Import_getOrder", "import_def_order").getTable(); _importBindingsTable = SchemaModTrnsctn.makeCswTableUpdate("Import_getBindings", "import_def_bindings").getTable(); _importRelationshipsTable = SchemaModTrnsctn.makeCswTableUpdate("Import_getRelationships", "import_def_relationships").getTable(); _DefinitionName = DefinitionName; _SourceColumns = new CswCommaDelimitedString(); _SheetDefinitions = SchemaModTrnsctn.createImportDefinitionEntries(DefinitionName, _importDefTable); }//ctor
public void threadCallBack(ICswResources CswResources) { _LogicRunStatus = CswEnumScheduleLogicRunStatus.Running; CswNbtResources CswNbtResources = (CswNbtResources)CswResources; CswNbtResources.AuditContext = "Scheduler Task: " + RuleName; if (CswEnumScheduleLogicRunStatus.Stopping != _LogicRunStatus) { try { Int32 ImportLimit = CswConvert.ToInt32(CswNbtResources.ConfigVbls.getConfigVariableValue(CswEnumConfigurationVariableNames.NodesProcessedPerCycle)); if (Int32.MinValue == ImportLimit) { ImportLimit = 10; // Default } if (_DataTableNames.Count > 0) { CswNbtImporter Importer = new CswNbtImporter(CswNbtResources.AccessId, CswEnumSetupMode.NbtExe); Int32 RowsProcessed; bool MoreToDo = Importer.ImportRows(ImportLimit, _DataTableNames[0], out RowsProcessed); if (false == MoreToDo) { _DataTableNames.RemoveAt(0); } Importer.Finish(); } else { _CswScheduleLogicDetail.LoadCount = 0; } _CswScheduleLogicDetail.StatusMessage = "Completed without error"; _LogicRunStatus = CswEnumScheduleLogicRunStatus.Succeeded; //last line }//try catch (Exception Exception) { _CswScheduleLogicDetail.StatusMessage = "CswScheduleLogicNbtImport::threadCallBack() exception: " + Exception.Message + "; " + Exception.StackTrace; CswNbtResources.logError(new CswDniException(_CswScheduleLogicDetail.StatusMessage)); _LogicRunStatus = CswEnumScheduleLogicRunStatus.Failed; } //catch } //if we're not shutting down } //threadCallBack()
//private Dictionary<string, Int32> _importDefIds = new Dictionary<string, Int32>(); public override void update() { // IMCS bindings definitions _importOrderTable = CswNbtImportDefOrder.getDataTableForNewOrderEntries(); _importBindingsTable = CswNbtImportDefBinding.getDataTableForNewBindingEntries(); _importRelationshipsTable = CswNbtImportDefRelationship.getDataTableForNewRelationshipEntries(); // Fill import definition tables with IMCS definitions #region Order _importOrder( 1, "assembly", "Role" ); _importOrder( 2, "assembly", "User" ); _importOrder( 3, "assembly", "Department" ); _importOrder( 4, "assembly", "Building" ); _importOrder( 6, "assembly", "Vendor", 1 ); _importOrder( 7, "assembly", "Vendor", 2 ); _importOrder( 8, "assembly", "Equipment Type" ); _importOrder( 9, "assembly", "Assembly" ); _importOrder( 10, "asm_problem", "Role" ); _importOrder( 11, "asm_problem", "User" ); _importOrder( 12, "asm_problem", "Department" ); _importOrder( 13, "asm_problem", "Assembly" ); _importOrder( 14, "asm_problem", "Assembly Problem" ); _importOrder( 15, "asm_schedules", "Role" ); _importOrder( 16, "asm_schedules", "User" ); _importOrder( 17, "asm_schedules", "Department" ); _importOrder( 18, "asm_schedules", "Assembly" ); _importOrder( 19, "asm_schedules", "Assembly Schedule" ); _importOrder( 20, "asm_tasks", "Role" ); _importOrder( 21, "asm_tasks", "User" ); _importOrder( 22, "asm_tasks", "Department" ); _importOrder( 23, "asm_tasks", "Assembly" ); _importOrder( 24, "asm_tasks", "Assembly Task" ); _importOrder( 25, "equipment", "Role" ); _importOrder( 26, "equipment", "User" ); _importOrder( 27, "equipment", "Department" ); _importOrder( 28, "equipment", "Building" ); _importOrder( 30, "equipment", "Vendor", 1 ); _importOrder( 31, "equipment", "Vendor", 2 ); _importOrder( 32, "equipment", "Equipment Type" ); _importOrder( 33, "equipment", "Assembly" ); _importOrder( 34, "equipment", "Equipment" ); _importOrder( 35, "eq_problem", "Role" ); _importOrder( 36, "eq_problem", "User" ); _importOrder( 37, "eq_problem", "Department" ); _importOrder( 38, "eq_problem", "Equipment" ); _importOrder( 39, "eq_problem", "Equipment Problem" ); _importOrder( 40, "eq_schedules", "Role" ); _importOrder( 41, "eq_schedules", "User" ); _importOrder( 42, "eq_schedules", "Department" ); _importOrder( 43, "eq_schedules", "Equipment" ); _importOrder( 44, "eq_schedules", "Equipment Schedule" ); _importOrder( 45, "eq_tasks", "Role" ); _importOrder( 46, "eq_tasks", "User" ); _importOrder( 47, "eq_tasks", "Department" ); _importOrder( 48, "eq_tasks", "Equipment" ); _importOrder( 49, "eq_tasks", "Equipment Task" ); #endregion Order #region Binding _importBinding( "assembly", "nodetype", "", "", "" ); _importBinding( "assembly", "departmentname", "Department", "Department Name", "" ); _importBinding( "assembly", "location", "Building", "Name", "" ); _importBinding( "assembly", "equiptypename", "Equipment Type", "Type Name", "" ); _importBinding( "assembly", "assemblyid", "Assembly", "Assembly ID", "" ); _importBinding( "assembly", "propertyno", "Assembly", "Assembly Property No", "" ); _importBinding( "assembly", "serialno", "Assembly", "Assembly Serial No", "" ); _importBinding( "assembly", "model", "Assembly", "Assembly Model", "" ); _importBinding( "assembly", "mfr_vendorname", "Assembly", "Assembly Manufacturer", "" ); _importBinding( "assembly", "availability", "Assembly", "Status", "" ); _importBinding( "assembly", "datepurchased", "Assembly", "Assembly Purchased", "" ); _importBinding( "assembly", "datereceived", "Assembly", "Assembly MTBF", "StartDateTime" ); _importBinding( "assembly", "datereceived", "Assembly", "Assembly Received", "" ); _importBinding( "assembly", "DateSignedOut", "Assembly", "Assembly Out On", "" ); _importBinding( "assembly", "description", "Assembly", "Assembly Description", "" ); _importBinding( "assembly", "condition", "Assembly", "Assembly Condition", "" ); _importBinding( "assembly", "startingcost", "Assembly", "Assembly Starting Cost", "" ); _importBinding( "assembly", "haswarranty", "Assembly", "Assembly Has Service Contract", "" ); _importBinding( "assembly", "datewarrantyends", "Assembly", "Assembly Service Ends On", "" ); _importBinding( "assembly", "warrantycost", "Assembly", "Assembly Service Cost", "" ); _importBinding( "assembly", "warrantyphoneno", "Assembly", "Assembly Service Phone", "" ); _importBinding( "assembly", "warrantycontractno", "Assembly", "Assembly Contract No", "" ); _importBinding( "assembly", "manualstoredat", "Assembly", "Assembly Manual Stored At", "" ); _importBinding( "assembly", "notes", "Assembly", "Assembly Notes", "" ); _importBinding( "assembly", "OriginalUsrName", "User", "Last Name", "" ); _importBinding( "assembly", "username", "User", "Username", "" ); _importBinding( "assembly", "role", "Role", "Name", "" ); _importBinding( "assembly", "pwd", "User", "Password", "" ); _importBinding( "assembly", "user_disabled", "User", "AccountLocked", "" ); _importBinding( "assembly", "supp_vendorname", "Vendor", "Vendor Name", "", 1 ); _importBinding( "assembly", "supp_streetone", "Vendor", "Street1", "", 1 ); _importBinding( "assembly", "supp_streettwo", "Vendor", "Street2", "", 1 ); _importBinding( "assembly", "supp_city", "Vendor", "City", "", 1 ); _importBinding( "assembly", "supp_state", "Vendor", "State", "", 1 ); _importBinding( "assembly", "supp_zip", "Vendor", "Zip", "", 1 ); _importBinding( "assembly", "supp_phone", "Vendor", "Phone", "", 1 ); _importBinding( "assembly", "supp_fax", "Vendor", "Fax", "", 1 ); _importBinding( "assembly", "supp_conttactname", "Vendor", "Contact Name", "", 1 ); _importBinding( "assembly", "supp_accountno", "Vendor", "Account No", "", 1 ); _importBinding( "assembly", "supp_deptbillcode", "Vendor", "Dept Bill Code", "", 1 ); _importBinding( "assembly", "warr_vendorname", "Vendor", "Vendor Name", "", 2 ); _importBinding( "assembly", "warr_streetone", "Vendor", "Street1", "", 2 ); _importBinding( "assembly", "warr_streettwo", "Vendor", "Street2", "", 2 ); _importBinding( "assembly", "warr_city", "Vendor", "City", "", 2 ); _importBinding( "assembly", "warr_state", "Vendor", "State", "", 2 ); _importBinding( "assembly", "warr_zip", "Vendor", "Zip", "", 2 ); _importBinding( "assembly", "warr_phone", "Vendor", "Phone", "", 2 ); _importBinding( "assembly", "warr_fax", "Vendor", "Fax", "", 2 ); _importBinding( "assembly", "warr_conttactname", "Vendor", "Contact Name", "", 2 ); _importBinding( "assembly", "warr_accountno", "Vendor", "Account No", "", 2 ); _importBinding( "assembly", "warr_deptbillcode", "Vendor", "Dept Bill Code", "", 2 ); _importBinding( "assembly", "responsible", "Assembly", "Responsible", "" ); _importBinding( "asm_problem", "assemblyid", "Assembly", "Assembly ID", "" ); _importBinding( "asm_problem", "PID", "Assembly Problem", "Summary", "" ); _importBinding( "asm_problem", "equipid", "", "", "" ); _importBinding( "asm_problem", "Technician", "Assembly Problem", "Technician", "" ); _importBinding( "asm_problem", "TechPhone", "Assembly Problem", "Technician Phone", "" ); _importBinding( "asm_problem", "ReportedBy", "User", "Username", "" ); _importBinding( "asm_problem", "UserName", "", "", "" ); _importBinding( "asm_problem", "UserDeptName", "Department", "Department Name", "" ); _importBinding( "asm_problem", "DateStartedOn", "Assembly Problem", "Start Date", "" ); _importBinding( "asm_problem", "DateStartedOn", "Assembly Problem", "Date Opened", "" ); _importBinding( "asm_problem", "DateEndedOn", "Assembly Problem", "Date Closed", "" ); _importBinding( "asm_problem", "ProblemDescript", "Assembly Problem", "Problem", "" ); _importBinding( "asm_problem", "ResolutionDescript", "Assembly Problem", "Resolution", "" ); _importBinding( "asm_problem", "IsUnderWarranty", "Assembly Problem", "Under Warranty", "" ); _importBinding( "asm_problem", "LaborCost", "Assembly Problem", "Labor Cost", "" ); _importBinding( "asm_problem", "TravelCost", "Assembly Problem", "Travel Cost", "" ); _importBinding( "asm_problem", "PartsCost", "Assembly Problem", "Parts Cost", "" ); _importBinding( "asm_problem", "OtherCost", "Assembly Problem", "Other Cost", "" ); _importBinding( "asm_problem", "OtherCostName", "Assembly Problem", "Other Cost Name", "" ); _importBinding( "asm_problem", "ProblemType", "", "", "" ); _importBinding( "asm_problem", "ProblemStatus", "Assembly Problem", "Closed", "" ); _importBinding( "asm_problem", "UserOption1", "", "", "" ); _importBinding( "asm_problem", "UserNumber1", "", "", "" ); _importBinding( "asm_problem", "WorkOrderPrinted", "Assembly Problem", "Work Order Printed", "" ); _importBinding( "asm_problem", "role", "Role", "Name", "" ); _importBinding( "asm_problem", "user_disabled", "User", "AccountLocked", "" ); _importBinding( "asm_schedules", "assemblyid", "Assembly", "Assembly ID", "" ); _importBinding( "asm_schedules", "sid", "Assembly Schedule", "Summary", "" ); _importBinding( "asm_schedules", "equipid", "", "", "" ); _importBinding( "asm_schedules", "FreqUnits", "", "", "" ); _importBinding( "asm_schedules", "FreqIncrement", "", "", "" ); _importBinding( "asm_schedules", "EventType", "Assembly Schedule", "Event Type", "" ); _importBinding( "asm_schedules", "GenCount", "", "", "" ); _importBinding( "asm_schedules", "GenLimit", "", "", "" ); _importBinding( "asm_schedules", "WarnAhead", "Assembly Schedule", "Warning Days", "" ); _importBinding( "asm_schedules", "IsSchedule", "", "", "" ); _importBinding( "asm_schedules", "Enabled", "Assembly Schedule", "Enabled", "" ); _importBinding( "asm_schedules", "TechName", "User", "Username", "" ); _importBinding( "asm_schedules", "TechPhone", "", "", "" ); _importBinding( "asm_schedules", "ReportedBy", "", "", "" ); _importBinding( "asm_schedules", "UserName", "", "", "" ); _importBinding( "asm_schedules", "DeptName", "Department", "Department Name", "" ); _importBinding( "asm_schedules", "StartedOn", "Assembly Schedule", "Next Due Date", "" ); _importBinding( "asm_schedules", "EndedOn", "", "", "" ); _importBinding( "asm_schedules", "Description", "Assembly Schedule", "Description", "" ); _importBinding( "asm_schedules", "Completion", "", "", "" ); _importBinding( "asm_schedules", "Status", "", "", "" ); _importBinding( "asm_schedules", "LinkToFile", "", "", "" ); _importBinding( "asm_schedules", "CommandLine", "Assembly Schedule", "File Link", "Text" ); _importBinding( "asm_schedules", "Labor", "", "", "" ); _importBinding( "asm_schedules", "Parts", "", "", "" ); _importBinding( "asm_schedules", "Travel", "", "", "" ); _importBinding( "asm_schedules", "OtherCost", "", "", "" ); _importBinding( "asm_schedules", "OtherText", "", "", "" ); _importBinding( "asm_schedules", "evext01id", "", "", "" ); _importBinding( "asm_schedules", "EventID", "", "", "" ); _importBinding( "asm_schedules", "LowLimit", "Assembly Schedule", "Lower Limit", "" ); _importBinding( "asm_schedules", "HighLimit", "Assembly Schedule", "Upper Limit", "" ); _importBinding( "asm_schedules", "CalValue", "", "", "" ); _importBinding( "asm_schedules", "IsCriticalTest", "Assembly Schedule", "Is Critical Test", "" ); _importBinding( "asm_schedules", "CalDate", "", "", "" ); _importBinding( "asm_schedules", "CalSOP", "Assembly Schedule", "SOP/Ref#", "" ); _importBinding( "asm_schedules", "CalIgnore", "", "", "" ); _importBinding( "asm_schedules", "Cal_CCPRO", "", "", "" ); _importBinding( "asm_schedules", "Extra_int1", "", "", "" ); _importBinding( "asm_schedules", "Extra_int2", "", "", "" ); _importBinding( "asm_schedules", "Exta_num1", "", "", "" ); _importBinding( "asm_schedules", "Extra_num2", "", "", "" ); _importBinding( "asm_schedules", "Exta_date1", "", "", "" ); _importBinding( "asm_schedules", "Extra_date2", "", "", "" ); _importBinding( "asm_schedules", "Extra_text1", "", "", "" ); _importBinding( "asm_schedules", "Extra_text2", "", "", "" ); _importBinding( "asm_schedules", "Passes", "", "", "" ); _importBinding( "asm_schedules", "TestCompleted", "", "", "" ); _importBinding( "asm_schedules", "role", "Role", "Name", "" ); _importBinding( "asm_schedules", "user_disabled", "User", "AccountLocked", "" ); _importBinding( "asm_schedules", "SchedIntervalData", "Assembly Schedule", "Due Date Interval", "" ); _importBinding( "asm_schedules", "FinalDueDate", "Assembly Schedule", "Final Due Date", "" ); _importBinding( "asm_tasks", "eid", "", "", "" ); _importBinding( "asm_tasks", "assemblyid", "Assembly", "Assembly ID", "" ); _importBinding( "asm_tasks", "sid", "Assembly Task", "Summary", "" ); _importBinding( "asm_tasks", "equipid", "", "", "" ); _importBinding( "asm_tasks", "FreqUnits", "", "", "" ); _importBinding( "asm_tasks", "FreqIncrement", "", "", "" ); _importBinding( "asm_tasks", "EventType", "Assembly Task", "Event Type", "" ); _importBinding( "asm_tasks", "GenCount", "", "", "" ); _importBinding( "asm_tasks", "GenLimit", "", "", "" ); _importBinding( "asm_tasks", "WarnAhead", "", "", "" ); _importBinding( "asm_tasks", "IsSchedule", "", "", "" ); _importBinding( "asm_tasks", "Enabled", "", "", "" ); _importBinding( "asm_tasks", "TechName", "User", "Username", "" ); _importBinding( "asm_tasks", "TechPhone", "", "", "" ); _importBinding( "asm_tasks", "ReportedBy", "", "", "" ); _importBinding( "asm_tasks", "UserName", "", "", "" ); _importBinding( "asm_tasks", "DeptName", "Department", "Department Name", "" ); _importBinding( "asm_tasks", "StartedOn", "Assembly Task", "Due Date", "" ); _importBinding( "asm_tasks", "EndedOn", "Assembly Task", "Done On", "" ); _importBinding( "asm_tasks", "Description", "Assembly Task", "Description", "" ); _importBinding( "asm_tasks", "Completion", "Assembly Task", "Completion Description", "" ); _importBinding( "asm_tasks", "Status", "Assembly Task", "Completed", "" ); _importBinding( "asm_tasks", "LinkToFile", "", "", "" ); _importBinding( "asm_tasks", "CommandLine", "Assembly Task", "File Link", "Text" ); _importBinding( "asm_tasks", "Labor", "Assembly Task", "Labor Cost", "" ); _importBinding( "asm_tasks", "Parts", "Assembly Task", "Parts Cost", "" ); _importBinding( "asm_tasks", "Travel", "Assembly Task", "Travel Cost", "" ); _importBinding( "asm_tasks", "OtherCost", "Assembly Task", "Other Cost", "" ); _importBinding( "asm_tasks", "OtherText", "Assembly Task", "Other Cost Name", "" ); _importBinding( "asm_tasks", "evext01id", "", "", "" ); _importBinding( "asm_tasks", "EventID", "", "", "" ); _importBinding( "asm_tasks", "LowLimit", "Assembly Task", "Lower Limit", "" ); _importBinding( "asm_tasks", "HighLimit", "Assembly Task", "Upper Limit", "" ); _importBinding( "asm_tasks", "CalValue", "", "", "" ); _importBinding( "asm_tasks", "IsCriticalTest", "Assembly Task", "Is Critical Test", "" ); _importBinding( "asm_tasks", "CalDate", "Assembly Task", "Calibration Date", "" ); _importBinding( "asm_tasks", "CalSOP", "Assembly Task", "SOP/Ref#", "" ); _importBinding( "asm_tasks", "CalIgnore", "Assembly Task", "Ignore Calibration Result", "" ); _importBinding( "asm_tasks", "Cal_CCPRO", "", "", "" ); _importBinding( "asm_tasks", "Extra_int1", "", "", "" ); _importBinding( "asm_tasks", "Extra_int2", "", "", "" ); _importBinding( "asm_tasks", "Exta_num1", "", "", "" ); _importBinding( "asm_tasks", "Extra_num2", "", "", "" ); _importBinding( "asm_tasks", "Exta_date1", "", "", "" ); _importBinding( "asm_tasks", "Extra_date2", "", "", "" ); _importBinding( "asm_tasks", "Extra_text1", "", "", "" ); _importBinding( "asm_tasks", "Extra_text2", "", "", "" ); _importBinding( "asm_tasks", "Passes", "", "", "" ); _importBinding( "asm_tasks", "TestCompleted", "", "", "" ); _importBinding( "asm_tasks", "role", "Role", "Name", "" ); _importBinding( "asm_tasks", "user_disabled", "User", "AccountLocked", "" ); _importBinding( "equipment", "nodetype", "", "", "" ); _importBinding( "equipment", "departmentname", "Department", "Department Name", "" ); _importBinding( "equipment", "location", "Building", "Name", "" ); _importBinding( "equipment", "equiptypename", "Equipment Type", "Type Name", "" ); _importBinding( "equipment", "eid", "Equipment", "Equipment ID", "" ); _importBinding( "equipment", "assemblyid", "Assembly", "Assembly ID", "" ); _importBinding( "equipment", "propertyno", "Equipment", "Property No", "" ); _importBinding( "equipment", "serialno", "Equipment", "Serial No", "" ); _importBinding( "equipment", "model", "Equipment", "Model", "" ); _importBinding( "equipment", "mfr_vendorname", "Equipment", "Manufacturer", "" ); _importBinding( "equipment", "availability", "Equipment", "Status", "" ); _importBinding( "equipment", "datepurchased", "Equipment", "Purchased", "" ); _importBinding( "equipment", "datereceived", "Equipment", "MTBF", "StartDateTime" ); _importBinding( "equipment", "datereceived", "Equipment", "Received", "" ); _importBinding( "equipment", "description", "Equipment", "Description", "" ); _importBinding( "equipment", "condition", "Equipment", "Condition", "" ); _importBinding( "equipment", "startingcost", "Equipment", "Starting Cost", "" ); _importBinding( "equipment", "OrigUsrName", "User", "Last Name", "" ); _importBinding( "equipment", "username", "User", "Username", "" ); _importBinding( "equipment", "role", "Role", "Name", "" ); _importBinding( "equipment", "pwd", "User", "Password", "" ); _importBinding( "equipment", "user_disabled", "User", "AccountLocked", "" ); _importBinding( "equipment", "datesignedout", "Equipment", "Out On", "" ); _importBinding( "equipment", "haswarranty", "Equipment", "Has Service Contract", "" ); _importBinding( "equipment", "datewarrantyends", "Equipment", "Service Ends On", "" ); _importBinding( "equipment", "warrantycost", "Equipment", "Service Cost", "" ); _importBinding( "equipment", "warrantyphoneno", "Equipment", "Service Phone", "" ); _importBinding( "equipment", "warrantycontractno", "Equipment", "Contract No", "" ); _importBinding( "equipment", "manualstoredat", "Equipment", "Manual Stored At", "" ); _importBinding( "equipment", "notes", "Equipment", "Notes", "" ); _importBinding( "equipment", "supp_vendorname", "Vendor", "Vendor Name", "", 1 ); _importBinding( "equipment", "supp_streetone", "Vendor", "Street1", "", 1 ); _importBinding( "equipment", "supp_streettwo", "Vendor", "Street2", "", 1 ); _importBinding( "equipment", "supp_city", "Vendor", "City", "", 1 ); _importBinding( "equipment", "supp_state", "Vendor", "State", "", 1 ); _importBinding( "equipment", "supp_zip", "Vendor", "Zip", "", 1 ); _importBinding( "equipment", "supp_phone", "Vendor", "Phone", "", 1 ); _importBinding( "equipment", "supp_fax", "Vendor", "Fax", "", 1 ); _importBinding( "equipment", "supp_conttactname", "Vendor", "Contact Name", "", 1 ); _importBinding( "equipment", "supp_accountno", "Vendor", "Account No", "", 1 ); _importBinding( "equipment", "supp_deptbillcode", "Vendor", "Dept Bill Code", "", 1 ); _importBinding( "equipment", "warr_vendorname", "Vendor", "Vendor Name", "", 2 ); _importBinding( "equipment", "warr_streetone", "Vendor", "Street1", "", 2 ); _importBinding( "equipment", "warr_streettwo", "Vendor", "Street2", "", 2 ); _importBinding( "equipment", "warr_city", "Vendor", "City", "", 2 ); _importBinding( "equipment", "warr_state", "Vendor", "State", "", 2 ); _importBinding( "equipment", "warr_zip", "Vendor", "Zip", "", 2 ); _importBinding( "equipment", "warr_phone", "Vendor", "Phone", "", 2 ); _importBinding( "equipment", "warr_fax", "Vendor", "Fax", "", 2 ); _importBinding( "equipment", "warr_conttactname", "Vendor", "Contact Name", "", 2 ); _importBinding( "equipment", "warr_accountno", "Vendor", "Account No", "", 2 ); _importBinding( "equipment", "warr_deptbillcode", "Vendor", "Dept Bill Code", "", 2 ); _importBinding( "equipment", "responsible", "Equipment", "Responsible", "" ); _importBinding( "eq_problem", "eid", "Equipment", "Equipment ID", "" ); _importBinding( "eq_problem", "PID", "Equipment Problem", "Summary", "" ); _importBinding( "eq_problem", "equipid", "", "", "" ); _importBinding( "eq_problem", "Technician", "Equipment Problem", "Technician", "" ); _importBinding( "eq_problem", "TechPhone", "Equipment Problem", "Technician Phone", "" ); _importBinding( "eq_problem", "ReportedBy", "User", "Username", "" ); _importBinding( "eq_problem", "UserName", "", "", "" ); _importBinding( "eq_problem", "UserDeptName", "Department", "Department Name", "" ); _importBinding( "eq_problem", "DateStartedOn", "Equipment Problem", "Start Date", "" ); _importBinding( "eq_problem", "DateStartedOn", "Equipment Problem", "Date Opened", "" ); _importBinding( "eq_problem", "DateEndedOn", "Equipment Problem", "Date Closed", "" ); _importBinding( "eq_problem", "ProblemDescript", "Equipment Problem", "Problem", "" ); _importBinding( "eq_problem", "ResolutionDescript", "Equipment Problem", "Resolution", "" ); _importBinding( "eq_problem", "IsUnderWarranty", "Equipment Problem", "Under Warranty", "" ); _importBinding( "eq_problem", "LaborCost", "Equipment Problem", "Labor Cost", "" ); _importBinding( "eq_problem", "TravelCost", "Equipment Problem", "Travel Cost", "" ); _importBinding( "eq_problem", "PartsCost", "Equipment Problem", "Parts Cost", "" ); _importBinding( "eq_problem", "OtherCost", "Equipment Problem", "Other Cost", "" ); _importBinding( "eq_problem", "OtherCostName", "Equipment Problem", "Other Cost Name", "" ); _importBinding( "eq_problem", "ProblemType", "", "", "" ); _importBinding( "eq_problem", "ProblemStatus", "Equipment Problem", "Closed", "" ); _importBinding( "eq_problem", "UserOption1", "", "", "" ); _importBinding( "eq_problem", "UserNumber1", "", "", "" ); _importBinding( "eq_problem", "WorkOrderPrinted", "Equipment Problem", "Work Order Printed", "" ); _importBinding( "eq_problem", "role", "Role", "Name", "" ); _importBinding( "eq_problem", "user_disabled", "User", "AccountLocked", "" ); _importBinding( "eq_schedules", "eid", "Equipment", "Equipment ID", "" ); _importBinding( "eq_schedules", "sid", "Equipment Schedule", "Summary", "" ); _importBinding( "eq_schedules", "equipid", "", "", "" ); _importBinding( "eq_schedules", "FreqUnits", "", "", "" ); _importBinding( "eq_schedules", "FreqIncrement", "", "", "" ); _importBinding( "eq_schedules", "EventType", "Equipment Schedule", "Event Type", "" ); _importBinding( "eq_schedules", "GenCount", "", "", "" ); _importBinding( "eq_schedules", "GenLimit", "", "", "" ); _importBinding( "eq_schedules", "WarnAhead", "Equipment Schedule", "Warning Days", "" ); _importBinding( "eq_schedules", "IsSchedule", "", "", "" ); _importBinding( "eq_schedules", "Enabled", "Equipment Schedule", "Enabled", "" ); _importBinding( "eq_schedules", "TechName", "User", "Username", "" ); _importBinding( "eq_schedules", "TechPhone", "", "", "" ); _importBinding( "eq_schedules", "ReportedBy", "", "", "" ); _importBinding( "eq_schedules", "UserName", "", "", "" ); _importBinding( "eq_schedules", "DeptName", "Department", "Department Name", "" ); _importBinding( "eq_schedules", "StartedOn", "Equipment Schedule", "Next Due Date", "" ); _importBinding( "eq_schedules", "EndedOn", "", "", "" ); _importBinding( "eq_schedules", "Description", "Equipment Schedule", "Description", "" ); _importBinding( "eq_schedules", "Completion", "", "", "" ); _importBinding( "eq_schedules", "Status", "", "", "" ); _importBinding( "eq_schedules", "LinkToFile", "", "", "" ); _importBinding( "eq_schedules", "CommandLine", "Equipment Schedule", "File Link", "Text" ); _importBinding( "eq_schedules", "Labor", "", "", "" ); _importBinding( "eq_schedules", "Parts", "", "", "" ); _importBinding( "eq_schedules", "Travel", "", "", "" ); _importBinding( "eq_schedules", "OtherCost", "", "", "" ); _importBinding( "eq_schedules", "OtherText", "", "", "" ); _importBinding( "eq_schedules", "evext01id", "", "", "" ); _importBinding( "eq_schedules", "EventID", "", "", "" ); _importBinding( "eq_schedules", "LowLimit", "Equipment Schedule", "Lower Limit", "" ); _importBinding( "eq_schedules", "HighLimit", "Equipment Schedule", "Upper Limit", "" ); _importBinding( "eq_schedules", "CalValue", "", "", "" ); _importBinding( "eq_schedules", "IsCriticalTest", "Equipment Schedule", "Is Critical Test", "" ); _importBinding( "eq_schedules", "CalDate", "", "", "" ); _importBinding( "eq_schedules", "CalSOP", "Equipment Schedule", "SOP/Ref#", "" ); _importBinding( "eq_schedules", "CalIgnore", "", "", "" ); _importBinding( "eq_schedules", "Cal_CCPRO", "", "", "" ); _importBinding( "eq_schedules", "Extra_int1", "", "", "" ); _importBinding( "eq_schedules", "Extra_int2", "", "", "" ); _importBinding( "eq_schedules", "Exta_num1", "", "", "" ); _importBinding( "eq_schedules", "Extra_num2", "", "", "" ); _importBinding( "eq_schedules", "Exta_date1", "", "", "" ); _importBinding( "eq_schedules", "Extra_date2", "", "", "" ); _importBinding( "eq_schedules", "Extra_text1", "", "", "" ); _importBinding( "eq_schedules", "Extra_text2", "", "", "" ); _importBinding( "eq_schedules", "Passes", "", "", "" ); _importBinding( "eq_schedules", "TestCompleted", "", "", "" ); _importBinding( "eq_schedules", "role", "Role", "Name", "" ); _importBinding( "eq_schedules", "user_disabled", "User", "AccountLocked", "" ); _importBinding( "eq_schedules", "SchedIntervalData", "Equipment Schedule", "Due Date Interval", "" ); _importBinding( "eq_schedules", "FinalDueDate", "Equipment Schedule", "Final Due Date", "" ); _importBinding( "eq_tasks", "eid", "Equipment", "Equipment ID", "" ); _importBinding( "eq_tasks", "assemblyid", "", "", "" ); _importBinding( "eq_tasks", "sid", "Equipment Task", "Summary", "" ); _importBinding( "eq_tasks", "equipid", "", "", "" ); _importBinding( "eq_tasks", "FreqUnits", "", "", "" ); _importBinding( "eq_tasks", "FreqIncrement", "", "", "" ); _importBinding( "eq_tasks", "EventType", "Equipment Task", "Event Type", "" ); _importBinding( "eq_tasks", "GenCount", "", "", "" ); _importBinding( "eq_tasks", "GenLimit", "", "", "" ); _importBinding( "eq_tasks", "WarnAhead", "", "", "" ); _importBinding( "eq_tasks", "IsSchedule", "", "", "" ); _importBinding( "eq_tasks", "Enabled", "", "", "" ); _importBinding( "eq_tasks", "TechName", "User", "Username", "" ); _importBinding( "eq_tasks", "TechPhone", "", "", "" ); _importBinding( "eq_tasks", "ReportedBy", "", "", "" ); _importBinding( "eq_tasks", "UserName", "", "", "" ); _importBinding( "eq_tasks", "DeptName", "Department", "Department Name", "" ); _importBinding( "eq_tasks", "StartedOn", "Equipment Task", "Due Date", "" ); _importBinding( "eq_tasks", "EndedOn", "Equipment Task", "Done On", "" ); _importBinding( "eq_tasks", "Description", "Equipment Task", "Description", "" ); _importBinding( "eq_tasks", "Completion", "Equipment Task", "Completion Description", "" ); _importBinding( "eq_tasks", "Status", "Equipment Task", "Completed", "" ); _importBinding( "eq_tasks", "LinkToFile", "", "", "" ); _importBinding( "eq_tasks", "CommandLine", "Equipment Task", "File Link", "Text" ); _importBinding( "eq_tasks", "Labor", "Equipment Task", "Labor Cost", "" ); _importBinding( "eq_tasks", "Parts", "Equipment Task", "Parts Cost", "" ); _importBinding( "eq_tasks", "Travel", "Equipment Task", "Travel Cost", "" ); _importBinding( "eq_tasks", "OtherCost", "Equipment Task", "Other Cost", "" ); _importBinding( "eq_tasks", "OtherText", "Equipment Task", "Other Cost Name", "" ); _importBinding( "eq_tasks", "evext01id", "", "", "" ); _importBinding( "eq_tasks", "EventID", "", "", "" ); _importBinding( "eq_tasks", "LowLimit", "Equipment Task", "Lower Limit", "" ); _importBinding( "eq_tasks", "HighLimit", "Equipment Task", "Upper Limit", "" ); _importBinding( "eq_tasks", "CalValue", "", "", "" ); _importBinding( "eq_tasks", "IsCriticalTest", "Equipment Task", "Is Critical Test", "" ); _importBinding( "eq_tasks", "CalDate", "Equipment Task", "Calibration Date", "" ); _importBinding( "eq_tasks", "CalSOP", "Equipment Task", "SOP/Ref#", "" ); _importBinding( "eq_tasks", "CalIgnore", "Equipment Task", "Ignore Calibration Result", "" ); _importBinding( "eq_tasks", "Cal_CCPRO", "", "", "" ); _importBinding( "eq_tasks", "Extra_int1", "", "", "" ); _importBinding( "eq_tasks", "Extra_int2", "", "", "" ); _importBinding( "eq_tasks", "Exta_num1", "", "", "" ); _importBinding( "eq_tasks", "Extra_num2", "", "", "" ); _importBinding( "eq_tasks", "Exta_date1", "", "", "" ); _importBinding( "eq_tasks", "Extra_date2", "", "", "" ); _importBinding( "eq_tasks", "Extra_text1", "", "", "" ); _importBinding( "eq_tasks", "Extra_text2", "", "", "" ); _importBinding( "eq_tasks", "Passes", "", "", "" ); _importBinding( "eq_tasks", "TestCompleted", "", "", "" ); _importBinding( "eq_tasks", "role", "Role", "Name", "" ); _importBinding( "eq_tasks", "user_disabled", "User", "AccountLocked", "" ); #endregion Binding #region Relationship _importRelationship( "assembly", "User", "Role" ); _importRelationship( "assembly", "Assembly", "Department" ); _importRelationship( "assembly", "Assembly", "User" ); _importRelationship( "assembly", "Assembly", "Assembly Type" ); _importRelationship( "assembly", "Assembly", "Location" ); _importRelationship( "assembly", "Assembly", "Assembly Vendor", 1 ); _importRelationship( "assembly", "Assembly", "Assembly Service Vendor", 2 ); _importRelationship( "asm_problem", "User", "Role" ); _importRelationship( "asm_problem", "Assembly Problem", "Department" ); _importRelationship( "asm_problem", "Assembly Problem", "Assembly" ); _importRelationship( "asm_problem", "Assembly Problem", "Reported By" ); _importRelationship( "asm_schedules", "User", "Role" ); _importRelationship( "asm_schedules", "Assembly Schedule", "Technician" ); _importRelationship( "asm_schedules", "Assembly Schedule", "Assembly" ); _importRelationship( "asm_schedules", "Assembly Schedule", "Department" ); _importRelationship( "asm_tasks", "User", "Role" ); _importRelationship( "asm_tasks", "Assembly Task", "Technician" ); _importRelationship( "asm_tasks", "Assembly Task", "Assembly" ); _importRelationship( "asm_tasks", "Assembly Task", "Department" ); _importRelationship( "equipment", "User", "Role" ); _importRelationship( "equipment", "Assembly", "Department" ); _importRelationship( "equipment", "Assembly", "User" ); _importRelationship( "equipment", "Assembly", "Assembly Type" ); _importRelationship( "equipment", "Assembly", "Assembly Vendor", 1 ); _importRelationship( "equipment", "Assembly", "Assembly Service Vendor", 2 ); _importRelationship( "equipment", "Equipment", "Department" ); _importRelationship( "equipment", "Equipment", "Vendor", 1 ); _importRelationship( "equipment", "Equipment", "Service Vendor", 2 ); _importRelationship( "equipment", "Equipment", "User" ); _importRelationship( "equipment", "Equipment", "Type" ); _importRelationship( "equipment", "Equipment", "Assembly" ); _importRelationship( "equipment", "Equipment", "Location" ); _importRelationship( "eq_problem", "User", "Role" ); _importRelationship( "eq_problem", "Equipment Problem", "Department" ); _importRelationship( "eq_problem", "Equipment Problem", "Equipment" ); _importRelationship( "eq_problem", "Equipment Problem", "Reported By" ); _importRelationship( "eq_schedules", "User", "Role" ); _importRelationship( "eq_schedules", "Equipment Schedule", "Technician" ); _importRelationship( "eq_schedules", "Equipment Schedule", "Equipment" ); _importRelationship( "eq_schedules", "Equipment Schedule", "Department" ); _importRelationship( "eq_tasks", "User", "Role" ); _importRelationship( "eq_tasks", "Equipment Task", "Technician" ); _importRelationship( "eq_tasks", "Equipment Task", "Equipment" ); _importRelationship( "eq_tasks", "Equipment Task", "Department" ); #endregion Relationship CswNbtImporter Importer = _CswNbtSchemaModTrnsctn.makeCswNbtImporter(); Importer.storeDefinition( _importOrderTable, _importBindingsTable, _importRelationshipsTable, "IMCS" ); // Add schedule rule _CswNbtSchemaModTrnsctn.createScheduledRule( CswEnumNbtScheduleRuleNames.Import, CswEnumRecurrence.NHours, 1 ); // Add action _CswNbtSchemaModTrnsctn.createAction( CswEnumNbtActionName.Import_Data_From_Excel, true, string.Empty, "System" ); } // update()
public void threadCallBack(ICswResources CswResources) { _LogicRunStatus = CswEnumScheduleLogicRunStatus.Running; if (CswEnumScheduleLogicRunStatus.Stopping != _LogicRunStatus) { CswNbtResources _CswNbtResources = (CswNbtResources)CswResources; try { const Int32 MaxRowsToProcessPerThread = 1000; //This number must not exceed the amount of importing we expect to be able to do in _CswScheduleLogicDetail.MaxRunTimeMs const Int32 MinNumberToProcess = 100; //CIS-53123 - we should process at least this many rows at a time (because committing is expensive) - this number must not exceed 1000 (because we're using an IN clause) Int32 NumberToProcess = CswConvert.ToInt32(_CswNbtResources.ConfigVbls.getConfigVariableValue(CswEnumConfigurationVariableNames.NodesProcessedPerCycle)); NumberToProcess = NumberToProcess < MinNumberToProcess ? MinNumberToProcess : NumberToProcess; Int32 NumberOfCommits = MaxRowsToProcessPerThread / NumberToProcess;//CIS-53123 - process MaxRowsToProcessPerThread rows per rule iteration, committing every NumberToProcess rows const string QueueTableName = "nbtimportqueue"; const string QueuePkName = "nbtimportqueueid"; for (int c = 0; c < NumberOfCommits; c++) { string Sql = "select nbtimportqueueid, state, itempk, pkcolumnname, sheetname, priority, importorder, tablename, coalesce(viewname, tablename) as sourcename, nodetypename from " + QueueTableName + "@" + CAFDbLink + " iq" + " join " + CswNbtImportTables.ImportDefOrder.TableName + " io on ( coalesce(viewname, tablename) = iq.sheetname )" //TODO - remove ignoring Delete rows when we support Importing deleted nodes + " where state != '" + State.E + "' and state != '" + State.D //Much faster than (I or U) + "' order by decode (state, '" + State.I + "', 1, '" + State.U + "', 2) asc, priority desc, importorder asc, nbtimportqueueid asc"; CswArbitrarySelect QueueSelect = _CswNbtResources.makeCswArbitrarySelect("cafimport_queue_select", Sql); DataTable QueueTable = QueueSelect.getTable(0, NumberToProcess, false); if (QueueTable.Rows.Count > 0) { Collection <String> ImportQueuePKs = new Collection <string>(); CswCommaDelimitedString ItemPKs = new CswCommaDelimitedString(); string ImportOrder = QueueTable.Rows[0]["importorder"].ToString(); DataRow QueueRowDef = QueueTable.Rows[0]; CswNbtImporter Importer = new CswNbtImporter(_CswNbtResources.AccessId, CswEnumSetupMode.NbtExe); foreach (DataRow QueueRow in QueueTable.Rows) { string CurrentTblNamePkCol = CswConvert.ToString(QueueRow["pkcolumnname"]); if (string.IsNullOrEmpty(CurrentTblNamePkCol)) { throw new Exception("Could not find pkcolumn in data_dictionary for table " + QueueRow["tablename"]); } if (QueueRow["importorder"].ToString() != ImportOrder) { break;//We've changed NodeTypes - we'll pick them up next time around } ImportQueuePKs.Add(QueueRow[QueuePkName].ToString()); ItemPKs.Add("'" + QueueRow["itempk"] + "'"); } string ItemSql = "select * from " + QueueRowDef["sourcename"] + "@" + CAFDbLink + " where " + QueueRowDef["pkcolumnname"] + " in(" + ItemPKs + ")"; CswArbitrarySelect ItemSelect = _CswNbtResources.makeCswArbitrarySelect("cafimport_queue_select", ItemSql); DataTable ItemTable = ItemSelect.getTable(); for (int i = 0; i < ItemTable.Rows.Count; i++) { DataRow ItemRow = ItemTable.Rows[i]; string NodetypeName = QueueRowDef["nodetypename"].ToString(); bool Overwrite = QueueRowDef["state"].ToString().Equals("U"); string Error = Importer.ImportRow(ItemRow, DefinitionName, NodetypeName, Overwrite); if (string.IsNullOrEmpty(Error)) { // record success - delete the record _CswNbtResources.execArbitraryPlatformNeutralSql("delete from " + QueueTableName + "@" + CAFDbLink + " where " + QueuePkName + " = " + ImportQueuePKs[i]); } else { // truncate error to 2000 chars string SafeError = CswTools.SafeSqlParam(Error); if (SafeError.Length > 2000) { SafeError = SafeError.Substring(0, 2000); } // record failure - record the error on nbtimportqueue _CswNbtResources.execArbitraryPlatformNeutralSql("update " + QueueTableName + "@" + CAFDbLink + " set state = '" + State.E + "', " + " errorlog = '" + SafeError + "' " + " where " + QueuePkName + " = " + ImportQueuePKs[i]); } _CswScheduleLogicDetail.LoadCount = _CswScheduleLogicDetail.LoadCount - 1; } Importer.Finish(); //CIS-53123 - Commit every NumberToProcess rows (performes better than spawning a new thread every NumberToProcess rows) _CswNbtResources.finalize(); } else { c = NumberOfCommits;//We're done importing! } } _CswScheduleLogicDetail.StatusMessage = "Completed without error"; _LogicRunStatus = CswEnumScheduleLogicRunStatus.Succeeded; //last line }//try catch (Exception Exception) { _CswScheduleLogicDetail.StatusMessage = "CswScheduleLogicNbtCAFImport::ImportItems() exception: " + Exception.Message + "; " + Exception.StackTrace; _CswNbtResources.logError(new CswDniException(_CswScheduleLogicDetail.StatusMessage)); _LogicRunStatus = CswEnumScheduleLogicRunStatus.Failed; } //catch } //if we're not shutting down } //threadCallBack()