weekend Topic

ara3nara3n Member Posts: 9,255
edited 2006-08-02 in General Chat
Hello
It looks like weekends Mibuso is really quiet, so I was thinking that maybe we should create some open ended question or discussion.
For example, CU 80 should be split into 2 codeunits. One that would do shipping and one that would do invoicing. Just like transfer orders.
Ahmed Rashed Amini
Independent Consultant/Developer


blog: https://dynamicsuser.net/nav/b/ara3n
«1

Comments

  • SavatageSavatage Member Posts: 7,142
    Even on the weekends your thinking Navision :mrgreen:
  • Miklos_HollenderMiklos_Hollender Member Posts: 1,598
    For user rights reasons? I'd support that. Even invoicing from orders and from invoices separated some way, as if users use both it makes a total mess of document numbers, so it would be handy to disable one of these two options without object modifications, just user rights setup...
  • kinekine Member Posts: 12,562
    You do not need that. You just needs to give appropriate permission to Sales Invoice Header or Sales Shipment Header and you are done... :-) If the user has no rights to create Invoice header, he is not able to post invoices. And if he has no right to Sales Shipment header... ;-)
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • Miklos_HollenderMiklos_Hollender Member Posts: 1,598
    Yeah, that's possible, but maybe it could be easier to handle user rights by the 10-12 most important CU's, than a by a lot more tables...
  • kinekine Member Posts: 12,562
    Do you know, that permission system in Navision is based on access to data tables and not through codeunits, don't you? 8)
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • ara3nara3n Member Posts: 9,255
    Kine
    Actually you can control permission at codeunit as well as form, report level. It's just that In standard navision, the ALL role as CU,Form,report, object ID of 0, so they have access to ll the forms, CU, form, etc.



    Also we are getting sidetracked, on the topic. I guess nobody thinks it's a bad idea.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • DenSterDenSter Member Posts: 8,304
    By setting up table permissions in a smart way, you don't need to administer CU permissions. Take away permissions to Sales Shipment Header, and you won't be able to post a shipment, no matter if you have permissions to the codeunit or not.
  • kinekine Member Posts: 12,562
    Ehm, ehm... Denster, you are not reading all posts... 8) :D
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • ara3nara3n Member Posts: 9,255
    I agree Denster. It just that it can be done at cu level as well.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • DenSterDenSter Member Posts: 8,304
    No Kamil, I did read all posts, I was re-affirming your point :)
  • Miklos_HollenderMiklos_Hollender Member Posts: 1,598
    Yeah, 95% of the user rights issues can be handled on TableData level, but there are some exceptions. One of them is invoicing from an order or separately. You know if you do both then some Posting No.-s can get stuck in and then you have a gap in the invoice numbers, and than can make tax inspectors think you are trying to cheat with VAT or Sales Tax by deleting invoices... So one of them needs to be turned off.

    Actually, I tried to find a better solution, but failed. CU80 needs to reserve a Posting No. and it needs to be committed, no other way. And if the posting fails, there is no way to make the automatic rollback procedure delete the Posting No. Maybe I should play around with advanced "exception handling" (like IF Codeunit.RUN(80, .... ) THEN... )
  • Alex_ChowAlex_Chow Member Posts: 5,063
    ara3n wrote:
    I agree Denster. It just that it can be done at cu level as well.

    Yeah, but then you would need to individually customize the rights to the codeunits.

    Wouldn't you have to change and create your own permissions based on Navision objects as opposed to tables?
  • ara3nara3n Member Posts: 9,255
    Yes indead deadlizard.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • Alex_ChowAlex_Chow Member Posts: 5,063
    ara3n wrote:
    Yes indead deadlizard.

    Umm... Did that sound like sarcasm? :-k
  • Alex_ChowAlex_Chow Member Posts: 5,063
    ara3n wrote:
    Hello
    It looks like weekends Mibuso is really quiet, so I was thinking that maybe we should create some open ended question or discussion.
    For example, CU 80 should be split into 2 codeunits. One that would do shipping and one that would do invoicing. Just like transfer orders.

    One benefit I can see is that this will allow the user to analyze and create modifications a lot faster since there are less codes to go over.
  • David_CoxDavid_Cox Member Posts: 509
    Hey if they make everything in small understandable units, that might mean the customer will understand more, and our value decrease :shock:

    Just joking, splitting of codeunits 80 and 90 is a great Idea, there are several codeunits like this that could be split up! :D
    Analyst Developer with over 17 years Navision, Contract Status - Busy
    Mobile: +44(0)7854 842801
    Email: david.cox@adeptris.com
    Twitter: https://twitter.com/Adeptris
    Website: http://www.adeptris.com
  • Miklos_HollenderMiklos_Hollender Member Posts: 1,598
    I think the whole shipping and invoicing logic needs to be redesigned to some extent. I mean the whole philosophy of handling two really different business processes more or less under one hat is really strange, I think it dates back to the times where Navi was a strictly financial system where only "posting" was important and business operations were assumed to handled by add-ons or external programs.
  • ara3nara3n Member Posts: 9,255
    Miklos
    Did Navision expect addons to write their own CU 80?


    Dead Lizard
    No it wasn't sacastic. It was a quick answer, didn't have time.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • NobodyNobody Member Posts: 93
    What they should really do is dump CU80 all together and turn it into a TSQL Stored Procedure. If the heavy processing was moved off the client and onto the SQL server this app could really be scaled up.
  • Alex_ChowAlex_Chow Member Posts: 5,063
    I think the whole shipping and invoicing logic needs to be redesigned to some extent. I mean the whole philosophy of handling two really different business processes more or less under one hat is really strange, I think it dates back to the times where Navi was a strictly financial system where only "posting" was important and business operations were assumed to handled by add-ons or external programs.

    Seems like you have a lot of ideas for Navision. Have you tried applying for a job at Microsoft? (not sarcasm) :wink:
  • ara3nara3n Member Posts: 9,255
    Nobody
    Well with 3 tiered system, everything will be done at the server, if you put the IIS and sql server on the same box.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • bbrownbbrown Member Posts: 3,268
    Well with 3 tiered system, everything will be done at the server, if you put the IIS and sql server on the same box

    They would still be 2 different processes competing for system resources. This is much more inefficient than putting the functions directly in the database.
    There are no bugs - only undocumented features.
  • ara3nara3n Member Posts: 9,255
    I'm sure it won't be as fast as running the code in Transact SQL instead of a C# DLL.

    But whether it's running in separate threads in same process, or separate processes, they both will compete for system resources.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • bbrownbbrown Member Posts: 3,268
    I am not referring to the individual commands or function, but to IIS itself.
    There are no bugs - only undocumented features.
  • ara3nara3n Member Posts: 9,255
    All IIS will be doing is keeping track of of separate connections and creating instances of the C# DLL file. I don't think you should run your website on the same box.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • DenSterDenSter Member Posts: 8,304
    I don't think any of us knows how IIS will exactly allocate system resources for NAV 5.
  • Miklos_HollenderMiklos_Hollender Member Posts: 1,598
    Deadlizard,

    actually I did just weeks before and now pondering the opportunity, but I think I would feel bad working at a huge company with all the procedures and rules and no space for individual creativity... maybe if they offer something really cool I'll consider it, but I generally think that small partners offer much better joy of working...
  • ara3nara3n Member Posts: 9,255
    One thing I was thinking about is that in SQL 2005, they've integraged CLR. Althought they didn't imiplement the whole CLR, only a subset of classes, It could be possible to run the C# library inside the SQL database. But this is just stipulation, so I'm just guessing.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • DenSterDenSter Member Posts: 8,304
    SQL Server 2005 has a few editors that were written to be used in Visual Studio. When you install SQL Server 2005 and you include the right components, you get a dressed down mini-version of Visual Studio to accommodate the editors.

    The CLR is the Common Language Runtime, and is not part of SQL Server or Visual Studio, but the .NET framework. When you install the .NET framework, you have the whole CLR.
  • ara3nara3n Member Posts: 9,255
    Agreed, all I was trying to say is that SQL 2K5 lets you run in-process .NET CLR Code (SQLCLR). what I remember is that the classes have to be static classes so I guess it wouldn't with navision since navision .DLL file has main client states and reside in memory.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
Sign In or Register to comment.