System Message 9 - Item Not Found when you select the Item Xref button in Inventory Items

This article provides a resolution for the issue that you may receive an Item Not Found error when you select the Item Xref button in Inventory Items in Microsoft Dynamics SL.

Applies to:   Microsoft Dynamics SL
Original KB number:   2953085

Symptoms

When you select the Item Xref button in Inventory Items after you enter a new inventory item, you receive an error message:

System Message 9 Item not found

Resolution

Use the following trigger (added set nocount on):

alter TRIGGER ADG_TR_InvtDescrXref_Add 
ON dbo.Inventory FOR INSERT, 
UPDATE
   AS 
   DECLARE @InvtID varchar(30) 
   DECLARE @Descr varchar(60) 
   DECLARE @TranStatusCode varchar(2) 
   DECLARE @RowsAffected int 
   DECLARE @OMInstalled smallint 
   SELECT
      @RowsAffected = @@ROWCOUNT 
   set
      nocount 
      on IF @RowsAffected = 1 
      BEGIN
         IF 
         UPDATE
(Descr) 
            BEGIN
               SELECT
                  @InvtID = InvtID,
                  @Descr = Descr 
               from
                  DELETED EXECUTE ADG_InvtDescrXref_Delete @InvtID,
                  @Descr 
                  SELECT
                     @InvtID = InvtID,
                     @Descr = Descr 
                  from
                     INSERTED EXECUTE ADG_InvtDescrXref_Add @InvtID,
                     @Descr 
            END
            IF 
            UPDATE
(TranStatusCode) 
               BEGIN
                  Select
                     @OMInstalled = count(*) 
                  from
                     SOSetup (NOLOCK) IF @OMInstalled > 0 
                     BEGIN
                        SELECT
                           @InvtID = InvtID,
                           @TranStatusCode = TranStatusCode 
                        from
                           INSERTED EXECUTE ADG_ProcessMGr_PlnIn_CrtSh @InvtID,
                           @TranStatusCode 
                     END
               END
      END
      IF @RowsAffected > 1 
      BEGIN
         IF 
         UPDATE
(Descr) 
            BEGIN
               DECLARE DelCursor SCROLL CURSOR FOR 
               SELECT
                  InvtID,
                  Descr 
               FROM
                  DELETED OPEN DelCursor FETCH FIRST 
               FROM
                  DelCursor INTO @InvtID,
                  @Descr WHILE (@@FETCH_STATUS = 0) 
                  BEGIN
                     EXECUTE ADG_InvtDescrXref_Delete @InvtID,
                     @Descr FETCH NEXT 
               FROM
                  DelCursor INTO @InvtID,
                  @Descr 
                  END
                  CLOSE DelCursor DEALLOCATE DelCursor 
                  DECLARE InsCursor SCROLL CURSOR FOR 
                  SELECT
                     InvtID,
                     Descr 
                  FROM
                     INSERTED OPEN InsCursor FETCH FIRST 
                  FROM
                     InsCursor INTO @InvtID,
                     @Descr WHILE (@@FETCH_STATUS = 0) 
                     BEGIN
                        EXECUTE ADG_InvtDescrXref_Add @InvtID,
                        @Descr FETCH NEXT 
                  FROM
                     InsCursor INTO @InvtID,
                     @Descr 
                     END
                     CLOSE InsCursor DEALLOCATE InsCursor 
            END
            IF 
            UPDATE
(TranStatusCode) 
               BEGIN
                  Select
                     @OMInstalled = count(*) 
                  from
                     SOSetup (NOLOCK) IF @OMInstalled > 0 
                     BEGIN
                        DECLARE InsCursor SCROLL CURSOR FOR 
                        SELECT
                           InvtID,
                           TranStatusCode 
                        FROM
                           INSERTED OPEN InsCursor FETCH FIRST 
                        FROM
                           InsCursor INTO @InvtID,
                           @TranStatusCode WHILE (@@FETCH_STATUS = 0) 
                           BEGIN
                              EXECUTE ADG_ProcessMgr_PlnIn_CrtSh @InvtID,
                              @TranStatusCode FETCH NEXT 
                        FROM
                           InsCursor INTO @InvtID,
                           @TranStatusCode 
                           END
                           CLOSE InsCursor DEALLOCATE InsCursor 
                     END
               END
      END