Hi, I would like to display an image on a report. The image needs to be shown only under certain conditions. I'm in Business Central On-Prem V13 I was told by @demiliani on Twitter that it is only possible to do if the image is an online image. I was hoping that the image would reside in the same folder as my report and just call it from there but I can always store in on a web server or online somewhere. The other option that I have entertained but not sure if I should go that route would be to store the image in a table. I could create a table that would store all sorts of images and call it from any reports. Any tips or recommendation would be greatly appreciated. Thanks Yann
↧
Forum Post: Display image on report.
↧
Forum Post: How to copy a local docker container/image to another computer (Business Central)
Hi guys, i got a new Laptop and i want to copy my container from the old computer to the new one. While doing so i got a lot of different errors. What i did until now: 1. commit the container to an image 2. save the image in a .tar file 3. load the image on the other computer 4. trying to run the image (not working: "You must share a DVD folder to C:NAVDVD or a file system to C;\NAVFS in order to run the generic image") Can someone provide a step by step guide for this please?
↧
↧
Forum Post: RE: SMTP CreateMessage (Cloud BC)
Hi Daniel, thanks for the answer. by the way any idea for --> Recipients: List of [ Text ]; ?? i never use this before.
↧
Blog Post: Planned activities for Dynamics 365 Business Central Partners in 2020: quick preview
I’ve received (and I’m receiving too) a lot of emails and messages on social networks from many of you asking for news about the future activites that Microsoft Italy has planned for Microsoft Dynamics 365 Business Central partners during 2020, so I hope that a quick public post can help you on planning your future I cannot go too much in details for now (Microsoft Italy has a great staff that manages these things directly), but there are a lot of things that are waiting for you in this upcoming 2020. Here’s a quick list: We’ll continue the development training for partners. The Dynamics 365 Business Central Advanced Development Workshop that I’ve managed during this year will continue in the next year. We had a huge amount of requests for this training and also a big queue of partners that are waiting for a seat. From February 2020 you can bookmark your place and we’ll meet you in person at Microsoft House. We’ll have some technical “one day events” planned for the Academyadi 2020 initiative. Dates will be announced by Microsoft soon, but expect Dynamics 365 Business Central events on at least two topics: DevOps for Dynamics 365 Business Central Dynamics 365 Business Central and the Power Platform At the end of January (31) we’ll have Dynamics 365 Friday day, where I’ll manage some Dynamics 365 Business Central sessions (technical topics to be defined, suggestions and requests are welcome). Other “one day events” will be planned, but no news to share at the moment. Some of these activities will be probably extended to other countries managed by Microsoft Western Europe, so expect to see me in a Microsoft headquarter near you next year Plans are to share on other countries the Advanced Development Training and also a DevOps event for helping partners on improving their development lifecycle. Personally, I would like to push more this last topic during the next year, I would like helping partners on modernizing their development process because on the last year I saw that there are lots of lack on this. Something is boiling, so, stay tuned… Ops, I forgot an important thing: all these events are for Microsoft Partners and they’re totally free! That’s a big opportunity that Microsoft is offering to you.
↧
Forum Post: How to set up a job queue to run for 183 days in Dynamics NAV110
Hi Team, I wrote a code to check and run a job queue for 183 days using "Last Coupon Date" From my codeunit: WITH BondLedger DO BEGIN //IF BondLedger."Last Coupon Date" + 183 THEN RESET; SETRANGE("Bond Series Code","Bond Series Code"); SETRANGE(PFA,PFA); SETRANGE(Fund,Fund); IF BondLedger.FINDSET THEN BEGIN CouponDate.INIT; CouponDate."Entry No." := CouponDate."Entry No." + 1; CouponDate."Bond Series Code" := "Bond Series Code"; CouponDate."Bond Series Name" := "Bond Series Name"; CouponDate."Coupon Date" := "Last Coupon Date"; CouponDate.INSERT(TRUE); END; END; From my Report: Bond Ledger - OnAfterGetRecord() InvestMgt.BondCouponDateIN("Bond Ledger"); From my Job Queue No. of minutes before = 60*24*183days = 263520. Thanks
↧
↧
Comment on Keyboard shortcuts in Visual Studio Code for AL development
Hi Luc, for a start I just wanted to show the most used key combinations. Them people can enhance them themselves later.
↧
Forum Post: RE: How to set up a job queue to run for 183 days in Dynamics NAV110
Hi, What is your question?
↧
Forum Post: Cloud BC customize page 9700 (Email Dialog)
Hi All, how do i customize to get the value from this page? when we send email for PO it will show the subject as Purchase Order YourPONo .pdf i want to get this YourPONo how do i do that? in c/side we just use emailitem.subject but extension we cant do it.
↧
Blog Post: "Mastering Dynamics 365 Business Central" is out!
Just in time for Christmas, I’m very happy and proud to announce that the book “ Mastering Dynamics 365 Business Central ” is finally out and available on Packt website and on Amazon in all the two formats (eBook and printed copy). This was a very huge work (my biggest writing work ever), we’ve spent a lot of time on writing this book for the Dynamics 365 Business Central community and I hope it will be helpful for everyone of you. The book has about 770 pages full of technical contents grouped into the following 18 chapters: Chapter 1: Microsoft Dynamics 365 Business Central technical overview Chapter 2: Mastering the Model Development Environment Chapter 3: Online and container-based sandboxes Chapter 4: Extension’s development foundamentals Chapter 5: Developing a customized solution for Dynamics 365 Business Central Chapter 6: Advanced AL development Chapter 7: Report development with AL Chapter 8: Installing and Upgrading extensions Chapter 9: Debugging Chapter 10: Automated Test Development with AL Chapter 11: Source Control Management and DevOps with Dynamics 365 Business Central Chapter 12: Dynamics 365 Business Central APIs Chapter 13: Serverless business processes with Dynamics 365 Business Central and Azure Chapter 14: Monitoring, scaling and CI/CD with Azure Functions Chapter 15: Dynamics 365 Business Central and integrations with the Power Platform Chapter 16: Integrating Machine Learning into Dynamics 365 Business Central Chapter 17: Moving existing ISV solutions to the new extension’s model Chapter 18: Useful and proficient tools for AL developers This book is totally based on the new AL-only Dynamics 365 Business Central platform. Go and grab it! For reaching the goal of this project, I’ve to thank a lot of people. The absolute number 1 to thank is my “brother in arms” Duilio Tacconi from Microsoft. I’m extremely proud that you accepted to work with me on this project after the “ Dynamics 365 Business Central Development Quick Start Guide “, this book cannot be here without you. Thanks a lot, you’re an hero! Then, I have to thank a list of great people and experts that has accepted to contribute on the content of this book. I mention them in pure alphabetical order here: Tobias Fenster Dmitry Katson Douglas Romão Kamil Sáček Luc Van Vugt Eric Wauters Guys, you cannot imagine how precious you was on reaching the goal of this book. Thanks a lot for your effort and to be part of this project. I hope to be able to thank everyone of you in person soon. Lots of thank also to the entire Packt team that has worked with us during this year for having this book published. I know that we’ve fight a lot, but you all was helpful and professional. Thanks Tiksha, Alok, Ketan. Now I can officially considered myself on holiday for some days…
↧
↧
Blog Post: How To, Part I | Breaking a Monolyth
I often wonder how I find myself in situations like this. On my day off I find myself behind my desk doing something which is not my responsibility, nor am I getting paid to do it. If you say A, you also have to be willing to say B and C. This is what my parents told me when I was young so when I promissed Bugsy and Jesper to look into making the Business Central Base Application smaller I decided I may as well make it into a decent project. The Project The current status of the project is that we are moving four application area’s away from BaseApp into it’s own separated module. The area’s are Fixed Assets, Cost Accounting, Service Management and Jobs. As a fifth application area we are looking at making Item Tracking better to extend. Fortunately I am not doing all the work myself. I am only doing Fixed Assets which I will blog about. Others are doing the rest and the team currently counts over 10 heads. I’m trying to do a poor-mans project management with GitHub, Teams and email. Now please note that all of this may very well be a dead end road. We are presenting the first results to Microsoft on January 9th and then we’ll have a first evaluation. Business Case & Limitations In order to move on, we need to have a valid business case that proves that this is adding value to the product. Personally I see three important reasons for doing this. If the BaseApp becomes smaller it will be easier to understand for newbies that don’t have two decades of Navision experience. It will also increase the speed of the pre-compiler and C# conversion process. Partners can replace the modules we extract with their own. This means that a module like Service Management does not have to be extendible by itsself. Extracting these modules will require new event publishers and the introduction of enum’s in the BaseApp. Partners can use these to connect their extensions. By extracting these modules we’re exactly pinpointing the area’s we all need Please note that we are ONLY moving stuff around, we are not doing ANY schema changes or rewriting of AL code. The impact of this project should be as minimal as possible to the existing partners. All they should do is change their depencencies and rewire some event subscribers. Step 1 – Move and See what breaks This step is something I’ve done myself first for Service Management and then for Fixed Assets and it’s a realatively simple step. We move all objects to a new extension that fit 100% in this module. I did this mostly based on experience and with help of the compiler. I have two instances of Visual Studio Code open and use cut and paste from within VSCode. Note that the size of BaseApp makes this a very tough task for your machine. Turn down all code analyzers and even make sure you don’t have any open browser pages. I’ve noticed that having google chrome open uses some CPU you need for VSCode during this project. Step 2 – Make the BaseApp compile The new module, in my case Fixed Assets, will take a dependency on BaseApp. In order for this to work, I need a BaseApp that builds into an .App file without the files I just moved. Since we are still in proof of concept phase I want this to happen asap. To make this happen I used the compiler errors. In my case there were little over 1000 errors after moving the FA objects to their own extension. Every object I “fix” needs to be more fixed later. Some fixes will become event publishers and subscribers and other fixes will be table extensions and page extensions. Since I don’t want to loose time doing that not knowing if this will work I’m using Todo Tree. This is a very popular extension on the marketplace. At the moment of writing this blog I have 73 errors to fix before I can start with step 3, which will be my next blog.
↧
Forum Post: RE: How to set up a job queue to run for 183 days in Dynamics NAV110
Thanks. I have solved it using different approached.
↧
Forum Post: RE: Anyway to exclude existing Purchase Order Quantity while running MRP MPS
please help
↧
Forum Post: Filtering page API
Hi everyone, I've published a page that is consumed from an external application. The source table of this page, is "Item". I need to aplly one filter, not to send al the items to the external aplication. The filters logic is this IF "Item Category Code" = 'XXX' THEN SETFILTER("Product Group Code",'<>%1&<>%2&<>%3','00','100','99'); I don't want to send items from category XXX and with the indicated product group code. Where and how can I locate that filter? Thank you all, and merry christmas!!
↧
↧
Forum Post: Adding "Vendor Lot" on "Item Tracking Lines" Page in D365BC
I ran into a problem adding a new field "Vendor Lot" on the "Tracking Specifications" table in the "Item Tracking Lines" page. 1) To get here, Purchase Order --> Line --> Item Tracking Lines. 2) New Field "Vendor Lot" appears, but, data entered isn't saved. 3) Page Inspections reveals the "Source Table is Temporary". I've been digging around trying to find more about adding the "Vendor Lot". I've found NAV examples and not D365BC examples. http://www.olofsimren.com/add-fields-to-the-item-tracking-lines/ It appears there are four tables which need to be updated, but, I can't seem to update any of these tables using triggers. ("Reservation Entry", "Tracking Specification", "Item Journal Line", & "Item Ledger Entry".) Any suggestions or links to help me write the "Vendor Lot" correctly? Running Dynamics 365 Business Central in the Cloud Sandbox environment. Thank you! Doug
↧
Forum Post: Load SourceTable on page NAV 2013
Hi Everybody I need to make the tables selectable. For example, as shown below. When I choose, Table is a Vendor or Customer. Then I click the view. It will list the list. Table Option: Vendor, Customer button: View No Name Name 2 Please help me with the solution. Thanks so much. BR DinhSon
↧
Blog Post: Business Central 14 CU07 TearDown
Business Central Spring 2019 (BC14) December update CU07 teardown It has been a long time since I last wrote a blog, and I have skipped commenting of couple of CU's. I have been very busy with some new customers, and after a brienf look at the previous CU's, I decided that they are too small and not really worth a blog per release. With this blog post I also move from BC13 teardowns to BC14 (Spring 2019 Update) CU teardowns. CU07 is a small update. First of all, there is some performance updates that concern temporary usage of different master data tables, Salesperson/Purchaser, G/L Account, Customer, Vendor, Item, Resource, Resource Group just to mention some. If the current record is temporary, dimensions are not created when data is inserted. This is really nice example of how unneccessary database fetches and updates can be avoided with very simple means - and use of temporary tables! Quite a lot of other changes concern of handling of Start/End dates and times in various production orders, and is not very interesting. Interesting is though, that the code that handles StartDate/EndDate calculations is identically added to a whole lot of tables instead of just one codeunit. This type of copy-paste coding is deemed obsolete by various developing forums. MS has cleared this kind of clutter in earlier CU's, so probably this functionality will later be moved into a management codeunit after it has grown some maturity. Version conflict between CU number and ApplicationVersion I'd also like to drop a comment about the CU version numbering conflict between CU number and the Application Version number. CU01 was logically numbered "14.1" in code, but for some reason CU02 was numbered as "14.3". From there the numbering has not been in sync between CU and application version. So, this CU07 application version is numbered as "14.8" I cannot now remember if MS pulled back original CU02 or what is the reason for this, but nevertheless it is a bit confusing. If you want to find out what objects have been touched by CU07, you have to filter objects with "*14.08". Microsoft Invoicing discontinuation Effective from Feb 8th 2020, Microsoft Invoicing is no longer supported, and user will get a message dictating that the data must be exported before that. The Microsoft Invoicing app seems to be Role Center Page 9029 that belongs to Application area #Invoicing. This "App" has been available as additional feature purchased with O365, and actually this was the first time I heard about it. The MS Invoicing home page: https://products.office.com/en-us/business/microsoft-invoicing/invoice-software More information of the discontinuation from MS site: https://docs.microsoft.com/en-us/dynamics365/invoicing/export-data This discontinuation introduces a couple of new objects that handle discontinuation and actual data export for customers. The export itself seems to gather data from sales documents and posted documents per customer and insert them into an excel workbook it then sends out with e-mail. The export functionality seems to be quite nice, and I think it is a good example how to create a collection of data with Excel, and can perhaps be used as a base for some GDPR related reports for customers that require their data extracted from the database. If you have time, I suggest you, dear reader, give a look for these new objects: Codeunit 2381 O365 Eport Data and pages 2356 O365 Discontinuation and 2381 O365Export Data . Thanks for reading, and Happy new year!
↧
Forum Post: RE: INVOICE DOCUMENT DOESN'T APPEAR WHEN I HAVE POSTED THE WAREHOUSE RECEIPT
Hi, check this link, hope it answers your question. https://cloudrelia.com/how-to-post-a-purchase-invoice-for-partial-receipts-in-business-central/
↧
↧
Blog Post: Control Add-ins Supercharged: Development and production build tasks
I’ve been absent for a while – sometimes it’s difficult to find time for blogging even when I want it. Anyway… here’s the last post in the introductory series of posts that explain my NAV TechDays 2019 demos. In this code example, I explain the difference between typical development and production build configurations, and I show how to configure gulp accordingly. To check the code example, and to read the detailed explanations of it, jump over to https://github.com/vjekob/supercharged_01/tree/08-gulp-build-prod Development and production configurations are not an intuitive thing for AL people. However, in the world of C# or JavaScript (or most other programming languages for that matter), you can’t really live without them. Since control add-ins are more about web than about AL, you’ll want to set up these different build configurations. Typically, you’ll want a development build that’s optimized for development and debugging, and a production build that’s optimized for run-time and performance. Luckily, it’s very easy to configure gulp to do this for you. And that’s what today’s code example illustrates. You’ll create two separate tasks. Each of these produces a bundle that targets a different need. On top of that, I also give some simple guidance and hints about a few JavaScript practices. As I said – this concludes the introductory part. With this, we are done with traditional JavaScript. For better part, we’re done with gulp, too. While I’ll use gulp in future examples, too, it will do much less transformation, and will mostly automate moving files between different workspaces. Also, in my future examples, I’ll focus on more modern JavaScript as well as modern UI frameworks and toolchains. Happy coding, and let me know if you find this series useful. Read this post at its original location at http://vjeko.com/control-add-ins-supercharged-development-and-production-build-tasks/ , or visit the original blog at http://vjeko.com . 5e33c5f6cb90c441bd1f23d5b9eeca34 The post Control Add-ins Supercharged: Development and production build tasks appeared first on Vjeko.com .
↧
Blog Post: Dynamics 365 Business Central: again about obsoleting fields
More than an year ago I’ve written this post explaining how to handle breaking schema changes on a production Dynamics 365 Business Central SaaS tenant . I think that every Dynamics 365 Business Central developer now knows that in a production environment you cannot remove objects or fields (breaking schema in the database) but all schema changes must always be additive. Despite this, I see lots of developers that does what I try to describe in this quick post. As first step, they create a version 1.0.0.0. of an extension that defines a new table object with some fields: Then, on version 1.0.0.1 they decide to remove for example an existing field and they declare it as ObsoleteState = Removed : Then, after some time they create a version 1.0.0.2 of the extension where they want to add new features and a new field in the table. A quite common error that they do is as follows: What happened here? Lots of partners thinks that when a field is declared as ObsoleteState = Removed and deployed on a production tenant, this is physically removed by Microsoft in a next tenant upgrade. So, as you can see in the above code, they added a new field (here called ISBN) and they remove the obsolete field from the AL code definition. What happens when you deploy this extension to a Dynamics 365 Business Central tenant? ERROR: unsupported breaking schema changes! Please always remember that when you declare a field (or an object) as ObsoleteState = Removed , this is not physically removed from the database schema . Microsoft actually has not enforced a policy for physically removing obsolete fields from the database , this is at the moment only like a “mark” that prevent you (and your partners) to use the field (or the object). Obsolete fields are actually never physically removed also during a next major release upgrade. The right way of work when you need to declare fields as obsolete is to always maintain those field definition on your AL code, like in the following code: In this way, you don’t have breaking schema changes and your extension will be correctly deployed. A common question that I always receive is: when my ObsoleteState = Removed fields will be really deleted from the database schema? Microsoft is working on activating this “cleanup” of obsolete fields, announced plans are for the v16 release (April 2020) but there are no official announcements yet, so please remember this blog post Happy New Year now…
↧
Forum Post: RE: Load SourceTable on page NAV 2013
Not sure what you are trying to accomplish but I will try to answer your question. You can have a variable say Tabletype Option Vendor,Customer and also you can have to write some code on OnAssist Edit trigger such that based on the option selected it will bring up the list. For example if you select Customer then on Assist Edit you will write a the code as If Tabletype = tabletype::Customer then page.runmodal(Page::"Customer list") if tabletype = tabletype::vendor then page.runmodal(page::"Vendor list"); RJ.
↧