{"id":263,"date":"2016-03-14T19:39:01","date_gmt":"2016-03-14T19:39:01","guid":{"rendered":"https:\/\/ricardomoinhos.com\/?p=263"},"modified":"2016-06-02T20:48:30","modified_gmt":"2016-06-02T20:48:30","slug":"showing-item-tracking-lines","status":"publish","type":"post","link":"https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/","title":{"rendered":"Showing item tracking lines in layouts (invoice, orders, transfers, etc)"},"content":{"rendered":"<p>As you may already have notice, standard commercial layouts (invoice, credit memo, order, etc) don\u2019t show item tracking lines.<br \/>\nEverytime our customers need to have this, they ask us to show the item tracking lines below each item line. Here\u2019s how I did it, following the standard way available in the Sales \u2013 Shipment report (R208), with a few improvements, to show it line by line.<\/p>\n<p>This solution works, at least, with NAV 2009, NAV 2015 and NAV2016.<\/p>\n<p>First of all, in codeunit 6500 \u2013 Item Tracking Management, you need to create a new function, similar to the existing RetrieveDocumentItemTracking, but related with each line:<\/p>\n<blockquote>\n<pre><em>PROCEDURE RetrieveDocumentItemTrackingLine@115(VAR TrackingSpecBuffer@1003 : TEMPORARY Record 336;SourceID@1000 : Code[20];SourceType@1001 : Integer;SourceSubType@1002 : Option;SourceRefNo@1004 : Integer) : Integer;<\/em>\r\n<em>\u00a0\u00a0\u00a0 BEGIN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/RPM,sn<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ retrieves Item Tracking for Sales Invoice Line<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 TrackingSpecBuffer.DELETEALL;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 CASE SourceType OF<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0DATABASE::\"Purchase Header\":<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0RDITPurchaseLine(TrackingSpecBuffer,SourceID,SourceSubType,SourceRefNo);<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0DATABASE::\"Sales Header\":<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0RDITSalesLine(TrackingSpecBuffer,SourceID,SourceSubType,SourceRefNo);<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0DATABASE::\"Sales Cr.Memo Header\":<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0RDITSalesCrMemoLine(TrackingSpecBuffer,SourceID,SourceRefNo);<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 DATABASE::\"Sales Invoice Header\":<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 RDITSalesInvoiceLine(TrackingSpecBuffer,SourceID,SourceRefNo);<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 DATABASE::\"Transfer Shipment Header\":<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 RDITTransferShipmentLine(TrackingSpecBuffer,SourceID,SourceRefNo);<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0DATABASE::\"Return Receipt Header\":<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0RDITReturnReceiptLine(TrackingSpecBuffer,SourceID,SourceRefNo);<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ELSE<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ERROR(Text009,SourceType);<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 END;<\/em>\r\n\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 TrackingSpecBuffer.RESET;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 EXIT(TrackingSpecBuffer.COUNT);<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/RPM<\/em><em>,en<\/em>\r\n<em>\u00a0\u00a0\u00a0 END;<\/em><\/pre>\n<\/blockquote>\n<p>As you can see, I\u2019m already preparing it for almost all documents (services documents are missing).<br \/>\nThen you have to create the methods to retrieve each document\u2019s item tracking line.<\/p>\n<blockquote>\n<pre><em>LOCAL PROCEDURE RDITSalesInvoiceLine@114(VAR TempTrackingSpecBuffer@1000 : TEMPORARY Record 336;SourceID@1001 : Code[20];SourceRefNo@1005 : Integer);<\/em>\r\n<em>\u00a0\u00a0\u00a0 VAR<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 SalesInvoiceLine@1002 : Record 113;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 Item@1003 : Record 27;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 Descr@1004 : Text[50];<\/em>\r\n<em>\u00a0\u00a0\u00a0 BEGIN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/RPM,sn<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 SalesInvoiceLine.SETRANGE(\"Document No.\",SourceID);<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 SalesInvoiceLine.SETRANGE(\"Line No.\",SourceRefNo);<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 IF NOT SalesInvoiceLine.ISEMPTY THEN BEGIN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 SalesInvoiceLine.FINDSET;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 REPEAT<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 IF (SalesInvoiceLine.Type = SalesInvoiceLine.Type::Item) AND<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (SalesInvoiceLine.\"No.\" &lt;&gt; '') AND<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (SalesInvoiceLine.\"Quantity (Base)\" &lt;&gt; 0)<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 THEN BEGIN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 IF Item.GET(SalesInvoiceLine.\"No.\") THEN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Descr := Item.Description;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 FindValueEntries(TempTrackingSpecBuffer,DATABASE::\"Sales Invoice Line\",<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0,SalesInvoiceLine.\"Document No.\",'',0,SalesInvoiceLine.\"Line No.\",Descr);<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 END;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 UNTIL SalesInvoiceLine.NEXT = 0;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 END;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/RPM,en<\/em>\r\n<em>\u00a0\u00a0\u00a0 END;<\/em>\r\n<em>\u00a0<\/em>\r\n<em>\u00a0\u00a0\u00a0 LOCAL PROCEDURE RDITTransferShipmentLine@116(VAR TempTrackingSpecBuffer@1000 : TEMPORARY Record 336;SourceID@1001 : Code[20];SourceRefNo@1005 : Integer);<\/em>\r\n<em>\u00a0\u00a0\u00a0 VAR<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 TransferShptLine@1002 : Record 5745;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 Item@1003 : Record 27;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 Descr@1004 : Text[50];<\/em>\r\n<em>\u00a0\u00a0\u00a0 BEGIN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/RPM,sn<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 TransferShptLine.SETRANGE(\"Document No.\",SourceID);<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 TransferShptLine.SETRANGE(\"Line No.\",SourceRefNo);<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 IF NOT TransferShptLine.ISEMPTY THEN BEGIN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TransferShptLine.FINDSET;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 REPEAT<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 IF (TransferShptLine.\"Item No.\" &lt;&gt; '') AND<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (TransferShptLine.\"Quantity (Base)\" &lt;&gt; 0)<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 THEN BEGIN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 IF Item.GET(TransferShptLine.\"Item No.\") THEN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Descr := Item.Description;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 FindItemEntries(TempTrackingSpecBuffer,DATABASE::\"Transfer Shipment Line\",<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0,TransferShptLine.\"Document No.\",'',0,TransferShptLine.\"Line No.\",Descr);<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 END;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 UNTIL TransferShptLine.NEXT = 0;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 END;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/RPM,en<\/em>\r\n<em>\u00a0\u00a0\u00a0 END;<\/em>\r\n<em>\u00a0<\/em>\r\n<em>LOCAL RDITPurchaseLine(VAR TempTrackingSpecBuffer : TEMPORARY Record \"Tracking Specification\";SourceID : Code[20];SourceSubType : Option;SourceRefNo : Integer)<\/em>\r\n<em>\/\/RPM,sn<\/em>\r\n<em>PurchaseLine.SETRANGE(\"Document Type\",SourceSubType);<\/em>\r\n<em>PurchaseLine.SETRANGE(\"Document No.\",SourceID);<\/em>\r\n<em>PurchaseLine.SETRANGE(\"Line No.\",SourceRefNo);<\/em>\r\n<em>IF NOT PurchaseLine.ISEMPTY THEN BEGIN<\/em>\r\n<em>\u00a0 PurchaseLine.FINDSET;<\/em>\r\n<em>\u00a0 REPEAT<\/em>\r\n<em>\u00a0<\/em>\r\n<em>\u00a0\u00a0\u00a0 IF (PurchaseLine.Type = PurchaseLine.Type::Item) AND<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (PurchaseLine.\"Quantity (Base)\" &lt;&gt; 0) THEN BEGIN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 IF Item.GET(PurchaseLine.\"No.\") THEN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Descr := Item.Description;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 FindReservEntries(TempTrackingSpecBuffer,DATABASE::\"Purchase Line\",PurchaseLine.\"Document Type\",<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 PurchaseLine.\"Document No.\",'',0,PurchaseLine.\"Line No.\",Descr);<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 FindTrackingEntries(TempTrackingSpecBuffer,DATABASE::\"Purchase Line\",PurchaseLine.\"Document Type\",<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 PurchaseLine.\"Document No.\",'',0,PurchaseLine.\"Line No.\",Descr);<\/em>\r\n<em>\u00a0\u00a0\u00a0 END;<\/em>\r\n<em>\u00a0 UNTIL PurchaseLine.NEXT = 0;<\/em>\r\n<em>END;<\/em>\r\n<em>\/\/RPM,en<\/em>\r\n<em>\u00a0<\/em>\r\n<em>LOCAL RDITSalesLine(VAR TempTrackingSpecBuffer : TEMPORARY Record \"Tracking Specification\";SourceID : Code[20];SourceSubType : Option;SourceRefNo : Integer)<\/em>\r\n<em>\/\/RPM,sn<\/em>\r\n<em>SalesLine.SETRANGE(\"Document Type\",SourceSubType);<\/em>\r\n<em>SalesLine.SETRANGE(\"Document No.\",SourceID);<\/em>\r\n<em>SalesLine.SETRANGE(\"Line No.\",SourceRefNo);<\/em>\r\n<em>IF NOT SalesLine.ISEMPTY THEN BEGIN<\/em>\r\n<em>\u00a0 SalesLine.FINDSET;<\/em>\r\n<em>\u00a0 REPEAT<\/em>\r\n<em>\u00a0<\/em>\r\n<em>\u00a0\u00a0\u00a0 IF (SalesLine.Type = SalesLine.Type::Item) AND<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (SalesLine.\"No.\" &lt;&gt; '') AND<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (SalesLine.\"Quantity (Base)\" &lt;&gt; 0) THEN BEGIN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 IF Item.GET(SalesLine.\"No.\") THEN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Descr := Item.Description;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 FindReservEntries(TempTrackingSpecBuffer,DATABASE::\"Sales Line\",SalesLine.\"Document Type\",<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 SalesLine.\"Document No.\",'',0,SalesLine.\"Line No.\",Descr);<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 FindTrackingEntries(TempTrackingSpecBuffer,DATABASE::\"Sales Line\",SalesLine.\"Document Type\",<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 SalesLine.\"Document No.\",'',0,SalesLine.\"Line No.\",Descr);<\/em>\r\n<em>\u00a0\u00a0\u00a0 END;<\/em>\r\n<em>\u00a0 UNTIL SalesLine.NEXT = 0;<\/em>\r\n<em>END;<\/em>\r\n<em>\/\/RPM,en<\/em>\r\n<em>\u00a0<\/em>\r\n<em>RDITSalesCrMemoLine(VAR TempTrackingSpecBuffer : TEMPORARY Record \"Tracking Specification\";SourceID : Code[20];SourceRefNo : Integer)<\/em>\r\n<em>\/\/RPM,sn<\/em>\r\n<em>SalesCrMemoLine.SETRANGE(\"Document No.\",SourceID);<\/em>\r\n<em>SalesCrMemoLine.SETRANGE(\"Line No.\",SourceRefNo);<\/em>\r\n<em>IF NOT SalesCrMemoLine.ISEMPTY THEN BEGIN<\/em>\r\n<em>\u00a0 SalesCrMemoLine.FINDSET;<\/em>\r\n<em>\u00a0 REPEAT<\/em>\r\n<em>\u00a0\u00a0\u00a0 IF (SalesCrMemoLine.Type = SalesCrMemoLine.Type::Item) AND<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (SalesCrMemoLine.\"No.\" &lt;&gt; '') AND<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (SalesCrMemoLine.\"Quantity (Base)\" &lt;&gt; 0)<\/em>\r\n<em>\u00a0\u00a0\u00a0 THEN BEGIN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 IF Item.GET(SalesCrMemoLine.\"No.\") THEN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Descr := Item.Description;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 FindValueEntries(TempTrackingSpecBuffer,DATABASE::\"Sales Cr.Memo Line\",<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0,SalesCrMemoLine.\"Document No.\",'',0,SalesCrMemoLine.\"Line No.\",Descr);<\/em>\r\n<em>\u00a0\u00a0\u00a0 END;<\/em>\r\n<em>\u00a0 UNTIL SalesCrMemoLine.NEXT = 0;<\/em>\r\n<em>END;<\/em>\r\n<em>\/\/RPM,en<\/em>\r\n<em>\u00a0<\/em>\r\n<em>RDITReturnReceiptLine(VAR TempTrackingSpecBuffer : TEMPORARY Record \"Tracking Specification\";SourceID : Code[20];SourceRefNo : Integer)<\/em>\r\n<em>\/\/RPM,sn<\/em>\r\n<em>ReturnReceiptLine.SETRANGE(\"Document No.\",SourceID);<\/em>\r\n<em>ReturnReceiptLine.SETRANGE(\"Line No.\",SourceRefNo);<\/em>\r\n<em>IF NOT ReturnReceiptLine.ISEMPTY THEN BEGIN<\/em>\r\n<em>\u00a0 ReturnReceiptLine.FINDSET;<\/em>\r\n<em>\u00a0 REPEAT<\/em>\r\n<em>\u00a0\u00a0\u00a0 IF (ReturnReceiptLine.Type = ReturnReceiptLine.Type::Item) AND<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (ReturnReceiptLine.\"No.\" &lt;&gt; '') AND<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (ReturnReceiptLine.\"Quantity (Base)\" &lt;&gt; 0)<\/em>\r\n<em>\u00a0\u00a0\u00a0 THEN BEGIN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 IF Item.GET(ReturnReceiptLine.\"No.\") THEN<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Descr := Item.Description;<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 FindItemEntries(TempTrackingSpecBuffer,DATABASE::\"Return Receipt Line\",<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0,ReturnReceiptLine.\"Document No.\",'',0,ReturnReceiptLine.\"Line No.\",Descr);<\/em>\r\n<em>\u00a0\u00a0\u00a0 END;<\/em>\r\n<em>\u00a0 UNTIL ReturnReceiptLine.NEXT = 0;<\/em>\r\n<em>END;<\/em>\r\n<em>\/\/RPM,en<\/em>\r\n<\/pre>\n<\/blockquote>\n<p>Now, let\u2019s change the reports to include this. I\u2019ll only show report 206 Sales \u2013 Invoice, as example, but the changes needed in each report are very similar.<\/p>\n<p>First of all, create a new dataitem called ItemTrackingLine<\/p>\n<p id=\"uRvggKr\"><img loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"392\" class=\"size-full wp-image-267 aligncenter\" src=\"http:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebca5dc12fa.png\" alt=\"\" srcset=\"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebca5dc12fa.png 567w, https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebca5dc12fa-300x207.png 300w\" sizes=\"auto, (max-width: 567px) 100vw, 567px\" \/><\/p>\n<p>Then create the following needed variables and text constants.<\/p>\n<blockquote>\n<pre><strong>New Global Variables:<\/strong>\r\nName\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0DataType\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Subtype\r\nTrackingSpecBuffer\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Record\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Tracking Specification\r\nItemTrackingMgt\u00a0           Codeunit       Item Tracking Management\r\nTrackingSpecCount\u00a0\u00a0\u00a0\u00a0\u00a0     Integer\r\n\r\n<strong>New text constants:<\/strong>\r\nName\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ConstValue\r\nSerialNoCaptionLbl\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 SN:\r\nLotNoCaptionLbl\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 LN:\r\nQuantityCaptionLbl\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Quantity\r\n<\/pre>\n<\/blockquote>\n<p>Add this code to the following triggers:<\/p>\n<blockquote>\n<pre><strong><em>ItemTrackingLine - OnPreDataItem()<\/em><\/strong>\r\n<em>\/\/RPM,sn<\/em>\r\n<em>IF TrackingSpecCount = 0 THEN<\/em>\r\n<em>\u00a0 CurrReport.BREAK;<\/em>\r\n<em>SETRANGE(Number,1,TrackingSpecCount);<\/em>\r\n<em>TrackingSpecBuffer.SETCURRENTKEY(\"Source ID\",\"Source Type\",\"Source Subtype\",\"Source Batch Name\",<\/em>\r\n<em>\u00a0 \"Source Prod. Order Line\",\"Source Ref. No.\");<\/em>\r\n<em>TrackingSpecBuffer.SETRANGE(\"Source ID\", \"Sales Invoice Line\".\"Document No.\");<\/em>\r\n<em>TrackingSpecBuffer.SETRANGE(\"Source Ref. No.\", \"Sales Invoice Line\".\"Line No.\");<\/em>\r\n<em>\/\/RPM,en<\/em>\r\n<\/pre>\n<\/blockquote>\n<p>Note: When customizing other reports, make sure to use the correct table (Sales Invoice Line in this case)<\/p>\n<blockquote>\n<pre><strong><em>ItemTrackingLine - OnAfterGetRecord()<\/em><\/strong>\r\n<em>\/\/RPM,sn<\/em>\r\n<em>IF Number = 1 THEN<\/em>\r\n<em>\u00a0 TrackingSpecBuffer.FINDSET<\/em>\r\n<em>ELSE<\/em>\r\n<em>\u00a0 TrackingSpecBuffer.NEXT;<\/em>\r\n<em>\/\/RPM,en<\/em>\r\n\u00a0\r\n<strong><em>Sales Invoice Line - OnAfterGetRecord()<\/em><\/strong>\r\n<em>IF LineNumber &gt;= MaxLines THEN BEGIN<\/em>\r\n<em>\u00a0 LineGroup += 1;<\/em>\r\n<em>\u00a0 HeaderGroup +=1;<\/em>\r\n<em>\u00a0 LineNumber := 0;<\/em>\r\n<em>END;<\/em>\r\n<em>LineNumber += 1;<\/em>\r\n<em>\u00a0<\/em>\r\n<em>IF (Type = Type::\"G\/L Account\") AND (NOT ShowInternalInfo) THEN<\/em>\r\n<em>\u00a0 \"No.\" := '';<\/em>\r\n<em>\u00a0<\/em>\r\n<em>\/\/RPM,sn<\/em>\r\n<em>TrackingSpecCount := 0;<\/em>\r\n<em>\u00a0<\/em>\r\n<em>IF (Type = Type::Item) THEN BEGIN<\/em>\r\n<em>\u00a0 ItemTrackingMgt.SetRetrieveAsmItemTracking(TRUE);\u00a0 \/\/NAV2009 only<\/em>\r\n<em>\u00a0 TrackingSpecCount := ItemTrackingMgt.RetrieveDocumentItemTrackingLine(TrackingSpecBuffer,\"Sales Invoice Header\".\"No.\",<\/em>\r\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 DATABASE::\"Sales Invoice Header\",0, \"Line No.\");<\/em>\r\n<em>\u00a0 ItemTrackingMgt.SetRetrieveAsmItemTracking(FALSE);\u00a0 \/\/NAV2009 only<\/em>\r\n<em>END;<\/em>\r\n<em>\/\/ RPM,en<\/em>\r\n<em>\u00a0<\/em>\r\n<em>VATAmountLine.INIT;<\/em>\r\n<em>(\u2026)<\/em>\r\n<\/pre>\n<\/blockquote>\n<p>Finally the layout!<\/p>\n<p>Add a new group, below the Table_Lines_Details_Group, to show the serial no. \/ lot no.<\/p>\n<p>I guess images are self explanatory.<\/p>\n<p id=\"ERzPvsC\"><img loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"158\" class=\"alignnone size-full wp-image-268 \" src=\"http:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebccdd64f72.png\" alt=\"\" srcset=\"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebccdd64f72.png 567w, https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebccdd64f72-300x84.png 300w\" sizes=\"auto, (max-width: 567px) 100vw, 567px\" \/><\/p>\n<p id=\"tRfBchx\"><img loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"228\" class=\"alignnone size-full wp-image-269 \" src=\"http:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebcce1ceb0f.png\" alt=\"\" srcset=\"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebcce1ceb0f.png 525w, https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebcce1ceb0f-300x130.png 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/p>\n<p>Set group filter:<\/p>\n<p id=\"fzIOUfN\"><img loading=\"lazy\" decoding=\"async\" width=\"478\" height=\"234\" class=\"alignnone size-full wp-image-270 \" src=\"http:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebccea1fb0e.png\" alt=\"\" srcset=\"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebccea1fb0e.png 478w, https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebccea1fb0e-300x147.png 300w\" sizes=\"auto, (max-width: 478px) 100vw, 478px\" \/><\/p>\n<p id=\"GAnmBUE\"><img loading=\"lazy\" decoding=\"async\" width=\"388\" height=\"53\" class=\"alignnone size-full wp-image-271 \" src=\"http:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebccfb4ac05.png\" alt=\"\" srcset=\"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebccfb4ac05.png 388w, https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebccfb4ac05-300x41.png 300w\" sizes=\"auto, (max-width: 388px) 100vw, 388px\" \/><\/p>\n<p>And set the field expression:<\/p>\n<p id=\"BlNXPoK\"><img loading=\"lazy\" decoding=\"async\" width=\"556\" height=\"250\" class=\"alignnone size-full wp-image-272 \" src=\"http:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebccffbc8a0.png\" alt=\"\" srcset=\"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebccffbc8a0.png 556w, https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebccffbc8a0-300x135.png 300w\" sizes=\"auto, (max-width: 556px) 100vw, 556px\" \/><\/p>\n<p>This is the final result:<\/p>\n<p id=\"QZxerZg\"><img loading=\"lazy\" decoding=\"async\" width=\"794\" height=\"177\" class=\"alignnone size-full wp-image-274 \" src=\"http:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebe4641e10c.png\" alt=\"\" srcset=\"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebe4641e10c.png 794w, https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebe4641e10c-300x67.png 300w, https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2016\/03\/img_56ebe4641e10c-768x171.png 768w\" sizes=\"auto, (max-width: 794px) 100vw, 794px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Please fell free to comment this solution.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As you may already have notice, standard commercial layouts (invoice, credit memo, order, etc) don\u2019t show item tracking lines. Everytime our customers need to have this, they ask us to show the item tracking lines below each item line. Here\u2019s how I did it, following the standard way available in the Sales \u2013 Shipment report [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":138,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[4],"tags":[],"class_list":{"0":"post-263","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-dynamics365bc","9":"post-with-thumbnail","10":"post-with-thumbnail-icon"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Showing item tracking lines in layouts (invoice, orders, transfers, etc) - Ricardo Paiva Moinhos<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Showing item tracking lines in layouts (invoice, orders, transfers, etc) - Ricardo Paiva Moinhos\" \/>\n<meta property=\"og:description\" content=\"As you may already have notice, standard commercial layouts (invoice, credit memo, order, etc) don\u2019t show item tracking lines. Everytime our customers need to have this, they ask us to show the item tracking lines below each item line. Here\u2019s how I did it, following the standard way available in the Sales \u2013 Shipment report [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/\" \/>\n<meta property=\"og:site_name\" content=\"Ricardo Paiva Moinhos\" \/>\n<meta property=\"article:published_time\" content=\"2016-03-14T19:39:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-06-02T20:48:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2014\/06\/PT_c_Dyn-NAV-2013.png\" \/>\n\t<meta property=\"og:image:width\" content=\"375\" \/>\n\t<meta property=\"og:image:height\" content=\"375\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ricardo Paiva Moinhos\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ricardo Paiva Moinhos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/pt\\\/showing-item-tracking-lines\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/pt\\\/showing-item-tracking-lines\\\/\"},\"author\":{\"name\":\"Ricardo Paiva Moinhos\",\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/#\\\/schema\\\/person\\\/16dcfdd54ec1c46bd1941659739de4cc\"},\"headline\":\"Showing item tracking lines in layouts (invoice, orders, transfers, etc)\",\"datePublished\":\"2016-03-14T19:39:01+00:00\",\"dateModified\":\"2016-06-02T20:48:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/pt\\\/showing-item-tracking-lines\\\/\"},\"wordCount\":262,\"commentCount\":2,\"image\":{\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/pt\\\/showing-item-tracking-lines\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ricardomoinhos.com\\\/wp-content\\\/uploads\\\/2014\\\/06\\\/PT_c_Dyn-NAV-2013.png\",\"articleSection\":[\"Dynamics NAV\\\/365 BC\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/ricardomoinhos.com\\\/pt\\\/showing-item-tracking-lines\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/pt\\\/showing-item-tracking-lines\\\/\",\"url\":\"https:\\\/\\\/ricardomoinhos.com\\\/pt\\\/showing-item-tracking-lines\\\/\",\"name\":\"Showing item tracking lines in layouts (invoice, orders, transfers, etc) - Ricardo Paiva Moinhos\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/pt\\\/showing-item-tracking-lines\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/pt\\\/showing-item-tracking-lines\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ricardomoinhos.com\\\/wp-content\\\/uploads\\\/2014\\\/06\\\/PT_c_Dyn-NAV-2013.png\",\"datePublished\":\"2016-03-14T19:39:01+00:00\",\"dateModified\":\"2016-06-02T20:48:30+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/#\\\/schema\\\/person\\\/16dcfdd54ec1c46bd1941659739de4cc\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/pt\\\/showing-item-tracking-lines\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ricardomoinhos.com\\\/pt\\\/showing-item-tracking-lines\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/pt\\\/showing-item-tracking-lines\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ricardomoinhos.com\\\/wp-content\\\/uploads\\\/2014\\\/06\\\/PT_c_Dyn-NAV-2013.png\",\"contentUrl\":\"https:\\\/\\\/ricardomoinhos.com\\\/wp-content\\\/uploads\\\/2014\\\/06\\\/PT_c_Dyn-NAV-2013.png\",\"width\":375,\"height\":375},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/pt\\\/showing-item-tracking-lines\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ricardomoinhos.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Showing item tracking lines in layouts (invoice, orders, transfers, etc)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/#website\",\"url\":\"https:\\\/\\\/ricardomoinhos.com\\\/\",\"name\":\"Ricardo Paiva Moinhos\",\"description\":\"Welcome\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ricardomoinhos.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/ricardomoinhos.com\\\/#\\\/schema\\\/person\\\/16dcfdd54ec1c46bd1941659739de4cc\",\"name\":\"Ricardo Paiva Moinhos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/248366f4e615e182964f85f799c6e33cbd541a6f4ca7ee948fc16d1c14030c76?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/248366f4e615e182964f85f799c6e33cbd541a6f4ca7ee948fc16d1c14030c76?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/248366f4e615e182964f85f799c6e33cbd541a6f4ca7ee948fc16d1c14030c76?s=96&d=mm&r=g\",\"caption\":\"Ricardo Paiva Moinhos\"},\"url\":\"https:\\\/\\\/ricardomoinhos.com\\\/pt\\\/author\\\/ricardopaiva\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Showing item tracking lines in layouts (invoice, orders, transfers, etc) - Ricardo Paiva Moinhos","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/","og_locale":"pt_PT","og_type":"article","og_title":"Showing item tracking lines in layouts (invoice, orders, transfers, etc) - Ricardo Paiva Moinhos","og_description":"As you may already have notice, standard commercial layouts (invoice, credit memo, order, etc) don\u2019t show item tracking lines. Everytime our customers need to have this, they ask us to show the item tracking lines below each item line. Here\u2019s how I did it, following the standard way available in the Sales \u2013 Shipment report [&hellip;]","og_url":"https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/","og_site_name":"Ricardo Paiva Moinhos","article_published_time":"2016-03-14T19:39:01+00:00","article_modified_time":"2016-06-02T20:48:30+00:00","og_image":[{"width":375,"height":375,"url":"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2014\/06\/PT_c_Dyn-NAV-2013.png","type":"image\/png"}],"author":"Ricardo Paiva Moinhos","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Ricardo Paiva Moinhos","Tempo estimado de leitura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/#article","isPartOf":{"@id":"https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/"},"author":{"name":"Ricardo Paiva Moinhos","@id":"https:\/\/ricardomoinhos.com\/#\/schema\/person\/16dcfdd54ec1c46bd1941659739de4cc"},"headline":"Showing item tracking lines in layouts (invoice, orders, transfers, etc)","datePublished":"2016-03-14T19:39:01+00:00","dateModified":"2016-06-02T20:48:30+00:00","mainEntityOfPage":{"@id":"https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/"},"wordCount":262,"commentCount":2,"image":{"@id":"https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/#primaryimage"},"thumbnailUrl":"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2014\/06\/PT_c_Dyn-NAV-2013.png","articleSection":["Dynamics NAV\/365 BC"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/","url":"https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/","name":"Showing item tracking lines in layouts (invoice, orders, transfers, etc) - Ricardo Paiva Moinhos","isPartOf":{"@id":"https:\/\/ricardomoinhos.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/#primaryimage"},"image":{"@id":"https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/#primaryimage"},"thumbnailUrl":"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2014\/06\/PT_c_Dyn-NAV-2013.png","datePublished":"2016-03-14T19:39:01+00:00","dateModified":"2016-06-02T20:48:30+00:00","author":{"@id":"https:\/\/ricardomoinhos.com\/#\/schema\/person\/16dcfdd54ec1c46bd1941659739de4cc"},"breadcrumb":{"@id":"https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/#primaryimage","url":"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2014\/06\/PT_c_Dyn-NAV-2013.png","contentUrl":"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2014\/06\/PT_c_Dyn-NAV-2013.png","width":375,"height":375},{"@type":"BreadcrumbList","@id":"https:\/\/ricardomoinhos.com\/pt\/showing-item-tracking-lines\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ricardomoinhos.com\/"},{"@type":"ListItem","position":2,"name":"Showing item tracking lines in layouts (invoice, orders, transfers, etc)"}]},{"@type":"WebSite","@id":"https:\/\/ricardomoinhos.com\/#website","url":"https:\/\/ricardomoinhos.com\/","name":"Ricardo Paiva Moinhos","description":"Welcome","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ricardomoinhos.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Person","@id":"https:\/\/ricardomoinhos.com\/#\/schema\/person\/16dcfdd54ec1c46bd1941659739de4cc","name":"Ricardo Paiva Moinhos","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/secure.gravatar.com\/avatar\/248366f4e615e182964f85f799c6e33cbd541a6f4ca7ee948fc16d1c14030c76?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/248366f4e615e182964f85f799c6e33cbd541a6f4ca7ee948fc16d1c14030c76?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/248366f4e615e182964f85f799c6e33cbd541a6f4ca7ee948fc16d1c14030c76?s=96&d=mm&r=g","caption":"Ricardo Paiva Moinhos"},"url":"https:\/\/ricardomoinhos.com\/pt\/author\/ricardopaiva\/"}]}},"jetpack_featured_media_url":"https:\/\/ricardomoinhos.com\/wp-content\/uploads\/2014\/06\/PT_c_Dyn-NAV-2013.png","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/posts\/263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/comments?post=263"}],"version-history":[{"count":28,"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/posts\/263\/revisions"}],"predecessor-version":[{"id":300,"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/posts\/263\/revisions\/300"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/media\/138"}],"wp:attachment":[{"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/media?parent=263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/categories?post=263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ricardomoinhos.com\/pt\/wp-json\/wp\/v2\/tags?post=263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}