bc-code-intelligence-mcp 1.1.1

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 (638) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +107 -0
  3. package/dist/cache/cache-manager.d.ts +95 -0
  4. package/dist/cache/cache-manager.d.ts.map +1 -0
  5. package/dist/cache/cache-manager.js +328 -0
  6. package/dist/cache/cache-manager.js.map +1 -0
  7. package/dist/cli/bc-code-intel-cli.d.ts +9 -0
  8. package/dist/cli/bc-code-intel-cli.d.ts.map +1 -0
  9. package/dist/cli/bc-code-intel-cli.js +441 -0
  10. package/dist/cli/bc-code-intel-cli.js.map +1 -0
  11. package/dist/config/config-loader.d.ts +21 -0
  12. package/dist/config/config-loader.d.ts.map +1 -0
  13. package/dist/config/config-loader.js +402 -0
  14. package/dist/config/config-loader.js.map +1 -0
  15. package/dist/config/config-validator.d.ts +84 -0
  16. package/dist/config/config-validator.d.ts.map +1 -0
  17. package/dist/config/config-validator.js +604 -0
  18. package/dist/config/config-validator.js.map +1 -0
  19. package/dist/config/test-config-loader.d.ts +10 -0
  20. package/dist/config/test-config-loader.d.ts.map +1 -0
  21. package/dist/config/test-config-loader.js +135 -0
  22. package/dist/config/test-config-loader.js.map +1 -0
  23. package/dist/config/test-enhanced-layer-service.d.ts +7 -0
  24. package/dist/config/test-enhanced-layer-service.d.ts.map +1 -0
  25. package/dist/config/test-enhanced-layer-service.js +104 -0
  26. package/dist/config/test-enhanced-layer-service.js.map +1 -0
  27. package/dist/config/test-git-layer.d.ts +7 -0
  28. package/dist/config/test-git-layer.d.ts.map +1 -0
  29. package/dist/config/test-git-layer.js +68 -0
  30. package/dist/config/test-git-layer.js.map +1 -0
  31. package/dist/dev/hot-reload.d.ts +91 -0
  32. package/dist/dev/hot-reload.d.ts.map +1 -0
  33. package/dist/dev/hot-reload.js +358 -0
  34. package/dist/dev/hot-reload.js.map +1 -0
  35. package/dist/index.d.ts +57 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +673 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/layers/base-layer.d.ts +83 -0
  40. package/dist/layers/base-layer.d.ts.map +1 -0
  41. package/dist/layers/base-layer.js +166 -0
  42. package/dist/layers/base-layer.js.map +1 -0
  43. package/dist/layers/embedded-layer.d.ts +53 -0
  44. package/dist/layers/embedded-layer.d.ts.map +1 -0
  45. package/dist/layers/embedded-layer.js +238 -0
  46. package/dist/layers/embedded-layer.js.map +1 -0
  47. package/dist/layers/git-layer.d.ts +54 -0
  48. package/dist/layers/git-layer.d.ts.map +1 -0
  49. package/dist/layers/git-layer.js +369 -0
  50. package/dist/layers/git-layer.js.map +1 -0
  51. package/dist/layers/index.d.ts +12 -0
  52. package/dist/layers/index.d.ts.map +1 -0
  53. package/dist/layers/index.js +11 -0
  54. package/dist/layers/index.js.map +1 -0
  55. package/dist/layers/layer-service.d.ts +129 -0
  56. package/dist/layers/layer-service.d.ts.map +1 -0
  57. package/dist/layers/layer-service.js +570 -0
  58. package/dist/layers/layer-service.js.map +1 -0
  59. package/dist/layers/project-layer.d.ts +50 -0
  60. package/dist/layers/project-layer.d.ts.map +1 -0
  61. package/dist/layers/project-layer.js +256 -0
  62. package/dist/layers/project-layer.js.map +1 -0
  63. package/dist/monitoring/production-monitor.d.ts +148 -0
  64. package/dist/monitoring/production-monitor.d.ts.map +1 -0
  65. package/dist/monitoring/production-monitor.js +463 -0
  66. package/dist/monitoring/production-monitor.js.map +1 -0
  67. package/dist/performance/performance-monitor.d.ts +99 -0
  68. package/dist/performance/performance-monitor.d.ts.map +1 -0
  69. package/dist/performance/performance-monitor.js +253 -0
  70. package/dist/performance/performance-monitor.js.map +1 -0
  71. package/dist/sdk/bc-code-intel-client.d.ts +175 -0
  72. package/dist/sdk/bc-code-intel-client.d.ts.map +1 -0
  73. package/dist/sdk/bc-code-intel-client.js +380 -0
  74. package/dist/sdk/bc-code-intel-client.js.map +1 -0
  75. package/dist/search/intelligent-search.d.ts +97 -0
  76. package/dist/search/intelligent-search.d.ts.map +1 -0
  77. package/dist/search/intelligent-search.js +355 -0
  78. package/dist/search/intelligent-search.js.map +1 -0
  79. package/dist/security/access-control.d.ts +110 -0
  80. package/dist/security/access-control.d.ts.map +1 -0
  81. package/dist/security/access-control.js +353 -0
  82. package/dist/security/access-control.js.map +1 -0
  83. package/dist/services/code-analysis-service.d.ts +72 -0
  84. package/dist/services/code-analysis-service.d.ts.map +1 -0
  85. package/dist/services/code-analysis-service.js +811 -0
  86. package/dist/services/code-analysis-service.js.map +1 -0
  87. package/dist/services/knowledge-service.d.ts +91 -0
  88. package/dist/services/knowledge-service.d.ts.map +1 -0
  89. package/dist/services/knowledge-service.js +370 -0
  90. package/dist/services/knowledge-service.js.map +1 -0
  91. package/dist/services/methodology-service.d.ts +91 -0
  92. package/dist/services/methodology-service.d.ts.map +1 -0
  93. package/dist/services/methodology-service.js +408 -0
  94. package/dist/services/methodology-service.js.map +1 -0
  95. package/dist/services/workflow-service.d.ts +132 -0
  96. package/dist/services/workflow-service.d.ts.map +1 -0
  97. package/dist/services/workflow-service.js +277 -0
  98. package/dist/services/workflow-service.js.map +1 -0
  99. package/dist/setup/post-install.d.ts +12 -0
  100. package/dist/setup/post-install.d.ts.map +1 -0
  101. package/dist/setup/post-install.js +81 -0
  102. package/dist/setup/post-install.js.map +1 -0
  103. package/dist/streamlined-handlers.d.ts +51 -0
  104. package/dist/streamlined-handlers.d.ts.map +1 -0
  105. package/dist/streamlined-handlers.js +287 -0
  106. package/dist/streamlined-handlers.js.map +1 -0
  107. package/dist/streamlined-tools.d.ts +316 -0
  108. package/dist/streamlined-tools.d.ts.map +1 -0
  109. package/dist/streamlined-tools.js +189 -0
  110. package/dist/streamlined-tools.js.map +1 -0
  111. package/dist/test-enhanced-mcp-server.d.ts +7 -0
  112. package/dist/test-enhanced-mcp-server.d.ts.map +1 -0
  113. package/dist/test-enhanced-mcp-server.js +177 -0
  114. package/dist/test-enhanced-mcp-server.js.map +1 -0
  115. package/dist/types/bc-knowledge.d.ts +294 -0
  116. package/dist/types/bc-knowledge.d.ts.map +1 -0
  117. package/dist/types/bc-knowledge.js +44 -0
  118. package/dist/types/bc-knowledge.js.map +1 -0
  119. package/dist/types/config-types.d.ts +180 -0
  120. package/dist/types/config-types.d.ts.map +1 -0
  121. package/dist/types/config-types.js +104 -0
  122. package/dist/types/config-types.js.map +1 -0
  123. package/dist/types/index.d.ts +5 -0
  124. package/dist/types/index.d.ts.map +1 -0
  125. package/dist/types/index.js +7 -0
  126. package/dist/types/index.js.map +1 -0
  127. package/dist/types/layer-types.d.ts +171 -0
  128. package/dist/types/layer-types.d.ts.map +1 -0
  129. package/dist/types/layer-types.js +27 -0
  130. package/dist/types/layer-types.js.map +1 -0
  131. package/dist/types/persona-types.d.ts +77 -0
  132. package/dist/types/persona-types.d.ts.map +1 -0
  133. package/dist/types/persona-types.js +341 -0
  134. package/dist/types/persona-types.js.map +1 -0
  135. package/dist/utils/path-utils.d.ts +5 -0
  136. package/dist/utils/path-utils.d.ts.map +1 -0
  137. package/dist/utils/path-utils.js +14 -0
  138. package/dist/utils/path-utils.js.map +1 -0
  139. package/dist/workflows/domain-workflows.d.ts +8 -0
  140. package/dist/workflows/domain-workflows.d.ts.map +1 -0
  141. package/dist/workflows/domain-workflows.js +360 -0
  142. package/dist/workflows/domain-workflows.js.map +1 -0
  143. package/embedded-knowledge/.github/ISSUE_TEMPLATE/bug-report.md +24 -0
  144. package/embedded-knowledge/.github/ISSUE_TEMPLATE/content-improvement.md +24 -0
  145. package/embedded-knowledge/.github/ISSUE_TEMPLATE/knowledge-request.md +30 -0
  146. package/embedded-knowledge/AGENTS.md +69 -0
  147. package/embedded-knowledge/CONTRIBUTING.md +58 -0
  148. package/embedded-knowledge/LICENSE +21 -0
  149. package/embedded-knowledge/README.md +15 -0
  150. package/embedded-knowledge/domains/alex-architect/api-delegate-operation-pattern.md +90 -0
  151. package/embedded-knowledge/domains/alex-architect/api-fieldset-registration-pattern.md +113 -0
  152. package/embedded-knowledge/domains/alex-architect/api-interface-design-patterns.md +101 -0
  153. package/embedded-knowledge/domains/alex-architect/api-page-development-patterns.md +87 -0
  154. package/embedded-knowledge/domains/alex-architect/complex-facade-patterns.md +155 -0
  155. package/embedded-knowledge/domains/alex-architect/facade-pattern-al-implementation.md +138 -0
  156. package/embedded-knowledge/domains/alex-architect/facade-pattern-external-api.md +79 -0
  157. package/embedded-knowledge/domains/alex-architect/samples/api-delegate-operation.md +280 -0
  158. package/embedded-knowledge/domains/alex-architect/samples/api-fieldset-registration.md +200 -0
  159. package/embedded-knowledge/domains/alex-architect/samples/api-interface-design.md +565 -0
  160. package/embedded-knowledge/domains/alex-architect/samples/api-page-implementation.md +665 -0
  161. package/embedded-knowledge/domains/alex-architect/samples/complex-facade-patterns.md +325 -0
  162. package/embedded-knowledge/domains/alex-architect/samples/facade-pattern-al.md +696 -0
  163. package/embedded-knowledge/domains/alex-architect/samples/facade-pattern.md +320 -0
  164. package/embedded-knowledge/domains/alex-architect/samples/subscriber-organization.md +102 -0
  165. package/embedded-knowledge/domains/alex-architect/samples/systemid-integration.md +433 -0
  166. package/embedded-knowledge/domains/alex-architect/subscriber-codeunit-size-optimization.md +66 -0
  167. package/embedded-knowledge/domains/alex-architect/systemid-integration.md +115 -0
  168. package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +295 -0
  169. package/embedded-knowledge/domains/dean-debug/case-statement-performance-best-practices.md +86 -0
  170. package/embedded-knowledge/domains/dean-debug/compound-statements-debugging.md +96 -0
  171. package/embedded-knowledge/domains/dean-debug/custom-dimensions-best-practices.md +70 -0
  172. package/embedded-knowledge/domains/dean-debug/custom-telemetry-implementation.md +84 -0
  173. package/embedded-knowledge/domains/dean-debug/deleteall-performance-tradeoff.md +93 -0
  174. package/embedded-knowledge/domains/dean-debug/deleteall-sql-performance.md +73 -0
  175. package/embedded-knowledge/domains/dean-debug/extension-telemetry-isolation.md +78 -0
  176. package/embedded-knowledge/domains/dean-debug/maintainsiftindex-property-behavior.md +79 -0
  177. package/embedded-knowledge/domains/dean-debug/no-series-implementation-patterns.md +87 -0
  178. package/embedded-knowledge/domains/dean-debug/no-series-module-patterns-bc24.md +209 -0
  179. package/embedded-knowledge/domains/dean-debug/no-series-validation-module-bc24.md +246 -0
  180. package/embedded-knowledge/domains/dean-debug/no-series-validation-patterns.md +107 -0
  181. package/embedded-knowledge/domains/dean-debug/odata-query-optimization.md +105 -0
  182. package/embedded-knowledge/domains/dean-debug/samples/bc24-no-series-conversion.md +186 -0
  183. package/embedded-knowledge/domains/dean-debug/samples/case-performance-optimization.md +60 -0
  184. package/embedded-knowledge/domains/dean-debug/samples/compound-statements-debugging.md +139 -0
  185. package/embedded-knowledge/domains/dean-debug/samples/custom-dimensions.md +190 -0
  186. package/embedded-knowledge/domains/dean-debug/samples/custom-telemetry.md +516 -0
  187. package/embedded-knowledge/domains/dean-debug/samples/deleteall-performance.md +298 -0
  188. package/embedded-knowledge/domains/dean-debug/samples/error-correlation.md +324 -0
  189. package/embedded-knowledge/domains/dean-debug/samples/extension-isolation.md +344 -0
  190. package/embedded-knowledge/domains/dean-debug/samples/logmessage-methods.md +137 -0
  191. package/embedded-knowledge/domains/dean-debug/samples/maintainsiftindex-examples.md +340 -0
  192. package/embedded-knowledge/domains/dean-debug/samples/no-series-implementation.md +810 -0
  193. package/embedded-knowledge/domains/dean-debug/samples/no-series-module-bc24.md +86 -0
  194. package/embedded-knowledge/domains/dean-debug/samples/no-series-validation-module-bc24.md +110 -0
  195. package/embedded-knowledge/domains/dean-debug/samples/no-series-validation.md +758 -0
  196. package/embedded-knowledge/domains/dean-debug/samples/odata-query-optimization.md +665 -0
  197. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-case.md +316 -0
  198. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-filters.md +223 -0
  199. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-filter-exclusion.md +149 -0
  200. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-optimization.md +412 -0
  201. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-performance.md +211 -0
  202. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-primary-key.md +155 -0
  203. package/embedded-knowledge/domains/dean-debug/samples/sift-technology-fundamentals.md +475 -0
  204. package/embedded-knowledge/domains/dean-debug/samples/singleinstance-subscribers.md +238 -0
  205. package/embedded-knowledge/domains/dean-debug/samples/table-event-batching.md +97 -0
  206. package/embedded-knowledge/domains/dean-debug/samples/table-key-requirements.md +666 -0
  207. package/embedded-knowledge/domains/dean-debug/samples/telemetry-performance.md +319 -0
  208. package/embedded-knowledge/domains/dean-debug/samples/verbosity-strategy.md +236 -0
  209. package/embedded-knowledge/domains/dean-debug/session-logmessage-methods.md +59 -0
  210. package/embedded-knowledge/domains/dean-debug/setloadfields-filter-field-exclusion.md +67 -0
  211. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-impact.md +70 -0
  212. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-optimization.md +90 -0
  213. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-case-statements.md +87 -0
  214. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-filters.md +70 -0
  215. package/embedded-knowledge/domains/dean-debug/setloadfields-primary-key-optimization.md +74 -0
  216. package/embedded-knowledge/domains/dean-debug/sift-technology-fundamentals.md +81 -0
  217. package/embedded-knowledge/domains/dean-debug/subscriber-singleinstance-performance.md +56 -0
  218. package/embedded-knowledge/domains/dean-debug/table-event-batch-operation-impact.md +66 -0
  219. package/embedded-knowledge/domains/dean-debug/table-key-requirements.md +79 -0
  220. package/embedded-knowledge/domains/dean-debug/telemetry-error-correlation.md +78 -0
  221. package/embedded-knowledge/domains/dean-debug/telemetry-performance-considerations.md +83 -0
  222. package/embedded-knowledge/domains/dean-debug/telemetry-verbosity-strategy.md +76 -0
  223. package/embedded-knowledge/domains/dean-debug/testfield-performance.md +104 -0
  224. package/embedded-knowledge/domains/eva-errors/fielderror-default-messages.md +145 -0
  225. package/embedded-knowledge/domains/eva-errors/fielderror-message-construction.md +104 -0
  226. package/embedded-knowledge/domains/eva-errors/fielderror-method-syntax.md +114 -0
  227. package/embedded-knowledge/domains/eva-errors/samples/fielderror-default-messages.md +356 -0
  228. package/embedded-knowledge/domains/eva-errors/samples/fielderror-syntax.md +256 -0
  229. package/embedded-knowledge/domains/eva-errors/samples/table-safety-validation-patterns.md +101 -0
  230. package/embedded-knowledge/domains/eva-errors/samples/testfield-error-handling.md +108 -0
  231. package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +80 -0
  232. package/embedded-knowledge/domains/jordan-bridge/al-event-subscriber-architecture.md +98 -0
  233. package/embedded-knowledge/domains/jordan-bridge/automatic-registration.md +123 -0
  234. package/embedded-knowledge/domains/jordan-bridge/business-process-template-patterns.md +96 -0
  235. package/embedded-knowledge/domains/jordan-bridge/error-response-patterns.md +115 -0
  236. package/embedded-knowledge/domains/jordan-bridge/etag-implementation.md +115 -0
  237. package/embedded-knowledge/domains/jordan-bridge/field-control-selection.md +114 -0
  238. package/embedded-knowledge/domains/jordan-bridge/samples/al-event-subscriber-architecture.md +395 -0
  239. package/embedded-knowledge/domains/jordan-bridge/samples/api-error-responses.md +479 -0
  240. package/embedded-knowledge/domains/jordan-bridge/samples/api-field-control.md +548 -0
  241. package/embedded-knowledge/domains/jordan-bridge/samples/api-url-naming.md +287 -0
  242. package/embedded-knowledge/domains/jordan-bridge/samples/business-process-templates.md +434 -0
  243. package/embedded-knowledge/domains/jordan-bridge/samples/etag-implementation.md +508 -0
  244. package/embedded-knowledge/domains/jordan-bridge/samples/task-scheduler-pattern.md +615 -0
  245. package/embedded-knowledge/domains/jordan-bridge/task-scheduler-pattern-implementation.md +144 -0
  246. package/embedded-knowledge/domains/jordan-bridge/url-structure-naming-patterns.md +96 -0
  247. package/embedded-knowledge/domains/maya-mentor/case-multiple-conditions-ranges.md +124 -0
  248. package/embedded-knowledge/domains/maya-mentor/case-statement-syntax-structure.md +84 -0
  249. package/embedded-knowledge/domains/maya-mentor/fielderror-syntax-usage.md +75 -0
  250. package/embedded-knowledge/domains/maya-mentor/fielderror-vs-testfield.md +96 -0
  251. package/embedded-knowledge/domains/maya-mentor/samples/case-statement-multiple-conditions.md +385 -0
  252. package/embedded-knowledge/domains/maya-mentor/samples/case-statement-syntax-structure.md +72 -0
  253. package/embedded-knowledge/domains/maya-mentor/samples/fielderror-syntax-usage.md +48 -0
  254. package/embedded-knowledge/domains/maya-mentor/samples/testfield-basic-syntax.md +49 -0
  255. package/embedded-knowledge/domains/maya-mentor/testfield-basic-syntax.md +67 -0
  256. package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +119 -0
  257. package/embedded-knowledge/domains/quinn-tester/rule-execution.md +123 -0
  258. package/embedded-knowledge/domains/quinn-tester/samples/case-error-handling.md +64 -0
  259. package/embedded-knowledge/domains/quinn-tester/samples/fielderror-message-construction.md +60 -0
  260. package/embedded-knowledge/domains/quinn-tester/samples/fielderror-validation-patterns.md +83 -0
  261. package/embedded-knowledge/domains/quinn-tester/samples/rule-execution.md +716 -0
  262. package/embedded-knowledge/domains/quinn-tester/samples/table-safety-validation-patterns.md +101 -0
  263. package/embedded-knowledge/domains/quinn-tester/samples/temporary-table-operation-validation.md +91 -0
  264. package/embedded-knowledge/domains/quinn-tester/table-safety-validation-patterns.md +79 -0
  265. package/embedded-knowledge/domains/quinn-tester/temporary-table-operation-validation.md +79 -0
  266. package/embedded-knowledge/domains/roger-reviewer/al-begin-end-block-structure.md +89 -0
  267. package/embedded-knowledge/domains/roger-reviewer/al-binary-operator-spacing.md +76 -0
  268. package/embedded-knowledge/domains/roger-reviewer/al-blank-line-organization.md +76 -0
  269. package/embedded-knowledge/domains/roger-reviewer/al-case-action-formatting.md +76 -0
  270. package/embedded-knowledge/domains/roger-reviewer/al-code-spacing-conventions.md +81 -0
  271. package/embedded-knowledge/domains/roger-reviewer/al-comment-spacing-standards.md +76 -0
  272. package/embedded-knowledge/domains/roger-reviewer/al-end-else-pairing.md +75 -0
  273. package/embedded-knowledge/domains/roger-reviewer/al-keyword-indentation-rules.md +76 -0
  274. package/embedded-knowledge/domains/roger-reviewer/al-line-start-keyword-positioning.md +76 -0
  275. package/embedded-knowledge/domains/roger-reviewer/al-separate-if-else-formatting.md +76 -0
  276. package/embedded-knowledge/domains/roger-reviewer/al-standard-abbreviations.md +96 -0
  277. package/embedded-knowledge/domains/roger-reviewer/al-statement-per-line-rule.md +76 -0
  278. package/embedded-knowledge/domains/roger-reviewer/al-unnecessary-else-elimination.md +86 -0
  279. package/embedded-knowledge/domains/roger-reviewer/al-variable-declaration-order.md +90 -0
  280. package/embedded-knowledge/domains/roger-reviewer/al-variable-naming-conventions.md +82 -0
  281. package/embedded-knowledge/domains/roger-reviewer/begin-block-statement-clarity.md +78 -0
  282. package/embedded-knowledge/domains/roger-reviewer/begin-end-positioning-patterns.md +76 -0
  283. package/embedded-knowledge/domains/roger-reviewer/binary-operator-line-positioning.md +78 -0
  284. package/embedded-knowledge/domains/roger-reviewer/boolean-expression-simplification-al.md +100 -0
  285. package/embedded-knowledge/domains/roger-reviewer/case-statement-error-handling-troubleshooting.md +115 -0
  286. package/embedded-knowledge/domains/roger-reviewer/compound-statement-readability.md +124 -0
  287. package/embedded-knowledge/domains/roger-reviewer/lonely-repeat-statement-pattern.md +110 -0
  288. package/embedded-knowledge/domains/roger-reviewer/samples/al-begin-end-blocks.md +438 -0
  289. package/embedded-knowledge/domains/roger-reviewer/samples/al-binary-operator-spacing.md +255 -0
  290. package/embedded-knowledge/domains/roger-reviewer/samples/al-comment-spacing-standards.md +209 -0
  291. package/embedded-knowledge/domains/roger-reviewer/samples/al-keyword-indentation-rules.md +218 -0
  292. package/embedded-knowledge/domains/roger-reviewer/samples/al-line-start-keyword-positioning.md +218 -0
  293. package/embedded-knowledge/domains/roger-reviewer/samples/al-separate-if-else-formatting.md +280 -0
  294. package/embedded-knowledge/domains/roger-reviewer/samples/al-statement-per-line-rule.md +188 -0
  295. package/embedded-knowledge/domains/roger-reviewer/samples/al-unnecessary-else-elimination.md +245 -0
  296. package/embedded-knowledge/domains/roger-reviewer/samples/al-variable-declaration-order.md +244 -0
  297. package/embedded-knowledge/domains/roger-reviewer/samples/begin-end-positioning.md +278 -0
  298. package/embedded-knowledge/domains/roger-reviewer/samples/boolean-simplification-examples.md +484 -0
  299. package/embedded-knowledge/domains/roger-reviewer/samples/case-error-handling.md +64 -0
  300. package/embedded-knowledge/domains/roger-reviewer/samples/compound-statement-readability.md +107 -0
  301. package/embedded-knowledge/domains/roger-reviewer/samples/lonely-repeat-examples.md +280 -0
  302. package/embedded-knowledge/domains/sam-coder/al-formatting-consistency-patterns.md +75 -0
  303. package/embedded-knowledge/domains/sam-coder/al-line-comment-formatting.md +67 -0
  304. package/embedded-knowledge/domains/sam-coder/al-lonely-repeat-pattern.md +76 -0
  305. package/embedded-knowledge/domains/sam-coder/al-named-parameter-pattern.md +98 -0
  306. package/embedded-knowledge/domains/sam-coder/al-object-navigation-shortcuts.md +128 -0
  307. package/embedded-knowledge/domains/sam-coder/al-readability-optimization.md +75 -0
  308. package/embedded-knowledge/domains/sam-coder/al-record-find-early-exit.md +95 -0
  309. package/embedded-knowledge/domains/sam-coder/command-queue-pattern-al.md +141 -0
  310. package/embedded-knowledge/domains/sam-coder/deleteall-alternative-implementation.md +91 -0
  311. package/embedded-knowledge/domains/sam-coder/deleteall-method-usage.md +118 -0
  312. package/embedded-knowledge/domains/sam-coder/deleteall-trigger-execution.md +111 -0
  313. package/embedded-knowledge/domains/sam-coder/event-bridge-pattern-al.md +113 -0
  314. package/embedded-knowledge/domains/sam-coder/event-payload-design-patterns.md +127 -0
  315. package/embedded-knowledge/domains/sam-coder/generic-method-patterns-al.md +141 -0
  316. package/embedded-knowledge/domains/sam-coder/manual-binding-conditional-subscribers.md +66 -0
  317. package/embedded-knowledge/domains/sam-coder/nested-compound-best-practices.md +96 -0
  318. package/embedded-knowledge/domains/sam-coder/samples/al-blank-line-organization.md +161 -0
  319. package/embedded-knowledge/domains/sam-coder/samples/al-case-action-formatting.md +177 -0
  320. package/embedded-knowledge/domains/sam-coder/samples/al-lonely-repeat-pattern.md +239 -0
  321. package/embedded-knowledge/domains/sam-coder/samples/al-named-parameter-pattern.md +346 -0
  322. package/embedded-knowledge/domains/sam-coder/samples/al-record-find-early-exit.md +298 -0
  323. package/embedded-knowledge/domains/sam-coder/samples/command-queue-pattern.md +677 -0
  324. package/embedded-knowledge/domains/sam-coder/samples/deleteall-alternative-implementation.md +117 -0
  325. package/embedded-knowledge/domains/sam-coder/samples/deleteall-triggers.md +75 -0
  326. package/embedded-knowledge/domains/sam-coder/samples/deleteall-usage.md +169 -0
  327. package/embedded-knowledge/domains/sam-coder/samples/event-bridge-pattern.md +399 -0
  328. package/embedded-knowledge/domains/sam-coder/samples/event-payload-design.md +356 -0
  329. package/embedded-knowledge/domains/sam-coder/samples/generic-method-patterns.md +889 -0
  330. package/embedded-knowledge/domains/sam-coder/samples/manual-binding.md +84 -0
  331. package/embedded-knowledge/domains/sam-coder/samples/nested-compound-best-practices.md +127 -0
  332. package/embedded-knowledge/domains/sam-coder/samples/single-to-compound-conversion.md +89 -0
  333. package/embedded-knowledge/domains/sam-coder/samples/template-method-pattern.md +516 -0
  334. package/embedded-knowledge/domains/sam-coder/samples/testfield-patterns.md +61 -0
  335. package/embedded-knowledge/domains/sam-coder/samples/type-safe-operations.md +427 -0
  336. package/embedded-knowledge/domains/sam-coder/single-to-compound-conversion.md +122 -0
  337. package/embedded-knowledge/domains/sam-coder/template-method-pattern-al.md +96 -0
  338. package/embedded-knowledge/domains/sam-coder/testfield-patterns.md +101 -0
  339. package/embedded-knowledge/domains/sam-coder/type-safe-operations-al.md +149 -0
  340. package/embedded-knowledge/domains/sam-coder/vs-code-al-keyboard-shortcuts.md +107 -0
  341. package/embedded-knowledge/domains/seth-security/al-temporary-table-safety.md +95 -0
  342. package/embedded-knowledge/domains/seth-security/api-permission-model.md +115 -0
  343. package/embedded-knowledge/domains/seth-security/istemporary-safeguard-pattern.md +78 -0
  344. package/embedded-knowledge/domains/seth-security/samples/al-temporary-table-safety.md +373 -0
  345. package/embedded-knowledge/domains/seth-security/samples/api-permission-model.md +308 -0
  346. package/embedded-knowledge/domains/taylor-docs/al-xml-documentation-structure.md +79 -0
  347. package/embedded-knowledge/domains/uma-ux/bc-action-shortcuts-syntax.md +78 -0
  348. package/embedded-knowledge/domains/uma-ux/shortcut-key-user-experience-design.md +81 -0
  349. package/embedded-knowledge/indexes/bc-version-matrix.json +188 -0
  350. package/embedded-knowledge/indexes/domain-catalog.json +106 -0
  351. package/embedded-knowledge/indexes/tags/abbreviations.json +1 -0
  352. package/embedded-knowledge/indexes/tags/abstraction.json +1 -0
  353. package/embedded-knowledge/indexes/tags/access-control.json +1 -0
  354. package/embedded-knowledge/indexes/tags/accessibility.json +1 -0
  355. package/embedded-knowledge/indexes/tags/actions.json +1 -0
  356. package/embedded-knowledge/indexes/tags/advanced-patterns.json +1 -0
  357. package/embedded-knowledge/indexes/tags/advanced.json +1 -0
  358. package/embedded-knowledge/indexes/tags/al-extension.json +1 -0
  359. package/embedded-knowledge/indexes/tags/al-generics.json +1 -0
  360. package/embedded-knowledge/indexes/tags/al-objects.json +1 -0
  361. package/embedded-knowledge/indexes/tags/al-syntax.json +1 -0
  362. package/embedded-knowledge/indexes/tags/algorithm-structure.json +1 -0
  363. package/embedded-knowledge/indexes/tags/alternatives.json +1 -0
  364. package/embedded-knowledge/indexes/tags/analytics.json +1 -0
  365. package/embedded-knowledge/indexes/tags/api-delegates.json +1 -0
  366. package/embedded-knowledge/indexes/tags/api-design.json +1 -0
  367. package/embedded-knowledge/indexes/tags/api-documentation.json +1 -0
  368. package/embedded-knowledge/indexes/tags/api-endpoints.json +1 -0
  369. package/embedded-knowledge/indexes/tags/api-extensibility.json +1 -0
  370. package/embedded-knowledge/indexes/tags/api-fieldsets.json +1 -0
  371. package/embedded-knowledge/indexes/tags/api-integration.json +1 -0
  372. package/embedded-knowledge/indexes/tags/api-interfaces.json +1 -0
  373. package/embedded-knowledge/indexes/tags/api-optimization.json +1 -0
  374. package/embedded-knowledge/indexes/tags/api-pages.json +1 -0
  375. package/embedded-knowledge/indexes/tags/api-patterns.json +1 -0
  376. package/embedded-knowledge/indexes/tags/api-permissions.json +1 -0
  377. package/embedded-knowledge/indexes/tags/api-responses.json +1 -0
  378. package/embedded-knowledge/indexes/tags/api-simplification.json +1 -0
  379. package/embedded-knowledge/indexes/tags/api.json +1 -0
  380. package/embedded-knowledge/indexes/tags/architecture.json +1 -0
  381. package/embedded-knowledge/indexes/tags/async-patterns.json +1 -0
  382. package/embedded-knowledge/indexes/tags/async-processing.json +1 -0
  383. package/embedded-knowledge/indexes/tags/automatic-registration.json +1 -0
  384. package/embedded-knowledge/indexes/tags/batch-operations.json +1 -0
  385. package/embedded-knowledge/indexes/tags/bc24-migration.json +1 -0
  386. package/embedded-knowledge/indexes/tags/begin-blocks.json +1 -0
  387. package/embedded-knowledge/indexes/tags/begin-end.json +1 -0
  388. package/embedded-knowledge/indexes/tags/behavioral-patterns.json +1 -0
  389. package/embedded-knowledge/indexes/tags/best-practices.json +1 -0
  390. package/embedded-knowledge/indexes/tags/binding.json +1 -0
  391. package/embedded-knowledge/indexes/tags/block-structure.json +1 -0
  392. package/embedded-knowledge/indexes/tags/blocks.json +1 -0
  393. package/embedded-knowledge/indexes/tags/boolean-expressions.json +1 -0
  394. package/embedded-knowledge/indexes/tags/branching.json +1 -0
  395. package/embedded-knowledge/indexes/tags/breaking-changes.json +1 -0
  396. package/embedded-knowledge/indexes/tags/breakpoints.json +1 -0
  397. package/embedded-knowledge/indexes/tags/business-foundation.json +1 -0
  398. package/embedded-knowledge/indexes/tags/business-infrastructure.json +1 -0
  399. package/embedded-knowledge/indexes/tags/business-process.json +1 -0
  400. package/embedded-knowledge/indexes/tags/business-rules.json +1 -0
  401. package/embedded-knowledge/indexes/tags/caching.json +1 -0
  402. package/embedded-knowledge/indexes/tags/case-statements.json +1 -0
  403. package/embedded-knowledge/indexes/tags/case.json +1 -0
  404. package/embedded-knowledge/indexes/tags/code-analysis.json +1 -0
  405. package/embedded-knowledge/indexes/tags/code-clarity.json +1 -0
  406. package/embedded-knowledge/indexes/tags/code-comprehension.json +1 -0
  407. package/embedded-knowledge/indexes/tags/code-conversion.json +1 -0
  408. package/embedded-knowledge/indexes/tags/code-formatting.json +1 -0
  409. package/embedded-knowledge/indexes/tags/code-organization.json +1 -0
  410. package/embedded-knowledge/indexes/tags/code-patterns.json +1 -0
  411. package/embedded-knowledge/indexes/tags/code-quality.json +1 -0
  412. package/embedded-knowledge/indexes/tags/code-reuse.json +1 -0
  413. package/embedded-knowledge/indexes/tags/code-simplification.json +1 -0
  414. package/embedded-knowledge/indexes/tags/code-standards.json +1 -0
  415. package/embedded-knowledge/indexes/tags/code-structure.json +1 -0
  416. package/embedded-knowledge/indexes/tags/code-style.json +1 -0
  417. package/embedded-knowledge/indexes/tags/codeunit-design.json +1 -0
  418. package/embedded-knowledge/indexes/tags/command-queue.json +1 -0
  419. package/embedded-knowledge/indexes/tags/comments.json +1 -0
  420. package/embedded-knowledge/indexes/tags/compile-time-validation.json +1 -0
  421. package/embedded-knowledge/indexes/tags/complex-facade.json +1 -0
  422. package/embedded-knowledge/indexes/tags/complexity-hiding.json +1 -0
  423. package/embedded-knowledge/indexes/tags/complexity-management.json +1 -0
  424. package/embedded-knowledge/indexes/tags/compound-statements.json +1 -0
  425. package/embedded-knowledge/indexes/tags/concurrency.json +1 -0
  426. package/embedded-knowledge/indexes/tags/conditional-logic.json +1 -0
  427. package/embedded-knowledge/indexes/tags/conditional.json +1 -0
  428. package/embedded-knowledge/indexes/tags/conflict-resolution.json +1 -0
  429. package/embedded-knowledge/indexes/tags/consistency.json +1 -0
  430. package/embedded-knowledge/indexes/tags/contract-design.json +1 -0
  431. package/embedded-knowledge/indexes/tags/control-flow.json +1 -0
  432. package/embedded-knowledge/indexes/tags/conversion-guide.json +1 -0
  433. package/embedded-knowledge/indexes/tags/correlation.json +1 -0
  434. package/embedded-knowledge/indexes/tags/custom-messages.json +1 -0
  435. package/embedded-knowledge/indexes/tags/data-access.json +1 -0
  436. package/embedded-knowledge/indexes/tags/data-exposure.json +1 -0
  437. package/embedded-knowledge/indexes/tags/data-integrity.json +1 -0
  438. package/embedded-knowledge/indexes/tags/data-loading.json +1 -0
  439. package/embedded-knowledge/indexes/tags/data-manipulation.json +1 -0
  440. package/embedded-knowledge/indexes/tags/data-modeling.json +1 -0
  441. package/embedded-knowledge/indexes/tags/data-patterns.json +1 -0
  442. package/embedded-knowledge/indexes/tags/data-protection.json +1 -0
  443. package/embedded-knowledge/indexes/tags/data-validation.json +1 -0
  444. package/embedded-knowledge/indexes/tags/database.json +1 -0
  445. package/embedded-knowledge/indexes/tags/debugging.json +1 -0
  446. package/embedded-knowledge/indexes/tags/decision-making.json +1 -0
  447. package/embedded-knowledge/indexes/tags/declaration.json +1 -0
  448. package/embedded-knowledge/indexes/tags/default-messages.json +1 -0
  449. package/embedded-knowledge/indexes/tags/defensive-programming.json +1 -0
  450. package/embedded-knowledge/indexes/tags/deleteall.json +1 -0
  451. package/embedded-knowledge/indexes/tags/dependencies.json +1 -0
  452. package/embedded-knowledge/indexes/tags/deployment.json +1 -0
  453. package/embedded-knowledge/indexes/tags/developer-productivity.json +1 -0
  454. package/embedded-knowledge/indexes/tags/development-workflow.json +1 -0
  455. package/embedded-knowledge/indexes/tags/diagnostics.json +1 -0
  456. package/embedded-knowledge/indexes/tags/dimensions.json +1 -0
  457. package/embedded-knowledge/indexes/tags/documentation.json +1 -0
  458. package/embedded-knowledge/indexes/tags/early-exit.json +1 -0
  459. package/embedded-knowledge/indexes/tags/else-clauses.json +1 -0
  460. package/embedded-knowledge/indexes/tags/end-statements.json +1 -0
  461. package/embedded-knowledge/indexes/tags/enterprise-patterns.json +1 -0
  462. package/embedded-knowledge/indexes/tags/entity-relationships.json +1 -0
  463. package/embedded-knowledge/indexes/tags/error-handling.json +1 -0
  464. package/embedded-knowledge/indexes/tags/error-messages.json +1 -0
  465. package/embedded-knowledge/indexes/tags/error-prevention.json +1 -0
  466. package/embedded-knowledge/indexes/tags/error-text.json +1 -0
  467. package/embedded-knowledge/indexes/tags/etag.json +1 -0
  468. package/embedded-knowledge/indexes/tags/event-bridge.json +1 -0
  469. package/embedded-knowledge/indexes/tags/event-payload.json +1 -0
  470. package/embedded-knowledge/indexes/tags/event-routing.json +1 -0
  471. package/embedded-knowledge/indexes/tags/events.json +1 -0
  472. package/embedded-knowledge/indexes/tags/execution-flow.json +1 -0
  473. package/embedded-knowledge/indexes/tags/expressions.json +1 -0
  474. package/embedded-knowledge/indexes/tags/extensibility.json +1 -0
  475. package/embedded-knowledge/indexes/tags/extensions.json +1 -0
  476. package/embedded-knowledge/indexes/tags/facade-composition.json +1 -0
  477. package/embedded-knowledge/indexes/tags/facade-pattern.json +1 -0
  478. package/embedded-knowledge/indexes/tags/field-control.json +1 -0
  479. package/embedded-knowledge/indexes/tags/field-exclusion.json +1 -0
  480. package/embedded-knowledge/indexes/tags/field-registration.json +1 -0
  481. package/embedded-knowledge/indexes/tags/field-state.json +1 -0
  482. package/embedded-knowledge/indexes/tags/field-validation.json +1 -0
  483. package/embedded-knowledge/indexes/tags/fielderror.json +1 -0
  484. package/embedded-knowledge/indexes/tags/fields.json +1 -0
  485. package/embedded-knowledge/indexes/tags/filtering.json +1 -0
  486. package/embedded-knowledge/indexes/tags/filters.json +1 -0
  487. package/embedded-knowledge/indexes/tags/formatting.json +1 -0
  488. package/embedded-knowledge/indexes/tags/generic-methods.json +1 -0
  489. package/embedded-knowledge/indexes/tags/http-status.json +1 -0
  490. package/embedded-knowledge/indexes/tags/if-statements.json +1 -0
  491. package/embedded-knowledge/indexes/tags/implementation.json +1 -0
  492. package/embedded-knowledge/indexes/tags/indentation.json +1 -0
  493. package/embedded-knowledge/indexes/tags/index-summary.json +277 -0
  494. package/embedded-knowledge/indexes/tags/indexing.json +1 -0
  495. package/embedded-knowledge/indexes/tags/inheritance.json +1 -0
  496. package/embedded-knowledge/indexes/tags/integration.json +1 -0
  497. package/embedded-knowledge/indexes/tags/integrity-checking.json +1 -0
  498. package/embedded-knowledge/indexes/tags/intellisense.json +1 -0
  499. package/embedded-knowledge/indexes/tags/interface-design.json +1 -0
  500. package/embedded-knowledge/indexes/tags/interface-segregation.json +1 -0
  501. package/embedded-knowledge/indexes/tags/isolation.json +1 -0
  502. package/embedded-knowledge/indexes/tags/job-processing.json +1 -0
  503. package/embedded-knowledge/indexes/tags/keyboard-navigation.json +1 -0
  504. package/embedded-knowledge/indexes/tags/keywords.json +1 -0
  505. package/embedded-knowledge/indexes/tags/legacy-modernization.json +1 -0
  506. package/embedded-knowledge/indexes/tags/line-breaks.json +1 -0
  507. package/embedded-knowledge/indexes/tags/line-organization.json +1 -0
  508. package/embedded-knowledge/indexes/tags/line-positioning.json +1 -0
  509. package/embedded-knowledge/indexes/tags/localization.json +1 -0
  510. package/embedded-knowledge/indexes/tags/logging.json +1 -0
  511. package/embedded-knowledge/indexes/tags/loose-coupling.json +1 -0
  512. package/embedded-knowledge/indexes/tags/maintainability.json +1 -0
  513. package/embedded-knowledge/indexes/tags/memory-management.json +1 -0
  514. package/embedded-knowledge/indexes/tags/memory-optimization.json +1 -0
  515. package/embedded-knowledge/indexes/tags/memory.json +1 -0
  516. package/embedded-knowledge/indexes/tags/message-design.json +1 -0
  517. package/embedded-knowledge/indexes/tags/message-formatting.json +1 -0
  518. package/embedded-knowledge/indexes/tags/message-patterns.json +1 -0
  519. package/embedded-knowledge/indexes/tags/metadata-driven.json +1 -0
  520. package/embedded-knowledge/indexes/tags/method-comparison.json +1 -0
  521. package/embedded-knowledge/indexes/tags/module-architecture.json +1 -0
  522. package/embedded-knowledge/indexes/tags/module-validation.json +1 -0
  523. package/embedded-knowledge/indexes/tags/monitoring.json +1 -0
  524. package/embedded-knowledge/indexes/tags/multi-layer-facade.json +1 -0
  525. package/embedded-knowledge/indexes/tags/multi-tenancy.json +1 -0
  526. package/embedded-knowledge/indexes/tags/multiple-values.json +1 -0
  527. package/embedded-knowledge/indexes/tags/naming-conventions.json +1 -0
  528. package/embedded-knowledge/indexes/tags/naming.json +1 -0
  529. package/embedded-knowledge/indexes/tags/navigation.json +1 -0
  530. package/embedded-knowledge/indexes/tags/nested-statements.json +1 -0
  531. package/embedded-knowledge/indexes/tags/no-series-conversion.json +1 -0
  532. package/embedded-knowledge/indexes/tags/no-series-validation.json +1 -0
  533. package/embedded-knowledge/indexes/tags/no-series.json +1 -0
  534. package/embedded-knowledge/indexes/tags/number-generation.json +1 -0
  535. package/embedded-knowledge/indexes/tags/object-documentation.json +1 -0
  536. package/embedded-knowledge/indexes/tags/odata.json +1 -0
  537. package/embedded-knowledge/indexes/tags/ondelete.json +1 -0
  538. package/embedded-knowledge/indexes/tags/onvalidate.json +1 -0
  539. package/embedded-knowledge/indexes/tags/operation-delegation.json +1 -0
  540. package/embedded-knowledge/indexes/tags/operation-safety.json +1 -0
  541. package/embedded-knowledge/indexes/tags/operators.json +1 -0
  542. package/embedded-knowledge/indexes/tags/optimization.json +1 -0
  543. package/embedded-knowledge/indexes/tags/order.json +1 -0
  544. package/embedded-knowledge/indexes/tags/organization.json +1 -0
  545. package/embedded-knowledge/indexes/tags/pages.json +1 -0
  546. package/embedded-knowledge/indexes/tags/parameters.json +1 -0
  547. package/embedded-knowledge/indexes/tags/patterns.json +1 -0
  548. package/embedded-knowledge/indexes/tags/performance-optimization.json +1 -0
  549. package/embedded-knowledge/indexes/tags/performance.json +1 -0
  550. package/embedded-knowledge/indexes/tags/placement.json +1 -0
  551. package/embedded-knowledge/indexes/tags/posting-codeunits.json +1 -0
  552. package/embedded-knowledge/indexes/tags/posting.json +1 -0
  553. package/embedded-knowledge/indexes/tags/preconditions.json +1 -0
  554. package/embedded-knowledge/indexes/tags/primary-key.json +1 -0
  555. package/embedded-knowledge/indexes/tags/privacy.json +1 -0
  556. package/embedded-knowledge/indexes/tags/process-automation.json +1 -0
  557. package/embedded-knowledge/indexes/tags/production.json +1 -0
  558. package/embedded-knowledge/indexes/tags/productivity.json +1 -0
  559. package/embedded-knowledge/indexes/tags/query-performance.json +1 -0
  560. package/embedded-knowledge/indexes/tags/queue-management.json +1 -0
  561. package/embedded-knowledge/indexes/tags/ranges.json +1 -0
  562. package/embedded-knowledge/indexes/tags/readability.json +1 -0
  563. package/embedded-knowledge/indexes/tags/record-access.json +1 -0
  564. package/embedded-knowledge/indexes/tags/record-methods.json +1 -0
  565. package/embedded-knowledge/indexes/tags/refactoring.json +1 -0
  566. package/embedded-knowledge/indexes/tags/reference.json +1 -0
  567. package/embedded-knowledge/indexes/tags/repeat-loops.json +1 -0
  568. package/embedded-knowledge/indexes/tags/repeat-statement.json +1 -0
  569. package/embedded-knowledge/indexes/tags/runtime-errors.json +1 -0
  570. package/embedded-knowledge/indexes/tags/runtime.json +1 -0
  571. package/embedded-knowledge/indexes/tags/safeguards.json +1 -0
  572. package/embedded-knowledge/indexes/tags/security.json +1 -0
  573. package/embedded-knowledge/indexes/tags/sequence-management.json +1 -0
  574. package/embedded-knowledge/indexes/tags/serialization.json +1 -0
  575. package/embedded-knowledge/indexes/tags/session-logmessage.json +1 -0
  576. package/embedded-knowledge/indexes/tags/session.json +1 -0
  577. package/embedded-knowledge/indexes/tags/setloadfields.json +1 -0
  578. package/embedded-knowledge/indexes/tags/shortcuts.json +1 -0
  579. package/embedded-knowledge/indexes/tags/sift.json +1 -0
  580. package/embedded-knowledge/indexes/tags/singleinstance.json +1 -0
  581. package/embedded-knowledge/indexes/tags/spacing.json +1 -0
  582. package/embedded-knowledge/indexes/tags/sql-translation.json +1 -0
  583. package/embedded-knowledge/indexes/tags/standards.json +1 -0
  584. package/embedded-knowledge/indexes/tags/statements.json +1 -0
  585. package/embedded-knowledge/indexes/tags/streaming.json +1 -0
  586. package/embedded-knowledge/indexes/tags/strong-typing.json +1 -0
  587. package/embedded-knowledge/indexes/tags/structural-patterns.json +1 -0
  588. package/embedded-knowledge/indexes/tags/structure.json +1 -0
  589. package/embedded-knowledge/indexes/tags/subscribers.json +1 -0
  590. package/embedded-knowledge/indexes/tags/switch.json +1 -0
  591. package/embedded-knowledge/indexes/tags/symbol-search.json +1 -0
  592. package/embedded-knowledge/indexes/tags/syntax.json +1 -0
  593. package/embedded-knowledge/indexes/tags/systemid.json +1 -0
  594. package/embedded-knowledge/indexes/tags/table-configuration.json +1 -0
  595. package/embedded-knowledge/indexes/tags/table-events.json +1 -0
  596. package/embedded-knowledge/indexes/tags/table-keys.json +1 -0
  597. package/embedded-knowledge/indexes/tags/table-safety.json +1 -0
  598. package/embedded-knowledge/indexes/tags/task-scheduler.json +1 -0
  599. package/embedded-knowledge/indexes/tags/telemetry.json +1 -0
  600. package/embedded-knowledge/indexes/tags/template-method.json +1 -0
  601. package/embedded-knowledge/indexes/tags/temporary-tables.json +1 -0
  602. package/embedded-knowledge/indexes/tags/testfield.json +1 -0
  603. package/embedded-knowledge/indexes/tags/tradeoffs.json +1 -0
  604. package/embedded-knowledge/indexes/tags/triggers.json +1 -0
  605. package/embedded-knowledge/indexes/tags/troubleshooting.json +1 -0
  606. package/embedded-knowledge/indexes/tags/type-safety.json +1 -0
  607. package/embedded-knowledge/indexes/tags/url-structure.json +1 -0
  608. package/embedded-knowledge/indexes/tags/user-experience.json +1 -0
  609. package/embedded-knowledge/indexes/tags/user-feedback.json +1 -0
  610. package/embedded-knowledge/indexes/tags/user-interface.json +1 -0
  611. package/embedded-knowledge/indexes/tags/validation-feedback.json +1 -0
  612. package/embedded-knowledge/indexes/tags/validation.json +1 -0
  613. package/embedded-knowledge/indexes/tags/variables.json +1 -0
  614. package/embedded-knowledge/indexes/tags/verbosity.json +1 -0
  615. package/embedded-knowledge/indexes/tags/vs-code.json +1 -0
  616. package/embedded-knowledge/indexes/tags/web-services.json +1 -0
  617. package/embedded-knowledge/indexes/tags/workflow-management.json +1 -0
  618. package/embedded-knowledge/indexes/tags/workflow-optimization.json +1 -0
  619. package/embedded-knowledge/indexes/tags/workflow-templates.json +1 -0
  620. package/embedded-knowledge/indexes/tags/workspace.json +1 -0
  621. package/embedded-knowledge/indexes/tags/xml-documentation.json +1 -0
  622. package/embedded-knowledge/indexes/topic-relationships.json +128 -0
  623. package/embedded-knowledge/methodologies/index.json +81 -0
  624. package/embedded-knowledge/methodologies/phases/analysis-full.md +208 -0
  625. package/embedded-knowledge/methodologies/phases/analysis-quick.md +44 -0
  626. package/embedded-knowledge/methodologies/phases/analysis.md +182 -0
  627. package/embedded-knowledge/methodologies/phases/execution-validation-full.md +174 -0
  628. package/embedded-knowledge/methodologies/phases/execution-validation-quick.md +31 -0
  629. package/embedded-knowledge/methodologies/phases/execution-validation.md +174 -0
  630. package/embedded-knowledge/methodologies/phases/performance-full.md +211 -0
  631. package/embedded-knowledge/methodologies/phases/performance-quick.md +32 -0
  632. package/embedded-knowledge/methodologies/phases/performance.md +211 -0
  633. package/embedded-knowledge/methodologies/phases/verification-full.md +162 -0
  634. package/embedded-knowledge/methodologies/phases/verification-quick.md +48 -0
  635. package/embedded-knowledge/methodologies/phases/verification.md +146 -0
  636. package/embedded-knowledge/methodologies/workflow-enforcement.md +142 -0
  637. package/embedded-knowledge/methodologies/workflows/code-review-workflow.md +99 -0
  638. package/package.json +74 -0
@@ -0,0 +1,128 @@
1
+ ---
2
+ title: "AL Object Navigation Shortcuts"
3
+ domain: "sam-coder"
4
+ difficulty: "intermediate"
5
+ bc_versions: "14+"
6
+ tags: ["navigation", "al-objects", "workspace", "symbol-search", "dependencies"]
7
+ prerequisites: ["vs-code-al-shortcuts", "al-project-structure"]
8
+ ---
9
+
10
+ # AL Object Navigation Shortcuts
11
+
12
+ ## Overview
13
+
14
+ Efficient navigation between AL objects is crucial for understanding code relationships, debugging complex scenarios, and maintaining large AL projects. Master these navigation patterns to move fluidly through Business Central codebases.
15
+
16
+ **Core Concept**: AL object navigation combines symbol search, dependency tracking, and workspace awareness for rapid code exploration.
17
+
18
+ ## Symbol-Based Navigation
19
+
20
+ ### Go-To Definition Patterns
21
+ **F12** on any AL symbol provides immediate navigation:
22
+ - **Object references**: Jump from usage to object definition
23
+ - **Procedure calls**: Navigate to procedure implementation
24
+ - **Variable declarations**: Find where variables are declared
25
+ - **Field references**: Jump to table field definitions
26
+
27
+ ### Peek Definition Workflow
28
+ **Alt+F12** opens inline preview without losing current context:
29
+ - **Quick reference checking**: Verify procedure signatures without navigation
30
+ - **Multi-object comparison**: Compare related objects side-by-side
31
+ - **Context preservation**: Maintain current editing position while exploring
32
+
33
+ ### Reference Discovery
34
+ **Shift+F12** reveals all usages of current symbol:
35
+ - **Impact analysis**: Understand where objects/procedures are used
36
+ - **Refactoring planning**: Identify all affected code before changes
37
+ - **Documentation research**: Find usage examples across codebase
38
+
39
+ ## Workspace-Level Navigation
40
+
41
+ ### Global Symbol Search
42
+ **Ctrl+T** enables rapid workspace-wide object discovery:
43
+ - **Object name search**: Find tables, pages, codeunits by partial name
44
+ - **Procedure location**: Locate specific procedures across all objects
45
+ - **Fuzzy matching**: Use partial strings to find objects quickly
46
+
47
+ ### AL-Specific Object Navigation
48
+ **Ctrl+Shift+P → "AL: Go!"** provides enhanced AL object search:
49
+ - **Object type filtering**: Search within specific object types (tables, pages)
50
+ - **Object ID navigation**: Jump directly to objects by ID number
51
+ - **Extension awareness**: Navigate across multiple AL extensions
52
+
53
+ ### File-Level Symbol Navigation
54
+ **Ctrl+Shift+O** shows current file's symbol outline:
55
+ - **Procedure listing**: Quick access to all procedures in current object
56
+ - **Variable declarations**: Jump to variable declaration sections
57
+ - **Structured navigation**: Navigate by AL object structure (triggers, procedures)
58
+
59
+ ## Dependency Tracking
60
+
61
+ ### Cross-Object Relationships
62
+ Understanding AL object dependencies through navigation:
63
+ - **Table-Page relationships**: Navigate from table fields to related pages
64
+ - **Codeunit dependencies**: Track procedure calls across codeunits
65
+ - **Report-Dataset connections**: Follow data flow from datasets to layout
66
+
67
+ ### Extension Boundary Navigation
68
+ Navigate between AL extensions and base application:
69
+ - **Base application references**: Jump to standard BC objects from extensions
70
+ - **Extension dependencies**: Navigate between dependent AL extensions
71
+ - **Symbol resolution**: Understand which extension provides specific symbols
72
+
73
+ ## Advanced Navigation Techniques
74
+
75
+ ### Multi-Cursor Object Exploration
76
+ Use **Ctrl+D** for simultaneous multi-object navigation:
77
+ - **Pattern identification**: Select similar symbols across multiple objects
78
+ - **Bulk navigation**: Navigate to multiple related definitions simultaneously
79
+ - **Comparison workflows**: Compare similar patterns across objects
80
+
81
+ ### Breadcrumb Navigation
82
+ Leverage VS Code breadcrumbs for AL object context:
83
+ - **Object hierarchy**: Visual representation of current location in AL object
84
+ - **Quick parent navigation**: Click breadcrumbs to navigate to parent scopes
85
+ - **Context awareness**: Understand current position within complex AL objects
86
+
87
+ ### Search Integration with Navigation
88
+ Combine **Ctrl+Shift+F** with navigation shortcuts:
89
+ - **Usage pattern search**: Find specific AL patterns across workspace
90
+ - **Cross-reference validation**: Verify object relationships through search
91
+ - **Documentation discovery**: Find comments and documentation related to objects
92
+
93
+ ## Navigation Efficiency Patterns
94
+
95
+ ### Context-Preserving Exploration
96
+ - **Tab management**: Use multiple tabs for related AL objects
97
+ - **Split editor**: Compare related objects side-by-side
98
+ - **Breadcrumb trails**: Maintain awareness of navigation history
99
+
100
+ ### Rapid Discovery Workflows
101
+ - **Symbol-first navigation**: Start with symbol search, then explore context
102
+ - **Reference-driven exploration**: Use "Find All References" to understand object usage
103
+ - **Definition-to-usage flow**: Navigate from definitions to all usage contexts
104
+
105
+ ### Team Navigation Standards
106
+ - **Consistent naming patterns**: Enable predictable object discovery
107
+ - **Documentation links**: Include navigation hints in object comments
108
+ - **Dependency documentation**: Maintain clear dependency maps for complex solutions
109
+
110
+ ## Common Navigation Scenarios
111
+
112
+ ### Debugging Complex Flows
113
+ Navigate efficiently through call stacks and data flows:
114
+ 1. **Start at error location** using diagnostic navigation
115
+ 2. **Trace back through call stack** using Go-to-Definition
116
+ 3. **Identify data sources** through table/field navigation
117
+ 4. **Verify related objects** using Find-All-References
118
+
119
+ ### Code Review Navigation
120
+ Systematic exploration of code changes:
121
+ 1. **Start with modified objects** in source control view
122
+ 2. **Navigate to related objects** using dependency tracking
123
+ 3. **Verify impact scope** using reference discovery
124
+ 4. **Check integration points** through cross-object navigation
125
+
126
+ *Navigation practice exercises: samples/al-navigation-practice.md*
127
+ *Workspace search patterns: sam-coder-index.json#workspace-navigation*
128
+ *AL object relationships: code-design-index.json#object-dependencies*
@@ -0,0 +1,75 @@
1
+ ---
2
+ title: "AL Readability Optimization"
3
+ domain: "sam-coder"
4
+ difficulty: "advanced"
5
+ bc_versions: "14+"
6
+ tags: ["readability", "optimization", "code-quality"]
7
+ type: "improvement-pattern"
8
+ category: "code-quality"
9
+ pattern_type: "good"
10
+ severity: "medium"
11
+ impact_level: "medium"
12
+ improvement_suggestion: "Optimize AL code readability through strategic formatting and organization techniques"
13
+ implementation_steps: ["analyze-readability-factors", "apply-optimization-techniques", "validate-improvement"]
14
+ validation_criteria: ["improved-code-readability", "reduced-cognitive-load"]
15
+ technical_areas: ["al-code"]
16
+ ---
17
+
18
+ # AL Readability Optimization
19
+
20
+ ## Overview
21
+
22
+ Readability optimization in AL code involves strategic application of formatting, naming, and organizational techniques to minimize cognitive load and maximize code comprehension. Optimized readability directly impacts development productivity and code maintainability.
23
+
24
+ **Key Principle**: Structure AL code to minimize cognitive effort required for understanding logic, flow, and purpose.
25
+
26
+ ## Strategic Framework
27
+
28
+ ### Cognitive Load Reduction
29
+ - **Visual Hierarchy**: Clear formatting that reveals code structure immediately
30
+ - **Logical Organization**: Code arrangement that follows natural reading patterns
31
+ - **Context Clarity**: Sufficient information for understanding without external references
32
+ - **Complexity Management**: Techniques for handling complex logic readably
33
+
34
+ ### Comprehension Enhancement
35
+ Optimize code layout and organization to support quick understanding of business logic, control flow, and data operations within Business Central context.
36
+
37
+ ## Architecture Focus
38
+
39
+ ### Readability Factors
40
+ - **Visual Structure**: Indentation, spacing, and alignment for clarity
41
+ - **Naming Clarity**: Descriptive identifiers that convey purpose
42
+ - **Logical Flow**: Code organization that matches business process flow
43
+ - **Documentation Integration**: Comments and structure that enhance understanding
44
+
45
+ ### Optimization Techniques
46
+ Apply systematic approaches to improve code readability including strategic formatting, logical organization, and clarity enhancement patterns.
47
+
48
+ ## Best Practices
49
+
50
+ ### Structure Optimization
51
+ - **Logical code grouping** that reflects business operations
52
+ - **Clear visual hierarchy** through consistent formatting
53
+ - **Strategic white space** to separate conceptual sections
54
+ - **Meaningful naming** that conveys purpose and context
55
+ - **Progressive complexity** from simple to complex operations
56
+
57
+ ### Flow Enhancement
58
+ Organize code to follow natural reading patterns, group related operations logically, and use formatting to guide reader attention to important elements.
59
+
60
+ ### Clarity Techniques
61
+ Use consistent patterns for similar operations, eliminate unnecessary complexity, and structure code to support quick mental model building.
62
+
63
+ ## Anti-Patterns
64
+
65
+ ### Avoid These Approaches
66
+ - **Dense code blocks** without logical separation
67
+ - **Unclear naming** requiring mental translation
68
+ - **Random organization** without logical flow
69
+ - **Inconsistent patterns** requiring constant style adaptation
70
+ - **Unnecessary complexity** that obscures business logic
71
+
72
+ Poor readability optimization increases development time, introduces errors, and makes code maintenance more difficult and expensive.
73
+
74
+ *Related patterns: al-formatting-consistency-patterns.md, al-statement-per-line-rule.md*
75
+ *Cross-references: See samples in other formatting topics for readability examples*
@@ -0,0 +1,95 @@
1
+ ---
2
+ title: "AL Record Find Early Exit"
3
+ domain: "sam-coder"
4
+ difficulty: "intermediate"
5
+ bc_versions: "14+"
6
+ tags: ["record-access", "performance", "early-exit", "database"]
7
+ type: "improvement-pattern"
8
+ category: "performance"
9
+ pattern_type: "good"
10
+ severity: "high"
11
+ impact_level: "high"
12
+ improvement_suggestion: "Implement early exit patterns for record Find operations to prevent unnecessary processing"
13
+ implementation_steps: ["identify-record-operations", "apply-early-exit-patterns", "validate-performance"]
14
+ validation_criteria: ["improved-performance", "reduced-database-load"]
15
+ technical_areas: ["al-code", "database"]
16
+ samples: "samples/al-record-find-early-exit.md"
17
+ ---
18
+
19
+ # AL Record Find Early Exit
20
+
21
+ ## Overview
22
+
23
+ Implementing early exit patterns for AL record Find operations prevents unnecessary database queries and subsequent processing when records don't exist. This fundamental performance optimization reduces database load and improves response times.
24
+
25
+ **Key Principle**: Always check Find() results before proceeding with record-dependent operations to avoid processing non-existent data.
26
+
27
+ ## Strategic Framework
28
+
29
+ ### Standard Find Pattern
30
+ ```
31
+ if Customer.Find() then begin
32
+ // Process found record
33
+ end else begin
34
+ // Handle not found case
35
+ end;
36
+ ```
37
+
38
+ ### Early Exit Implementation
39
+ Replace nested if-else with guard clause pattern:
40
+ ```
41
+ if not Customer.Find() then
42
+ exit;
43
+
44
+ // Process found record directly
45
+ ```
46
+
47
+ ### Performance Impact
48
+ Early exits eliminate unnecessary code execution when records don't exist, reducing CPU usage and improving user experience in data-sparse scenarios.
49
+
50
+ ## Architecture Focus
51
+
52
+ ### Database Efficiency
53
+ **Query Optimization**: Early exits prevent cascading database operations when initial record retrieval fails
54
+ **Connection Management**: Reduced database round trips improve connection pool utilization
55
+ **Memory Management**: Avoiding record processing when data doesn't exist conserves memory allocation
56
+ **Transaction Scope**: Early exits keep transaction scope minimal for non-existent record scenarios
57
+
58
+ ### Error Prevention
59
+ Early exit patterns prevent null reference errors and invalid data processing that can occur when assuming record existence without verification.
60
+
61
+ ### Code Flow Clarity
62
+ Guard clause implementation creates clear separation between record existence validation and business logic processing.
63
+
64
+ ## Best Practices
65
+
66
+ ### Implementation Patterns
67
+ - **Guard Clauses First**: Check record existence at procedure start before main logic
68
+ - **Consistent Error Handling**: Standardize response for non-existent records across application
69
+ - **Logging Considerations**: Log appropriate messages for record not found scenarios
70
+ - **Return Value Strategy**: Design clear return patterns for procedures with early exits
71
+
72
+ ### Performance Optimization
73
+ - **Filter Before Find**: Apply appropriate filters before Find() to reduce search scope
74
+ - **Index Utilization**: Ensure Find operations use optimal indexes for best performance
75
+ - **Batch Processing**: Consider FindSet() for multiple record processing scenarios
76
+ - **Existence Checks**: Use IsEmpty() for existence verification without full record loading
77
+
78
+ ### Error Handling Integration
79
+ - **Graceful Degradation**: Handle missing records without disrupting user workflow
80
+ - **Clear Messaging**: Provide meaningful feedback when records cannot be found
81
+ - **Recovery Options**: Offer alternative actions when primary records are unavailable
82
+ - **Audit Trails**: Log record access attempts for troubleshooting and analysis
83
+
84
+ ## Anti-Patterns
85
+
86
+ ### Avoid These Approaches
87
+ - **Assumed Existence**: Processing records without Find() verification
88
+ - **Nested Processing**: Deep conditional nesting instead of early validation
89
+ - **Ignored Return Values**: Not checking Find() boolean result before proceeding
90
+ - **Cascading Failures**: Allowing record-not-found errors to propagate through system
91
+
92
+ Failing to implement early exits in high-frequency operations creates cumulative performance degradation and unnecessary database load.
93
+
94
+ *Related patterns: al-record-filtering.md, al-database-optimization.md*
95
+ *Implementation examples: see samples/al-record-find-early-exit.md*
@@ -0,0 +1,141 @@
1
+ ---
2
+ title: "Command Queue Pattern in AL"
3
+ domain: "sam-coder"
4
+ difficulty: "intermediate"
5
+ bc_versions: "14+"
6
+ tags: ["command-queue", "async-processing", "message-patterns", "queue-management"]
7
+ prerequisites: ["queue-basics", "command-pattern", "async-programming"]
8
+ samples: "samples/command-queue-pattern.md"
9
+ related_topics: ["task-scheduler-pattern-implementation", "event-bridge-pattern-al"]
10
+ ---
11
+
12
+ # Command Queue Pattern in AL
13
+
14
+ ## Overview
15
+
16
+ The Command Queue Pattern enables asynchronous command processing by queuing commands for later execution, providing system decoupling and improved responsiveness. This pattern is essential for handling operations that don't require immediate execution or that need to be processed in specific orders.
17
+
18
+ **Key Benefit**: Enables asynchronous processing that improves system responsiveness while providing reliable command execution guarantees.
19
+
20
+ ## Core Queue Architecture
21
+
22
+ ### Command Encapsulation
23
+ Design command objects that encapsulate all necessary information for execution, including parameters, context, and execution requirements.
24
+
25
+ ### Queue Management System
26
+ Implement queue management that handles command storage, ordering, priority processing, and execution coordination.
27
+
28
+ ### Processing Engine Design
29
+ Create processing engines that can reliably execute queued commands while handling errors, retries, and recovery scenarios.
30
+
31
+ ## Implementation Patterns
32
+
33
+ ### FIFO Queue Processing
34
+ Implement first-in-first-out queue processing for scenarios where command execution order is critical for business logic correctness.
35
+
36
+ ### Priority Queue Handling
37
+ Design priority-based queue processing that ensures high-priority commands receive expedited processing while maintaining overall queue progress.
38
+
39
+ ### Batch Processing Integration
40
+ Integrate queue processing with batch processing capabilities to enable efficient handling of large command volumes.
41
+
42
+ ## Advanced Queue Features
43
+
44
+ ### Command Scheduling
45
+ Implement scheduling capabilities that allow commands to be queued for future execution at specific times or after specific delays.
46
+
47
+ ### Command Dependencies
48
+ Design dependency tracking that ensures prerequisite commands complete successfully before dependent commands execute.
49
+
50
+ ### Transaction Integration
51
+ Integrate command processing with transaction management to ensure data consistency and enable rollback scenarios.
52
+
53
+ ## Error Handling and Reliability
54
+
55
+ ### Retry Mechanisms
56
+ - Implement intelligent retry policies for failed command execution
57
+ - Support different retry strategies based on error types and command characteristics
58
+ - Provide exponential backoff to prevent system overload during error scenarios
59
+ - Log retry attempts for debugging and monitoring purposes
60
+
61
+ ### Dead Letter Queues
62
+ - Design dead letter queues for commands that cannot be processed successfully
63
+ - Implement manual review and reprocessing capabilities for dead letter items
64
+ - Provide analysis tools for understanding command failure patterns
65
+ - Support command modification and requeuing after issue resolution
66
+
67
+ ## Performance Optimization
68
+
69
+ ### Queue Throughput
70
+ Optimize queue processing algorithms to maximize command throughput while maintaining system stability and resource efficiency.
71
+
72
+ ### Memory Management
73
+ Implement efficient memory management for queued commands to prevent memory exhaustion during high-volume processing.
74
+
75
+ ### Parallel Processing
76
+ Design parallel processing capabilities for independent commands to improve overall system throughput and responsiveness.
77
+
78
+ ## Monitoring and Diagnostics
79
+
80
+ ### Queue Health Monitoring
81
+ Implement comprehensive monitoring of queue health including length, processing rates, error rates, and performance metrics.
82
+
83
+ ### Command Execution Tracking
84
+ Provide detailed tracking of command execution including timing, success rates, and failure analysis capabilities.
85
+
86
+ ### Performance Analytics
87
+ Design analytics capabilities that can identify performance bottlenecks and optimization opportunities in queue processing.
88
+
89
+ ## Integration Strategies
90
+
91
+ ### Event-Driven Integration
92
+ Integrate command queues with event-driven architectures to enable reactive command processing based on business events.
93
+
94
+ ### External System Integration
95
+ Design integration patterns that enable command queue coordination with external systems and services.
96
+
97
+ ### API Integration
98
+ Implement API patterns that allow external systems to submit commands to queues while maintaining security and validation requirements.
99
+
100
+ ## Security and Validation
101
+
102
+ ### Command Validation
103
+ - Implement comprehensive validation for queued commands before execution
104
+ - Validate user permissions and authorization for command execution
105
+ - Support command sanitization to prevent security vulnerabilities
106
+ - Audit command execution for compliance and security monitoring
107
+
108
+ ### Access Control
109
+ - Control access to command queuing and management capabilities
110
+ - Implement role-based access to different queue operations
111
+ - Support secure command parameter handling for sensitive data
112
+ - Provide audit trails for command queue operations
113
+
114
+ ## Best Practices
115
+
116
+ ### Design Principles
117
+ - Design commands to be idempotent to support safe retry operations
118
+ - Implement comprehensive logging for command execution and queue operations
119
+ - Use dependency injection for command implementation flexibility
120
+ - Keep command implementations focused and single-purpose
121
+
122
+ ### Operational Excellence
123
+ - Provide clear documentation for command queue configuration and management
124
+ - Implement automated testing for queue processing logic
125
+ - Support queue processing simulation and testing capabilities
126
+ - Maintain clear operational procedures for queue management
127
+
128
+ ## Common Pitfalls
129
+
130
+ ### Queue Overflow
131
+ Avoid scenarios where command queues can grow unbounded, leading to memory exhaustion and system performance degradation.
132
+
133
+ ### Command Coupling
134
+ Prevent tight coupling between command implementations that reduces system flexibility and maintenance.
135
+
136
+ ### Processing Bottlenecks
137
+ Identify and prevent processing bottlenecks that can cause queue backups and system responsiveness issues.
138
+
139
+ *Complete command queue implementation: samples/command-queue-pattern.md*
140
+ *Task scheduling integration: task-scheduler-pattern-implementation.md*
141
+ *Event-driven patterns: event-bridge-pattern-al.md*
@@ -0,0 +1,91 @@
1
+ ---
2
+ title: "DeleteAll Alternative Implementation"
3
+ domain: "sam-coder"
4
+ difficulty: "advanced"
5
+ bc_versions: "14+"
6
+ tags: ["deleteall", "alternatives", "implementation", "patterns"]
7
+ samples: "samples/deleteall-alternative-implementation.md"
8
+ ---
9
+ # DeleteAll Alternative Implementation
10
+
11
+ ## Overview
12
+
13
+ While DeleteAll provides comprehensive business logic enforcement through OnDelete trigger execution, many scenarios require alternative approaches that prioritize performance, custom logic, or specific operational requirements.
14
+
15
+ **Key Consideration**: Alternative implementations trade business logic automation for performance or flexibility - this trade-off must align with specific business requirements.
16
+
17
+ **Common Scenarios for Alternatives**:
18
+ - High-performance bulk operations where trigger execution creates unacceptable delays
19
+ - Custom business logic requirements that extend beyond standard OnDelete trigger capabilities
20
+ - Integration scenarios requiring specialized error handling and recovery mechanisms
21
+ - Complex data transformation operations during deletion processes
22
+
23
+ ## Strategic Implementation Approaches
24
+
25
+ ### Direct Database Operations
26
+
27
+ **SQL DELETE Operations**: Maximum performance approach bypassing all BC business logic layer processing.
28
+
29
+ **Use Case Scenarios**:
30
+ - Simple cleanup operations on isolated tables without related data dependencies
31
+ - System maintenance operations where business rule enforcement is unnecessary
32
+ - Temporary data removal where audit trails and logging are not required
33
+ - Performance-critical operations where trigger execution overhead is prohibitive
34
+
35
+ **Risk Assessment**:
36
+ - Data integrity violations possible if business logic requirements are misunderstood
37
+ - Related table orphaned data creation if cleanup logic is inadequate
38
+ - Compliance violation potential if audit trail requirements are not properly implemented
39
+ - Future maintenance complexity increases with custom implementation scope
40
+
41
+ ### Custom Deletion Procedures
42
+
43
+ **Controlled Business Logic Implementation**: Selective implementation of essential business logic with performance optimization.
44
+
45
+ **Design Patterns**:
46
+ - Extract critical OnDelete trigger logic into dedicated validation procedures
47
+ - Implement batch processing patterns for large dataset operations with progress tracking
48
+ - Design custom error handling and recovery mechanisms for specific operational scenarios
49
+ - Create specialized audit and logging procedures tailored to deletion operation requirements
50
+
51
+ **Performance Optimization Techniques**:
52
+ - Batch record processing to reduce database round-trip overhead
53
+ - Optimized transaction boundary management for improved throughput
54
+ - Progress tracking and user communication for long-running operations
55
+ - Parallel processing implementation where business logic constraints permit
56
+
57
+ ### Hybrid Approaches
58
+
59
+ **Selective DeleteAll Usage**: Combining DeleteAll with alternative approaches based on operation characteristics.
60
+
61
+ **Conditional Logic Implementation**:
62
+ - Use DeleteAll for small datasets where performance impact is acceptable
63
+ - Implement custom logic for large datasets requiring performance optimization
64
+ - Apply different strategies based on table complexity and related data relationships
65
+ - Design fallback mechanisms for error conditions and exceptional scenarios
66
+
67
+ ## Implementation Framework
68
+
69
+ ### Requirements Analysis
70
+ - Catalog all OnDelete trigger logic and classify by criticality to business operations
71
+ - Identify related table relationships and cascade operation requirements
72
+ - Assess audit trail and compliance logging requirements for deletion operations
73
+ - Define acceptable performance thresholds for different types of deletion operations
74
+
75
+ ### Architecture Design
76
+ - Design modular deletion procedure architecture supporting multiple implementation strategies
77
+ - Implement configuration-driven approach enabling runtime selection of deletion methods
78
+ - Create standardized interfaces for deletion operations supporting consistent error handling
79
+ - Plan integration with existing BC business logic and validation procedures
80
+
81
+ ## Anti-Patterns
82
+
83
+ ### Business Logic Neglect
84
+ **Dangerous Oversimplification**: Implementing alternatives without proper business logic consideration. Bypassing essential validation logic creates data integrity risks and compliance violations.
85
+
86
+ ### Performance Assumption Errors
87
+ **Premature Optimization**: Implementing complex alternatives without validating DeleteAll performance limitations. Thoroughly evaluate DeleteAll performance before committing to alternative implementation effort.
88
+
89
+ ### Incomplete Implementation
90
+ **Partial Logic Implementation**: Creating alternatives that inadequately replace DeleteAll functionality. Ensure alternative solutions provide equivalent functionality where business requirements demand it.
91
+
@@ -0,0 +1,118 @@
1
+ ---
2
+ title: "DeleteAll Method Usage"
3
+ domain: "sam-coder"
4
+ difficulty: "intermediate"
5
+ bc_versions: "14+"
6
+ tags: ["deleteall", "data-manipulation", "triggers"]
7
+ prerequisites: ["table-basics", "record-management"]
8
+ samples: "samples/deleteall-usage.md"
9
+ ---
10
+ # DeleteAll Method Usage
11
+
12
+ ## Overview
13
+
14
+ DeleteAll is a BC method that removes all records from a table or filtered set while executing OnDelete triggers for each record. Unlike direct SQL DELETE operations, DeleteAll maintains full BC business logic compliance by triggering all associated validations and cascading operations.
15
+
16
+ **Key Characteristic**: Always executes OnDelete triggers - this is fundamental BC behavior that cannot be bypassed.
17
+
18
+ **Primary Use Cases**:
19
+ - Clearing temporary data with proper cleanup
20
+ - Bulk deletions requiring business logic validation
21
+ - Data maintenance operations preserving referential integrity
22
+ - Cleanup operations in test scenarios
23
+
24
+ **Critical Understanding**: DeleteAll is not a performance optimization - it's a business logic preservation tool that executes triggers for every deleted record.
25
+
26
+ ## Strategic Framework
27
+
28
+ ### When DeleteAll is Appropriate
29
+
30
+ **Data Integrity Scenarios**:
31
+ - Clearing temporary tables where related data must be cleaned up
32
+ - Removing test data while maintaining proper audit trails
33
+ - Bulk operations where business rules must be enforced
34
+ - Scenarios requiring cascade delete operations
35
+
36
+ **Business Logic Requirements**:
37
+ - Operations requiring OnDelete trigger execution
38
+ - Scenarios where related table updates are necessary
39
+ - Situations demanding proper logging and audit trail maintenance
40
+ - Cases where validation logic must run for each deletion
41
+
42
+ ### When DeleteAll is Inappropriate
43
+
44
+ **Performance-Critical Operations**:
45
+ - Large dataset deletions where triggers are unnecessary
46
+ - Bulk cleanup operations on isolated data
47
+ - System maintenance requiring maximum speed
48
+ - Operations on tables without significant business logic
49
+
50
+ **Alternative Consideration Points**:
51
+ - Direct SQL operations for simple, non-validated deletions
52
+ - Batch processing approaches for very large datasets
53
+ - Specialized cleanup procedures for system maintenance
54
+ - Custom deletion logic for complex business scenarios
55
+
56
+ ## Implementation Considerations
57
+
58
+ ### Trigger Execution Impact
59
+
60
+ **Performance Implications**:
61
+ - Each record deletion executes full OnDelete trigger logic
62
+ - Related table updates and validations occur for every record
63
+ - Memory usage scales with trigger complexity and related data volume
64
+ - Network traffic increases with extensive related table operations
65
+
66
+ **Business Logic Preservation**:
67
+ - Maintains complete data integrity across all related tables
68
+ - Ensures proper audit trail and logging execution
69
+ - Preserves cascade delete operations and referential integrity
70
+ - Executes all custom business validation logic
71
+
72
+ ### Error Handling Strategy
73
+
74
+ **Validation Failures**:
75
+ - Any OnDelete trigger failure stops the entire DeleteAll operation
76
+ - Partial deletions can occur if errors happen mid-process
77
+ - Transaction boundaries depend on implementation context
78
+ - Error recovery requires understanding of deletion state
79
+
80
+ **Recovery Patterns**:
81
+ - Implement proper transaction management around DeleteAll calls
82
+ - Design retry logic for recoverable validation failures
83
+ - Plan for partial completion scenarios and cleanup procedures
84
+ - Consider logging and monitoring for deletion operation tracking
85
+
86
+ ## Best Practices
87
+
88
+ ### Effective DeleteAll Usage
89
+
90
+ **Preparation Steps**:
91
+ - Verify that OnDelete triggers contain necessary business logic
92
+ - Ensure related data can handle the deletion operations
93
+ - Test deletion operations in controlled environments first
94
+ - Implement proper error handling and recovery procedures
95
+
96
+ **Execution Patterns**:
97
+ - Use appropriate filters to limit deletion scope
98
+ - Consider batch processing for very large datasets
99
+ - Implement progress tracking for long-running operations
100
+ - Plan for proper transaction boundaries and commit strategies
101
+
102
+ ### Monitoring and Validation
103
+ - Monitor deletion progress and performance impact
104
+ - Validate that expected business logic executes correctly
105
+ - Verify related table cleanup occurs as designed
106
+ - Validate data integrity across all affected tables
107
+
108
+ ## Anti-Patterns
109
+
110
+ ### Performance Misunderstanding
111
+ **Incorrect Assumption**: Using DeleteAll for performance optimization. DeleteAll executes triggers, making it slower than direct SQL operations.
112
+
113
+ ### Trigger Logic Avoidance
114
+ **Incorrect Pattern**: Attempting to bypass OnDelete triggers with DeleteAll. DeleteAll always executes OnDelete triggers - this cannot be disabled.
115
+
116
+ ### Insufficient Error Handling
117
+ **Problematic Implementation**: Assuming DeleteAll operations always succeed. Implement comprehensive error handling and recovery procedures.
118
+