text:
check if classes associated with alternative_identifiers can use ANY alternative_identifiers

Use the examples data file framework
As in, could a Biosample have a neon_study_identifiers annotation?

id: nmdc:bsm-99-dtTMNb
part_of:
  - nmdc:sty-00-abc123
env_broad_scale:
  has_raw_value: ENVO:00002030
  term:
    id: ENVO:00002030
env_local_scale:
  has_raw_value: ENVO:00002169
  term:
    id: ENVO:00002169
env_medium:
  has_raw_value: ENVO:00005792
  term:
    id: ENVO:00005792
alternative_identifiers:
  - generic:123

linkml-validate \
    --schema  nmdc_schema/nmdc_materialized_patterns.yaml  \
    --target-class  Biosample src/data/valid/Biosample-minimal-with-alternative-identifiers.yaml

No issues found

id: nmdc:bsm-99-dtTMNb
part_of:
  - nmdc:sty-00-abc123
env_broad_scale:
  has_raw_value: ENVO:00002030
  term:
    id: ENVO:00002030
env_local_scale:
  has_raw_value: ENVO:00002169
  term:
    id: ENVO:00002169
env_medium:
  has_raw_value: ENVO:00005792
  term:
    id: ENVO:00005792
gold_study_identifiers:
  - gold:Gs123

linkml-validate \
    --schema  nmdc_schema/nmdc_materialized_patterns.yaml  \
    --target-class  Biosample src/data/valid/Biosample-minimal-with-study-id.yaml

No issues found

@aclum @cmungall ^

Is this a linkml bug? If it is allowed why doesn't it show up in the documentation as an inherited slot?

authors: aclum turbomam

repo: microbiomedata/nmdc-schema


text:
trim contents nmdc_schema

Filter contents of nmdc_schema to include only files that are useful when pushed to the PyPI repo.
Update contents after latest regeneration of artifacts as in v7.0.0

Eventually I think the process needs to be updated so that we don't have this folder altogether. The package should be built and published by poetry on the fly.

This PR was pre emptive. Closing it. Didn't realize it affected a lot of other downstream scripts.

source: gharchive/pull-request

license_type: permissive

license_source: github-api


text:
Make a doc generator as OS-independent

Right now it looks like generated docs comes with a Linux line separator.
It would be great if generated docs would use a System.lineSeparator() instead of hard-coded \n.
This is a screenshot of commit message to confirm:

NOTE: The conversion from Windows line separator is done on commit either way.
It is only the problem during development, when these files are regenerated but without changes.

In RC1, file generation has changed to use a handlebar template rather than toString() from internal classes.
I don't have a windows, so I cannot test it but can you try with the latest snapshot (OR even RC1)? As far as quick intellij search, there is no \n used in the current code base.

Thank you @ttddyy , for looking into this.
No, it still generates them with an LF symbol.
In the end I do this though:
task filterMetricsDocsContent(type: Copy) {
	dependsOn generateObservabilityDocs
	from generatedDocsDir
	include '_*.adoc'
	into generatedDocsDir
	rename { filename -> filename.replace '_', '' }
	filter { line -> line.replaceAll('org.springframework.integration', 'o.s.i') }
}

which creates for me new edited files and those are already created with a proper CRLF symbol.
Technically I don't care about generated files right now since I don't push them into the repo, but rather they are used as a resource for the target docs (HTML, PDF) generation alongside with my existing adoc content.
So, from big height we can just ignore this or close altogether to avoid extra noise in backlog.
But it would be great if that Handlebars can output result in OS-dependent line separator instead of the one compiled into jar with those templates.

@artembilan I have updated the code to replace the line delimiter while loading the template files.
This would replace the one in template file to the one used by the running OS by System.lineSeparator().
So, it should be replacing LF to CRLF on windows.
Please try the latest snapshot.

That works.
Thank you, @ttddyy !
Fixed via: https://github.com/micrometer-metrics/micrometer-docs-generator/commit/c9ec96279bcbe3bb599bc436302fe266c4a1fdbd

source: gharchive/issue

authors: artembilan ttddyy


text:
R2DBC can not use the same MySQL container of Flyway

Issue description
Here is my configuration:
test-resources:
  containers:
    mysql:
      image-name: mysql:8
datasources:
  default:
    db-type: mysql
r2dbc:
  datasources:
    default:
      db-type: mysql
      url: r2dbc:tc:mysql:///test?TC_IMAGE_TAG=8
flyway:
  datasources:
    default:
      db-type: mysql
      enabled: true
      url: jdbc:tc:mysql:8:///test
      baseline-on-migrate: true

The testcontainers will start another container after Flyway migration is finished
Log:
19:44:56.876 [Test worker] INFO  o.t.utility.RyukResourceReaper - Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
19:44:56.877 [Test worker] INFO  o.testcontainers.DockerClientFactory - Checking the system...
19:44:56.877 [Test worker] INFO  o.testcontainers.DockerClientFactory - ✔ Docker server version should be at least 1.6.0
19:44:56.879 [Test worker] INFO  🐳 [mysql:8] - Creating container for image: mysql:8
19:44:57.161 [Test worker] INFO  🐳 [mysql:8] - Container mysql:8 is starting: e59d231fb6043f7afe2f93af348ead7b9775f1d67bd172940daba0b3878320f0
19:44:57.531 [Test worker] INFO  🐳 [mysql:8] - Waiting for database connection to become available at jdbc:mysql://wingman:49255/test using query 'SELECT 1'
19:45:08.572 [Test worker] INFO  🐳 [mysql:8] - Container is started (JDBC URL: jdbc:mysql://wingman:49255/test)
19:45:08.572 [Test worker] INFO  🐳 [mysql:8] - Container mysql:8 started in PT11.69292S
19:45:08.596 [Test worker] INFO  o.f.c.i.d.base.BaseDatabaseType - Database: jdbc:mysql://wingman:49255/test (MySQL 8.0)
19:45:08.691 [Test worker] INFO  o.f.core.internal.command.DbValidate - Successfully validated 1 migration (execution time 00:00.035s)
19:45:08.743 [Test worker] INFO  o.f.c.i.s.JdbcTableSchemaHistory - Creating Schema History table `test`.`flyway_schema_history` ...
19:45:08.827 [Test worker] INFO  o.f.core.internal.command.DbMigrate - Current version of schema `test`: << Empty Schema >>
19:45:08.833 [Test worker] INFO  o.f.core.internal.command.DbMigrate - Migrating schema `test` to version "1.0.0 - create robot"
19:45:08.890 [Test worker] INFO  o.f.core.internal.command.DbMigrate - Successfully applied 1 migration to schema `test`, now at version v1.0.0 (execution time 00:00.068s)
19:45:09.533 [testcontainers-r2dbc-0] INFO  🐳 [mysql:8] - Creating container for image: mysql:8
19:45:09.687 [testcontainers-r2dbc-0] INFO  🐳 [mysql:8] - Container mysql:8 is starting: 3439720017e448b1c4f730999b8e8eeba4a7b717f5dda1c7819a57b1b16de078
19:45:09.991 [testcontainers-r2dbc-0] INFO  🐳 [mysql:8] - Waiting for database connection to become available at jdbc:mysql://wingman:49256/test using query 'SELECT 1'
19:45:20.920 [testcontainers-r2dbc-0] INFO  🐳 [mysql:8] - Container is started (JDBC URL: jdbc:mysql://wingman:49256/test)
19:45:20.921 [testcontainers-r2dbc-0] INFO  🐳 [mysql:8] - Container mysql:8 started in PT11.38907S

Thanks!

You need to remove the URLs from your configuration in order for the test resources to kick in. Can you try with:
test-resources:
  containers:
    mysql:
      image-name: mysql:8
datasources:
  default:
    db-type: mysql
r2dbc:
  datasources:
    default:
      db-type: mysql
flyway:
  datasources:
    default:
      db-type: mysql
      enabled: true
      baseline-on-migrate: true

?

I removed all the URLs and try serval times, and it still does' t work.
Output logs:
Caused by: java.lang.IllegalStateException: Unable to create a ConnectionFactory for 'ConnectionFactoryOptions{options={}}'. Available drivers: [ mysql ]
	at io.r2dbc.spi.ConnectionFactories.get(ConnectionFactories.java:143)
	at io.micronaut.r2dbc.R2dbcConnectionFactoryBean.connectionFactory(R2dbcConnectionFactoryBean.java:68)
	at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:161)
	at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2333)
	... 90 more

After some debugging, I found the defaultUrl in io.micronaut.r2dbc.DefaultBasicR2dbcProperties#newConnectionFactoryOptionsBuilder is null.
My project url is https://github.com/linweiyu21/mn-testcontainers-test
Thank you for your help!

There were several issues in your reproducer:

it wasn't using micronaut-test-resources, so no way it would start containers for you
it was adding too many dependencies, probably no harm but I removed them
it was missing the JDBC pool, so Flyway wouldn't be invoked
the database configuration can live in the main application.yml file, simplifying configuration

See https://github.com/linweiyu21/mn-testcontainers-test/pull/1

There were several issues in your reproducer:

it wasn't using micronaut-test-resources, so no way it would start containers for you
it was adding too many dependencies, probably no harm but I removed them
it was missing the JDBC pool, so Flyway wouldn't be invoked
the database configuration can live in the main application.yml file, simplifying configuration

See linweiyu21/mn-testcontainers-test#1

Thank you so much!


text:
[CHALLENGE SUBMISSION] Week 1 - Challenge 1

Please provide the following information for your submission:
What is your name? (First, Last)
Matthew Leibowitz
Where is your GitHub Repo? (With your challenge solution)
https://github.com/mattleibow/25-days-of-serverless/tree/implementations
What Challenge is this for? (Challenge number between 1 and 25)
1
(Optional) Anything else we should know? e.g., language used, location, blog post?

We checked out your repository. We're thrilled to say your solution is now listed in our Hall of Fame
Thank you for your contributions!
This PR is now closed! 🎉

authors: mattleibow simonaco

license: MIT


text:
Error: IncrementVersionNumber action failed. Error: Settings file ..AL-Go\settings.json is malformed.  Cannot bind argument to parameter 'object' because it is null.. Stacktrace: at

I am stucked at creating a release. I have followed workshop, videos and resolution of similar issues #352  . But I do not seem to find the answer to my issue. Maybe a bug, Am I missing something?
Help appreciated.
Getting this error:
Error: IncrementVersionNumber action failed. Error: Settings file ..AL-Go\settings.json is malformed.  Cannot bind argument to parameter 'object' because it is null.. Stacktrace: at , D:\a_actions\microsoft\AL-Go-Actions\preview\IncrementVersionNumber\IncrementVersionNumber.ps1: line 89 at , D:\a_actions\microsoft\AL-Go-Actions\preview\IncrementVersionNumber\IncrementVersionNumber.ps1: line 61 at , D:\a_temp\0d13274b-fec2-469c-9d68-815f7ea71e88.ps1: line 2 at , : line 1

Hi, it seems like you settings json correctly formated.
From experience it's most often a , in the last property. If you can't find the issue. It would be helpful to see the settings.json.

It is a one app project.
I leave you the code in the settings.json file:
{   "country": "mx",   "appFolders": [],   "testFolders": [],   "bcptTestFolders": [],   "insiderSasTokenSecretName": "InsiderSasToken",   "licenseFileUrlSecretName": "LicenseFileUrl",   "configPackages": ["STANDARD"],   "doNotRunBcptTests": true }

What are you entering as new version number?

Okay, your json is valid. I've found an oddity.
https://github.com/microsoft/AL-Go/blob/b90607c6ca55e8d764a1723ca93774858197da7c/Actions/IncrementVersionNumber/IncrementVersionNumber.ps1#L89
Error Message Template:
Settings file $project\$ALGoSettingsFile is malformed
Your Error Message:
Settings file ..AL-Go\settings.json is malformed
This lets me to the conclusion you have specified the wrong project.
The error message should be Settings file .\.AL-Go\settings.json is malformed

@freddydk I have tried with +0.1, 1.1, +0.2, 1.2
I have used Preview Al Go and Current. I have tried only using IncrementVersionNumber Workflow with same results.

Last run did indeed prompted
IncrementVersionNumber action failed. Error: Settings file .\.AL-Go\settings.json is malformed.  Cannot bind argument to parameter 'object' because it is null.. Stacktrace: at <ScriptBlock>, D:\a\_actions\microsoft\AL-Go-Actions\preview\IncrementVersionNumber\IncrementVersionNumber.ps1: line 89 at <ScriptBlock>, D:\a\_actions\microsoft\AL-Go-Actions\preview\IncrementVersionNumber\IncrementVersionNumber.ps1: line 61 at <ScriptBlock>, D:\a\_temp\27af9152-6953-4ed4-8234-e21e780b42a5.ps1: line 2 at <ScriptBlock>, <No file>: line 1

Any chance you could add me to the repo, so that I can have a look?
My GitHub username is freddydk.
Thanks

The repo you invited me to is empty???

I am sorry I invited you to wrong repo. I have now corrected that and send you right invite.

You have an empty line in the beginning of the settings file - try to remove that.

The InitializeWorkflow actually should check all settings files for validity and report whether or not they are valid, but apparently there is a bug in that, which causes it to skip the test - will fix that.

This indeed resolved the issue. Thanks very much @freddydk !

authors: DanielMagMat freddydk jonaswre

repo: microsoft/AL-Go


text:
Error trying to personalize/design a page

Describe the bug
Trying to personalize page "Report Selection - Sales" throws an error "Personalisation could not be enabled due to technical issues. Try again later, or contact your system administrator."
Information from docker:
TimeGenerated : 4/10/2019 3:25:36 PM
EntryType     : Error
Message       : Server instance: NAV
                Category: Extensions
                ClientSessionId: 2d2363d3-0ac5-42f3-af03-081d13535427
                ClientActivityId: 2f78868b-5ab0-4eb0-bf2d-e10801a00888
                ServerSessionUniqueId: 1fc22ca6-6d29-4ae8-94a2-64618a92caee
                ServerActivityId: 028b801f-a39e-46af-b4be-ee60827b42b3
                EventTime: 04/10/2019 12:25:36
                Message (NavDesignerCompilerException): RootException:
                NavDesignerCompilerException
                A package with publisher 'Microsoft', name 'Test', and a
                version compatible with '11.0.0.0' could not be loaded.
                ExceptionStackTrace:
                   at Microsoft.Dynamics.Nav.Runtime.Designer.NavDesignerCompil
                er.CompilePersonalizationObjects(IEnumerable`1
                objectSyntaxList, IEnumerable`1 references, CompilationOptions
                compilationOptions, NavAppPackageMetadataOutputter outputter,
                IFileSystem fileSystem)
                   at Microsoft.Dynamics.Nav.Runtime.Designer.NavPersonalizatio
                nDesignerExtension.Compile()
                   at Microsoft.Dynamics.Nav.Runtime.Designer.NavPersonalizatio
                nDesignerExtension..ctor(INavPageCustomizationRepository
                pageCustomizationRepository, INavDesignerCompiler compiler)
                   at Microsoft.Dynamics.Nav.Runtime.Designer.NavDesignerExtens
                ionFactory.CreatePersonalizationDesignerExtension()
                   at Microsoft.Dynamics.Nav.Runtime.Designer.NavDesignerManage
                mentTasks.StartDesigner(DesignerLevels designerLevel,
                ConfigurationDesignerMode configurationMode)
                CallerStackTrace:
                   at Microsoft.Dynamics.Nav.Runtime.Designer.NavDesignerManage
                mentTasks.StartDesigner(DesignerLevels designerLevel,
                ConfigurationDesignerMode configurationMode)
                   at Microsoft.Dynamics.Nav.Runtime.Apps.NavAppDiagnosticSessi
                on.<>c__DisplayClass1_0`1.<SendTraceTagOnFailure>b__0()
                   at Microsoft.Dynamics.Nav.Runtime.Apps.NavAppDiagnosticSessi
                on.SendTraceTagOnFailure(Action operation, String
                additionalInfo, Func`2 exceptionMap, String callerName)
                   at Microsoft.Dynamics.Nav.Runtime.Apps.NavAppDiagnosticSessi
                on.SendTraceTagOnFailure[T](Func`1 operation, String
                additionalInfo, Func`2 exceptionMap, String callerName)
                   at Microsoft.Dynamics.Nav.Service.NSDesigner.HandleStartDesi
                gnerAction(StartDesignerRequest action, NavSession session)
                   at Microsoft.Dynamics.Nav.Service.NSDesigner.InvokeAction(Na
                vSession session, DesignerRequest request)
                   at SyncInvokeInvokeDesignerAction(Object , Object[] ,
                Object[] )
                   at
                System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object
                instance, Object[] inputs, Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.Ru
                nInTransactionCombinator(ServiceOperation innerOperation,
                NSServiceBase serviceInstance, MethodBase syncMethod, Object[]
                inputs, Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.<>
                c__DisplayClass27_1.<Combine>b__1(NSServiceBase
                serviceInstance, Object[] inputs, Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.Tr
                ansientErrorRetryCombinator(ServiceOperation innerOperation,
                NSServiceBase serviceInstance, MethodBase syncMethod, Object[]
                inputs, Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.<>
                c__DisplayClass27_1.<Combine>b__1(NSServiceBase
                serviceInstance, Object[] inputs, Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.Er
                rorMappingCombinator(ServiceOperation innerOperation,
                NSServiceBase serviceInstance, MethodBase syncMethod, Object[]
                inputs, Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.<>
                c__DisplayClass27_1.<Combine>b__1(NSServiceBase
                serviceInstance, Object[] inputs, Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.Pu
                shPopCombinator(ServiceOperation innerOperation, NSServiceBase
                serviceInstance, MethodBase syncMethod, Object[] inputs,
                Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.<>
                c__DisplayClass27_1.<Combine>b__1(NSServiceBase
                serviceInstance, Object[] inputs, Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationTracer.Tra
                ceScopeCombinator(Category telemetryCategory, ServiceOperation
                innerOperation, NSServiceBase serviceInstance, MethodBase
                syncMethod, Object[] inputs, Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.<>
                c__DisplayClass27_1.<Combine>b__1(NSServiceBase
                serviceInstance, Object[] inputs, Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.<>
                c__DisplayClass9_0.<PerformanceCounterCombinator>b__0()
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.Pe
                rformanceCounterCombinator(ServiceOperation innerOperation,
                NSServiceBase serviceInstance, MethodBase syncMethod, Object[]
                inputs, Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.<>
                c__DisplayClass27_1.<Combine>b__1(NSServiceBase
                serviceInstance, Object[] inputs, Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.In
                itClientTelemetryIdsCombinator(ServiceOperation
                innerOperation, NSServiceBase serviceInstance, MethodBase
                syncMethod, Object[] inputs, Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.<>
                c__DisplayClass27_1.<Combine>b__1(NSServiceBase
                serviceInstance, Object[] inputs, Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.Tl
                sClearCombinator(ServiceOperation innerOperation,
                NSServiceBase serviceInstance, MethodBase syncMethod, Object[]
                inputs, Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.<>
                c__DisplayClass27_1.<Combine>b__1(NSServiceBase
                serviceInstance, Object[] inputs, Object[]& outputs)
                   at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.In
                voke(Object instance, Object[] inputs, Object[]& outputs)
                   at System.ServiceModel.Dispatcher.DispatchOperationRuntime.I
                nvokeBegin(MessageRpc& rpc)
                   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.P
                rocessMessage5(MessageRpc& rpc)
                   at
                System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean
                isOperationContextSet)
                   at System.ServiceModel.Dispatcher.MessageRpc.Wrapper.Resume(
                Boolean& alreadyResumedNoLock)
                   at System.ServiceModel.Dispatcher.ThreadBehavior.ResumeProce
                ssing(IResumeMessageRpc resume)
                   at Microsoft.Dynamics.Nav.Runtime.NavSynchronizationContext.
                <>c__DisplayClass1_0.<ClearThreadLocalStorageDelegate>b__0(Obje
                ct state)
                   at
                System.Threading.ExecutionContext.RunInternal(ExecutionContext
                executionContext, ContextCallback callback, Object state,
                Boolean preserveSyncCtx)
                   at System.Threading.ExecutionContext.Run(ExecutionContext
                executionContext, ContextCallback callback, Object state,
                Boolean preserveSyncCtx)
                   at System.Threading.QueueUserWorkItemCallback.System.Threadi
                ng.IThreadPoolWorkItem.ExecuteWorkItem()
                   at System.Threading.ThreadPoolWorkQueue.Dispatch()

                ProcessId: 11104
                Tag: 00001OO
                ThreadId: 148
                CounterInformation:

If I try to design (Design->More->Add field "Usage") web client crashes and message "Sorry, your session expired. Please refresh the page to continue." appears.
Information from docker:
TimeGenerated : 4/10/2019 3:32:27 PM
EntryType     : Error
Message       : Server instance: NAV
                Category: Extensions
                ClientSessionId: 2d2363d3-0ac5-42f3-af03-081d13535427
                ClientActivityId: bd3f1e1d-8050-4ae4-be13-a065839bc83a
                ServerSessionUniqueId: 1fc22ca6-6d29-4ae8-94a2-64618a92caee
                ServerActivityId: 028b801f-a39e-46af-b4be-ee60827b42b3
                EventTime: 04/10/2019 12:32:27
                Message The execution of the code block at
                HandleAddPageFieldAction had one or more unhandled
                exceptions., Additional info: NSDesigner
                ProcessId: 11104
                Tag: 00000GQ
                ThreadId: 125
                CounterInformation:

Versions:

AL Langauge:
Name: AL Language
Id: microsoft.al
Description: AL development tools for Dynamics 365 Business Central
Version: 3.0.106655
Publisher: Microsoft

Business Central:
Version: Platform 14.0.31139.0 + Application 31223 (W1 14.1)

Any update for the above issue ? I am using Build No. 14.0.29530.0 i getting same issue as well.

Hi @Tonygithub17, which symbols are currently published on your server? The error is about the Test symbols being missing on your server.
Are they published on your server? Did you have them published and at some point have unpublished them?

bols are currently publ

Hi Qutreson, this is a fresh instance installed using Docker.

What do you get when running Get-NavContainerAppInfo -SymbolsOnly ?

Get-NavContainerAppInfo -SymbolsOnly

Hi Qutreson,
here is a result.

Any update for this issue ?

Same issue here for BC14.1.
More observations:
It works OK when Test app was not removed.
It doesn't work when the Test app was never present (e.g. in BCoP converted DB).
Importing Test.app makes the personalization working.
EnableSymbolsLoading option in New-NavContainer removes Test app automatically - I consider it correct, however non-working personalizations and designer is a nasty side effect (@freddydk).
Quite interestingly - it also works when the first personalization is done before removing the Test app. Then even once the Test app is removed the personalization still works.
My guess: It almost looks like the personalization is a hidden app which is initiated with the Test app in place. It is perhaps auto removed after the first successful personalization when the unused dependent apps including Test app are removed from the personalization app (if that is how it is implemented). In such a case I would vote to leave the Test app from the initial dependencies. (Or actually where/how is the personalization information stored?)
I had the similar observation in BCoP in full install. And I would prefer the personalizations/designer to work even if the Test app is not present at all.
I cannot find any nice work-arounds for scenario with EnableSymbolsLoading and uploaded Tests.

Any updates here? Still unable to use personalize after moving to 14.1.

Ivan,
as a workaround, it should be enough to temporary publish Test.app (can be found in ModernDev folder in installation DVD) with -PackageType SymbolsOnly option, and do personalization once. After that Test app can be unpublished while personalization will continue to work.

Thanks @phenno1,
That seemed to work. I'm not sure why the original issue happened in the first place but test app symbols solved that, at least for now. Also, the weird thing is it doesn't happen for everyone, even if the environments are created with same parameters.

With the switch to AL, this should not be a problem. Considering that a mitigation for the problem has been found, I will close this issue.

authors: AndriusAndrulevicius Tonygithub17 atoader ichladil ivandjordjevic phenno1 qutreson

repo: microsoft/AL


text:
Getting Error when sending get request with content.

            trigger OnAction()
            var
                httpclients: HttpClient;
                httpcontents: HttpContent;
                httpheader: HttpHeaders;
                httprequest: HttpRequestMessage;
                httpresponse: HttpResponseMessage;
                reponsetxt: Text;
            begin
                httpcontents.clear;
                httpcontents.WriteFrom('{"SiteIDs":[4438],"StartDate":"2022-06-15T12:47:04.030757+01:00","EndDate":"2022-06-15T12:47:04.030757+01:00"}');
                httpcontents.GetHeaders(httpHeader);

                httpheader.Clear();
                httpheader.Add('Content-Type', 'application/json');
                httpheader.Add('GUID', string1);
                httpheader.Add('DevID', string2);
                httpheader.Add('CompanyId', string3);

                httprequest.GetHeaders(httpheader);
                httprequest.Content := httpcontents;

                httprequest.Method('GET');
                httprequest.SetRequestUri(Url);

                httpclients.Clear();

                httpclients.Send(httprequest, httpresponse);

                if httpresponse.Content().ReadAs(reponsetxt) then
                    Message('%1\%2', reponsetxt, httpresponse.HttpStatusCode);
            end;

Error:
System.Net.ProtocolViolationException: Cannot send a content-body with this verb-type.
at System.Net.HttpWebRequest.CheckProtocol(Boolean onRequestStream)
at System.Net.HttpWebRequest.BeginGetRequestStream(AsyncCallback callback, Object state)
at System.Net.Http.HttpClientHandler.StartGettingRequestStream(RequestState state)
at System.Net.Http.HttpClientHandler.PrepareAndStartContentUpload(RequestState state)
--- 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.Runtime.NavHttpClient.<>c__DisplayClass48_0.b__0(CancellationToken ct)
at Microsoft.Dynamics.Nav.Types.NavCancellationToken.RunActionWithCancellationToken[T](Func2 func) at Microsoft.Dynamics.Nav.Runtime.NavHttpClient.SendWithTelemetry(HttpRequestMessage requestMessage, String endpoint) at Microsoft.Dynamics.Nav.Runtime.NavHttpClient.<>c__DisplayClass47_0.b__1() at Microsoft.Dynamics.Nav.Types.NavThread.<>c__DisplayClass44_0.b__0() at Microsoft.Dynamics.Nav.Types.NavThread.RunExternalAction[T](Func1 action)
at Microsoft.Dynamics.Nav.Runtime.TrappableHttpOperationExecutor.<>c__DisplayClass0_0.b__0()
at Microsoft.Dynamics.Nav.Runtime.TrappableOperationExecutor.Execute(DataError errorLevel, Func1 operation, Action2 processNativeException)

Seems a duplicate of https://github.com/microsoft/AL/issues/5961

Sending a GET request with body is a controversial topic, as @dnpb linked correctly https://github.com/microsoft/AL/issues/5961 you can see we are using just a wrapper and we can't do much about it the failure.

authors: RavinderKumarGitHub dnpb nndobrev


text:
[Event Change] Database::"Job Journal Line" - Function CheckItemAvailable - OnBeforeCheckItemAvailable

We like to request the following Event:
Object: Database::"Job Journal Line"
Function: CheckItemAvailable
Publisher Event: OnBeforeCheckItemAvailable
Reason: add an extra Parameter
Where is the event placed:
Event Code:
[IntegrationEvent(false, false)]
local procedure OnBeforeCheckItemAvailable(var JobJournalLine: Record "Job Journal Line"; var ItemJournalLine: Record "Item Journal Line"; var CheckedAvailability: Boolean)
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.

authors: JesperSchulz acadonAG-dev

repo: microsoft/ALAppExtensions


text:
[EventRequest] Table 5093 "Opportunity Entry".UpdateOppFromOpp

Please add new event
    procedure UpdateOppFromOpp(var Opp: Record Opportunity)
    begin
        Opp.TestField(Closed, false);
        DeleteAll();
        Init;
        Validate("Opportunity No.", Opp."No.");
        "Sales Cycle Code" := Opp."Sales Cycle Code";
        "Contact No." := Opp."Contact No.";
        "Contact Company No." := Opp."Contact Company No.";
        "Salesperson Code" := Opp."Salesperson Code";
        "Campaign No." := Opp."Campaign No.";

	//---------------------------------------OnUpdateOppFromOppOnBeforeStartWizard2:BEGIN
	OnUpdateOppFromOppOnBeforeStartWizard2(Opp,Rec)
	//---------------------------------------OnUpdateOppFromOppOnBeforeStartWizard2:END

        StartWizard2;
    end;

    //---------------------------------------OnUpdateOppFromOppOnBeforeStartWizard2:BEGIN
    [IntegrationEvent(false, false)]
    local procedure OnUpdateOppFromOppOnBeforeStartWizard2(Opp: Record Opportunity; var OpportunityEntry: Record "Opportunity Entry")
    begin
    end;
    //---------------------------------------OnUpdateOppFromOppOnBeforeStartWizard2:END

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.

authors: JesperSchulz fridrichovsky


text:
[Event Request] codeunit 99000845 "Reservation Management" - OnBeforeMakeRoomForReservation

Please add new event.
procedure MakeRoomForReservation(var ReservEntry: Record "Reservation Entry")
var
	ReservEntry2: Record "Reservation Entry";
	TotalQuantity: Decimal;
	IsHandled: Boolean;
begin
	IsHandled := false;
	OnBeforeMakeRoomForReservation(ReservEntry, IsHandled);
	if IsHandled then
		exit;

[IntegrationEvent(false, false)]
local procedure OnBeforeMakeRoomForReservation(var ReservEntry: Record "Reservation Entry"; var IsHandled: boolean)
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 40744.

authors: JesperSchulz miljance


text:
[Event Request] codeunit 80 "Sales-Post" - InvoiceRounding

In https://github.com/microsoft/ALAppExtensions/issues/21662 , we requested a new function on SalesLine : GetVATBaseDiscountPercentage
Can you please integrate this new function for all references to SalesHeader."VAT Base Discount %" in InvoiceRounding?
This would allow us to overrule the SalesHeader."VAT Base Discount %" value with zero in case a certain sales line is to be excluded from any discounts.
As-is
Validate(
                      "Unit Price",
                      Round(
                        InvoiceRoundingAmount /
                        (1 + (1 - SalesHeader."VAT Base Discount %" / 100) * "VAT %" / 100),
                        Currency."Amount Rounding Precision"));

To-be
Validate(
                      "Unit Price",
                      Round(
                        InvoiceRoundingAmount /
                        (1 + (1 - SalesLine.GetVATBaseDiscountPercentage(SalesHeader) / 100) * "VAT %" / 100),
                        Currency."Amount Rounding Precision"));

@ZepposBE

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 52774.

authors: JesperSchulz fvet


text:
[Event Request] report 5850 "Copy Invt. Document" OnLookupDocNoOnBeforeValidateDocNo

🕮 Describe the request
Could you please add the following event for extensiblity of the _ Enum "Invt. Doc. Document Type From"_?
Please Include the sender in the event request.
local procedure LookupDocNo()
begin
    case DocType of
        DocType::Receipt,
        DocType::Shipment:
            begin
                FromInvtDocHeader.FilterGroup := 2;
                FromInvtDocHeader.SetRange("Document Type", ConvertInvtDocumentTypeFrom(DocType));
                if InvtDocHeader."Document Type" = DocType then
                    FromInvtDocHeader.SetFilter("No.", '<>%1', InvtDocHeader."No.");
                FromInvtDocHeader.FilterGroup := 0;
                FromInvtDocHeader."Document Type" := ConvertInvtDocumentTypeFrom(DocType);
                FromInvtDocHeader."No." := DocNo;
                case DocType of
                    DocType::Receipt:
                        if PAGE.RunModal(PAGE::"Invt. Receipts", FromInvtDocHeader, FromInvtDocHeader."No.") = ACTION::LookupOK then
                            DocNo := FromInvtDocHeader."No.";
                    DocType::Shipment:
                        if PAGE.RunModal(PAGE::"Invt. Shipments", FromInvtDocHeader, FromInvtDocHeader."No.") = ACTION::LookupOK then
                            DocNo := FromInvtDocHeader."No.";
                end;
            end;
        DocType::"Posted Receipt":
            begin
                FromInvtRcptHeader."No." := DocNo;
                if PAGE.RunModal(0, FromInvtRcptHeader) = ACTION::LookupOK then
                    DocNo := FromInvtRcptHeader."No.";
            end;
        DocType::"Posted Shipment":
            begin
                FromInvtShptHeader."No." := DocNo;
                if PAGE.RunModal(0, FromInvtShptHeader) = ACTION::LookupOK then
                    DocNo := FromInvtShptHeader."No.";
            end;
    end;
    //+EVENT
    OnLookupDocNoOnBeforeValidateDocNo(InvtDocHeader, DocType, DocNo);
    //+EVENT
    ValidateDocNo();
end;

[IntegrationEvent(true, false)] //Please Include the sender
local procedure OnLookupDocNoOnBeforeValidateDocNo(var InvtDocumentHeader: Record "Invt. Document Header"; InvtDocDocumentTypeFrom: Enum "Invt. Doc. Document Type From"; var FromDocNo: Code[20])
begin
end;

Availability update: We will publish a fix for this issue in the next update for release 22.
Build ID to track: 58993.

authors: JesperSchulz pri-kise


text:
[Event Request] Codeunit 5940 ServContractManagement

The following events are required for this object:
    [IntegrationEvent(false, false)]
    local procedure OnCreateServiceLedgerEntryOnBeforeServLedgEntryInsert(var ServiceLedgerEntry: Record "Service Ledger Entry"; ServiceContractHeader: Record "Service Contract Header"; ServiceContractLine: Record "Service Contract Line"; ServHeader2: Record "Service Header")
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnInsertMultipleServLedgEntriesOnBeforeServLedgEntryInsert(var ServiceLedgerEntry: Record "Service Ledger Entry"; ServiceContractHeader: Record "Service Contract Header"; ServiceContractLine: Record "Service Contract Line"; var NonDistrAmount: array[4] of Decimal; var IsHandled: Boolean; ServHeader: Record "Service Header")
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnPostPartialServLedgEntryOnBeforeServLedgEntryInsert(var ServLedgEntry: Record "Service Ledger Entry"; ServContractLine: Record "Service Contract Line"; ServHeader: Record "Service Header")
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnBeforeCalcCurrencyAmountRoundingPrecision(ServiceContractHeader: Record "Service Contract Header"; var ServiceLedgerEntry: Record "Service Ledger Entry"; var InvRoundedAmount: array[4] of Decimal; var InvAmount: array[4] of Decimal; AmountType: Option ,Amount,DiscAmount,UnitPrice,UnitCost; Currency: Record Currency; ServHeader2: Record "Service Header"; var IsHandled: Boolean)
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnAfterSetDiscountAmount(ServiceContractHeader: Record "Service Contract Header"; var ServiceLedgerEntry: Record "Service Ledger Entry"; var InvRoundedAmount: array[4] of Decimal; var InvAmount: array[4] of Decimal; AmountType: Option ,Amount,DiscAmount,UnitPrice,UnitCost; Currency: Record Currency; ServHeader2: Record "Service Header")
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnCreateCreditLineOnBeforeCreateDim(var ServLine2: Record "Service Line"; var IsHandled: Boolean)
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnCreateAllServLinesOnAfterCreateServiceLine(var ServContractLine: Record "Service Contract Line"; ServHeader: Record "Service Header"; InvoiceFrom: Date; InvoiceTo: Date)
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnBeforeOnFindServContractLine2(var ServContractLine2: Record "Service Contract Line")
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnAfterSetHideValidationDialog(var ServiceContractHeader: Record "Service Contract Header"; Cust: Record Customer; var CustCheckCrLimit: Codeunit "Cust-Check Cr. Limit"; var IsHandled: Boolean)
    begin
    end;

    [IntegrationEvent(true, false)]
    local procedure OnServLedgEntryToServiceLineOnBeforeDimSet(var ServLine: Record "Service Line"; ServiceLedgerEntry: Record "Service Ledger Entry"; ServHeader: Record "Service Header"; var IsHandled: Boolean)
    begin
    end;

    local procedure TransferQuoteToOrderLines(var ServiceQuoteLine: Record "Service Line"; var ServiceQuoteHeader: Record "Service Header"; var ServiceOrderLine: Record "Service Line"; var ServiceOrderHeader: Record "Service Header")
    var
        ItemCheckAvail: Codeunit "Item-Check Avail.";
        IsHandled: Boolean;
    begin
        ServiceQuoteLine.Reset();
        ServiceQuoteLine.SetRange("Document Type", ServiceQuoteHeader."Document Type");
        ServiceQuoteLine.SetRange("Document No.", ServiceQuoteHeader."No.");
        ServiceQuoteLine.SetRange(Type, ServiceQuoteLine.Type::Item);
        ServiceQuoteLine.SetFilter("No.", '<>%1', '');
        if ServiceQuoteLine.FindSet() then
            repeat
                //EVENT CHANGE REQUEST
                IsHandled := false;
                OnBeforeTransferQuoteLineToOrderLineLoop(ServiceQuoteLine, ServiceQuoteHeader, ServiceOrderLine, ServiceOrderHeader, IsHandled);
                if not IsHandled then begin
                //EVENT CHANGE REQUEST
                    ServiceOrderLine := ServiceQuoteLine;
                    ServiceOrderLine.Validate("Reserved Qty. (Base)", 0);
                    ServiceOrderLine."Line No." := 0;
                    if GuiAllowed then
                        if ItemCheckAvail.ServiceInvLineCheck(ServiceOrderLine) then
                            ItemCheckAvail.RaiseUpdateInterruptedError;
                end;
            until ServiceQuoteLine.Next() = 0;
    end;

        if AddingNewLines then
            DueDate := InvFrom;
        for Index := 1 to CountOfEntryLoop do begin
            SetServLedgEntryAmounts(
              ServLedgEntry, InvRoundedAmount,
              NonDistrAmount[AmountType::Amount] / (NoOfPayments + 1 - Index),
              NonDistrAmount[AmountType::UnitPrice] / (NoOfPayments + 1 - Index),
              NonDistrAmount[AmountType::UnitCost] / (NoOfPayments + 1 - Index),
              NonDistrAmount[AmountType::DiscAmount] / (NoOfPayments + 1 - Index),
              AmountRoundingPrecision);
            ServLedgEntry."Cost Amount" := ServLedgEntry."Charged Qty." * ServLedgEntry."Unit Cost";

            NonDistrAmount[AmountType::Amount] -= ServLedgEntry."Amount (LCY)";
            NonDistrAmount[AmountType::UnitPrice] -= ServLedgEntry."Unit Price";
            NonDistrAmount[AmountType::UnitCost] -= ServLedgEntry."Unit Cost";
            NonDistrAmount[AmountType::DiscAmount] -= ServLedgEntry."Contract Disc. Amount";

            ServLedgEntry."Entry No." := NextEntry;
            UpdateServLedgEntryAmount(ServLedgEntry, ServHeader);
            ServLedgEntry."Posting Date" := DueDate;
            ServLedgEntry.Prepaid := true;
            //EVENT CHANGE REQUEST
            IsHandled := false;
            OnInsertMultipleServLedgEntriesOnBeforeServLedgEntryInsert(ServLedgEntry, ServContractHeader, ServContractLine, NonDistrAmount, IsHandled, ServHeader);
            if IsHandled then
                exit;
            //EVENT CHANGE REQUEST
            ServLedgEntry.Insert();
            NextEntry += 1;
            DueDate := CalcDate('<1M>', DueDate);

    local procedure PostPartialServLedgEntry(var InvAmountRounded: array[4] of Decimal; ServContractLine: Record "Service Contract Line"; ServHeader: Record "Service Header"; InvFrom: Date; InvTo: Date; DueDate: Date; AmtRoundingPrecision: Decimal) YearContractCorrection: Boolean
    begin
        OnBeforePostPartialServLedgEntry(ServLedgEntry, ServContractLine);
        ServLedgEntry."Service Item No. (Serviced)" := ServContractLine."Service Item No.";
        ServLedgEntry."Item No. (Serviced)" := ServContractLine."Item No.";
        ServLedgEntry."Serial No. (Serviced)" := ServContractLine."Serial No.";
        if IsYearContract(ServContractLine."Contract Type", ServContractLine."Contract No.") then begin
            YearContractCorrection := true;
            CalcServLedgEntryAmounts(ServContractLine, InvAmountRounded);
            ServLedgEntry."Entry No." := NextEntry;
            UpdateServLedgEntryAmount(ServLedgEntry, ServHeader);
        end else begin
            YearContractCorrection := false;
            SetServLedgEntryAmounts(
              ServLedgEntry, InvAmountRounded,
              -CalcContractLineAmount(ServContractLine."Line Amount", InvFrom, InvTo),
              -CalcContractLineAmount(ServContractLine."Line Value", InvFrom, InvTo),
              -CalcContractLineAmount(ServContractLine."Line Cost", InvFrom, InvTo),
              -CalcContractLineAmount(ServContractLine."Line Discount Amount", InvFrom, InvTo),
              AmtRoundingPrecision);
            ServLedgEntry."Entry No." := NextEntry;
            UpdateServLedgEntryAmount(ServLedgEntry, ServHeader);
        end;
        ServLedgEntry."Posting Date" := DueDate;
        ServLedgEntry.Prepaid := true;
        OnPostPartialServLedgEntryOnBeforeServLedgEntryInsert(ServLedgEntry, ServContractLine, ServHeader); //EVENT CHANGE REQUEST
        ServLedgEntry.Insert();
        NextEntry := NextEntry + 1;
        exit(YearContractCorrection);
    end;

        if ServLedgEntry.Get(LastEntry) and (not YearContractCorrection)
        then begin
            //EVENT REQUEST
            IsHandled := false;
            OnBeforeCalcCurrencyAmountRoundingPrecision(ServContractHeader, ServLedgEntry, InvRoundedAmount, InvAmount, AmountType, Currency, ServHeader2, IsHandled);
            if not IsHandled then
            //EVENT REQUEST
                ServLedgEntry."Amount (LCY)" := ServLedgEntry."Amount (LCY)" + InvRoundedAmount[AmountType::Amount] -
                  Round(InvAmount[AmountType::Amount], Currency."Amount Rounding Precision");
            ServLedgEntry."Unit Price" := ServLedgEntry."Unit Price" + InvRoundedAmount[AmountType::UnitPrice] -
              Round(InvAmount[AmountType::UnitPrice], Currency."Unit-Amount Rounding Precision");
            ServLedgEntry."Cost Amount" := ServLedgEntry."Cost Amount" + InvRoundedAmount[AmountType::UnitCost] -
              Round(InvAmount[AmountType::UnitCost], Currency."Amount Rounding Precision");
            SetServiceLedgerEntryUnitCost(ServLedgEntry);
            ServLedgEntry."Contract Disc. Amount" :=
              ServLedgEntry."Contract Disc. Amount" - InvRoundedAmount[AmountType::DiscAmount] +
              Round(InvAmount[AmountType::DiscAmount], Currency."Amount Rounding Precision");
            ServLedgEntry."Discount Amount" := ServLedgEntry."Contract Disc. Amount";
            OnAfterSetDiscountAmount(ServContractHeader, ServLedgEntry, InvRoundedAmount, InvAmount, AmountType, Currency, ServHeader2); //EVENT REQUEST
            CalcServLedgEntryDiscountPct(ServLedgEntry);
            UpdateServLedgEntryAmount(ServLedgEntry, ServHeader2);
            ServLedgEntry.Modify();
        end;
    end;

        if ServHeader2."Currency Code" <> '' then begin
            ServLine2.Validate("Unit Price", AmountToFCY(CreditUnitPrice, ServHeader2));
            ServLine2.Validate("Line Amount", AmountToFCY(CreditAmount, ServHeader2));
        end else begin
            ServLine2.Validate("Unit Price", CreditUnitPrice);
            ServLine2.Validate("Line Amount", CreditAmount);
        end;
        ServLine2.Description := LineDescription;
        ServLine2."Contract No." := ServContract."Contract No.";
        ServLine2."Service Item No." := ServItemNo;
        ServLine2."Appl.-to Service Entry" := ServLedgEntryNo;
        ServLine2."Unit Cost (LCY)" := CreditCost;
        ServLine2."Posting Date" := PeriodStarts;
        if ApplyDiscAmt then
            ServLine2.Validate("Line Discount Amount", DiscAmount);
        //EVENT REQUEST
        IsHandled := false;
        OnCreateCreditLineOnBeforeCreateDim(ServLine2, IsHandled);
        if not IsHandled then
            ServLine2.CreateDimFromDefaultDim(0);
        //EVENT REQUEST
        OnBeforeServLineInsert(ServLine2, ServHeader2, ServContract);
        ServLine2.Insert();

                        ShouldCraeteServiceApplyEntry := ServiceApplyEntry <> 0;
                        OnCreateAllServLinesOnAfterCalcShouldCraeteServiceApplyEntry(ServHeader, ServContractToInvoice, ServContractLine, PartInvoiceFrom, PartInvoiceTo, ServiceApplyEntry, ShouldCraeteServiceApplyEntry);
                        if ShouldCraeteServiceApplyEntry then
                            CreateServiceLine(
                              ServHeader, "Contract Type", "Contract No.",
                              CountLineInvFrom(false, ServContractLine, InvoiceFrom), InvoiceTo, ServiceApplyEntry, false);
                        OnCreateAllServLinesOnAfterCreateServiceLine(ServContractLine, ServHeader, InvoiceFrom, InvoiceTo); //EVENT REQUEST
                    until ServContractLine.Next() = 0;

			repeat
                if not TempServItem.Get(ServContractLine."Service Item No.") then begin
                    ServItem.Get(ServContractLine."Service Item No.");
                    TempServItem := ServItem;
                    TempServItem.Insert();
                end;

                ServContractLine2.Reset();
                ServContractLine2.SetCurrentKey("Service Item No.", "Contract Status");
                ServContractLine2.SetRange("Service Item No.", ServContractLine."Service Item No.");
                ServContractLine2.SetFilter("Contract Status", '<>%1', ServContractLine."Contract Status"::Cancelled);
                ServContractLine2.SetRange("Contract Type", ServContractLine."Contract Type"::Contract);
                ServContractLine2.SetFilter("Contract No.", '<>%1', ServContractLine."Contract No.");
                OnBeforeOnFindServContractLine2(ServContractLine2); //EVENT REQUEST
                if ServContractLine2.Find('-') then
                    repeat
                        GetAffectedItemsOnContractChange(
                          ServContractLine2."Contract No.", TempServContract, TempServItem,
                          true, ServContractLine."Contract Type"::Contract);
                    until ServContractLine2.Next() = 0;

            if "Customer No." <> NewCustomertNo then begin
                if ServMgtSetup."Register Contract Changes" then
                    ContractChangeLog.LogContractChange(
                      "Contract No.", 0, FieldCaption("Customer No."), 0, "Customer No.", NewCustomertNo, '', 0);
                "Customer No." := NewCustomertNo;
                CustCheckCrLimit.OnNewCheckRemoveCustomerNotifications(RecordId, true);

                Cust.Get(NewCustomertNo);
                SetHideValidationDialog(true);
                //EVENT REQUEST
                IsHandled := false;
                OnAfterSetHideValidationDialog(ServContractHeader, Cust, CustCheckCrLimit, IsHandled);
                if not IsHandled then begin
                //EVENT REQUEST
                    if Cust."Bill-to Customer No." <> '' then
                        Validate("Bill-to Customer No.", Cust."Bill-to Customer No.")
                    else
                        Validate("Bill-to Customer No.", Cust."No.");
                    "Responsibility Center" := UserMgt.GetRespCenter(2, Cust."Responsibility Center");
                    UpdateShiptoCode;
                    CalcFields(
                      Name, "Name 2", Address, "Address 2",
                      "Post Code", City, County, "Country/Region Code");
                    CustCheckCrLimit.ServiceContractHeaderCheck(ServContractHeader);
                end;
            end;

            TotalServLine."Unit Price" += "Unit Price";
            TotalServLine."Line Amount" += -ServiceLedgerEntry."Amount (LCY)";
            if (ServiceLedgerEntry."Amount (LCY)" <> 0) or (ServiceLedgerEntry."Discount %" > 0) then
                if ServHeader."Currency Code" <> '' then begin
                    Validate("Unit Price",
                      AmountToFCY(TotalServLine."Unit Price", ServHeader) - TotalServLineLCY."Unit Price");
                    Validate("Line Amount",
                      AmountToFCY(TotalServLine."Line Amount", ServHeader) - TotalServLineLCY."Line Amount");
                end else begin
                    Validate("Unit Price");
                    Validate("Line Amount", -ServiceLedgerEntry."Amount (LCY)");
                end;
            TotalServLineLCY."Unit Price" += "Unit Price";
            TotalServLineLCY."Line Amount" += "Line Amount";

            //EVENT REQUEST
            IsHandled := false;
            OnServLedgEntryToServiceLineOnBeforeDimSet(ServLine, ServiceLedgerEntry, ServHeader, IsHandled);
            if IsHandled then
                exit;
            //EVENT REQUEST

            "Shortcut Dimension 1 Code" := ServiceLedgerEntry."Global Dimension 1 Code";
            "Shortcut Dimension 2 Code" := ServiceLedgerEntry."Global Dimension 2 Code";
            "Dimension Set ID" := ServiceLedgerEntry."Dimension Set ID";

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 12404.

authors: JesperSchulz SimonasDargis


text:
Add parameter on event OnBeforeInsertGlobalGLEntry into codeunit 12 "Gen. Jnl.-Post Line"

Describe the request
The code should be like this:
procedure FinishPosting(GenJournalLine: Record "Gen. Journal Line") IsTransactionConsistent: Boolean
var
    CostAccountingSetup: Record "Cost Accounting Setup";
    TransferGlEntriesToCA: Codeunit "Transfer GL Entries to CA";
    IsTransactionConsistentExternal: Boolean;
begin
    OnBeforeFinishPosting(GenJournalLine, TempGLEntryBuf);

    IsTransactionConsistent :=
      (BalanceCheckAmount = 0) and (BalanceCheckAmount2 = 0) and
      (BalanceCheckAddCurrAmount = 0) and (BalanceCheckAddCurrAmount2 = 0);
    IsTransactionConsistentExternal := IsTransactionConsistent;
    GlobalGLEntry.Consistent(IsTransactionConsistent);

    OnAfterSettingIsTransactionConsistent(GenJournalLine, IsTransactionConsistentExternal);

    IsTransactionConsistent := IsTransactionConsistent and IsTransactionConsistentExternal;

    if TempGLEntryBuf.FindSet() then begin
        repeat
            TempGLEntryPreview := TempGLEntryBuf;
            TempGLEntryPreview.Insert();
            GlobalGLEntry := TempGLEntryBuf;
            if AddCurrencyCode = '' then begin
                GlobalGLEntry."Additional-Currency Amount" := 0;
                GlobalGLEntry."Add.-Currency Debit Amount" := 0;
                GlobalGLEntry."Add.-Currency Credit Amount" := 0;
            end;
            if (GlobalGLEntry."Posting Date" < FiscalYearStartDate) or GenJournalLine."Closing Balance Sheet" then
                GlobalGLEntry."Official Date" := NormalDate(WorkDate())
            else
                GlobalGLEntry."Official Date" := NormalDate(GlobalGLEntry."Posting Date");

            GlobalGLEntry.Positive := GlobalGLEntry.Amount > 0;
            GlobalGLEntry."Prior-Year Entry" := GlobalGLEntry."Posting Date" < FiscalYearStartDate;
            OnBeforeInsertGlobalGLEntry(GlobalGLEntry, GenJournalLine, GLReg, FiscalYearStartDate);
            GlobalGLEntry.Insert(true);

            SourceCodeSetup.Get();
            InsertGLBookEntry(GlobalGLEntry);
            OnAfterInsertGlobalGLEntry(GlobalGLEntry, TempGLEntryBuf, NextEntryNo, GenJournalLine);
            GlobalGLEntry.CopyLinks(GenJournalLine);
        until TempGLEntryBuf.Next() = 0;

        GLReg."To VAT Entry No." := NextVATEntryNo - 1;
        GLReg."To Entry No." := GlobalGLEntry."Entry No.";
        UpdateGLReg(IsTransactionConsistent, GenJournalLine);
        SetGLAccountNoInVATEntries();
    end;

    GlobalGLEntry.Consistent(IsTransactionConsistent);

    if CostAccountingSetup.Get() then
        if CostAccountingSetup."Auto Transfer from G/L" then
            TransferGlEntriesToCA.GetGLEntries();

    OnFinishPostingOnBeforeResetFirstEntryNo(GlobalGLEntry, NextEntryNo, FirstEntryNo);
    FirstEntryNo := 0;

    if IsTransactionConsistent then
        UpdateAppliedCVLedgerEntries();

    OnAfterFinishPosting(GlobalGLEntry, GLReg, IsTransactionConsistent, GenJournalLine);
end;

[IntegrationEvent(false, false)]
local procedure OnBeforeInsertGlobalGLEntry(var GlobalGLEntry: Record "G/L Entry"; GenJournalLine: Record "Gen. Journal Line"; GLRegister: Record "G/L Register"; FiscalYearStartDate : Date)
begin
end;

Additional context
This parameter is usefull fot anyone want to use it into OnBeforeInsertGlobalGLEntry event.
Internal work item: AB#538369

Availability update: We will publish a fix for this issue in the next update for release 24.
Build ID to track: 21537.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 21545.

authors: JesperSchulz NBTPaolinoMattia


text:
page 305 "Reservation Worksheet" - SetCurrentWkshBatchName

Describe the request
We would like to open the page 305 "Reservation Worksheet" for a specific Wksh. Batch Name. Therefore, a function should be added which allows to set the value of the global CurrentWkshBatchName variable.
Suggested function:
procedure SetCurrentWkshBatchName(NewCurrentWkshBatchName: Code[10])
begin
    CurrentWkshBatchName := NewCurrentWkshBatchName;
    ReservationWorksheetMgt.SetName(CurrentWkshBatchName, Rec);
end;

Additional context
Aim is to be able to launch the page 305 "Reservation Worksheet" from AL code and preset the 'Batch Name' (and record filters)
Internal work item: AB#538786

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 27840.

Availability update: We will publish a fix for this issue in the next update for release 25.
Build ID to track: 27926.


text:
[Eventrequest] codeunit 12173

Hi AL team,
please add new publisher event on Codeunit 12173 into trigger  OnRun, like this:

All parameters should be passed by var.
This is necessary to manage a particular withholding system in Italy, which has a percentage and amount of 0.
if is possible   change   the  functionvisibility to   External  on   function   "PostTax".
Thanks

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


text:
Missing RunPageView on pages while filtering on Ledger tables

We have found pages 99000778,99000773,99000846 are missing RunPageView while filtering and running ledger entry pages, leading to slow performance (see actions for detail).  Please address it in all supported versions of Dynamics NAV.  Our proposed changes are in the attachment with "//K3 Changes" as referance.

action("Ledger E&ntries")
{
ApplicationArea = Manufacturing;
Caption = 'Ledger E&ntries';
Image = CustomerLedger;
Promoted = true;
PromotedCategory = Category6;
RunObject = Page "Capacity Ledger Entries";
//K3 Changes -
RunPageView = SORTING("Order Type", "Order No.", "Order Line No.", "Routing No.", "Routing Reference No.", "Operation No.", "Last Output Line");
//K3 Changes +
RunPageLink = "Order Type" = CONST(Production),
"Order No." = FIELD("Order No.");
ShortCutKey = 'Ctrl+F7';
ToolTip = 'View the history of transactions that have been posted for the selected record.';
}

Thanks, we will make this change for new version. Doing the same for older version is possible using hotfix request, you can create it here:
•	On premises - https://support.microsoft.com/en-us/supportforbusiness/productselection?sapId=93d37907-ad94-d591-22e9-593cfa09dd3f
•	On line – contact your partner, or if you are a partner open a support incident through Partner Center - https://partner.microsoft.com/en-us/pcv/dashboard/overview

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

authors: AlexanderYakunin Rama-M bc-ghost


text:
[Event Request] Database::"Assembly Line" - Function CopyFromResource - OnBeforeCopyFromResource

We like to request the following Event:
Object: Database::"Assembly Line"
Function: CopyFromResource
Publisher Event: OnBeforeCopyFromResource
Reason: To implement custom business logic
Where is the event placed:
local procedure CopyFromResource()
begin
OnBeforeCopyFromResource(Rec);
GetItemResource;
Resource.TestField("Gen. Prod. Posting Group");
"Gen. Prod. Posting Group" := Resource."Gen. Prod. Posting Group";
"Inventory Posting Group" := '';
Description := Resource.Name;
"Description 2" := Resource."Name 2";
Event Code:
[IntegrationEvent(false, false)]
local procedure OnBeforeCopyFromResource(var AssemblyLine: Record "Assembly Line")
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

authors: acadonAG-dev bc-ghost


text:
Pagination of list items

What platform is your feature request related to? (Delete other platforms).

.NET HTML
Android
iOS (Swift/Objective C)
JavaScript

Is your feature request related to a problem? Please describe.
When there are many list items, we want to show list with pagination.
Describe the solution you'd like
I suggest text with link and icon image.
Describe alternatives you've considered
Text link can be alternatives.
Additional context

This is not on our roadmap, but we are considering a carousel feature that may help with your scenario. Please track #6438 for updates.

authors: RebeccaAnne animia

repo: microsoft/AdaptiveCards


text:
[BUG] Large amount of CustomEvent: {"isTrusted": false} logged in AppInsights

Description/Screenshot
I am working on a React WebApp which uses both LaunchDarkly and AppInsights. Both seem to have a concept of Custom Events.
We started having large amounts of exceptions logged in our AppInsights regarding "untrusted Custom Events", and it always seems to happen next to LaunchDarkly events calls. I have yet to find anything regarding untrusted custom events in both LaunchDarkly and AppInsights documentation.

The errorSrc being window.onerror hints at the error coming from an external script, but I still wanted to check if this behavior is known from AppInsights.
Steps to Reproduce

OS/Browser: Windows 10 / Chrome 116.0 and 117.0, Edge 117.0, Firefox 117.0
SDK Version [e.g. 22]: Using @microsoft/applicationinsights-web: 3.0.2
How you initialized the SDK: n/a

Expected behavior
Have a way to trust custom events, if that's the case?
Additional context

Hi @MSNev, thank you for the quick reply.
I highly doubt that this exception comes from the AppInsights SDK. I mostly wanted to confirm that the CustomEvent exception was not an Application Insights Custom Event and was indeed something else, since the concept of Custom Events can be found at multiple places.
Thanks again.

repo: microsoft/ApplicationInsights-JS


text:
NPM Package @microsoft/applicationinsights-react-native is not compiled

I am setting up Application Insights on a mobile app to do some frontend related logging.
When creating the React Native bundle, I am encountering the following error:

error: bundling failed: Error: While trying to resolve module @microsoft/applicationinsights-react-native from file C:\Projects\MobileApp\universalapp\src\services\AIService.js, the package C:\Projects\MobileApp\universalapp\node_modules\@microsoft\applicationinsights-react-native\package.json was successfully found. However, this package itself specifies a main module field that could not be resolved (C:\Projects\MobileApp\universalapp\node_modules\@microsoft\applicationinsights-react-native\dist-esm\index.js. Indeed, none of these files exist:

C:\Projects\MobileApp\universalapp\node_modules\@microsoft\applicationinsights-react-native\dist-esm\index.js(.native||.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)
C:\Projects\MobileApp\universalapp\node_modules\@microsoft\applicationinsights-react-native\dist-esm\index.js\index(.native||.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)
at ResolutionRequest.resolveDependency (C:\Projects\MobileApp\universalapp\node_modules\metro\src\node-haste\DependencyGraph\ResolutionRequest.js:65:15)
at DependencyGraph.resolveDependency (C:\Projects\MobileApp\universalapp\node_modules\metro\src\node-haste\DependencyGraph.js:283:16)
at Object.resolve (C:\Projects\MobileApp\universalapp\node_modules\metro\src\lib\transformHelpers.js:261:42)
at dependencies.map.result (C:\Projects\MobileApp\universalapp\node_modules\metro\src\DeltaBundler\traverseDependencies.js:399:31)
at Array.map ()
at resolveDependencies (C:\Projects\MobileApp\universalapp\node_modules\metro\src\DeltaBundler\traverseDependencies.js:396:18)
at C:\Projects\MobileApp\universalapp\node_modules\metro\src\DeltaBundler\traverseDependencies.js:269:33
at Generator.next ()
at asyncGeneratorStep (C:\Projects\MobileApp\universalapp\node_modules\metro\src\DeltaBundler\traverseDependencies.js:87:24)
at _next (C:\Projects\MobileApp\universalapp\node_modules\metro\src\DeltaBundler\traverseDependencies.js:107:9)
DELTA  [android, dev] ....../index.js ▓▓░░░░░░░░░░░░░░ 14.7% (447/1167), failed.

My dependencies in package.json are
"dependencies": {
    "@microsoft/applicationinsights-react-native": "^1.0.0",
    "@microsoft/applicationinsights-web": "^2.0.0",
    "react-native-device-info": "^2.0.2"
}

When I check the folders in C:\Projects\MobileApp\universalapp\node_modules\@microsoft, I can see that all of the folders, ie applicationinsights-web contain dist and dist-esm folders with compiled code within them. (also the other regular folders such as src and node_modules)
However, the applicationinsights-react-native folder only has src and node_modules folders.
To resolve this, I have to navigate to the C:\Projects\MobileApp\universalapp\node_modules\@microsoft\applicationinsights-react-native directory and run the tsc command to have the typescript compile.
With this, I can at least get the dist-esm folder which contains the missing files the bundler was missing. With this my app compiles and runs without any further issue.
However, I am maintaining and distributing this app though the Appcenter, which will run into the same bundler issue since I can not perform additional file operations on there.
I'd like to request for the NPM Package to be updated with the properly compiled typescript.
Thanks for any assistance!

It's been republished as 1.0.1 with latest RN versions. you can also rollback to 1.0.0-rc1


text:
BodyTrackingException, Missing Library

Hi all
I am a newbi regarding Kinect. I created a Visual Studio project and was able to use my kinect device. Then I added the body tracking stuff. During the runtime I get the following runtime exception:
K4AdotNet.BodyTracking.BodyTrackingException
HResult=0x80131500
Message=Version 1.0.0 of Body Tracking runtime is expected.
Source=K4AdotNet
In my project file I have:
<ItemGroup>
    <PackageReference Include="K4AdotNet" Version="1.3.5" />
    <PackageReference Include="Microsoft.Azure.Kinect.BodyTracking" Version="1.0.0" />
    <PackageReference Include="Microsoft.Azure.Kinect.Sensor" Version="1.3.0" />
</ItemGroup>

I also installed the Kinect BT package version 1.0.0 (https://docs.microsoft.com/bs-latn-ba/azure/Kinect-dk/body-sdk-download). The sample body tracking application (executable) is working fine!
Any ideas?

Created new project from scratch solved the issue.

repo: microsoft/Azure-Kinect-Sensor-SDK

license: mit

license_source: bigquery


text:
Nothing happens after clicking 'Upload/Download' for one blob container

Storage Explorer Version: 1.9.0
Branch: master
Build: 20190809.2
Platform/OS: Linux Ubuntu 19.04/Windows 10/macOS High Sierra
Architecture: ia32/x64
Regression From: Previous release 1.9.0
Steps to reproduce:

Expand one non-adls gen2 account -> 'Blob Containers'
Open one blob container -> Click 'Upload Files...'.
Check the results.

Expect Experience:
The Upload dialog pops up.
Actual Experience:
Nothing happens.
More info:

This issue DOES NOT reproduce for file shares.
This issue DOES NOT reproduce for ADLS Gen2 blob container.
This issue also reproduces when Dragging files to one blob container.

This issue doesn't reproduce on build master/20190810.5. So we close it.

authors: v-xianya v-xuanzh

repo: microsoft/AzureStorageExplorer


text:
A11y_AzureToolsStorageExplorer_Disk_DiskInfoTable_ScreenReader: NVDA does not announcing the table name it is only announcing as table.

Check out Accessibility Insights! - Identify accessibility bugs before check-in and make bug fixing faster and easier.”
GitHubTags: #A11y_AzureToolsStorageExplorer; #A11yMAS; #A11YTCS; #DesktopApp; #MAS1.3.1;#NVDA; #Win10;
Environment Details:
Desktop App: Windows Version: Windows10
NVDA Version: 2019.1.1
Steps to Reproduce:

Launch Storage Explorer
Navigate to "Open Connect dialog" pane and Sign in to Azure.
Go to "Manage Accounts" pane and Select the subscriptions you will use. Once selected, click on "Apply" button.
Navigate to "Disks" of the selected subscription.
Navigate to "A11ytest" and  click on it.
Navigate to Table under the tool bar.
Verify that all the elements of "DiskInfoTable" Screen are accessible and MAS Compliant.

Actual
NVDA does not announcing the table name it is only announcing as table.
Same issue is observed with JAWS for below scenarios.
Blob Container Table : Table-

Launch Storage Explorer
Navigate to "Open Connect dialog" pane and Sign in to Azure.
Go to "Manage Accounts" pane and Select the subscriptions you will use. Once selected, click on "Apply" button.
Navigate to "Blob Containers" of the selected subscription, right click and hit enter on "Create Blob container" to Create a new Blob container.
Once completed, Navigate to "Upload" button and Upload a blob/file by using  "Upload Files" control.
Navigate to Table present in right side of the storage explorer.
Verify that all the elements of "Table" screen are accessible and MAS Compliant.

Expected
NVDA should announce  the table name as "Disk info table".
Recommendations:
Refer below link which is repository of bug fixes code snippets:
https://microsoft.sharepoint.com/teams/msenable/mas/Pages/browse-fixes.aspx
User Impact:
Screen reader user unable to know that about which table it is reading.
MAS Reference:
MAS1.3.1:
https://microsoft.sharepoint.com/:w:/r/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={54f28d1f-a2d1-4dcd-84e1-5c9b87e8aba4}
Attachment for Reference

Verified this issue on:Azure Tools Storage Explorer (Version: 1.12.0)
The issue is no longer to reproduces, Hence closing this bug.

GitHubTags:#BM-TCS-StorageExplorer-Win32-Sep2019;


text:
On Cosmos DB - Execute Query: Add ability to execute selected text only like SSMS has.

Please add the ability to execute just the selected statement rather than always executing the entire contents of the query window.
Suppose I have two statements in the query window:

SELECT * FROM c WHERE c.Type = 'Fruit'
SELECT * FROM c WHERE c.Type = 'Vegetable'

In the current version of Azure Storage Explorer v1.11.2 on Windows, both statements will run when clicking "Execute Query" resulting in a 400 Bad Request message indicating "Syntax error, incorrect syntax near 'SELECT'. In applications like SQL Server Management Studio (SSMS) you can select/highlight a line or lines of query code and only that code will execute.
The current work around to having multiple queries in one query window is to comment out all other queries except for the one you want to run. Then, to run another query, you must uncomment the desired query and comment out the previous query.

Azure Storage Explorer support for Azure Cosmos DB has been discontinued as of v1.24.0. We recommend users to use Azure Cosmos DB’s Data Explorer, which can be found in Azure Portal or as a stand-alone version in http://cosmos.azure.com/ for the best Azure Cosmos DB experience. You can also find additional Azure Cosmos DB tooling here: Azure Cosmos DB Tools

authors: JPhillipBrooks aliuy


text:
It would be better to use a faster way to remove the added tags in the upload dialog

Storage Explorer Version: 1.16.0-dev
Build: 20201022.3
Branch: main
Platform/OS: Windows 10/ Linux Ubuntu 16.04/ MacOS Catalina
Architecture: ia32/x64
Regression From: Not a regression
Steps to reproduce:

Expand one storage account -> Blob Containers.
Select one blob container (make sure it supports tags)-> Open one upload dialog -> Add several tags.
Try to remove the added tags.

Expect Experience:
It would be better to use a faster way to remove the added tags in the upload dialog.
Actual Experience:
The tags can be removed when both Key and Value are empty.

I changed to use explicit "X" buttons to handle removing entries.

This issue is fixed on build 20201023.5. So close it.

authors: JasonYeMSFT v-xianya


text:
Have standalone test framework recover more gracefully from hangs

[x] Add timeouts to individual tests
[x] Allow tests to run in parallel
[ ] Ensure test results can be retrieved even if some tests hang (write results to temp file, then assemble test results file when all tests finish, even after timeout)

Cutting out running tests in parallel. Introduces way too much complexity into tests, especially existing ones which may already rely on the fact tests are run sequentially.

Merged a change for tests timing out. Tried to do a not huge change for partial results. Didn't like what I came up with. I think for now just punting this to future is fine.

authors: MRayermannMSFT craxal


text:
An error "Provider not found for operation 'Azure.Storage.Table.createEntity' " occurs when adding/editing one entity

Storage Explorer Version: 1.23.0-dev
Build Number: 20220125.10
Branch: main
Platform/OS: Windows 10/Linux Ubuntu 20.04/MacOS Big Sur 11.6.1
How Found: From running test case
Regression From: Previous release (1.22.0)
Steps to Reproduce

Expand one storage account -> Tables.
Open one table -> Click 'Edit' -> Click 'Update'.
Check no error occurs.

Expected Experience
No error occurs.
Actual Experience
An error "Provider not found for operation 'Azure.Storage.Table.creatEntity' " occurs.

We had some trouble with the component build yesterday, so we weren't able to get the necessary update out in time. That should be fixed now, so please reverify with the next build.

authors: craxal v-xianya


text:
[Accessibility][Screen Readers-Filter Dialog] : Focus should move to the chart section after selecting any dialog.

User Experience
Users will find it difficult to navigate through the application if focus order is incorrect. Here, focus should move to the flow chart section after selecting any of the dialog otherwise user would have to navigate through all the dialogs which will be time consuming.
Test Environment
Browser: Microsoft Edge Canary Version: 82.0.425.0 (Official build)
OS build: 2004 (19564.1005)
Screen Reader: Narrator
URL: Bot Framework Composer
Prerequisite Here
Repro Steps:

Open the above mentioned URL in EDGE and set the zoom at 400%.
Select 'Design Flow' from left navigation.
Now, select any dialog available in the filter dialog pane.
Observe the issue.

Actual:
When dialog gets selected, and user presses tab key, focus moves to the next dialog available in list item instead of the flow chart section.
Expected:
On selecting any of the dialog, the focus should move to the flow chart of the dialog so that the user knew about the opened chart.
Note:

Same issue found throughout the page, on activating any of the node property pane gets opened but the focus remains on the chart and when user press next tab new property pane gets opened. Due to this the keyboard user will not be able to reach property pane. I suggest the role should be assigned to the node or any shortcut should be defined to reach directly to the property pane.
MAS2.4.3_Property pane.zip

MAS Impacted: MAS2.4.3
Attachment:
MAS2.4.3_Focus should move to the first interactive element.zip

@cwhitten As checked the issue is not fixed yet as well as now the focus is not going inside the chart section with Tab key. On pressing tab from 'Show Code' the focus should come inside the tree pane but the focus stuck on the whole pane. As well as when we use mouse to take focus inside the pane the keyboard focus get tapped inside the chart section.
Please refer the video's for the same "Issue.zip"
I downloaded below Master build file last updated on 23rd April.
Test Environment
Browser: Microsoft Edge Dev {Version 84.0.488.1 (Official build) dev (64-bit)}
OS build: 2004 (19562.1000)
Screen Reader: Narrator
URL: Bot Framework Composer
Prerequisite Here

I think what's going on here is a confusion of two different issues. The original one was about the focus moving into the visual editor after selecting a dialog, and that has in fact been fixed.
However, there's a separate problem where Tab and Shift-Tab no longer work inside the visual editor because those keys have been forcibly remapped in ways that break at least Narrator - the visual-editor extension has a whole KeyboardZone component that overwrites the usual Tab button behavior with its own.

@beyackle The original issue is not fixed yet! Please check and validate.

I think there's some confusion here over the word "select". I had been interpreting it to mean "move to and hit Enter", selecting a dialog for display in the main window, and that case does move focus over. However, moving through the list of dialogs (without hitting Enter, just going back and forth through the list) does in fact use Tab instead of the arrow keys, and you are correct that this is unexpected behavior, given how things like the sidebar nav menu use the arrow keys.
I'll go ahead and fix that, because that is a problem; is that also the behavior you were referring to?

Yup! Sounds cool. The user should be able to navigate with arrow key and once hit enter the focus should jump to the opened chart.

#Nonbenchmark;

repo: microsoft/BotFramework-Composer


text:
a11y: add keyboard shortcut for copy, cut, paste

Description
Add keyboard shortcut for copy, cut, paste
Task Item
fix #2082
Screenshots

@alanlong9278 I think this is good, however there are some pretty gnarly conflicts to fix-up as this PR is becoming stale. Can you please address conflicts?

Approved once conflicts are addressed.

@cwhitten  Fixed the conflicts and the announce will be added in #2756 if this pr is merged before it. Could you approve it now?


text:
fix: detect "Get started" dependencies in all projects not just current project

Description
adjust the mechanism used to determine if a project needs LUIS or QNA to support multi-bot projects. This moves code from the header component into a recoil selector.
Task Item
fixes #6649

Coverage decreased (-0.008%) to 51.292% when pulling 29a96043837a81e87613503343237d884be99911 on benbrown/rootbot into f2b91af7b0e79de9761fc94aaabc4a469b2b2d1f on main.

authors: benbrown coveralls


text:
[#1754] Fixed log panel timestamp color on light theme.

#1754
===
(Colors taken from VS Code color palette)

Coverage remained the same at 65.588% when pulling 16da70ec718c479981914ee758c56897d2889a35 on toanzian/acc-#1754 into f819ab8979635d7e7fb60ba788ecdc2d722842e7 on master.

authors: coveralls tonyanziano

repo: microsoft/BotFramework-Emulator


text:
There are bubble border color and other style settings that are not working

The border color and border width are not working
bubbleBackground: '#353535',
bubbleBorderWidth: 0,
bubbleBorderStyle: 'none',
bubbleFromUserBorderWidth: 5,
bubbleBorderColor: 'green',
bubbleBorderRadius: 0,
bubbleFromUserBorderColor: 'black',
bubbleFromUserTextColor: 'white',
bubbleTextColor: 'white',
sendBoxTextColor: 'white',
bubbleFromUserBackground: '#353535',

Can you fill out the bug form? What versions of Web Chat are you using?

@compulim is new and is not in 4.5 yet. What version is current?

Current production version is 4.5, which was released 11 days ago.
bubbleBorderWidth is in #2137, which is merged 4 days ago, and is in the development build of 4.6.

Late october is so late ... wish it was earlier we have a production release coming up...

If you need these changes immediately, please see our documentation on pointing to our MyGet feed for latest bits.

Is it working now?
Cannot set bubbleFromUserBorderColor: 'rgb(89,101,109)' in style options.
Only the default #e6e6e6 is working.
Using 4.5.3 version of the webchat.

i am using in the below mentioned way and it is working fine. I am also using 4.5.3 only.
bubbleFromUserBackground: 'rgba(0, 255, 0, .1)',

repo: microsoft/BotFramework-WebChat


text:
Add Initial Mariner Image Modifier (EMU) Files

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

[x] The toolchain has been rebuilt successfully (or no changes were made to it)
[x] The toolchain/worker package manifests are up-to-date
[x] Any updated packages successfully build (or no packages were changed)
[x] Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
[x] Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
[x] All package sources are available
[x] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
[x] LICENSE-MAP files are up-to-date (./SPECS/LICENSES-AND-NOTICES/data/licenses.json, ./SPECS/LICENSES-AND-NOTICES/LICENSES-MAP.md, ./SPECS/LICENSES-AND-NOTICES/LICENSE-EXCEPTIONS.PHOTON)
[x] All source files have up-to-date hashes in the *.signatures.json files
[x] sudo make go-tidy-all and sudo make go-test-coverage pass
[x] Documentation has been updated to match any changes to the build system
[x] Ready to merge

Summary
Add initial Mariner Image modifier(EMU) files
Change Log

Created chroot interface and a dummy implementation for in-OS scenarios
Add the SSHPubKeys to user struct as requested by Trident crew, added it to ProvisionUserSSHCerts function accordingly

Does this affect the toolchain?
NO
Test Methodology
Inside imagemodifier dir, run go build -o imagemodifier .
Will do an end-to-end test in trident to validate we can set up users correctly.

Naive question -- what's the difference between an image modifier and an image customizer? Without additional context, they sound like quite the same thing.

Naive question -- what's the difference between an image modifier and an image customizer? Without additional context, they sound like quite the same thing.

Image customizer is an officially supported CLI tool for customizing images (official releases, guaranteed backward compatibility, public documentation... etc.), while image modifier is more of a utility tool/wrapper on the customization lib that will be leveraged for ad-hoc image customizations scenarios and other efforts under development. Hence the separation to allow for a more fluid changing interface without breaking the official tool.

LGTM
One comment thou, what's our logging strategy here? how do we ensure we have enough logging to investigate customization failures?

The logging is the same with MIC, e.g. when passing a yam into it, it verifies the content and throw error when there is any step wrong while creating a new user.  the logging of the invocation of this binary resides in Trident repo.

Naive question -- what's the difference between an image modifier and an image customizer? Without additional context, they sound like quite the same thing.

image modifier does not create chroot env and it will do in-OS change without an input(base) image or output an image.

Naive question -- what's the difference between an image modifier and an image customizer? Without additional context, they sound like quite the same thing.

image modifier does not create chroot env and it will do in-OS change without an input(base) image or output an image.

Perhaps we should name it "OS modifier" instead of "image modifier", since it isn't modifying an image file.

Naive question -- what's the difference between an image modifier and an image customizer? Without additional context, they sound like quite the same thing.

image modifier does not create chroot env and it will do in-OS change without an input(base) image or output an image.

Perhaps we should name it "OS modifier" instead of "image modifier", since it isn't modifying an image file.

make sense, as it modifies makes live changes to an active OS, I will update all the references to os modifier

repo: microsoft/CBL-Mariner


text:
AccessViolationException when accessing Windows.Devices.Enumeration.Pnp.PnpObject.Properties.TryGetValue

On occasion, when accessing the properties of enumerated PnpObjects, I get this exception:
Exception thrown at 0x00007FF82FDFDBDE (combase.dll) in Agent.exe: 0xC0000005: Access violation reading location 0x0000027CCFCED034.
With native code debugging turned on. the unmanaged part that gets called by TryGetValue and leads to the exception:
combase.dll!WindowsStringHasEmbeddedNull(HSTRING__ * string, int * hasEmbedNull) Line 287
at onecore\com\combase\winrt\string\string.cpp(287)
[Inline Frame] Windows.Devices.Enumeration.dll!Windows::Internal::String::HasEmbeddedNull() Line 237
at onecore\internal\com\inc\windowsstringp.h(237)
Windows.Devices.Enumeration.dll!Windows::Internal::String::GetLpcwstr(const wchar_t * * ppsz) Line 248
at onecore\internal\com\inc\windowsstringp.h(248)
[Inline Frame] Windows.Devices.Enumeration.dll!Windows::Internal::StringReference::GetLpcwstr(const wchar_t * *) Line 577
at onecore\internal\com\inc\windowsstringp.h(577)
Windows.Devices.Enumeration.dll!PropertyStoreServer::Find(HSTRING__ * key, unsigned long * index) Line 189
at onecoreuap\base\devices\rtenum\dllsrv\propertystore.cpp(189)
Windows.Devices.Enumeration.dll!PropertyStoreServer::HasKey(HSTRING__ * key, unsigned char * found) Line 628
at onecoreuap\base\devices\rtenum\dllsrv\propertystore.cpp(628)
My TFM:
net5.0-windows10.0.19041.0

@v-tbert, thanks for the report.  Unfortunately, there's not enough information to root cause this issue, and we haven't seen it before.  Can you provide a repro project?

@Scottj1s Messaged you directly with an example project. Let me know if you have any questions.

@v-tbert, @ujjwalchadha and I cannot repro this issue.  I was able to repro it very reliably 2 weeks ago, which makes me think maybe something changed on the back end?  Can you retry?

@v-tbert, @ujjwalchadha and I cannot repro this issue.  I was able to repro it very reliably 2 weeks ago, which makes me think maybe something changed on the back end?  Can you retry?

Not sure what backend you are referring to?
I just repro'd it with my production code though. Its watching pnp devices so sometimes it doesn't happen right away. Sometimes it happens upon resuming after sleep or just (un)plugging things.

Not sure what backend you are referring to?
I just repro'd it with my production code though. Its watching pnp devices so sometimes it doesn't happen right away. Sometimes it happens upon resuming after sleep or just (un)plugging things.

Thanks Tim - I can repro with your steps (turning on/off bluetooth headphones).
A related issue is an incorrect implementation of GetRuntimeClassName, which is reporting Windows.Devices.Enumeration.DevicePropertyStore.  That type is not defined in metadata, so results in a System.TypeLoadException: 'Unable to find a type named 'Windows.Devices.Enumeration.DevicePropertyStore''.
However, cswinrt should be resilient and attempt a dynamic cast.  In your repro, that was failing with:
System.InvalidCastException: 'Invalid cast from 'WinRT.IInspectable' to 'ABI.System.Collections.Generic.IEnumerable1[System.Collections.Generic.KeyValuePair2[System.String,System.Object]]'.'
I couldn't definitely pinpoint, but we think this was resolved with some work on covariant support.  You can take advantage of that with a framework reference override to the latest Windows SDK projection.  I've confirmed this works with your repro.  Add these lines to your csproj:
    <ItemGroup>
        <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" RuntimeFrameworkVersion="10.0.19041.12" />
        <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" TargetingPackVersion="10.0.19041.12" />
    </ItemGroup>

Thanks Tim - I can repro with your steps (turning on/off bluetooth headphones).
A related issue is an incorrect implementation of GetRuntimeClassName, which is reporting Windows.Devices.Enumeration.DevicePropertyStore.  That type is not defined in metadata, so results in a System.TypeLoadException: 'Unable to find a type named 'Windows.Devices.Enumeration.DevicePropertyStore''.
However, cswinrt should be resilient and attempt a dynamic cast.  In your repro, that was failing with:
System.InvalidCastException: 'Invalid cast from 'WinRT.IInspectable' to 'ABI.System.Collections.Generic.IEnumerable1[System.Collections.Generic.KeyValuePair2[System.String,System.Object]]'.'
I couldn't definitely pinpoint, but we think this was resolved with some work on covariant support.  You can take advantage of that with a framework reference override to the latest Windows SDK projection.  I've confirmed this works with your repro.  Add these lines to your csproj:
    <ItemGroup>
        <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" RuntimeFrameworkVersion="10.0.19041.12" />
        <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" TargetingPackVersion="10.0.19041.12" />
    </ItemGroup>

I checked out the .net page and it indicates 5.0.102 is included in Visual Studio 16.8.4 which I am already running.  If I view the properties of Microsoft.Windows.SDK.NET.Ref in VS, it shows version 10.0.19041.12. It fails reliably with the access violation. However, if I manually add the lines you mention to the csproj file it DOES seem to resolve the access violation. If I understood correctly though, I shouldn't need to add them since I am already on the newer version?
If I disable "Enable Just My Code" I still see TypeLoadException for DevicePropertyStore

@manodasanW , any idea why an explicit *.12 framework reference would work, but not a .NET 5.0.102 reference?
@v-tbert, regarding the TypeLoadException, feel free to open an internal Windows issue on this header:
onecoreuap/base/Devices/rtenum/dllsrv/PropertyStore.h
These lines are in error:
InspectableClass(L"Windows.Devices.Enumeration.DevicePropertyStore", BaseTrust);
InspectableClass(L"Windows.Devices.Enumeration.DevicePropertyStoreIterator", BaseTrust);
Neither DevicePropertyStore nor DevicePropertyStoreIterator are actual runtime classes, which causes cswinrt to fail to find their ABI helpers via reflection, resulting in type load exceptions.  These should instead report their default interfaces - IIterable/IIterator specializations.

@manodasanW , any idea why an explicit *.12 framework reference would work, but not a .NET 5.0.102 reference?
@v-tbert, regarding the TypeLoadException, feel free to open an internal Windows issue on this header:
onecoreuap/base/Devices/rtenum/dllsrv/PropertyStore.h
These lines are in error:
InspectableClass(L"Windows.Devices.Enumeration.DevicePropertyStore", BaseTrust);
InspectableClass(L"Windows.Devices.Enumeration.DevicePropertyStoreIterator", BaseTrust);
Neither DevicePropertyStore nor DevicePropertyStoreIterator are actual runtime classes, which causes cswinrt to fail to find their ABI helpers via reflection, resulting in type load exceptions.  These should instead report their default interfaces - IIterable/IIterator specializations.

@v-tbert This is indeed strange as you shouldn't need a explicit reference if you got .NET 5.0.102.  Without the FrameworkReference update when the issue repros, can you run and debug your app and check in the Modules view in VS (under Debug -> Windows -> Modules) what version of Microsoft.Windows.SDK.NET.dll and WinRT.Runtime.dll is loaded in the process.  This should help confirm that there is indeed a difference an determine which one is being used.  A build log of your project (msbuild /bl) would also be useful.

@v-tbert This is indeed strange as you shouldn't need a explicit reference if you got .NET 5.0.102.  Without the FrameworkReference update when the issue repros, can you run and debug your app and check in the Modules view in VS (under Debug -> Windows -> Modules) what version of Microsoft.Windows.SDK.NET.dll and WinRT.Runtime.dll is loaded in the process.  This should help confirm that there is indeed a difference an determine which one is being used.  A build log of your project (msbuild /bl) would also be useful.

Closing due to inactivity

Closing due to inactivity

Sorry this fell off my radar. I updated my repro project and it reliably fails with the loaded module:
Version: 10.00.19041.14
Path: C:\Users\v-tbert\Desktop\Bug Repro MMRAgent\MMRAgent\bin\Debug\net5.0-windows10.0.19041.0\Microsoft.Windows.SDK.NET.dll

Team, see updated internal "Bug Repro MMRAgent.zip"

I don't have a self-contained repro currently but it looks like something else broke in 1.2.2. Now when retrieving the pnp property System.Devices.ContainerId it doesn't always return a Guid as it should. It will often return as string array.  Any idea why that might be happening? https://docs.microsoft.com/en-us/windows/win32/properties/props-system-devices-containerid

@v-tbert I am unable to repro this issue after previous few fixes we have made for other issues, and it seems like it has been fixed as a part of those. Can you confirm whether this is fixed for you with the latest release of cswinrt?

@v-tbert I just realized the build with fixes is not released yet. This should be fixed after the upcoming cswinrt release. Let us know if it is not.

@v-tbert this should be fixed with the latest .NET 5 SDK version (.NET SDK 5.0.402 or .NET SDK 5.0.208). Feel free to reopen if you are still encountering the issue.

authors: Scottj1s angelazhangmsft manodasanW ujjwalchadha v-tbert

repo: microsoft/CsWinRT


text:
multiple instances of the same connector need to authenticate one by one

we have a data connector which connects to our graphql API. the authentication is done by our own OAuth2 identity provider. the overall solution is working so far. currently we are fetching the data with Web.Contents where we have a full query to the data. but as we add multiple single queries to the reports (multiple times our data connector) we need to reauthenticate every instance individually every time our session is expired. this gets a really bad UX for the user.
so my questions are:

is there a way to authenticate a data connector globally?
is there a better way to customize the query to our data source than the argument to our contents function?

[DataSource.Kind="GIA.Integration.PowerBI", Publish="GIA.Integration.PowerBI.Publish"]
shared GIA.Integration.PowerBI.Contents = (Url as text) =>
    let
        reponse =  Web.Contents(Url),
        body = Json.Document(reponse)
    in
        body;

GIA.Integration.PowerBI = [
    Authentication = [
		OAuth = [
			    StartLogin=StartLogin,
                            FinishLogin=FinishLogin,
                            Refresh=Refresh,
                            Logout=Logout
	        ]
    ],
    TestConnection = (dataSourcePath) => {"GIA.Integration.PowerBI.Contents", dataSourcePath},
    Label = Extension.LoadString("DataSourceLabel")
];

With the current definition, it looks like the Url is being used to distinguish one data source from another -- which means that every distinct Url (minus query parts) would require its own credentials. Is that the problem you're describing? If so, one solution is to annotate the function to indicate that the Url shouldn't be used to distinguish data sources. You can do that with something like
shared GIA.Integration.PowerBI.Contents = Value.ReplaceType((Url as text) => …, type function (Uri as (type text meta [DataSource.Path=false])) as any)
That is, annotate the parameter type with the metadata DataSource.Path=false.

Hello @CurtHagenlocher
Thanks for your reply, it's very helpful. But what if we want to do the same thing for a date parameter but not URL? Seems like this trick does not work then.
Generally, we have got OAuth2 authorization and our connector takes a date range as parameter (dateFrom, dateTo). And we don't want to force a user to authorize every time when he/she changes date range.
Any ideas how to do that?
Thanks in advance.

hey @alex-v-ivanov
You could:

make those parameters optional / nullable annotate the
annotate with the DataSource.Path = false meta record on both of those parameters
I think that there's another way where you could make your connector work like a pseudo singleton, but I'm not sure that's the best way to go

Oh, sorry, it was my mistake,
I wrote Datasource.Path = false instead of DataSource.Path = false (S must be capital).
So, this way works for any data.
Thanks all!

Hi All,
I tried the same trick, i.e. made most of my connector parameters optional/nullable and also added the meta DataSource.Path = false, but when I publish it and then try to update the dataset (mapped to the connector) parameter to a new value then I get Update parameter failed. Works fine on Desktop
Any help appreciated
Cheers,
Amit

repo: microsoft/DataConnectors


text:
[CCL] fix condition issue in ccl.py

previous condition check is not right, it would cause this condition always be True.

I wanted to check this on XPU and HPU,
XPU: https://github.com/microsoft/DeepSpeed/actions/runs/10586606972/job/29335722768
HPU seems to have another issue, debugging that now.

authors: YizhouZ loadams

repo: microsoft/DeepSpeed


text:
Add suggested solution/url to CLI analyze output

Is your feature request related to a problem? Please describe.
CLI outputs the following format:
/opt/atlassian/pipelines/agent/build/header.php:21:31:21:38 [Moderate] DS137138 Insecure URL
I'm missing details on the error or a link to get info on a proposed solution.
Describe the solution you'd like
It would be nice to see a proposed solution or link for more info similar to the information provided by the VSC plugin.

Check the guidance file here for the error number: https://github.com/microsoft/DevSkim/tree/main/guidance

#297 will inform the user to visit that url for guidance if there were any issues detected.

repo: microsoft/DevSkim