Enterprise Business Solution Specialists in Atlanta, Charlotte and Tampa

Enterprise Scheduler: Script to Load/Reload Tech Events

November 17th, 2008 by Jack Sowers

The Enterprise Scheduler installation provides a SQL stored procedure, SCH_Schedule_Reseed, which will load/reload service call and project data in the Schedule from standard Dynamics GP data.  However, it does not load/reload the data from the Dynamics GP Technician Schedule table, SVC00101.  In order to load/reload these events in the Schedule, the following script can be used to create a SQL stored procedure, SVC_Schedule_Reseed_Tech_Events.  Once the stored procedure is created, the script can be run with the command ‘EXEC SCH_Schedule_Reseed_Tech_Events’.  This script should be incorporated in the next release of the Enterprise Scheduler.

/****** Object: StoredProcedure [dbo].[SCH_Schedule_Reseed_Tech_Events] Script Date: 11/17/2008 09:19:54 ******/

SET ANSI_NULLS OFF

GO

SET QUOTED_IDENTIFIER OFF

GO

CREATE procedure [dbo].[SCH_Schedule_Reseed_Tech_Events]

as

DECLARE @NUMREC INT,

@DEXROWID INT,

@TECHID CHAR(11),

@STRTDATE DATETIME,

@STRTTIME DATETIME,

@ENDDATE DATETIME,

@ENDTME DATETIME,

@TECHSTAT char(11),

@TECHID2 char(11),

@Key1Str CHAR(15),

@Key2Str CHAR(15),

@Key1Int SMALLINT,

@SCH_Display_Name CHAR(31),

@lDummyDate DATETIME

DECLARE TechEventCursor CURSOR LOCAL FAST_FORWARD

FOR SELECT TECHID,

STRTDATE,

STRTTIME,

ENDDATE,

ENDTME,

TECHSTAT,

TECHID2,

DEX_ROW_ID

FROM dbo.SVC00101 WITH (ROWLOCK, UPDLOCK)

OPEN TechEventCursor

FETCH NEXT FROM TechEventCursor INTO @TECHID, @STRTDATE, @STRTTIME, @ENDDATE, @ENDTME, @TECHSTAT, @TECHID2, @DEXROWID

WHILE @@fetch_status = 0

BEGIN

If @TECHSTAT = ‘AVAIL’

BEGIN

return

END

If (@STRTDATE = @lDummyDate or @ENDTME = @lDummyDate)

BEGIN

return

END

Select @NUMREC = Count(*) from SCH_Schedule where Key2Str = rtrim(ltrim(@TECHID)) + rtrim(ltrim(convert(varchar(10), @DEXROWID)))

If @NUMREC > 0

BEGIN

UPDATE SCH_Schedule

SET [ModuleId]= 999,

[Key1Str] = @TECHSTAT,

[Key2Str] = rtrim(ltrim(@TECHID)) + rtrim(ltrim(convert(varchar(10), @DEXROWID))),

[Key1Int] = 2,

[LineSeq] = 1,

[TECHID] = @TECHID,

[StartDate] = @STRTDATE,

[StartTime] = @ENDDATE,

[EndDate] = @ENDDATE,

[EndTime] = @ENDTME,

[SCH_Schedule_Status] = 1,

[SCH_Display_Name] = @TECHSTAT,

[NOTEINDX] = 0.00000

WHERE Key2Str = rtrim(ltrim(@TECHID)) + rtrim(ltrim(convert(varchar(10), @DEXROWID)))

END

ELSE

BEGIN

INSERT INTO SCH_Schedule

([ModuleId]

,[Key1Str]

,[Key2Str]

,[Key1Int]

,[LineSeq]

,[TECHID]

,[StartDate]

,[StartTime]

,[EndDate]

,[EndTime]

,[SCH_Schedule_Status]

,[SCH_Display_Name]

,[NOTEINDX])

VALUES

(

999

,@TECHSTAT

,rtrim(ltrim(@TECHID)) + rtrim(ltrim(convert(varchar(10), @DEXROWID)))

,2

,1

,@TECHID

,@STRTDATE

,@STRTTIME

,@ENDDATE

,@ENDTME

,1

,@TECHSTAT

,0.00000)

END

FETCH NEXT FROM TechEventCursor INTO @TECHID, @STRTDATE, @STRTTIME, @ENDDATE, @ENDTME, @TECHSTAT, @TECHID2, @DEXROWID

END

CLOSE TechEventCursor

DEALLOCATE TechEventCursor

Leave a Reply