0

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.