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,238 +0,0 @@
1
- # SingleInstance Subscriber Patterns - AL Code Samples
2
-
3
- ## Basic SingleInstance Implementation
4
- ```al
5
- // SingleInstance subscriber codeunit - only one instance exists per session
6
- [SingleInstance]
7
- codeunit 50100 "Sales Order Workflow Manager"
8
- {
9
- var
10
- WorkflowActive: Boolean;
11
- ProcessedOrderCount: Integer;
12
- LastProcessedTime: DateTime;
13
-
14
- // Event subscriber that benefits from SingleInstance pattern
15
- [EventSubscriber(ObjectType::Table, Database::"Sales Header", 'OnAfterInsertEvent', '', false, false)]
16
- local procedure OnSalesOrderInsert(var Rec: Record "Sales Header")
17
- begin
18
- // SingleInstance ensures this counter is accurate across all sessions
19
- if Rec."Document Type" = Rec."Document Type"::Order then begin
20
- ProcessedOrderCount += 1;
21
- LastProcessedTime := CurrentDateTime;
22
-
23
- // State persists because of SingleInstance
24
- if ProcessedOrderCount mod 100 = 0 then
25
- SendBatchNotification(ProcessedOrderCount);
26
- end;
27
- end;
28
-
29
- // Method that leverages persistent state
30
- procedure GetProcessingStats(var OrderCount: Integer; var LastProcessed: DateTime)
31
- begin
32
- OrderCount := ProcessedOrderCount;
33
- LastProcessed := LastProcessedTime;
34
- end;
35
-
36
- local procedure SendBatchNotification(Count: Integer)
37
- begin
38
- // Implementation for milestone notifications
39
- Message('Processed %1 sales orders in this session', Count);
40
- end;
41
- }
42
- ```
43
-
44
- ## Advanced SingleInstance with Configuration Management
45
- ```al
46
- // SingleInstance subscriber for system-wide configuration caching
47
- [SingleInstance]
48
- codeunit 50101 "System Configuration Manager"
49
- {
50
- var
51
- ConfigurationLoaded: Boolean;
52
- CacheValidUntil: DateTime;
53
- SystemSettings: Dictionary of [Text, Text];
54
-
55
- // Expensive configuration loading done once per server instance
56
- [EventSubscriber(ObjectType::Codeunit, Codeunit::"Company-Initialize", 'OnCompanyInitialize', '', false, false)]
57
- local procedure OnCompanyInitialize()
58
- begin
59
- LoadSystemConfiguration();
60
- end;
61
-
62
- // Public method that benefits from cached configuration
63
- procedure GetConfigurationValue(SettingKey: Text): Text
64
- var
65
- SettingValue: Text;
66
- begin
67
- // Refresh cache if expired
68
- if (CacheValidUntil < CurrentDateTime) or (not ConfigurationLoaded) then
69
- LoadSystemConfiguration();
70
-
71
- if SystemSettings.Get(SettingKey, SettingValue) then
72
- exit(SettingValue)
73
- else
74
- exit('');
75
- end;
76
-
77
- local procedure LoadSystemConfiguration()
78
- begin
79
- Clear(SystemSettings);
80
-
81
- // Load configuration once - expensive operation
82
- // Simulate configuration loading
83
- SystemSettings.Set('MaxOrderValue', '100000');
84
- SystemSettings.Set('DefaultShipping', 'STANDARD');
85
- SystemSettings.Set('AutoApprovalLimit', '5000');
86
-
87
- ConfigurationLoaded := true;
88
- CacheValidUntil := CurrentDateTime + (60 * 60 * 1000); // 1 hour cache
89
- end;
90
- }
91
- ```
92
-
93
- ## Performance Impact Demonstration
94
- ```al
95
- // GOOD: SingleInstance subscriber for shared state
96
- [SingleInstance]
97
- codeunit 50102 "Performance Optimized Subscriber"
98
- {
99
- var
100
- ExpensiveResourceHandle: Integer;
101
- ResourceInitialized: Boolean;
102
-
103
- [EventSubscriber(ObjectType::Table, Database::"Item Ledger Entry", 'OnAfterInsertEvent', '', false, false)]
104
- local procedure OnItemLedgerEntryInsert(var Rec: Record "Item Ledger Entry")
105
- begin
106
- // Resource initialized once per server instance
107
- if not ResourceInitialized then
108
- InitializeExpensiveResource();
109
-
110
- // Fast processing using pre-initialized resource
111
- ProcessItemTransaction(Rec, ExpensiveResourceHandle);
112
- end;
113
-
114
- local procedure InitializeExpensiveResource()
115
- begin
116
- // Expensive initialization (database connections, external API setup, etc.)
117
- Sleep(1000); // Simulating expensive setup
118
- ExpensiveResourceHandle := 12345;
119
- ResourceInitialized := true;
120
- end;
121
-
122
- local procedure ProcessItemTransaction(ItemLedger: Record "Item Ledger Entry"; ResourceHandle: Integer)
123
- begin
124
- // Fast processing using initialized resource
125
- // Implementation details...
126
- end;
127
- }
128
-
129
- // BAD: Normal subscriber recreated for each event (anti-pattern)
130
- codeunit 50103 "Performance Poor Subscriber"
131
- {
132
- [EventSubscriber(ObjectType::Table, Database::"Item Ledger Entry", 'OnAfterInsertEvent', '', false, false)]
133
- local procedure OnItemLedgerEntryInsert(var Rec: Record "Item Ledger Entry")
134
- var
135
- ExpensiveResourceHandle: Integer;
136
- begin
137
- // BAD: Expensive initialization happens for EVERY event
138
- InitializeExpensiveResource(ExpensiveResourceHandle);
139
- ProcessItemTransaction(Rec, ExpensiveResourceHandle);
140
- end;
141
-
142
- local procedure InitializeExpensiveResource(var ResourceHandle: Integer)
143
- begin
144
- // This runs for every single item ledger entry - very inefficient!
145
- Sleep(1000);
146
- ResourceHandle := 12345;
147
- end;
148
-
149
- local procedure ProcessItemTransaction(ItemLedger: Record "Item Ledger Entry"; ResourceHandle: Integer)
150
- begin
151
- // Processing happens after expensive setup each time
152
- end;
153
- }
154
- ```
155
-
156
- ## Memory Management Best Practices
157
- ```al
158
- // Comprehensive SingleInstance subscriber with proper lifecycle management
159
- [SingleInstance]
160
- codeunit 50104 "Enterprise Event Manager"
161
- {
162
- var
163
- SubscriberActive: Boolean;
164
- EventProcessingQueue: List of [Text];
165
- MaxQueueSize: Integer;
166
-
167
- trigger OnRun()
168
- begin
169
- Initialize();
170
- end;
171
-
172
- local procedure Initialize()
173
- begin
174
- SubscriberActive := true;
175
- MaxQueueSize := 1000;
176
- Clear(EventProcessingQueue);
177
- end;
178
-
179
- [EventSubscriber(ObjectType::Table, Database::"Sales Header", 'OnAfterModifyEvent', '', false, false)]
180
- local procedure OnSalesHeaderModify(var Rec: Record "Sales Header")
181
- begin
182
- if not SubscriberActive then exit;
183
-
184
- QueueEvent('SalesHeaderModified', Rec."No.");
185
- ProcessEventQueue();
186
- end;
187
-
188
- // Queue management with SingleInstance persistence
189
- local procedure QueueEvent(EventType: Text; DocumentNo: Text)
190
- var
191
- EventDescription: Text;
192
- begin
193
- EventDescription := StrSubstNo('%1:%2:%3', EventType, DocumentNo, Format(CurrentDateTime));
194
-
195
- if EventProcessingQueue.Count >= MaxQueueSize then
196
- EventProcessingQueue.RemoveAt(1); // Remove oldest event
197
-
198
- EventProcessingQueue.Add(EventDescription);
199
- end;
200
-
201
- local procedure ProcessEventQueue()
202
- begin
203
- // Batch processing of queued events
204
- if EventProcessingQueue.Count >= 10 then begin
205
- ProcessBatchEvents();
206
- EventProcessingQueue.RemoveRange(1, 10);
207
- end;
208
- end;
209
-
210
- local procedure ProcessBatchEvents()
211
- var
212
- EventItem: Text;
213
- i: Integer;
214
- begin
215
- // Process events in batches for efficiency
216
- for i := 1 to MinValue(10, EventProcessingQueue.Count) do begin
217
- EventItem := EventProcessingQueue.Get(i);
218
- // Process individual event
219
- end;
220
- end;
221
-
222
- // Public method to control subscriber behavior
223
- procedure SetActiveState(Active: Boolean)
224
- begin
225
- SubscriberActive := Active;
226
- if not Active then
227
- Clear(EventProcessingQueue);
228
- end;
229
-
230
- local procedure MinValue(Value1: Integer; Value2: Integer): Integer
231
- begin
232
- if Value1 < Value2 then
233
- exit(Value1)
234
- else
235
- exit(Value2);
236
- end;
237
- }
238
- ```
@@ -1,97 +0,0 @@
1
- # Table Event Batch Operation Impact - AL Code Samples
2
-
3
- ## Batch Processing with Event Management
4
-
5
- ```al
6
- codeunit 50300 "Batch Processing Manager"
7
- {
8
- var
9
- BatchMode: Boolean;
10
- BatchSize: Integer;
11
- ProcessedCount: Integer;
12
-
13
- procedure ProcessItemsBatch(var Item: Record Item)
14
- begin
15
- BatchMode := true;
16
- BatchSize := 0;
17
- ProcessedCount := 0;
18
-
19
- if Item.FindSet() then
20
- repeat
21
- ProcessedCount += 1;
22
- UpdateItemData(Item);
23
-
24
- if ProcessedCount mod 100 = 0 then
25
- Commit();
26
-
27
- until Item.Next() = 0;
28
-
29
- BatchMode := false;
30
- end;
31
-
32
- [EventSubscriber(ObjectType::Table, Database::Item, 'OnAfterModifyEvent', '', false, false)]
33
- local procedure OnAfterItemModify(var Rec: Record Item; var xRec: Record Item; RunTrigger: Boolean)
34
- begin
35
- if BatchMode then
36
- exit; // Skip processing during batch operations
37
-
38
- UpdateItemStatistics(Rec);
39
- end;
40
- }
41
- ```
42
-
43
- ## Optimized Batch Operations
44
-
45
- ```al
46
- procedure ProcessSalesLinesBatch(var SalesHeader: Record "Sales Header")
47
- var
48
- SalesLine: Record "Sales Line";
49
- TempSalesLine: Record "Sales Line" temporary;
50
- begin
51
- SalesLine.SetRange("Document Type", SalesHeader."Document Type");
52
- SalesLine.SetRange("Document No.", SalesHeader."No.");
53
-
54
- // Load into temporary table to minimize event firing
55
- if SalesLine.FindSet() then
56
- repeat
57
- TempSalesLine := SalesLine;
58
- TempSalesLine.Insert();
59
- until SalesLine.Next() = 0;
60
-
61
- // Process without triggering events
62
- if TempSalesLine.FindSet() then
63
- repeat
64
- ProcessSalesLineData(TempSalesLine);
65
- until TempSalesLine.Next() = 0;
66
- end;
67
- ```
68
-
69
- ## Event Subscriber Performance Optimization
70
-
71
- ```al
72
- codeunit 50301 "Performance Optimized Subscriber"
73
- {
74
- var
75
- ProcessingEnabled: Boolean;
76
-
77
- [EventSubscriber(ObjectType::Table, Database::"Sales Line", 'OnAfterInsertEvent', '', false, false)]
78
- local procedure OnAfterSalesLineInsert(var Rec: Record "Sales Line"; RunTrigger: Boolean)
79
- begin
80
- if not RunTrigger then exit;
81
- if not ProcessingEnabled then exit;
82
-
83
- // Minimal processing for performance
84
- UpdateSalesStatistics(Rec);
85
- end;
86
-
87
- procedure EnableProcessing()
88
- begin
89
- ProcessingEnabled := true;
90
- end;
91
-
92
- procedure DisableProcessing()
93
- begin
94
- ProcessingEnabled := false;
95
- end;
96
- }
97
- ```