microsoft / AL

Home of the Dynamics 365 Business Central AL Language extension for Visual Studio Code. Used to track issues regarding the latest version of the AL compiler and developer tools available in the Visual Studio Code Marketplace or as part of the AL Developer Preview builds for Dynamics 365 Business Central.
MIT License
750 stars 247 forks source link

Modify Caption in TableExtension #5429

Open eknraw opened 5 years ago

eknraw commented 5 years ago

Describe the bug Modifying a caption in a table extension no longer works. Default captioning is displayed.

To Reproduce Steps and to reproduce the behavior:

  1. create and publish tableextension modifying a caption
  2. publish
tableextension 50000 "Sales Header Ext." extends "Sales Header"
{

    fields
    {
        modify("External Document No.")
        {
            Caption = 'Customer PO No.';
        }
    }
}

Expected behavior Caption on Sales Order page should display "Customer PO No."

5. Versions:

atoader commented 5 years ago

I published it and it worked as expected:

image

atoader commented 5 years ago

Is there any other information that you can provide to reproduce this issue?

eknraw commented 5 years ago

Let me re-create my container after I pull a new image of bcinsider.azurecr.io/bcsandbox-master:us-ltsc2019. I thought I had pulled the latest but the created label is 201909121553. So if that label is right this could be 15 bug.

image

eknraw commented 5 years ago

Ok, just pulled the latest image. I'm getting the same result. Verified that it is installed. Testing with image: bcinsider.azurecr.io/bcsandbox-master:us-ltsc2019. Am I using the right preview images?

AL Language 5.0.195284. Platform still 15? It's a freshly created project, Runtime 5.0. What else would be helpful for you?

app.json

{
  "id": "07a81fb8-07c0-4171-b35e-34a228c2869b",
  "name": "ALProject5",
  "publisher": "Default publisher",
  "version": "1.0.0.0",
  "brief": "",
  "description": "",
  "privacyStatement": "",
  "EULA": "",
  "help": "",
  "url": "",
  "logo": "",
  "dependencies": [
    {
      "id": "63ca2fa4-4f03-4f2b-a480-172fef340d3f",
      "publisher": "Microsoft",
      "name": "System Application",
      "version": "16.0.0.0"
    },
    {
      "id": "437dbf0e-84ff-417a-965d-ed2bb9650972",
      "publisher": "Microsoft",
      "name": "Base Application",
      "version": "16.0.0.0"
    }
  ],
  "screenshots": [],
  "platform": "15.0.0.0",
  "idRanges": [
    {
      "from": 50000,
      "to": 50149
    }
  ],
  "contextSensitiveHelpUrl": "https://ALProject5.com/help/",
  "showMyCode": true,
  "runtime": "5.0"
}

image

atoader commented 5 years ago

Thanks! I will try to reproduce the issue.

dkip05 commented 5 years ago

This is also an issue for page extensions for things like the "Work Description" group on the Sales Order page.

image

This does not change the caption to "Customer Notes" as expected

atoader commented 5 years ago

Hi! We have identified the root cause and we will ship the fix in 15.2

debmitchell-tnp commented 3 years ago

This issue appears to have returned in 17.2

atoader commented 3 years ago

Can you provide a project that reproduces the issue and the version of the runtime/compiler that you used?

dzzzb commented 3 years ago

@eknraw, @NavDeb - do you find that changing languge to English (United States) results in the correct, changed Caption showing?

That is what I find. So the problem seems related to translation somehow.

code:

tableextension 50100 CustomerExt extends Customer
{
    fields
    {
        modify("Name 2")
        {
            Caption = 'Registered Name';
        }
    }
}

pageextension 50100 CustomerListExt extends "Customer List"
{
    layout
    {
        modify("Name 2")
        {
            ToolTip = 'Specifies the registered name of the customer.';
            Visible = true;
        }
    }
}

English (United States): image

English (United Kingdom): image

AL:

Name: AL Language
Id: ms-dynamics-smb.al
Description: AL development tools for Dynamics 365 Business Central
Version: 7.1.453917
Publisher: Microsoft
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=ms-dynamics-smb.al

against BC 17.5 cloud sandbox.

@atoader This should be enough for MS to progress this problem, right?

dzzzb commented 3 years ago

Overriding the Caption again in the corresponding PageExtension seems to work around this.

dzzzb commented 3 years ago

a similar or possibly the same issue manifests with ToolTip on pageextensions:

https://github.com/microsoft/AL/issues/6609

dzzzb commented 3 years ago

another workaround: use CaptionML and specify your language that doesn't work in Caption. but what use are the new non-ML way of doing things, if they don't work in so many cases!

dzzzb commented 3 years ago

https://github.com/microsoft/AL/issues/6609 was closed as off-topic. I've opened a case with our support partner and included the repro from the original post in this thread as well as mine. Hopefully it'll get to MS and get fixed...

dzzzb commented 3 years ago

updates from my ticket with MS:

MS:

Just wanted to give you an update, during my tests I was able to replicate the same behavior as you mentioned.

I tested in tenants with different Localization (UK and BE) and when changing the Region and Language for not being English US but for the specific environment localization language, the behavior is like you described.

Additionally I was analyzing if the environment would have any language app installed that could cause this, but everything is clear in regards to that.

I will share these findings with our team responsible for this development, it seems that this bug reappeared again.

Once I have more details from our development team I will let you know._

me:

Just to check, did you test/replicate both the PageExtension->ToolTip and TableExtension->Caption problems? As I guess they might have a similar root cause, so maybe best to report/fix both at the same time. If you didn’t already of course :-D

MS:

Thank you for the heads up in regards to TableExtension->Caption. I just tested right now and I’m experience the same bug as you.

I have just addressed the same to our team to have this into consideration as well.

Both these 2 scenarios (PageExtension->ToolTip and TableExtension->Caption) were tested and addressed. And you are right, report both at the same time will be better for all. The same team will be handling these 2 scenarios.

At this moment I’m waiting for their feedback, once I have any details I will let you know.

dzzzb commented 3 years ago

I was invited to a meeting with MS where they shared a PowerPoint that explained the current order of resolution/precedence of captions/translations between various sources. I don't fully understand it yet, but I think it does indicate this is intended behaviour, at least in my cases.

Basically,

MS are going to document this properly (and perhaps tweak the logic later, if demand arises) so that at least no one else will get confused. Watch this space! ;-)

If this is reflective of the OP here, then I guess there is no AL language issue, only one of documentation/platform relevance.

dzzzb commented 3 years ago

Here is MS's summary, followed by screengrabs of their PowerPoint presentation, with tables of the 'weighting'/precedence of different sources of translations, with numerically higher ones winning out.

Hope this helps others too!


We have the possibility to share with you a little test scenario with Caption and Tooltip and also explaining how the translation works.

Attached you will find the slide presentation we used in our teams meeting.

We explained both scenarios highlighted on this ticket.

Let’s share our explanation for the ToolTip.

When you are using, what we call, a label property like Caption or Tooltip, then the language it is going to target is English-United States (ENU), which means that

Caption = ‘My English Text’;

Is the same as

CaptionML = ENU = ‘My English Text’;

You have a GB tenant which comes with English-Great Britain (ENG) translations.

So when the system has to pick a translation it tries to find the best match, and in the mix of possible translations it finds

So when you set the language in settings to ENG, then it starts out by looking at can it find a translation with ENG, and it does so the text ‘Specifies the…’ is shown.

When you then change to ENU then it also get’s a match on the user specified language and text ‘Test’ is shown..

Now the explanation for the Caption.

When it comes to finding the translation for Page Controls then it uses the same logic as for Page Actions, with a small twist. If it can’t find any translation that matches the language the user has set, including the fallback to the primary language of the user specified one, and ENU (ENU is hard coded) then it looks at the table field that is referenced in the page control.

The control called ‘Name’ doesn’t have a caption on it, but all table fields does, so the table field has a translation for ENG. When you then write a caption on the page control, then it is getting caught by the fallback logic, before it starts to look at the table fields.

And last for the Caption on the TableExtensions modify field, is the same story as for the ToolTip.

All in all, the system works as intended. It might not be the most intuitive system as we shared, but we are working with docs writer about making a page about how all of this works, so all our Customers and Partners better understand it.


image

image

image