Why can the customers license not see the extended fields?

Sunset
Member Posts: 201
I have created an extensions that handles some information via the Sales Line.
Simplified version is one table that holds the values/options that are available
table 68015 "Order Service Contract Code"
field(1; "Order No."; Code[20])
field(2; "Service Code"; Code[10])
field(3; "Contract Code"; Code[10])
And an extension to the sales Line table:
tableextension 68101 "Sales Line Ext" extends "Sales Line"
field(68102; "Service Code"; Code[10])
{
TableRelation = "Order Service Contract Code"."Service Code";
ValidateTableRelation = false;
}
field(68103; "Contract Code"; Code[10])
{
TableRelation = "Order Service Contract Code"."Contract Code";
ValidateTableRelation = false;
}
And then some code that pre-filles the values on the order lines. So far so good, this all works and on the customers license it also does what it is supposed to.
But now comes my problem. Sometimes the users need to change the values, and so we make a pageextension
pageextension 68102 "Sales Order Subform Ext" extends "Sales Order Subform"
{
layout
{
addafter(Description)
{
field("Service Code"; "Service Code")
{
}
field("Contract Code"; "Contract Code")
{
}
}
}
}
But for whatever reason, this extension is only visible using a developer license.
Does anybody have some suggestions as to why this is?
NB: Code has been cleaned for readability. There are prefixes on all fields, and then caption-values to handle the user friendliness.
Simplified version is one table that holds the values/options that are available
table 68015 "Order Service Contract Code"
field(1; "Order No."; Code[20])
field(2; "Service Code"; Code[10])
field(3; "Contract Code"; Code[10])
And an extension to the sales Line table:
tableextension 68101 "Sales Line Ext" extends "Sales Line"
field(68102; "Service Code"; Code[10])
{
TableRelation = "Order Service Contract Code"."Service Code";
ValidateTableRelation = false;
}
field(68103; "Contract Code"; Code[10])
{
TableRelation = "Order Service Contract Code"."Contract Code";
ValidateTableRelation = false;
}
And then some code that pre-filles the values on the order lines. So far so good, this all works and on the customers license it also does what it is supposed to.
But now comes my problem. Sometimes the users need to change the values, and so we make a pageextension
pageextension 68102 "Sales Order Subform Ext" extends "Sales Order Subform"
{
layout
{
addafter(Description)
{
field("Service Code"; "Service Code")
{
}
field("Contract Code"; "Contract Code")
{
}
}
}
}
But for whatever reason, this extension is only visible using a developer license.
Does anybody have some suggestions as to why this is?
NB: Code has been cleaned for readability. There are prefixes on all fields, and then caption-values to handle the user friendliness.
Don't just take my word for it, test it yourself
0
Best Answer
-
Turned out to be the table extension definition. Looks like the code might get confused as to which record it should look for or something similar.
Correct definition for the extended fields is:
TableRelation = "Order Service Contract Code"."Service Code" WHERE ("Order No." = FIELD ("Document No."));
And then it works.Don't just take my word for it, test it yourself0
Answers
-
I agree that it sounds/looks like it, but I don't see where/how.
The customer license has access to the table and it pre-filles the values as it should. And since the fields on the sales line table and page are extensions, there should not be any license issues there.Don't just take my word for it, test it yourself0 -
Table 68015 has a LookupPageID = "Page 68015", which is included in the customers license.
Neither tableextension nor pageextension has any reference to any further page.Don't just take my word for it, test it yourself0 -
You forgot to define the ApplicationArea property of your page and its fields.0
-
Turned out to be the table extension definition. Looks like the code might get confused as to which record it should look for or something similar.
Correct definition for the extended fields is:
TableRelation = "Order Service Contract Code"."Service Code" WHERE ("Order No." = FIELD ("Document No."));
And then it works.Don't just take my word for it, test it yourself0
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions