Options

Roll-back and .Net

jensthomsenjensthomsen Member Posts: 173
edited 2013-09-03 in NAV Three Tier
Hi
I'm quite new in using .Net in Nav 2013. Currently i'm trying to use this:

System.IO.File.'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'

to handle files. But are there any differences in the error you get from the .Net framework compared to errors from C/AL? When I use the 'Copy' function and I get and error (maybe because the user hasn't got the write-permision to the copy-to-folder) from .Net, then Nav doesn't make the proper Roll-Back in C/AL: All the Things that happened before calling the 'Copy' has been done?? The 'Copy' function doesn't have a return value to check on, but is a Static-type (whatever that Means...)

Comments

  • Options
    deV.chdeV.ch Member Posts: 543
    How about using a custom assembly, wrapping your call to File.Copy inside your own method, catch any errors, and return a boolean to check if the call succeeded? Then you can throw a C/AL ERROR.
  • Options
    jensthomsenjensthomsen Member Posts: 173
    That is, no build in proper error-handling when using .Net components??
  • Options
    ara3nara3n Member Posts: 9,256
    how are you calling your cu? with something like if cu.run then?
    a .net error is the same as regular nav error.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • Options
    jensthomsenjensthomsen Member Posts: 173
    Uuuups :oops: Seems like's it working the properly after all. I've made a Little extra testing with this code (created as a function on a page):


    LocalTestRec."Felt 1" := '001';
    LocalTestRec.Beskrivelse := 'Before calling copy';
    LocalTestRec.INSERT;

    FileDotNet.Copy(CopyFromFile,CopyToFile);

    LocalTestRec."Felt 1" := '002';
    LocalTestRec.Beskrivelse := 'After calling copy';
    LocalTestRec.INSERT;

    Where 'LocalTestRec' is a table initially empty. The line 'FileDotNet.Copy(CopyFromFile,CopyToFile);' will cause an Dotet-error. After I've run the code, the table is still empty...Therefore I conclude, that roll-back is working even with an error from DotNet:-)
Sign In or Register to comment.