Collecting Customer Requirements
I've implemented a new system to capture customer requirements for the calibration of their assets.
It's still quite new, so will probably evolve, but I thought I would share anyway. If anyone has comments/suggestions I'd be interested to hear them.
James
The Data Check SQL....
DECLARE @cursor_nAssetUID UNIQUEIDENTIFIER;
DECLARE @cursor_nCallSheetUID UNIQUEIDENTIFIER;
DECLARE @cursor_cID NVARCHAR(60);
DECLARE @cursor_cCallSheetNumber NVARCHAR(10);
DECLARE @XML XML;
DECLARE callsheet_cursor CURSOR FOR
SELECT vw_assetswithex.nassetuid,
vw_callsheets.ncallsheetuid,
vw_assetswithex.cid,
vw_callsheets.ccallsheetnumber,
vw_assetswithex.mfield1
FROM vw_assetswithex
LEFT JOIN vw_callsheets
ON vw_assetswithex.nassetuid = vw_callsheets.nassetuid
WHERE vw_callsheets.lclosed = 0
AND vw_callsheets.ldeleted = 0
AND vw_assetswithex.mfield1 LIKE '<request>%';
OPEN callsheet_cursor;
FETCH next FROM callsheet_cursor INTO @cursor_nAssetUID, @cursor_nCallSheetUID,
@cursor_cID, @cursor_cCallSheetNumber, @XML;
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @cursor_cID
+ ' has requirements to copy into callsheet';
-- Inserting a new callsheet log note.
BEGIN
INSERT INTO metteam.dbo.callsheetlog
(ncallsheetloguid,
ncallsheetuid,
nuseruid,
tdate,
cstatus,
ctype,
clocation,
mlognote,
lactive,
ldeleted,
lapproved,
ladded,
naddfacilityuid,
nadduseruid,
taddtime)
VALUES ( Newid(),
@cursor_nCallSheetUID,
'9EA3CC4F-EEA6-4915-9FC8-2AC80B160727',
(SELECT n.value('.', 'varchar(max)') AS value
FROM @XML.nodes('/request/date_requested') AS T(n))
--GETUTCDATE()
,
'Customer Requirements',
'Test type',
'Submitted online',
'Requested by: '
+ (SELECT n.value('.', 'varchar(max)') AS value
FROM @XML.nodes('/request/email') AS T(n))
+ Char(10) + 'Date Required: '
+ (SELECT n.value('.', 'varchar(max)') AS value
FROM @XML.nodes('/request/required_by') AS T(n))
+ Char(10) + 'Required Period: '
+ (SELECT n.value('.', 'varchar(max)') AS value
FROM @XML.nodes('/request/required_period') AS T(n)
)
+ ' Months' + Char(10)
+ 'Technical Requirements: '
+ (SELECT n.value('.', 'varchar(max)') AS value
FROM @XML.nodes('/request/requirements') AS T(n))
+ Char(10) + 'Booking Code: '
+ (SELECT n.value('.', 'varchar(max)') AS value
FROM @XML.nodes('/request/booking_code') AS T(n))
+ Char(10),
-1,
0,
0,
-1,
'26D90290-F83B-419D-8589-34A8C86BB449',
'9EA3CC4F-EEA6-4915-9FC8-2A580C160727',
(SELECT n.value('.', 'varchar(max)') AS value
FROM @XML.nodes('/request/date_requested') AS T(n))
--GETUTCDATE()
)
END;
BEGIN
-- Update callsheet required date
UPDATE callsheets
SET trequireddate = (SELECT n.value('.', 'varchar(max)') AS value
FROM @XML.nodes('/request/required_by') AS T
(n
)),
cinterval = (SELECT n.value('.', 'varchar(max)') AS value
FROM @XML.nodes('/request/required_period') AS T
(n
)),
cintervaluom = 'Months'
WHERE ncallsheetuid = @cursor_nCallSheetUID;
END;
BEGIN
-- Remove the xml data from AssetEx.mField1
UPDATE assetex
SET mfield1 = NULL
WHERE nassetuid = @cursor_nAssetUID
AND mfield1 LIKE '<request>%';
END;
FETCH next FROM callsheet_cursor INTO @cursor_nAssetUID,
@cursor_nCallSheetUID, @cursor_cID, @cursor_cCallSheetNumber, @XML;
END;
CLOSE callsheet_cursor;
DEALLOCATE callsheet_cursor;
Please sign in to leave a comment.