Skip to main content

Workaround to XMLPort not supported in Business Central

Problem Statement:
While I was working on some custom EFT project, I thought of using XMLPort as it is the safest and easiest method to get the data successfully directly from the tables.
Unfortunately, XMLPort is not supported to work on WebClient and I was stuck with writing code to do exactly what XMLPort would do.
Also, another issue that Business Central d extension support is using File methods i.e Open, Write, Close, etc.









Introduction:
In Business Central even if you're not given explicit rights to deal with files directly there are streams using which we can be downloaded as files. Enough of introduction, let's start working now!

Books & References:
https://docs.microsoft.com/en-us/dynamics-nav/feature-limitations-of-the-microsoft-dynamics-nav-web-client
Pre-requisites:

  • VS Code
  • AL Language Extension
  • Microsoft Dynamics Business Central.

Demonstration:
1. Creation of File Contents:
In this case, I've simply text string 'Hello World!'
Although it's perfectly possible to create more complicated strings such as XML contents using a combination of loops and text manipulating functions as needed.



2. Creation of Streams:
Using  TempBlob.Blob.CREATEOUTSTREAM(Var_OutStream) initialize the OutStream.




Using Var_OutStream.WriteText(Var_FileContent) write the text to the BLOB





Using TempBlob.Blob.CREATEINSTREAM(Var_InStream) read the contents of BLOB to InStream variable.




3. Downloading the contents of the Streams to a file:
Using DownloadFromStream(Var_Instream,FileName.FileExtension) download the contents of the InStream to a file.




Output:













Conclusion:
That's exactly how I was able to create a Custom Text File and download it in Business Central.
Sometimes solutions are right under our nose but you gotta work hard to find it.
Cheers!

Comments

Popular posts from this blog

Creating APIs in Business Central - 1

Introduction:
While writing a blog on Automated Testing in Business Central, I was going through sample apps provided by Microsoft and realized that the complexity is nowhere close to what examples Microsoft has provided on docs.microsoft.com. In this blog, I will try to explain how APIs work and how to be creative with the implementation. Also, an API which were in beta are finally out with version V1.0 in the April 2019 release let's see some important key things from development aspects.
This blog is going to be theoretical one kindly bear with me.


Pre-requisites:
Microsoft Dynamics Business Central (SaaS)VS Code(https://code.visualstudio.com/download)AL Language Extension(https://tinyurl.com/yyvzxwkb)API V1 from Business Central On-Premise DVD
Books & References:
API V1 from Business Central On-Premise DVDAPI(V1.0) for Business Central (Click Here)API(Beta) for Business Central (Click Here)
Solution:

Key Requirements:
API source table must have an Id(GUID) field per record for m…

How Business Central Modern Client Reverse Compatibility With NAV Can Help You Improve Your Work.

Introduction: Today, I was playing around with Business Central Modern Client (Windows App).
Out of curiosity I was trying to login to one of my NAV 2017 through SSO.
Pre-requisites: Microsoft Dynamics NAV with SSO configured
Microsoft Dynamics Business Central
Demonstration: 1. Business Central App - Main Page:

Clicking on locally hosted service and putting in the credentials configured for NAV 2017 SSO, we get.
Still skeptical when Business Central login into NAV.

2. Business Central App - Reverse compatible with NAV 2017:


Well well well...
Look whose here.
NAV disguised as  Dynamics 365 for Financials.

I think we all agree that Business Central Modern Client is a WebApp version of Busines Central Online. Basically just like browser in an App.
The difference is that it can connect to NAV as it is just like a browser.

3. Does Business Central Modern Client follow DynamicsNAV protocol?:
Well, it simply does not.
It would be amazing  if it did, as it would mean that we could deal with runni…

Generic way of Attaching Documents on any Record of the Page in Microsoft Dynamics Business Central - Template Code

Problem Statement: In Microsoft Business Central, there is a way to attach attachments only on Documents or Master Table records. But, what if this requirement is for other tables such as Opportunities, custom tables, etc. Introduction: I have seen many developers afraid to touch the attachment-related customization as it seems complicated.
Well, I have found a solution and here it goes.
In this blog, I'm attempting to create a generic template for code that needs to have an attachment feature on any table that you like using AL Code.
This means that you simply cannot copy-paste the same code for all the tables but a simple change in variable sub-type will ease your work significantly
Pre-requisites:Microsoft Dynamics Business CentralVS CodeAl Language ExtensionSource Code:https://github.com/olisterr/Generic-Attachment-Template Demonstration:1. How it works:
Document Attachment is a table which stores a few things that help in tracking information related to the attachment

The main u…