How-To Use Where-Used in Base App

Imagine you are building an extension on some standard tables and you would like to find out where some procedures or fields are used in the whole base app.


There are several reasons why you should look after some background business logic.


Jump into your extension you are developing at and select that procedure or field you are looking for:

Hit Shift+Alt+F12 or look for "Find All References" in your context menu.


But: You are going to find nothing!

So let's make it work!


Follow these steps:

  • So let's try to compile the base app and see if it works. Download your specified artifact:

Get-BcArtifactUrl -type onprem -country 'de' -select Latest

  • This command will show up your artifact url:

https://bcartifacts.azureedge.net/onprem/19.2.32968.33504/de

  • Let's download the latest Business Central DE-localization:

Download-Artifacts -artifactUrl https://bcartifacts.azureedge.net/onprem/19.2.32968.33504/de -includePlatform

  • On your local drive, system will create this folder where you can jump in, to get the base app:

C:\bcartifacts.cache\onprem\19.2.32968.33504\platform\Applications\BaseApp\Source\Base Application.Source.zip

  • Create a local repository and extract all files from that base-zip file into any folder. In this example it's a folder called "app" in my local project "DE-latest":


That app-folder contains now all *.al files:




  • Take the System App, Application App and the System Application App and put them into the ".alpackages" folder:


From here:

"C:\bcartifacts.cache\onprem\19.2.32968.33504\platform\Applications\system application\source\Microsoft_System Application.app"
"C:\bcartifacts.cache\onprem\19.2.32968.33504\platform\Applications\Application\Source\Microsoft_Application.app"
"C:\bcartifacts.cache\onprem\19.2.32968.33504\platform\ModernDev\program files\Microsoft Dynamics NAV\190\AL Development Environment\System.app"

To:


  • Copy all assemblies

From here:

C:\ProgramData\BcContainerHelper\Extensions\de-latest\.netPackages\assembly
C:\ProgramData\BcContainerHelper\Extensions\de-latest\.netPackages\Service

and copy them into your ".netpackages" folder:


  • Move these files from your app folder (DE-latest\app\) into your repository folder (DE-latest):

- app.json

- ExtensionLogo.png


  • Add the runtime-property into that app.json. It should look like this:

{
    "id":  "437dbf0e-84ff-417a-965d-ed2bb9650972",
    "name":  "Base Application",
    "publisher":  "Microsoft",
    "description":  "Provides business processes that are typical for small and mid-sized companies, such as sales and purchasing, and customer and vendor management, plus complex processes, such as assembly, manufacturing, service, and directed warehouse management. https://docs.microsoft.com/en-us/dynamics365/business-central/across-business-functionality",
    "version":  "19.2.32968.33504",
    "logo":  "ExtensionLogo.png",
    "privacyStatement":  "https://go.microsoft.com/fwlink/?LinkId=724009",
    "EULA":  "https://go.microsoft.com/fwlink/?linkid=2009120",
    "help":  "https://go.microsoft.com/fwlink/?linkid=2104024",
    "url":  "https://go.microsoft.com/fwlink/?LinkId=724011",
    "dependencies":  [
                         {
                             "id":  "63ca2fa4-4f03-4f2b-a480-172fef340d3f",
                             "name":  "System Application",
                             "publisher":  "Microsoft",
                             "version":  "19.0.0.0"
                         }
                     ],
    "internalsVisibleTo":  [
                               {
                                   "id":  "5d86850b-0d76-4eca-bd7b-951ad998e997",
                                   "name":  "Tests-TestLibraries",
                                   "publisher":  "Microsoft"
                               },
                               {
                                   "id":  "c49d9d39-1c94-46d2-8bf7-3cce15ba54dc",
                                   "name":  "Tests-SMTP",
                                   "publisher":  "Microsoft"
                               },
                               {
                                   "id":  "7fe10be7-575f-4cce-957b-bcd0df8f9bd7",
                                   "name":  "Tests-Rapid Start",
                                   "publisher":  "Microsoft"
                               },
                               {
                                   "id":  "4564dd2f-e8b2-41ff-9905-9d7a950475a5",
                                   "name":  "Tests-Misc",
                                   "publisher":  "Microsoft"
                               },
                               {
                                   "id":  "8c9fc75f-dc51-40de-a6fa-55e7bbe0c0c2",
                                   "name":  "Tests-What\u0027s New Notifier Test",
                                   "publisher":  "Microsoft"
                               },
                               {
                                   "id":  "74e323c4-70a3-49ce-b18e-fe9ccaff01d3",
                                   "name":  "Tests-Marketing",
                                   "publisher":  "Microsoft"
                               },
                               {
                                   "id":  "c49d9d12-1c94-4362-8bf7-3cce15be54dc",
                                   "name":  "Tests-Monitor Sensitive Fields",
                                   "publisher":  "Microsoft"
                               },
                               {
                                   "id":  "fa3e2564-a39e-417f-9be6-c0dbe3d94069",
                                   "name":  "Tests-ERM",
                                   "publisher":  "Microsoft"
                               },
                               {
                                   "id":  "bd6c6741-7734-4109-bf2d-db58545d482c",
                                   "name":  "Tests-Local",
                                   "publisher":  "Microsoft"
                               },
                               {
                                   "id":  "2a5ff629-58b0-48e8-9414-319055c49e8d",
                                   "name":  "Tests-MOCKSERVICETESTS-Internal",
                                   "publisher":  "Microsoft"
                               },
                               {
                                   "id":  "d94a0cee-f211-4941-b609-7c984f85ad03",
                                   "name":  "Tests-Permissions",
                                   "publisher":  "Microsoft"
                               }
                           ],
    "platform":  "19.0.0.0",
    "target":  "OnPrem",
    "resourceExposurePolicy":  {
                                   "allowDebugging":  true,
                                   "allowDownloadingSource":  true,
                                   "includeSourceInSymbolFile":  true
                               },
    "brief":  "Base Application (W1)",
    "runtime": "8.1"
}


And you are ready to compile!



Compilation ended at '18:2:26.310'.



You can look now for every reference!

Like these 7 results of a procedure called "GetDefaultLineType" in the Sales Line Table.


Have fun!

525 Ansichten1 Kommentar

Aktuelle Beiträge

Alle ansehen