Temporary tables outside license range

Rob_HansenRob_Hansen Member Posts: 296
edited 2014-01-23 in NAV Three Tier
I'm hitting an issue in NAV 2013 that isn't consistent with past versions of NAV and wanted to see if this is a known issue (or a design change).

In the past, we would often create tables outside the customer's license range to be used only as temporary buffers by reports (rather than trying to shoehorn the data into a temporary instance of a base table where field names, etc. would not fit well). So long as the table was only used as Temporary = Yes, this worked fine - no license errors or issues.

In NAV 2013, the same approach does not work. We have upgraded logic that works fine in NAV 2009, but under NAV 2013 we get a license error when trying to use the temporary table outside the customer's license range.

Does anyone have experience with this? I'll submit it to Microsoft but i'm hoping maybe we've missed a hotfix (this is NAV 2013, not R2) that may restore the behavior.

Comments

  • Marije_BrummelMarije_Brummel Member, Moderators Design Patterns Posts: 4,262
  • matteo_montanarimatteo_montanari Member Posts: 189
    rdhansen wrote:
    I'm hitting an issue in NAV 2013 that isn't consistent with past versions of NAV and wanted to see if this is a known issue (or a design change).

    In the past, we would often create tables outside the customer's license range to be used only as temporary buffers by reports (rather than trying to shoehorn the data into a temporary instance of a base table where field names, etc. would not fit well). So long as the table was only used as Temporary = Yes, this worked fine - no license errors or issues.

    In NAV 2013, the same approach does not work. We have upgraded logic that works fine in NAV 2009, but under NAV 2013 we get a license error when trying to use the temporary table outside the customer's license range.

    Does anyone have experience with this? I'll submit it to Microsoft but i'm hoping maybe we've missed a hotfix (this is NAV 2013, not R2) that may restore the behavior.

    Hi

    which build you tested?

    Matteo
    Reno Sistemi Navision Developer
  • Rob_HansenRob_Hansen Member Posts: 296
    I submitted the issue to Microsoft and received a response that is obviously very disappointing. It's important for all partners/customers who have used this temporary table approach to be aware of the change when upgrading customers:

    "It has never been the intention that customers should be able to use temporary tables outside of their licensed range. Unfortunately, by mistake this was possible in versions prior to NAV 2013. In NAV 2013 this mistake was corrected and customers are not able to use tables that they have not purchased as temporary tables in NAV 2013."
  • Rob_HansenRob_Hansen Member Posts: 296
    I think the referenced hotfix DID address the issue, but Microsoft later retracted it. Our client is on a far newer build than that hotfix (update rollup 7) and the functionality does not work. I've emailed Microsoft to confirm that the capability was retracted...i'll let you know once I get confirmation on that. Crappy...it was a nice capability that tied into advanced report development. Now it'll be back to finding a base table to instantiate a temporary instance of and using field names that don't match the purpose...or (what Microsoft really wants here) making customers pay for additional custom tables just to pull this off (which makes for expensive reports).
  • TomH_DKTomH_DK Member Posts: 13
    To my knowledge, we are still using a lot of temporary tables in our solution and also tables outside the customer license.

    However, it has been necessary for some "temp" tables to be part of the license moving to NAV 2013/2013R2.
    Tables in which the properties "LookupPageID" and "DrillDownPageID" are set, even though the pages used are marked as "SourceTableTemporary".
    Tables with no page link in those two properties are not included in the Customer license.

    My point is, that we are still using a lot of temporary tables in the code, holding data sets, which are outside of the customer license.
  • Marije_BrummelMarije_Brummel Member, Moderators Design Patterns Posts: 4,262
    Yes, the issue only occurs when the temporary table is used on a page object.

    This is however a bug and Microsoft promissed me it would be fixed, I was the first to find it last year on NAV2013.

    If you have any indication that this promisse is not being kept please send me some proof so I can follow up with the promisser. 8)
  • Rob_HansenRob_Hansen Member Posts: 296
    I never heard back from Microsoft on my question as to whether they decided to retract the capability provided by that hotfix. I just sent a follow up email to ask the question again and will let you know what I hear back.
  • Rob_HansenRob_Hansen Member Posts: 296
    Microsoft has confirmed that this functionality WILL be restored. The hotfix had apparently done that (or so they said) but the issue is still there in build 35488. They're looking into it.
  • Jens_M-PJens_M-P Member, Microsoft Employee Posts: 39
    I just want to confirm that the change in behavior (wrt. licensing) for temporary tables was unintended. This is simply a bug.
    Best regards,
    Jens Møller-Pedersen [MSFT]

    This posting is provided 'AS IS' with no warranties, and confers no rights.
  • Marije_BrummelMarije_Brummel Member, Moderators Design Patterns Posts: 4,262
  • greatscott001greatscott001 Member Posts: 32
    @Mark_Brummel I know this is an old thread but I am using this technique in NAV 2017 and I am running into a problem with the UI Elements Removal setting for the NAV Server service.

    I have a Page within the client's licensed range and filling a temporary table outside the user's license range. It works fine when I run it from the Developer Env but if I put the Page on a menu or on a Ribbon action it does not show up.

    Do I have to set UI Elements Removal to None for the Page to show up? Or is there something I can do on the Page or Table to "include" it?
  • greatscott001greatscott001 Member Posts: 32
    My answer to this problem is to run the Page from a Codeunit.
  • aceXaceX Member Posts: 165
    What about NAV 2017. I've created new Report which is using a Table outside license range as a Temporary. When the report is on production it's not visible while in development where is my developer license I can see report in menu. Is it possible to use temporary tables in NAV 2017 outside of license range?

    Thanks in advice
    Best Regards
  • JuhlJuhl Member Posts: 724
    I hit this behavior as well, but got it working.
    Messed with the temporary proberty of the page as far as I remember, but got it working. Can’t check the code right now.
    Follow me on my blog juhl.blog
  • aceXaceX Member Posts: 165
    I've realized that, if I set the report in the menu then I can use it. But I can't add the report on the ribbon of my role center ... it's just not appearing. If I change the license the report is on the ribbon where I've set it. Very strange.
  • Slawek_GuzekSlawek_Guzek Member Posts: 1,690
    In theory in you have UI Elements Removal enabled, then report based on a table ID out of production license should not appear in the UI for that very reason that the setting is designed to remove objects you don't have access to. On contrary, the DEV licenses provide access to all the objects in 50000-99999 range, so while running under DEV license you do have access to the table and to the report, therefore it is not being removed.

    You can try to workaround this by adding a dummy first section to the report based on some licensed table, say T98 General Ledger Setup, put a CurrReport.BREAK in OnPreDataItem in it, and see if it helps.
    Slawek Guzek
    Dynamics NAV, MS SQL Server, Wherescape RED;
    PRINCE2 Practitioner - License GR657010572SG
    GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-03
  • JuhlJuhl Member Posts: 724
    I just checked my working solution.

    ListPage with temp table outside customer range, and SourceTableTemporary = Yes
    Action on Item List page, but i run the page from OnAction trigger instead of running it from Proberties.
    PAGE.RUN(PAGE::"My Page with Temp Table")

    Also check that the table is empty.
    Follow me on my blog juhl.blog
  • aceXaceX Member Posts: 165
    edited 2018-03-20
    Thank you @Slawek_Guzek again :smile: . I've added a first table in the dataset T98 which is in license range and now the report is showed in the ribbon.
    Also thank you @Juhl, that's nice solution, but in my case I'm adding the Report object on RoleCenter type of page and there is no code allowed to be written in any action trigger. How ever, your solution is very useful and I'm sure that I'll use.

    Best Regards
Sign In or Register to comment.