My first attempt at Migration and Task 500 failed:
Error Staging Tables Migration Mobility_UDMigration.sql Conversion failed when converting date and/or time from character string.
So I take a peek at the Mobility_UDMigration.sql file:
/*
Requester: Alex Hudson
Date: 11/12/2013
SCR: 132243
Mobility UD data migration:
Old Table Old Field New Table New Field
--------------- --------------- ----------------------- -----------------------------------
UD39 Key1 FSAssetClass FSAssetClassCode -- no migration needed since it's a new table
UD39 Character01 FSAssetClass FSAssetClassDesc -- no migration needed since it's a new table
UD38 Key1 FSAssetCondition FSAssetConditionCode -- no migration needed since it's a new table
UD38 Character01 FSAssetCondition FSAssetConditionDesc -- no migration needed since it's a new table
SerialNo Number10 SerialNo Longitude
SerialNo Number09 SerialNo Latitude
SerialNo Number08 SerialNo Altitude
SerialNo Character10 SerialNo FSAssetClassCode
SerialNo Character09 SerialNo FSServiceLevelAgreement
SerialNo Character08 SerialNo MeterReading
UD40 Key1 FSAssetState ConditionLine -- no migration needed since it's a new table
UD40 Key2 FSAssetState PartNum Asset -- no migration needed since it's a new table
UD40 Key3 FSAssetState SerialNumber -- no migration needed since it's a new table
UD40 Date01 FSAssetState RecordedDate -- no migration needed since it's a new table
UD40 Character01 FSAssetState FSAssetConditionCode -- no migration needed since it's a new table
UD40 ShortChar02 FSAssetState JobNum -- no migration needed since it's a new table
UD40 Numeric01 FSAssetState AssemblySeq -- no migration needed since it's a new table
UD40 Numeric02 FSAssetState OprSeq -- no migration needed since it's a new table
UD40 ShortChar03 FSAssetState ResourceID -- no migration needed since it's a new table
UD40 Character02 FSAssetState Comments -- no migration needed since it's a new table
JobOper ShortChar08 JobOper ActualStartDate, ActualStartHour
JobOper ShortChar09 JobOper ActualEndDate, ActualEndHour
JobOper ShortChar10 JobOper FSJobStatus
EmpBasic ShortChar09 EmpBasic MobileResourceID
*/
-- SerialNo
WITH SerialNoCTE (Company, PartNum, SerialNumber, Number10, Number09, Number08, Character10, Character09, Character08) AS
(
SELECT Company, PartNum, SerialNumber, Number10, Number09, Number08, Character10, Character09, Character08
FROM <Link Server Name>.<DB Name>.dbo.SerialNo
)
UPDATE Erp.SerialNo
SET Longitude = Number10,
Latitude = Number09,
Altitude = Number08,
FSAssetClassCode = Character10,
FSServiceLevelAgreement = Character09,
MeterReading = Character08
FROM Erp.SerialNo AS a
JOIN SerialNoCTE AS b ON a.Company = b.Company AND a.PartNum = b.PartNum AND a.SerialNumber = b.SerialNumber;
-- JobOper
WITH JobOperCTE (Company, JobNum, AssemblySeq, OprSeq, ShortChar08, ShortChar09, ShortChar10) AS
(
SELECT Company, JobNum, AssemblySeq, OprSeq, ShortChar08, ShortChar09, ShortChar10
FROM <Link Server Name>.<DB Name>.dbo.JobOper
)
UPDATE Erp.JobOper
SET ActualStartDate = CONVERT(DATE,CAST(ShortChar08 AS datetimeoffset)),
ActualStartHour = DATEPART(HOUR,CAST(ShortChar08 AS datetimeoffset)),
ActualEndDate = CONVERT(DATE,CAST(ShortChar09 AS datetimeoffset)),
ActualEndHour = DATEPART(HOUR,CAST(ShortChar09 AS datetimeoffset)),
FSJobStatus = ShortChar10
FROM Erp.JobOper AS a
JOIN JobOperCTE AS b ON a.Company = b.Company AND a.JobNum = b.JobNum AND a.AssemblySeq = b.AssemblySeq AND a.OprSeq = b.OprSeq;
-- EmpBasic
WITH EmpBasicCTE (Company, EmpID, ShortChar09) AS
(
SELECT Company, EmpID, ShortChar09
FROM <Link Server Name>.<DB Name>.dbo.EmpBasic
)
UPDATE Erp.EmpBasic
SET MobileResourceID = ShortChar09
FROM Erp.EmpBasic AS a
JOIN EmpBasicCTE AS b ON a.Company = b.Company AND a.EmpID = b.EmpID;
WTH do I need that for??????