bc-code-intelligence-mcp 1.3.3 → 1.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (548) hide show
  1. package/dist/config/test-enhanced-layer-service.js +10 -10
  2. package/dist/config/test-enhanced-layer-service.js.map +1 -1
  3. package/dist/dev/hot-reload.d.ts +2 -2
  4. package/dist/dev/hot-reload.d.ts.map +1 -1
  5. package/dist/dev/hot-reload.js.map +1 -1
  6. package/dist/index.d.ts +0 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +34 -38
  9. package/dist/index.js.map +1 -1
  10. package/dist/layers/index.d.ts +1 -1
  11. package/dist/layers/index.d.ts.map +1 -1
  12. package/dist/layers/index.js +1 -1
  13. package/dist/layers/index.js.map +1 -1
  14. package/dist/services/code-analysis-service.d.ts.map +1 -1
  15. package/dist/services/code-analysis-service.js +4 -0
  16. package/dist/services/code-analysis-service.js.map +1 -1
  17. package/dist/services/knowledge-service.d.ts +21 -10
  18. package/dist/services/knowledge-service.d.ts.map +1 -1
  19. package/dist/services/knowledge-service.js +71 -54
  20. package/dist/services/knowledge-service.js.map +1 -1
  21. package/dist/services/multi-content-layer-service.d.ts +90 -0
  22. package/dist/services/multi-content-layer-service.d.ts.map +1 -1
  23. package/dist/services/multi-content-layer-service.js +380 -0
  24. package/dist/services/multi-content-layer-service.js.map +1 -1
  25. package/dist/services/workflow-service.d.ts +11 -3
  26. package/dist/services/workflow-service.d.ts.map +1 -1
  27. package/dist/services/workflow-service.js +119 -78
  28. package/dist/services/workflow-service.js.map +1 -1
  29. package/dist/streamlined-handlers.d.ts +31 -2
  30. package/dist/streamlined-handlers.d.ts.map +1 -1
  31. package/dist/streamlined-handlers.js +151 -109
  32. package/dist/streamlined-handlers.js.map +1 -1
  33. package/dist/streamlined-tools.d.ts +12 -0
  34. package/dist/streamlined-tools.d.ts.map +1 -1
  35. package/dist/streamlined-tools.js +11 -6
  36. package/dist/streamlined-tools.js.map +1 -1
  37. package/package.json +13 -4
  38. package/embedded-knowledge/.github/ISSUE_TEMPLATE/bug-report.md +0 -24
  39. package/embedded-knowledge/.github/ISSUE_TEMPLATE/content-improvement.md +0 -24
  40. package/embedded-knowledge/.github/ISSUE_TEMPLATE/knowledge-request.md +0 -30
  41. package/embedded-knowledge/AGENTS.md +0 -178
  42. package/embedded-knowledge/CONTRIBUTING.md +0 -58
  43. package/embedded-knowledge/LICENSE +0 -21
  44. package/embedded-knowledge/README.md +0 -32
  45. package/embedded-knowledge/domains/alex-architect/api-delegate-operation-pattern.md +0 -90
  46. package/embedded-knowledge/domains/alex-architect/api-fieldset-registration-pattern.md +0 -113
  47. package/embedded-knowledge/domains/alex-architect/api-interface-design-patterns.md +0 -101
  48. package/embedded-knowledge/domains/alex-architect/api-page-development-patterns.md +0 -87
  49. package/embedded-knowledge/domains/alex-architect/complex-facade-patterns.md +0 -155
  50. package/embedded-knowledge/domains/alex-architect/facade-pattern-al-implementation.md +0 -138
  51. package/embedded-knowledge/domains/alex-architect/facade-pattern-external-api.md +0 -79
  52. package/embedded-knowledge/domains/alex-architect/samples/api-delegate-operation.md +0 -280
  53. package/embedded-knowledge/domains/alex-architect/samples/api-fieldset-registration.md +0 -200
  54. package/embedded-knowledge/domains/alex-architect/samples/api-interface-design.md +0 -565
  55. package/embedded-knowledge/domains/alex-architect/samples/api-page-implementation.md +0 -665
  56. package/embedded-knowledge/domains/alex-architect/samples/complex-facade-patterns.md +0 -325
  57. package/embedded-knowledge/domains/alex-architect/samples/facade-pattern-al.md +0 -696
  58. package/embedded-knowledge/domains/alex-architect/samples/facade-pattern.md +0 -320
  59. package/embedded-knowledge/domains/alex-architect/samples/subscriber-organization.md +0 -102
  60. package/embedded-knowledge/domains/alex-architect/samples/systemid-integration.md +0 -433
  61. package/embedded-knowledge/domains/alex-architect/subscriber-codeunit-size-optimization.md +0 -66
  62. package/embedded-knowledge/domains/alex-architect/systemid-integration.md +0 -115
  63. package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +0 -360
  64. package/embedded-knowledge/domains/dean-debug/case-statement-performance-best-practices.md +0 -86
  65. package/embedded-knowledge/domains/dean-debug/compound-statements-debugging.md +0 -96
  66. package/embedded-knowledge/domains/dean-debug/custom-dimensions-best-practices.md +0 -70
  67. package/embedded-knowledge/domains/dean-debug/custom-telemetry-implementation.md +0 -84
  68. package/embedded-knowledge/domains/dean-debug/deleteall-performance-tradeoff.md +0 -93
  69. package/embedded-knowledge/domains/dean-debug/deleteall-sql-performance.md +0 -73
  70. package/embedded-knowledge/domains/dean-debug/extension-telemetry-isolation.md +0 -78
  71. package/embedded-knowledge/domains/dean-debug/maintainsiftindex-property-behavior.md +0 -79
  72. package/embedded-knowledge/domains/dean-debug/no-series-implementation-patterns.md +0 -87
  73. package/embedded-knowledge/domains/dean-debug/no-series-module-patterns-bc24.md +0 -209
  74. package/embedded-knowledge/domains/dean-debug/no-series-validation-module-bc24.md +0 -246
  75. package/embedded-knowledge/domains/dean-debug/no-series-validation-patterns.md +0 -107
  76. package/embedded-knowledge/domains/dean-debug/odata-query-optimization.md +0 -105
  77. package/embedded-knowledge/domains/dean-debug/samples/bc24-no-series-conversion.md +0 -186
  78. package/embedded-knowledge/domains/dean-debug/samples/case-performance-optimization.md +0 -60
  79. package/embedded-knowledge/domains/dean-debug/samples/compound-statements-debugging.md +0 -139
  80. package/embedded-knowledge/domains/dean-debug/samples/custom-dimensions.md +0 -190
  81. package/embedded-knowledge/domains/dean-debug/samples/custom-telemetry.md +0 -516
  82. package/embedded-knowledge/domains/dean-debug/samples/deleteall-performance.md +0 -298
  83. package/embedded-knowledge/domains/dean-debug/samples/error-correlation.md +0 -324
  84. package/embedded-knowledge/domains/dean-debug/samples/extension-isolation.md +0 -344
  85. package/embedded-knowledge/domains/dean-debug/samples/logmessage-methods.md +0 -137
  86. package/embedded-knowledge/domains/dean-debug/samples/maintainsiftindex-examples.md +0 -340
  87. package/embedded-knowledge/domains/dean-debug/samples/no-series-implementation.md +0 -810
  88. package/embedded-knowledge/domains/dean-debug/samples/no-series-module-bc24.md +0 -86
  89. package/embedded-knowledge/domains/dean-debug/samples/no-series-validation-module-bc24.md +0 -110
  90. package/embedded-knowledge/domains/dean-debug/samples/no-series-validation.md +0 -758
  91. package/embedded-knowledge/domains/dean-debug/samples/odata-query-optimization.md +0 -665
  92. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-case.md +0 -316
  93. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-filters.md +0 -223
  94. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-filter-exclusion.md +0 -149
  95. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-optimization.md +0 -412
  96. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-performance.md +0 -211
  97. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-primary-key.md +0 -155
  98. package/embedded-knowledge/domains/dean-debug/samples/sift-technology-fundamentals.md +0 -475
  99. package/embedded-knowledge/domains/dean-debug/samples/singleinstance-subscribers.md +0 -238
  100. package/embedded-knowledge/domains/dean-debug/samples/table-event-batching.md +0 -97
  101. package/embedded-knowledge/domains/dean-debug/samples/table-key-requirements.md +0 -666
  102. package/embedded-knowledge/domains/dean-debug/samples/telemetry-performance.md +0 -319
  103. package/embedded-knowledge/domains/dean-debug/samples/verbosity-strategy.md +0 -236
  104. package/embedded-knowledge/domains/dean-debug/session-logmessage-methods.md +0 -59
  105. package/embedded-knowledge/domains/dean-debug/setloadfields-filter-field-exclusion.md +0 -67
  106. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-impact.md +0 -70
  107. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-optimization.md +0 -90
  108. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-case-statements.md +0 -87
  109. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-filters.md +0 -70
  110. package/embedded-knowledge/domains/dean-debug/setloadfields-primary-key-optimization.md +0 -74
  111. package/embedded-knowledge/domains/dean-debug/sift-technology-fundamentals.md +0 -81
  112. package/embedded-knowledge/domains/dean-debug/subscriber-singleinstance-performance.md +0 -56
  113. package/embedded-knowledge/domains/dean-debug/table-event-batch-operation-impact.md +0 -66
  114. package/embedded-knowledge/domains/dean-debug/table-key-requirements.md +0 -79
  115. package/embedded-knowledge/domains/dean-debug/telemetry-error-correlation.md +0 -78
  116. package/embedded-knowledge/domains/dean-debug/telemetry-performance-considerations.md +0 -83
  117. package/embedded-knowledge/domains/dean-debug/telemetry-verbosity-strategy.md +0 -76
  118. package/embedded-knowledge/domains/dean-debug/testfield-performance.md +0 -104
  119. package/embedded-knowledge/domains/eva-errors/fielderror-default-messages.md +0 -145
  120. package/embedded-knowledge/domains/eva-errors/fielderror-message-construction.md +0 -104
  121. package/embedded-knowledge/domains/eva-errors/fielderror-method-syntax.md +0 -114
  122. package/embedded-knowledge/domains/eva-errors/samples/fielderror-default-messages.md +0 -356
  123. package/embedded-knowledge/domains/eva-errors/samples/fielderror-syntax.md +0 -256
  124. package/embedded-knowledge/domains/eva-errors/samples/table-safety-validation-patterns.md +0 -101
  125. package/embedded-knowledge/domains/eva-errors/samples/testfield-error-handling.md +0 -108
  126. package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +0 -80
  127. package/embedded-knowledge/domains/jordan-bridge/al-event-subscriber-architecture.md +0 -98
  128. package/embedded-knowledge/domains/jordan-bridge/automatic-registration.md +0 -123
  129. package/embedded-knowledge/domains/jordan-bridge/business-process-template-patterns.md +0 -96
  130. package/embedded-knowledge/domains/jordan-bridge/error-response-patterns.md +0 -115
  131. package/embedded-knowledge/domains/jordan-bridge/etag-implementation.md +0 -115
  132. package/embedded-knowledge/domains/jordan-bridge/field-control-selection.md +0 -114
  133. package/embedded-knowledge/domains/jordan-bridge/samples/al-event-subscriber-architecture.md +0 -395
  134. package/embedded-knowledge/domains/jordan-bridge/samples/api-error-responses.md +0 -479
  135. package/embedded-knowledge/domains/jordan-bridge/samples/api-field-control.md +0 -548
  136. package/embedded-knowledge/domains/jordan-bridge/samples/api-url-naming.md +0 -287
  137. package/embedded-knowledge/domains/jordan-bridge/samples/business-process-templates.md +0 -434
  138. package/embedded-knowledge/domains/jordan-bridge/samples/etag-implementation.md +0 -508
  139. package/embedded-knowledge/domains/jordan-bridge/samples/task-scheduler-pattern.md +0 -615
  140. package/embedded-knowledge/domains/jordan-bridge/task-scheduler-pattern-implementation.md +0 -144
  141. package/embedded-knowledge/domains/jordan-bridge/url-structure-naming-patterns.md +0 -96
  142. package/embedded-knowledge/domains/maya-mentor/case-multiple-conditions-ranges.md +0 -124
  143. package/embedded-knowledge/domains/maya-mentor/case-statement-syntax-structure.md +0 -84
  144. package/embedded-knowledge/domains/maya-mentor/fielderror-syntax-usage.md +0 -75
  145. package/embedded-knowledge/domains/maya-mentor/fielderror-vs-testfield.md +0 -96
  146. package/embedded-knowledge/domains/maya-mentor/samples/case-statement-multiple-conditions.md +0 -385
  147. package/embedded-knowledge/domains/maya-mentor/samples/case-statement-syntax-structure.md +0 -72
  148. package/embedded-knowledge/domains/maya-mentor/samples/fielderror-syntax-usage.md +0 -48
  149. package/embedded-knowledge/domains/maya-mentor/samples/testfield-basic-syntax.md +0 -49
  150. package/embedded-knowledge/domains/maya-mentor/testfield-basic-syntax.md +0 -67
  151. package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +0 -119
  152. package/embedded-knowledge/domains/quinn-tester/rule-execution.md +0 -123
  153. package/embedded-knowledge/domains/quinn-tester/samples/case-error-handling.md +0 -64
  154. package/embedded-knowledge/domains/quinn-tester/samples/fielderror-message-construction.md +0 -60
  155. package/embedded-knowledge/domains/quinn-tester/samples/fielderror-validation-patterns.md +0 -83
  156. package/embedded-knowledge/domains/quinn-tester/samples/rule-execution.md +0 -716
  157. package/embedded-knowledge/domains/quinn-tester/samples/table-safety-validation-patterns.md +0 -101
  158. package/embedded-knowledge/domains/quinn-tester/samples/temporary-table-operation-validation.md +0 -91
  159. package/embedded-knowledge/domains/quinn-tester/table-safety-validation-patterns.md +0 -79
  160. package/embedded-knowledge/domains/quinn-tester/temporary-table-operation-validation.md +0 -79
  161. package/embedded-knowledge/domains/roger-reviewer/al-begin-end-block-structure.md +0 -89
  162. package/embedded-knowledge/domains/roger-reviewer/al-binary-operator-spacing.md +0 -76
  163. package/embedded-knowledge/domains/roger-reviewer/al-blank-line-organization.md +0 -76
  164. package/embedded-knowledge/domains/roger-reviewer/al-case-action-formatting.md +0 -76
  165. package/embedded-knowledge/domains/roger-reviewer/al-code-spacing-conventions.md +0 -81
  166. package/embedded-knowledge/domains/roger-reviewer/al-comment-spacing-standards.md +0 -76
  167. package/embedded-knowledge/domains/roger-reviewer/al-end-else-pairing.md +0 -75
  168. package/embedded-knowledge/domains/roger-reviewer/al-keyword-indentation-rules.md +0 -76
  169. package/embedded-knowledge/domains/roger-reviewer/al-line-start-keyword-positioning.md +0 -76
  170. package/embedded-knowledge/domains/roger-reviewer/al-separate-if-else-formatting.md +0 -76
  171. package/embedded-knowledge/domains/roger-reviewer/al-standard-abbreviations.md +0 -96
  172. package/embedded-knowledge/domains/roger-reviewer/al-statement-per-line-rule.md +0 -76
  173. package/embedded-knowledge/domains/roger-reviewer/al-unnecessary-else-elimination.md +0 -86
  174. package/embedded-knowledge/domains/roger-reviewer/al-variable-declaration-order.md +0 -90
  175. package/embedded-knowledge/domains/roger-reviewer/al-variable-naming-conventions.md +0 -82
  176. package/embedded-knowledge/domains/roger-reviewer/begin-block-statement-clarity.md +0 -78
  177. package/embedded-knowledge/domains/roger-reviewer/begin-end-positioning-patterns.md +0 -76
  178. package/embedded-knowledge/domains/roger-reviewer/binary-operator-line-positioning.md +0 -78
  179. package/embedded-knowledge/domains/roger-reviewer/boolean-expression-simplification-al.md +0 -100
  180. package/embedded-knowledge/domains/roger-reviewer/case-statement-error-handling-troubleshooting.md +0 -115
  181. package/embedded-knowledge/domains/roger-reviewer/compound-statement-readability.md +0 -124
  182. package/embedded-knowledge/domains/roger-reviewer/lonely-repeat-statement-pattern.md +0 -110
  183. package/embedded-knowledge/domains/roger-reviewer/samples/al-begin-end-blocks.md +0 -438
  184. package/embedded-knowledge/domains/roger-reviewer/samples/al-binary-operator-spacing.md +0 -255
  185. package/embedded-knowledge/domains/roger-reviewer/samples/al-comment-spacing-standards.md +0 -209
  186. package/embedded-knowledge/domains/roger-reviewer/samples/al-keyword-indentation-rules.md +0 -218
  187. package/embedded-knowledge/domains/roger-reviewer/samples/al-line-start-keyword-positioning.md +0 -218
  188. package/embedded-knowledge/domains/roger-reviewer/samples/al-separate-if-else-formatting.md +0 -280
  189. package/embedded-knowledge/domains/roger-reviewer/samples/al-statement-per-line-rule.md +0 -188
  190. package/embedded-knowledge/domains/roger-reviewer/samples/al-unnecessary-else-elimination.md +0 -245
  191. package/embedded-knowledge/domains/roger-reviewer/samples/al-variable-declaration-order.md +0 -244
  192. package/embedded-knowledge/domains/roger-reviewer/samples/begin-end-positioning.md +0 -278
  193. package/embedded-knowledge/domains/roger-reviewer/samples/boolean-simplification-examples.md +0 -484
  194. package/embedded-knowledge/domains/roger-reviewer/samples/case-error-handling.md +0 -64
  195. package/embedded-knowledge/domains/roger-reviewer/samples/compound-statement-readability.md +0 -107
  196. package/embedded-knowledge/domains/roger-reviewer/samples/lonely-repeat-examples.md +0 -280
  197. package/embedded-knowledge/domains/sam-coder/al-formatting-consistency-patterns.md +0 -75
  198. package/embedded-knowledge/domains/sam-coder/al-line-comment-formatting.md +0 -67
  199. package/embedded-knowledge/domains/sam-coder/al-lonely-repeat-pattern.md +0 -76
  200. package/embedded-knowledge/domains/sam-coder/al-named-parameter-pattern.md +0 -98
  201. package/embedded-knowledge/domains/sam-coder/al-object-navigation-shortcuts.md +0 -128
  202. package/embedded-knowledge/domains/sam-coder/al-readability-optimization.md +0 -75
  203. package/embedded-knowledge/domains/sam-coder/al-record-find-early-exit.md +0 -95
  204. package/embedded-knowledge/domains/sam-coder/command-queue-pattern-al.md +0 -141
  205. package/embedded-knowledge/domains/sam-coder/deleteall-alternative-implementation.md +0 -91
  206. package/embedded-knowledge/domains/sam-coder/deleteall-method-usage.md +0 -118
  207. package/embedded-knowledge/domains/sam-coder/deleteall-trigger-execution.md +0 -111
  208. package/embedded-knowledge/domains/sam-coder/event-bridge-pattern-al.md +0 -113
  209. package/embedded-knowledge/domains/sam-coder/event-payload-design-patterns.md +0 -127
  210. package/embedded-knowledge/domains/sam-coder/generic-method-patterns-al.md +0 -141
  211. package/embedded-knowledge/domains/sam-coder/manual-binding-conditional-subscribers.md +0 -66
  212. package/embedded-knowledge/domains/sam-coder/nested-compound-best-practices.md +0 -96
  213. package/embedded-knowledge/domains/sam-coder/samples/al-blank-line-organization.md +0 -161
  214. package/embedded-knowledge/domains/sam-coder/samples/al-case-action-formatting.md +0 -177
  215. package/embedded-knowledge/domains/sam-coder/samples/al-lonely-repeat-pattern.md +0 -239
  216. package/embedded-knowledge/domains/sam-coder/samples/al-named-parameter-pattern.md +0 -346
  217. package/embedded-knowledge/domains/sam-coder/samples/al-record-find-early-exit.md +0 -298
  218. package/embedded-knowledge/domains/sam-coder/samples/command-queue-pattern.md +0 -677
  219. package/embedded-knowledge/domains/sam-coder/samples/deleteall-alternative-implementation.md +0 -117
  220. package/embedded-knowledge/domains/sam-coder/samples/deleteall-triggers.md +0 -75
  221. package/embedded-knowledge/domains/sam-coder/samples/deleteall-usage.md +0 -169
  222. package/embedded-knowledge/domains/sam-coder/samples/event-bridge-pattern.md +0 -399
  223. package/embedded-knowledge/domains/sam-coder/samples/event-payload-design.md +0 -356
  224. package/embedded-knowledge/domains/sam-coder/samples/generic-method-patterns.md +0 -889
  225. package/embedded-knowledge/domains/sam-coder/samples/manual-binding.md +0 -84
  226. package/embedded-knowledge/domains/sam-coder/samples/nested-compound-best-practices.md +0 -127
  227. package/embedded-knowledge/domains/sam-coder/samples/single-to-compound-conversion.md +0 -89
  228. package/embedded-knowledge/domains/sam-coder/samples/template-method-pattern.md +0 -516
  229. package/embedded-knowledge/domains/sam-coder/samples/testfield-patterns.md +0 -61
  230. package/embedded-knowledge/domains/sam-coder/samples/type-safe-operations.md +0 -427
  231. package/embedded-knowledge/domains/sam-coder/single-to-compound-conversion.md +0 -122
  232. package/embedded-knowledge/domains/sam-coder/template-method-pattern-al.md +0 -96
  233. package/embedded-knowledge/domains/sam-coder/testfield-patterns.md +0 -101
  234. package/embedded-knowledge/domains/sam-coder/type-safe-operations-al.md +0 -149
  235. package/embedded-knowledge/domains/sam-coder/vs-code-al-keyboard-shortcuts.md +0 -107
  236. package/embedded-knowledge/domains/seth-security/al-temporary-table-safety.md +0 -95
  237. package/embedded-knowledge/domains/seth-security/api-permission-model.md +0 -115
  238. package/embedded-knowledge/domains/seth-security/istemporary-safeguard-pattern.md +0 -78
  239. package/embedded-knowledge/domains/seth-security/samples/al-temporary-table-safety.md +0 -373
  240. package/embedded-knowledge/domains/seth-security/samples/api-permission-model.md +0 -308
  241. package/embedded-knowledge/domains/shared/al-file-naming-conventions.md +0 -146
  242. package/embedded-knowledge/domains/taylor-docs/al-xml-documentation-structure.md +0 -79
  243. package/embedded-knowledge/domains/uma-ux/bc-action-shortcuts-syntax.md +0 -78
  244. package/embedded-knowledge/domains/uma-ux/shortcut-key-user-experience-design.md +0 -81
  245. package/embedded-knowledge/indexes/bc-version-matrix.json +0 -188
  246. package/embedded-knowledge/indexes/domain-catalog.json +0 -106
  247. package/embedded-knowledge/indexes/tags/abbreviations.json +0 -1
  248. package/embedded-knowledge/indexes/tags/abstraction.json +0 -1
  249. package/embedded-knowledge/indexes/tags/access-control.json +0 -1
  250. package/embedded-knowledge/indexes/tags/accessibility.json +0 -1
  251. package/embedded-knowledge/indexes/tags/actions.json +0 -1
  252. package/embedded-knowledge/indexes/tags/advanced-patterns.json +0 -1
  253. package/embedded-knowledge/indexes/tags/advanced.json +0 -1
  254. package/embedded-knowledge/indexes/tags/al-extension.json +0 -1
  255. package/embedded-knowledge/indexes/tags/al-generics.json +0 -1
  256. package/embedded-knowledge/indexes/tags/al-objects.json +0 -1
  257. package/embedded-knowledge/indexes/tags/al-syntax.json +0 -1
  258. package/embedded-knowledge/indexes/tags/algorithm-structure.json +0 -1
  259. package/embedded-knowledge/indexes/tags/alternatives.json +0 -1
  260. package/embedded-knowledge/indexes/tags/analytics.json +0 -1
  261. package/embedded-knowledge/indexes/tags/api-delegates.json +0 -1
  262. package/embedded-knowledge/indexes/tags/api-design.json +0 -1
  263. package/embedded-knowledge/indexes/tags/api-documentation.json +0 -1
  264. package/embedded-knowledge/indexes/tags/api-endpoints.json +0 -1
  265. package/embedded-knowledge/indexes/tags/api-extensibility.json +0 -1
  266. package/embedded-knowledge/indexes/tags/api-fieldsets.json +0 -1
  267. package/embedded-knowledge/indexes/tags/api-integration.json +0 -1
  268. package/embedded-knowledge/indexes/tags/api-interfaces.json +0 -1
  269. package/embedded-knowledge/indexes/tags/api-optimization.json +0 -1
  270. package/embedded-knowledge/indexes/tags/api-pages.json +0 -1
  271. package/embedded-knowledge/indexes/tags/api-patterns.json +0 -1
  272. package/embedded-knowledge/indexes/tags/api-permissions.json +0 -1
  273. package/embedded-knowledge/indexes/tags/api-responses.json +0 -1
  274. package/embedded-knowledge/indexes/tags/api-simplification.json +0 -1
  275. package/embedded-knowledge/indexes/tags/api.json +0 -1
  276. package/embedded-knowledge/indexes/tags/architecture.json +0 -1
  277. package/embedded-knowledge/indexes/tags/async-patterns.json +0 -1
  278. package/embedded-knowledge/indexes/tags/async-processing.json +0 -1
  279. package/embedded-knowledge/indexes/tags/automatic-registration.json +0 -1
  280. package/embedded-knowledge/indexes/tags/batch-operations.json +0 -1
  281. package/embedded-knowledge/indexes/tags/bc24-migration.json +0 -1
  282. package/embedded-knowledge/indexes/tags/begin-blocks.json +0 -1
  283. package/embedded-knowledge/indexes/tags/begin-end.json +0 -1
  284. package/embedded-knowledge/indexes/tags/behavioral-patterns.json +0 -1
  285. package/embedded-knowledge/indexes/tags/best-practices.json +0 -1
  286. package/embedded-knowledge/indexes/tags/binding.json +0 -1
  287. package/embedded-knowledge/indexes/tags/block-structure.json +0 -1
  288. package/embedded-knowledge/indexes/tags/blocks.json +0 -1
  289. package/embedded-knowledge/indexes/tags/boolean-expressions.json +0 -1
  290. package/embedded-knowledge/indexes/tags/branching.json +0 -1
  291. package/embedded-knowledge/indexes/tags/breaking-changes.json +0 -1
  292. package/embedded-knowledge/indexes/tags/breakpoints.json +0 -1
  293. package/embedded-knowledge/indexes/tags/business-foundation.json +0 -1
  294. package/embedded-knowledge/indexes/tags/business-infrastructure.json +0 -1
  295. package/embedded-knowledge/indexes/tags/business-process.json +0 -1
  296. package/embedded-knowledge/indexes/tags/business-rules.json +0 -1
  297. package/embedded-knowledge/indexes/tags/caching.json +0 -1
  298. package/embedded-knowledge/indexes/tags/case-statements.json +0 -1
  299. package/embedded-knowledge/indexes/tags/case.json +0 -1
  300. package/embedded-knowledge/indexes/tags/code-analysis.json +0 -1
  301. package/embedded-knowledge/indexes/tags/code-clarity.json +0 -1
  302. package/embedded-knowledge/indexes/tags/code-comprehension.json +0 -1
  303. package/embedded-knowledge/indexes/tags/code-conversion.json +0 -1
  304. package/embedded-knowledge/indexes/tags/code-formatting.json +0 -1
  305. package/embedded-knowledge/indexes/tags/code-organization.json +0 -1
  306. package/embedded-knowledge/indexes/tags/code-patterns.json +0 -1
  307. package/embedded-knowledge/indexes/tags/code-quality.json +0 -1
  308. package/embedded-knowledge/indexes/tags/code-reuse.json +0 -1
  309. package/embedded-knowledge/indexes/tags/code-simplification.json +0 -1
  310. package/embedded-knowledge/indexes/tags/code-standards.json +0 -1
  311. package/embedded-knowledge/indexes/tags/code-structure.json +0 -1
  312. package/embedded-knowledge/indexes/tags/code-style.json +0 -1
  313. package/embedded-knowledge/indexes/tags/codeunit-design.json +0 -1
  314. package/embedded-knowledge/indexes/tags/command-queue.json +0 -1
  315. package/embedded-knowledge/indexes/tags/comments.json +0 -1
  316. package/embedded-knowledge/indexes/tags/compile-time-validation.json +0 -1
  317. package/embedded-knowledge/indexes/tags/complex-facade.json +0 -1
  318. package/embedded-knowledge/indexes/tags/complexity-hiding.json +0 -1
  319. package/embedded-knowledge/indexes/tags/complexity-management.json +0 -1
  320. package/embedded-knowledge/indexes/tags/compound-statements.json +0 -1
  321. package/embedded-knowledge/indexes/tags/concurrency.json +0 -1
  322. package/embedded-knowledge/indexes/tags/conditional-logic.json +0 -1
  323. package/embedded-knowledge/indexes/tags/conditional.json +0 -1
  324. package/embedded-knowledge/indexes/tags/conflict-resolution.json +0 -1
  325. package/embedded-knowledge/indexes/tags/consistency.json +0 -1
  326. package/embedded-knowledge/indexes/tags/contract-design.json +0 -1
  327. package/embedded-knowledge/indexes/tags/control-flow.json +0 -1
  328. package/embedded-knowledge/indexes/tags/conversion-guide.json +0 -1
  329. package/embedded-knowledge/indexes/tags/correlation.json +0 -1
  330. package/embedded-knowledge/indexes/tags/custom-messages.json +0 -1
  331. package/embedded-knowledge/indexes/tags/data-access.json +0 -1
  332. package/embedded-knowledge/indexes/tags/data-exposure.json +0 -1
  333. package/embedded-knowledge/indexes/tags/data-integrity.json +0 -1
  334. package/embedded-knowledge/indexes/tags/data-loading.json +0 -1
  335. package/embedded-knowledge/indexes/tags/data-manipulation.json +0 -1
  336. package/embedded-knowledge/indexes/tags/data-modeling.json +0 -1
  337. package/embedded-knowledge/indexes/tags/data-patterns.json +0 -1
  338. package/embedded-knowledge/indexes/tags/data-protection.json +0 -1
  339. package/embedded-knowledge/indexes/tags/data-validation.json +0 -1
  340. package/embedded-knowledge/indexes/tags/database.json +0 -1
  341. package/embedded-knowledge/indexes/tags/debugging.json +0 -1
  342. package/embedded-knowledge/indexes/tags/decision-making.json +0 -1
  343. package/embedded-knowledge/indexes/tags/declaration.json +0 -1
  344. package/embedded-knowledge/indexes/tags/default-messages.json +0 -1
  345. package/embedded-knowledge/indexes/tags/defensive-programming.json +0 -1
  346. package/embedded-knowledge/indexes/tags/deleteall.json +0 -1
  347. package/embedded-knowledge/indexes/tags/dependencies.json +0 -1
  348. package/embedded-knowledge/indexes/tags/deployment.json +0 -1
  349. package/embedded-knowledge/indexes/tags/developer-productivity.json +0 -1
  350. package/embedded-knowledge/indexes/tags/development-workflow.json +0 -1
  351. package/embedded-knowledge/indexes/tags/diagnostics.json +0 -1
  352. package/embedded-knowledge/indexes/tags/dimensions.json +0 -1
  353. package/embedded-knowledge/indexes/tags/documentation.json +0 -1
  354. package/embedded-knowledge/indexes/tags/early-exit.json +0 -1
  355. package/embedded-knowledge/indexes/tags/else-clauses.json +0 -1
  356. package/embedded-knowledge/indexes/tags/end-statements.json +0 -1
  357. package/embedded-knowledge/indexes/tags/enterprise-patterns.json +0 -1
  358. package/embedded-knowledge/indexes/tags/entity-relationships.json +0 -1
  359. package/embedded-knowledge/indexes/tags/error-handling.json +0 -1
  360. package/embedded-knowledge/indexes/tags/error-messages.json +0 -1
  361. package/embedded-knowledge/indexes/tags/error-prevention.json +0 -1
  362. package/embedded-knowledge/indexes/tags/error-text.json +0 -1
  363. package/embedded-knowledge/indexes/tags/etag.json +0 -1
  364. package/embedded-knowledge/indexes/tags/event-bridge.json +0 -1
  365. package/embedded-knowledge/indexes/tags/event-payload.json +0 -1
  366. package/embedded-knowledge/indexes/tags/event-routing.json +0 -1
  367. package/embedded-knowledge/indexes/tags/events.json +0 -1
  368. package/embedded-knowledge/indexes/tags/execution-flow.json +0 -1
  369. package/embedded-knowledge/indexes/tags/expressions.json +0 -1
  370. package/embedded-knowledge/indexes/tags/extensibility.json +0 -1
  371. package/embedded-knowledge/indexes/tags/extensions.json +0 -1
  372. package/embedded-knowledge/indexes/tags/facade-composition.json +0 -1
  373. package/embedded-knowledge/indexes/tags/facade-pattern.json +0 -1
  374. package/embedded-knowledge/indexes/tags/field-control.json +0 -1
  375. package/embedded-knowledge/indexes/tags/field-exclusion.json +0 -1
  376. package/embedded-knowledge/indexes/tags/field-registration.json +0 -1
  377. package/embedded-knowledge/indexes/tags/field-state.json +0 -1
  378. package/embedded-knowledge/indexes/tags/field-validation.json +0 -1
  379. package/embedded-knowledge/indexes/tags/fielderror.json +0 -1
  380. package/embedded-knowledge/indexes/tags/fields.json +0 -1
  381. package/embedded-knowledge/indexes/tags/filtering.json +0 -1
  382. package/embedded-knowledge/indexes/tags/filters.json +0 -1
  383. package/embedded-knowledge/indexes/tags/formatting.json +0 -1
  384. package/embedded-knowledge/indexes/tags/generic-methods.json +0 -1
  385. package/embedded-knowledge/indexes/tags/http-status.json +0 -1
  386. package/embedded-knowledge/indexes/tags/if-statements.json +0 -1
  387. package/embedded-knowledge/indexes/tags/implementation.json +0 -1
  388. package/embedded-knowledge/indexes/tags/indentation.json +0 -1
  389. package/embedded-knowledge/indexes/tags/index-summary.json +0 -277
  390. package/embedded-knowledge/indexes/tags/indexing.json +0 -1
  391. package/embedded-knowledge/indexes/tags/inheritance.json +0 -1
  392. package/embedded-knowledge/indexes/tags/integration.json +0 -1
  393. package/embedded-knowledge/indexes/tags/integrity-checking.json +0 -1
  394. package/embedded-knowledge/indexes/tags/intellisense.json +0 -1
  395. package/embedded-knowledge/indexes/tags/interface-design.json +0 -1
  396. package/embedded-knowledge/indexes/tags/interface-segregation.json +0 -1
  397. package/embedded-knowledge/indexes/tags/isolation.json +0 -1
  398. package/embedded-knowledge/indexes/tags/job-processing.json +0 -1
  399. package/embedded-knowledge/indexes/tags/keyboard-navigation.json +0 -1
  400. package/embedded-knowledge/indexes/tags/keywords.json +0 -1
  401. package/embedded-knowledge/indexes/tags/legacy-modernization.json +0 -1
  402. package/embedded-knowledge/indexes/tags/line-breaks.json +0 -1
  403. package/embedded-knowledge/indexes/tags/line-organization.json +0 -1
  404. package/embedded-knowledge/indexes/tags/line-positioning.json +0 -1
  405. package/embedded-knowledge/indexes/tags/localization.json +0 -1
  406. package/embedded-knowledge/indexes/tags/logging.json +0 -1
  407. package/embedded-knowledge/indexes/tags/loose-coupling.json +0 -1
  408. package/embedded-knowledge/indexes/tags/maintainability.json +0 -1
  409. package/embedded-knowledge/indexes/tags/memory-management.json +0 -1
  410. package/embedded-knowledge/indexes/tags/memory-optimization.json +0 -1
  411. package/embedded-knowledge/indexes/tags/memory.json +0 -1
  412. package/embedded-knowledge/indexes/tags/message-design.json +0 -1
  413. package/embedded-knowledge/indexes/tags/message-formatting.json +0 -1
  414. package/embedded-knowledge/indexes/tags/message-patterns.json +0 -1
  415. package/embedded-knowledge/indexes/tags/metadata-driven.json +0 -1
  416. package/embedded-knowledge/indexes/tags/method-comparison.json +0 -1
  417. package/embedded-knowledge/indexes/tags/module-architecture.json +0 -1
  418. package/embedded-knowledge/indexes/tags/module-validation.json +0 -1
  419. package/embedded-knowledge/indexes/tags/monitoring.json +0 -1
  420. package/embedded-knowledge/indexes/tags/multi-layer-facade.json +0 -1
  421. package/embedded-knowledge/indexes/tags/multi-tenancy.json +0 -1
  422. package/embedded-knowledge/indexes/tags/multiple-values.json +0 -1
  423. package/embedded-knowledge/indexes/tags/naming-conventions.json +0 -1
  424. package/embedded-knowledge/indexes/tags/naming.json +0 -1
  425. package/embedded-knowledge/indexes/tags/navigation.json +0 -1
  426. package/embedded-knowledge/indexes/tags/nested-statements.json +0 -1
  427. package/embedded-knowledge/indexes/tags/no-series-conversion.json +0 -1
  428. package/embedded-knowledge/indexes/tags/no-series-validation.json +0 -1
  429. package/embedded-knowledge/indexes/tags/no-series.json +0 -1
  430. package/embedded-knowledge/indexes/tags/number-generation.json +0 -1
  431. package/embedded-knowledge/indexes/tags/object-documentation.json +0 -1
  432. package/embedded-knowledge/indexes/tags/odata.json +0 -1
  433. package/embedded-knowledge/indexes/tags/ondelete.json +0 -1
  434. package/embedded-knowledge/indexes/tags/onvalidate.json +0 -1
  435. package/embedded-knowledge/indexes/tags/operation-delegation.json +0 -1
  436. package/embedded-knowledge/indexes/tags/operation-safety.json +0 -1
  437. package/embedded-knowledge/indexes/tags/operators.json +0 -1
  438. package/embedded-knowledge/indexes/tags/optimization.json +0 -1
  439. package/embedded-knowledge/indexes/tags/order.json +0 -1
  440. package/embedded-knowledge/indexes/tags/organization.json +0 -1
  441. package/embedded-knowledge/indexes/tags/pages.json +0 -1
  442. package/embedded-knowledge/indexes/tags/parameters.json +0 -1
  443. package/embedded-knowledge/indexes/tags/patterns.json +0 -1
  444. package/embedded-knowledge/indexes/tags/performance-optimization.json +0 -1
  445. package/embedded-knowledge/indexes/tags/performance.json +0 -1
  446. package/embedded-knowledge/indexes/tags/placement.json +0 -1
  447. package/embedded-knowledge/indexes/tags/posting-codeunits.json +0 -1
  448. package/embedded-knowledge/indexes/tags/posting.json +0 -1
  449. package/embedded-knowledge/indexes/tags/preconditions.json +0 -1
  450. package/embedded-knowledge/indexes/tags/primary-key.json +0 -1
  451. package/embedded-knowledge/indexes/tags/privacy.json +0 -1
  452. package/embedded-knowledge/indexes/tags/process-automation.json +0 -1
  453. package/embedded-knowledge/indexes/tags/production.json +0 -1
  454. package/embedded-knowledge/indexes/tags/productivity.json +0 -1
  455. package/embedded-knowledge/indexes/tags/query-performance.json +0 -1
  456. package/embedded-knowledge/indexes/tags/queue-management.json +0 -1
  457. package/embedded-knowledge/indexes/tags/ranges.json +0 -1
  458. package/embedded-knowledge/indexes/tags/readability.json +0 -1
  459. package/embedded-knowledge/indexes/tags/record-access.json +0 -1
  460. package/embedded-knowledge/indexes/tags/record-methods.json +0 -1
  461. package/embedded-knowledge/indexes/tags/refactoring.json +0 -1
  462. package/embedded-knowledge/indexes/tags/reference.json +0 -1
  463. package/embedded-knowledge/indexes/tags/repeat-loops.json +0 -1
  464. package/embedded-knowledge/indexes/tags/repeat-statement.json +0 -1
  465. package/embedded-knowledge/indexes/tags/runtime-errors.json +0 -1
  466. package/embedded-knowledge/indexes/tags/runtime.json +0 -1
  467. package/embedded-knowledge/indexes/tags/safeguards.json +0 -1
  468. package/embedded-knowledge/indexes/tags/security.json +0 -1
  469. package/embedded-knowledge/indexes/tags/sequence-management.json +0 -1
  470. package/embedded-knowledge/indexes/tags/serialization.json +0 -1
  471. package/embedded-knowledge/indexes/tags/session-logmessage.json +0 -1
  472. package/embedded-knowledge/indexes/tags/session.json +0 -1
  473. package/embedded-knowledge/indexes/tags/setloadfields.json +0 -1
  474. package/embedded-knowledge/indexes/tags/shortcuts.json +0 -1
  475. package/embedded-knowledge/indexes/tags/sift.json +0 -1
  476. package/embedded-knowledge/indexes/tags/singleinstance.json +0 -1
  477. package/embedded-knowledge/indexes/tags/spacing.json +0 -1
  478. package/embedded-knowledge/indexes/tags/sql-translation.json +0 -1
  479. package/embedded-knowledge/indexes/tags/standards.json +0 -1
  480. package/embedded-knowledge/indexes/tags/statements.json +0 -1
  481. package/embedded-knowledge/indexes/tags/streaming.json +0 -1
  482. package/embedded-knowledge/indexes/tags/strong-typing.json +0 -1
  483. package/embedded-knowledge/indexes/tags/structural-patterns.json +0 -1
  484. package/embedded-knowledge/indexes/tags/structure.json +0 -1
  485. package/embedded-knowledge/indexes/tags/subscribers.json +0 -1
  486. package/embedded-knowledge/indexes/tags/switch.json +0 -1
  487. package/embedded-knowledge/indexes/tags/symbol-search.json +0 -1
  488. package/embedded-knowledge/indexes/tags/syntax.json +0 -1
  489. package/embedded-knowledge/indexes/tags/systemid.json +0 -1
  490. package/embedded-knowledge/indexes/tags/table-configuration.json +0 -1
  491. package/embedded-knowledge/indexes/tags/table-events.json +0 -1
  492. package/embedded-knowledge/indexes/tags/table-keys.json +0 -1
  493. package/embedded-knowledge/indexes/tags/table-safety.json +0 -1
  494. package/embedded-knowledge/indexes/tags/task-scheduler.json +0 -1
  495. package/embedded-knowledge/indexes/tags/telemetry.json +0 -1
  496. package/embedded-knowledge/indexes/tags/template-method.json +0 -1
  497. package/embedded-knowledge/indexes/tags/temporary-tables.json +0 -1
  498. package/embedded-knowledge/indexes/tags/testfield.json +0 -1
  499. package/embedded-knowledge/indexes/tags/tradeoffs.json +0 -1
  500. package/embedded-knowledge/indexes/tags/triggers.json +0 -1
  501. package/embedded-knowledge/indexes/tags/troubleshooting.json +0 -1
  502. package/embedded-knowledge/indexes/tags/type-safety.json +0 -1
  503. package/embedded-knowledge/indexes/tags/url-structure.json +0 -1
  504. package/embedded-knowledge/indexes/tags/user-experience.json +0 -1
  505. package/embedded-knowledge/indexes/tags/user-feedback.json +0 -1
  506. package/embedded-knowledge/indexes/tags/user-interface.json +0 -1
  507. package/embedded-knowledge/indexes/tags/validation-feedback.json +0 -1
  508. package/embedded-knowledge/indexes/tags/validation.json +0 -1
  509. package/embedded-knowledge/indexes/tags/variables.json +0 -1
  510. package/embedded-knowledge/indexes/tags/verbosity.json +0 -1
  511. package/embedded-knowledge/indexes/tags/vs-code.json +0 -1
  512. package/embedded-knowledge/indexes/tags/web-services.json +0 -1
  513. package/embedded-knowledge/indexes/tags/workflow-management.json +0 -1
  514. package/embedded-knowledge/indexes/tags/workflow-optimization.json +0 -1
  515. package/embedded-knowledge/indexes/tags/workflow-templates.json +0 -1
  516. package/embedded-knowledge/indexes/tags/workspace.json +0 -1
  517. package/embedded-knowledge/indexes/tags/xml-documentation.json +0 -1
  518. package/embedded-knowledge/indexes/topic-relationships.json +0 -128
  519. package/embedded-knowledge/methodologies/index.json +0 -81
  520. package/embedded-knowledge/methodologies/phases/analysis-full.md +0 -208
  521. package/embedded-knowledge/methodologies/phases/analysis-quick.md +0 -44
  522. package/embedded-knowledge/methodologies/phases/analysis.md +0 -182
  523. package/embedded-knowledge/methodologies/phases/execution-validation-full.md +0 -174
  524. package/embedded-knowledge/methodologies/phases/execution-validation-quick.md +0 -31
  525. package/embedded-knowledge/methodologies/phases/execution-validation.md +0 -174
  526. package/embedded-knowledge/methodologies/phases/performance-full.md +0 -211
  527. package/embedded-knowledge/methodologies/phases/performance-quick.md +0 -32
  528. package/embedded-knowledge/methodologies/phases/performance.md +0 -211
  529. package/embedded-knowledge/methodologies/phases/verification-full.md +0 -162
  530. package/embedded-knowledge/methodologies/phases/verification-quick.md +0 -48
  531. package/embedded-knowledge/methodologies/phases/verification.md +0 -146
  532. package/embedded-knowledge/methodologies/workflow-enforcement.md +0 -142
  533. package/embedded-knowledge/methodologies/workflows/code-review-workflow.md +0 -99
  534. package/embedded-knowledge/specialists/alex-architect.md +0 -216
  535. package/embedded-knowledge/specialists/casey-copilot.md +0 -226
  536. package/embedded-knowledge/specialists/chris-config.md +0 -267
  537. package/embedded-knowledge/specialists/dean-debug.md +0 -222
  538. package/embedded-knowledge/specialists/eva-errors.md +0 -235
  539. package/embedded-knowledge/specialists/jordan-bridge.md +0 -235
  540. package/embedded-knowledge/specialists/logan-legacy.md +0 -209
  541. package/embedded-knowledge/specialists/maya-mentor.md +0 -211
  542. package/embedded-knowledge/specialists/morgan-market.md +0 -226
  543. package/embedded-knowledge/specialists/quinn-tester.md +0 -235
  544. package/embedded-knowledge/specialists/roger-reviewer.md +0 -234
  545. package/embedded-knowledge/specialists/sam-coder.md +0 -359
  546. package/embedded-knowledge/specialists/seth-security.md +0 -235
  547. package/embedded-knowledge/specialists/taylor-docs.md +0 -257
  548. package/embedded-knowledge/specialists/uma-ux.md +0 -235
@@ -1,209 +0,0 @@
1
- # AL Comment Spacing Standards - Code Examples
2
-
3
- ## Good Examples
4
-
5
- ### Single-Line Comments with Proper Spacing
6
- ```al
7
- procedure ProcessCustomerOrder(CustomerNo: Code[20])
8
- var
9
- Customer: Record Customer;
10
- SalesHeader: Record "Sales Header";
11
- begin
12
- // Validate customer exists and is not blocked
13
- if not Customer.Get(CustomerNo) then
14
- Error('Customer %1 does not exist', CustomerNo);
15
-
16
- // Check customer credit limit before processing
17
- Customer.CalcFields("Balance (LCY)");
18
- if Customer."Credit Limit (LCY)" < Customer."Balance (LCY)" then
19
- Error('Customer %1 has exceeded credit limit', CustomerNo);
20
-
21
- // Create new sales order
22
- SalesHeader.Init();
23
- SalesHeader."Document Type" := SalesHeader."Document Type"::Order;
24
- SalesHeader."Sell-to Customer No." := CustomerNo;
25
- SalesHeader.Insert(true);
26
- end;
27
- ```
28
-
29
- ### Multi-Line Comments with Consistent Formatting
30
- ```al
31
- codeunit 50100 "Order Processing"
32
- {
33
- /*
34
- * ProcessBulkOrders procedure handles multiple order processing
35
- * with validation and error handling for each order in the batch.
36
- * Returns count of successfully processed orders.
37
- */
38
- procedure ProcessBulkOrders(var OrderList: List of [Code[20]]): Integer
39
- var
40
- ProcessedCount: Integer;
41
- OrderNo: Code[20];
42
- begin
43
- ProcessedCount := 0;
44
-
45
- /*
46
- * Iterate through each order in the list
47
- * and attempt to process with error recovery
48
- */
49
- foreach OrderNo in OrderList do begin
50
- if TryProcessSingleOrder(OrderNo) then
51
- ProcessedCount += 1;
52
- end;
53
-
54
- exit(ProcessedCount);
55
- end;
56
- }
57
- ```
58
-
59
- ### Inline Comments with Proper Spacing
60
- ```al
61
- procedure CalculateDiscount(Amount: Decimal; CustomerType: Option Regular,Premium,VIP): Decimal
62
- var
63
- DiscountPct: Decimal;
64
- begin
65
- case CustomerType of
66
- CustomerType::Regular:
67
- DiscountPct := 0.05; // 5% discount for regular customers
68
- CustomerType::Premium:
69
- DiscountPct := 0.10; // 10% discount for premium customers
70
- CustomerType::VIP:
71
- DiscountPct := 0.15; // 15% discount for VIP customers
72
- end;
73
-
74
- exit(Amount * DiscountPct); // Calculate final discount amount
75
- end;
76
- ```
77
-
78
- ### Section Headers with Consistent Spacing
79
- ```al
80
- codeunit 50101 "Customer Management"
81
- {
82
- // ============================================================================
83
- // Validation Functions
84
- // ============================================================================
85
-
86
- procedure ValidateCustomerData(var Customer: Record Customer): Boolean
87
- begin
88
- // Implementation here
89
- end;
90
-
91
- procedure ValidateAddressInfo(var Customer: Record Customer): Boolean
92
- begin
93
- // Implementation here
94
- end;
95
-
96
- // ============================================================================
97
- // Processing Functions
98
- // ============================================================================
99
-
100
- procedure CreateCustomer(Name: Text[100]): Code[20]
101
- begin
102
- // Implementation here
103
- end;
104
-
105
- procedure UpdateCustomer(var Customer: Record Customer)
106
- begin
107
- // Implementation here
108
- end;
109
- }
110
- ```
111
-
112
- ## Bad Examples
113
-
114
- ### Inconsistent Comment Spacing
115
- ```al
116
- procedure BadSpacing(CustomerNo: Code[20])
117
- var
118
- Customer: Record Customer;
119
- begin
120
- //No space after comment marker
121
- if not Customer.Get(CustomerNo) then
122
- Error('Customer not found');
123
-
124
- // Too many spaces after marker
125
- Customer.CalcFields("Balance (LCY)");
126
-
127
- // Good spacing
128
- if Customer.Blocked then
129
- Error('Customer is blocked');
130
-
131
- //Another comment without space
132
- Customer.Modify();
133
- end;
134
- ```
135
-
136
- ### Poor Multi-Line Comment Formatting
137
- ```al
138
- /*
139
- Poorly formatted multi-line comment
140
- without consistent indentation
141
- or proper spacing
142
- making it hard to read
143
- */
144
- procedure PoorCommentFormatting()
145
- begin
146
- /*This comment is not properly
147
- formatted and lacks
148
- consistent spacing*/
149
- Message('Hello');
150
- end;
151
- ```
152
-
153
- ### Cramped Inline Comments
154
- ```al
155
- procedure CrampedComments(Amount: Decimal): Decimal
156
- var
157
- Tax: Decimal;
158
- begin
159
- Tax := Amount * 0.08;//No space before comment
160
- Amount := Amount + Tax;//Another cramped comment
161
- exit(Amount);//Final cramped comment
162
- end;
163
- ```
164
-
165
- ### Missing Comment Spacing in Complex Code
166
- ```al
167
- procedure NoCommentSpacing()
168
- var
169
- i: Integer;
170
- Total: Decimal;
171
- begin
172
- for i := 1 to 10 do begin//Loop comment crammed
173
- if i mod 2 = 0 then//Even number check crammed
174
- Total += i * 2;//Double even numbers crammed
175
- end;//End loop comment crammed
176
- end;
177
- ```
178
-
179
- ### Inconsistent Section Spacing
180
- ```al
181
- codeunit 50102 "Poor Comment Organization"
182
- {
183
- //=== Validation Functions ===
184
- procedure ValidateData(): Boolean
185
- begin
186
- // Implementation
187
- end;
188
-
189
- // Processing Functions (inconsistent header style)
190
- procedure ProcessData()
191
- begin
192
- // Implementation
193
- end;
194
-
195
- //===Utility Functions===(no spaces around text)
196
- procedure UtilityFunction()
197
- begin
198
- // Implementation
199
- end;
200
- }
201
- ```
202
-
203
- ## Best Practices
204
-
205
- 1. **Always use single space** after // for single-line comments
206
- 2. **Consistent indentation** for multi-line comments with /* */
207
- 3. **Appropriate spacing** before inline comments (at least 4 spaces)
208
- 4. **Uniform section headers** with consistent formatting style
209
- 5. **Group related comments** with consistent spacing patterns
@@ -1,218 +0,0 @@
1
- # AL Keyword Indentation Rules - Code Examples
2
-
3
- ## Good Examples
4
-
5
- ### Proper Trigger Indentation
6
- ```al
7
- table 50100 "Customer Extension"
8
- {
9
- fields
10
- {
11
- field(1; "No."; Code[20])
12
- {
13
- Caption = 'No.';
14
- }
15
- field(2; Name; Text[100])
16
- {
17
- Caption = 'Name';
18
- }
19
- }
20
-
21
- trigger OnInsert()
22
- begin
23
- if "No." = '' then
24
- "No." := NoSeriesMgt.GetNextNo(Setup."Customer Nos.", 0D, true);
25
- end;
26
-
27
- trigger OnModify()
28
- begin
29
- "Last Modified Date" := Today;
30
- "Last Modified Time" := Time;
31
- end;
32
- }
33
- ```
34
-
35
- ### Procedure and Function Indentation
36
- ```al
37
- codeunit 50100 "Customer Management"
38
- {
39
- procedure CreateCustomer(Name: Text[100]; Email: Text[80]): Code[20]
40
- var
41
- Customer: Record Customer;
42
- CustomerNo: Code[20];
43
- begin
44
- // Validate input parameters
45
- if Name = '' then
46
- Error('Customer name cannot be empty');
47
-
48
- // Create customer record
49
- Customer.Init();
50
- CustomerNo := NoSeriesMgt.GetNextNo(SalesSetup."Customer Nos.", 0D, true);
51
- Customer."No." := CustomerNo;
52
- Customer.Name := Name;
53
- Customer."E-Mail" := Email;
54
- Customer.Insert(true);
55
-
56
- exit(CustomerNo);
57
- end;
58
-
59
- local procedure ValidateCustomerData(var Customer: Record Customer)
60
- begin
61
- if Customer.Name = '' then
62
- Error('Customer name is required');
63
-
64
- if Customer."E-Mail" = '' then
65
- Error('Customer email is required');
66
- end;
67
- }
68
- ```
69
-
70
- ### Control Structure Indentation
71
- ```al
72
- procedure ProcessOrderLines(OrderNo: Code[20])
73
- var
74
- SalesLine: Record "Sales Line";
75
- Item: Record Item;
76
- begin
77
- SalesLine.SetRange("Document Type", SalesLine."Document Type"::Order);
78
- SalesLine.SetRange("Document No.", OrderNo);
79
-
80
- if SalesLine.FindSet() then
81
- repeat
82
- if SalesLine.Type = SalesLine.Type::Item then begin
83
- if Item.Get(SalesLine."No.") then begin
84
- if Item.Inventory < SalesLine.Quantity then begin
85
- Error('Insufficient inventory for item %1', SalesLine."No.");
86
- end else begin
87
- Item.Inventory -= SalesLine.Quantity;
88
- Item.Modify();
89
- end;
90
- end;
91
- end;
92
- until SalesLine.Next() = 0;
93
- end;
94
- ```
95
-
96
- ### Case Statement Indentation
97
- ```al
98
- procedure HandleDocumentStatus(Status: Option Open,Released,Pending,Cancelled)
99
- begin
100
- case Status of
101
- Status::Open:
102
- begin
103
- EnableEditingActions();
104
- ShowStatusMessage('Document is open for editing');
105
- end;
106
- Status::Released:
107
- begin
108
- DisableEditingActions();
109
- ShowStatusMessage('Document has been released');
110
- end;
111
- Status::Pending:
112
- begin
113
- DisableEditingActions();
114
- ShowStatusMessage('Document is pending approval');
115
- RequestApproval();
116
- end;
117
- Status::Cancelled:
118
- begin
119
- DisableAllActions();
120
- ShowStatusMessage('Document has been cancelled');
121
- end;
122
- end;
123
- end;
124
- ```
125
-
126
- ## Bad Examples
127
-
128
- ### Inconsistent Trigger Indentation
129
- ```al
130
- table 50101 "Bad Indentation Table"
131
- {
132
- fields
133
- {
134
- field(1; "No."; Code[20]) { }
135
- }
136
-
137
- trigger OnInsert() // Wrong: should be indented
138
- begin
139
- if "No." = '' then // Wrong: should be indented further
140
- "No." := NoSeriesMgt.GetNextNo(Setup."Customer Nos.", 0D, true); // Wrong: should be indented
141
- end;
142
-
143
- trigger OnModify() // Wrong: over-indented
144
- begin // Wrong: over-indented
145
- "Last Modified Date" := Today; // Inconsistent with other triggers
146
- end;
147
- }
148
- ```
149
-
150
- ### Poor Procedure Indentation
151
- ```al
152
- codeunit 50101 "Bad Indentation Codeunit"
153
- {
154
- procedure CreateCustomer(Name: Text[100]): Code[20] // Wrong: not indented
155
- var
156
- Customer: Record Customer; // Wrong: not indented
157
- begin
158
- Customer.Init(); // Wrong: not indented
159
- Customer.Name := Name; // Inconsistent indentation
160
- Customer.Insert(true); // Wrong: over-indented
161
- exit(Customer."No."); // Wrong: not indented
162
- end;
163
-
164
- local procedure ValidateData() // Wrong: over-indented
165
- begin
166
- // Implementation with poor indentation
167
- end;
168
- }
169
- ```
170
-
171
- ### Inconsistent Control Structure Indentation
172
- ```al
173
- procedure BadControlStructures(OrderNo: Code[20])
174
- var
175
- SalesLine: Record "Sales Line";
176
- begin
177
- SalesLine.SetRange("Document No.", OrderNo); // Wrong: not indented
178
-
179
- if SalesLine.FindSet() then // Wrong: not indented
180
- repeat // Wrong: not indented
181
- if SalesLine.Type = SalesLine.Type::Item then // Wrong: not indented
182
- begin // Wrong: not indented
183
- ProcessItem(SalesLine."No."); // Wrong: over-indented
184
- end // Wrong: inconsistent with begin
185
- else // Wrong: poor else positioning
186
- begin // Wrong: inconsistent indentation
187
- ProcessNonItem(SalesLine);
188
- end;
189
- until SalesLine.Next() = 0; // Wrong: inconsistent with repeat
190
- end;
191
- ```
192
-
193
- ### Poor Case Statement Indentation
194
- ```al
195
- procedure BadCaseIndentation(Status: Option Open,Released,Pending)
196
- begin
197
- case Status of // Wrong: not indented
198
- Status::Open: // Wrong: not indented further
199
- begin // Wrong: not indented to match case branch
200
- Message('Open'); // Wrong: not indented properly in begin block
201
- end;
202
- Status::Released: // Wrong: inconsistent with other case labels
203
- begin // Wrong: over-indented
204
- Message('Released');
205
- end;
206
- Status::Pending: // Wrong: back to no indentation
207
- Message('Pending'); // Wrong: single statement not aligned
208
- end;
209
- end;
210
- ```
211
-
212
- ## Best Practices
213
-
214
- 1. **Consistent base indentation** for all keywords within their scope
215
- 2. **Progressive indentation** for nested structures (4 spaces per level)
216
- 3. **Align related keywords** (begin/end, if/then/else, case/of/end)
217
- 4. **Maintain indentation hierarchy** throughout complex structures
218
- 5. **Use consistent spacing** for all control flow keywords
@@ -1,218 +0,0 @@
1
- # AL Line Start Keyword Positioning - Code Examples
2
-
3
- ## Good Examples
4
-
5
- ### Proper Keyword Line Positioning
6
- ```al
7
- procedure ProcessCustomerOrder(CustomerNo: Code[20])
8
- var
9
- Customer: Record Customer;
10
- SalesHeader: Record "Sales Header";
11
- OrderCreated: Boolean;
12
- begin
13
- // Each keyword starts at appropriate line position
14
- if Customer.Get(CustomerNo) then
15
- begin
16
- if not Customer.Blocked then
17
- begin
18
- SalesHeader.Init();
19
- SalesHeader."Sell-to Customer No." := CustomerNo;
20
-
21
- if SalesHeader.Insert(true) then
22
- begin
23
- OrderCreated := true;
24
- Message('Order created successfully');
25
- end
26
- else
27
- begin
28
- OrderCreated := false;
29
- Error('Failed to create order');
30
- end;
31
- end
32
- else
33
- begin
34
- Error('Customer %1 is blocked', CustomerNo);
35
- end;
36
- end
37
- else
38
- begin
39
- Error('Customer %1 does not exist', CustomerNo);
40
- end;
41
- end;
42
- ```
43
-
44
- ### Control Flow Keyword Positioning
45
- ```al
46
- procedure ValidateOrderData(var SalesHeader: Record "Sales Header"): Boolean
47
- var
48
- Customer: Record Customer;
49
- ValidationPassed: Boolean;
50
- begin
51
- ValidationPassed := true;
52
-
53
- // Proper if-then-else positioning
54
- if SalesHeader."Sell-to Customer No." = '' then
55
- begin
56
- ValidationPassed := false;
57
- Error('Customer number is required');
58
- end;
59
-
60
- // Proper case statement positioning
61
- case SalesHeader."Document Type" of
62
- SalesHeader."Document Type"::Quote:
63
- begin
64
- if SalesHeader."Quote Valid Until Date" = 0D then
65
- begin
66
- ValidationPassed := false;
67
- Error('Quote validity date is required');
68
- end;
69
- end;
70
- SalesHeader."Document Type"::Order:
71
- begin
72
- if SalesHeader."Requested Delivery Date" = 0D then
73
- begin
74
- ValidationPassed := false;
75
- Error('Delivery date is required');
76
- end;
77
- end;
78
- end;
79
-
80
- // Proper while loop positioning
81
- while Customer.Next() <> 0 do
82
- begin
83
- if Customer.Blocked then
84
- begin
85
- Customer.Blocked := false;
86
- Customer.Modify();
87
- end;
88
- end;
89
-
90
- exit(ValidationPassed);
91
- end;
92
- ```
93
-
94
- ### Function Declaration Positioning
95
- ```al
96
- codeunit 50100 "Order Management"
97
- {
98
- procedure CreateOrder(CustomerNo: Code[20]): Code[20]
99
- var
100
- SalesHeader: Record "Sales Header";
101
- begin
102
- // Implementation
103
- exit(SalesHeader."No.");
104
- end;
105
-
106
- procedure UpdateOrder(OrderNo: Code[20]; NewDate: Date)
107
- var
108
- SalesHeader: Record "Sales Header";
109
- begin
110
- // Implementation
111
- end;
112
-
113
- local procedure ValidateOrder(var SalesHeader: Record "Sales Header"): Boolean
114
- var
115
- ValidationResult: Boolean;
116
- begin
117
- // Implementation
118
- exit(ValidationResult);
119
- end;
120
-
121
- trigger OnRun()
122
- begin
123
- // Implementation
124
- end;
125
- }
126
- ```
127
-
128
- ## Bad Examples
129
-
130
- ### Poor Keyword Line Positioning
131
- ```al
132
- procedure BadKeywordPositioning(CustomerNo: Code[20])
133
- var Customer: Record Customer; SalesHeader: Record "Sales Header"; // Wrong: multiple declarations on one line
134
- begin if Customer.Get(CustomerNo) then begin // Wrong: multiple keywords on one line
135
- if not Customer.Blocked then begin SalesHeader.Init(); SalesHeader."Sell-to Customer No." := CustomerNo; // Wrong: cramped formatting
136
- if SalesHeader.Insert(true) then begin Message('Success'); end else begin Error('Failed'); end; // Wrong: entire conditional on one line
137
- end else begin Error('Customer blocked'); end; // Wrong: else statement positioning
138
- end else begin Error('Customer not found'); end; // Wrong: else statement positioning
139
- end;
140
- ```
141
-
142
- ### Inconsistent Indentation and Positioning
143
- ```al
144
- procedure InconsistentPositioning(OrderNo: Code[20])
145
- var
146
- SalesLine: Record "Sales Line";
147
- Item: Record Item;
148
- begin
149
- SalesLine.SetRange("Document No.", OrderNo); // Wrong: not indented
150
-
151
- if SalesLine.FindSet() then // Wrong: over-indented
152
- repeat // Wrong: should be on new line with proper indentation
153
- if SalesLine.Type = SalesLine.Type::Item then // Wrong: inconsistent indentation
154
- begin // Wrong: should align with if
155
- Item.Get(SalesLine."No."); // Wrong: poor indentation
156
- Item.Inventory -= SalesLine.Quantity; // Wrong: inconsistent with previous line
157
- end // Wrong: missing semicolon and poor positioning
158
- else begin // Wrong: else positioning and indentation
159
- SalesLine."Unit Price" := 0; // Wrong: inconsistent indentation
160
- end; // Wrong: inconsistent with begin
161
- until SalesLine.Next() = 0; // Wrong: poor positioning
162
- end;
163
- ```
164
-
165
- ### Cramped Control Structures
166
- ```al
167
- procedure CrampedStructures(Status: Option Open,Released,Pending)
168
- begin
169
- case Status of Status::Open: begin Message('Open'); EnableEditing(); end; Status::Released: begin Message('Released'); DisableEditing(); end; Status::Pending: begin Message('Pending'); RequestApproval(); end; end; // Wrong: entire case statement on one line
170
-
171
- if Status = Status::Open then begin EnableEditing(); SetStatusColor('Green'); end else if Status = Status::Released then begin DisableEditing(); SetStatusColor('Blue'); end else begin DisableEditing(); SetStatusColor('Red'); end; // Wrong: complex conditional on one line
172
- end;
173
- ```
174
-
175
- ### Poor Function Declaration Formatting
176
- ```al
177
- codeunit 50101 "Bad Formatting"
178
- {
179
- procedure CreateCustomer(Name: Text[100]; Email: Text[80]; Phone: Text[30]): Code[20] var Customer: Record Customer; CustomerNo: Code[20]; begin Customer.Init(); CustomerNo := NoSeriesMgt.GetNextNo(Setup."Customer Nos.", 0D, true); Customer."No." := CustomerNo; Customer.Name := Name; exit(CustomerNo); end; // Wrong: entire procedure on few lines
180
-
181
- local procedure ValidateData(Name: Text[100]): Boolean begin if Name = '' then exit(false); exit(true); end; // Wrong: procedure body on declaration line
182
-
183
- trigger OnRun() begin Message('Running'); end; // Wrong: trigger not properly positioned
184
- }
185
- ```
186
-
187
- ### Mixed Line Positioning Styles
188
- ```al
189
- procedure MixedStyles(OrderNo: Code[20])
190
- var
191
- SalesHeader: Record "Sales Header";
192
- ProcessingResult: Boolean;
193
- begin
194
- if SalesHeader.Get(SalesHeader."Document Type"::Order, OrderNo) then begin // Style 1: keywords on same line
195
- ProcessingResult := true;
196
- Message('Order found');
197
- end
198
- else // Style 2: else on separate line
199
- begin
200
- ProcessingResult := false;
201
- Error('Order not found');
202
- end;
203
-
204
- case SalesHeader.Status of // Style 3: case body on same line
205
- SalesHeader.Status::Open: ProcessingResult := true;
206
- SalesHeader.Status::Released: // Style 4: case action on new line
207
- ProcessingResult := false;
208
- end;
209
- end;
210
- ```
211
-
212
- ## Best Practices
213
-
214
- 1. **Start each major keyword** (if, case, while, for) on its own line
215
- 2. **Consistent indentation** for all keywords at the same logical level
216
- 3. **Align related keywords** (begin/end pairs, if/then/else structures)
217
- 4. **Separate complex logic** across multiple lines for readability
218
- 5. **Maintain consistent style** throughout the entire codeunit