Fatal Internal Error - Custom Code

gvolkov
Member Posts: 196
Guys, i have a function that evaluates some conditions and then based on those conditions prints up to 3 reports. At times "Fatal Internal Error" happens and i suspect that this code is causing this error. I can see some obvious enhancements this code could use, but not sure if it would be the cause for "Fatal Internal Error". Do you see anything?
PROCEDURE PrintSingleOrders@1000000011(LOrfulRec@1000000001 : Record 50067); VAR LTempSalesRec@1000000002 : TEMPORARY Record 36; LSalesHeadRec@1000000003 : Record 36; SalesLine@1000000000 : Record 37; OddOkay@1000000004 : Boolean; EvenOkay@1000000005 : Boolean; OtherOkay@1000000006 : Boolean; Item@1000000007 : Record 27; ShelfNumber@1000000008 : Integer; ShelfNumberText@1000000009 : Text[30]; Text50000@1000000010 : TextConst 'ENU=Odd Shelves printed - %1\Even Shelves Printed - %2\Other Shelves Printed - %3'; BEGIN IF LSalesHeadRec.GET(LSalesHeadRec."Document Type"::Order,LOrfulRec."No.") THEN BEGIN LSalesHeadRec.SETRECFILTER; COMMIT; OtherOkay := FALSE; EvenOkay := FALSE; OddOkay := FALSE; SalesLine.SETRANGE("Document No.",LSalesHeadRec."No."); SalesLine.SETRANGE(Type,SalesLine.Type::Item); SalesLine.SETFILTER("Outstanding Quantity",'<>0'); IF SalesLine.FINDSET THEN REPEAT //ODD IF Item.GET(SalesLine."No.") THEN IF STRLEN(Item."Shelf No.") = 0 THEN OddOkay := FALSE; IF Item."Shelf No." <> '' THEN BEGIN IF STRLEN(Item."Shelf No.") > 0 THEN IF EVALUATE(ShelfNumber,COPYSTR(Item."Shelf No.",STRLEN(Item."Shelf No."),1)) THEN ShelfNumber := ShelfNumber ELSE ShelfNumberText := COPYSTR(Item."Shelf No.",STRLEN(Item."Shelf No."),1); IF ((ShelfNumber MOD 2 = 0) OR NOT (EVALUATE(ShelfNumber,COPYSTR(Item."Shelf No.",STRLEN(Item."Shelf No."),1)))) OR (Item."Shelf No." = '') THEN BEGIN OddOkay := FALSE; IF ShelfNumberText = '' THEN OddOkay := FALSE; END ELSE BEGIN OddOkay := TRUE; END; END; UNTIL (OddOkay = TRUE) OR (SalesLine.NEXT = 0); SalesLine.FINDSET; IF SalesLine.FINDSET THEN REPEAT //EVEN IF Item.GET(SalesLine."No.") THEN IF STRLEN(Item."Shelf No.") = 0 THEN EvenOkay := FALSE; IF Item."Shelf No." <> '' THEN BEGIN IF STRLEN(Item."Shelf No.") > 0 THEN IF EVALUATE(ShelfNumber,COPYSTR(Item."Shelf No.",STRLEN(Item."Shelf No."),1)) THEN ShelfNumber := ShelfNumber ELSE ShelfNumberText := COPYSTR(Item."Shelf No.",STRLEN(Item."Shelf No."),1); IF ((ShelfNumber MOD 2 <> 0) OR NOT (EVALUATE(ShelfNumber,COPYSTR(Item."Shelf No.",STRLEN(Item."Shelf No."),1)))) OR (Item."Shelf No." = '') THEN BEGIN EvenOkay := FALSE; IF ShelfNumberText = '' THEN EvenOkay := FALSE; END ELSE BEGIN EvenOkay := TRUE; END; END; UNTIL (EvenOkay = TRUE) OR (SalesLine.NEXT = 0); SalesLine.FINDSET; IF SalesLine.FINDSET THEN REPEAT //Other IF Item.GET(SalesLine."No.") THEN IF STRLEN(Item."Shelf No.") > 0 THEN IF ((Item."Shelf No." <> '') AND (EVALUATE(ShelfNumber,COPYSTR(Item."Shelf No.",STRLEN(Item."Shelf No."),1)))) OR (Item."Shelf No." = '') THEN BEGIN OtherOkay := FALSE; END ELSE BEGIN OtherOkay := TRUE; END; IF Item."Shelf No." = '' THEN OtherOkay := TRUE; UNTIL (OtherOkay = TRUE) OR (SalesLine.NEXT = 0); MESSAGE(Text50000,OddOkay,EvenOkay,OtherOkay); IF EvenOkay THEN REPORT.RUNMODAL(REPORT::"Picking List by Order E",FALSE,FALSE,LSalesHeadRec); IF OddOkay THEN REPORT.RUNMODAL(REPORT::"Picking List by Order O",FALSE,FALSE,LSalesHeadRec); IF OtherOkay THEN REPORT.RUNMODAL(REPORT::"Picking List by Order U",FALSE,FALSE,LSalesHeadRec); LOrfulRec."Pick Printed Date" := TODAY; LOrfulRec."Pick Ticket Printed Time" := TIME; END; END;
Microsoft Certified Technology Specialist
Microsoft Certified Business Management Solutions Professional
Microsoft Certified Business Management Solutions Specialist
http://www.navisiontech.com
Microsoft Certified Business Management Solutions Professional
Microsoft Certified Business Management Solutions Specialist
http://www.navisiontech.com
0
Comments
-
What does the "Fatal Internal Error" say?
Tino Ruijs
Microsoft Dynamics NAV specialist0 -
well, that is it, there is no more detail, although i did not check the event log, probably should.Microsoft Certified Technology Specialist
Microsoft Certified Business Management Solutions Professional
Microsoft Certified Business Management Solutions Specialist
http://www.navisiontech.com0 -
I see nothing strange in your code.
Maybe it works when you put a SLEEP(1000) or something between the printing of the documents?
And perhaps this thread can lead you the right way; viewtopic.php?f=23&t=31386&hilit=fatal+internal+error
Do you have the latest build installed?
Tino Ruijs
Microsoft Dynamics NAV specialist0
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions