bc-code-intelligence-mcp 1.3.2 → 1.3.4

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 (567) hide show
  1. package/README.md +1 -0
  2. package/dist/config/test-enhanced-layer-service.js +10 -10
  3. package/dist/config/test-enhanced-layer-service.js.map +1 -1
  4. package/dist/dev/hot-reload.d.ts +2 -2
  5. package/dist/dev/hot-reload.d.ts.map +1 -1
  6. package/dist/dev/hot-reload.js.map +1 -1
  7. package/dist/index.d.ts +0 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +43 -41
  10. package/dist/index.js.map +1 -1
  11. package/dist/layers/index.d.ts +1 -1
  12. package/dist/layers/index.d.ts.map +1 -1
  13. package/dist/layers/index.js +1 -1
  14. package/dist/layers/index.js.map +1 -1
  15. package/dist/layers/layer-service.d.ts.map +1 -1
  16. package/dist/layers/layer-service.js +4 -1
  17. package/dist/layers/layer-service.js.map +1 -1
  18. package/dist/search/intelligent-search.d.ts.map +1 -1
  19. package/dist/search/intelligent-search.js +5 -2
  20. package/dist/search/intelligent-search.js.map +1 -1
  21. package/dist/services/code-analysis-service.d.ts.map +1 -1
  22. package/dist/services/code-analysis-service.js +8 -1
  23. package/dist/services/code-analysis-service.js.map +1 -1
  24. package/dist/services/knowledge-service.d.ts +21 -10
  25. package/dist/services/knowledge-service.d.ts.map +1 -1
  26. package/dist/services/knowledge-service.js +82 -59
  27. package/dist/services/knowledge-service.js.map +1 -1
  28. package/dist/services/multi-content-layer-service.d.ts +90 -0
  29. package/dist/services/multi-content-layer-service.d.ts.map +1 -1
  30. package/dist/services/multi-content-layer-service.js +380 -0
  31. package/dist/services/multi-content-layer-service.js.map +1 -1
  32. package/dist/services/roleplay-engine.d.ts +1 -1
  33. package/dist/services/roleplay-engine.d.ts.map +1 -1
  34. package/dist/services/roleplay-engine.js +40 -12
  35. package/dist/services/roleplay-engine.js.map +1 -1
  36. package/dist/services/workflow-service.d.ts +11 -3
  37. package/dist/services/workflow-service.d.ts.map +1 -1
  38. package/dist/services/workflow-service.js +119 -78
  39. package/dist/services/workflow-service.js.map +1 -1
  40. package/dist/streamlined-handlers.d.ts +31 -2
  41. package/dist/streamlined-handlers.d.ts.map +1 -1
  42. package/dist/streamlined-handlers.js +152 -110
  43. package/dist/streamlined-handlers.js.map +1 -1
  44. package/dist/streamlined-tools.d.ts +12 -0
  45. package/dist/streamlined-tools.d.ts.map +1 -1
  46. package/dist/streamlined-tools.js +11 -6
  47. package/dist/streamlined-tools.js.map +1 -1
  48. package/dist/tools/specialist-tools.d.ts.map +1 -1
  49. package/dist/tools/specialist-tools.js +23 -13
  50. package/dist/tools/specialist-tools.js.map +1 -1
  51. package/dist/types/bc-knowledge.d.ts +10 -7
  52. package/dist/types/bc-knowledge.d.ts.map +1 -1
  53. package/dist/types/bc-knowledge.js +23 -1
  54. package/dist/types/bc-knowledge.js.map +1 -1
  55. package/dist/types/roleplay-types.d.ts +1 -0
  56. package/dist/types/roleplay-types.d.ts.map +1 -1
  57. package/package.json +13 -4
  58. package/embedded-knowledge/.github/ISSUE_TEMPLATE/bug-report.md +0 -24
  59. package/embedded-knowledge/.github/ISSUE_TEMPLATE/content-improvement.md +0 -24
  60. package/embedded-knowledge/.github/ISSUE_TEMPLATE/knowledge-request.md +0 -30
  61. package/embedded-knowledge/AGENTS.md +0 -178
  62. package/embedded-knowledge/CONTRIBUTING.md +0 -58
  63. package/embedded-knowledge/LICENSE +0 -21
  64. package/embedded-knowledge/README.md +0 -32
  65. package/embedded-knowledge/domains/alex-architect/api-delegate-operation-pattern.md +0 -90
  66. package/embedded-knowledge/domains/alex-architect/api-fieldset-registration-pattern.md +0 -113
  67. package/embedded-knowledge/domains/alex-architect/api-interface-design-patterns.md +0 -101
  68. package/embedded-knowledge/domains/alex-architect/api-page-development-patterns.md +0 -87
  69. package/embedded-knowledge/domains/alex-architect/complex-facade-patterns.md +0 -155
  70. package/embedded-knowledge/domains/alex-architect/facade-pattern-al-implementation.md +0 -138
  71. package/embedded-knowledge/domains/alex-architect/facade-pattern-external-api.md +0 -79
  72. package/embedded-knowledge/domains/alex-architect/samples/api-delegate-operation.md +0 -280
  73. package/embedded-knowledge/domains/alex-architect/samples/api-fieldset-registration.md +0 -200
  74. package/embedded-knowledge/domains/alex-architect/samples/api-interface-design.md +0 -565
  75. package/embedded-knowledge/domains/alex-architect/samples/api-page-implementation.md +0 -665
  76. package/embedded-knowledge/domains/alex-architect/samples/complex-facade-patterns.md +0 -325
  77. package/embedded-knowledge/domains/alex-architect/samples/facade-pattern-al.md +0 -696
  78. package/embedded-knowledge/domains/alex-architect/samples/facade-pattern.md +0 -320
  79. package/embedded-knowledge/domains/alex-architect/samples/subscriber-organization.md +0 -102
  80. package/embedded-knowledge/domains/alex-architect/samples/systemid-integration.md +0 -433
  81. package/embedded-knowledge/domains/alex-architect/subscriber-codeunit-size-optimization.md +0 -66
  82. package/embedded-knowledge/domains/alex-architect/systemid-integration.md +0 -115
  83. package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +0 -295
  84. package/embedded-knowledge/domains/dean-debug/case-statement-performance-best-practices.md +0 -86
  85. package/embedded-knowledge/domains/dean-debug/compound-statements-debugging.md +0 -96
  86. package/embedded-knowledge/domains/dean-debug/custom-dimensions-best-practices.md +0 -70
  87. package/embedded-knowledge/domains/dean-debug/custom-telemetry-implementation.md +0 -84
  88. package/embedded-knowledge/domains/dean-debug/deleteall-performance-tradeoff.md +0 -93
  89. package/embedded-knowledge/domains/dean-debug/deleteall-sql-performance.md +0 -73
  90. package/embedded-knowledge/domains/dean-debug/extension-telemetry-isolation.md +0 -78
  91. package/embedded-knowledge/domains/dean-debug/maintainsiftindex-property-behavior.md +0 -79
  92. package/embedded-knowledge/domains/dean-debug/no-series-implementation-patterns.md +0 -87
  93. package/embedded-knowledge/domains/dean-debug/no-series-module-patterns-bc24.md +0 -209
  94. package/embedded-knowledge/domains/dean-debug/no-series-validation-module-bc24.md +0 -246
  95. package/embedded-knowledge/domains/dean-debug/no-series-validation-patterns.md +0 -107
  96. package/embedded-knowledge/domains/dean-debug/odata-query-optimization.md +0 -105
  97. package/embedded-knowledge/domains/dean-debug/samples/bc24-no-series-conversion.md +0 -186
  98. package/embedded-knowledge/domains/dean-debug/samples/case-performance-optimization.md +0 -60
  99. package/embedded-knowledge/domains/dean-debug/samples/compound-statements-debugging.md +0 -139
  100. package/embedded-knowledge/domains/dean-debug/samples/custom-dimensions.md +0 -190
  101. package/embedded-knowledge/domains/dean-debug/samples/custom-telemetry.md +0 -516
  102. package/embedded-knowledge/domains/dean-debug/samples/deleteall-performance.md +0 -298
  103. package/embedded-knowledge/domains/dean-debug/samples/error-correlation.md +0 -324
  104. package/embedded-knowledge/domains/dean-debug/samples/extension-isolation.md +0 -344
  105. package/embedded-knowledge/domains/dean-debug/samples/logmessage-methods.md +0 -137
  106. package/embedded-knowledge/domains/dean-debug/samples/maintainsiftindex-examples.md +0 -340
  107. package/embedded-knowledge/domains/dean-debug/samples/no-series-implementation.md +0 -810
  108. package/embedded-knowledge/domains/dean-debug/samples/no-series-module-bc24.md +0 -86
  109. package/embedded-knowledge/domains/dean-debug/samples/no-series-validation-module-bc24.md +0 -110
  110. package/embedded-knowledge/domains/dean-debug/samples/no-series-validation.md +0 -758
  111. package/embedded-knowledge/domains/dean-debug/samples/odata-query-optimization.md +0 -665
  112. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-case.md +0 -316
  113. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-filters.md +0 -223
  114. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-filter-exclusion.md +0 -149
  115. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-optimization.md +0 -412
  116. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-performance.md +0 -211
  117. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-primary-key.md +0 -155
  118. package/embedded-knowledge/domains/dean-debug/samples/sift-technology-fundamentals.md +0 -475
  119. package/embedded-knowledge/domains/dean-debug/samples/singleinstance-subscribers.md +0 -238
  120. package/embedded-knowledge/domains/dean-debug/samples/table-event-batching.md +0 -97
  121. package/embedded-knowledge/domains/dean-debug/samples/table-key-requirements.md +0 -666
  122. package/embedded-knowledge/domains/dean-debug/samples/telemetry-performance.md +0 -319
  123. package/embedded-knowledge/domains/dean-debug/samples/verbosity-strategy.md +0 -236
  124. package/embedded-knowledge/domains/dean-debug/session-logmessage-methods.md +0 -59
  125. package/embedded-knowledge/domains/dean-debug/setloadfields-filter-field-exclusion.md +0 -67
  126. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-impact.md +0 -70
  127. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-optimization.md +0 -90
  128. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-case-statements.md +0 -87
  129. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-filters.md +0 -70
  130. package/embedded-knowledge/domains/dean-debug/setloadfields-primary-key-optimization.md +0 -74
  131. package/embedded-knowledge/domains/dean-debug/sift-technology-fundamentals.md +0 -81
  132. package/embedded-knowledge/domains/dean-debug/subscriber-singleinstance-performance.md +0 -56
  133. package/embedded-knowledge/domains/dean-debug/table-event-batch-operation-impact.md +0 -66
  134. package/embedded-knowledge/domains/dean-debug/table-key-requirements.md +0 -79
  135. package/embedded-knowledge/domains/dean-debug/telemetry-error-correlation.md +0 -78
  136. package/embedded-knowledge/domains/dean-debug/telemetry-performance-considerations.md +0 -83
  137. package/embedded-knowledge/domains/dean-debug/telemetry-verbosity-strategy.md +0 -76
  138. package/embedded-knowledge/domains/dean-debug/testfield-performance.md +0 -104
  139. package/embedded-knowledge/domains/eva-errors/fielderror-default-messages.md +0 -145
  140. package/embedded-knowledge/domains/eva-errors/fielderror-message-construction.md +0 -104
  141. package/embedded-knowledge/domains/eva-errors/fielderror-method-syntax.md +0 -114
  142. package/embedded-knowledge/domains/eva-errors/samples/fielderror-default-messages.md +0 -356
  143. package/embedded-knowledge/domains/eva-errors/samples/fielderror-syntax.md +0 -256
  144. package/embedded-knowledge/domains/eva-errors/samples/table-safety-validation-patterns.md +0 -101
  145. package/embedded-knowledge/domains/eva-errors/samples/testfield-error-handling.md +0 -108
  146. package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +0 -80
  147. package/embedded-knowledge/domains/jordan-bridge/al-event-subscriber-architecture.md +0 -98
  148. package/embedded-knowledge/domains/jordan-bridge/automatic-registration.md +0 -123
  149. package/embedded-knowledge/domains/jordan-bridge/business-process-template-patterns.md +0 -96
  150. package/embedded-knowledge/domains/jordan-bridge/error-response-patterns.md +0 -115
  151. package/embedded-knowledge/domains/jordan-bridge/etag-implementation.md +0 -115
  152. package/embedded-knowledge/domains/jordan-bridge/field-control-selection.md +0 -114
  153. package/embedded-knowledge/domains/jordan-bridge/samples/al-event-subscriber-architecture.md +0 -395
  154. package/embedded-knowledge/domains/jordan-bridge/samples/api-error-responses.md +0 -479
  155. package/embedded-knowledge/domains/jordan-bridge/samples/api-field-control.md +0 -548
  156. package/embedded-knowledge/domains/jordan-bridge/samples/api-url-naming.md +0 -287
  157. package/embedded-knowledge/domains/jordan-bridge/samples/business-process-templates.md +0 -434
  158. package/embedded-knowledge/domains/jordan-bridge/samples/etag-implementation.md +0 -508
  159. package/embedded-knowledge/domains/jordan-bridge/samples/task-scheduler-pattern.md +0 -615
  160. package/embedded-knowledge/domains/jordan-bridge/task-scheduler-pattern-implementation.md +0 -144
  161. package/embedded-knowledge/domains/jordan-bridge/url-structure-naming-patterns.md +0 -96
  162. package/embedded-knowledge/domains/maya-mentor/case-multiple-conditions-ranges.md +0 -124
  163. package/embedded-knowledge/domains/maya-mentor/case-statement-syntax-structure.md +0 -84
  164. package/embedded-knowledge/domains/maya-mentor/fielderror-syntax-usage.md +0 -75
  165. package/embedded-knowledge/domains/maya-mentor/fielderror-vs-testfield.md +0 -96
  166. package/embedded-knowledge/domains/maya-mentor/samples/case-statement-multiple-conditions.md +0 -385
  167. package/embedded-knowledge/domains/maya-mentor/samples/case-statement-syntax-structure.md +0 -72
  168. package/embedded-knowledge/domains/maya-mentor/samples/fielderror-syntax-usage.md +0 -48
  169. package/embedded-knowledge/domains/maya-mentor/samples/testfield-basic-syntax.md +0 -49
  170. package/embedded-knowledge/domains/maya-mentor/testfield-basic-syntax.md +0 -67
  171. package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +0 -119
  172. package/embedded-knowledge/domains/quinn-tester/rule-execution.md +0 -123
  173. package/embedded-knowledge/domains/quinn-tester/samples/case-error-handling.md +0 -64
  174. package/embedded-knowledge/domains/quinn-tester/samples/fielderror-message-construction.md +0 -60
  175. package/embedded-knowledge/domains/quinn-tester/samples/fielderror-validation-patterns.md +0 -83
  176. package/embedded-knowledge/domains/quinn-tester/samples/rule-execution.md +0 -716
  177. package/embedded-knowledge/domains/quinn-tester/samples/table-safety-validation-patterns.md +0 -101
  178. package/embedded-knowledge/domains/quinn-tester/samples/temporary-table-operation-validation.md +0 -91
  179. package/embedded-knowledge/domains/quinn-tester/table-safety-validation-patterns.md +0 -79
  180. package/embedded-knowledge/domains/quinn-tester/temporary-table-operation-validation.md +0 -79
  181. package/embedded-knowledge/domains/roger-reviewer/al-begin-end-block-structure.md +0 -89
  182. package/embedded-knowledge/domains/roger-reviewer/al-binary-operator-spacing.md +0 -76
  183. package/embedded-knowledge/domains/roger-reviewer/al-blank-line-organization.md +0 -76
  184. package/embedded-knowledge/domains/roger-reviewer/al-case-action-formatting.md +0 -76
  185. package/embedded-knowledge/domains/roger-reviewer/al-code-spacing-conventions.md +0 -81
  186. package/embedded-knowledge/domains/roger-reviewer/al-comment-spacing-standards.md +0 -76
  187. package/embedded-knowledge/domains/roger-reviewer/al-end-else-pairing.md +0 -75
  188. package/embedded-knowledge/domains/roger-reviewer/al-keyword-indentation-rules.md +0 -76
  189. package/embedded-knowledge/domains/roger-reviewer/al-line-start-keyword-positioning.md +0 -76
  190. package/embedded-knowledge/domains/roger-reviewer/al-separate-if-else-formatting.md +0 -76
  191. package/embedded-knowledge/domains/roger-reviewer/al-standard-abbreviations.md +0 -96
  192. package/embedded-knowledge/domains/roger-reviewer/al-statement-per-line-rule.md +0 -76
  193. package/embedded-knowledge/domains/roger-reviewer/al-unnecessary-else-elimination.md +0 -86
  194. package/embedded-knowledge/domains/roger-reviewer/al-variable-declaration-order.md +0 -90
  195. package/embedded-knowledge/domains/roger-reviewer/al-variable-naming-conventions.md +0 -82
  196. package/embedded-knowledge/domains/roger-reviewer/begin-block-statement-clarity.md +0 -78
  197. package/embedded-knowledge/domains/roger-reviewer/begin-end-positioning-patterns.md +0 -76
  198. package/embedded-knowledge/domains/roger-reviewer/binary-operator-line-positioning.md +0 -78
  199. package/embedded-knowledge/domains/roger-reviewer/boolean-expression-simplification-al.md +0 -100
  200. package/embedded-knowledge/domains/roger-reviewer/case-statement-error-handling-troubleshooting.md +0 -115
  201. package/embedded-knowledge/domains/roger-reviewer/compound-statement-readability.md +0 -124
  202. package/embedded-knowledge/domains/roger-reviewer/lonely-repeat-statement-pattern.md +0 -110
  203. package/embedded-knowledge/domains/roger-reviewer/samples/al-begin-end-blocks.md +0 -438
  204. package/embedded-knowledge/domains/roger-reviewer/samples/al-binary-operator-spacing.md +0 -255
  205. package/embedded-knowledge/domains/roger-reviewer/samples/al-comment-spacing-standards.md +0 -209
  206. package/embedded-knowledge/domains/roger-reviewer/samples/al-keyword-indentation-rules.md +0 -218
  207. package/embedded-knowledge/domains/roger-reviewer/samples/al-line-start-keyword-positioning.md +0 -218
  208. package/embedded-knowledge/domains/roger-reviewer/samples/al-separate-if-else-formatting.md +0 -280
  209. package/embedded-knowledge/domains/roger-reviewer/samples/al-statement-per-line-rule.md +0 -188
  210. package/embedded-knowledge/domains/roger-reviewer/samples/al-unnecessary-else-elimination.md +0 -245
  211. package/embedded-knowledge/domains/roger-reviewer/samples/al-variable-declaration-order.md +0 -244
  212. package/embedded-knowledge/domains/roger-reviewer/samples/begin-end-positioning.md +0 -278
  213. package/embedded-knowledge/domains/roger-reviewer/samples/boolean-simplification-examples.md +0 -484
  214. package/embedded-knowledge/domains/roger-reviewer/samples/case-error-handling.md +0 -64
  215. package/embedded-knowledge/domains/roger-reviewer/samples/compound-statement-readability.md +0 -107
  216. package/embedded-knowledge/domains/roger-reviewer/samples/lonely-repeat-examples.md +0 -280
  217. package/embedded-knowledge/domains/sam-coder/al-formatting-consistency-patterns.md +0 -75
  218. package/embedded-knowledge/domains/sam-coder/al-line-comment-formatting.md +0 -67
  219. package/embedded-knowledge/domains/sam-coder/al-lonely-repeat-pattern.md +0 -76
  220. package/embedded-knowledge/domains/sam-coder/al-named-parameter-pattern.md +0 -98
  221. package/embedded-knowledge/domains/sam-coder/al-object-navigation-shortcuts.md +0 -128
  222. package/embedded-knowledge/domains/sam-coder/al-readability-optimization.md +0 -75
  223. package/embedded-knowledge/domains/sam-coder/al-record-find-early-exit.md +0 -95
  224. package/embedded-knowledge/domains/sam-coder/command-queue-pattern-al.md +0 -141
  225. package/embedded-knowledge/domains/sam-coder/deleteall-alternative-implementation.md +0 -91
  226. package/embedded-knowledge/domains/sam-coder/deleteall-method-usage.md +0 -118
  227. package/embedded-knowledge/domains/sam-coder/deleteall-trigger-execution.md +0 -111
  228. package/embedded-knowledge/domains/sam-coder/event-bridge-pattern-al.md +0 -113
  229. package/embedded-knowledge/domains/sam-coder/event-payload-design-patterns.md +0 -127
  230. package/embedded-knowledge/domains/sam-coder/generic-method-patterns-al.md +0 -141
  231. package/embedded-knowledge/domains/sam-coder/manual-binding-conditional-subscribers.md +0 -66
  232. package/embedded-knowledge/domains/sam-coder/nested-compound-best-practices.md +0 -96
  233. package/embedded-knowledge/domains/sam-coder/samples/al-blank-line-organization.md +0 -161
  234. package/embedded-knowledge/domains/sam-coder/samples/al-case-action-formatting.md +0 -177
  235. package/embedded-knowledge/domains/sam-coder/samples/al-lonely-repeat-pattern.md +0 -239
  236. package/embedded-knowledge/domains/sam-coder/samples/al-named-parameter-pattern.md +0 -346
  237. package/embedded-knowledge/domains/sam-coder/samples/al-record-find-early-exit.md +0 -298
  238. package/embedded-knowledge/domains/sam-coder/samples/command-queue-pattern.md +0 -677
  239. package/embedded-knowledge/domains/sam-coder/samples/deleteall-alternative-implementation.md +0 -117
  240. package/embedded-knowledge/domains/sam-coder/samples/deleteall-triggers.md +0 -75
  241. package/embedded-knowledge/domains/sam-coder/samples/deleteall-usage.md +0 -169
  242. package/embedded-knowledge/domains/sam-coder/samples/event-bridge-pattern.md +0 -399
  243. package/embedded-knowledge/domains/sam-coder/samples/event-payload-design.md +0 -356
  244. package/embedded-knowledge/domains/sam-coder/samples/generic-method-patterns.md +0 -889
  245. package/embedded-knowledge/domains/sam-coder/samples/manual-binding.md +0 -84
  246. package/embedded-knowledge/domains/sam-coder/samples/nested-compound-best-practices.md +0 -127
  247. package/embedded-knowledge/domains/sam-coder/samples/single-to-compound-conversion.md +0 -89
  248. package/embedded-knowledge/domains/sam-coder/samples/template-method-pattern.md +0 -516
  249. package/embedded-knowledge/domains/sam-coder/samples/testfield-patterns.md +0 -61
  250. package/embedded-knowledge/domains/sam-coder/samples/type-safe-operations.md +0 -427
  251. package/embedded-knowledge/domains/sam-coder/single-to-compound-conversion.md +0 -122
  252. package/embedded-knowledge/domains/sam-coder/template-method-pattern-al.md +0 -96
  253. package/embedded-knowledge/domains/sam-coder/testfield-patterns.md +0 -101
  254. package/embedded-knowledge/domains/sam-coder/type-safe-operations-al.md +0 -149
  255. package/embedded-knowledge/domains/sam-coder/vs-code-al-keyboard-shortcuts.md +0 -107
  256. package/embedded-knowledge/domains/seth-security/al-temporary-table-safety.md +0 -95
  257. package/embedded-knowledge/domains/seth-security/api-permission-model.md +0 -115
  258. package/embedded-knowledge/domains/seth-security/istemporary-safeguard-pattern.md +0 -78
  259. package/embedded-knowledge/domains/seth-security/samples/al-temporary-table-safety.md +0 -373
  260. package/embedded-knowledge/domains/seth-security/samples/api-permission-model.md +0 -308
  261. package/embedded-knowledge/domains/taylor-docs/al-xml-documentation-structure.md +0 -79
  262. package/embedded-knowledge/domains/uma-ux/bc-action-shortcuts-syntax.md +0 -78
  263. package/embedded-knowledge/domains/uma-ux/shortcut-key-user-experience-design.md +0 -81
  264. package/embedded-knowledge/indexes/bc-version-matrix.json +0 -188
  265. package/embedded-knowledge/indexes/domain-catalog.json +0 -106
  266. package/embedded-knowledge/indexes/tags/abbreviations.json +0 -1
  267. package/embedded-knowledge/indexes/tags/abstraction.json +0 -1
  268. package/embedded-knowledge/indexes/tags/access-control.json +0 -1
  269. package/embedded-knowledge/indexes/tags/accessibility.json +0 -1
  270. package/embedded-knowledge/indexes/tags/actions.json +0 -1
  271. package/embedded-knowledge/indexes/tags/advanced-patterns.json +0 -1
  272. package/embedded-knowledge/indexes/tags/advanced.json +0 -1
  273. package/embedded-knowledge/indexes/tags/al-extension.json +0 -1
  274. package/embedded-knowledge/indexes/tags/al-generics.json +0 -1
  275. package/embedded-knowledge/indexes/tags/al-objects.json +0 -1
  276. package/embedded-knowledge/indexes/tags/al-syntax.json +0 -1
  277. package/embedded-knowledge/indexes/tags/algorithm-structure.json +0 -1
  278. package/embedded-knowledge/indexes/tags/alternatives.json +0 -1
  279. package/embedded-knowledge/indexes/tags/analytics.json +0 -1
  280. package/embedded-knowledge/indexes/tags/api-delegates.json +0 -1
  281. package/embedded-knowledge/indexes/tags/api-design.json +0 -1
  282. package/embedded-knowledge/indexes/tags/api-documentation.json +0 -1
  283. package/embedded-knowledge/indexes/tags/api-endpoints.json +0 -1
  284. package/embedded-knowledge/indexes/tags/api-extensibility.json +0 -1
  285. package/embedded-knowledge/indexes/tags/api-fieldsets.json +0 -1
  286. package/embedded-knowledge/indexes/tags/api-integration.json +0 -1
  287. package/embedded-knowledge/indexes/tags/api-interfaces.json +0 -1
  288. package/embedded-knowledge/indexes/tags/api-optimization.json +0 -1
  289. package/embedded-knowledge/indexes/tags/api-pages.json +0 -1
  290. package/embedded-knowledge/indexes/tags/api-patterns.json +0 -1
  291. package/embedded-knowledge/indexes/tags/api-permissions.json +0 -1
  292. package/embedded-knowledge/indexes/tags/api-responses.json +0 -1
  293. package/embedded-knowledge/indexes/tags/api-simplification.json +0 -1
  294. package/embedded-knowledge/indexes/tags/api.json +0 -1
  295. package/embedded-knowledge/indexes/tags/architecture.json +0 -1
  296. package/embedded-knowledge/indexes/tags/async-patterns.json +0 -1
  297. package/embedded-knowledge/indexes/tags/async-processing.json +0 -1
  298. package/embedded-knowledge/indexes/tags/automatic-registration.json +0 -1
  299. package/embedded-knowledge/indexes/tags/batch-operations.json +0 -1
  300. package/embedded-knowledge/indexes/tags/bc24-migration.json +0 -1
  301. package/embedded-knowledge/indexes/tags/begin-blocks.json +0 -1
  302. package/embedded-knowledge/indexes/tags/begin-end.json +0 -1
  303. package/embedded-knowledge/indexes/tags/behavioral-patterns.json +0 -1
  304. package/embedded-knowledge/indexes/tags/best-practices.json +0 -1
  305. package/embedded-knowledge/indexes/tags/binding.json +0 -1
  306. package/embedded-knowledge/indexes/tags/block-structure.json +0 -1
  307. package/embedded-knowledge/indexes/tags/blocks.json +0 -1
  308. package/embedded-knowledge/indexes/tags/boolean-expressions.json +0 -1
  309. package/embedded-knowledge/indexes/tags/branching.json +0 -1
  310. package/embedded-knowledge/indexes/tags/breaking-changes.json +0 -1
  311. package/embedded-knowledge/indexes/tags/breakpoints.json +0 -1
  312. package/embedded-knowledge/indexes/tags/business-foundation.json +0 -1
  313. package/embedded-knowledge/indexes/tags/business-infrastructure.json +0 -1
  314. package/embedded-knowledge/indexes/tags/business-process.json +0 -1
  315. package/embedded-knowledge/indexes/tags/business-rules.json +0 -1
  316. package/embedded-knowledge/indexes/tags/caching.json +0 -1
  317. package/embedded-knowledge/indexes/tags/case-statements.json +0 -1
  318. package/embedded-knowledge/indexes/tags/case.json +0 -1
  319. package/embedded-knowledge/indexes/tags/code-analysis.json +0 -1
  320. package/embedded-knowledge/indexes/tags/code-clarity.json +0 -1
  321. package/embedded-knowledge/indexes/tags/code-comprehension.json +0 -1
  322. package/embedded-knowledge/indexes/tags/code-conversion.json +0 -1
  323. package/embedded-knowledge/indexes/tags/code-formatting.json +0 -1
  324. package/embedded-knowledge/indexes/tags/code-organization.json +0 -1
  325. package/embedded-knowledge/indexes/tags/code-patterns.json +0 -1
  326. package/embedded-knowledge/indexes/tags/code-quality.json +0 -1
  327. package/embedded-knowledge/indexes/tags/code-reuse.json +0 -1
  328. package/embedded-knowledge/indexes/tags/code-simplification.json +0 -1
  329. package/embedded-knowledge/indexes/tags/code-standards.json +0 -1
  330. package/embedded-knowledge/indexes/tags/code-structure.json +0 -1
  331. package/embedded-knowledge/indexes/tags/code-style.json +0 -1
  332. package/embedded-knowledge/indexes/tags/codeunit-design.json +0 -1
  333. package/embedded-knowledge/indexes/tags/command-queue.json +0 -1
  334. package/embedded-knowledge/indexes/tags/comments.json +0 -1
  335. package/embedded-knowledge/indexes/tags/compile-time-validation.json +0 -1
  336. package/embedded-knowledge/indexes/tags/complex-facade.json +0 -1
  337. package/embedded-knowledge/indexes/tags/complexity-hiding.json +0 -1
  338. package/embedded-knowledge/indexes/tags/complexity-management.json +0 -1
  339. package/embedded-knowledge/indexes/tags/compound-statements.json +0 -1
  340. package/embedded-knowledge/indexes/tags/concurrency.json +0 -1
  341. package/embedded-knowledge/indexes/tags/conditional-logic.json +0 -1
  342. package/embedded-knowledge/indexes/tags/conditional.json +0 -1
  343. package/embedded-knowledge/indexes/tags/conflict-resolution.json +0 -1
  344. package/embedded-knowledge/indexes/tags/consistency.json +0 -1
  345. package/embedded-knowledge/indexes/tags/contract-design.json +0 -1
  346. package/embedded-knowledge/indexes/tags/control-flow.json +0 -1
  347. package/embedded-knowledge/indexes/tags/conversion-guide.json +0 -1
  348. package/embedded-knowledge/indexes/tags/correlation.json +0 -1
  349. package/embedded-knowledge/indexes/tags/custom-messages.json +0 -1
  350. package/embedded-knowledge/indexes/tags/data-access.json +0 -1
  351. package/embedded-knowledge/indexes/tags/data-exposure.json +0 -1
  352. package/embedded-knowledge/indexes/tags/data-integrity.json +0 -1
  353. package/embedded-knowledge/indexes/tags/data-loading.json +0 -1
  354. package/embedded-knowledge/indexes/tags/data-manipulation.json +0 -1
  355. package/embedded-knowledge/indexes/tags/data-modeling.json +0 -1
  356. package/embedded-knowledge/indexes/tags/data-patterns.json +0 -1
  357. package/embedded-knowledge/indexes/tags/data-protection.json +0 -1
  358. package/embedded-knowledge/indexes/tags/data-validation.json +0 -1
  359. package/embedded-knowledge/indexes/tags/database.json +0 -1
  360. package/embedded-knowledge/indexes/tags/debugging.json +0 -1
  361. package/embedded-knowledge/indexes/tags/decision-making.json +0 -1
  362. package/embedded-knowledge/indexes/tags/declaration.json +0 -1
  363. package/embedded-knowledge/indexes/tags/default-messages.json +0 -1
  364. package/embedded-knowledge/indexes/tags/defensive-programming.json +0 -1
  365. package/embedded-knowledge/indexes/tags/deleteall.json +0 -1
  366. package/embedded-knowledge/indexes/tags/dependencies.json +0 -1
  367. package/embedded-knowledge/indexes/tags/deployment.json +0 -1
  368. package/embedded-knowledge/indexes/tags/developer-productivity.json +0 -1
  369. package/embedded-knowledge/indexes/tags/development-workflow.json +0 -1
  370. package/embedded-knowledge/indexes/tags/diagnostics.json +0 -1
  371. package/embedded-knowledge/indexes/tags/dimensions.json +0 -1
  372. package/embedded-knowledge/indexes/tags/documentation.json +0 -1
  373. package/embedded-knowledge/indexes/tags/early-exit.json +0 -1
  374. package/embedded-knowledge/indexes/tags/else-clauses.json +0 -1
  375. package/embedded-knowledge/indexes/tags/end-statements.json +0 -1
  376. package/embedded-knowledge/indexes/tags/enterprise-patterns.json +0 -1
  377. package/embedded-knowledge/indexes/tags/entity-relationships.json +0 -1
  378. package/embedded-knowledge/indexes/tags/error-handling.json +0 -1
  379. package/embedded-knowledge/indexes/tags/error-messages.json +0 -1
  380. package/embedded-knowledge/indexes/tags/error-prevention.json +0 -1
  381. package/embedded-knowledge/indexes/tags/error-text.json +0 -1
  382. package/embedded-knowledge/indexes/tags/etag.json +0 -1
  383. package/embedded-knowledge/indexes/tags/event-bridge.json +0 -1
  384. package/embedded-knowledge/indexes/tags/event-payload.json +0 -1
  385. package/embedded-knowledge/indexes/tags/event-routing.json +0 -1
  386. package/embedded-knowledge/indexes/tags/events.json +0 -1
  387. package/embedded-knowledge/indexes/tags/execution-flow.json +0 -1
  388. package/embedded-knowledge/indexes/tags/expressions.json +0 -1
  389. package/embedded-knowledge/indexes/tags/extensibility.json +0 -1
  390. package/embedded-knowledge/indexes/tags/extensions.json +0 -1
  391. package/embedded-knowledge/indexes/tags/facade-composition.json +0 -1
  392. package/embedded-knowledge/indexes/tags/facade-pattern.json +0 -1
  393. package/embedded-knowledge/indexes/tags/field-control.json +0 -1
  394. package/embedded-knowledge/indexes/tags/field-exclusion.json +0 -1
  395. package/embedded-knowledge/indexes/tags/field-registration.json +0 -1
  396. package/embedded-knowledge/indexes/tags/field-state.json +0 -1
  397. package/embedded-knowledge/indexes/tags/field-validation.json +0 -1
  398. package/embedded-knowledge/indexes/tags/fielderror.json +0 -1
  399. package/embedded-knowledge/indexes/tags/fields.json +0 -1
  400. package/embedded-knowledge/indexes/tags/filtering.json +0 -1
  401. package/embedded-knowledge/indexes/tags/filters.json +0 -1
  402. package/embedded-knowledge/indexes/tags/formatting.json +0 -1
  403. package/embedded-knowledge/indexes/tags/generic-methods.json +0 -1
  404. package/embedded-knowledge/indexes/tags/http-status.json +0 -1
  405. package/embedded-knowledge/indexes/tags/if-statements.json +0 -1
  406. package/embedded-knowledge/indexes/tags/implementation.json +0 -1
  407. package/embedded-knowledge/indexes/tags/indentation.json +0 -1
  408. package/embedded-knowledge/indexes/tags/index-summary.json +0 -277
  409. package/embedded-knowledge/indexes/tags/indexing.json +0 -1
  410. package/embedded-knowledge/indexes/tags/inheritance.json +0 -1
  411. package/embedded-knowledge/indexes/tags/integration.json +0 -1
  412. package/embedded-knowledge/indexes/tags/integrity-checking.json +0 -1
  413. package/embedded-knowledge/indexes/tags/intellisense.json +0 -1
  414. package/embedded-knowledge/indexes/tags/interface-design.json +0 -1
  415. package/embedded-knowledge/indexes/tags/interface-segregation.json +0 -1
  416. package/embedded-knowledge/indexes/tags/isolation.json +0 -1
  417. package/embedded-knowledge/indexes/tags/job-processing.json +0 -1
  418. package/embedded-knowledge/indexes/tags/keyboard-navigation.json +0 -1
  419. package/embedded-knowledge/indexes/tags/keywords.json +0 -1
  420. package/embedded-knowledge/indexes/tags/legacy-modernization.json +0 -1
  421. package/embedded-knowledge/indexes/tags/line-breaks.json +0 -1
  422. package/embedded-knowledge/indexes/tags/line-organization.json +0 -1
  423. package/embedded-knowledge/indexes/tags/line-positioning.json +0 -1
  424. package/embedded-knowledge/indexes/tags/localization.json +0 -1
  425. package/embedded-knowledge/indexes/tags/logging.json +0 -1
  426. package/embedded-knowledge/indexes/tags/loose-coupling.json +0 -1
  427. package/embedded-knowledge/indexes/tags/maintainability.json +0 -1
  428. package/embedded-knowledge/indexes/tags/memory-management.json +0 -1
  429. package/embedded-knowledge/indexes/tags/memory-optimization.json +0 -1
  430. package/embedded-knowledge/indexes/tags/memory.json +0 -1
  431. package/embedded-knowledge/indexes/tags/message-design.json +0 -1
  432. package/embedded-knowledge/indexes/tags/message-formatting.json +0 -1
  433. package/embedded-knowledge/indexes/tags/message-patterns.json +0 -1
  434. package/embedded-knowledge/indexes/tags/metadata-driven.json +0 -1
  435. package/embedded-knowledge/indexes/tags/method-comparison.json +0 -1
  436. package/embedded-knowledge/indexes/tags/module-architecture.json +0 -1
  437. package/embedded-knowledge/indexes/tags/module-validation.json +0 -1
  438. package/embedded-knowledge/indexes/tags/monitoring.json +0 -1
  439. package/embedded-knowledge/indexes/tags/multi-layer-facade.json +0 -1
  440. package/embedded-knowledge/indexes/tags/multi-tenancy.json +0 -1
  441. package/embedded-knowledge/indexes/tags/multiple-values.json +0 -1
  442. package/embedded-knowledge/indexes/tags/naming-conventions.json +0 -1
  443. package/embedded-knowledge/indexes/tags/naming.json +0 -1
  444. package/embedded-knowledge/indexes/tags/navigation.json +0 -1
  445. package/embedded-knowledge/indexes/tags/nested-statements.json +0 -1
  446. package/embedded-knowledge/indexes/tags/no-series-conversion.json +0 -1
  447. package/embedded-knowledge/indexes/tags/no-series-validation.json +0 -1
  448. package/embedded-knowledge/indexes/tags/no-series.json +0 -1
  449. package/embedded-knowledge/indexes/tags/number-generation.json +0 -1
  450. package/embedded-knowledge/indexes/tags/object-documentation.json +0 -1
  451. package/embedded-knowledge/indexes/tags/odata.json +0 -1
  452. package/embedded-knowledge/indexes/tags/ondelete.json +0 -1
  453. package/embedded-knowledge/indexes/tags/onvalidate.json +0 -1
  454. package/embedded-knowledge/indexes/tags/operation-delegation.json +0 -1
  455. package/embedded-knowledge/indexes/tags/operation-safety.json +0 -1
  456. package/embedded-knowledge/indexes/tags/operators.json +0 -1
  457. package/embedded-knowledge/indexes/tags/optimization.json +0 -1
  458. package/embedded-knowledge/indexes/tags/order.json +0 -1
  459. package/embedded-knowledge/indexes/tags/organization.json +0 -1
  460. package/embedded-knowledge/indexes/tags/pages.json +0 -1
  461. package/embedded-knowledge/indexes/tags/parameters.json +0 -1
  462. package/embedded-knowledge/indexes/tags/patterns.json +0 -1
  463. package/embedded-knowledge/indexes/tags/performance-optimization.json +0 -1
  464. package/embedded-knowledge/indexes/tags/performance.json +0 -1
  465. package/embedded-knowledge/indexes/tags/placement.json +0 -1
  466. package/embedded-knowledge/indexes/tags/posting-codeunits.json +0 -1
  467. package/embedded-knowledge/indexes/tags/posting.json +0 -1
  468. package/embedded-knowledge/indexes/tags/preconditions.json +0 -1
  469. package/embedded-knowledge/indexes/tags/primary-key.json +0 -1
  470. package/embedded-knowledge/indexes/tags/privacy.json +0 -1
  471. package/embedded-knowledge/indexes/tags/process-automation.json +0 -1
  472. package/embedded-knowledge/indexes/tags/production.json +0 -1
  473. package/embedded-knowledge/indexes/tags/productivity.json +0 -1
  474. package/embedded-knowledge/indexes/tags/query-performance.json +0 -1
  475. package/embedded-knowledge/indexes/tags/queue-management.json +0 -1
  476. package/embedded-knowledge/indexes/tags/ranges.json +0 -1
  477. package/embedded-knowledge/indexes/tags/readability.json +0 -1
  478. package/embedded-knowledge/indexes/tags/record-access.json +0 -1
  479. package/embedded-knowledge/indexes/tags/record-methods.json +0 -1
  480. package/embedded-knowledge/indexes/tags/refactoring.json +0 -1
  481. package/embedded-knowledge/indexes/tags/reference.json +0 -1
  482. package/embedded-knowledge/indexes/tags/repeat-loops.json +0 -1
  483. package/embedded-knowledge/indexes/tags/repeat-statement.json +0 -1
  484. package/embedded-knowledge/indexes/tags/runtime-errors.json +0 -1
  485. package/embedded-knowledge/indexes/tags/runtime.json +0 -1
  486. package/embedded-knowledge/indexes/tags/safeguards.json +0 -1
  487. package/embedded-knowledge/indexes/tags/security.json +0 -1
  488. package/embedded-knowledge/indexes/tags/sequence-management.json +0 -1
  489. package/embedded-knowledge/indexes/tags/serialization.json +0 -1
  490. package/embedded-knowledge/indexes/tags/session-logmessage.json +0 -1
  491. package/embedded-knowledge/indexes/tags/session.json +0 -1
  492. package/embedded-knowledge/indexes/tags/setloadfields.json +0 -1
  493. package/embedded-knowledge/indexes/tags/shortcuts.json +0 -1
  494. package/embedded-knowledge/indexes/tags/sift.json +0 -1
  495. package/embedded-knowledge/indexes/tags/singleinstance.json +0 -1
  496. package/embedded-knowledge/indexes/tags/spacing.json +0 -1
  497. package/embedded-knowledge/indexes/tags/sql-translation.json +0 -1
  498. package/embedded-knowledge/indexes/tags/standards.json +0 -1
  499. package/embedded-knowledge/indexes/tags/statements.json +0 -1
  500. package/embedded-knowledge/indexes/tags/streaming.json +0 -1
  501. package/embedded-knowledge/indexes/tags/strong-typing.json +0 -1
  502. package/embedded-knowledge/indexes/tags/structural-patterns.json +0 -1
  503. package/embedded-knowledge/indexes/tags/structure.json +0 -1
  504. package/embedded-knowledge/indexes/tags/subscribers.json +0 -1
  505. package/embedded-knowledge/indexes/tags/switch.json +0 -1
  506. package/embedded-knowledge/indexes/tags/symbol-search.json +0 -1
  507. package/embedded-knowledge/indexes/tags/syntax.json +0 -1
  508. package/embedded-knowledge/indexes/tags/systemid.json +0 -1
  509. package/embedded-knowledge/indexes/tags/table-configuration.json +0 -1
  510. package/embedded-knowledge/indexes/tags/table-events.json +0 -1
  511. package/embedded-knowledge/indexes/tags/table-keys.json +0 -1
  512. package/embedded-knowledge/indexes/tags/table-safety.json +0 -1
  513. package/embedded-knowledge/indexes/tags/task-scheduler.json +0 -1
  514. package/embedded-knowledge/indexes/tags/telemetry.json +0 -1
  515. package/embedded-knowledge/indexes/tags/template-method.json +0 -1
  516. package/embedded-knowledge/indexes/tags/temporary-tables.json +0 -1
  517. package/embedded-knowledge/indexes/tags/testfield.json +0 -1
  518. package/embedded-knowledge/indexes/tags/tradeoffs.json +0 -1
  519. package/embedded-knowledge/indexes/tags/triggers.json +0 -1
  520. package/embedded-knowledge/indexes/tags/troubleshooting.json +0 -1
  521. package/embedded-knowledge/indexes/tags/type-safety.json +0 -1
  522. package/embedded-knowledge/indexes/tags/url-structure.json +0 -1
  523. package/embedded-knowledge/indexes/tags/user-experience.json +0 -1
  524. package/embedded-knowledge/indexes/tags/user-feedback.json +0 -1
  525. package/embedded-knowledge/indexes/tags/user-interface.json +0 -1
  526. package/embedded-knowledge/indexes/tags/validation-feedback.json +0 -1
  527. package/embedded-knowledge/indexes/tags/validation.json +0 -1
  528. package/embedded-knowledge/indexes/tags/variables.json +0 -1
  529. package/embedded-knowledge/indexes/tags/verbosity.json +0 -1
  530. package/embedded-knowledge/indexes/tags/vs-code.json +0 -1
  531. package/embedded-knowledge/indexes/tags/web-services.json +0 -1
  532. package/embedded-knowledge/indexes/tags/workflow-management.json +0 -1
  533. package/embedded-knowledge/indexes/tags/workflow-optimization.json +0 -1
  534. package/embedded-knowledge/indexes/tags/workflow-templates.json +0 -1
  535. package/embedded-knowledge/indexes/tags/workspace.json +0 -1
  536. package/embedded-knowledge/indexes/tags/xml-documentation.json +0 -1
  537. package/embedded-knowledge/indexes/topic-relationships.json +0 -128
  538. package/embedded-knowledge/methodologies/index.json +0 -81
  539. package/embedded-knowledge/methodologies/phases/analysis-full.md +0 -208
  540. package/embedded-knowledge/methodologies/phases/analysis-quick.md +0 -44
  541. package/embedded-knowledge/methodologies/phases/analysis.md +0 -182
  542. package/embedded-knowledge/methodologies/phases/execution-validation-full.md +0 -174
  543. package/embedded-knowledge/methodologies/phases/execution-validation-quick.md +0 -31
  544. package/embedded-knowledge/methodologies/phases/execution-validation.md +0 -174
  545. package/embedded-knowledge/methodologies/phases/performance-full.md +0 -211
  546. package/embedded-knowledge/methodologies/phases/performance-quick.md +0 -32
  547. package/embedded-knowledge/methodologies/phases/performance.md +0 -211
  548. package/embedded-knowledge/methodologies/phases/verification-full.md +0 -162
  549. package/embedded-knowledge/methodologies/phases/verification-quick.md +0 -48
  550. package/embedded-knowledge/methodologies/phases/verification.md +0 -146
  551. package/embedded-knowledge/methodologies/workflow-enforcement.md +0 -142
  552. package/embedded-knowledge/methodologies/workflows/code-review-workflow.md +0 -99
  553. package/embedded-knowledge/specialists/alex-architect.md +0 -216
  554. package/embedded-knowledge/specialists/casey-copilot.md +0 -226
  555. package/embedded-knowledge/specialists/chris-config.md +0 -267
  556. package/embedded-knowledge/specialists/dean-debug.md +0 -222
  557. package/embedded-knowledge/specialists/eva-errors.md +0 -235
  558. package/embedded-knowledge/specialists/jordan-bridge.md +0 -235
  559. package/embedded-knowledge/specialists/logan-legacy.md +0 -209
  560. package/embedded-knowledge/specialists/maya-mentor.md +0 -211
  561. package/embedded-knowledge/specialists/morgan-market.md +0 -226
  562. package/embedded-knowledge/specialists/quinn-tester.md +0 -235
  563. package/embedded-knowledge/specialists/roger-reviewer.md +0 -234
  564. package/embedded-knowledge/specialists/sam-coder.md +0 -359
  565. package/embedded-knowledge/specialists/seth-security.md +0 -235
  566. package/embedded-knowledge/specialists/taylor-docs.md +0 -257
  567. package/embedded-knowledge/specialists/uma-ux.md +0 -235
@@ -1,438 +0,0 @@
1
- # AL Begin/End Block Structure - Code Examples
2
-
3
- ## Object Trigger Structure
4
-
5
- ### Table Trigger Pattern
6
- ```al
7
- table 50100 "Sales Order Processing"
8
- {
9
- fields
10
- {
11
- field(1; "Order No."; Code[20])
12
- {
13
- Caption = 'Order No.';
14
- }
15
- field(2; "Customer No."; Code[20])
16
- {
17
- Caption = 'Customer No.';
18
- TableRelation = Customer;
19
-
20
- trigger OnValidate()
21
- begin
22
- if "Customer No." <> '' then begin
23
- Customer.Get("Customer No.");
24
- "Customer Name" := Customer.Name;
25
- ValidateCustomerCredit();
26
- end;
27
- end;
28
- }
29
- }
30
-
31
- var
32
- Customer: Record Customer;
33
-
34
- trigger OnInsert()
35
- begin
36
- TestField("Customer No.");
37
-
38
- if "Order No." = '' then begin
39
- NoSeriesManagement.InitSeries(GetNoSeriesCode(), xRec."No. Series", 0D, "Order No.", "No. Series");
40
- end;
41
- end;
42
-
43
- trigger OnModify()
44
- begin
45
- if xRec."Customer No." <> "Customer No." then begin
46
- if OrderLineExists() then begin
47
- if not Confirm('Customer changed. Update order lines?') then begin
48
- Error('Customer change cancelled');
49
- end;
50
- UpdateOrderLines();
51
- end;
52
- end;
53
- end;
54
- }
55
- ```
56
-
57
- ### Page Trigger Structure
58
- ```al
59
- page 50100 "Sales Order Card"
60
- {
61
- PageType = Card;
62
- SourceTable = "Sales Order Processing";
63
-
64
- layout
65
- {
66
- area(Content)
67
- {
68
- group(General)
69
- {
70
- field("Order No."; "Order No.")
71
- {
72
- ApplicationArea = All;
73
-
74
- trigger OnAssistEdit()
75
- begin
76
- if AssistEdit(xRec) then begin
77
- CurrPage.Update();
78
- end;
79
- end;
80
- }
81
- }
82
- }
83
- }
84
-
85
- actions
86
- {
87
- area(Processing)
88
- {
89
- action(ProcessOrder)
90
- {
91
- Caption = 'Process Order';
92
-
93
- trigger OnAction()
94
- begin
95
- if ValidateOrderData() then begin
96
- if ConfirmProcessing() then begin
97
- ProcessOrderLines();
98
- SendConfirmationEmail();
99
- Message('Order processed successfully');
100
- end else begin
101
- Message('Order processing cancelled');
102
- end;
103
- end else begin
104
- Error('Order validation failed');
105
- end;
106
- end;
107
- }
108
- }
109
- }
110
-
111
- trigger OnOpenPage()
112
- begin
113
- SetDefaultFilters();
114
- UpdateVisibility();
115
-
116
- if IsNewRecord() then begin
117
- InitializeNewOrder();
118
- end;
119
- end;
120
- }
121
- ```
122
-
123
- ## Procedure Organization Patterns
124
-
125
- ```al
126
- codeunit 50100 "Order Management"
127
- {
128
- procedure CreateSalesOrder(CustomerNo: Code[20]; OrderDate: Date): Code[20]
129
- var
130
- SalesHeader: Record "Sales Header";
131
- OrderNo: Code[20];
132
- begin
133
- OrderNo := GetNextOrderNumber();
134
-
135
- SalesHeader.Init();
136
- SalesHeader."Document Type" := SalesHeader."Document Type"::Order;
137
- SalesHeader."No." := OrderNo;
138
- SalesHeader."Sell-to Customer No." := CustomerNo;
139
- SalesHeader."Order Date" := OrderDate;
140
- SalesHeader.Insert(true);
141
-
142
- exit(OrderNo);
143
- end;
144
-
145
- procedure ProcessBulkOrders(var TempOrderBuffer: Record "Order Buffer" temporary)
146
- var
147
- OrderNo: Code[20];
148
- ProcessedCount: Integer;
149
- ErrorCount: Integer;
150
- begin
151
- if TempOrderBuffer.IsEmpty() then begin
152
- Message('No orders to process');
153
- exit;
154
- end;
155
-
156
- TempOrderBuffer.FindSet();
157
- repeat
158
- if ValidateOrderBuffer(TempOrderBuffer) then begin
159
- if CreateOrderFromBuffer(TempOrderBuffer, OrderNo) then begin
160
- ProcessedCount += 1;
161
- TempOrderBuffer."Status" := TempOrderBuffer."Status"::Processed;
162
- TempOrderBuffer."Order No." := OrderNo;
163
- end else begin
164
- ErrorCount += 1;
165
- TempOrderBuffer."Status" := TempOrderBuffer."Status"::Error;
166
- end;
167
- end else begin
168
- ErrorCount += 1;
169
- TempOrderBuffer."Status" := TempOrderBuffer."Status"::"Validation Error";
170
- end;
171
-
172
- TempOrderBuffer.Modify();
173
- until TempOrderBuffer.Next() = 0;
174
-
175
- Message('Processing complete. Processed: %1, Errors: %2', ProcessedCount, ErrorCount);
176
- end;
177
- }
178
- ```
179
-
180
- ## Control Flow Nesting Patterns
181
-
182
- ```al
183
- codeunit 50101 "Advanced Control Flow"
184
- {
185
- procedure DetermineShippingMethod(SalesHeader: Record "Sales Header"): Code[10]
186
- begin
187
- if SalesHeader."Sell-to Country/Region Code" = 'US' then begin
188
- if SalesHeader."Order Date" = Today() then begin
189
- if SalesHeader.Amount > 1000 then begin
190
- exit('RUSH-PREMIUM');
191
- end else begin
192
- exit('RUSH-STANDARD');
193
- end;
194
- end else begin
195
- if SalesHeader.Amount > 500 then begin
196
- exit('DOMESTIC-FREE');
197
- end else begin
198
- exit('DOMESTIC-PAID');
199
- end;
200
- end;
201
- end else begin
202
- if SalesHeader.Amount > 2000 then begin
203
- exit('INTL-EXPRESS');
204
- end else begin
205
- if GetShippingDistance(SalesHeader."Sell-to Country/Region Code") <= 5000 then begin
206
- exit('INTL-STANDARD');
207
- end else begin
208
- exit('INTL-ECONOMY');
209
- end;
210
- end;
211
- end;
212
- end;
213
-
214
- procedure ProcessOrderByType(OrderType: Enum "Order Type")
215
- begin
216
- case OrderType of
217
- OrderType::Standard:
218
- begin
219
- ValidateInventory();
220
- CreateShipment();
221
- SendConfirmation();
222
- end;
223
- OrderType::DropShip:
224
- begin
225
- ValidateVendor();
226
- CreatePurchaseOrder();
227
- NotifyCustomer();
228
- end;
229
- OrderType::Transfer:
230
- begin
231
- ValidateLocations();
232
- CreateTransferOrder();
233
- UpdateInventory();
234
- end;
235
- else begin
236
- Error('Unsupported order type: %1', OrderType);
237
- end;
238
- end;
239
- end;
240
- }
241
- ```
242
-
243
- ## Variable Scope Examples
244
-
245
- ```al
246
- codeunit 50102 "Variable Scope Examples"
247
- {
248
- var
249
- GlobalCounter: Integer;
250
- GlobalCustomer: Record Customer;
251
-
252
- procedure DemonstrateVariableScope()
253
- var
254
- LocalCounter: Integer;
255
- Customer: Record Customer;
256
- i: Integer;
257
- begin
258
- LocalCounter := 0;
259
-
260
- for i := 1 to 10 do begin
261
- LocalCounter += 1;
262
- GlobalCounter += 1;
263
-
264
- if i mod 2 = 0 then begin
265
- Customer.SetRange("No.", Format(i));
266
- if Customer.FindFirst() then begin
267
- ProcessCustomer(Customer);
268
- end;
269
- end;
270
- end;
271
-
272
- Message('Local: %1, Global: %2', LocalCounter, GlobalCounter);
273
- end;
274
-
275
- procedure ProcessCustomerOrders(CustomerNo: Code[20]; ProcessDate: Date)
276
- var
277
- SalesHeader: Record "Sales Header";
278
- OrderCount: Integer;
279
- TotalAmount: Decimal;
280
- begin
281
- OrderCount := 0;
282
- TotalAmount := 0;
283
-
284
- SalesHeader.SetRange("Sell-to Customer No.", CustomerNo);
285
- SalesHeader.SetRange("Order Date", ProcessDate);
286
-
287
- if SalesHeader.FindSet() then begin
288
- repeat
289
- OrderCount += 1;
290
- SalesHeader.CalcFields(Amount);
291
- TotalAmount += SalesHeader.Amount;
292
-
293
- if SalesHeader.Amount > 1000 then begin
294
- ApplyVIPProcessing(SalesHeader);
295
- end;
296
-
297
- until SalesHeader.Next() = 0;
298
- end;
299
-
300
- UpdateCustomerStatistics(CustomerNo, OrderCount, TotalAmount);
301
- end;
302
- }
303
- ```
304
-
305
- ## Exception Handling Patterns
306
-
307
- ```al
308
- codeunit 50103 "Exception Handling Examples"
309
- {
310
- procedure SafeOrderProcessing(OrderNo: Code[20]): Boolean
311
- var
312
- SalesHeader: Record "Sales Header";
313
- ProcessingResult: Boolean;
314
- begin
315
- ProcessingResult := false;
316
-
317
- if SalesHeader.Get(SalesHeader."Document Type"::Order, OrderNo) then begin
318
- if ValidateOrderForProcessing(SalesHeader) then begin
319
- if ProcessOrderSafely(SalesHeader) then begin
320
- ProcessingResult := true;
321
- end;
322
- end;
323
- end;
324
-
325
- exit(ProcessingResult);
326
- end;
327
-
328
- local procedure ProcessOrderSafely(var SalesHeader: Record "Sales Header"): Boolean
329
- begin
330
- if not Codeunit.Run(Codeunit::"Sales-Post", SalesHeader) then begin
331
- LogProcessingError(SalesHeader."No.", GetLastErrorText());
332
- ClearLastError();
333
- exit(false);
334
- end;
335
-
336
- exit(true);
337
- end;
338
-
339
- procedure BatchProcessOrders(var TempOrderList: Record "Order Processing Queue" temporary)
340
- var
341
- ProcessedCount: Integer;
342
- ErrorCount: Integer;
343
- CurrentOrder: Code[20];
344
- begin
345
- ProcessedCount := 0;
346
- ErrorCount := 0;
347
-
348
- if TempOrderList.FindSet() then begin
349
- repeat
350
- CurrentOrder := TempOrderList."Order No.";
351
-
352
- if ProcessSingleOrder(CurrentOrder) then begin
353
- ProcessedCount += 1;
354
- TempOrderList.Status := TempOrderList.Status::Completed;
355
- end else begin
356
- ErrorCount += 1;
357
- TempOrderList.Status := TempOrderList.Status::Error;
358
- TempOrderList."Error Message" := GetLastErrorText();
359
- ClearLastError();
360
- end;
361
-
362
- TempOrderList.Modify();
363
-
364
- until TempOrderList.Next() = 0;
365
- end;
366
-
367
- Message('Batch processing complete.\Processed: %1\Errors: %2', ProcessedCount, ErrorCount);
368
- end;
369
- }
370
- ```
371
-
372
- ## Anti-Pattern Examples
373
-
374
- ```al
375
- // ❌ ANTI-PATTERN: Poor block structure
376
- procedure BadExample()
377
- var
378
- Customer: Record Customer;
379
- begin
380
- // Missing begin/end for multi-statement block
381
- if Customer.FindFirst() then
382
- Customer.CalcFields(Balance);
383
- UpdateCustomerStatus(Customer); // This always executes!
384
-
385
- // Inconsistent block structure
386
- repeat
387
- ProcessCustomer();
388
- until Customer.Next() = 0; // Should be in begin/end block
389
- end;
390
-
391
- // ❌ ANTI-PATTERN: Poor variable scope
392
- procedure BadVariableScope()
393
- begin
394
- if SomeCondition then begin
395
- Customer: Record Customer; // SYNTAX ERROR - can't declare here
396
- Customer.FindFirst();
397
- end;
398
- end;
399
-
400
- // ✅ CORRECT: Proper block structure
401
- procedure GoodExample()
402
- var
403
- Customer: Record Customer;
404
- begin
405
- if Customer.FindFirst() then begin
406
- Customer.CalcFields(Balance);
407
- UpdateCustomerStatus(Customer);
408
- end;
409
-
410
- if Customer.FindSet() then begin
411
- repeat
412
- ProcessCustomer();
413
- until Customer.Next() = 0;
414
- end;
415
- end;
416
- ```
417
-
418
- ## Best Practices Summary
419
-
420
- ### Block Structure Guidelines
421
- 1. **Always use begin/end** for multi-statement blocks
422
- 2. **Consistent indentation** - use 4 spaces per level
423
- 3. **Clear nesting** - avoid deeply nested structures
424
- 4. **Logical grouping** - group related statements
425
- 5. **Single responsibility** - each block has clear purpose
426
-
427
- ### Variable Scope Best Practices
428
- 1. **Declare at procedure level** for maximum flexibility
429
- 2. **Initialize variables** before use
430
- 3. **Use meaningful names** indicating scope and purpose
431
- 4. **Minimize global variables** - prefer parameters
432
-
433
- ### Error Handling Standards
434
- 1. **Check return values** from system functions
435
- 2. **Use ClearLastError()** after handling errors
436
- 3. **Provide meaningful messages** with context
437
- 4. **Implement graceful degradation** where possible
438
- 5. **Log errors appropriately** for troubleshooting
@@ -1,255 +0,0 @@
1
- # AL Binary Operator Spacing - Code Examples
2
-
3
- ## Good Examples
4
-
5
- ### Arithmetic Operators with Proper Spacing
6
- ```al
7
- procedure CalculateOrderTotals(BaseAmount: Decimal; TaxRate: Decimal; DiscountPct: Decimal): Decimal
8
- var
9
- TaxAmount: Decimal;
10
- DiscountAmount: Decimal;
11
- NetAmount: Decimal;
12
- FinalTotal: Decimal;
13
- begin
14
- // Arithmetic operations with consistent spacing
15
- TaxAmount := BaseAmount * TaxRate / 100;
16
- DiscountAmount := BaseAmount * DiscountPct / 100;
17
- NetAmount := BaseAmount - DiscountAmount;
18
- FinalTotal := NetAmount + TaxAmount;
19
-
20
- // Complex calculations with proper spacing
21
- FinalTotal := (BaseAmount * (1 - DiscountPct / 100)) * (1 + TaxRate / 100);
22
-
23
- exit(FinalTotal);
24
- end;
25
- ```
26
-
27
- ### Comparison Operators with Consistent Spacing
28
- ```al
29
- procedure ValidateCustomerData(var Customer: Record Customer): Boolean
30
- var
31
- ValidationResult: Boolean;
32
- begin
33
- ValidationResult := true;
34
-
35
- // Comparison operations with proper spacing
36
- if Customer."No." = '' then
37
- ValidationResult := false;
38
-
39
- if Customer."Credit Limit (LCY)" <= 0 then
40
- ValidationResult := false;
41
-
42
- if Customer."Balance (LCY)" >= Customer."Credit Limit (LCY)" then
43
- ValidationResult := false;
44
-
45
- if Customer."Last Date Modified" <> Today then
46
- Customer."Last Date Modified" := Today;
47
-
48
- // Complex comparison with proper spacing
49
- if (Customer."Balance (LCY)" > 0) and (Customer."Credit Limit (LCY)" > 0) then
50
- if Customer."Balance (LCY)" / Customer."Credit Limit (LCY)" > 0.8 then
51
- Message('Customer approaching credit limit');
52
-
53
- exit(ValidationResult);
54
- end;
55
- ```
56
-
57
- ### Logical Operators with Clear Spacing
58
- ```al
59
- procedure ProcessOrderLogic(var SalesHeader: Record "Sales Header"): Boolean
60
- var
61
- CanProcess: Boolean;
62
- Customer: Record Customer;
63
- begin
64
- Customer.Get(SalesHeader."Sell-to Customer No.");
65
-
66
- // Logical operations with proper spacing
67
- CanProcess := (SalesHeader.Status = SalesHeader.Status::Open) and
68
- (not Customer.Blocked) and
69
- (SalesHeader."Order Date" <> 0D);
70
-
71
- // Complex logical expressions with clear spacing
72
- if (Customer."Credit Limit (LCY)" > 0) and
73
- (Customer."Balance (LCY)" < Customer."Credit Limit (LCY)") and
74
- ((SalesHeader."Amount Including VAT" + Customer."Balance (LCY)") <= Customer."Credit Limit (LCY)") then
75
- CanProcess := true
76
- else
77
- CanProcess := false;
78
-
79
- // Multiple condition checks with proper spacing
80
- if (SalesHeader."Shipment Date" <> 0D) or
81
- (SalesHeader."Requested Delivery Date" <> 0D) or
82
- (SalesHeader."Promised Delivery Date" <> 0D) then
83
- SalesHeader."Has Delivery Date" := true;
84
-
85
- exit(CanProcess);
86
- end;
87
- ```
88
-
89
- ### Assignment Operators with Consistent Formatting
90
- ```al
91
- procedure UpdateCustomerInformation(var Customer: Record Customer; NewCredit: Decimal)
92
- var
93
- PreviousCredit: Decimal;
94
- CreditIncrease: Decimal;
95
- begin
96
- // Assignment operations with proper spacing
97
- PreviousCredit := Customer."Credit Limit (LCY)";
98
- Customer."Credit Limit (LCY)" := NewCredit;
99
- CreditIncrease := NewCredit - PreviousCredit;
100
-
101
- // Complex assignments with proper spacing
102
- Customer."Credit Available (LCY)" := Customer."Credit Limit (LCY)" - Customer."Balance (LCY)";
103
-
104
- // Multiple assignments maintaining consistency
105
- Customer."Last Date Modified" := Today;
106
- Customer."Last Time Modified" := Time;
107
- Customer."Modified By" := UserId;
108
-
109
- Customer.Modify();
110
- end;
111
- ```
112
-
113
- ### Mixed Operators in Complex Expressions
114
- ```al
115
- procedure CalculateComplexPricing(ItemNo: Code[20]; Quantity: Decimal; CustomerNo: Code[20]): Decimal
116
- var
117
- Item: Record Item;
118
- Customer: Record Customer;
119
- BasePrice: Decimal;
120
- VolumeDiscount: Decimal;
121
- CustomerDiscount: Decimal;
122
- FinalPrice: Decimal;
123
- begin
124
- Item.Get(ItemNo);
125
- Customer.Get(CustomerNo);
126
-
127
- BasePrice := Item."Unit Price";
128
-
129
- // Complex calculations with consistent operator spacing
130
- if Quantity >= 100 then
131
- VolumeDiscount := 0.15
132
- else if Quantity >= 50 then
133
- VolumeDiscount := 0.10
134
- else if Quantity >= 20 then
135
- VolumeDiscount := 0.05
136
- else
137
- VolumeDiscount := 0.00;
138
-
139
- // Customer type discount calculation
140
- if Customer."Customer Price Group" = 'VIP' then
141
- CustomerDiscount := 0.20
142
- else if Customer."Customer Price Group" = 'PREMIUM' then
143
- CustomerDiscount := 0.10
144
- else
145
- CustomerDiscount := 0.00;
146
-
147
- // Final price calculation with proper spacing
148
- FinalPrice := BasePrice * Quantity * (1 - VolumeDiscount) * (1 - CustomerDiscount);
149
-
150
- exit(FinalPrice);
151
- end;
152
- ```
153
-
154
- ## Bad Examples
155
-
156
- ### Cramped Arithmetic Operations
157
- ```al
158
- procedure BadArithmeticSpacing(Amount: Decimal; Tax: Decimal): Decimal
159
- var
160
- Result: Decimal;
161
- begin
162
- Result:=Amount*Tax/100; // Bad: no spaces around operators
163
- Result:=Amount+Result; // Bad: no spaces around operators
164
- Result:=(Amount*1.1)+Tax-5; // Bad: inconsistent spacing
165
- exit(Result);
166
- end;
167
- ```
168
-
169
- ### Inconsistent Comparison Spacing
170
- ```al
171
- procedure BadComparisonSpacing(Customer: Record Customer): Boolean
172
- begin
173
- if Customer."No."='' then // Bad: no spaces around =
174
- exit(false);
175
-
176
- if Customer."Credit Limit (LCY)" <=0 then // Bad: no space before <=
177
- exit(false);
178
-
179
- if Customer."Balance (LCY)">= Customer."Credit Limit (LCY)" then // Bad: inconsistent spacing around >=
180
- exit(false);
181
-
182
- exit(true);
183
- end;
184
- ```
185
-
186
- ### Poor Logical Operator Spacing
187
- ```al
188
- procedure BadLogicalSpacing(SalesHeader: Record "Sales Header"): Boolean
189
- var
190
- Customer: Record Customer;
191
- begin
192
- Customer.Get(SalesHeader."Sell-to Customer No.");
193
-
194
- // Bad logical operator spacing
195
- if(SalesHeader.Status=SalesHeader.Status::Open)and(not Customer.Blocked)and(SalesHeader."Order Date"<>0D)then // Bad: no spaces
196
- exit(true);
197
-
198
- if (Customer."Credit Limit (LCY)">0)and (Customer."Balance (LCY)"<Customer."Credit Limit (LCY)")then // Bad: inconsistent spacing
199
- exit(true);
200
-
201
- exit(false);
202
- end;
203
- ```
204
-
205
- ### Cramped Assignment Operations
206
- ```al
207
- procedure BadAssignmentSpacing(var Customer: Record Customer)
208
- var
209
- NewCredit: Decimal;
210
- begin
211
- NewCredit:=5000; // Bad: no spaces around :=
212
- Customer."Credit Limit (LCY)":=NewCredit; // Bad: no spaces around :=
213
- Customer."Credit Available (LCY)":=Customer."Credit Limit (LCY)"-Customer."Balance (LCY)"; // Bad: no spaces around operators
214
- end;
215
- ```
216
-
217
- ### Mixed Spacing Inconsistency
218
- ```al
219
- procedure InconsistentSpacing(Amount: Decimal; Discount: Decimal): Decimal
220
- var
221
- Result: Decimal;
222
- begin
223
- Result := Amount * (1-Discount/100); // Bad: inconsistent spacing (some operators have spaces, others don't)
224
- Result:= Result+10; // Bad: space only on one side of :=
225
- Result=Result *1.1; // Bad: wrong assignment operator and poor spacing
226
-
227
- if Result> 1000 then // Bad: space only on one side of >
228
- Result := Result- 50; // Bad: space only on one side of -
229
-
230
- exit(Result);
231
- end;
232
- ```
233
-
234
- ### Extremely Cramped Complex Expressions
235
- ```al
236
- procedure CrampedComplexExpressions(Item: Record Item; Qty: Decimal; Customer: Record Customer): Decimal
237
- var
238
- Price: Decimal;
239
- begin
240
- Price:=Item."Unit Price"*Qty*(1-GetVolumeDiscount(Qty)/100)*(1-GetCustomerDiscount(Customer."No.")/100); // Bad: no spacing in complex expression
241
-
242
- if(Item."Unit Price">0)and(Qty>0)and(Customer."Credit Limit (LCY)">Customer."Balance (LCY)")then // Bad: cramped logical expression
243
- Price:=Price*1.1; // Bad: no spaces
244
-
245
- exit(Price);
246
- end;
247
- ```
248
-
249
- ## Best Practices
250
-
251
- 1. **Single space before and after** all binary operators (+, -, *, /, =, <>, <, >, <=, >=, :=)
252
- 2. **Consistent spacing** throughout all expressions and assignments
253
- 3. **Clear separation** in complex expressions with parentheses and spacing
254
- 4. **Maintain spacing** in multi-line expressions for readability
255
- 5. **Use consistent patterns** across entire codebase for professional appearance