bc-code-intelligence-mcp 1.3.3 → 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 (548) 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/knowledge-service.d.ts +21 -10
  18. package/dist/services/knowledge-service.d.ts.map +1 -1
  19. package/dist/services/knowledge-service.js +71 -54
  20. package/dist/services/knowledge-service.js.map +1 -1
  21. package/dist/services/multi-content-layer-service.d.ts +90 -0
  22. package/dist/services/multi-content-layer-service.d.ts.map +1 -1
  23. package/dist/services/multi-content-layer-service.js +380 -0
  24. package/dist/services/multi-content-layer-service.js.map +1 -1
  25. package/dist/services/workflow-service.d.ts +11 -3
  26. package/dist/services/workflow-service.d.ts.map +1 -1
  27. package/dist/services/workflow-service.js +119 -78
  28. package/dist/services/workflow-service.js.map +1 -1
  29. package/dist/streamlined-handlers.d.ts +31 -2
  30. package/dist/streamlined-handlers.d.ts.map +1 -1
  31. package/dist/streamlined-handlers.js +151 -109
  32. package/dist/streamlined-handlers.js.map +1 -1
  33. package/dist/streamlined-tools.d.ts +12 -0
  34. package/dist/streamlined-tools.d.ts.map +1 -1
  35. package/dist/streamlined-tools.js +11 -6
  36. package/dist/streamlined-tools.js.map +1 -1
  37. package/package.json +13 -4
  38. package/embedded-knowledge/.github/ISSUE_TEMPLATE/bug-report.md +0 -24
  39. package/embedded-knowledge/.github/ISSUE_TEMPLATE/content-improvement.md +0 -24
  40. package/embedded-knowledge/.github/ISSUE_TEMPLATE/knowledge-request.md +0 -30
  41. package/embedded-knowledge/AGENTS.md +0 -178
  42. package/embedded-knowledge/CONTRIBUTING.md +0 -58
  43. package/embedded-knowledge/LICENSE +0 -21
  44. package/embedded-knowledge/README.md +0 -32
  45. package/embedded-knowledge/domains/alex-architect/api-delegate-operation-pattern.md +0 -90
  46. package/embedded-knowledge/domains/alex-architect/api-fieldset-registration-pattern.md +0 -113
  47. package/embedded-knowledge/domains/alex-architect/api-interface-design-patterns.md +0 -101
  48. package/embedded-knowledge/domains/alex-architect/api-page-development-patterns.md +0 -87
  49. package/embedded-knowledge/domains/alex-architect/complex-facade-patterns.md +0 -155
  50. package/embedded-knowledge/domains/alex-architect/facade-pattern-al-implementation.md +0 -138
  51. package/embedded-knowledge/domains/alex-architect/facade-pattern-external-api.md +0 -79
  52. package/embedded-knowledge/domains/alex-architect/samples/api-delegate-operation.md +0 -280
  53. package/embedded-knowledge/domains/alex-architect/samples/api-fieldset-registration.md +0 -200
  54. package/embedded-knowledge/domains/alex-architect/samples/api-interface-design.md +0 -565
  55. package/embedded-knowledge/domains/alex-architect/samples/api-page-implementation.md +0 -665
  56. package/embedded-knowledge/domains/alex-architect/samples/complex-facade-patterns.md +0 -325
  57. package/embedded-knowledge/domains/alex-architect/samples/facade-pattern-al.md +0 -696
  58. package/embedded-knowledge/domains/alex-architect/samples/facade-pattern.md +0 -320
  59. package/embedded-knowledge/domains/alex-architect/samples/subscriber-organization.md +0 -102
  60. package/embedded-knowledge/domains/alex-architect/samples/systemid-integration.md +0 -433
  61. package/embedded-knowledge/domains/alex-architect/subscriber-codeunit-size-optimization.md +0 -66
  62. package/embedded-knowledge/domains/alex-architect/systemid-integration.md +0 -115
  63. package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +0 -360
  64. package/embedded-knowledge/domains/dean-debug/case-statement-performance-best-practices.md +0 -86
  65. package/embedded-knowledge/domains/dean-debug/compound-statements-debugging.md +0 -96
  66. package/embedded-knowledge/domains/dean-debug/custom-dimensions-best-practices.md +0 -70
  67. package/embedded-knowledge/domains/dean-debug/custom-telemetry-implementation.md +0 -84
  68. package/embedded-knowledge/domains/dean-debug/deleteall-performance-tradeoff.md +0 -93
  69. package/embedded-knowledge/domains/dean-debug/deleteall-sql-performance.md +0 -73
  70. package/embedded-knowledge/domains/dean-debug/extension-telemetry-isolation.md +0 -78
  71. package/embedded-knowledge/domains/dean-debug/maintainsiftindex-property-behavior.md +0 -79
  72. package/embedded-knowledge/domains/dean-debug/no-series-implementation-patterns.md +0 -87
  73. package/embedded-knowledge/domains/dean-debug/no-series-module-patterns-bc24.md +0 -209
  74. package/embedded-knowledge/domains/dean-debug/no-series-validation-module-bc24.md +0 -246
  75. package/embedded-knowledge/domains/dean-debug/no-series-validation-patterns.md +0 -107
  76. package/embedded-knowledge/domains/dean-debug/odata-query-optimization.md +0 -105
  77. package/embedded-knowledge/domains/dean-debug/samples/bc24-no-series-conversion.md +0 -186
  78. package/embedded-knowledge/domains/dean-debug/samples/case-performance-optimization.md +0 -60
  79. package/embedded-knowledge/domains/dean-debug/samples/compound-statements-debugging.md +0 -139
  80. package/embedded-knowledge/domains/dean-debug/samples/custom-dimensions.md +0 -190
  81. package/embedded-knowledge/domains/dean-debug/samples/custom-telemetry.md +0 -516
  82. package/embedded-knowledge/domains/dean-debug/samples/deleteall-performance.md +0 -298
  83. package/embedded-knowledge/domains/dean-debug/samples/error-correlation.md +0 -324
  84. package/embedded-knowledge/domains/dean-debug/samples/extension-isolation.md +0 -344
  85. package/embedded-knowledge/domains/dean-debug/samples/logmessage-methods.md +0 -137
  86. package/embedded-knowledge/domains/dean-debug/samples/maintainsiftindex-examples.md +0 -340
  87. package/embedded-knowledge/domains/dean-debug/samples/no-series-implementation.md +0 -810
  88. package/embedded-knowledge/domains/dean-debug/samples/no-series-module-bc24.md +0 -86
  89. package/embedded-knowledge/domains/dean-debug/samples/no-series-validation-module-bc24.md +0 -110
  90. package/embedded-knowledge/domains/dean-debug/samples/no-series-validation.md +0 -758
  91. package/embedded-knowledge/domains/dean-debug/samples/odata-query-optimization.md +0 -665
  92. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-case.md +0 -316
  93. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-filters.md +0 -223
  94. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-filter-exclusion.md +0 -149
  95. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-optimization.md +0 -412
  96. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-performance.md +0 -211
  97. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-primary-key.md +0 -155
  98. package/embedded-knowledge/domains/dean-debug/samples/sift-technology-fundamentals.md +0 -475
  99. package/embedded-knowledge/domains/dean-debug/samples/singleinstance-subscribers.md +0 -238
  100. package/embedded-knowledge/domains/dean-debug/samples/table-event-batching.md +0 -97
  101. package/embedded-knowledge/domains/dean-debug/samples/table-key-requirements.md +0 -666
  102. package/embedded-knowledge/domains/dean-debug/samples/telemetry-performance.md +0 -319
  103. package/embedded-knowledge/domains/dean-debug/samples/verbosity-strategy.md +0 -236
  104. package/embedded-knowledge/domains/dean-debug/session-logmessage-methods.md +0 -59
  105. package/embedded-knowledge/domains/dean-debug/setloadfields-filter-field-exclusion.md +0 -67
  106. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-impact.md +0 -70
  107. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-optimization.md +0 -90
  108. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-case-statements.md +0 -87
  109. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-filters.md +0 -70
  110. package/embedded-knowledge/domains/dean-debug/setloadfields-primary-key-optimization.md +0 -74
  111. package/embedded-knowledge/domains/dean-debug/sift-technology-fundamentals.md +0 -81
  112. package/embedded-knowledge/domains/dean-debug/subscriber-singleinstance-performance.md +0 -56
  113. package/embedded-knowledge/domains/dean-debug/table-event-batch-operation-impact.md +0 -66
  114. package/embedded-knowledge/domains/dean-debug/table-key-requirements.md +0 -79
  115. package/embedded-knowledge/domains/dean-debug/telemetry-error-correlation.md +0 -78
  116. package/embedded-knowledge/domains/dean-debug/telemetry-performance-considerations.md +0 -83
  117. package/embedded-knowledge/domains/dean-debug/telemetry-verbosity-strategy.md +0 -76
  118. package/embedded-knowledge/domains/dean-debug/testfield-performance.md +0 -104
  119. package/embedded-knowledge/domains/eva-errors/fielderror-default-messages.md +0 -145
  120. package/embedded-knowledge/domains/eva-errors/fielderror-message-construction.md +0 -104
  121. package/embedded-knowledge/domains/eva-errors/fielderror-method-syntax.md +0 -114
  122. package/embedded-knowledge/domains/eva-errors/samples/fielderror-default-messages.md +0 -356
  123. package/embedded-knowledge/domains/eva-errors/samples/fielderror-syntax.md +0 -256
  124. package/embedded-knowledge/domains/eva-errors/samples/table-safety-validation-patterns.md +0 -101
  125. package/embedded-knowledge/domains/eva-errors/samples/testfield-error-handling.md +0 -108
  126. package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +0 -80
  127. package/embedded-knowledge/domains/jordan-bridge/al-event-subscriber-architecture.md +0 -98
  128. package/embedded-knowledge/domains/jordan-bridge/automatic-registration.md +0 -123
  129. package/embedded-knowledge/domains/jordan-bridge/business-process-template-patterns.md +0 -96
  130. package/embedded-knowledge/domains/jordan-bridge/error-response-patterns.md +0 -115
  131. package/embedded-knowledge/domains/jordan-bridge/etag-implementation.md +0 -115
  132. package/embedded-knowledge/domains/jordan-bridge/field-control-selection.md +0 -114
  133. package/embedded-knowledge/domains/jordan-bridge/samples/al-event-subscriber-architecture.md +0 -395
  134. package/embedded-knowledge/domains/jordan-bridge/samples/api-error-responses.md +0 -479
  135. package/embedded-knowledge/domains/jordan-bridge/samples/api-field-control.md +0 -548
  136. package/embedded-knowledge/domains/jordan-bridge/samples/api-url-naming.md +0 -287
  137. package/embedded-knowledge/domains/jordan-bridge/samples/business-process-templates.md +0 -434
  138. package/embedded-knowledge/domains/jordan-bridge/samples/etag-implementation.md +0 -508
  139. package/embedded-knowledge/domains/jordan-bridge/samples/task-scheduler-pattern.md +0 -615
  140. package/embedded-knowledge/domains/jordan-bridge/task-scheduler-pattern-implementation.md +0 -144
  141. package/embedded-knowledge/domains/jordan-bridge/url-structure-naming-patterns.md +0 -96
  142. package/embedded-knowledge/domains/maya-mentor/case-multiple-conditions-ranges.md +0 -124
  143. package/embedded-knowledge/domains/maya-mentor/case-statement-syntax-structure.md +0 -84
  144. package/embedded-knowledge/domains/maya-mentor/fielderror-syntax-usage.md +0 -75
  145. package/embedded-knowledge/domains/maya-mentor/fielderror-vs-testfield.md +0 -96
  146. package/embedded-knowledge/domains/maya-mentor/samples/case-statement-multiple-conditions.md +0 -385
  147. package/embedded-knowledge/domains/maya-mentor/samples/case-statement-syntax-structure.md +0 -72
  148. package/embedded-knowledge/domains/maya-mentor/samples/fielderror-syntax-usage.md +0 -48
  149. package/embedded-knowledge/domains/maya-mentor/samples/testfield-basic-syntax.md +0 -49
  150. package/embedded-knowledge/domains/maya-mentor/testfield-basic-syntax.md +0 -67
  151. package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +0 -119
  152. package/embedded-knowledge/domains/quinn-tester/rule-execution.md +0 -123
  153. package/embedded-knowledge/domains/quinn-tester/samples/case-error-handling.md +0 -64
  154. package/embedded-knowledge/domains/quinn-tester/samples/fielderror-message-construction.md +0 -60
  155. package/embedded-knowledge/domains/quinn-tester/samples/fielderror-validation-patterns.md +0 -83
  156. package/embedded-knowledge/domains/quinn-tester/samples/rule-execution.md +0 -716
  157. package/embedded-knowledge/domains/quinn-tester/samples/table-safety-validation-patterns.md +0 -101
  158. package/embedded-knowledge/domains/quinn-tester/samples/temporary-table-operation-validation.md +0 -91
  159. package/embedded-knowledge/domains/quinn-tester/table-safety-validation-patterns.md +0 -79
  160. package/embedded-knowledge/domains/quinn-tester/temporary-table-operation-validation.md +0 -79
  161. package/embedded-knowledge/domains/roger-reviewer/al-begin-end-block-structure.md +0 -89
  162. package/embedded-knowledge/domains/roger-reviewer/al-binary-operator-spacing.md +0 -76
  163. package/embedded-knowledge/domains/roger-reviewer/al-blank-line-organization.md +0 -76
  164. package/embedded-knowledge/domains/roger-reviewer/al-case-action-formatting.md +0 -76
  165. package/embedded-knowledge/domains/roger-reviewer/al-code-spacing-conventions.md +0 -81
  166. package/embedded-knowledge/domains/roger-reviewer/al-comment-spacing-standards.md +0 -76
  167. package/embedded-knowledge/domains/roger-reviewer/al-end-else-pairing.md +0 -75
  168. package/embedded-knowledge/domains/roger-reviewer/al-keyword-indentation-rules.md +0 -76
  169. package/embedded-knowledge/domains/roger-reviewer/al-line-start-keyword-positioning.md +0 -76
  170. package/embedded-knowledge/domains/roger-reviewer/al-separate-if-else-formatting.md +0 -76
  171. package/embedded-knowledge/domains/roger-reviewer/al-standard-abbreviations.md +0 -96
  172. package/embedded-knowledge/domains/roger-reviewer/al-statement-per-line-rule.md +0 -76
  173. package/embedded-knowledge/domains/roger-reviewer/al-unnecessary-else-elimination.md +0 -86
  174. package/embedded-knowledge/domains/roger-reviewer/al-variable-declaration-order.md +0 -90
  175. package/embedded-knowledge/domains/roger-reviewer/al-variable-naming-conventions.md +0 -82
  176. package/embedded-knowledge/domains/roger-reviewer/begin-block-statement-clarity.md +0 -78
  177. package/embedded-knowledge/domains/roger-reviewer/begin-end-positioning-patterns.md +0 -76
  178. package/embedded-knowledge/domains/roger-reviewer/binary-operator-line-positioning.md +0 -78
  179. package/embedded-knowledge/domains/roger-reviewer/boolean-expression-simplification-al.md +0 -100
  180. package/embedded-knowledge/domains/roger-reviewer/case-statement-error-handling-troubleshooting.md +0 -115
  181. package/embedded-knowledge/domains/roger-reviewer/compound-statement-readability.md +0 -124
  182. package/embedded-knowledge/domains/roger-reviewer/lonely-repeat-statement-pattern.md +0 -110
  183. package/embedded-knowledge/domains/roger-reviewer/samples/al-begin-end-blocks.md +0 -438
  184. package/embedded-knowledge/domains/roger-reviewer/samples/al-binary-operator-spacing.md +0 -255
  185. package/embedded-knowledge/domains/roger-reviewer/samples/al-comment-spacing-standards.md +0 -209
  186. package/embedded-knowledge/domains/roger-reviewer/samples/al-keyword-indentation-rules.md +0 -218
  187. package/embedded-knowledge/domains/roger-reviewer/samples/al-line-start-keyword-positioning.md +0 -218
  188. package/embedded-knowledge/domains/roger-reviewer/samples/al-separate-if-else-formatting.md +0 -280
  189. package/embedded-knowledge/domains/roger-reviewer/samples/al-statement-per-line-rule.md +0 -188
  190. package/embedded-knowledge/domains/roger-reviewer/samples/al-unnecessary-else-elimination.md +0 -245
  191. package/embedded-knowledge/domains/roger-reviewer/samples/al-variable-declaration-order.md +0 -244
  192. package/embedded-knowledge/domains/roger-reviewer/samples/begin-end-positioning.md +0 -278
  193. package/embedded-knowledge/domains/roger-reviewer/samples/boolean-simplification-examples.md +0 -484
  194. package/embedded-knowledge/domains/roger-reviewer/samples/case-error-handling.md +0 -64
  195. package/embedded-knowledge/domains/roger-reviewer/samples/compound-statement-readability.md +0 -107
  196. package/embedded-knowledge/domains/roger-reviewer/samples/lonely-repeat-examples.md +0 -280
  197. package/embedded-knowledge/domains/sam-coder/al-formatting-consistency-patterns.md +0 -75
  198. package/embedded-knowledge/domains/sam-coder/al-line-comment-formatting.md +0 -67
  199. package/embedded-knowledge/domains/sam-coder/al-lonely-repeat-pattern.md +0 -76
  200. package/embedded-knowledge/domains/sam-coder/al-named-parameter-pattern.md +0 -98
  201. package/embedded-knowledge/domains/sam-coder/al-object-navigation-shortcuts.md +0 -128
  202. package/embedded-knowledge/domains/sam-coder/al-readability-optimization.md +0 -75
  203. package/embedded-knowledge/domains/sam-coder/al-record-find-early-exit.md +0 -95
  204. package/embedded-knowledge/domains/sam-coder/command-queue-pattern-al.md +0 -141
  205. package/embedded-knowledge/domains/sam-coder/deleteall-alternative-implementation.md +0 -91
  206. package/embedded-knowledge/domains/sam-coder/deleteall-method-usage.md +0 -118
  207. package/embedded-knowledge/domains/sam-coder/deleteall-trigger-execution.md +0 -111
  208. package/embedded-knowledge/domains/sam-coder/event-bridge-pattern-al.md +0 -113
  209. package/embedded-knowledge/domains/sam-coder/event-payload-design-patterns.md +0 -127
  210. package/embedded-knowledge/domains/sam-coder/generic-method-patterns-al.md +0 -141
  211. package/embedded-knowledge/domains/sam-coder/manual-binding-conditional-subscribers.md +0 -66
  212. package/embedded-knowledge/domains/sam-coder/nested-compound-best-practices.md +0 -96
  213. package/embedded-knowledge/domains/sam-coder/samples/al-blank-line-organization.md +0 -161
  214. package/embedded-knowledge/domains/sam-coder/samples/al-case-action-formatting.md +0 -177
  215. package/embedded-knowledge/domains/sam-coder/samples/al-lonely-repeat-pattern.md +0 -239
  216. package/embedded-knowledge/domains/sam-coder/samples/al-named-parameter-pattern.md +0 -346
  217. package/embedded-knowledge/domains/sam-coder/samples/al-record-find-early-exit.md +0 -298
  218. package/embedded-knowledge/domains/sam-coder/samples/command-queue-pattern.md +0 -677
  219. package/embedded-knowledge/domains/sam-coder/samples/deleteall-alternative-implementation.md +0 -117
  220. package/embedded-knowledge/domains/sam-coder/samples/deleteall-triggers.md +0 -75
  221. package/embedded-knowledge/domains/sam-coder/samples/deleteall-usage.md +0 -169
  222. package/embedded-knowledge/domains/sam-coder/samples/event-bridge-pattern.md +0 -399
  223. package/embedded-knowledge/domains/sam-coder/samples/event-payload-design.md +0 -356
  224. package/embedded-knowledge/domains/sam-coder/samples/generic-method-patterns.md +0 -889
  225. package/embedded-knowledge/domains/sam-coder/samples/manual-binding.md +0 -84
  226. package/embedded-knowledge/domains/sam-coder/samples/nested-compound-best-practices.md +0 -127
  227. package/embedded-knowledge/domains/sam-coder/samples/single-to-compound-conversion.md +0 -89
  228. package/embedded-knowledge/domains/sam-coder/samples/template-method-pattern.md +0 -516
  229. package/embedded-knowledge/domains/sam-coder/samples/testfield-patterns.md +0 -61
  230. package/embedded-knowledge/domains/sam-coder/samples/type-safe-operations.md +0 -427
  231. package/embedded-knowledge/domains/sam-coder/single-to-compound-conversion.md +0 -122
  232. package/embedded-knowledge/domains/sam-coder/template-method-pattern-al.md +0 -96
  233. package/embedded-knowledge/domains/sam-coder/testfield-patterns.md +0 -101
  234. package/embedded-knowledge/domains/sam-coder/type-safe-operations-al.md +0 -149
  235. package/embedded-knowledge/domains/sam-coder/vs-code-al-keyboard-shortcuts.md +0 -107
  236. package/embedded-knowledge/domains/seth-security/al-temporary-table-safety.md +0 -95
  237. package/embedded-knowledge/domains/seth-security/api-permission-model.md +0 -115
  238. package/embedded-knowledge/domains/seth-security/istemporary-safeguard-pattern.md +0 -78
  239. package/embedded-knowledge/domains/seth-security/samples/al-temporary-table-safety.md +0 -373
  240. package/embedded-knowledge/domains/seth-security/samples/api-permission-model.md +0 -308
  241. package/embedded-knowledge/domains/shared/al-file-naming-conventions.md +0 -146
  242. package/embedded-knowledge/domains/taylor-docs/al-xml-documentation-structure.md +0 -79
  243. package/embedded-knowledge/domains/uma-ux/bc-action-shortcuts-syntax.md +0 -78
  244. package/embedded-knowledge/domains/uma-ux/shortcut-key-user-experience-design.md +0 -81
  245. package/embedded-knowledge/indexes/bc-version-matrix.json +0 -188
  246. package/embedded-knowledge/indexes/domain-catalog.json +0 -106
  247. package/embedded-knowledge/indexes/tags/abbreviations.json +0 -1
  248. package/embedded-knowledge/indexes/tags/abstraction.json +0 -1
  249. package/embedded-knowledge/indexes/tags/access-control.json +0 -1
  250. package/embedded-knowledge/indexes/tags/accessibility.json +0 -1
  251. package/embedded-knowledge/indexes/tags/actions.json +0 -1
  252. package/embedded-knowledge/indexes/tags/advanced-patterns.json +0 -1
  253. package/embedded-knowledge/indexes/tags/advanced.json +0 -1
  254. package/embedded-knowledge/indexes/tags/al-extension.json +0 -1
  255. package/embedded-knowledge/indexes/tags/al-generics.json +0 -1
  256. package/embedded-knowledge/indexes/tags/al-objects.json +0 -1
  257. package/embedded-knowledge/indexes/tags/al-syntax.json +0 -1
  258. package/embedded-knowledge/indexes/tags/algorithm-structure.json +0 -1
  259. package/embedded-knowledge/indexes/tags/alternatives.json +0 -1
  260. package/embedded-knowledge/indexes/tags/analytics.json +0 -1
  261. package/embedded-knowledge/indexes/tags/api-delegates.json +0 -1
  262. package/embedded-knowledge/indexes/tags/api-design.json +0 -1
  263. package/embedded-knowledge/indexes/tags/api-documentation.json +0 -1
  264. package/embedded-knowledge/indexes/tags/api-endpoints.json +0 -1
  265. package/embedded-knowledge/indexes/tags/api-extensibility.json +0 -1
  266. package/embedded-knowledge/indexes/tags/api-fieldsets.json +0 -1
  267. package/embedded-knowledge/indexes/tags/api-integration.json +0 -1
  268. package/embedded-knowledge/indexes/tags/api-interfaces.json +0 -1
  269. package/embedded-knowledge/indexes/tags/api-optimization.json +0 -1
  270. package/embedded-knowledge/indexes/tags/api-pages.json +0 -1
  271. package/embedded-knowledge/indexes/tags/api-patterns.json +0 -1
  272. package/embedded-knowledge/indexes/tags/api-permissions.json +0 -1
  273. package/embedded-knowledge/indexes/tags/api-responses.json +0 -1
  274. package/embedded-knowledge/indexes/tags/api-simplification.json +0 -1
  275. package/embedded-knowledge/indexes/tags/api.json +0 -1
  276. package/embedded-knowledge/indexes/tags/architecture.json +0 -1
  277. package/embedded-knowledge/indexes/tags/async-patterns.json +0 -1
  278. package/embedded-knowledge/indexes/tags/async-processing.json +0 -1
  279. package/embedded-knowledge/indexes/tags/automatic-registration.json +0 -1
  280. package/embedded-knowledge/indexes/tags/batch-operations.json +0 -1
  281. package/embedded-knowledge/indexes/tags/bc24-migration.json +0 -1
  282. package/embedded-knowledge/indexes/tags/begin-blocks.json +0 -1
  283. package/embedded-knowledge/indexes/tags/begin-end.json +0 -1
  284. package/embedded-knowledge/indexes/tags/behavioral-patterns.json +0 -1
  285. package/embedded-knowledge/indexes/tags/best-practices.json +0 -1
  286. package/embedded-knowledge/indexes/tags/binding.json +0 -1
  287. package/embedded-knowledge/indexes/tags/block-structure.json +0 -1
  288. package/embedded-knowledge/indexes/tags/blocks.json +0 -1
  289. package/embedded-knowledge/indexes/tags/boolean-expressions.json +0 -1
  290. package/embedded-knowledge/indexes/tags/branching.json +0 -1
  291. package/embedded-knowledge/indexes/tags/breaking-changes.json +0 -1
  292. package/embedded-knowledge/indexes/tags/breakpoints.json +0 -1
  293. package/embedded-knowledge/indexes/tags/business-foundation.json +0 -1
  294. package/embedded-knowledge/indexes/tags/business-infrastructure.json +0 -1
  295. package/embedded-knowledge/indexes/tags/business-process.json +0 -1
  296. package/embedded-knowledge/indexes/tags/business-rules.json +0 -1
  297. package/embedded-knowledge/indexes/tags/caching.json +0 -1
  298. package/embedded-knowledge/indexes/tags/case-statements.json +0 -1
  299. package/embedded-knowledge/indexes/tags/case.json +0 -1
  300. package/embedded-knowledge/indexes/tags/code-analysis.json +0 -1
  301. package/embedded-knowledge/indexes/tags/code-clarity.json +0 -1
  302. package/embedded-knowledge/indexes/tags/code-comprehension.json +0 -1
  303. package/embedded-knowledge/indexes/tags/code-conversion.json +0 -1
  304. package/embedded-knowledge/indexes/tags/code-formatting.json +0 -1
  305. package/embedded-knowledge/indexes/tags/code-organization.json +0 -1
  306. package/embedded-knowledge/indexes/tags/code-patterns.json +0 -1
  307. package/embedded-knowledge/indexes/tags/code-quality.json +0 -1
  308. package/embedded-knowledge/indexes/tags/code-reuse.json +0 -1
  309. package/embedded-knowledge/indexes/tags/code-simplification.json +0 -1
  310. package/embedded-knowledge/indexes/tags/code-standards.json +0 -1
  311. package/embedded-knowledge/indexes/tags/code-structure.json +0 -1
  312. package/embedded-knowledge/indexes/tags/code-style.json +0 -1
  313. package/embedded-knowledge/indexes/tags/codeunit-design.json +0 -1
  314. package/embedded-knowledge/indexes/tags/command-queue.json +0 -1
  315. package/embedded-knowledge/indexes/tags/comments.json +0 -1
  316. package/embedded-knowledge/indexes/tags/compile-time-validation.json +0 -1
  317. package/embedded-knowledge/indexes/tags/complex-facade.json +0 -1
  318. package/embedded-knowledge/indexes/tags/complexity-hiding.json +0 -1
  319. package/embedded-knowledge/indexes/tags/complexity-management.json +0 -1
  320. package/embedded-knowledge/indexes/tags/compound-statements.json +0 -1
  321. package/embedded-knowledge/indexes/tags/concurrency.json +0 -1
  322. package/embedded-knowledge/indexes/tags/conditional-logic.json +0 -1
  323. package/embedded-knowledge/indexes/tags/conditional.json +0 -1
  324. package/embedded-knowledge/indexes/tags/conflict-resolution.json +0 -1
  325. package/embedded-knowledge/indexes/tags/consistency.json +0 -1
  326. package/embedded-knowledge/indexes/tags/contract-design.json +0 -1
  327. package/embedded-knowledge/indexes/tags/control-flow.json +0 -1
  328. package/embedded-knowledge/indexes/tags/conversion-guide.json +0 -1
  329. package/embedded-knowledge/indexes/tags/correlation.json +0 -1
  330. package/embedded-knowledge/indexes/tags/custom-messages.json +0 -1
  331. package/embedded-knowledge/indexes/tags/data-access.json +0 -1
  332. package/embedded-knowledge/indexes/tags/data-exposure.json +0 -1
  333. package/embedded-knowledge/indexes/tags/data-integrity.json +0 -1
  334. package/embedded-knowledge/indexes/tags/data-loading.json +0 -1
  335. package/embedded-knowledge/indexes/tags/data-manipulation.json +0 -1
  336. package/embedded-knowledge/indexes/tags/data-modeling.json +0 -1
  337. package/embedded-knowledge/indexes/tags/data-patterns.json +0 -1
  338. package/embedded-knowledge/indexes/tags/data-protection.json +0 -1
  339. package/embedded-knowledge/indexes/tags/data-validation.json +0 -1
  340. package/embedded-knowledge/indexes/tags/database.json +0 -1
  341. package/embedded-knowledge/indexes/tags/debugging.json +0 -1
  342. package/embedded-knowledge/indexes/tags/decision-making.json +0 -1
  343. package/embedded-knowledge/indexes/tags/declaration.json +0 -1
  344. package/embedded-knowledge/indexes/tags/default-messages.json +0 -1
  345. package/embedded-knowledge/indexes/tags/defensive-programming.json +0 -1
  346. package/embedded-knowledge/indexes/tags/deleteall.json +0 -1
  347. package/embedded-knowledge/indexes/tags/dependencies.json +0 -1
  348. package/embedded-knowledge/indexes/tags/deployment.json +0 -1
  349. package/embedded-knowledge/indexes/tags/developer-productivity.json +0 -1
  350. package/embedded-knowledge/indexes/tags/development-workflow.json +0 -1
  351. package/embedded-knowledge/indexes/tags/diagnostics.json +0 -1
  352. package/embedded-knowledge/indexes/tags/dimensions.json +0 -1
  353. package/embedded-knowledge/indexes/tags/documentation.json +0 -1
  354. package/embedded-knowledge/indexes/tags/early-exit.json +0 -1
  355. package/embedded-knowledge/indexes/tags/else-clauses.json +0 -1
  356. package/embedded-knowledge/indexes/tags/end-statements.json +0 -1
  357. package/embedded-knowledge/indexes/tags/enterprise-patterns.json +0 -1
  358. package/embedded-knowledge/indexes/tags/entity-relationships.json +0 -1
  359. package/embedded-knowledge/indexes/tags/error-handling.json +0 -1
  360. package/embedded-knowledge/indexes/tags/error-messages.json +0 -1
  361. package/embedded-knowledge/indexes/tags/error-prevention.json +0 -1
  362. package/embedded-knowledge/indexes/tags/error-text.json +0 -1
  363. package/embedded-knowledge/indexes/tags/etag.json +0 -1
  364. package/embedded-knowledge/indexes/tags/event-bridge.json +0 -1
  365. package/embedded-knowledge/indexes/tags/event-payload.json +0 -1
  366. package/embedded-knowledge/indexes/tags/event-routing.json +0 -1
  367. package/embedded-knowledge/indexes/tags/events.json +0 -1
  368. package/embedded-knowledge/indexes/tags/execution-flow.json +0 -1
  369. package/embedded-knowledge/indexes/tags/expressions.json +0 -1
  370. package/embedded-knowledge/indexes/tags/extensibility.json +0 -1
  371. package/embedded-knowledge/indexes/tags/extensions.json +0 -1
  372. package/embedded-knowledge/indexes/tags/facade-composition.json +0 -1
  373. package/embedded-knowledge/indexes/tags/facade-pattern.json +0 -1
  374. package/embedded-knowledge/indexes/tags/field-control.json +0 -1
  375. package/embedded-knowledge/indexes/tags/field-exclusion.json +0 -1
  376. package/embedded-knowledge/indexes/tags/field-registration.json +0 -1
  377. package/embedded-knowledge/indexes/tags/field-state.json +0 -1
  378. package/embedded-knowledge/indexes/tags/field-validation.json +0 -1
  379. package/embedded-knowledge/indexes/tags/fielderror.json +0 -1
  380. package/embedded-knowledge/indexes/tags/fields.json +0 -1
  381. package/embedded-knowledge/indexes/tags/filtering.json +0 -1
  382. package/embedded-knowledge/indexes/tags/filters.json +0 -1
  383. package/embedded-knowledge/indexes/tags/formatting.json +0 -1
  384. package/embedded-knowledge/indexes/tags/generic-methods.json +0 -1
  385. package/embedded-knowledge/indexes/tags/http-status.json +0 -1
  386. package/embedded-knowledge/indexes/tags/if-statements.json +0 -1
  387. package/embedded-knowledge/indexes/tags/implementation.json +0 -1
  388. package/embedded-knowledge/indexes/tags/indentation.json +0 -1
  389. package/embedded-knowledge/indexes/tags/index-summary.json +0 -277
  390. package/embedded-knowledge/indexes/tags/indexing.json +0 -1
  391. package/embedded-knowledge/indexes/tags/inheritance.json +0 -1
  392. package/embedded-knowledge/indexes/tags/integration.json +0 -1
  393. package/embedded-knowledge/indexes/tags/integrity-checking.json +0 -1
  394. package/embedded-knowledge/indexes/tags/intellisense.json +0 -1
  395. package/embedded-knowledge/indexes/tags/interface-design.json +0 -1
  396. package/embedded-knowledge/indexes/tags/interface-segregation.json +0 -1
  397. package/embedded-knowledge/indexes/tags/isolation.json +0 -1
  398. package/embedded-knowledge/indexes/tags/job-processing.json +0 -1
  399. package/embedded-knowledge/indexes/tags/keyboard-navigation.json +0 -1
  400. package/embedded-knowledge/indexes/tags/keywords.json +0 -1
  401. package/embedded-knowledge/indexes/tags/legacy-modernization.json +0 -1
  402. package/embedded-knowledge/indexes/tags/line-breaks.json +0 -1
  403. package/embedded-knowledge/indexes/tags/line-organization.json +0 -1
  404. package/embedded-knowledge/indexes/tags/line-positioning.json +0 -1
  405. package/embedded-knowledge/indexes/tags/localization.json +0 -1
  406. package/embedded-knowledge/indexes/tags/logging.json +0 -1
  407. package/embedded-knowledge/indexes/tags/loose-coupling.json +0 -1
  408. package/embedded-knowledge/indexes/tags/maintainability.json +0 -1
  409. package/embedded-knowledge/indexes/tags/memory-management.json +0 -1
  410. package/embedded-knowledge/indexes/tags/memory-optimization.json +0 -1
  411. package/embedded-knowledge/indexes/tags/memory.json +0 -1
  412. package/embedded-knowledge/indexes/tags/message-design.json +0 -1
  413. package/embedded-knowledge/indexes/tags/message-formatting.json +0 -1
  414. package/embedded-knowledge/indexes/tags/message-patterns.json +0 -1
  415. package/embedded-knowledge/indexes/tags/metadata-driven.json +0 -1
  416. package/embedded-knowledge/indexes/tags/method-comparison.json +0 -1
  417. package/embedded-knowledge/indexes/tags/module-architecture.json +0 -1
  418. package/embedded-knowledge/indexes/tags/module-validation.json +0 -1
  419. package/embedded-knowledge/indexes/tags/monitoring.json +0 -1
  420. package/embedded-knowledge/indexes/tags/multi-layer-facade.json +0 -1
  421. package/embedded-knowledge/indexes/tags/multi-tenancy.json +0 -1
  422. package/embedded-knowledge/indexes/tags/multiple-values.json +0 -1
  423. package/embedded-knowledge/indexes/tags/naming-conventions.json +0 -1
  424. package/embedded-knowledge/indexes/tags/naming.json +0 -1
  425. package/embedded-knowledge/indexes/tags/navigation.json +0 -1
  426. package/embedded-knowledge/indexes/tags/nested-statements.json +0 -1
  427. package/embedded-knowledge/indexes/tags/no-series-conversion.json +0 -1
  428. package/embedded-knowledge/indexes/tags/no-series-validation.json +0 -1
  429. package/embedded-knowledge/indexes/tags/no-series.json +0 -1
  430. package/embedded-knowledge/indexes/tags/number-generation.json +0 -1
  431. package/embedded-knowledge/indexes/tags/object-documentation.json +0 -1
  432. package/embedded-knowledge/indexes/tags/odata.json +0 -1
  433. package/embedded-knowledge/indexes/tags/ondelete.json +0 -1
  434. package/embedded-knowledge/indexes/tags/onvalidate.json +0 -1
  435. package/embedded-knowledge/indexes/tags/operation-delegation.json +0 -1
  436. package/embedded-knowledge/indexes/tags/operation-safety.json +0 -1
  437. package/embedded-knowledge/indexes/tags/operators.json +0 -1
  438. package/embedded-knowledge/indexes/tags/optimization.json +0 -1
  439. package/embedded-knowledge/indexes/tags/order.json +0 -1
  440. package/embedded-knowledge/indexes/tags/organization.json +0 -1
  441. package/embedded-knowledge/indexes/tags/pages.json +0 -1
  442. package/embedded-knowledge/indexes/tags/parameters.json +0 -1
  443. package/embedded-knowledge/indexes/tags/patterns.json +0 -1
  444. package/embedded-knowledge/indexes/tags/performance-optimization.json +0 -1
  445. package/embedded-knowledge/indexes/tags/performance.json +0 -1
  446. package/embedded-knowledge/indexes/tags/placement.json +0 -1
  447. package/embedded-knowledge/indexes/tags/posting-codeunits.json +0 -1
  448. package/embedded-knowledge/indexes/tags/posting.json +0 -1
  449. package/embedded-knowledge/indexes/tags/preconditions.json +0 -1
  450. package/embedded-knowledge/indexes/tags/primary-key.json +0 -1
  451. package/embedded-knowledge/indexes/tags/privacy.json +0 -1
  452. package/embedded-knowledge/indexes/tags/process-automation.json +0 -1
  453. package/embedded-knowledge/indexes/tags/production.json +0 -1
  454. package/embedded-knowledge/indexes/tags/productivity.json +0 -1
  455. package/embedded-knowledge/indexes/tags/query-performance.json +0 -1
  456. package/embedded-knowledge/indexes/tags/queue-management.json +0 -1
  457. package/embedded-knowledge/indexes/tags/ranges.json +0 -1
  458. package/embedded-knowledge/indexes/tags/readability.json +0 -1
  459. package/embedded-knowledge/indexes/tags/record-access.json +0 -1
  460. package/embedded-knowledge/indexes/tags/record-methods.json +0 -1
  461. package/embedded-knowledge/indexes/tags/refactoring.json +0 -1
  462. package/embedded-knowledge/indexes/tags/reference.json +0 -1
  463. package/embedded-knowledge/indexes/tags/repeat-loops.json +0 -1
  464. package/embedded-knowledge/indexes/tags/repeat-statement.json +0 -1
  465. package/embedded-knowledge/indexes/tags/runtime-errors.json +0 -1
  466. package/embedded-knowledge/indexes/tags/runtime.json +0 -1
  467. package/embedded-knowledge/indexes/tags/safeguards.json +0 -1
  468. package/embedded-knowledge/indexes/tags/security.json +0 -1
  469. package/embedded-knowledge/indexes/tags/sequence-management.json +0 -1
  470. package/embedded-knowledge/indexes/tags/serialization.json +0 -1
  471. package/embedded-knowledge/indexes/tags/session-logmessage.json +0 -1
  472. package/embedded-knowledge/indexes/tags/session.json +0 -1
  473. package/embedded-knowledge/indexes/tags/setloadfields.json +0 -1
  474. package/embedded-knowledge/indexes/tags/shortcuts.json +0 -1
  475. package/embedded-knowledge/indexes/tags/sift.json +0 -1
  476. package/embedded-knowledge/indexes/tags/singleinstance.json +0 -1
  477. package/embedded-knowledge/indexes/tags/spacing.json +0 -1
  478. package/embedded-knowledge/indexes/tags/sql-translation.json +0 -1
  479. package/embedded-knowledge/indexes/tags/standards.json +0 -1
  480. package/embedded-knowledge/indexes/tags/statements.json +0 -1
  481. package/embedded-knowledge/indexes/tags/streaming.json +0 -1
  482. package/embedded-knowledge/indexes/tags/strong-typing.json +0 -1
  483. package/embedded-knowledge/indexes/tags/structural-patterns.json +0 -1
  484. package/embedded-knowledge/indexes/tags/structure.json +0 -1
  485. package/embedded-knowledge/indexes/tags/subscribers.json +0 -1
  486. package/embedded-knowledge/indexes/tags/switch.json +0 -1
  487. package/embedded-knowledge/indexes/tags/symbol-search.json +0 -1
  488. package/embedded-knowledge/indexes/tags/syntax.json +0 -1
  489. package/embedded-knowledge/indexes/tags/systemid.json +0 -1
  490. package/embedded-knowledge/indexes/tags/table-configuration.json +0 -1
  491. package/embedded-knowledge/indexes/tags/table-events.json +0 -1
  492. package/embedded-knowledge/indexes/tags/table-keys.json +0 -1
  493. package/embedded-knowledge/indexes/tags/table-safety.json +0 -1
  494. package/embedded-knowledge/indexes/tags/task-scheduler.json +0 -1
  495. package/embedded-knowledge/indexes/tags/telemetry.json +0 -1
  496. package/embedded-knowledge/indexes/tags/template-method.json +0 -1
  497. package/embedded-knowledge/indexes/tags/temporary-tables.json +0 -1
  498. package/embedded-knowledge/indexes/tags/testfield.json +0 -1
  499. package/embedded-knowledge/indexes/tags/tradeoffs.json +0 -1
  500. package/embedded-knowledge/indexes/tags/triggers.json +0 -1
  501. package/embedded-knowledge/indexes/tags/troubleshooting.json +0 -1
  502. package/embedded-knowledge/indexes/tags/type-safety.json +0 -1
  503. package/embedded-knowledge/indexes/tags/url-structure.json +0 -1
  504. package/embedded-knowledge/indexes/tags/user-experience.json +0 -1
  505. package/embedded-knowledge/indexes/tags/user-feedback.json +0 -1
  506. package/embedded-knowledge/indexes/tags/user-interface.json +0 -1
  507. package/embedded-knowledge/indexes/tags/validation-feedback.json +0 -1
  508. package/embedded-knowledge/indexes/tags/validation.json +0 -1
  509. package/embedded-knowledge/indexes/tags/variables.json +0 -1
  510. package/embedded-knowledge/indexes/tags/verbosity.json +0 -1
  511. package/embedded-knowledge/indexes/tags/vs-code.json +0 -1
  512. package/embedded-knowledge/indexes/tags/web-services.json +0 -1
  513. package/embedded-knowledge/indexes/tags/workflow-management.json +0 -1
  514. package/embedded-knowledge/indexes/tags/workflow-optimization.json +0 -1
  515. package/embedded-knowledge/indexes/tags/workflow-templates.json +0 -1
  516. package/embedded-knowledge/indexes/tags/workspace.json +0 -1
  517. package/embedded-knowledge/indexes/tags/xml-documentation.json +0 -1
  518. package/embedded-knowledge/indexes/topic-relationships.json +0 -128
  519. package/embedded-knowledge/methodologies/index.json +0 -81
  520. package/embedded-knowledge/methodologies/phases/analysis-full.md +0 -208
  521. package/embedded-knowledge/methodologies/phases/analysis-quick.md +0 -44
  522. package/embedded-knowledge/methodologies/phases/analysis.md +0 -182
  523. package/embedded-knowledge/methodologies/phases/execution-validation-full.md +0 -174
  524. package/embedded-knowledge/methodologies/phases/execution-validation-quick.md +0 -31
  525. package/embedded-knowledge/methodologies/phases/execution-validation.md +0 -174
  526. package/embedded-knowledge/methodologies/phases/performance-full.md +0 -211
  527. package/embedded-knowledge/methodologies/phases/performance-quick.md +0 -32
  528. package/embedded-knowledge/methodologies/phases/performance.md +0 -211
  529. package/embedded-knowledge/methodologies/phases/verification-full.md +0 -162
  530. package/embedded-knowledge/methodologies/phases/verification-quick.md +0 -48
  531. package/embedded-knowledge/methodologies/phases/verification.md +0 -146
  532. package/embedded-knowledge/methodologies/workflow-enforcement.md +0 -142
  533. package/embedded-knowledge/methodologies/workflows/code-review-workflow.md +0 -99
  534. package/embedded-knowledge/specialists/alex-architect.md +0 -216
  535. package/embedded-knowledge/specialists/casey-copilot.md +0 -226
  536. package/embedded-knowledge/specialists/chris-config.md +0 -267
  537. package/embedded-knowledge/specialists/dean-debug.md +0 -222
  538. package/embedded-knowledge/specialists/eva-errors.md +0 -235
  539. package/embedded-knowledge/specialists/jordan-bridge.md +0 -235
  540. package/embedded-knowledge/specialists/logan-legacy.md +0 -209
  541. package/embedded-knowledge/specialists/maya-mentor.md +0 -211
  542. package/embedded-knowledge/specialists/morgan-market.md +0 -226
  543. package/embedded-knowledge/specialists/quinn-tester.md +0 -235
  544. package/embedded-knowledge/specialists/roger-reviewer.md +0 -234
  545. package/embedded-knowledge/specialists/sam-coder.md +0 -359
  546. package/embedded-knowledge/specialists/seth-security.md +0 -235
  547. package/embedded-knowledge/specialists/taylor-docs.md +0 -257
  548. package/embedded-knowledge/specialists/uma-ux.md +0 -235
@@ -1,186 +0,0 @@
1
- # BC24 No. Series Conversion Examples
2
-
3
- ## Complete Conversion Examples
4
-
5
- ### Sales Document Conversion
6
- ```al
7
- // BEFORE (BC14-23): Legacy NoSeriesManagement approach
8
- table 50100 "Sales Document"
9
- {
10
- trigger OnInsert()
11
- var
12
- NoSeriesMgt: Codeunit NoSeriesManagement;
13
- begin
14
- if "No." = '' then
15
- NoSeriesMgt.InitSeries(GetNoSeriesCode(), xRec."No. Series", 0D, "No.", "No. Series");
16
- end;
17
-
18
- procedure GetNoSeriesCode(): Code[20]
19
- begin
20
- exit('SALES-DOC');
21
- end;
22
- }
23
-
24
- // AFTER (BC24+): New No. Series module approach
25
- table 50100 "Sales Document"
26
- {
27
- trigger OnInsert()
28
- var
29
- NoSeries: Codeunit "No. Series";
30
- begin
31
- if "No." = '' then
32
- "No." := NoSeries.GetNextNo("No. Series", WorkDate());
33
- end;
34
-
35
- procedure GetNoSeriesCode(): Code[20]
36
- begin
37
- exit('SALES-DOC');
38
- end;
39
- }
40
- ```
41
-
42
- ### Manual Number Testing Conversion
43
- ```al
44
- // BEFORE (BC14-23): Multiple method calls for manual testing
45
- procedure ValidateManualEntry()
46
- var
47
- NoSeriesMgt: Codeunit NoSeriesManagement;
48
- begin
49
- NoSeriesMgt.TestManual("No. Series");
50
- if not NoSeriesMgt.ManualNoAllowed("No. Series") then
51
- Error('Manual numbers not allowed for series %1', "No. Series");
52
- end;
53
-
54
- // AFTER (BC24+): Single method with built-in logic
55
- procedure ValidateManualEntry()
56
- var
57
- NoSeries: Codeunit "No. Series";
58
- begin
59
- NoSeries.TestManual("No. Series");
60
- // Built-in error handling provides comprehensive validation
61
- end;
62
- ```
63
-
64
- ### Number Peek vs Allocation Conversion
65
- ```al
66
- // BEFORE (BC14-23): Boolean parameter controls behavior
67
- procedure GetNumberPreview(): Code[20]
68
- var
69
- NoSeriesMgt: Codeunit NoSeriesManagement;
70
- begin
71
- exit(NoSeriesMgt.GetNextNo("No. Series", WorkDate(), false)); // Peek only
72
- end;
73
-
74
- procedure AllocateNumber(): Code[20]
75
- var
76
- NoSeriesMgt: Codeunit NoSeriesManagement;
77
- begin
78
- exit(NoSeriesMgt.GetNextNo("No. Series", WorkDate(), true)); // Allocate
79
- end;
80
-
81
- // AFTER (BC24+): Explicit method names for clear intent
82
- procedure GetNumberPreview(): Code[20]
83
- var
84
- NoSeries: Codeunit "No. Series";
85
- begin
86
- exit(NoSeries.PeekNextNo("No. Series", WorkDate())); // Explicit peek
87
- end;
88
-
89
- procedure AllocateNumber(): Code[20]
90
- var
91
- NoSeries: Codeunit "No. Series";
92
- begin
93
- exit(NoSeries.GetNextNo("No. Series", WorkDate())); // Explicit allocation
94
- end;
95
- ```
96
-
97
- ## Event Migration Examples
98
-
99
- ### Replacing Obsolete Events
100
- ```al
101
- // BEFORE (BC14-23): Event subscriber approach
102
- [EventSubscriber(ObjectType::Codeunit, Codeunit::NoSeriesManagement, 'OnBeforeGetNextNo', '', true, true)]
103
- local procedure OnBeforeGetNextNo(NoSeriesCode: Code[20]; var NoSeriesLine: Record "No. Series Line"; var IsHandled: Boolean)
104
- begin
105
- // Custom logic before number generation
106
- if NoSeriesCode = 'SPECIAL-SERIES' then begin
107
- PerformCustomValidation(NoSeriesCode);
108
- IsHandled := true;
109
- end;
110
- end;
111
-
112
- // AFTER (BC24+): Direct method call with wrapper
113
- procedure GetNextNoWithCustomLogic(SeriesCode: Code[20]): Code[20]
114
- var
115
- NoSeries: Codeunit "No. Series";
116
- begin
117
- // Pre-processing logic (replaces OnBeforeGetNextNo)
118
- if SeriesCode = 'SPECIAL-SERIES' then
119
- PerformCustomValidation(SeriesCode);
120
-
121
- // Get number using new module
122
- exit(NoSeries.GetNextNo(SeriesCode, WorkDate()));
123
- end;
124
- ```
125
-
126
- ### Complex Event Replacement
127
- ```al
128
- // BEFORE (BC14-23): Multiple event subscriptions
129
- [EventSubscriber(ObjectType::Codeunit, Codeunit::NoSeriesManagement, 'OnAfterGetNextNo', '', true, true)]
130
- local procedure OnAfterGetNextNo(NoSeriesCode: Code[20]; NextNo: Code[20])
131
- begin
132
- LogNumberAllocation(NoSeriesCode, NextNo);
133
- UpdateRelatedSeries(NoSeriesCode, NextNo);
134
- end;
135
-
136
- // AFTER (BC24+): Integrated procedure with post-processing
137
- procedure AllocateNumberWithLogging(SeriesCode: Code[20]): Code[20]
138
- var
139
- NoSeries: Codeunit "No. Series";
140
- AllocatedNumber: Code[20];
141
- begin
142
- // Allocate number
143
- AllocatedNumber := NoSeries.GetNextNo(SeriesCode, WorkDate());
144
-
145
- // Post-processing logic (replaces OnAfterGetNextNo)
146
- LogNumberAllocation(SeriesCode, AllocatedNumber);
147
- UpdateRelatedSeries(SeriesCode, AllocatedNumber);
148
-
149
- exit(AllocatedNumber);
150
- end;
151
- ```
152
-
153
- ## Complete Migration Checklist
154
-
155
- ### Step 1: Variable Declaration Updates
156
- ```al
157
- // Remove these legacy declarations
158
- var
159
- NoSeriesMgt: Codeunit NoSeriesManagement;
160
-
161
- // Replace with new module references
162
- var
163
- NoSeries: Codeunit "No. Series";
164
- NoSeriesBatch: Codeunit "No. Series - Batch";
165
- ```
166
-
167
- ### Step 2: Method Call Replacements
168
- ```al
169
- // Replace all instances of these patterns:
170
- NoSeriesMgt.InitSeries(...) → NoSeries.GetNextNo(...)
171
- NoSeriesMgt.TestManual(...) → NoSeries.TestManual(...)
172
- NoSeriesMgt.SelectSeries(...) → NoSeries.LookupRelatedNoSeries(...)
173
- NoSeriesMgt.GetNextNo(..., false) → NoSeries.PeekNextNo(...)
174
- NoSeriesMgt.GetNextNo(..., true) → NoSeries.GetNextNo(...)
175
- ```
176
-
177
- ### Step 3: Error Handling Migration
178
- ```al
179
- // BEFORE: Custom error handling required
180
- if not NoSeriesMgt.TryFunction(...) then
181
- Error('Custom error message');
182
-
183
- // AFTER: Built-in error handling with try methods
184
- if not NoSeries.TryGetNextNo(ResultNo, SeriesCode, WorkDate()) then
185
- HandleSpecificFailureScenario();
186
- ```
@@ -1,60 +0,0 @@
1
- # Case Statement Performance Optimization - AL Code Samples
2
-
3
- ## Frequency-Based Ordering
4
-
5
- ```al
6
- procedure ProcessTransactionOptimized(TransactionType: Text[20]; Amount: Decimal): Boolean
7
- begin
8
- // Order by frequency - most common first
9
- case TransactionType of
10
- 'SALE': // 60% of transactions
11
- exit(ProcessSaleTransaction(Amount));
12
- 'PAYMENT': // 25% of transactions
13
- exit(ProcessPaymentTransaction(Amount));
14
- 'REFUND': // 10% of transactions
15
- exit(ProcessRefundTransaction(Amount));
16
- else
17
- exit(ProcessUnknownTransaction(TransactionType, Amount));
18
- end;
19
- end;
20
- ```
21
-
22
- ## Enum vs Text Performance
23
-
24
- ```al
25
- // Faster enum-based approach
26
- procedure ProcessTransactionEnum(TransactionType: Enum "Transaction Type"; Amount: Decimal): Boolean
27
- begin
28
- case TransactionType of
29
- TransactionType::Sale:
30
- exit(ProcessSaleTransaction(Amount));
31
- TransactionType::Payment:
32
- exit(ProcessPaymentTransaction(Amount));
33
- else
34
- exit(false);
35
- end;
36
- end;
37
- ```
38
-
39
- ## Dictionary Alternative for Large Case Sets
40
-
41
- ```al
42
- procedure ProcessWithDictionary(ProcessingType: Text[20]; Data: Text): Text
43
- var
44
- ProcessingFunctions: Dictionary of [Text, Integer];
45
- FunctionId: Integer;
46
- begin
47
- ProcessingFunctions.Add('FORMAT', 1);
48
- ProcessingFunctions.Add('VALIDATE', 2);
49
- ProcessingFunctions.Add('TRANSFORM', 3);
50
-
51
- if ProcessingFunctions.Get(ProcessingType, FunctionId) then
52
- case FunctionId of
53
- 1: exit(FormatData(Data));
54
- 2: exit(ValidateData(Data));
55
- 3: exit(TransformData(Data));
56
- end;
57
-
58
- exit('Unknown processing type');
59
- end;
60
- ```
@@ -1,139 +0,0 @@
1
- # AL Compound Statements for Enhanced Debugging Examples
2
-
3
- ## Strategic Breakpoint Placement
4
-
5
- ### Clear Breakpoint Locations with Compound Statements
6
- ```al
7
- local procedure ProcessCustomerOrder(var SalesHeader: Record "Sales Header"): Boolean
8
- var
9
- Customer: Record Customer;
10
- ValidationResult: Boolean;
11
- begin
12
- // Breakpoint here provides clear entry context
13
- if Customer.Get(SalesHeader."Sell-to Customer No.") then begin
14
- // Breakpoint here confirms customer retrieval success
15
- ValidationResult := ValidateCustomerData(Customer);
16
-
17
- if ValidationResult then begin
18
- // Breakpoint here enters successful validation path
19
- if ProcessOrderValidation(SalesHeader) then begin
20
- // Breakpoint here confirms order validation success
21
- ProcessApprovedOrder(SalesHeader);
22
- exit(true);
23
- end else begin
24
- // Breakpoint here enters order validation failure path
25
- LogOrderValidationFailure(SalesHeader."No.");
26
- exit(false);
27
- end;
28
- end else begin
29
- // Breakpoint here enters customer validation failure path
30
- LogCustomerValidationFailure(Customer."No.");
31
- exit(false);
32
- end;
33
- end else begin
34
- // Breakpoint here captures customer not found scenario
35
- LogCustomerNotFound(SalesHeader."Sell-to Customer No.");
36
- exit(false);
37
- end;
38
- end;
39
- ```
40
-
41
- ## Exception Context Enhancement
42
-
43
- ### Clear Exception Boundaries with Compound Statements
44
- ```al
45
- local procedure ProcessDocumentPosting(var GenJournalLine: Record "Gen. Journal Line")
46
- var
47
- PostingResult: Boolean;
48
- begin
49
- try
50
- // Compound block provides clear exception scope
51
- if ValidateJournalLine(GenJournalLine) then begin
52
- if CheckAccountingPeriod(GenJournalLine."Posting Date") then begin
53
- PostingResult := PostJournalLine(GenJournalLine);
54
-
55
- if PostingResult then begin
56
- // Breakpoint here confirms successful posting
57
- LogSuccessfulPosting(GenJournalLine."Document No.");
58
- end else begin
59
- // Breakpoint here captures posting failure
60
- LogPostingFailure(GenJournalLine."Document No.");
61
- end;
62
- end else begin
63
- // Breakpoint here captures period validation failure
64
- Error('Accounting period is closed for date %1', GenJournalLine."Posting Date");
65
- end;
66
- end else begin
67
- // Breakpoint here captures journal line validation failure
68
- Error('Journal line validation failed');
69
- end;
70
- except
71
- on E: Exception do begin
72
- // Breakpoint here provides clear exception context
73
- LogPostingException(GenJournalLine."Document No.", E.Message);
74
-
75
- if E.Message.Contains('period') then begin
76
- // Breakpoint here handles period-specific exceptions
77
- HandlePeriodException(GenJournalLine);
78
- end else begin
79
- // Breakpoint here handles general posting exceptions
80
- HandleGeneralPostingException(GenJournalLine, E);
81
- end;
82
- end;
83
- end;
84
- end;
85
- ```
86
-
87
- ## Loop Debugging with Compound Statements
88
-
89
- ### Clear Loop Iteration Boundaries
90
- ```al
91
- local procedure ProcessItemBatch(var ItemBuffer: Record "Item Buffer")
92
- var
93
- ProcessedCount: Integer;
94
- ErrorCount: Integer;
95
- CurrentItem: Code[20];
96
- begin
97
- ProcessedCount := 0;
98
- ErrorCount := 0;
99
-
100
- if ItemBuffer.FindSet() then begin
101
- // Breakpoint here confirms record set found
102
- repeat
103
- CurrentItem := ItemBuffer."No.";
104
-
105
- // Breakpoint here shows current item being processed
106
- if ValidateItemData(ItemBuffer) then begin
107
- // Breakpoint here enters successful validation path
108
- try
109
- if UpdateItemCosts(ItemBuffer) then begin
110
- // Breakpoint here confirms successful cost update
111
- ProcessedCount += 1;
112
- LogItemProcessed(CurrentItem);
113
- end else begin
114
- // Breakpoint here captures cost update failure
115
- ErrorCount += 1;
116
- LogItemError(CurrentItem, 'Cost update failed');
117
- end;
118
- except
119
- on E: Exception do begin
120
- // Breakpoint here captures processing exceptions
121
- ErrorCount += 1;
122
- LogItemException(CurrentItem, E.Message);
123
- end;
124
- end;
125
- end else begin
126
- // Breakpoint here captures validation failures
127
- ErrorCount += 1;
128
- LogItemValidationError(CurrentItem);
129
- end;
130
- until ItemBuffer.Next() = 0;
131
-
132
- // Breakpoint here provides final processing summary
133
- LogBatchSummary(ProcessedCount, ErrorCount);
134
- end else begin
135
- // Breakpoint here captures empty batch scenario
136
- LogEmptyBatch();
137
- end;
138
- end;
139
- ```
@@ -1,190 +0,0 @@
1
- # Custom Dimension Implementation Examples - AL Code Samples
2
-
3
- ## Standard Custom Dimensions Pattern
4
- ```al
5
- codeunit 50110 "Custom Dimensions Examples"
6
- {
7
- // Example 1: Building comprehensive custom dimensions
8
- procedure BuildStandardDimensions(): Dictionary of [Text, Text]
9
- var
10
- CustomDimensions: Dictionary of [Text, Text];
11
- begin
12
- // Core identification dimensions
13
- CustomDimensions.Add('CompanyName', CompanyName());
14
- CustomDimensions.Add('UserID', UserId());
15
- CustomDimensions.Add('SessionID', Format(SessionId()));
16
-
17
- // Environment context
18
- CustomDimensions.Add('Environment', GetEnvironmentType());
19
- CustomDimensions.Add('AppVersion', GetAppVersion());
20
- CustomDimensions.Add('BCVersion', GetBCVersion());
21
-
22
- // Temporal dimensions
23
- CustomDimensions.Add('Timestamp', Format(CurrentDateTime, 0, 9));
24
- CustomDimensions.Add('Date', Format(Today(), 0, '<Year4>-<Month,2>-<Day,2>'));
25
- CustomDimensions.Add('Hour', Format(Time(), 0, '<Hours24>'));
26
-
27
- exit(CustomDimensions);
28
- end;
29
-
30
- // Example 2: Business context dimensions
31
- procedure BuildBusinessContextDimensions(CustomerNo: Code[20]; ItemNo: Code[20]): Dictionary of [Text, Text]
32
- var
33
- CustomDimensions: Dictionary of [Text, Text];
34
- Customer: Record Customer;
35
- Item: Record Item;
36
- begin
37
- CustomDimensions := BuildStandardDimensions();
38
-
39
- // Customer context
40
- if Customer.Get(CustomerNo) then begin
41
- CustomDimensions.Add('CustomerNo', CustomerNo);
42
- CustomDimensions.Add('CustomerGroup', Customer."Customer Posting Group");
43
- CustomDimensions.Add('SalespersonCode', Customer."Salesperson Code");
44
- CustomDimensions.Add('CountryRegion', Customer."Country/Region Code");
45
- end;
46
-
47
- // Item context
48
- if Item.Get(ItemNo) then begin
49
- CustomDimensions.Add('ItemNo', ItemNo);
50
- CustomDimensions.Add('ItemCategory', Item."Item Category Code");
51
- CustomDimensions.Add('ItemType', Format(Item.Type));
52
- CustomDimensions.Add('UnitOfMeasure', Item."Base Unit of Measure");
53
- end;
54
-
55
- exit(CustomDimensions);
56
- end;
57
-
58
- // Helper methods
59
- local procedure GetEnvironmentType(): Text
60
- begin
61
- exit('Production'); // Implement actual environment detection
62
- end;
63
-
64
- local procedure GetAppVersion(): Text
65
- begin
66
- exit('1.0.0.0'); // Implement actual version detection
67
- end;
68
-
69
- local procedure GetBCVersion(): Text
70
- begin
71
- exit('24.0'); // Implement actual BC version detection
72
- end;
73
- }
74
- ```
75
-
76
- ## Performance-Optimized Dimension Patterns
77
- ```al
78
- codeunit 50111 "Optimized Dimension Builder"
79
- {
80
- var
81
- CachedDimensions: Dictionary of [Text, Text];
82
- LastCacheTime: DateTime;
83
- CacheValidityMinutes: Integer;
84
-
85
- // Example 3: Cached dimension building for performance
86
- procedure GetCachedStandardDimensions(): Dictionary of [Text, Text]
87
- begin
88
- if ShouldRefreshCache() then
89
- RefreshCachedDimensions();
90
-
91
- exit(CachedDimensions);
92
- end;
93
-
94
- local procedure ShouldRefreshCache(): Boolean
95
- begin
96
- if LastCacheTime = 0DT then
97
- exit(true);
98
-
99
- exit(CurrentDateTime - LastCacheTime > CacheValidityMinutes * 60000);
100
- end;
101
-
102
- local procedure RefreshCachedDimensions()
103
- begin
104
- CachedDimensions.Clear();
105
-
106
- // Cache static dimensions that don't change frequently
107
- CachedDimensions.Add('CompanyName', CompanyName());
108
- CachedDimensions.Add('Environment', 'Production');
109
- CachedDimensions.Add('AppVersion', '1.0.0.0');
110
- CachedDimensions.Add('BCVersion', '24.0');
111
-
112
- LastCacheTime := CurrentDateTime;
113
- end;
114
-
115
- // Example 4: Conditional dimension building
116
- procedure BuildConditionalDimensions(IncludeDetailed: Boolean; IncludePerformance: Boolean): Dictionary of [Text, Text]
117
- var
118
- CustomDimensions: Dictionary of [Text, Text];
119
- begin
120
- CustomDimensions := GetCachedStandardDimensions();
121
-
122
- // Always include dynamic dimensions
123
- CustomDimensions.Add('UserID', UserId());
124
- CustomDimensions.Add('Timestamp', Format(CurrentDateTime, 0, 9));
125
-
126
- if IncludeDetailed then begin
127
- CustomDimensions.Add('SessionID', Format(SessionId()));
128
- CustomDimensions.Add('ClientType', Format(ClientType()));
129
- CustomDimensions.Add('LanguageID', Format(GlobalLanguage()));
130
- end;
131
-
132
- if IncludePerformance then begin
133
- CustomDimensions.Add('MemoryUsage', 'Unknown');
134
- CustomDimensions.Add('CPUTime', 'Unknown');
135
- end;
136
-
137
- exit(CustomDimensions);
138
- end;
139
- }
140
- ```
141
-
142
- ## Domain-Specific Dimension Patterns
143
- ```al
144
- codeunit 50112 "Domain Telemetry Dimensions"
145
- {
146
- // Example 5: Sales process dimensions
147
- procedure BuildSalesDimensions(SalesHeader: Record "Sales Header"): Dictionary of [Text, Text]
148
- var
149
- CustomDimensions: Dictionary of [Text, Text];
150
- Customer: Record Customer;
151
- Salesperson: Record "Salesperson/Purchaser";
152
- begin
153
- CustomDimensions.Add('Domain', 'Sales');
154
- CustomDimensions.Add('DocumentType', Format(SalesHeader."Document Type"));
155
- CustomDimensions.Add('DocumentNo', SalesHeader."No.");
156
- CustomDimensions.Add('CustomerNo', SalesHeader."Sell-to Customer No.");
157
-
158
- if Customer.Get(SalesHeader."Sell-to Customer No.") then begin
159
- CustomDimensions.Add('CustomerGroup', Customer."Customer Posting Group");
160
- CustomDimensions.Add('PaymentTerms', Customer."Payment Terms Code");
161
- CustomDimensions.Add('CustomerSize', ClassifyCustomerSize(Customer."Credit Limit (LCY)"));
162
- end;
163
-
164
- if Salesperson.Get(SalesHeader."Salesperson Code") then
165
- CustomDimensions.Add('SalespersonName', Salesperson.Name);
166
-
167
- // Financial dimensions
168
- CustomDimensions.Add('CurrencyCode', SalesHeader."Currency Code");
169
- CustomDimensions.Add('AmountLCY', Format(SalesHeader."Amount Including VAT"));
170
- CustomDimensions.Add('PriceGroup', SalesHeader."Customer Price Group");
171
-
172
- exit(CustomDimensions);
173
- end;
174
-
175
- // Helper function for customer classification
176
- local procedure ClassifyCustomerSize(CreditLimit: Decimal): Text
177
- begin
178
- case true of
179
- CreditLimit >= 1000000:
180
- exit('Enterprise');
181
- CreditLimit >= 100000:
182
- exit('Large');
183
- CreditLimit >= 10000:
184
- exit('Medium');
185
- else
186
- exit('Small');
187
- end;
188
- end;
189
- }
190
- ```