bc-code-intelligence-mcp 1.3.3 → 1.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/dist/config/test-enhanced-layer-service.js +10 -10
  2. package/dist/config/test-enhanced-layer-service.js.map +1 -1
  3. package/dist/dev/hot-reload.d.ts +2 -2
  4. package/dist/dev/hot-reload.d.ts.map +1 -1
  5. package/dist/dev/hot-reload.js.map +1 -1
  6. package/dist/index.d.ts +0 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +34 -38
  9. package/dist/index.js.map +1 -1
  10. package/dist/layers/index.d.ts +1 -1
  11. package/dist/layers/index.d.ts.map +1 -1
  12. package/dist/layers/index.js +1 -1
  13. package/dist/layers/index.js.map +1 -1
  14. package/dist/services/code-analysis-service.d.ts.map +1 -1
  15. package/dist/services/code-analysis-service.js +4 -0
  16. package/dist/services/code-analysis-service.js.map +1 -1
  17. package/dist/services/enhanced-prompt-service.d.ts +1 -12
  18. package/dist/services/enhanced-prompt-service.d.ts.map +1 -1
  19. package/dist/services/enhanced-prompt-service.js +27 -38
  20. package/dist/services/enhanced-prompt-service.js.map +1 -1
  21. package/dist/services/knowledge-service.d.ts +21 -10
  22. package/dist/services/knowledge-service.d.ts.map +1 -1
  23. package/dist/services/knowledge-service.js +71 -54
  24. package/dist/services/knowledge-service.js.map +1 -1
  25. package/dist/services/multi-content-layer-service.d.ts +90 -0
  26. package/dist/services/multi-content-layer-service.d.ts.map +1 -1
  27. package/dist/services/multi-content-layer-service.js +380 -0
  28. package/dist/services/multi-content-layer-service.js.map +1 -1
  29. package/dist/services/workflow-service.d.ts +11 -3
  30. package/dist/services/workflow-service.d.ts.map +1 -1
  31. package/dist/services/workflow-service.js +119 -78
  32. package/dist/services/workflow-service.js.map +1 -1
  33. package/dist/streamlined-handlers.d.ts +31 -2
  34. package/dist/streamlined-handlers.d.ts.map +1 -1
  35. package/dist/streamlined-handlers.js +151 -109
  36. package/dist/streamlined-handlers.js.map +1 -1
  37. package/dist/streamlined-tools.d.ts +12 -0
  38. package/dist/streamlined-tools.d.ts.map +1 -1
  39. package/dist/streamlined-tools.js +11 -6
  40. package/dist/streamlined-tools.js.map +1 -1
  41. package/package.json +13 -4
  42. package/embedded-knowledge/.github/ISSUE_TEMPLATE/bug-report.md +0 -24
  43. package/embedded-knowledge/.github/ISSUE_TEMPLATE/content-improvement.md +0 -24
  44. package/embedded-knowledge/.github/ISSUE_TEMPLATE/knowledge-request.md +0 -30
  45. package/embedded-knowledge/AGENTS.md +0 -178
  46. package/embedded-knowledge/CONTRIBUTING.md +0 -58
  47. package/embedded-knowledge/LICENSE +0 -21
  48. package/embedded-knowledge/README.md +0 -32
  49. package/embedded-knowledge/domains/alex-architect/api-delegate-operation-pattern.md +0 -90
  50. package/embedded-knowledge/domains/alex-architect/api-fieldset-registration-pattern.md +0 -113
  51. package/embedded-knowledge/domains/alex-architect/api-interface-design-patterns.md +0 -101
  52. package/embedded-knowledge/domains/alex-architect/api-page-development-patterns.md +0 -87
  53. package/embedded-knowledge/domains/alex-architect/complex-facade-patterns.md +0 -155
  54. package/embedded-knowledge/domains/alex-architect/facade-pattern-al-implementation.md +0 -138
  55. package/embedded-knowledge/domains/alex-architect/facade-pattern-external-api.md +0 -79
  56. package/embedded-knowledge/domains/alex-architect/samples/api-delegate-operation.md +0 -280
  57. package/embedded-knowledge/domains/alex-architect/samples/api-fieldset-registration.md +0 -200
  58. package/embedded-knowledge/domains/alex-architect/samples/api-interface-design.md +0 -565
  59. package/embedded-knowledge/domains/alex-architect/samples/api-page-implementation.md +0 -665
  60. package/embedded-knowledge/domains/alex-architect/samples/complex-facade-patterns.md +0 -325
  61. package/embedded-knowledge/domains/alex-architect/samples/facade-pattern-al.md +0 -696
  62. package/embedded-knowledge/domains/alex-architect/samples/facade-pattern.md +0 -320
  63. package/embedded-knowledge/domains/alex-architect/samples/subscriber-organization.md +0 -102
  64. package/embedded-knowledge/domains/alex-architect/samples/systemid-integration.md +0 -433
  65. package/embedded-knowledge/domains/alex-architect/subscriber-codeunit-size-optimization.md +0 -66
  66. package/embedded-knowledge/domains/alex-architect/systemid-integration.md +0 -115
  67. package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +0 -360
  68. package/embedded-knowledge/domains/dean-debug/case-statement-performance-best-practices.md +0 -86
  69. package/embedded-knowledge/domains/dean-debug/compound-statements-debugging.md +0 -96
  70. package/embedded-knowledge/domains/dean-debug/custom-dimensions-best-practices.md +0 -70
  71. package/embedded-knowledge/domains/dean-debug/custom-telemetry-implementation.md +0 -84
  72. package/embedded-knowledge/domains/dean-debug/deleteall-performance-tradeoff.md +0 -93
  73. package/embedded-knowledge/domains/dean-debug/deleteall-sql-performance.md +0 -73
  74. package/embedded-knowledge/domains/dean-debug/extension-telemetry-isolation.md +0 -78
  75. package/embedded-knowledge/domains/dean-debug/maintainsiftindex-property-behavior.md +0 -79
  76. package/embedded-knowledge/domains/dean-debug/no-series-implementation-patterns.md +0 -87
  77. package/embedded-knowledge/domains/dean-debug/no-series-module-patterns-bc24.md +0 -209
  78. package/embedded-knowledge/domains/dean-debug/no-series-validation-module-bc24.md +0 -246
  79. package/embedded-knowledge/domains/dean-debug/no-series-validation-patterns.md +0 -107
  80. package/embedded-knowledge/domains/dean-debug/odata-query-optimization.md +0 -105
  81. package/embedded-knowledge/domains/dean-debug/samples/bc24-no-series-conversion.md +0 -186
  82. package/embedded-knowledge/domains/dean-debug/samples/case-performance-optimization.md +0 -60
  83. package/embedded-knowledge/domains/dean-debug/samples/compound-statements-debugging.md +0 -139
  84. package/embedded-knowledge/domains/dean-debug/samples/custom-dimensions.md +0 -190
  85. package/embedded-knowledge/domains/dean-debug/samples/custom-telemetry.md +0 -516
  86. package/embedded-knowledge/domains/dean-debug/samples/deleteall-performance.md +0 -298
  87. package/embedded-knowledge/domains/dean-debug/samples/error-correlation.md +0 -324
  88. package/embedded-knowledge/domains/dean-debug/samples/extension-isolation.md +0 -344
  89. package/embedded-knowledge/domains/dean-debug/samples/logmessage-methods.md +0 -137
  90. package/embedded-knowledge/domains/dean-debug/samples/maintainsiftindex-examples.md +0 -340
  91. package/embedded-knowledge/domains/dean-debug/samples/no-series-implementation.md +0 -810
  92. package/embedded-knowledge/domains/dean-debug/samples/no-series-module-bc24.md +0 -86
  93. package/embedded-knowledge/domains/dean-debug/samples/no-series-validation-module-bc24.md +0 -110
  94. package/embedded-knowledge/domains/dean-debug/samples/no-series-validation.md +0 -758
  95. package/embedded-knowledge/domains/dean-debug/samples/odata-query-optimization.md +0 -665
  96. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-case.md +0 -316
  97. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-filters.md +0 -223
  98. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-filter-exclusion.md +0 -149
  99. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-optimization.md +0 -412
  100. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-performance.md +0 -211
  101. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-primary-key.md +0 -155
  102. package/embedded-knowledge/domains/dean-debug/samples/sift-technology-fundamentals.md +0 -475
  103. package/embedded-knowledge/domains/dean-debug/samples/singleinstance-subscribers.md +0 -238
  104. package/embedded-knowledge/domains/dean-debug/samples/table-event-batching.md +0 -97
  105. package/embedded-knowledge/domains/dean-debug/samples/table-key-requirements.md +0 -666
  106. package/embedded-knowledge/domains/dean-debug/samples/telemetry-performance.md +0 -319
  107. package/embedded-knowledge/domains/dean-debug/samples/verbosity-strategy.md +0 -236
  108. package/embedded-knowledge/domains/dean-debug/session-logmessage-methods.md +0 -59
  109. package/embedded-knowledge/domains/dean-debug/setloadfields-filter-field-exclusion.md +0 -67
  110. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-impact.md +0 -70
  111. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-optimization.md +0 -90
  112. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-case-statements.md +0 -87
  113. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-filters.md +0 -70
  114. package/embedded-knowledge/domains/dean-debug/setloadfields-primary-key-optimization.md +0 -74
  115. package/embedded-knowledge/domains/dean-debug/sift-technology-fundamentals.md +0 -81
  116. package/embedded-knowledge/domains/dean-debug/subscriber-singleinstance-performance.md +0 -56
  117. package/embedded-knowledge/domains/dean-debug/table-event-batch-operation-impact.md +0 -66
  118. package/embedded-knowledge/domains/dean-debug/table-key-requirements.md +0 -79
  119. package/embedded-knowledge/domains/dean-debug/telemetry-error-correlation.md +0 -78
  120. package/embedded-knowledge/domains/dean-debug/telemetry-performance-considerations.md +0 -83
  121. package/embedded-knowledge/domains/dean-debug/telemetry-verbosity-strategy.md +0 -76
  122. package/embedded-knowledge/domains/dean-debug/testfield-performance.md +0 -104
  123. package/embedded-knowledge/domains/eva-errors/fielderror-default-messages.md +0 -145
  124. package/embedded-knowledge/domains/eva-errors/fielderror-message-construction.md +0 -104
  125. package/embedded-knowledge/domains/eva-errors/fielderror-method-syntax.md +0 -114
  126. package/embedded-knowledge/domains/eva-errors/samples/fielderror-default-messages.md +0 -356
  127. package/embedded-knowledge/domains/eva-errors/samples/fielderror-syntax.md +0 -256
  128. package/embedded-knowledge/domains/eva-errors/samples/table-safety-validation-patterns.md +0 -101
  129. package/embedded-knowledge/domains/eva-errors/samples/testfield-error-handling.md +0 -108
  130. package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +0 -80
  131. package/embedded-knowledge/domains/jordan-bridge/al-event-subscriber-architecture.md +0 -98
  132. package/embedded-knowledge/domains/jordan-bridge/automatic-registration.md +0 -123
  133. package/embedded-knowledge/domains/jordan-bridge/business-process-template-patterns.md +0 -96
  134. package/embedded-knowledge/domains/jordan-bridge/error-response-patterns.md +0 -115
  135. package/embedded-knowledge/domains/jordan-bridge/etag-implementation.md +0 -115
  136. package/embedded-knowledge/domains/jordan-bridge/field-control-selection.md +0 -114
  137. package/embedded-knowledge/domains/jordan-bridge/samples/al-event-subscriber-architecture.md +0 -395
  138. package/embedded-knowledge/domains/jordan-bridge/samples/api-error-responses.md +0 -479
  139. package/embedded-knowledge/domains/jordan-bridge/samples/api-field-control.md +0 -548
  140. package/embedded-knowledge/domains/jordan-bridge/samples/api-url-naming.md +0 -287
  141. package/embedded-knowledge/domains/jordan-bridge/samples/business-process-templates.md +0 -434
  142. package/embedded-knowledge/domains/jordan-bridge/samples/etag-implementation.md +0 -508
  143. package/embedded-knowledge/domains/jordan-bridge/samples/task-scheduler-pattern.md +0 -615
  144. package/embedded-knowledge/domains/jordan-bridge/task-scheduler-pattern-implementation.md +0 -144
  145. package/embedded-knowledge/domains/jordan-bridge/url-structure-naming-patterns.md +0 -96
  146. package/embedded-knowledge/domains/maya-mentor/case-multiple-conditions-ranges.md +0 -124
  147. package/embedded-knowledge/domains/maya-mentor/case-statement-syntax-structure.md +0 -84
  148. package/embedded-knowledge/domains/maya-mentor/fielderror-syntax-usage.md +0 -75
  149. package/embedded-knowledge/domains/maya-mentor/fielderror-vs-testfield.md +0 -96
  150. package/embedded-knowledge/domains/maya-mentor/samples/case-statement-multiple-conditions.md +0 -385
  151. package/embedded-knowledge/domains/maya-mentor/samples/case-statement-syntax-structure.md +0 -72
  152. package/embedded-knowledge/domains/maya-mentor/samples/fielderror-syntax-usage.md +0 -48
  153. package/embedded-knowledge/domains/maya-mentor/samples/testfield-basic-syntax.md +0 -49
  154. package/embedded-knowledge/domains/maya-mentor/testfield-basic-syntax.md +0 -67
  155. package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +0 -119
  156. package/embedded-knowledge/domains/quinn-tester/rule-execution.md +0 -123
  157. package/embedded-knowledge/domains/quinn-tester/samples/case-error-handling.md +0 -64
  158. package/embedded-knowledge/domains/quinn-tester/samples/fielderror-message-construction.md +0 -60
  159. package/embedded-knowledge/domains/quinn-tester/samples/fielderror-validation-patterns.md +0 -83
  160. package/embedded-knowledge/domains/quinn-tester/samples/rule-execution.md +0 -716
  161. package/embedded-knowledge/domains/quinn-tester/samples/table-safety-validation-patterns.md +0 -101
  162. package/embedded-knowledge/domains/quinn-tester/samples/temporary-table-operation-validation.md +0 -91
  163. package/embedded-knowledge/domains/quinn-tester/table-safety-validation-patterns.md +0 -79
  164. package/embedded-knowledge/domains/quinn-tester/temporary-table-operation-validation.md +0 -79
  165. package/embedded-knowledge/domains/roger-reviewer/al-begin-end-block-structure.md +0 -89
  166. package/embedded-knowledge/domains/roger-reviewer/al-binary-operator-spacing.md +0 -76
  167. package/embedded-knowledge/domains/roger-reviewer/al-blank-line-organization.md +0 -76
  168. package/embedded-knowledge/domains/roger-reviewer/al-case-action-formatting.md +0 -76
  169. package/embedded-knowledge/domains/roger-reviewer/al-code-spacing-conventions.md +0 -81
  170. package/embedded-knowledge/domains/roger-reviewer/al-comment-spacing-standards.md +0 -76
  171. package/embedded-knowledge/domains/roger-reviewer/al-end-else-pairing.md +0 -75
  172. package/embedded-knowledge/domains/roger-reviewer/al-keyword-indentation-rules.md +0 -76
  173. package/embedded-knowledge/domains/roger-reviewer/al-line-start-keyword-positioning.md +0 -76
  174. package/embedded-knowledge/domains/roger-reviewer/al-separate-if-else-formatting.md +0 -76
  175. package/embedded-knowledge/domains/roger-reviewer/al-standard-abbreviations.md +0 -96
  176. package/embedded-knowledge/domains/roger-reviewer/al-statement-per-line-rule.md +0 -76
  177. package/embedded-knowledge/domains/roger-reviewer/al-unnecessary-else-elimination.md +0 -86
  178. package/embedded-knowledge/domains/roger-reviewer/al-variable-declaration-order.md +0 -90
  179. package/embedded-knowledge/domains/roger-reviewer/al-variable-naming-conventions.md +0 -82
  180. package/embedded-knowledge/domains/roger-reviewer/begin-block-statement-clarity.md +0 -78
  181. package/embedded-knowledge/domains/roger-reviewer/begin-end-positioning-patterns.md +0 -76
  182. package/embedded-knowledge/domains/roger-reviewer/binary-operator-line-positioning.md +0 -78
  183. package/embedded-knowledge/domains/roger-reviewer/boolean-expression-simplification-al.md +0 -100
  184. package/embedded-knowledge/domains/roger-reviewer/case-statement-error-handling-troubleshooting.md +0 -115
  185. package/embedded-knowledge/domains/roger-reviewer/compound-statement-readability.md +0 -124
  186. package/embedded-knowledge/domains/roger-reviewer/lonely-repeat-statement-pattern.md +0 -110
  187. package/embedded-knowledge/domains/roger-reviewer/samples/al-begin-end-blocks.md +0 -438
  188. package/embedded-knowledge/domains/roger-reviewer/samples/al-binary-operator-spacing.md +0 -255
  189. package/embedded-knowledge/domains/roger-reviewer/samples/al-comment-spacing-standards.md +0 -209
  190. package/embedded-knowledge/domains/roger-reviewer/samples/al-keyword-indentation-rules.md +0 -218
  191. package/embedded-knowledge/domains/roger-reviewer/samples/al-line-start-keyword-positioning.md +0 -218
  192. package/embedded-knowledge/domains/roger-reviewer/samples/al-separate-if-else-formatting.md +0 -280
  193. package/embedded-knowledge/domains/roger-reviewer/samples/al-statement-per-line-rule.md +0 -188
  194. package/embedded-knowledge/domains/roger-reviewer/samples/al-unnecessary-else-elimination.md +0 -245
  195. package/embedded-knowledge/domains/roger-reviewer/samples/al-variable-declaration-order.md +0 -244
  196. package/embedded-knowledge/domains/roger-reviewer/samples/begin-end-positioning.md +0 -278
  197. package/embedded-knowledge/domains/roger-reviewer/samples/boolean-simplification-examples.md +0 -484
  198. package/embedded-knowledge/domains/roger-reviewer/samples/case-error-handling.md +0 -64
  199. package/embedded-knowledge/domains/roger-reviewer/samples/compound-statement-readability.md +0 -107
  200. package/embedded-knowledge/domains/roger-reviewer/samples/lonely-repeat-examples.md +0 -280
  201. package/embedded-knowledge/domains/sam-coder/al-formatting-consistency-patterns.md +0 -75
  202. package/embedded-knowledge/domains/sam-coder/al-line-comment-formatting.md +0 -67
  203. package/embedded-knowledge/domains/sam-coder/al-lonely-repeat-pattern.md +0 -76
  204. package/embedded-knowledge/domains/sam-coder/al-named-parameter-pattern.md +0 -98
  205. package/embedded-knowledge/domains/sam-coder/al-object-navigation-shortcuts.md +0 -128
  206. package/embedded-knowledge/domains/sam-coder/al-readability-optimization.md +0 -75
  207. package/embedded-knowledge/domains/sam-coder/al-record-find-early-exit.md +0 -95
  208. package/embedded-knowledge/domains/sam-coder/command-queue-pattern-al.md +0 -141
  209. package/embedded-knowledge/domains/sam-coder/deleteall-alternative-implementation.md +0 -91
  210. package/embedded-knowledge/domains/sam-coder/deleteall-method-usage.md +0 -118
  211. package/embedded-knowledge/domains/sam-coder/deleteall-trigger-execution.md +0 -111
  212. package/embedded-knowledge/domains/sam-coder/event-bridge-pattern-al.md +0 -113
  213. package/embedded-knowledge/domains/sam-coder/event-payload-design-patterns.md +0 -127
  214. package/embedded-knowledge/domains/sam-coder/generic-method-patterns-al.md +0 -141
  215. package/embedded-knowledge/domains/sam-coder/manual-binding-conditional-subscribers.md +0 -66
  216. package/embedded-knowledge/domains/sam-coder/nested-compound-best-practices.md +0 -96
  217. package/embedded-knowledge/domains/sam-coder/samples/al-blank-line-organization.md +0 -161
  218. package/embedded-knowledge/domains/sam-coder/samples/al-case-action-formatting.md +0 -177
  219. package/embedded-knowledge/domains/sam-coder/samples/al-lonely-repeat-pattern.md +0 -239
  220. package/embedded-knowledge/domains/sam-coder/samples/al-named-parameter-pattern.md +0 -346
  221. package/embedded-knowledge/domains/sam-coder/samples/al-record-find-early-exit.md +0 -298
  222. package/embedded-knowledge/domains/sam-coder/samples/command-queue-pattern.md +0 -677
  223. package/embedded-knowledge/domains/sam-coder/samples/deleteall-alternative-implementation.md +0 -117
  224. package/embedded-knowledge/domains/sam-coder/samples/deleteall-triggers.md +0 -75
  225. package/embedded-knowledge/domains/sam-coder/samples/deleteall-usage.md +0 -169
  226. package/embedded-knowledge/domains/sam-coder/samples/event-bridge-pattern.md +0 -399
  227. package/embedded-knowledge/domains/sam-coder/samples/event-payload-design.md +0 -356
  228. package/embedded-knowledge/domains/sam-coder/samples/generic-method-patterns.md +0 -889
  229. package/embedded-knowledge/domains/sam-coder/samples/manual-binding.md +0 -84
  230. package/embedded-knowledge/domains/sam-coder/samples/nested-compound-best-practices.md +0 -127
  231. package/embedded-knowledge/domains/sam-coder/samples/single-to-compound-conversion.md +0 -89
  232. package/embedded-knowledge/domains/sam-coder/samples/template-method-pattern.md +0 -516
  233. package/embedded-knowledge/domains/sam-coder/samples/testfield-patterns.md +0 -61
  234. package/embedded-knowledge/domains/sam-coder/samples/type-safe-operations.md +0 -427
  235. package/embedded-knowledge/domains/sam-coder/single-to-compound-conversion.md +0 -122
  236. package/embedded-knowledge/domains/sam-coder/template-method-pattern-al.md +0 -96
  237. package/embedded-knowledge/domains/sam-coder/testfield-patterns.md +0 -101
  238. package/embedded-knowledge/domains/sam-coder/type-safe-operations-al.md +0 -149
  239. package/embedded-knowledge/domains/sam-coder/vs-code-al-keyboard-shortcuts.md +0 -107
  240. package/embedded-knowledge/domains/seth-security/al-temporary-table-safety.md +0 -95
  241. package/embedded-knowledge/domains/seth-security/api-permission-model.md +0 -115
  242. package/embedded-knowledge/domains/seth-security/istemporary-safeguard-pattern.md +0 -78
  243. package/embedded-knowledge/domains/seth-security/samples/al-temporary-table-safety.md +0 -373
  244. package/embedded-knowledge/domains/seth-security/samples/api-permission-model.md +0 -308
  245. package/embedded-knowledge/domains/shared/al-file-naming-conventions.md +0 -146
  246. package/embedded-knowledge/domains/taylor-docs/al-xml-documentation-structure.md +0 -79
  247. package/embedded-knowledge/domains/uma-ux/bc-action-shortcuts-syntax.md +0 -78
  248. package/embedded-knowledge/domains/uma-ux/shortcut-key-user-experience-design.md +0 -81
  249. package/embedded-knowledge/indexes/bc-version-matrix.json +0 -188
  250. package/embedded-knowledge/indexes/domain-catalog.json +0 -106
  251. package/embedded-knowledge/indexes/tags/abbreviations.json +0 -1
  252. package/embedded-knowledge/indexes/tags/abstraction.json +0 -1
  253. package/embedded-knowledge/indexes/tags/access-control.json +0 -1
  254. package/embedded-knowledge/indexes/tags/accessibility.json +0 -1
  255. package/embedded-knowledge/indexes/tags/actions.json +0 -1
  256. package/embedded-knowledge/indexes/tags/advanced-patterns.json +0 -1
  257. package/embedded-knowledge/indexes/tags/advanced.json +0 -1
  258. package/embedded-knowledge/indexes/tags/al-extension.json +0 -1
  259. package/embedded-knowledge/indexes/tags/al-generics.json +0 -1
  260. package/embedded-knowledge/indexes/tags/al-objects.json +0 -1
  261. package/embedded-knowledge/indexes/tags/al-syntax.json +0 -1
  262. package/embedded-knowledge/indexes/tags/algorithm-structure.json +0 -1
  263. package/embedded-knowledge/indexes/tags/alternatives.json +0 -1
  264. package/embedded-knowledge/indexes/tags/analytics.json +0 -1
  265. package/embedded-knowledge/indexes/tags/api-delegates.json +0 -1
  266. package/embedded-knowledge/indexes/tags/api-design.json +0 -1
  267. package/embedded-knowledge/indexes/tags/api-documentation.json +0 -1
  268. package/embedded-knowledge/indexes/tags/api-endpoints.json +0 -1
  269. package/embedded-knowledge/indexes/tags/api-extensibility.json +0 -1
  270. package/embedded-knowledge/indexes/tags/api-fieldsets.json +0 -1
  271. package/embedded-knowledge/indexes/tags/api-integration.json +0 -1
  272. package/embedded-knowledge/indexes/tags/api-interfaces.json +0 -1
  273. package/embedded-knowledge/indexes/tags/api-optimization.json +0 -1
  274. package/embedded-knowledge/indexes/tags/api-pages.json +0 -1
  275. package/embedded-knowledge/indexes/tags/api-patterns.json +0 -1
  276. package/embedded-knowledge/indexes/tags/api-permissions.json +0 -1
  277. package/embedded-knowledge/indexes/tags/api-responses.json +0 -1
  278. package/embedded-knowledge/indexes/tags/api-simplification.json +0 -1
  279. package/embedded-knowledge/indexes/tags/api.json +0 -1
  280. package/embedded-knowledge/indexes/tags/architecture.json +0 -1
  281. package/embedded-knowledge/indexes/tags/async-patterns.json +0 -1
  282. package/embedded-knowledge/indexes/tags/async-processing.json +0 -1
  283. package/embedded-knowledge/indexes/tags/automatic-registration.json +0 -1
  284. package/embedded-knowledge/indexes/tags/batch-operations.json +0 -1
  285. package/embedded-knowledge/indexes/tags/bc24-migration.json +0 -1
  286. package/embedded-knowledge/indexes/tags/begin-blocks.json +0 -1
  287. package/embedded-knowledge/indexes/tags/begin-end.json +0 -1
  288. package/embedded-knowledge/indexes/tags/behavioral-patterns.json +0 -1
  289. package/embedded-knowledge/indexes/tags/best-practices.json +0 -1
  290. package/embedded-knowledge/indexes/tags/binding.json +0 -1
  291. package/embedded-knowledge/indexes/tags/block-structure.json +0 -1
  292. package/embedded-knowledge/indexes/tags/blocks.json +0 -1
  293. package/embedded-knowledge/indexes/tags/boolean-expressions.json +0 -1
  294. package/embedded-knowledge/indexes/tags/branching.json +0 -1
  295. package/embedded-knowledge/indexes/tags/breaking-changes.json +0 -1
  296. package/embedded-knowledge/indexes/tags/breakpoints.json +0 -1
  297. package/embedded-knowledge/indexes/tags/business-foundation.json +0 -1
  298. package/embedded-knowledge/indexes/tags/business-infrastructure.json +0 -1
  299. package/embedded-knowledge/indexes/tags/business-process.json +0 -1
  300. package/embedded-knowledge/indexes/tags/business-rules.json +0 -1
  301. package/embedded-knowledge/indexes/tags/caching.json +0 -1
  302. package/embedded-knowledge/indexes/tags/case-statements.json +0 -1
  303. package/embedded-knowledge/indexes/tags/case.json +0 -1
  304. package/embedded-knowledge/indexes/tags/code-analysis.json +0 -1
  305. package/embedded-knowledge/indexes/tags/code-clarity.json +0 -1
  306. package/embedded-knowledge/indexes/tags/code-comprehension.json +0 -1
  307. package/embedded-knowledge/indexes/tags/code-conversion.json +0 -1
  308. package/embedded-knowledge/indexes/tags/code-formatting.json +0 -1
  309. package/embedded-knowledge/indexes/tags/code-organization.json +0 -1
  310. package/embedded-knowledge/indexes/tags/code-patterns.json +0 -1
  311. package/embedded-knowledge/indexes/tags/code-quality.json +0 -1
  312. package/embedded-knowledge/indexes/tags/code-reuse.json +0 -1
  313. package/embedded-knowledge/indexes/tags/code-simplification.json +0 -1
  314. package/embedded-knowledge/indexes/tags/code-standards.json +0 -1
  315. package/embedded-knowledge/indexes/tags/code-structure.json +0 -1
  316. package/embedded-knowledge/indexes/tags/code-style.json +0 -1
  317. package/embedded-knowledge/indexes/tags/codeunit-design.json +0 -1
  318. package/embedded-knowledge/indexes/tags/command-queue.json +0 -1
  319. package/embedded-knowledge/indexes/tags/comments.json +0 -1
  320. package/embedded-knowledge/indexes/tags/compile-time-validation.json +0 -1
  321. package/embedded-knowledge/indexes/tags/complex-facade.json +0 -1
  322. package/embedded-knowledge/indexes/tags/complexity-hiding.json +0 -1
  323. package/embedded-knowledge/indexes/tags/complexity-management.json +0 -1
  324. package/embedded-knowledge/indexes/tags/compound-statements.json +0 -1
  325. package/embedded-knowledge/indexes/tags/concurrency.json +0 -1
  326. package/embedded-knowledge/indexes/tags/conditional-logic.json +0 -1
  327. package/embedded-knowledge/indexes/tags/conditional.json +0 -1
  328. package/embedded-knowledge/indexes/tags/conflict-resolution.json +0 -1
  329. package/embedded-knowledge/indexes/tags/consistency.json +0 -1
  330. package/embedded-knowledge/indexes/tags/contract-design.json +0 -1
  331. package/embedded-knowledge/indexes/tags/control-flow.json +0 -1
  332. package/embedded-knowledge/indexes/tags/conversion-guide.json +0 -1
  333. package/embedded-knowledge/indexes/tags/correlation.json +0 -1
  334. package/embedded-knowledge/indexes/tags/custom-messages.json +0 -1
  335. package/embedded-knowledge/indexes/tags/data-access.json +0 -1
  336. package/embedded-knowledge/indexes/tags/data-exposure.json +0 -1
  337. package/embedded-knowledge/indexes/tags/data-integrity.json +0 -1
  338. package/embedded-knowledge/indexes/tags/data-loading.json +0 -1
  339. package/embedded-knowledge/indexes/tags/data-manipulation.json +0 -1
  340. package/embedded-knowledge/indexes/tags/data-modeling.json +0 -1
  341. package/embedded-knowledge/indexes/tags/data-patterns.json +0 -1
  342. package/embedded-knowledge/indexes/tags/data-protection.json +0 -1
  343. package/embedded-knowledge/indexes/tags/data-validation.json +0 -1
  344. package/embedded-knowledge/indexes/tags/database.json +0 -1
  345. package/embedded-knowledge/indexes/tags/debugging.json +0 -1
  346. package/embedded-knowledge/indexes/tags/decision-making.json +0 -1
  347. package/embedded-knowledge/indexes/tags/declaration.json +0 -1
  348. package/embedded-knowledge/indexes/tags/default-messages.json +0 -1
  349. package/embedded-knowledge/indexes/tags/defensive-programming.json +0 -1
  350. package/embedded-knowledge/indexes/tags/deleteall.json +0 -1
  351. package/embedded-knowledge/indexes/tags/dependencies.json +0 -1
  352. package/embedded-knowledge/indexes/tags/deployment.json +0 -1
  353. package/embedded-knowledge/indexes/tags/developer-productivity.json +0 -1
  354. package/embedded-knowledge/indexes/tags/development-workflow.json +0 -1
  355. package/embedded-knowledge/indexes/tags/diagnostics.json +0 -1
  356. package/embedded-knowledge/indexes/tags/dimensions.json +0 -1
  357. package/embedded-knowledge/indexes/tags/documentation.json +0 -1
  358. package/embedded-knowledge/indexes/tags/early-exit.json +0 -1
  359. package/embedded-knowledge/indexes/tags/else-clauses.json +0 -1
  360. package/embedded-knowledge/indexes/tags/end-statements.json +0 -1
  361. package/embedded-knowledge/indexes/tags/enterprise-patterns.json +0 -1
  362. package/embedded-knowledge/indexes/tags/entity-relationships.json +0 -1
  363. package/embedded-knowledge/indexes/tags/error-handling.json +0 -1
  364. package/embedded-knowledge/indexes/tags/error-messages.json +0 -1
  365. package/embedded-knowledge/indexes/tags/error-prevention.json +0 -1
  366. package/embedded-knowledge/indexes/tags/error-text.json +0 -1
  367. package/embedded-knowledge/indexes/tags/etag.json +0 -1
  368. package/embedded-knowledge/indexes/tags/event-bridge.json +0 -1
  369. package/embedded-knowledge/indexes/tags/event-payload.json +0 -1
  370. package/embedded-knowledge/indexes/tags/event-routing.json +0 -1
  371. package/embedded-knowledge/indexes/tags/events.json +0 -1
  372. package/embedded-knowledge/indexes/tags/execution-flow.json +0 -1
  373. package/embedded-knowledge/indexes/tags/expressions.json +0 -1
  374. package/embedded-knowledge/indexes/tags/extensibility.json +0 -1
  375. package/embedded-knowledge/indexes/tags/extensions.json +0 -1
  376. package/embedded-knowledge/indexes/tags/facade-composition.json +0 -1
  377. package/embedded-knowledge/indexes/tags/facade-pattern.json +0 -1
  378. package/embedded-knowledge/indexes/tags/field-control.json +0 -1
  379. package/embedded-knowledge/indexes/tags/field-exclusion.json +0 -1
  380. package/embedded-knowledge/indexes/tags/field-registration.json +0 -1
  381. package/embedded-knowledge/indexes/tags/field-state.json +0 -1
  382. package/embedded-knowledge/indexes/tags/field-validation.json +0 -1
  383. package/embedded-knowledge/indexes/tags/fielderror.json +0 -1
  384. package/embedded-knowledge/indexes/tags/fields.json +0 -1
  385. package/embedded-knowledge/indexes/tags/filtering.json +0 -1
  386. package/embedded-knowledge/indexes/tags/filters.json +0 -1
  387. package/embedded-knowledge/indexes/tags/formatting.json +0 -1
  388. package/embedded-knowledge/indexes/tags/generic-methods.json +0 -1
  389. package/embedded-knowledge/indexes/tags/http-status.json +0 -1
  390. package/embedded-knowledge/indexes/tags/if-statements.json +0 -1
  391. package/embedded-knowledge/indexes/tags/implementation.json +0 -1
  392. package/embedded-knowledge/indexes/tags/indentation.json +0 -1
  393. package/embedded-knowledge/indexes/tags/index-summary.json +0 -277
  394. package/embedded-knowledge/indexes/tags/indexing.json +0 -1
  395. package/embedded-knowledge/indexes/tags/inheritance.json +0 -1
  396. package/embedded-knowledge/indexes/tags/integration.json +0 -1
  397. package/embedded-knowledge/indexes/tags/integrity-checking.json +0 -1
  398. package/embedded-knowledge/indexes/tags/intellisense.json +0 -1
  399. package/embedded-knowledge/indexes/tags/interface-design.json +0 -1
  400. package/embedded-knowledge/indexes/tags/interface-segregation.json +0 -1
  401. package/embedded-knowledge/indexes/tags/isolation.json +0 -1
  402. package/embedded-knowledge/indexes/tags/job-processing.json +0 -1
  403. package/embedded-knowledge/indexes/tags/keyboard-navigation.json +0 -1
  404. package/embedded-knowledge/indexes/tags/keywords.json +0 -1
  405. package/embedded-knowledge/indexes/tags/legacy-modernization.json +0 -1
  406. package/embedded-knowledge/indexes/tags/line-breaks.json +0 -1
  407. package/embedded-knowledge/indexes/tags/line-organization.json +0 -1
  408. package/embedded-knowledge/indexes/tags/line-positioning.json +0 -1
  409. package/embedded-knowledge/indexes/tags/localization.json +0 -1
  410. package/embedded-knowledge/indexes/tags/logging.json +0 -1
  411. package/embedded-knowledge/indexes/tags/loose-coupling.json +0 -1
  412. package/embedded-knowledge/indexes/tags/maintainability.json +0 -1
  413. package/embedded-knowledge/indexes/tags/memory-management.json +0 -1
  414. package/embedded-knowledge/indexes/tags/memory-optimization.json +0 -1
  415. package/embedded-knowledge/indexes/tags/memory.json +0 -1
  416. package/embedded-knowledge/indexes/tags/message-design.json +0 -1
  417. package/embedded-knowledge/indexes/tags/message-formatting.json +0 -1
  418. package/embedded-knowledge/indexes/tags/message-patterns.json +0 -1
  419. package/embedded-knowledge/indexes/tags/metadata-driven.json +0 -1
  420. package/embedded-knowledge/indexes/tags/method-comparison.json +0 -1
  421. package/embedded-knowledge/indexes/tags/module-architecture.json +0 -1
  422. package/embedded-knowledge/indexes/tags/module-validation.json +0 -1
  423. package/embedded-knowledge/indexes/tags/monitoring.json +0 -1
  424. package/embedded-knowledge/indexes/tags/multi-layer-facade.json +0 -1
  425. package/embedded-knowledge/indexes/tags/multi-tenancy.json +0 -1
  426. package/embedded-knowledge/indexes/tags/multiple-values.json +0 -1
  427. package/embedded-knowledge/indexes/tags/naming-conventions.json +0 -1
  428. package/embedded-knowledge/indexes/tags/naming.json +0 -1
  429. package/embedded-knowledge/indexes/tags/navigation.json +0 -1
  430. package/embedded-knowledge/indexes/tags/nested-statements.json +0 -1
  431. package/embedded-knowledge/indexes/tags/no-series-conversion.json +0 -1
  432. package/embedded-knowledge/indexes/tags/no-series-validation.json +0 -1
  433. package/embedded-knowledge/indexes/tags/no-series.json +0 -1
  434. package/embedded-knowledge/indexes/tags/number-generation.json +0 -1
  435. package/embedded-knowledge/indexes/tags/object-documentation.json +0 -1
  436. package/embedded-knowledge/indexes/tags/odata.json +0 -1
  437. package/embedded-knowledge/indexes/tags/ondelete.json +0 -1
  438. package/embedded-knowledge/indexes/tags/onvalidate.json +0 -1
  439. package/embedded-knowledge/indexes/tags/operation-delegation.json +0 -1
  440. package/embedded-knowledge/indexes/tags/operation-safety.json +0 -1
  441. package/embedded-knowledge/indexes/tags/operators.json +0 -1
  442. package/embedded-knowledge/indexes/tags/optimization.json +0 -1
  443. package/embedded-knowledge/indexes/tags/order.json +0 -1
  444. package/embedded-knowledge/indexes/tags/organization.json +0 -1
  445. package/embedded-knowledge/indexes/tags/pages.json +0 -1
  446. package/embedded-knowledge/indexes/tags/parameters.json +0 -1
  447. package/embedded-knowledge/indexes/tags/patterns.json +0 -1
  448. package/embedded-knowledge/indexes/tags/performance-optimization.json +0 -1
  449. package/embedded-knowledge/indexes/tags/performance.json +0 -1
  450. package/embedded-knowledge/indexes/tags/placement.json +0 -1
  451. package/embedded-knowledge/indexes/tags/posting-codeunits.json +0 -1
  452. package/embedded-knowledge/indexes/tags/posting.json +0 -1
  453. package/embedded-knowledge/indexes/tags/preconditions.json +0 -1
  454. package/embedded-knowledge/indexes/tags/primary-key.json +0 -1
  455. package/embedded-knowledge/indexes/tags/privacy.json +0 -1
  456. package/embedded-knowledge/indexes/tags/process-automation.json +0 -1
  457. package/embedded-knowledge/indexes/tags/production.json +0 -1
  458. package/embedded-knowledge/indexes/tags/productivity.json +0 -1
  459. package/embedded-knowledge/indexes/tags/query-performance.json +0 -1
  460. package/embedded-knowledge/indexes/tags/queue-management.json +0 -1
  461. package/embedded-knowledge/indexes/tags/ranges.json +0 -1
  462. package/embedded-knowledge/indexes/tags/readability.json +0 -1
  463. package/embedded-knowledge/indexes/tags/record-access.json +0 -1
  464. package/embedded-knowledge/indexes/tags/record-methods.json +0 -1
  465. package/embedded-knowledge/indexes/tags/refactoring.json +0 -1
  466. package/embedded-knowledge/indexes/tags/reference.json +0 -1
  467. package/embedded-knowledge/indexes/tags/repeat-loops.json +0 -1
  468. package/embedded-knowledge/indexes/tags/repeat-statement.json +0 -1
  469. package/embedded-knowledge/indexes/tags/runtime-errors.json +0 -1
  470. package/embedded-knowledge/indexes/tags/runtime.json +0 -1
  471. package/embedded-knowledge/indexes/tags/safeguards.json +0 -1
  472. package/embedded-knowledge/indexes/tags/security.json +0 -1
  473. package/embedded-knowledge/indexes/tags/sequence-management.json +0 -1
  474. package/embedded-knowledge/indexes/tags/serialization.json +0 -1
  475. package/embedded-knowledge/indexes/tags/session-logmessage.json +0 -1
  476. package/embedded-knowledge/indexes/tags/session.json +0 -1
  477. package/embedded-knowledge/indexes/tags/setloadfields.json +0 -1
  478. package/embedded-knowledge/indexes/tags/shortcuts.json +0 -1
  479. package/embedded-knowledge/indexes/tags/sift.json +0 -1
  480. package/embedded-knowledge/indexes/tags/singleinstance.json +0 -1
  481. package/embedded-knowledge/indexes/tags/spacing.json +0 -1
  482. package/embedded-knowledge/indexes/tags/sql-translation.json +0 -1
  483. package/embedded-knowledge/indexes/tags/standards.json +0 -1
  484. package/embedded-knowledge/indexes/tags/statements.json +0 -1
  485. package/embedded-knowledge/indexes/tags/streaming.json +0 -1
  486. package/embedded-knowledge/indexes/tags/strong-typing.json +0 -1
  487. package/embedded-knowledge/indexes/tags/structural-patterns.json +0 -1
  488. package/embedded-knowledge/indexes/tags/structure.json +0 -1
  489. package/embedded-knowledge/indexes/tags/subscribers.json +0 -1
  490. package/embedded-knowledge/indexes/tags/switch.json +0 -1
  491. package/embedded-knowledge/indexes/tags/symbol-search.json +0 -1
  492. package/embedded-knowledge/indexes/tags/syntax.json +0 -1
  493. package/embedded-knowledge/indexes/tags/systemid.json +0 -1
  494. package/embedded-knowledge/indexes/tags/table-configuration.json +0 -1
  495. package/embedded-knowledge/indexes/tags/table-events.json +0 -1
  496. package/embedded-knowledge/indexes/tags/table-keys.json +0 -1
  497. package/embedded-knowledge/indexes/tags/table-safety.json +0 -1
  498. package/embedded-knowledge/indexes/tags/task-scheduler.json +0 -1
  499. package/embedded-knowledge/indexes/tags/telemetry.json +0 -1
  500. package/embedded-knowledge/indexes/tags/template-method.json +0 -1
  501. package/embedded-knowledge/indexes/tags/temporary-tables.json +0 -1
  502. package/embedded-knowledge/indexes/tags/testfield.json +0 -1
  503. package/embedded-knowledge/indexes/tags/tradeoffs.json +0 -1
  504. package/embedded-knowledge/indexes/tags/triggers.json +0 -1
  505. package/embedded-knowledge/indexes/tags/troubleshooting.json +0 -1
  506. package/embedded-knowledge/indexes/tags/type-safety.json +0 -1
  507. package/embedded-knowledge/indexes/tags/url-structure.json +0 -1
  508. package/embedded-knowledge/indexes/tags/user-experience.json +0 -1
  509. package/embedded-knowledge/indexes/tags/user-feedback.json +0 -1
  510. package/embedded-knowledge/indexes/tags/user-interface.json +0 -1
  511. package/embedded-knowledge/indexes/tags/validation-feedback.json +0 -1
  512. package/embedded-knowledge/indexes/tags/validation.json +0 -1
  513. package/embedded-knowledge/indexes/tags/variables.json +0 -1
  514. package/embedded-knowledge/indexes/tags/verbosity.json +0 -1
  515. package/embedded-knowledge/indexes/tags/vs-code.json +0 -1
  516. package/embedded-knowledge/indexes/tags/web-services.json +0 -1
  517. package/embedded-knowledge/indexes/tags/workflow-management.json +0 -1
  518. package/embedded-knowledge/indexes/tags/workflow-optimization.json +0 -1
  519. package/embedded-knowledge/indexes/tags/workflow-templates.json +0 -1
  520. package/embedded-knowledge/indexes/tags/workspace.json +0 -1
  521. package/embedded-knowledge/indexes/tags/xml-documentation.json +0 -1
  522. package/embedded-knowledge/indexes/topic-relationships.json +0 -128
  523. package/embedded-knowledge/methodologies/index.json +0 -81
  524. package/embedded-knowledge/methodologies/phases/analysis-full.md +0 -208
  525. package/embedded-knowledge/methodologies/phases/analysis-quick.md +0 -44
  526. package/embedded-knowledge/methodologies/phases/analysis.md +0 -182
  527. package/embedded-knowledge/methodologies/phases/execution-validation-full.md +0 -174
  528. package/embedded-knowledge/methodologies/phases/execution-validation-quick.md +0 -31
  529. package/embedded-knowledge/methodologies/phases/execution-validation.md +0 -174
  530. package/embedded-knowledge/methodologies/phases/performance-full.md +0 -211
  531. package/embedded-knowledge/methodologies/phases/performance-quick.md +0 -32
  532. package/embedded-knowledge/methodologies/phases/performance.md +0 -211
  533. package/embedded-knowledge/methodologies/phases/verification-full.md +0 -162
  534. package/embedded-knowledge/methodologies/phases/verification-quick.md +0 -48
  535. package/embedded-knowledge/methodologies/phases/verification.md +0 -146
  536. package/embedded-knowledge/methodologies/workflow-enforcement.md +0 -142
  537. package/embedded-knowledge/methodologies/workflows/code-review-workflow.md +0 -99
  538. package/embedded-knowledge/specialists/alex-architect.md +0 -216
  539. package/embedded-knowledge/specialists/casey-copilot.md +0 -226
  540. package/embedded-knowledge/specialists/chris-config.md +0 -267
  541. package/embedded-knowledge/specialists/dean-debug.md +0 -222
  542. package/embedded-knowledge/specialists/eva-errors.md +0 -235
  543. package/embedded-knowledge/specialists/jordan-bridge.md +0 -235
  544. package/embedded-knowledge/specialists/logan-legacy.md +0 -209
  545. package/embedded-knowledge/specialists/maya-mentor.md +0 -211
  546. package/embedded-knowledge/specialists/morgan-market.md +0 -226
  547. package/embedded-knowledge/specialists/quinn-tester.md +0 -235
  548. package/embedded-knowledge/specialists/roger-reviewer.md +0 -234
  549. package/embedded-knowledge/specialists/sam-coder.md +0 -359
  550. package/embedded-knowledge/specialists/seth-security.md +0 -235
  551. package/embedded-knowledge/specialists/taylor-docs.md +0 -257
  552. package/embedded-knowledge/specialists/uma-ux.md +0 -235
@@ -1,548 +0,0 @@
1
- # API Page Field Control Selection Strategy - AL Code Sample
2
-
3
- ## Basic Field Control Selection
4
-
5
- ```al
6
- page 50110 "Item API"
7
- {
8
- PageType = API;
9
- APIPublisher = 'contoso';
10
- APIGroup = 'inventory';
11
- APIVersion = 'v1.0';
12
- EntityName = 'item';
13
- EntitySetName = 'items';
14
- SourceTable = Item;
15
- DelayedInsert = true;
16
-
17
- layout
18
- {
19
- area(Content)
20
- {
21
- repeater(Records)
22
- {
23
- // Primary identifier - always include SystemId
24
- field(id; Rec.SystemId)
25
- {
26
- Caption = 'Id';
27
- Editable = false; // System-generated, read-only
28
- }
29
-
30
- // Business key - essential for integration
31
- field(number; Rec."No.")
32
- {
33
- Caption = 'Number';
34
- // Editable on insert, read-only after
35
- Editable = Rec."No." = '';
36
- }
37
-
38
- // Core business fields - commonly queried
39
- field(displayName; Rec.Description)
40
- {
41
- Caption = 'Display Name';
42
- }
43
-
44
- field(type; Rec.Type)
45
- {
46
- Caption = 'Type';
47
- }
48
-
49
- field(unitPrice; Rec."Unit Price")
50
- {
51
- Caption = 'Unit Price';
52
- }
53
-
54
- // Inventory tracking - frequently needed
55
- field(inventory; Rec.Inventory)
56
- {
57
- Caption = 'Inventory';
58
- Editable = false; // Calculated field
59
- }
60
-
61
- // Status field - important for business logic
62
- field(blocked; Rec.Blocked)
63
- {
64
- Caption = 'Blocked';
65
- }
66
-
67
- // Timestamps - useful for synchronization
68
- field(lastModifiedDateTime; Rec.SystemModifiedAt)
69
- {
70
- Caption = 'Last Modified Date Time';
71
- Editable = false;
72
- }
73
- }
74
- }
75
- }
76
- }
77
- ```
78
-
79
- ## Advanced Field Selection with Business Logic
80
-
81
- ```al
82
- page 50111 "Customer API Advanced"
83
- {
84
- PageType = API;
85
- APIPublisher = 'contoso';
86
- APIGroup = 'customers';
87
- APIVersion = 'v2.0';
88
- EntityName = 'customer';
89
- EntitySetName = 'customers';
90
- SourceTable = Customer;
91
- DelayedInsert = true;
92
-
93
- layout
94
- {
95
- area(Content)
96
- {
97
- repeater(Records)
98
- {
99
- field(id; Rec.SystemId)
100
- {
101
- Caption = 'Id';
102
- }
103
-
104
- field(number; Rec."No.")
105
- {
106
- Caption = 'Number';
107
- trigger OnValidate()
108
- begin
109
- // Custom validation for API
110
- if StrLen(Rec."No.") < 3 then
111
- Error('Customer number must be at least 3 characters');
112
- end;
113
- }
114
-
115
- field(displayName; Rec.Name)
116
- {
117
- Caption = 'Display Name';
118
- NotBlank = true; // Required field enforcement
119
- }
120
-
121
- // Complex field with business logic
122
- field(creditLimit; Rec."Credit Limit (LCY)")
123
- {
124
- Caption = 'Credit Limit';
125
- trigger OnValidate()
126
- begin
127
- // Business rule: Credit limit validation
128
- if Rec."Credit Limit (LCY)" < 0 then
129
- Error('Credit limit cannot be negative');
130
-
131
- if Rec."Credit Limit (LCY)" > 1000000 then
132
- if not ConfirmManagement.GetResponseOrDefault('Credit limit exceeds 1M. Continue?', false) then
133
- Error('Credit limit validation failed');
134
- end;
135
- }
136
-
137
- // Calculated field not stored in table
138
- field(currentBalance; CurrentBalance)
139
- {
140
- Caption = 'Current Balance';
141
- Editable = false;
142
-
143
- trigger OnLookup(var Text: Text): Boolean
144
- begin
145
- // Navigate to customer ledger entries
146
- CustLedgEntry.SetRange("Customer No.", Rec."No.");
147
- if Page.RunModal(Page::"Customer Ledger Entries", CustLedgEntry) = Action::LookupOK then
148
- exit(true);
149
- end;
150
- }
151
-
152
- // Address fields - grouped for related data
153
- field(addressLine1; Rec.Address)
154
- {
155
- Caption = 'Address Line 1';
156
- }
157
-
158
- field(addressLine2; Rec."Address 2")
159
- {
160
- Caption = 'Address Line 2';
161
- }
162
-
163
- field(city; Rec.City)
164
- {
165
- Caption = 'City';
166
- }
167
-
168
- field(state; Rec.County)
169
- {
170
- Caption = 'State';
171
- }
172
-
173
- field(postalCode; Rec."Post Code")
174
- {
175
- Caption = 'Postal Code';
176
- trigger OnValidate()
177
- begin
178
- // Postal code format validation
179
- ValidatePostalCode(Rec."Post Code", Rec."Country/Region Code");
180
- end;
181
- }
182
-
183
- field(countryCode; Rec."Country/Region Code")
184
- {
185
- Caption = 'Country Code';
186
- }
187
-
188
- // Contact information
189
- field(phoneNumber; Rec."Phone No.")
190
- {
191
- Caption = 'Phone Number';
192
- ExtendedDatatype = PhoneNo;
193
- }
194
-
195
- field(email; Rec."E-Mail")
196
- {
197
- Caption = 'Email';
198
- ExtendedDatatype = EMail;
199
- }
200
-
201
- // Financial fields
202
- field(paymentTermsId; PaymentTermsId)
203
- {
204
- Caption = 'Payment Terms Id';
205
-
206
- trigger OnValidate()
207
- begin
208
- ValidatePaymentTermsId();
209
- end;
210
-
211
- trigger OnLookup(var Text: Text): Boolean
212
- begin
213
- exit(LookupPaymentTerms(Text));
214
- end;
215
- }
216
-
217
- field(paymentMethodId; PaymentMethodId)
218
- {
219
- Caption = 'Payment Method Id';
220
- }
221
-
222
- // Status and control fields
223
- field(blocked; Rec.Blocked)
224
- {
225
- Caption = 'Blocked';
226
- }
227
-
228
- field(lastModifiedDateTime; Rec.SystemModifiedAt)
229
- {
230
- Caption = 'Last Modified Date Time';
231
- Editable = false;
232
- }
233
- }
234
- }
235
- }
236
-
237
- var
238
- CustLedgEntry: Record "Cust. Ledger Entry";
239
- ConfirmManagement: Codeunit "Confirm Management";
240
- CurrentBalance: Decimal;
241
- PaymentTermsId: Guid;
242
- PaymentMethodId: Guid;
243
-
244
- trigger OnAfterGetRecord()
245
- begin
246
- // Calculate current balance for each record
247
- CalcCurrentBalance();
248
- GetPaymentTermsId();
249
- GetPaymentMethodId();
250
- end;
251
-
252
- local procedure CalcCurrentBalance()
253
- begin
254
- Rec.CalcFields("Balance (LCY)");
255
- CurrentBalance := Rec."Balance (LCY)";
256
- end;
257
-
258
- local procedure ValidatePostalCode(PostalCode: Code[20]; CountryCode: Code[10])
259
- var
260
- PostCodeRegex: Codeunit Regex;
261
- begin
262
- // Example validation for US postal codes
263
- if CountryCode = 'US' then
264
- if not PostCodeRegex.IsMatch(PostalCode, '^\d{5}(-\d{4})?$') then
265
- Error('Invalid US postal code format');
266
- end;
267
-
268
- local procedure ValidatePaymentTermsId()
269
- var
270
- PaymentTerms: Record "Payment Terms";
271
- begin
272
- if IsNullGuid(PaymentTermsId) then
273
- Rec."Payment Terms Code" := ''
274
- else begin
275
- PaymentTerms.SetRange(SystemId, PaymentTermsId);
276
- if PaymentTerms.FindFirst() then
277
- Rec."Payment Terms Code" := PaymentTerms.Code
278
- else
279
- Error('Payment terms not found for specified ID');
280
- end;
281
- end;
282
- }
283
- ```
284
-
285
- ## Field Selection for Different API Scenarios
286
-
287
- ```al
288
- // Read-only reporting API - minimal field set
289
- page 50112 "Sales Statistics API"
290
- {
291
- PageType = API;
292
- APIPublisher = 'contoso';
293
- APIGroup = 'reporting';
294
- APIVersion = 'v1.0';
295
- EntityName = 'salesStatistic';
296
- EntitySetName = 'salesStatistics';
297
- SourceTable = Customer;
298
- DelayedInsert = true;
299
- Editable = false; // Read-only API
300
-
301
- layout
302
- {
303
- area(Content)
304
- {
305
- repeater(Records)
306
- {
307
- field(id; Rec.SystemId)
308
- {
309
- Caption = 'Id';
310
- }
311
-
312
- field(customerNumber; Rec."No.")
313
- {
314
- Caption = 'Customer Number';
315
- }
316
-
317
- field(customerName; Rec.Name)
318
- {
319
- Caption = 'Customer Name';
320
- }
321
-
322
- // Aggregated sales data - calculated fields only
323
- field(totalSalesYTD; TotalSalesYTD)
324
- {
325
- Caption = 'Total Sales YTD';
326
- }
327
-
328
- field(totalSalesLastYear; TotalSalesLastYear)
329
- {
330
- Caption = 'Total Sales Last Year';
331
- }
332
-
333
- field(averageOrderValue; AverageOrderValue)
334
- {
335
- Caption = 'Average Order Value';
336
- }
337
-
338
- field(orderCount; OrderCount)
339
- {
340
- Caption = 'Order Count';
341
- }
342
-
343
- field(lastOrderDate; LastOrderDate)
344
- {
345
- Caption = 'Last Order Date';
346
- }
347
- }
348
- }
349
- }
350
-
351
- var
352
- TotalSalesYTD: Decimal;
353
- TotalSalesLastYear: Decimal;
354
- AverageOrderValue: Decimal;
355
- OrderCount: Integer;
356
- LastOrderDate: Date;
357
-
358
- trigger OnAfterGetRecord()
359
- begin
360
- CalculateSalesStatistics();
361
- end;
362
-
363
- local procedure CalculateSalesStatistics()
364
- var
365
- SalesHeader: Record "Sales Header";
366
- SalesLine: Record "Sales Line";
367
- begin
368
- // Calculate YTD sales
369
- SalesLine.SetRange("Sell-to Customer No.", Rec."No.");
370
- SalesLine.SetRange("Document Type", SalesLine."Document Type"::Order);
371
- SalesLine.SetFilter("Shipment Date", '%1..%2', CalcDate('<-CY>', Today), Today);
372
- SalesLine.CalcSums("Line Amount");
373
- TotalSalesYTD := SalesLine."Line Amount";
374
-
375
- // Calculate last year sales
376
- SalesLine.SetFilter("Shipment Date", '%1..%2', CalcDate('<-1Y-CY>', Today), CalcDate('<-CY>', Today));
377
- SalesLine.CalcSums("Line Amount");
378
- TotalSalesLastYear := SalesLine."Line Amount";
379
-
380
- // Calculate order statistics
381
- SalesHeader.SetRange("Sell-to Customer No.", Rec."No.");
382
- SalesHeader.SetRange("Document Type", SalesHeader."Document Type"::Order);
383
- OrderCount := SalesHeader.Count;
384
-
385
- if OrderCount > 0 then
386
- AverageOrderValue := TotalSalesYTD / OrderCount;
387
-
388
- SalesHeader.SetCurrentKey("Order Date");
389
- SalesHeader.Ascending(false);
390
- if SalesHeader.FindFirst() then
391
- LastOrderDate := SalesHeader."Order Date";
392
- end;
393
- }
394
- ```
395
-
396
- ## Dynamic Field Selection Based on Context
397
-
398
- ```al
399
- // Context-aware field selection
400
- page 50113 "Item Context API"
401
- {
402
- PageType = API;
403
- APIPublisher = 'contoso';
404
- APIGroup = 'inventory';
405
- APIVersion = 'v2.0';
406
- EntityName = 'item';
407
- EntitySetName = 'items';
408
- SourceTable = Item;
409
- DelayedInsert = true;
410
-
411
- layout
412
- {
413
- area(Content)
414
- {
415
- repeater(Records)
416
- {
417
- field(id; Rec.SystemId)
418
- {
419
- Caption = 'Id';
420
- }
421
-
422
- field(number; Rec."No.")
423
- {
424
- Caption = 'Number';
425
- }
426
-
427
- field(description; Rec.Description)
428
- {
429
- Caption = 'Description';
430
- }
431
-
432
- // Conditionally visible based on item type
433
- field(inventoryPostingGroup; Rec."Inventory Posting Group")
434
- {
435
- Caption = 'Inventory Posting Group';
436
- Visible = Rec.Type = Rec.Type::Inventory;
437
- }
438
-
439
- field(unitCost; Rec."Unit Cost")
440
- {
441
- Caption = 'Unit Cost';
442
- Visible = ShowCostFields;
443
- }
444
-
445
- field(lastDirectCost; Rec."Last Direct Cost")
446
- {
447
- Caption = 'Last Direct Cost';
448
- Visible = ShowCostFields;
449
- }
450
-
451
- // Service-specific fields
452
- field(serviceItemGroup; Rec."Service Item Group")
453
- {
454
- Caption = 'Service Item Group';
455
- Visible = Rec.Type = Rec.Type::"Service";
456
- }
457
-
458
- // Manufacturing fields
459
- field(manufacturingPolicy; Rec."Manufacturing Policy")
460
- {
461
- Caption = 'Manufacturing Policy';
462
- Visible = ShowManufacturingFields;
463
- }
464
-
465
- field(replenishmentSystem; Rec."Replenishment System")
466
- {
467
- Caption = 'Replenishment System';
468
- Visible = ShowManufacturingFields;
469
- }
470
-
471
- // Conditionally calculated fields
472
- field(availableInventory; AvailableInventory)
473
- {
474
- Caption = 'Available Inventory';
475
- Visible = Rec.Type = Rec.Type::Inventory;
476
- }
477
- }
478
- }
479
- }
480
-
481
- var
482
- ShowCostFields: Boolean;
483
- ShowManufacturingFields: Boolean;
484
- AvailableInventory: Decimal;
485
-
486
- trigger OnOpenPage()
487
- begin
488
- // Determine field visibility based on user permissions or setup
489
- ShowCostFields := HasCostPermissions();
490
- ShowManufacturingFields := HasManufacturingModule();
491
- end;
492
-
493
- trigger OnAfterGetRecord()
494
- begin
495
- if Rec.Type = Rec.Type::Inventory then
496
- CalculateAvailableInventory();
497
- end;
498
-
499
- local procedure HasCostPermissions(): Boolean
500
- var
501
- UserSetup: Record "User Setup";
502
- begin
503
- if UserSetup.Get(UserId) then
504
- exit(UserSetup."View Cost Information");
505
- exit(false);
506
- end;
507
-
508
- local procedure HasManufacturingModule(): Boolean
509
- var
510
- ManufacturingSetup: Record "Manufacturing Setup";
511
- begin
512
- exit(ManufacturingSetup.Get());
513
- end;
514
-
515
- local procedure CalculateAvailableInventory()
516
- begin
517
- Rec.CalcFields(Inventory, "Reserved Qty. on Inventory");
518
- AvailableInventory := Rec.Inventory - Rec."Reserved Qty. on Inventory";
519
- end;
520
- }
521
- ```
522
-
523
- ## Implementation Notes
524
-
525
- **Field Selection Principles:**
526
- - Always include SystemId for unique identification
527
- - Include business keys (No., Code) for integration
528
- - Select fields based on API purpose (CRUD vs reporting)
529
- - Consider performance impact of calculated fields
530
- - Group related fields together logically
531
-
532
- **Validation and Business Logic:**
533
- - Implement field-level validation in triggers
534
- - Use NotBlank for required fields
535
- - Handle complex validations in OnValidate triggers
536
- - Consider API-specific validation rules
537
-
538
- **Performance Considerations:**
539
- - Avoid FlowFields in high-volume scenarios
540
- - Calculate complex fields only when needed
541
- - Use appropriate field visibility to reduce payload
542
- - Consider caching calculated values
543
-
544
- **Security and Permissions:**
545
- - Hide sensitive fields based on user permissions
546
- - Implement field-level security as needed
547
- - Consider data classification requirements
548
- - Validate user access to restricted information