Code Monkey home page Code Monkey logo

bctech's Introduction

alt text

Welcome to the Business Central Tech Samples

In the Business Central development team, we are passionate about technology. If you are a Business Central developer or simply a BC tech enthusiast and you share the same passion, this repo is for you. In the R&D team, we work hard for each release to implement new features to make this product great, but if you are a developer, you know that there are a lot of other things happening in the process. We do prototypes, investigate new technologies, set some intricate experiments to test performance, try out new processes and more. Most of this work never makes it out of the four walls of Microsoft and we realized that some of it might be of value to you, the members of the tech community. So instead of keeping all this good stuff for ourselves, we have decided to share. Don't hesitat to provide feedback, comments and opinions but also let us know what you want to hear about.

Notice

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

bctech's People

Contributors

bertverbeek4ps avatar braemeratwork avatar chrishdmicrosoftcom avatar ciiordac avatar dagirard avatar demiliani avatar dependabot[bot] avatar dmc-dk avatar emildamsbo avatar encimita avatar esbenk avatar grobyns avatar henrikwh avatar ihorhandziuk avatar jobulsin avatar juliamakulec avatar kennienp avatar kine avatar microsoftopensource avatar msft-sam avatar navfreak avatar onbuyuka avatar pitylend avatar qutreson avatar ray13z avatar rmillerga avatar tino-teuber avatar vincentnic avatar yuopolev avatar yuopolev-zz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bctech's Issues

ForceHandleTrackingEvent failed to acquire a lock

Hi Team,
Hope you are doing well.
Actually I am getting error while publishing on BC Cloud Sandbox after getting WAVE 1 2020 Update.

It says
The request for path /v2.0/sandbox/dev/apps?SchemaUpdateMode=synchronize&DependencyPublishingOption=default failed with code UnprocessableEntity. Reason: ForceHandleTrackingEvent failed to acquire a lock

But it is allowing to install Manually from Extension Management .

CopyProductionEnvironmentToSandboxEnvironmentAsync

this function calls wrong api.
it should use this API:
Content-Type: application/json
POST /admin/v2.1/applications/{applicationFamily}/environments/{sourceEnvironmentName}
{
"environmentName": string, // The name of the new environment.
"type": string // The type of environment to create. Currently only the value "Sandbox" is supported.
}

'' operator: Failed to resolve table or column or scalar expression named 'RT0028'

When using the https://github.com/microsoft/BCTech/tree/master/samples/AppInsights/KQL/Queries/ExampleQueriesForEachArea)/SQLDeadlocks.kql
Query the following error appears:
'' operator: Failed to resolve table or column or scalar expression named 'RT0028'

Also, I can't find RT0028 on the page:
https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/telemetry-event-ids

However, the telemetry sounds useful. Please advice, thanks!

PartnerCenter.ps1 : Error MFA required

Try to run PartnerCenter.ps1

Getting error :

AVERTISSEMENT : Attempting to launch a browser for authorization code login.
AVERTISSEMENT : We have launched a browser for you to login. For the old experience with device code flow, please run 'Connect-PartnerCenter -UseDeviceAuthentication'.

Account                                  Environment                                      TenantId                                        
-------                                  -----------                                      --------                                        
a5da473b-298e-43ac-aeee-10464b8c8d50     AzureCloud                                       b2e5620f-08f0-4196-857b-023ebf400b7c            
Get-PartnerCustomer : Authentication failed. MFA required. (10001)
Au caractère Ligne:14 : 14
+ $customers = Get-PartnerCustomer
+              ~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError : (:) [Get-PartnerCustomer], PartnerException
    + FullyQualifiedErrorId : Microsoft.Store.PartnerCenter.PowerShell.Commands.GetPartnerCustomer

Web Services in Business Central

Good afternoon,
I would like to connect a web application in .Net Core 3.1 with the Business Central web services in a tenant in Europe.
Microsoft Business Central has 3 types of APIs, so which one should I use and how could I do it if I want to copy clients from a website into Business Central?

Best!

Slow AL Method Execution - info

Hi,

Not sure if this is the right channel to ask this question but I reported the same question on Yammer and didn't get any reply.

Application Insights metrics for eventId RT0018 (Operation exceeded time threshold AL method) is showing very high values of customDimensions.executionTime when AL methods like RUNMODAL are executed.

We know that a RUNMODAL command will wait until the user take an action, but having Application Insights highlighting this as "Operation exceeded time threshold AL method" will just show false positives as a user that keep a modal page opened for 5 minutes is not really a "Slow AL Method Execution".

You can reproduce it in an environment with Application Insights enabled and triggering any RUNMODAL, for example, from a Warehouse Pick Lines --> Card, it will open the Warehouse Pick in runmodal. Leave opened it for a while and you will see the result in Application insights.

Is there any way to exclude those false positives results?

image

Thanks

2 notification cannot be translated

On page 1518 (My Notifications), the possible notifications are listed, but there are 2 notifications for which neither the title nor the description can be translated. The sources do not exist in any of the .g.xlf files from the installer.
image

Error Report relations issue

Hi, I have to report two issues for the Error Report.
microsoft/BCTech/tree/master/samples/AppInsights/PowerBI/Reports/
The relationship between Dates table and the rest of the tables should be *-1

For example the relations:

  1. Dates-LockTimeouts
  2. Dates and JobQueneErros
  3. there are more (in my case no problem as my data not causing the issuue)

When there are plenty of data to "Fact" Tables then the Date as Integer has the same key and cannot by the primary key on that connection and as a result the report is breaking the visuals.

Error in Convert-PermissionSets - Array dimensions exceeded supported range

When using the Convert-PermissionSets module on a databasewith a big number of permission sets and permission set it results in the error "Array dimensions exceeded supported range."

image

How to reproduce:

  • Create a lot of permission sets and permissions on a BC18 database (we have 800 permission sets and 33000 permissions)
  • Run the Convert-PermissionSets module
  • Maybe relevant: database is running in docker container

PerTenant apps

Hi!

When I tested the powershell script for getting my customers apps out to a file in the Admincenter API, i didn't get the perTenant apps in it. I really didn't expect that because I can't see it in website either. But is there any way to get them out in similar way? Can't find any entity list anywhere? Did try to google it, nothing out there either.

OAuth2.0 non-interactive auth flow

Hello @chrishdmicrosoftcom!

I have been checking options documented here and even better in Authenticate.ps1 but you don't describe non-interactive scenarios.

I was trying to make it work in Postman or in other tools, but I am not successful (I obtained Access Token using another way but then I was getting Forbidden error). Could you, please, provide some help?

Thanks in advance!

Web Service Calls Dashboard: API category not showed

The Web Service Calls Dashboard seems not showing records with Category = Api.
This is the dashboard on my tenant:
WSC_01

while if I check the underlying KUSTO query, this is the result (time range is the same):
WSC_02

Records with category = ODataV4 are listed correctly.

Push Data to BC using ODataV4 with oData connected services

I had publish Purchase Order web service in BC and added connected services by following the step in docs.microsoft.com/.../authenticate-web-services-using-oauth

When i try push data to BC PO module, below error came out.
I notice that when I use postman to push data, it had no issue.
May I know how to solve below error?

Error
[DataServiceClientException: {"error":{"code":"Unknown","message":"Property "Editable" for Pay-to Name is invalid. Expression: [p50PayToOptions = p50PayToOptions::"Another Vendor"]

image

AppsInsight: PowerBI: EnvironmentDim query: duplicate environment names can happen

I had the situation that for one tenant the same environment name can occur when the writing is different in regards of cases. For example, the name "Sandbox-v20" was used and later "Sandbox-V20". This caused an error
image

I suggest to change the EnvironmentDim query in the Dataset.pbix to this (changes in bold) @KennieNP
let AnalyticsQuery =
let
Source = Json.Document(Web.Contents("https://api.applicationinsights.io/v1/apps/" & #"Application Insights application id" & "/query",
[Query=[#"query"="traces
| where 1==1
and timestamp >= ago(" & #"Lookback period" & "d)
| where customDimensions.eventId in ( 'RT0001', 'RT0002', 'RT0003', 'RT0004')
| where isnotempty(customDimensions.aadTenantId)
| project aadTenantId = tostring( customDimensions.aadTenantId )
, environmentName = toupper( customDimensions.environmentName )
, environmentType = tostring( customDimensions.environmentType )
| extend tenantId = strcat( aadTenantId, environmentName)
| summarize environmentType = any(environmentType) by aadTenantId, environmentName, tenantId
",#"x-ms-app"="AAPBI",#"prefer"="ai.response-thinning=true"],Timeout=#duration(0,0,4,0)])),
TypeMap = #table(
{ "AnalyticsTypes", "Type" },
{
{ "string", Text.Type },
{ "int", Int32.Type },
{ "long", Int64.Type },
{ "real", Double.Type },
{ "timespan", Duration.Type },
{ "datetime", DateTimeZone.Type },
{ "bool", Logical.Type },
{ "guid", Text.Type },
{ "dynamic", Text.Type }
}),
DataTable = Source[tables]{0},
Columns = Table.FromRecords(DataTable[columns]),
ColumnsWithType = Table.Join(Columns, {"type"}, TypeMap , {"AnalyticsTypes"}),
Rows = Table.FromRows(DataTable[rows], Columns[name]),
Table = Table.TransformColumnTypes(Rows, Table.ToList(ColumnsWithType, (c) => { c{0}, c{3}}))
in
Table
in AnalyticsQuery

PSOAuthBCAccess is almost worthless.

I was directed here from https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/upgrade/deprecated-features-w1 to see how to fix the breaking change of basic auth being turned off.

The example in PSOAuthBCAccess is only useful for programmers who don't know that Microsoft have created a their own version of an OAuth library for powershell.

Considering this entry is for Business central the ideal language choice would probably be AL, please provide the same routines calling from an AL codeunit suitable for both SaaS and OnPrem.

KQL: Cannot compare values of types string and long

Expected behavior

Long Running SQL Queries.kql can be executed and shows a result set.

Actual behavior

It causes a syntax error which says "Cannot compare values of types string and long." and "The operator '>' is not defined for the operand types string and long."

Cannot-compare-values-of-types-string-and-long

Steps to reproduce the behavior

Do the following steps with your web browser:

  1. In the Azure portal, open your Application Insights resource.
  2. In the Monitoring menu, select Logs.
  3. On the New Query tab, run Long Running SQL Queries.kql.

XML Mapping in Proforma Invoice Schema

Missing Fields in Proforma Invoice Word Template XML Mapping
Item line - Item No. , Item Reference Number Variant, Unit of Measure
Body - Dates, Payment Terms - (Important for certain countries to know if Paid or on Credit)
Transportation Method, Exit Point

Convert-PermissionSets.psm1 - a version for Azure SQL in planning?

Hi,

I am doing so many updates now and most of the systems use Azure SQL.

So it would be really nice if the script could access Azure SQL
(or any SQL Server where it has to login, for that matter)
instead of a local OnPrem SQL where the logged-on Windows user is trusted.

Or - maybe I completely overlooked and missed something, then just point me
to the facts.

Kind regards,
Andreas

BC Environment update 16.2 Warning Message

Hi Team,
I am getting a warning regarding upgrade as per new changes.
I have downloaded the new symbols and updated all the customized extensions with new solution and fix.
I have uploaded the new app file with current version.
Still Getting same warning message. "Your environment can't be updated to Business central Wave 1 16.0 Because of incompatibility issue."
Shall I ignore it and consider the environment will be updated automatically now?

BC Warning

Translate BC to Arabic Language

Hi All,
I'm trying to translate business central on another language that is not supported from Microsoft(Arabic Language).

Is there any tool from Microsoft to be used? and how we can translate all labels in BC?

Best Regards,
Ahmad

CDSCustomEmployeeWorkerIntegration to be updated

The sample in the folder CDSCustomEmployeeWorkerIntegration should be updated according to the documentation in the page
Customizing an Integration with Microsoft Dataverse
This would facilitate to reuse the code in the example without corrections due to the changes the product had in the past two years.

Example:
Warning: Codeunit 'Integration Management' is marked for removal. Reason: Integration Management will be removed. Refactor the code to use systemID and other system fields such as systemLastModifiedDateTime.. Tag: 17.0.AL

Convert-PermissionSets generates empty files

Hello,
I am following Technical Upgrade From Version 14 to Version 20, and part of it is to migrate permission sets.

When try the step from this page, I get lot of error in the console from the beginning, and end up with lot of empty files.

Please see the error below.

My BC 14 instance is running in a container (using BCContainerHelper)
version: Platform 14.0.40464.0 + Application 29537 (US Dynamics NAV 14.0)

Database is running in the host machine WIN-DESKTOP
Microsoft SQL Server Developer (64-bit)
14.0.1000.169

Please let me know if need any details.

thanks
bsr.

PS C:\Users\bsr\migration>
PS C:\Users\bsr\migration> Convert-PermissionSets -DatabaseServer WIN-DESKTOP -DatabaseName Navision -Destination "C:\Users\bsr\migration"
Downloading Symbols from WIN-DESKTOP Navision
Invoke-Sqlcmd : Invalid object name 'Published Application'.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:499 char:13
+     $Apps = Invoke-Sqlcmd -ServerInstance $DatabaseServer -Database $ ...
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Invoke-Sqlcmd], SqlPowerShellSqlExecutionException
    + FullyQualifiedErrorId : SqlError,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand

Proccessing Symbols
Quering permissions from WIN-DESKTOP Navision
FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Processing Permission Set ADCS ALL
Exception calling "Add" with "2" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:553 char:13
+             $App.Add($Details.Location, $Lines)
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Processing Permission Set ADCS SETUP
Exception calling "Add" with "2" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:553 char:13
+             $App.Add($Details.Location, $Lines)
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Processing Permission Set BANKDEC-EDIT
Exception calling "Add" with "2" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:553 char:13
+             $App.Add($Details.Location, $Lines)
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

GetPermissionLine : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:525 char:47
+         $Line = GetPermissionLine $Permission $Details.Name
+                                               ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [GetPermissionLine], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,GetPermissionLine

Exception calling "ContainsKey" with "1" argument(s): "Key cannot be null.
Parameter name: key"
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:534 char:17
+ ...         if ($PermissionSets[$Permission.'Role ID'].ContainsKey($Detai ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException

FindObjectDetails : Cannot validate argument on parameter 'Symbols'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain
any null values and then try the command again.
At C:\Users\bsr\work\scripts\bc_upgrade\Convert-PermissionSets.psm1:523 char:88
+ ... ectDetails $Permission.'Object ID' $Permission.'Object Type' $Symbols
+                                                                  ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [FindObjectDetails], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,FindObjectDetails

With Or Without document inaccurate

I would like a statement on why this solution (raised back in April) was rejected. I am obviously hoping it was simply missed and the warning will now be moved to Codecop.

You state that it is impossible to prevent WITH shadowing causing issues when upgrading the APP file "Executables".
This is incorrect.

Normal libraries and executables do not suffer from this because the compiler that produces their executables and shared libraries will always use unambiguous names for symbols.

To fix your problem all you have to do is the same.

Specifically, take the code you have written to remove the WITH statement from AL source code and run it on the code that you place in the APP file. Leave the original source outside the APP file unchanged.

To highlight compile time issues you should add the warning messages used in other languages "warning: declaration of alias ‘%0’ in WITH statement shadows a previous declaration".

Problem with special characters in converted permission sets

Problem:

image

After converting permission sets from german database (de-DE), special characters are not converted correctly inside the code.

File name itself is correct.

image

Expected behaviour: special characters are converted correctly inside the code

"Config. Template Management" - Pass TempDummyField variable by reference

Hello guys

I think there is a little bug in the codeunit 8612 "Config. Template Management"
In my opinion the parameter "TempDummyField" should be passed by reference.

As I understand the intention of this event is to fill the fields which should be skipped into the TempDummyField-buffer and then the standard code will handle the rest.
The TempDummyField Variable is not used anywhere else than in the integration event and in the line which I highlighted in the screenshot below.
But to fill the TempDummyField-Buffer the integration event has to be passed by reference (var).

Maybe I misunderstand the implementation pattern of the standard code. If so, please fire away and correct me.

procedure UpdateRecord(ConfigTemplateHeader: Record "Config. Template Header"; var RecRef: RecordRef)
    var
        TempDummyField: Record "Field" temporary;
        SkipFieldValidation: Boolean;
    begin
        OnBeforeUpdateWithSkipFields(SkipFieldValidation, RecRef, TempDummyField);
        UpdateRecordWithSkipFields(ConfigTemplateHeader, RecRef, SkipFieldValidation, TempDummyField);
    end;
[IntegrationEvent(false, false)]
    local procedure OnBeforeUpdateWithSkipFields(var SkipFieldValidation: Boolean; var RecRef: RecordRef; TempDummyField: Record "Field" temporary)
    begin
    end;

image

Thanks for your help :)

Hi, I have to report two issues for the Error Report. microsoft/BCTech/tree/master/samples/AppInsights/PowerBI/Reports/

Hi, I have to report one enhancement for the reports.
microsoft/BCTech/tree/master/samples/AppInsights/PowerBI/Reports/

Currently the reports have the parameters for Start Date and End Date to minimize the data that are loaded to the report.
In addition there is a relative filter to minimize the data load on the visuals to each page of the report, which is pretty cool.
But when the report is published on PowerBI Service the parameters are set already before the upload and maybe the date filters are confusing when you do not know the date range behind the scenes and you should go to edit the dataset in order to change the time range.

I suggest to remove the date parameters or add another bool parameter if the user wants to have relative time window.
In my case I removed the date parameters and added these two lines to each query providing last six months of data:
#"Start Date" = Date.AddMonths(DateTime.Date(DateTime.LocalNow()), -6),
#"End Date" = DateTime.Date(DateTime.LocalNow()),

Warnings when compiling the BCAgent project in Visual Studio

While compiling the BCAgent in Visual Studio, a few warning messages come up because the existing projects are built on deprecated frameworks.

Warning NETSDK1138: The target framework 'netcoreapp2.1' is out of support and will not receive security updates in the future. Please refer to https://aka.ms/dotnet-core-support for more information about the support policy.

Here it would be desirable if the entire project could be brought up to date.

One tooltip on page 2501 is not translated

One tooltip of the page ("Extension Details") - "Read more about the best practices for installing and publishing extensions" - is not translated even though the target tooltip exists in the .xlf file used in the language app.
image

Admin Center API PowerShell7 Examples

Hey,

currently the PowerShell BCAdmin API Samples can only be executed with Windows PowerShell.
It would be ideal if these could also be executed using PowerShell 7, as it offers better performance and cross-platform, among other things.
Is this possible or are there too many dependencies to .NetFramework 4.7?

Cheers,
Maurice

Khmer Font Print Issue on Report Generation in SAAS

Khmer CAMBODIAN Language is not supported in the Business Central Report preview.
What is the solution for that in preview and PDF Download it is not supported
image
and using word layout and Conversion needs to be done which is additional work needed to be done.
it is ok in excel as that font is available on the system so it is printing the expected value.

Kindly suggest what can be done to print khmer as expected in SAAS and direct printing in PDF Layout

notebook.ini does not work

using the new approach of a config for Jupyter Notebooks: Cannot seem to get it to work.

Either: file at given location is ignored

Or: File is found but not parsed:

  File "<ipython-input-3-f1e76092fd0f>", line 8
    configFile = "c:\Git\unitop Telemetry Analysis\Jupyter Notebooks\notebook.ini"
                ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 6-7: truncated \uXXXX escape

How to use OAuth2Flows in Docker container (or OnPrem)

Hi,

I'm working with an app that needs to call another tenant via OData. Since webservice key is going I need to use OAuth, especially the On-Behalf-Of flow.

I started with the sample at https://github.com/microsoft/BCTech/tree/master/samples/OAuth2Flows to test things out, and it seems to work fine when I am running the sample code in a BC SaaS sandbox.

But I just cannot get it to work when running in a docker container.
Client Credentials Flow and Authorization Code Flow works just fine, but not the On-Behalf-Of Flow. :-/

The only clue I get is from the eventlog. Every time I try to call the On-Behalf-Of flow I get this in eventlog (sorry about the formatting, GitHub didn't like the formatting from the EventLog)

Server instance: BC Category: Security ClientSessionId:  88be13bc-f580-4cb1-aea5-8a9e11c052f8 ClientActivityId:  b48be31d-ff72-45eb-88b1-4e52d08afe85 ServerSessionUniqueId:  ea4e19dc-9d93-4444-b592-c4f513981de6 ServerActivityId:  224304e9-b061-4fae-9d4d-a38b2bf3ba2b EventTime: 05/25/2021 12:41:48 Message  (LicenseServiceAdalServiceException): RootException:  LicenseServiceAdalServiceException AADSTS7000013: The grant is not supported by  API version 2.0. Trace ID: f3df5a99-e1e2-4333-8cb8-659a67c61601 Correlation ID:  64ee6e8d-83b9-425a-89eb-dddc26afa4d3 Timestamp: 2021-05-25 12:41:47Z  ExceptionStackTrace: at  Microsoft.Dynamics.Nav.LicensingService.Client.Authentication.AuthenticationHandler.&lt;TryMsalActionAsync&gt;d__13.MoveNext()  --- End of stack trace from previous location where exception was thrown --- at  System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at  System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task  task) at  Microsoft.Dynamics.Nav.LicensingService.Client.Authentication.AuthenticationHandler.&lt;AcquireTokenByUserTokenAsync&gt;d__5.MoveNext()  --- End of stack trace from previous location where exception was thrown --- at  System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at  System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task  task) at  Microsoft.Dynamics.Nav.Authentication.OpenAuthorizationTokenHelper.&lt;&gt;c__DisplayClass1_0.&lt;ExchangeCurrentUserToken&gt;b__0(String  aadTenantId, String userAccessToken, String authority, String userAssertionType,  String userName) at  Microsoft.Dynamics.Nav.Authentication.OpenAuthorizationTokenHelper.ExchangeCurrentUserTokenInternal(NavSession  userSession, Uri identityProvider, String[] scopes, Func`6 acquireTokenFunc) at  Microsoft.Dynamics.Nav.Runtime.ALAzureAdCodeGrantFlow.&lt;&gt;c__DisplayClass44_0.&lt;ALAcquireOnBehalfOfTokens&gt;b__0()  at Microsoft.Dynamics.Nav.Runtime.ALAzureAdCodeGrantFlow.Catch[T](Func`1 action)  CallerStackTrace: at  Microsoft.Dynamics.Nav.Runtime.ALAzureAdCodeGrantFlow.Catch[T](Func`1 action) at  Microsoft.Dynamics.Nav.Runtime.ALAzureAdCodeGrantFlow.ALAcquireOnBehalfOfToken(String[]  scopes) at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[]  arguments, Signature sig, Boolean constructor) at  System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[]  parameters, Object[] arguments) at  System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr,  Binder binder, Object[] parameters, CultureInfo culture) at  Microsoft.Dynamics.Nav.Runtime.NavDotNet.Invoke[T](String methodName, UInt32  methodIndex, BindingFlags flags, ParameterModifier modifier, Type[]  referenceTypes, Object[] arguments) at  Microsoft.Dynamics.Nav.Runtime.NavDotNet.InvokeMethod[T](Boolean isStatic,  String methodName, UInt32 methodIndex, Object[] arguments) at  Microsoft.Dynamics.Nav.BusinessApplication.Codeunit502.AcquireOnBehalfOfToken_Scope__2030144547.OnRun()  at Microsoft.Dynamics.Nav.Runtime.NavMethodScope.Run() at  Microsoft.Dynamics.Nav.BusinessApplication.Codeunit502.AcquireOnBehalfOfToken_2030144547(NavText  redirectURL, NavList`1 scopes, ByRef`1 accessToken) at  Microsoft.Dynamics.Nav.BusinessApplication.Codeunit502.OnInvoke(Int32 memberId,  Object[] args) at  Microsoft.Dynamics.Nav.BusinessApplication.Codeunit501.AcquireOnBehalfOfToken_Scope__2030144547.OnRun()  at Microsoft.Dynamics.Nav.Runtime.NavMethodScope.Run() at  Microsoft.Dynamics.Nav.BusinessApplication.Codeunit501.AcquireOnBehalfOfToken_2030144547(NavText  redirectURL, NavList`1 scopes, ByRef`1 accessToken) at  Microsoft.Dynamics.Nav.BusinessApplication.Codeunit501.OnInvoke(Int32 memberId,  Object[] args) at  Microsoft.Dynamics.Nav.BusinessApplication.Page70337375.OnBehalfOfV2_Scope__1128385873.OnRun()  at Microsoft.Dynamics.Nav.Runtime.NavMethodScope.Run() at  Microsoft.Dynamics.Nav.BusinessApplication.Page70337375.OnBehalfOfV2() at  Microsoft.Dynamics.Nav.Runtime.NavMethodScope.Run() at  Microsoft.Dynamics.Nav.BusinessApplication.Page70337375.GetToken_a45_OnAction()  at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments,  Signature sig, Boolean constructor) at  System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[]  parameters, Object[] arguments) at  System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr,  Binder binder, Object[] parameters, CultureInfo culture) at  Microsoft.Dynamics.Nav.Runtime.NavApplicationMethod.InvokeMethod(ITreeObject  obj, String methodName, Object[] args, Boolean resolveHandler, Boolean  throwOnNotFound) at  Microsoft.Dynamics.Nav.Runtime.NavForm.RaiseOnAction(Nullable`1 actionId, String  actionTriggerMethodName) at  Microsoft.Dynamics.Nav.Service.NSField.&lt;&gt;c__DisplayClass20_0.&lt;ActionField&gt;b__0(NsDataAccess  recDataAccess) at  Microsoft.Dynamics.Nav.Service.NsFormDataAccess.RunWithFormDataAccess[T](ITreeObject  parent, NavForm form, Func`2 func) at  Microsoft.Dynamics.Nav.Service.NsDataAccess.RunWithDataAccess[T](ITreeObject  parent, NavRecordState state, Boolean instantiateNewForm, Guid parentFormHandle,  String parentControlName, Boolean&amp; instantiatedForm, Func`2 func) at  Microsoft.Dynamics.Nav.Service.NsDataAccess.RunWithDataAccess[T](ITreeObject  parent, NavRecordState state, Func`2 func) at  Microsoft.Dynamics.Nav.Service.NSField.Action(NavSession session) at  SyncInvokeActionField(Object , Object[] , Object[] ) at  System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance,  Object[] inputs, Object[]&amp; outputs) at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.RunInTransactionCombinator(ServiceOperation  innerOperation, NSServiceBase serviceInstance, MethodBase syncMethod, Object[]  inputs, Object[]&amp; outputs) at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.&lt;&gt;c__DisplayClass28_1.&lt;Combine&gt;b__1(NSServiceBase  serviceInstance, Object[] inputs, Object[]&amp; outputs) at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.TransientErrorRetryCombinator(ServiceOperation  innerOperation, NSServiceBase serviceInstance, MethodBase syncMethod, Object[]  inputs, Object[]&amp; outputs) at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.&lt;&gt;c__DisplayClass28_1.&lt;Combine&gt;b__1(NSServiceBase  serviceInstance, Object[] inputs, Object[]&amp; outputs) at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.ErrorMappingCombinator(ServiceOperation  innerOperation, NSServiceBase serviceInstance, MethodBase syncMethod, Object[]  inputs, Object[]&amp; outputs) at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.&lt;&gt;c__DisplayClass28_1.&lt;Combine&gt;b__1(NSServiceBase  serviceInstance, Object[] inputs, Object[]&amp; outputs) at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.PushPopCombinator(ServiceOperation  innerOperation, NSServiceBase serviceInstance, MethodBase syncMethod, Object[]  inputs, Object[]&amp; outputs) at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.&lt;&gt;c__DisplayClass28_1.&lt;Combine&gt;b__1(NSServiceBase  serviceInstance, Object[] inputs, Object[]&amp; outputs) at  Microsoft.Dynamics.Nav.Service.ServiceOperationTracer.TraceScopeCombinator(Category  telemetryCategory, ServiceOperation innerOperation, NSServiceBase  serviceInstance, MethodBase syncMethod, Object[] inputs, Object[]&amp; outputs)  at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.&lt;&gt;c__DisplayClass28_1.&lt;Combine&gt;b__1(NSServiceBase  serviceInstance, Object[] inputs, Object[]&amp; outputs) at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.&lt;&gt;c__DisplayClass10_0.&lt;PerformanceCounterCombinator&gt;b__0()  at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.PerformanceCounterCombinator(ServiceOperation  innerOperation, NSServiceBase serviceInstance, MethodBase syncMethod, Object[]  inputs, Object[]&amp; outputs) at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.&lt;&gt;c__DisplayClass28_1.&lt;Combine&gt;b__1(NSServiceBase  serviceInstance, Object[] inputs, Object[]&amp; outputs) at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.InitClientTelemetryIdsCombinator(ServiceOperation  innerOperation, NSServiceBase serviceInstance, MethodBase syncMethod, Object[]  inputs, Object[]&amp; outputs) at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.&lt;&gt;c__DisplayClass28_1.&lt;Combine&gt;b__1(NSServiceBase  serviceInstance, Object[] inputs, Object[]&amp; outputs) at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.TlsClearCombinator(ServiceOperation  innerOperation, NSServiceBase serviceInstance, MethodBase syncMethod, Object[]  inputs, Object[]&amp; outputs) at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.&lt;&gt;c__DisplayClass28_1.&lt;Combine&gt;b__1(NSServiceBase  serviceInstance, Object[] inputs, Object[]&amp; outputs) at  Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.Invoke(Object instance,  Object[] inputs, Object[]&amp; outputs) at  System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&amp;  rpc) at  System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&amp;  rpc) at  System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc&amp;  rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean  isOperationContextSet) at  System.ServiceModel.Dispatcher.ChannelHandler.DispatchAndReleasePump(RequestContext  request, Boolean cleanThread, OperationContext currentOperationContext) at  System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest(RequestContext  request, OperationContext currentOperationContext) at  System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(IAsyncResult  result) at  System.ServiceModel.Dispatcher.ChannelHandler.OnAsyncReceiveComplete(IAsyncResult  result) at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult  result) at  Microsoft.Dynamics.Nav.Types.Channels.ReceiveCorrelator.AsyncResult.Complete(Action  setValue) at  Microsoft.Dynamics.Nav.Types.Channels.ReceiveCorrelator.OnNewMessage(IAsyncResult  ar) at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously) at  System.ServiceModel.Security.SecuritySessionServerSettings.ServerSecuritySessionChannel.ReceiveRequestAsyncResult.Complete(Boolean  synchronous, Exception exception) at  System.ServiceModel.Security.SecuritySessionServerSettings.ServerSecuritySessionChannel.ReceiveRequestAsyncResult.OnReceive(IAsyncResult  result) at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult  result) at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)  at  System.ServiceModel.Channels.ReliableChannelBinder`1.InputAsyncResult`1.OnInputComplete(IAsyncResult  result) at  System.ServiceModel.Channels.ReliableChannelBinder`1.InputAsyncResult`1.OnInputCompleteStatic(IAsyncResult  result) at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult  result) at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)  at  System.ServiceModel.Channels.TransportDuplexSessionChannel.TryReceiveAsyncResult.OnReceive(IAsyncResult  result) at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult  result) at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)  at  System.ServiceModel.Channels.SynchronizedMessageSource.ReceiveAsyncResult.OnReceiveComplete(Object  state) at  System.ServiceModel.Channels.SessionConnectionReader.OnAsyncReadComplete(Object  state) at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult  result) at System.Net.LazyAsyncResult.Complete(IntPtr userToken) at  System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr  userToken) at System.Net.Security._SslStream.ProcessFrameBody(Int32 readBytes,  Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at  System.Net.Security._SslStream.ReadFrameCallback(AsyncProtocolRequest  asyncRequest) at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result)  at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) at  System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) at  System.Runtime.AsyncResult.Complete(Boolean completedSynchronously) at  System.ServiceModel.Channels.ConnectionStream.IOAsyncResult.OnAsyncIOComplete(Object  state) at  System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(SocketAsyncEventArgs e) at  System.Net.Sockets.SocketAsyncEventArgs.FinishOperationSuccess(SocketError  socketError, Int32 bytesTransferred, SocketFlags flags) at  System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32 errorCode,  UInt32 numBytes, NativeOverlapped* nativeOverlapped) at  System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32  errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) ProcessId: 35052 Tag:  00000CY ThreadId: 142 CounterInformation: CustomParameters: { }  GatewayCorrelationId

Where the most interesting part is (LicenseServiceAdalServiceException): RootException: LicenseServiceAdalServiceException AADSTS7000013: The grant is not supported by API version 2.0.
My google-fu let me down on that error code, though... No one has ever written about AADSTS7000013, as it seems...

Since the code do work fine on BC SaaS I assume there are either some more settings I need to do on my NST, or I need to add something to my app registration.

My container is configured for AAD auth in the web client, but NavUserPassword on the NST, to enable publishing apps from VSCode.

  1. Should it be possible to configure On-Behalf-Of Flow in a container (without public endpoints...)?
  2. What NST settings would be used by this feature?
  3. Any clues on what might be wrong?

Any help is much appreciated!

Thanks,
Johannes

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.