top of page

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!

1.431 Ansichten2 Kommentare

Aktuelle Beiträge

Alle ansehen

BeyondCues

Make your employees' everyday life easier and increase productivity at the same time. BEYOND Cues adds a tab to your role center with “Cues”. Among other things, the cues can be configured to display

2 Comments


Hi! That's very useful. But it seems that quite a lot has changed with newer version. Have you been able to repeat it for V23? If yes, could you update it or create a manual for new version? Thank you!

Like

Daniel Gorski
Daniel Gorski
Jun 23, 2022

Download always the latest Artifact with this command: Download-Artifacts -artifactUrl (Get-BcArtifactUrl -type onprem -country 'de' -select Latest) -includePlatform

Like
bottom of page