I want to INSERT item from SQL, Anybody have statndard SQL Query or list of table name ?

Rajanikantgohil
Member Posts: 2
I want INSERT query for sql to NAV or list table tame for ITEM.
0
Best Answer
-
Create a new table in NAV That has no validation, and simply contains the core data you need to create an Item. Populate this table direct from SQL.
Then in NAV have a job that runs through this new table and inserts items, something likeMySQLItem.Reset MySQLItem.Setrange(Created,FALSE) IF MySQLItem.FINDSET THEN REPEAT Item.INIT; Item.VALIDATE("no.",MySQLItem.ItemNo); IF Item.INSERT(TRUE) THEN BEGIN Item.VALIDATE("Some Field",MySQLItem.MoreFields...); ...... Item.MODIFY(TRUE); END; MySQLItem..Created := TRUE; MySQLItem.MODIFY; UNTIL MySQLItem.NEXT = 0;
David Singleton1
Answers
-
Dont do until and unless its your custom table and you know all the possible outcomes.Thanks
Blog - rockwithnav.wordpress.com/
Twitter - https://twitter.com/RockwithNav
Facebook - https://facebook.com/rockwithnav/0 -
actually, it is very dangerous, since you know all the triggers for fields0
-
Another problem is related to the behavior of the NAV service tier cache. Since "Item" is a commonly used table I'd say it's safe to assume many of its records would often be cached on the service tiers. Any changes made via direct SQL would not become apparent to other users until something else triggered an update of the cache. This is a common problem with direct to SQL updates with the 3 tier environments.
There are no bugs - only undocumented features.0 -
Create a new table in NAV That has no validation, and simply contains the core data you need to create an Item. Populate this table direct from SQL.
Then in NAV have a job that runs through this new table and inserts items, something likeMySQLItem.Reset MySQLItem.Setrange(Created,FALSE) IF MySQLItem.FINDSET THEN REPEAT Item.INIT; Item.VALIDATE("no.",MySQLItem.ItemNo); IF Item.INSERT(TRUE) THEN BEGIN Item.VALIDATE("Some Field",MySQLItem.MoreFields...); ...... Item.MODIFY(TRUE); END; MySQLItem..Created := TRUE; MySQLItem.MODIFY; UNTIL MySQLItem.NEXT = 0;
David Singleton1
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