-
Notifications
You must be signed in to change notification settings - Fork 188
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New System App Module for easy file systems access #663
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR needs some work before the real code review can conducted.
src/System Application/App/File System/permissions/FileSystemAdmin.PermissionSet.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/permissions/FileSystemEdit.PermissionSet.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/permissions/FileSystemEdit.PermissionSet.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/permissions/FileSystemObjects.PermissionSetExt.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/permissions/FileSystemObjects.PermissionSetExt.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/FileSystem/FileSystemImp.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/FileSystem/FileSystemImp.Codeunit.al
Outdated
Show resolved
Hide resolved
…Impl.Codeunit.al Co-authored-by: Jesper Schulz-Wedde <[email protected]>
src/System Application/App/File System/permissions/FileSystemObjects.PermissionSet.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccounts.Page.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountWizard.Page.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountWizard.Page.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Account/FileAccountWizard.Page.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/FileSystem/FileSystem.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/FileSystem/FileSystem.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/FileSystem/FileSystemImpl.Codeunit.al
Outdated
Show resolved
Hide resolved
src/System Application/App/File System/src/Lookup/FileType.Enum.al
Outdated
Show resolved
Hide resolved
…s.Page.al Co-authored-by: Darrick <[email protected]>
…e file handling procedures
…ptions in app.json files
…aces and references
src/System Application/App/External File Storage/src/Account/FileAccount.Codeunit.al
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm happy with the state of this PR. Now we just need one more from the product group to be happy 😊
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just the permission fix, otherwise all good.
...System Application/App/External File Storage/permissions/FileStorageObjects.PermissionSet.al
Show resolved
Hide resolved
As long as the record is passed via var, temp or not doesn't matter anyway. I added it only to the fascade to make it clear in the Module Fascade Documentation. @JesperSchulz, @darjoo how should I proceed? |
I don't have a definite answer here. I'm all for consistency, and I definitely prefer to see in the parameter list and parameter name, when a record is temporary - it just makes it easier to understand what's going on, without having to peek on the actual table object to see if it happens to be a temporary one. Temporary on object level was added a small handful years ago to allow us to have a table object which won't result in breaking schema changes, when changed. We for instance had buffer tables in the system, which only ever were used as temporary tables, but which we couldn't change as the schema was synchronized. That was annoying and hence the temp property was added to help the compiler understand what kind of table we're dealing with here. Long story short: In my opinion, you should "double specify" temporary. The property simply ensures, that you won't ever store the table in the DB. However, we do not have firm rules around that (yet). The property was introduced quietly and we never got around to create rules for it. But I agree with Stefan, that we at least must be consistent - if not everywhere, then at least in the module. So go for being explicit about the temp property in the procedure parameters and parameter names. |
Done. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's merge!
…Apps (#23225) This PR contains three new connector apps, to connect Azure Blob Storage, Azure File Share and SharePoint Online with the New File System Module in the System App. File System Module PR: microsoft/BCApps#663 Here are some Screenshots:       Fixes #22691 Fixes [AB#559148](https://dynamicssmb2.visualstudio.com/1fcb79e7-ab07-432a-a3c6-6cf5a88ba4a5/_workitems/edit/559148)
Migration of microsoft/ALAppExtensions#23225
Now that we have made several clients Universal code ready.
One of the main problems turned out to be the replacement of the file record and the file object (File.Create, File.Exists).
Some of our customers now use Azure Blob Service from the System app. Others don't have a good internet and now use a local microservice with REST API, others use Azure File Shares.
The problem is that every integration is different. I think many other partners will have the same problem.
To simplify access I have adopted the email module and created new file accounts.
With just one codeunit, a developer can now connect to various file services without having to know how they actually work. The code unit "File System" delviers everything taht is needed.
An additional PR contains three connector apps:
microsoft/ALAppExtensions#23225
This Apps will conenct:
All three service can be access over one unified interface!
New provider in the future could be:
An example that shows how simple it is to use the new modules can be found here:
https://github.com/IceOnly/BC_FileSystem_Example
But before I go round the whole thing, I'm interested in whether there is any interest in the module at all.
Here are some Screenshots:






I have decided in favour of some restrictions. Paths must not start with a /. The only supported path separator is /. If services that require a \ are to be connected, this must be translated by the connector app.
These restrictions should ensure that the file service can be exchanged without upgrading data.
Assigned Workitems:
Fixes #2418
Fixes AB#559148