Copy data from one table to another

stormcandi
Member Posts: 27
Hello all,
I am still relatively new to Dynamics NAV so am having trouble with this. I created a duplicate table of the Item Journal Line table. I am using that table to archive the data from the original table. I am trying to copy the necessary records from the regular Item Journal Line table to the new archive table but having no luck. This is my code:
However when I run the codeunit that contains this code I get the following error:
'The Item Journal Line Archive already exists. Identification fields and values: Journal Template Name = PHYS. INVE'
There are duplicate values in the Journal Template Name field however that is allowed. I am not sure what I am doing wrong. Any help is greatly appreciated.
Thanks in advance!
Candi
I am still relatively new to Dynamics NAV so am having trouble with this. I created a duplicate table of the Item Journal Line table. I am using that table to archive the data from the original table. I am trying to copy the necessary records from the regular Item Journal Line table to the new archive table but having no luck. This is my code:
Answer := DIALOG.CONFIRM('Are you sure you want to archive this data?'); IF Answer THEN BEGIN "Item Journal Line".SETFILTER("Journal Template Name", 'PHYS. INVE'); IF "Item Journal Line".FIND('-') THEN REPEAT WITH "Item Journal Line Archive" DO BEGIN INIT; "Journal Template Name" := "Item Journal Line"."Journal Template Name"; "Line No." := "Item Journal Line"."Line No."; "Item No." := "Item Journal Line"."Item No."; "Posting Date" := "Item Journal Line"."Posting Date"; "Entry Type" := "Item Journal Line"."Entry Type"; "Source No." := "Item Journal Line"."Source No."; "Document No." := "Item Journal Line"."Document No."; Description := "Item Journal Line".Description; "Location Code" := "Item Journal Line"."Location Code"; "Inventory Posting Group" := "Item Journal Line"."Inventory Posting Group"; "Source Posting Group" := "Item Journal Line"."Source Posting Group"; Quantity := "Item Journal Line".Quantity; "Invoiced Quantity" := "Item Journal Line"."Invoiced Quantity"; "Unit Amount" := "Item Journal Line"."Unit Amount"; "Unit Cost" := "Item Journal Line"."Unit Cost"; Amount := "Item Journal Line".Amount; "Discount Amount" := "Item Journal Line"."Discount Amount"; "Salespers./Purch. Code" := "Item Journal Line"."Salespers./Purch. Code"; "Source Code" := "Item Journal Line"."Source Code"; "Applies-to Entry" := "Item Journal Line"."Applies-to Entry"; "Item Shpt. Entry No." := "Item Journal Line"."Item Shpt. Entry No."; "Shortcut Dimension 1 Code" := "Item Journal Line"."Shortcut Dimension 1 Code"; "Shortcut Dimension 2 Code" := "Item Journal Line"."Shortcut Dimension 2 Code"; "Indirect Cost %" := "Item Journal Line"."Indirect Cost %"; "Source Type" := "Item Journal Line"."Source Type"; "Journal Batch Name" := "Item Journal Line"."Journal Batch Name"; "Reason Code" := "Item Journal Line"."Reason Code"; "Recurring Method" := "Item Journal Line"."Recurring Method"; "Expiration Date" := "Item Journal Line"."Expiration Date"; "Recurring Frequency" := "Item Journal Line"."Recurring Frequency"; "Drop Shipment" := "Item Journal Line"."Drop Shipment"; "Transaction Type" := "Item Journal Line"."Transaction Type"; "Transport Method" := "Item Journal Line"."Transport Method"; "Country/Region Code" := "Item Journal Line"."Country/Region Code"; "New Location Code" := "Item Journal Line"."New Location Code"; "New Shortcut Dimension 1 Code" := "Item Journal Line"."New Shortcut Dimension 1 Code"; "New Shortcut Dimension 2 Code" := "Item Journal Line"."New Shortcut Dimension 2 Code"; "Qty. (Calculated)" := "Item Journal Line"."Qty. (Calculated)"; "Qty. (Phys. Inventory)" := "Item Journal Line"."Qty. (Phys. Inventory)"; "Last Item Ledger Entry No." := "Item Journal Line"."Last Item Ledger Entry No."; "Phys. Inventory" := "Item Journal Line"."Phys. Inventory"; "Gen. Bus. Posting Group" := "Item Journal Line"."Gen. Bus. Posting Group"; "Gen. Prod. Posting Group" := "Item Journal Line"."Gen. Prod. Posting Group"; "Entry/Exit Point" := "Item Journal Line"."Entry/Exit Point"; "Document Date" := "Item Journal Line"."Document Date"; "External Document No." := "Item Journal Line"."External Document No."; Area := "Item Journal Line".Area; "Transaction Specification" := "Item Journal Line"."Transaction Specification"; "Posting No. Series" := "Item Journal Line"."Posting No. Series"; "Reserved Quantity" := "Item Journal Line"."Reserved Quantity"; "Unit Cost (ACY)" := "Item Journal Line"."Unit Cost (ACY)"; "Source Currency Code" := "Item Journal Line"."Source Currency Code"; "Document Type" := "Item Journal Line"."Document Type"; "Document Line No." := "Item Journal Line"."Document Line No."; "Order Type" := "Item Journal Line"."Order Type"; "Order No." := "Item Journal Line"."Order No."; "Order Line No." := "Item Journal Line"."Order Line No."; "Dimension Set ID" := "Item Journal Line"."Dimension Set ID"; "New Dimension Set ID" := "Item Journal Line"."New Dimension Set ID"; "Assemble to Order" := "Item Journal Line"."Assemble to Order"; "Job No." := "Item Journal Line"."Job No."; "Job Task No." := "Item Journal Line"."Job Task No."; "Job Purchase" := "Item Journal Line"."Job Purchase"; "Job Contract Entry No." := "Item Journal Line"."Job Contract Entry No."; "Variant Code" := "Item Journal Line"."Variant Code"; "Bin Code" := "Item Journal Line"."Bin Code"; "Qty. per Unit of Measure" := "Item Journal Line"."Qty. per Unit of Measure"; "New Bin Code" := "Item Journal Line"."New Bin Code"; "Unit of Measure Code" := "Item Journal Line"."Unit of Measure Code"; "Derived from Blanket Order" := "Item Journal Line"."Derived from Blanket Order"; "Quantity (Base)" := "Item Journal Line"."Quantity (Base)"; "Invoiced Qty. (Base)" := "Item Journal Line"."Invoiced Qty. (Base)"; "Reserved Qty. (Base)" := "Item Journal Line"."Reserved Qty. (Base)"; Level := "Item Journal Line".Level; "Flushing Method" := "Item Journal Line"."Flushing Method"; "Changed by User" := "Item Journal Line"."Changed by User"; "Cross-Reference No." := "Item Journal Line"."Cross-Reference No."; "Originally Ordered No." := "Item Journal Line"."Originally Ordered No."; "Originally Ordered Var. Code" := "Item Journal Line"."Originally Ordered Var. Code"; "Out-of-Stock Substitution" := "Item Journal Line"."Out-of-Stock Substitution"; "Item Category Code" := "Item Journal Line"."Item Category Code"; Nonstock := "Item Journal Line".Nonstock; "Purchasing Code" := "Item Journal Line"."Purchasing Code"; "Product Group Code" := "Item Journal Line"."Product Group Code"; "Planned Delivery Date" := "Item Journal Line"."Planned Delivery Date"; "Order Date" := "Item Journal Line"."Order Date"; "Value Entry Type" := "Item Journal Line"."Value Entry Type"; "Item Charge No." := "Item Journal Line"."Item Charge No."; "Inventory Value (Calculated)" := "Item Journal Line"."Inventory Value (Calculated)"; "Inventory Value (Revalued)" := "Item Journal Line"."Inventory Value (Revalued)"; "Variance Type" := "Item Journal Line"."Variance Type"; "Inventory Value Per" := "Item Journal Line"."Inventory Value Per"; "Partial Revaluation" := "Item Journal Line"."Partial Revaluation"; "Applies-from Entry" := "Item Journal Line"."Applies-from Entry"; "Invoice No." := "Item Journal Line"."Invoice No."; "Unit Cost (Calculated)" := "Item Journal Line"."Unit Cost (Calculated)"; "Unit Cost (Revalued)" := "Item Journal Line"."Unit Cost (Revalued)"; "Applied Amount" := "Item Journal Line"."Applied Amount"; "Update Standard Cost" := "Item Journal Line"."Update Standard Cost"; "Amount (ACY)" := "Item Journal Line"."Amount (ACY)"; Correction := "Item Journal Line".Correction; Adjustment := "Item Journal Line".Adjustment; "Applies-to Value Entry" := "Item Journal Line"."Applies-to Value Entry"; "Invoice-to Source No." := "Item Journal Line"."Invoice-to Source No."; Type := "Item Journal Line".Type; "No." := "Item Journal Line"."No."; "Operation No." := "Item Journal Line"."Operation No."; "Work Center No." := "Item Journal Line"."Work Center No."; "Setup Time" := "Item Journal Line"."Setup Time"; "Run Time" := "Item Journal Line"."Run Time"; "Stop Time" := "Item Journal Line"."Stop Time"; "Output Quantity" := "Item Journal Line"."Output Quantity"; "Scrap Quantity" := "Item Journal Line"."Scrap Quantity"; "Concurrent Capacity" := "Item Journal Line"."Concurrent Capacity"; "Setup Time (Base)" := "Item Journal Line"."Setup Time (Base)"; "Run Time (Base)" := "Item Journal Line"."Run Time (Base)"; "Stop Time (Base)" := "Item Journal Line"."Stop Time (Base)"; "Output Quantity (Base)" := "Item Journal Line"."Output Quantity (Base)"; "Scrap Quantity (Base)" := "Item Journal Line"."Scrap Quantity (Base)"; "Cap. Unit of Measure Code" := "Item Journal Line"."Cap. Unit of Measure Code"; "Qty. per Cap. Unit of Measure" := "Item Journal Line"."Qty. per Cap. Unit of Measure"; "Starting Time" := "Item Journal Line"."Starting Time"; "Ending Time" := "Item Journal Line"."Ending Time"; "Routing No." := "Item Journal Line"."Routing No."; "Routing Reference No." := "Item Journal Line"."Routing Reference No."; "Prod. Order Comp. Line No." := "Item Journal Line"."Prod. Order Comp. Line No."; Finished := "Item Journal Line".Finished; "Unit Cost Calculation" := "Item Journal Line"."Unit Cost Calculation"; Subcontracting := "Item Journal Line".Subcontracting; "Stop Code" := "Item Journal Line"."Stop Code"; "Scrap Code" := "Item Journal Line"."Scrap Code"; "Work Center Group Code" := "Item Journal Line"."Work Center Group Code"; "Work Shift Code" := "Item Journal Line"."Work Shift Code"; "Serial No." := "Item Journal Line"."Serial No."; "Lot No." := "Item Journal Line"."Lot No."; "Warranty Date" := "Item Journal Line"."Warranty Date"; "New Serial No." := "Item Journal Line"."New Serial No."; "New Lot No." := "Item Journal Line"."New Lot No."; "New Item Expiration Date" := "Item Journal Line"."New Item Expiration Date"; "Return Reason Code" := "Item Journal Line"."Return Reason Code"; "Warehouse Adjustment" := "Item Journal Line"."Warehouse Adjustment"; "Phys Invt Counting Period Code" := "Item Journal Line"."Phys Invt Counting Period Code"; "Phys Invt Counting Period Type" := "Item Journal Line"."Phys Invt Counting Period Type"; "Original Qty." := "Item Journal Line"."Original Qty."; "Tag No." := "Item Journal Line"."Tag No."; "Qty. Counted" := "Item Journal Line"."Qty. Counted"; "Qty. Counted (Phys. Inv.)" := "Item Journal Line"."Qty. Counted (Phys. Inv.)"; "Item Counted" := "Item Journal Line"."Item Counted"; MonthYear := "Item Journal Line".MonthYear; "Total Cost (Calculated)" := "Item Journal Line"."Total Cost (Calculated)"; "Total Cost (Physical)" := "Item Journal Line"."Total Cost (Physical)"; "Variance (Cost)" := "Item Journal Line"."Variance (Cost)"; "Variance (Qty)" := "Item Journal Line"."Variance (Qty)"; "Variance Exist" := "Item Journal Line"."Variance Exist"; "Input Journal Only" := "Item Journal Line"."Input Journal Only"; "Location Filter" := "Item Journal Line"."Location Filter"; "Overhead Rate" := "Item Journal Line"."Overhead Rate"; "Single-Level Material Cost" := "Item Journal Line"."Single-Level Material Cost"; "Single-Level Capacity Cost" := "Item Journal Line"."Single-Level Capacity Cost"; "Single-Level Subcontrd. Cost" := "Item Journal Line"."Single-Level Subcontrd. Cost"; "Single-Level Cap. Ovhd Cost" := "Item Journal Line"."Single-Level Cap. Ovhd Cost"; "Single-Level Mfg. Ovhd Cost" := "Item Journal Line"."Single-Level Mfg. Ovhd Cost"; "Rolled-up Material Cost" := "Item Journal Line"."Rolled-up Material Cost"; "Rolled-up Capacity Cost" := "Item Journal Line"."Rolled-up Capacity Cost"; "Rolled-up Subcontracted Cost" := "Item Journal Line"."Rolled-up Subcontracted Cost"; "Rolled-up Mfg. Ovhd Cost" := "Item Journal Line"."Rolled-up Mfg. Ovhd Cost"; "Rolled-up Cap. Overhead Cost" := "Item Journal Line"."Rolled-up Cap. Overhead Cost"; INSERT; END; UNTIL "Item Journal Line".NEXT = 0; MESSAGE('Data archived.'); END;
However when I run the codeunit that contains this code I get the following error:
'The Item Journal Line Archive already exists. Identification fields and values: Journal Template Name = PHYS. INVE'
There are duplicate values in the Journal Template Name field however that is allowed. I am not sure what I am doing wrong. Any help is greatly appreciated.
Thanks in advance!
Candi
0
Answers
-
the primary key of your archive table is set to just one ( i assume the first ) field, that is the cause of the error you are getting. But even if you change the key to the same as the original table, this would not work : Over time there will be more than one Item Journal Line with Template X, Batch Y and Line Z ( the key of table 83, if i am not mistaken ), so you need to add something to be aboe to distinguish between those ( a date or time, maybe )
Also.....you could have reduced that wall of code with just one TRANSFERFIELDS.0 -
MBerger wrote:the primary key of your archive table is set to just one ( i assume the first ) field, that is the cause of the error you are getting. But even if you change the key to the same as the original table, this would not work : Over time there will be more than one Item Journal Line with Template X, Batch Y and Line Z ( the key of table 83, if i am not mistaken ), so you need to add something to be aboe to distinguish between those ( a date or time, maybe )MBerger wrote:Also.....you could have reduced that wall of code with just one TRANSFERFIELDS.
Next to that from a best practice point of view I would say: you 'should'. Have a look at how archiving is done in NAV and also how posted documents are created (i.e. copied form the unposted version)0 -
lvanvugt wrote:True, however I would archive it as is and add a new field called Entry No. (data type Integer) like on ledger entry tables and making this the only PK field.
I would also make that "Entry No." field an AutoIncrement integer. Then set secondary keys based on how I intended to view or report the data. The keys from the original table would be a guide, but only create what is needed.There are no bugs - only undocumented features.0 -
Everyone, Thank you for your comments. I was able to make it work following your suggestions. I also was not aware of the TRANFERFIELDS function. I will look into that and start using it!
\:D/0 -
And use FINDSET instead of FIND('-') for a case like this.0
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