Export Nav Objects by Code
Views (3006)
Exporting locked nav objects can be a problem when importung in target database. it’s not that easy to unlock them in the target database. So for that you can export nav objects by code and check Lock status before exporting.
Create a new report, add dataitem Object. set report to processingonly.

select dataitem Object, set property ReqFilterFields to Type,ID.
set request page: add field Path (Text).

add following code to trigger OnOpenPage:
Object.SETRANGE(Type,Object.Type::Table); Path := 'c:\temp';
add following code to report trigger OnPreReport():
finsql := 'C:\Program Files (x86)\Microsoft Dynamics NAV\100\RoleTailored Client\finsql.exe';
IF NOT FILE.EXISTS(finsql) THEN
ERROR('finsql not found');
additional add that code to trigger Object – OnAfterGetRecord():
IF Object.Locked THEN BEGIN Message(FORMAT(Object.Type)+'-'+FORMAT(Object.ID)+' is locked.'); // alternatively unlock object, then try again. // Object.Locked := FALSE; // Object.MODIFY; end ELSE begin arguments := 'command=exportobjects,file=%1,servername=%2,database=%3,filter="Type=%4;ID=%5",ntauthentication=1'; arguments := STRSUBSTNO(arguments,Path+'\'+FORMAT(Object.Type)+'-'+FORMAT(Object.ID)+ '.fob','localhost','Cronus',Object.Type,Object.ID); Process.Start(finsql,arguments); result := result + FORMAT(Object.Type)+'-'+FORMAT(Object.ID)+'\'; END;
to trigger Object – OnPostDataItem():
MESSAGE(result);
Global Variables:
Process DotNet System.Diagnostics.Process.'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' arguments Text finsql Text Path Text result Text
cheers
Filed under: feature, nav 2015, nav 2016, nav 2017, nav functions Tagged: object export

Like
Report
*This post is locked for comments