This commit is contained in:
139
PROMS/DataLoader/Transitions.cs
Normal file
139
PROMS/DataLoader/Transitions.cs
Normal file
@@ -0,0 +1,139 @@
|
||||
// ========================================================================
|
||||
// Copyright 2006 - Volian Enterprises, Inc. All rights reserved.
|
||||
// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
|
||||
// ------------------------------------------------------------------------
|
||||
// $Workfile: $ $Revision: $
|
||||
// $Author: $ $Date: $
|
||||
//
|
||||
// $History: $
|
||||
// ========================================================================
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Forms;
|
||||
using System.Data;
|
||||
using System.Data.OleDb;
|
||||
using System.Collections.Specialized;
|
||||
using System.Collections.Generic;
|
||||
using System.Xml;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using Volian.CSLA.Library;
|
||||
|
||||
namespace DataLoader
|
||||
{
|
||||
public partial class frmLoader : Form
|
||||
{
|
||||
private int AddTrans(int fromId, DataRow dr)
|
||||
{
|
||||
//TODO: ZTransitions tr.Oldto = dr["OLDTO"].ToString();
|
||||
string thekey = dr["TONUMBER"].ToString() + "|" + dr["TOSEQUENCE"].ToString();
|
||||
string dti = dr["DTI"].ToString().PadRight(18, ' ');
|
||||
string userid = dti.Substring(13, 5).Trim();
|
||||
DateTime dts = GetDTS(MakeDate(dti.Substring(0, 8).Trim()), dti.Substring(8, 5).Trim());
|
||||
// if it's in the dictionary of structure elements already migrated, just use this
|
||||
// structure id, or if it's in the dictionary of structure elements that have
|
||||
// not been migrated but a record was created from this code, use it. Otherwise
|
||||
// create a new structure record and use its id, its data will be updated later.
|
||||
// a structure record.
|
||||
int toid;
|
||||
if (dicTrans_StrDone.ContainsKey(thekey))
|
||||
toid = dicTrans_StrDone[thekey];
|
||||
else
|
||||
{
|
||||
if (dicTrans_StrIds.ContainsKey(thekey))
|
||||
toid = dicTrans_StrIds[thekey];
|
||||
else
|
||||
{
|
||||
Structure str = Structure.MakeStructure(0, 0, 0, 0);
|
||||
toid = str.StructureID;
|
||||
dicTrans_StrIds.Add(thekey, toid);
|
||||
}
|
||||
}
|
||||
Transition tr = Transition.MakeTransition(fromId, toid, System.Convert.ToInt32(dr["TYPE"].ToString()),0,0,0,0,dts,userid);
|
||||
return tr.TransitionId;
|
||||
}
|
||||
|
||||
private string MigrateTrans(OleDbConnection cn, string textm, string seqcvt, int structId)
|
||||
{
|
||||
StringBuilder trtxt = new StringBuilder();
|
||||
int instance = 0;
|
||||
int beg = 0;
|
||||
DataTable dt = null;
|
||||
DataSet ds = null;
|
||||
OleDbDataAdapter da = null;
|
||||
|
||||
char[] chrtrn = { '\x252C', '\x2566' };
|
||||
int tok = textm.IndexOfAny(chrtrn);
|
||||
if (tok > -1)
|
||||
{
|
||||
string cmd = "SELECT * FROM [tran] WHERE [FROMNUMBER]='" + ProcNumber.Replace("'", "''") + "' AND [FROMSEQUEN] ='" + seqcvt + "' ORDER BY [FROMINSTAN]";
|
||||
da = new OleDbDataAdapter(cmd, cn);
|
||||
// get transition records for this step.
|
||||
ds = new DataSet();
|
||||
try
|
||||
{
|
||||
da.Fill(ds);
|
||||
dt = ds.Tables[0];
|
||||
dt.CaseSensitive = true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.Error("Error getting transitions");
|
||||
log.ErrorFormat("from number = {0} oldstepsequence = {1}", ProcNumber, seqcvt);
|
||||
log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException);
|
||||
return textm;
|
||||
}
|
||||
}
|
||||
while (tok > -1)
|
||||
{
|
||||
// found a transition token, add the token and transition id into the string and
|
||||
// add an transition record for it. Later there may be text added.
|
||||
trtxt.Append(textm.Substring(beg, tok - beg));
|
||||
// we have too many tokens and not enough usage records - report an error...
|
||||
if (instance >= dt.Rows.Count)
|
||||
{
|
||||
log.ErrorFormat("Error - ran out of usage records for step, check data ");
|
||||
log.ErrorFormat("from number = {0} oldstepsequence = {1}", ProcNumber, seqcvt);
|
||||
}
|
||||
else
|
||||
{
|
||||
DataRow dr = dt.Rows[instance];
|
||||
int trid = AddTrans(structId, dr);
|
||||
trtxt.Append(textm[tok]);
|
||||
trtxt.Append("{{");
|
||||
trtxt.Append(trid.ToString());
|
||||
trtxt.Append("}}");
|
||||
}
|
||||
instance++;
|
||||
beg = tok + 1;
|
||||
if (beg > textm.Length)
|
||||
{
|
||||
tok = -1;
|
||||
da.Dispose();
|
||||
}
|
||||
else
|
||||
tok = textm.IndexOfAny(chrtrn, beg);
|
||||
}
|
||||
if (beg < textm.Length - 1)
|
||||
trtxt.Append(textm.Substring(beg, textm.Length - beg));
|
||||
if (dt.Rows.Count > instance + 1)
|
||||
{
|
||||
log.ErrorFormat("Error - extra usage records for step, check data ");
|
||||
log.ErrorFormat("from number = {0} oldstepsequence = {1}", ProcNumber, seqcvt);
|
||||
}
|
||||
return trtxt.ToString();
|
||||
}
|
||||
private void ShowMissingTransitions()
|
||||
{
|
||||
log.Info("Missing Transitions");
|
||||
foreach (string s in dicTrans_StrIds.Keys)
|
||||
{
|
||||
log.InfoFormat("{0} - {1}", s, dicTrans_StrIds[s]);
|
||||
}
|
||||
log.Info("End of Missing Transitions");
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user