bc-code-intelligence-mcp 1.3.2 → 1.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. package/README.md +1 -0
  2. package/dist/config/test-enhanced-layer-service.js +10 -10
  3. package/dist/config/test-enhanced-layer-service.js.map +1 -1
  4. package/dist/dev/hot-reload.d.ts +2 -2
  5. package/dist/dev/hot-reload.d.ts.map +1 -1
  6. package/dist/dev/hot-reload.js.map +1 -1
  7. package/dist/index.d.ts +0 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +43 -41
  10. package/dist/index.js.map +1 -1
  11. package/dist/layers/index.d.ts +1 -1
  12. package/dist/layers/index.d.ts.map +1 -1
  13. package/dist/layers/index.js +1 -1
  14. package/dist/layers/index.js.map +1 -1
  15. package/dist/layers/layer-service.d.ts.map +1 -1
  16. package/dist/layers/layer-service.js +4 -1
  17. package/dist/layers/layer-service.js.map +1 -1
  18. package/dist/search/intelligent-search.d.ts.map +1 -1
  19. package/dist/search/intelligent-search.js +5 -2
  20. package/dist/search/intelligent-search.js.map +1 -1
  21. package/dist/services/code-analysis-service.d.ts.map +1 -1
  22. package/dist/services/code-analysis-service.js +8 -1
  23. package/dist/services/code-analysis-service.js.map +1 -1
  24. package/dist/services/knowledge-service.d.ts +21 -10
  25. package/dist/services/knowledge-service.d.ts.map +1 -1
  26. package/dist/services/knowledge-service.js +82 -59
  27. package/dist/services/knowledge-service.js.map +1 -1
  28. package/dist/services/multi-content-layer-service.d.ts +90 -0
  29. package/dist/services/multi-content-layer-service.d.ts.map +1 -1
  30. package/dist/services/multi-content-layer-service.js +380 -0
  31. package/dist/services/multi-content-layer-service.js.map +1 -1
  32. package/dist/services/roleplay-engine.d.ts +1 -1
  33. package/dist/services/roleplay-engine.d.ts.map +1 -1
  34. package/dist/services/roleplay-engine.js +40 -12
  35. package/dist/services/roleplay-engine.js.map +1 -1
  36. package/dist/services/workflow-service.d.ts +11 -3
  37. package/dist/services/workflow-service.d.ts.map +1 -1
  38. package/dist/services/workflow-service.js +119 -78
  39. package/dist/services/workflow-service.js.map +1 -1
  40. package/dist/streamlined-handlers.d.ts +31 -2
  41. package/dist/streamlined-handlers.d.ts.map +1 -1
  42. package/dist/streamlined-handlers.js +152 -110
  43. package/dist/streamlined-handlers.js.map +1 -1
  44. package/dist/streamlined-tools.d.ts +12 -0
  45. package/dist/streamlined-tools.d.ts.map +1 -1
  46. package/dist/streamlined-tools.js +11 -6
  47. package/dist/streamlined-tools.js.map +1 -1
  48. package/dist/tools/specialist-tools.d.ts.map +1 -1
  49. package/dist/tools/specialist-tools.js +23 -13
  50. package/dist/tools/specialist-tools.js.map +1 -1
  51. package/dist/types/bc-knowledge.d.ts +10 -7
  52. package/dist/types/bc-knowledge.d.ts.map +1 -1
  53. package/dist/types/bc-knowledge.js +23 -1
  54. package/dist/types/bc-knowledge.js.map +1 -1
  55. package/dist/types/roleplay-types.d.ts +1 -0
  56. package/dist/types/roleplay-types.d.ts.map +1 -1
  57. package/package.json +13 -4
  58. package/embedded-knowledge/.github/ISSUE_TEMPLATE/bug-report.md +0 -24
  59. package/embedded-knowledge/.github/ISSUE_TEMPLATE/content-improvement.md +0 -24
  60. package/embedded-knowledge/.github/ISSUE_TEMPLATE/knowledge-request.md +0 -30
  61. package/embedded-knowledge/AGENTS.md +0 -178
  62. package/embedded-knowledge/CONTRIBUTING.md +0 -58
  63. package/embedded-knowledge/LICENSE +0 -21
  64. package/embedded-knowledge/README.md +0 -32
  65. package/embedded-knowledge/domains/alex-architect/api-delegate-operation-pattern.md +0 -90
  66. package/embedded-knowledge/domains/alex-architect/api-fieldset-registration-pattern.md +0 -113
  67. package/embedded-knowledge/domains/alex-architect/api-interface-design-patterns.md +0 -101
  68. package/embedded-knowledge/domains/alex-architect/api-page-development-patterns.md +0 -87
  69. package/embedded-knowledge/domains/alex-architect/complex-facade-patterns.md +0 -155
  70. package/embedded-knowledge/domains/alex-architect/facade-pattern-al-implementation.md +0 -138
  71. package/embedded-knowledge/domains/alex-architect/facade-pattern-external-api.md +0 -79
  72. package/embedded-knowledge/domains/alex-architect/samples/api-delegate-operation.md +0 -280
  73. package/embedded-knowledge/domains/alex-architect/samples/api-fieldset-registration.md +0 -200
  74. package/embedded-knowledge/domains/alex-architect/samples/api-interface-design.md +0 -565
  75. package/embedded-knowledge/domains/alex-architect/samples/api-page-implementation.md +0 -665
  76. package/embedded-knowledge/domains/alex-architect/samples/complex-facade-patterns.md +0 -325
  77. package/embedded-knowledge/domains/alex-architect/samples/facade-pattern-al.md +0 -696
  78. package/embedded-knowledge/domains/alex-architect/samples/facade-pattern.md +0 -320
  79. package/embedded-knowledge/domains/alex-architect/samples/subscriber-organization.md +0 -102
  80. package/embedded-knowledge/domains/alex-architect/samples/systemid-integration.md +0 -433
  81. package/embedded-knowledge/domains/alex-architect/subscriber-codeunit-size-optimization.md +0 -66
  82. package/embedded-knowledge/domains/alex-architect/systemid-integration.md +0 -115
  83. package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +0 -295
  84. package/embedded-knowledge/domains/dean-debug/case-statement-performance-best-practices.md +0 -86
  85. package/embedded-knowledge/domains/dean-debug/compound-statements-debugging.md +0 -96
  86. package/embedded-knowledge/domains/dean-debug/custom-dimensions-best-practices.md +0 -70
  87. package/embedded-knowledge/domains/dean-debug/custom-telemetry-implementation.md +0 -84
  88. package/embedded-knowledge/domains/dean-debug/deleteall-performance-tradeoff.md +0 -93
  89. package/embedded-knowledge/domains/dean-debug/deleteall-sql-performance.md +0 -73
  90. package/embedded-knowledge/domains/dean-debug/extension-telemetry-isolation.md +0 -78
  91. package/embedded-knowledge/domains/dean-debug/maintainsiftindex-property-behavior.md +0 -79
  92. package/embedded-knowledge/domains/dean-debug/no-series-implementation-patterns.md +0 -87
  93. package/embedded-knowledge/domains/dean-debug/no-series-module-patterns-bc24.md +0 -209
  94. package/embedded-knowledge/domains/dean-debug/no-series-validation-module-bc24.md +0 -246
  95. package/embedded-knowledge/domains/dean-debug/no-series-validation-patterns.md +0 -107
  96. package/embedded-knowledge/domains/dean-debug/odata-query-optimization.md +0 -105
  97. package/embedded-knowledge/domains/dean-debug/samples/bc24-no-series-conversion.md +0 -186
  98. package/embedded-knowledge/domains/dean-debug/samples/case-performance-optimization.md +0 -60
  99. package/embedded-knowledge/domains/dean-debug/samples/compound-statements-debugging.md +0 -139
  100. package/embedded-knowledge/domains/dean-debug/samples/custom-dimensions.md +0 -190
  101. package/embedded-knowledge/domains/dean-debug/samples/custom-telemetry.md +0 -516
  102. package/embedded-knowledge/domains/dean-debug/samples/deleteall-performance.md +0 -298
  103. package/embedded-knowledge/domains/dean-debug/samples/error-correlation.md +0 -324
  104. package/embedded-knowledge/domains/dean-debug/samples/extension-isolation.md +0 -344
  105. package/embedded-knowledge/domains/dean-debug/samples/logmessage-methods.md +0 -137
  106. package/embedded-knowledge/domains/dean-debug/samples/maintainsiftindex-examples.md +0 -340
  107. package/embedded-knowledge/domains/dean-debug/samples/no-series-implementation.md +0 -810
  108. package/embedded-knowledge/domains/dean-debug/samples/no-series-module-bc24.md +0 -86
  109. package/embedded-knowledge/domains/dean-debug/samples/no-series-validation-module-bc24.md +0 -110
  110. package/embedded-knowledge/domains/dean-debug/samples/no-series-validation.md +0 -758
  111. package/embedded-knowledge/domains/dean-debug/samples/odata-query-optimization.md +0 -665
  112. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-case.md +0 -316
  113. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-filters.md +0 -223
  114. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-filter-exclusion.md +0 -149
  115. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-optimization.md +0 -412
  116. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-performance.md +0 -211
  117. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-primary-key.md +0 -155
  118. package/embedded-knowledge/domains/dean-debug/samples/sift-technology-fundamentals.md +0 -475
  119. package/embedded-knowledge/domains/dean-debug/samples/singleinstance-subscribers.md +0 -238
  120. package/embedded-knowledge/domains/dean-debug/samples/table-event-batching.md +0 -97
  121. package/embedded-knowledge/domains/dean-debug/samples/table-key-requirements.md +0 -666
  122. package/embedded-knowledge/domains/dean-debug/samples/telemetry-performance.md +0 -319
  123. package/embedded-knowledge/domains/dean-debug/samples/verbosity-strategy.md +0 -236
  124. package/embedded-knowledge/domains/dean-debug/session-logmessage-methods.md +0 -59
  125. package/embedded-knowledge/domains/dean-debug/setloadfields-filter-field-exclusion.md +0 -67
  126. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-impact.md +0 -70
  127. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-optimization.md +0 -90
  128. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-case-statements.md +0 -87
  129. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-filters.md +0 -70
  130. package/embedded-knowledge/domains/dean-debug/setloadfields-primary-key-optimization.md +0 -74
  131. package/embedded-knowledge/domains/dean-debug/sift-technology-fundamentals.md +0 -81
  132. package/embedded-knowledge/domains/dean-debug/subscriber-singleinstance-performance.md +0 -56
  133. package/embedded-knowledge/domains/dean-debug/table-event-batch-operation-impact.md +0 -66
  134. package/embedded-knowledge/domains/dean-debug/table-key-requirements.md +0 -79
  135. package/embedded-knowledge/domains/dean-debug/telemetry-error-correlation.md +0 -78
  136. package/embedded-knowledge/domains/dean-debug/telemetry-performance-considerations.md +0 -83
  137. package/embedded-knowledge/domains/dean-debug/telemetry-verbosity-strategy.md +0 -76
  138. package/embedded-knowledge/domains/dean-debug/testfield-performance.md +0 -104
  139. package/embedded-knowledge/domains/eva-errors/fielderror-default-messages.md +0 -145
  140. package/embedded-knowledge/domains/eva-errors/fielderror-message-construction.md +0 -104
  141. package/embedded-knowledge/domains/eva-errors/fielderror-method-syntax.md +0 -114
  142. package/embedded-knowledge/domains/eva-errors/samples/fielderror-default-messages.md +0 -356
  143. package/embedded-knowledge/domains/eva-errors/samples/fielderror-syntax.md +0 -256
  144. package/embedded-knowledge/domains/eva-errors/samples/table-safety-validation-patterns.md +0 -101
  145. package/embedded-knowledge/domains/eva-errors/samples/testfield-error-handling.md +0 -108
  146. package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +0 -80
  147. package/embedded-knowledge/domains/jordan-bridge/al-event-subscriber-architecture.md +0 -98
  148. package/embedded-knowledge/domains/jordan-bridge/automatic-registration.md +0 -123
  149. package/embedded-knowledge/domains/jordan-bridge/business-process-template-patterns.md +0 -96
  150. package/embedded-knowledge/domains/jordan-bridge/error-response-patterns.md +0 -115
  151. package/embedded-knowledge/domains/jordan-bridge/etag-implementation.md +0 -115
  152. package/embedded-knowledge/domains/jordan-bridge/field-control-selection.md +0 -114
  153. package/embedded-knowledge/domains/jordan-bridge/samples/al-event-subscriber-architecture.md +0 -395
  154. package/embedded-knowledge/domains/jordan-bridge/samples/api-error-responses.md +0 -479
  155. package/embedded-knowledge/domains/jordan-bridge/samples/api-field-control.md +0 -548
  156. package/embedded-knowledge/domains/jordan-bridge/samples/api-url-naming.md +0 -287
  157. package/embedded-knowledge/domains/jordan-bridge/samples/business-process-templates.md +0 -434
  158. package/embedded-knowledge/domains/jordan-bridge/samples/etag-implementation.md +0 -508
  159. package/embedded-knowledge/domains/jordan-bridge/samples/task-scheduler-pattern.md +0 -615
  160. package/embedded-knowledge/domains/jordan-bridge/task-scheduler-pattern-implementation.md +0 -144
  161. package/embedded-knowledge/domains/jordan-bridge/url-structure-naming-patterns.md +0 -96
  162. package/embedded-knowledge/domains/maya-mentor/case-multiple-conditions-ranges.md +0 -124
  163. package/embedded-knowledge/domains/maya-mentor/case-statement-syntax-structure.md +0 -84
  164. package/embedded-knowledge/domains/maya-mentor/fielderror-syntax-usage.md +0 -75
  165. package/embedded-knowledge/domains/maya-mentor/fielderror-vs-testfield.md +0 -96
  166. package/embedded-knowledge/domains/maya-mentor/samples/case-statement-multiple-conditions.md +0 -385
  167. package/embedded-knowledge/domains/maya-mentor/samples/case-statement-syntax-structure.md +0 -72
  168. package/embedded-knowledge/domains/maya-mentor/samples/fielderror-syntax-usage.md +0 -48
  169. package/embedded-knowledge/domains/maya-mentor/samples/testfield-basic-syntax.md +0 -49
  170. package/embedded-knowledge/domains/maya-mentor/testfield-basic-syntax.md +0 -67
  171. package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +0 -119
  172. package/embedded-knowledge/domains/quinn-tester/rule-execution.md +0 -123
  173. package/embedded-knowledge/domains/quinn-tester/samples/case-error-handling.md +0 -64
  174. package/embedded-knowledge/domains/quinn-tester/samples/fielderror-message-construction.md +0 -60
  175. package/embedded-knowledge/domains/quinn-tester/samples/fielderror-validation-patterns.md +0 -83
  176. package/embedded-knowledge/domains/quinn-tester/samples/rule-execution.md +0 -716
  177. package/embedded-knowledge/domains/quinn-tester/samples/table-safety-validation-patterns.md +0 -101
  178. package/embedded-knowledge/domains/quinn-tester/samples/temporary-table-operation-validation.md +0 -91
  179. package/embedded-knowledge/domains/quinn-tester/table-safety-validation-patterns.md +0 -79
  180. package/embedded-knowledge/domains/quinn-tester/temporary-table-operation-validation.md +0 -79
  181. package/embedded-knowledge/domains/roger-reviewer/al-begin-end-block-structure.md +0 -89
  182. package/embedded-knowledge/domains/roger-reviewer/al-binary-operator-spacing.md +0 -76
  183. package/embedded-knowledge/domains/roger-reviewer/al-blank-line-organization.md +0 -76
  184. package/embedded-knowledge/domains/roger-reviewer/al-case-action-formatting.md +0 -76
  185. package/embedded-knowledge/domains/roger-reviewer/al-code-spacing-conventions.md +0 -81
  186. package/embedded-knowledge/domains/roger-reviewer/al-comment-spacing-standards.md +0 -76
  187. package/embedded-knowledge/domains/roger-reviewer/al-end-else-pairing.md +0 -75
  188. package/embedded-knowledge/domains/roger-reviewer/al-keyword-indentation-rules.md +0 -76
  189. package/embedded-knowledge/domains/roger-reviewer/al-line-start-keyword-positioning.md +0 -76
  190. package/embedded-knowledge/domains/roger-reviewer/al-separate-if-else-formatting.md +0 -76
  191. package/embedded-knowledge/domains/roger-reviewer/al-standard-abbreviations.md +0 -96
  192. package/embedded-knowledge/domains/roger-reviewer/al-statement-per-line-rule.md +0 -76
  193. package/embedded-knowledge/domains/roger-reviewer/al-unnecessary-else-elimination.md +0 -86
  194. package/embedded-knowledge/domains/roger-reviewer/al-variable-declaration-order.md +0 -90
  195. package/embedded-knowledge/domains/roger-reviewer/al-variable-naming-conventions.md +0 -82
  196. package/embedded-knowledge/domains/roger-reviewer/begin-block-statement-clarity.md +0 -78
  197. package/embedded-knowledge/domains/roger-reviewer/begin-end-positioning-patterns.md +0 -76
  198. package/embedded-knowledge/domains/roger-reviewer/binary-operator-line-positioning.md +0 -78
  199. package/embedded-knowledge/domains/roger-reviewer/boolean-expression-simplification-al.md +0 -100
  200. package/embedded-knowledge/domains/roger-reviewer/case-statement-error-handling-troubleshooting.md +0 -115
  201. package/embedded-knowledge/domains/roger-reviewer/compound-statement-readability.md +0 -124
  202. package/embedded-knowledge/domains/roger-reviewer/lonely-repeat-statement-pattern.md +0 -110
  203. package/embedded-knowledge/domains/roger-reviewer/samples/al-begin-end-blocks.md +0 -438
  204. package/embedded-knowledge/domains/roger-reviewer/samples/al-binary-operator-spacing.md +0 -255
  205. package/embedded-knowledge/domains/roger-reviewer/samples/al-comment-spacing-standards.md +0 -209
  206. package/embedded-knowledge/domains/roger-reviewer/samples/al-keyword-indentation-rules.md +0 -218
  207. package/embedded-knowledge/domains/roger-reviewer/samples/al-line-start-keyword-positioning.md +0 -218
  208. package/embedded-knowledge/domains/roger-reviewer/samples/al-separate-if-else-formatting.md +0 -280
  209. package/embedded-knowledge/domains/roger-reviewer/samples/al-statement-per-line-rule.md +0 -188
  210. package/embedded-knowledge/domains/roger-reviewer/samples/al-unnecessary-else-elimination.md +0 -245
  211. package/embedded-knowledge/domains/roger-reviewer/samples/al-variable-declaration-order.md +0 -244
  212. package/embedded-knowledge/domains/roger-reviewer/samples/begin-end-positioning.md +0 -278
  213. package/embedded-knowledge/domains/roger-reviewer/samples/boolean-simplification-examples.md +0 -484
  214. package/embedded-knowledge/domains/roger-reviewer/samples/case-error-handling.md +0 -64
  215. package/embedded-knowledge/domains/roger-reviewer/samples/compound-statement-readability.md +0 -107
  216. package/embedded-knowledge/domains/roger-reviewer/samples/lonely-repeat-examples.md +0 -280
  217. package/embedded-knowledge/domains/sam-coder/al-formatting-consistency-patterns.md +0 -75
  218. package/embedded-knowledge/domains/sam-coder/al-line-comment-formatting.md +0 -67
  219. package/embedded-knowledge/domains/sam-coder/al-lonely-repeat-pattern.md +0 -76
  220. package/embedded-knowledge/domains/sam-coder/al-named-parameter-pattern.md +0 -98
  221. package/embedded-knowledge/domains/sam-coder/al-object-navigation-shortcuts.md +0 -128
  222. package/embedded-knowledge/domains/sam-coder/al-readability-optimization.md +0 -75
  223. package/embedded-knowledge/domains/sam-coder/al-record-find-early-exit.md +0 -95
  224. package/embedded-knowledge/domains/sam-coder/command-queue-pattern-al.md +0 -141
  225. package/embedded-knowledge/domains/sam-coder/deleteall-alternative-implementation.md +0 -91
  226. package/embedded-knowledge/domains/sam-coder/deleteall-method-usage.md +0 -118
  227. package/embedded-knowledge/domains/sam-coder/deleteall-trigger-execution.md +0 -111
  228. package/embedded-knowledge/domains/sam-coder/event-bridge-pattern-al.md +0 -113
  229. package/embedded-knowledge/domains/sam-coder/event-payload-design-patterns.md +0 -127
  230. package/embedded-knowledge/domains/sam-coder/generic-method-patterns-al.md +0 -141
  231. package/embedded-knowledge/domains/sam-coder/manual-binding-conditional-subscribers.md +0 -66
  232. package/embedded-knowledge/domains/sam-coder/nested-compound-best-practices.md +0 -96
  233. package/embedded-knowledge/domains/sam-coder/samples/al-blank-line-organization.md +0 -161
  234. package/embedded-knowledge/domains/sam-coder/samples/al-case-action-formatting.md +0 -177
  235. package/embedded-knowledge/domains/sam-coder/samples/al-lonely-repeat-pattern.md +0 -239
  236. package/embedded-knowledge/domains/sam-coder/samples/al-named-parameter-pattern.md +0 -346
  237. package/embedded-knowledge/domains/sam-coder/samples/al-record-find-early-exit.md +0 -298
  238. package/embedded-knowledge/domains/sam-coder/samples/command-queue-pattern.md +0 -677
  239. package/embedded-knowledge/domains/sam-coder/samples/deleteall-alternative-implementation.md +0 -117
  240. package/embedded-knowledge/domains/sam-coder/samples/deleteall-triggers.md +0 -75
  241. package/embedded-knowledge/domains/sam-coder/samples/deleteall-usage.md +0 -169
  242. package/embedded-knowledge/domains/sam-coder/samples/event-bridge-pattern.md +0 -399
  243. package/embedded-knowledge/domains/sam-coder/samples/event-payload-design.md +0 -356
  244. package/embedded-knowledge/domains/sam-coder/samples/generic-method-patterns.md +0 -889
  245. package/embedded-knowledge/domains/sam-coder/samples/manual-binding.md +0 -84
  246. package/embedded-knowledge/domains/sam-coder/samples/nested-compound-best-practices.md +0 -127
  247. package/embedded-knowledge/domains/sam-coder/samples/single-to-compound-conversion.md +0 -89
  248. package/embedded-knowledge/domains/sam-coder/samples/template-method-pattern.md +0 -516
  249. package/embedded-knowledge/domains/sam-coder/samples/testfield-patterns.md +0 -61
  250. package/embedded-knowledge/domains/sam-coder/samples/type-safe-operations.md +0 -427
  251. package/embedded-knowledge/domains/sam-coder/single-to-compound-conversion.md +0 -122
  252. package/embedded-knowledge/domains/sam-coder/template-method-pattern-al.md +0 -96
  253. package/embedded-knowledge/domains/sam-coder/testfield-patterns.md +0 -101
  254. package/embedded-knowledge/domains/sam-coder/type-safe-operations-al.md +0 -149
  255. package/embedded-knowledge/domains/sam-coder/vs-code-al-keyboard-shortcuts.md +0 -107
  256. package/embedded-knowledge/domains/seth-security/al-temporary-table-safety.md +0 -95
  257. package/embedded-knowledge/domains/seth-security/api-permission-model.md +0 -115
  258. package/embedded-knowledge/domains/seth-security/istemporary-safeguard-pattern.md +0 -78
  259. package/embedded-knowledge/domains/seth-security/samples/al-temporary-table-safety.md +0 -373
  260. package/embedded-knowledge/domains/seth-security/samples/api-permission-model.md +0 -308
  261. package/embedded-knowledge/domains/taylor-docs/al-xml-documentation-structure.md +0 -79
  262. package/embedded-knowledge/domains/uma-ux/bc-action-shortcuts-syntax.md +0 -78
  263. package/embedded-knowledge/domains/uma-ux/shortcut-key-user-experience-design.md +0 -81
  264. package/embedded-knowledge/indexes/bc-version-matrix.json +0 -188
  265. package/embedded-knowledge/indexes/domain-catalog.json +0 -106
  266. package/embedded-knowledge/indexes/tags/abbreviations.json +0 -1
  267. package/embedded-knowledge/indexes/tags/abstraction.json +0 -1
  268. package/embedded-knowledge/indexes/tags/access-control.json +0 -1
  269. package/embedded-knowledge/indexes/tags/accessibility.json +0 -1
  270. package/embedded-knowledge/indexes/tags/actions.json +0 -1
  271. package/embedded-knowledge/indexes/tags/advanced-patterns.json +0 -1
  272. package/embedded-knowledge/indexes/tags/advanced.json +0 -1
  273. package/embedded-knowledge/indexes/tags/al-extension.json +0 -1
  274. package/embedded-knowledge/indexes/tags/al-generics.json +0 -1
  275. package/embedded-knowledge/indexes/tags/al-objects.json +0 -1
  276. package/embedded-knowledge/indexes/tags/al-syntax.json +0 -1
  277. package/embedded-knowledge/indexes/tags/algorithm-structure.json +0 -1
  278. package/embedded-knowledge/indexes/tags/alternatives.json +0 -1
  279. package/embedded-knowledge/indexes/tags/analytics.json +0 -1
  280. package/embedded-knowledge/indexes/tags/api-delegates.json +0 -1
  281. package/embedded-knowledge/indexes/tags/api-design.json +0 -1
  282. package/embedded-knowledge/indexes/tags/api-documentation.json +0 -1
  283. package/embedded-knowledge/indexes/tags/api-endpoints.json +0 -1
  284. package/embedded-knowledge/indexes/tags/api-extensibility.json +0 -1
  285. package/embedded-knowledge/indexes/tags/api-fieldsets.json +0 -1
  286. package/embedded-knowledge/indexes/tags/api-integration.json +0 -1
  287. package/embedded-knowledge/indexes/tags/api-interfaces.json +0 -1
  288. package/embedded-knowledge/indexes/tags/api-optimization.json +0 -1
  289. package/embedded-knowledge/indexes/tags/api-pages.json +0 -1
  290. package/embedded-knowledge/indexes/tags/api-patterns.json +0 -1
  291. package/embedded-knowledge/indexes/tags/api-permissions.json +0 -1
  292. package/embedded-knowledge/indexes/tags/api-responses.json +0 -1
  293. package/embedded-knowledge/indexes/tags/api-simplification.json +0 -1
  294. package/embedded-knowledge/indexes/tags/api.json +0 -1
  295. package/embedded-knowledge/indexes/tags/architecture.json +0 -1
  296. package/embedded-knowledge/indexes/tags/async-patterns.json +0 -1
  297. package/embedded-knowledge/indexes/tags/async-processing.json +0 -1
  298. package/embedded-knowledge/indexes/tags/automatic-registration.json +0 -1
  299. package/embedded-knowledge/indexes/tags/batch-operations.json +0 -1
  300. package/embedded-knowledge/indexes/tags/bc24-migration.json +0 -1
  301. package/embedded-knowledge/indexes/tags/begin-blocks.json +0 -1
  302. package/embedded-knowledge/indexes/tags/begin-end.json +0 -1
  303. package/embedded-knowledge/indexes/tags/behavioral-patterns.json +0 -1
  304. package/embedded-knowledge/indexes/tags/best-practices.json +0 -1
  305. package/embedded-knowledge/indexes/tags/binding.json +0 -1
  306. package/embedded-knowledge/indexes/tags/block-structure.json +0 -1
  307. package/embedded-knowledge/indexes/tags/blocks.json +0 -1
  308. package/embedded-knowledge/indexes/tags/boolean-expressions.json +0 -1
  309. package/embedded-knowledge/indexes/tags/branching.json +0 -1
  310. package/embedded-knowledge/indexes/tags/breaking-changes.json +0 -1
  311. package/embedded-knowledge/indexes/tags/breakpoints.json +0 -1
  312. package/embedded-knowledge/indexes/tags/business-foundation.json +0 -1
  313. package/embedded-knowledge/indexes/tags/business-infrastructure.json +0 -1
  314. package/embedded-knowledge/indexes/tags/business-process.json +0 -1
  315. package/embedded-knowledge/indexes/tags/business-rules.json +0 -1
  316. package/embedded-knowledge/indexes/tags/caching.json +0 -1
  317. package/embedded-knowledge/indexes/tags/case-statements.json +0 -1
  318. package/embedded-knowledge/indexes/tags/case.json +0 -1
  319. package/embedded-knowledge/indexes/tags/code-analysis.json +0 -1
  320. package/embedded-knowledge/indexes/tags/code-clarity.json +0 -1
  321. package/embedded-knowledge/indexes/tags/code-comprehension.json +0 -1
  322. package/embedded-knowledge/indexes/tags/code-conversion.json +0 -1
  323. package/embedded-knowledge/indexes/tags/code-formatting.json +0 -1
  324. package/embedded-knowledge/indexes/tags/code-organization.json +0 -1
  325. package/embedded-knowledge/indexes/tags/code-patterns.json +0 -1
  326. package/embedded-knowledge/indexes/tags/code-quality.json +0 -1
  327. package/embedded-knowledge/indexes/tags/code-reuse.json +0 -1
  328. package/embedded-knowledge/indexes/tags/code-simplification.json +0 -1
  329. package/embedded-knowledge/indexes/tags/code-standards.json +0 -1
  330. package/embedded-knowledge/indexes/tags/code-structure.json +0 -1
  331. package/embedded-knowledge/indexes/tags/code-style.json +0 -1
  332. package/embedded-knowledge/indexes/tags/codeunit-design.json +0 -1
  333. package/embedded-knowledge/indexes/tags/command-queue.json +0 -1
  334. package/embedded-knowledge/indexes/tags/comments.json +0 -1
  335. package/embedded-knowledge/indexes/tags/compile-time-validation.json +0 -1
  336. package/embedded-knowledge/indexes/tags/complex-facade.json +0 -1
  337. package/embedded-knowledge/indexes/tags/complexity-hiding.json +0 -1
  338. package/embedded-knowledge/indexes/tags/complexity-management.json +0 -1
  339. package/embedded-knowledge/indexes/tags/compound-statements.json +0 -1
  340. package/embedded-knowledge/indexes/tags/concurrency.json +0 -1
  341. package/embedded-knowledge/indexes/tags/conditional-logic.json +0 -1
  342. package/embedded-knowledge/indexes/tags/conditional.json +0 -1
  343. package/embedded-knowledge/indexes/tags/conflict-resolution.json +0 -1
  344. package/embedded-knowledge/indexes/tags/consistency.json +0 -1
  345. package/embedded-knowledge/indexes/tags/contract-design.json +0 -1
  346. package/embedded-knowledge/indexes/tags/control-flow.json +0 -1
  347. package/embedded-knowledge/indexes/tags/conversion-guide.json +0 -1
  348. package/embedded-knowledge/indexes/tags/correlation.json +0 -1
  349. package/embedded-knowledge/indexes/tags/custom-messages.json +0 -1
  350. package/embedded-knowledge/indexes/tags/data-access.json +0 -1
  351. package/embedded-knowledge/indexes/tags/data-exposure.json +0 -1
  352. package/embedded-knowledge/indexes/tags/data-integrity.json +0 -1
  353. package/embedded-knowledge/indexes/tags/data-loading.json +0 -1
  354. package/embedded-knowledge/indexes/tags/data-manipulation.json +0 -1
  355. package/embedded-knowledge/indexes/tags/data-modeling.json +0 -1
  356. package/embedded-knowledge/indexes/tags/data-patterns.json +0 -1
  357. package/embedded-knowledge/indexes/tags/data-protection.json +0 -1
  358. package/embedded-knowledge/indexes/tags/data-validation.json +0 -1
  359. package/embedded-knowledge/indexes/tags/database.json +0 -1
  360. package/embedded-knowledge/indexes/tags/debugging.json +0 -1
  361. package/embedded-knowledge/indexes/tags/decision-making.json +0 -1
  362. package/embedded-knowledge/indexes/tags/declaration.json +0 -1
  363. package/embedded-knowledge/indexes/tags/default-messages.json +0 -1
  364. package/embedded-knowledge/indexes/tags/defensive-programming.json +0 -1
  365. package/embedded-knowledge/indexes/tags/deleteall.json +0 -1
  366. package/embedded-knowledge/indexes/tags/dependencies.json +0 -1
  367. package/embedded-knowledge/indexes/tags/deployment.json +0 -1
  368. package/embedded-knowledge/indexes/tags/developer-productivity.json +0 -1
  369. package/embedded-knowledge/indexes/tags/development-workflow.json +0 -1
  370. package/embedded-knowledge/indexes/tags/diagnostics.json +0 -1
  371. package/embedded-knowledge/indexes/tags/dimensions.json +0 -1
  372. package/embedded-knowledge/indexes/tags/documentation.json +0 -1
  373. package/embedded-knowledge/indexes/tags/early-exit.json +0 -1
  374. package/embedded-knowledge/indexes/tags/else-clauses.json +0 -1
  375. package/embedded-knowledge/indexes/tags/end-statements.json +0 -1
  376. package/embedded-knowledge/indexes/tags/enterprise-patterns.json +0 -1
  377. package/embedded-knowledge/indexes/tags/entity-relationships.json +0 -1
  378. package/embedded-knowledge/indexes/tags/error-handling.json +0 -1
  379. package/embedded-knowledge/indexes/tags/error-messages.json +0 -1
  380. package/embedded-knowledge/indexes/tags/error-prevention.json +0 -1
  381. package/embedded-knowledge/indexes/tags/error-text.json +0 -1
  382. package/embedded-knowledge/indexes/tags/etag.json +0 -1
  383. package/embedded-knowledge/indexes/tags/event-bridge.json +0 -1
  384. package/embedded-knowledge/indexes/tags/event-payload.json +0 -1
  385. package/embedded-knowledge/indexes/tags/event-routing.json +0 -1
  386. package/embedded-knowledge/indexes/tags/events.json +0 -1
  387. package/embedded-knowledge/indexes/tags/execution-flow.json +0 -1
  388. package/embedded-knowledge/indexes/tags/expressions.json +0 -1
  389. package/embedded-knowledge/indexes/tags/extensibility.json +0 -1
  390. package/embedded-knowledge/indexes/tags/extensions.json +0 -1
  391. package/embedded-knowledge/indexes/tags/facade-composition.json +0 -1
  392. package/embedded-knowledge/indexes/tags/facade-pattern.json +0 -1
  393. package/embedded-knowledge/indexes/tags/field-control.json +0 -1
  394. package/embedded-knowledge/indexes/tags/field-exclusion.json +0 -1
  395. package/embedded-knowledge/indexes/tags/field-registration.json +0 -1
  396. package/embedded-knowledge/indexes/tags/field-state.json +0 -1
  397. package/embedded-knowledge/indexes/tags/field-validation.json +0 -1
  398. package/embedded-knowledge/indexes/tags/fielderror.json +0 -1
  399. package/embedded-knowledge/indexes/tags/fields.json +0 -1
  400. package/embedded-knowledge/indexes/tags/filtering.json +0 -1
  401. package/embedded-knowledge/indexes/tags/filters.json +0 -1
  402. package/embedded-knowledge/indexes/tags/formatting.json +0 -1
  403. package/embedded-knowledge/indexes/tags/generic-methods.json +0 -1
  404. package/embedded-knowledge/indexes/tags/http-status.json +0 -1
  405. package/embedded-knowledge/indexes/tags/if-statements.json +0 -1
  406. package/embedded-knowledge/indexes/tags/implementation.json +0 -1
  407. package/embedded-knowledge/indexes/tags/indentation.json +0 -1
  408. package/embedded-knowledge/indexes/tags/index-summary.json +0 -277
  409. package/embedded-knowledge/indexes/tags/indexing.json +0 -1
  410. package/embedded-knowledge/indexes/tags/inheritance.json +0 -1
  411. package/embedded-knowledge/indexes/tags/integration.json +0 -1
  412. package/embedded-knowledge/indexes/tags/integrity-checking.json +0 -1
  413. package/embedded-knowledge/indexes/tags/intellisense.json +0 -1
  414. package/embedded-knowledge/indexes/tags/interface-design.json +0 -1
  415. package/embedded-knowledge/indexes/tags/interface-segregation.json +0 -1
  416. package/embedded-knowledge/indexes/tags/isolation.json +0 -1
  417. package/embedded-knowledge/indexes/tags/job-processing.json +0 -1
  418. package/embedded-knowledge/indexes/tags/keyboard-navigation.json +0 -1
  419. package/embedded-knowledge/indexes/tags/keywords.json +0 -1
  420. package/embedded-knowledge/indexes/tags/legacy-modernization.json +0 -1
  421. package/embedded-knowledge/indexes/tags/line-breaks.json +0 -1
  422. package/embedded-knowledge/indexes/tags/line-organization.json +0 -1
  423. package/embedded-knowledge/indexes/tags/line-positioning.json +0 -1
  424. package/embedded-knowledge/indexes/tags/localization.json +0 -1
  425. package/embedded-knowledge/indexes/tags/logging.json +0 -1
  426. package/embedded-knowledge/indexes/tags/loose-coupling.json +0 -1
  427. package/embedded-knowledge/indexes/tags/maintainability.json +0 -1
  428. package/embedded-knowledge/indexes/tags/memory-management.json +0 -1
  429. package/embedded-knowledge/indexes/tags/memory-optimization.json +0 -1
  430. package/embedded-knowledge/indexes/tags/memory.json +0 -1
  431. package/embedded-knowledge/indexes/tags/message-design.json +0 -1
  432. package/embedded-knowledge/indexes/tags/message-formatting.json +0 -1
  433. package/embedded-knowledge/indexes/tags/message-patterns.json +0 -1
  434. package/embedded-knowledge/indexes/tags/metadata-driven.json +0 -1
  435. package/embedded-knowledge/indexes/tags/method-comparison.json +0 -1
  436. package/embedded-knowledge/indexes/tags/module-architecture.json +0 -1
  437. package/embedded-knowledge/indexes/tags/module-validation.json +0 -1
  438. package/embedded-knowledge/indexes/tags/monitoring.json +0 -1
  439. package/embedded-knowledge/indexes/tags/multi-layer-facade.json +0 -1
  440. package/embedded-knowledge/indexes/tags/multi-tenancy.json +0 -1
  441. package/embedded-knowledge/indexes/tags/multiple-values.json +0 -1
  442. package/embedded-knowledge/indexes/tags/naming-conventions.json +0 -1
  443. package/embedded-knowledge/indexes/tags/naming.json +0 -1
  444. package/embedded-knowledge/indexes/tags/navigation.json +0 -1
  445. package/embedded-knowledge/indexes/tags/nested-statements.json +0 -1
  446. package/embedded-knowledge/indexes/tags/no-series-conversion.json +0 -1
  447. package/embedded-knowledge/indexes/tags/no-series-validation.json +0 -1
  448. package/embedded-knowledge/indexes/tags/no-series.json +0 -1
  449. package/embedded-knowledge/indexes/tags/number-generation.json +0 -1
  450. package/embedded-knowledge/indexes/tags/object-documentation.json +0 -1
  451. package/embedded-knowledge/indexes/tags/odata.json +0 -1
  452. package/embedded-knowledge/indexes/tags/ondelete.json +0 -1
  453. package/embedded-knowledge/indexes/tags/onvalidate.json +0 -1
  454. package/embedded-knowledge/indexes/tags/operation-delegation.json +0 -1
  455. package/embedded-knowledge/indexes/tags/operation-safety.json +0 -1
  456. package/embedded-knowledge/indexes/tags/operators.json +0 -1
  457. package/embedded-knowledge/indexes/tags/optimization.json +0 -1
  458. package/embedded-knowledge/indexes/tags/order.json +0 -1
  459. package/embedded-knowledge/indexes/tags/organization.json +0 -1
  460. package/embedded-knowledge/indexes/tags/pages.json +0 -1
  461. package/embedded-knowledge/indexes/tags/parameters.json +0 -1
  462. package/embedded-knowledge/indexes/tags/patterns.json +0 -1
  463. package/embedded-knowledge/indexes/tags/performance-optimization.json +0 -1
  464. package/embedded-knowledge/indexes/tags/performance.json +0 -1
  465. package/embedded-knowledge/indexes/tags/placement.json +0 -1
  466. package/embedded-knowledge/indexes/tags/posting-codeunits.json +0 -1
  467. package/embedded-knowledge/indexes/tags/posting.json +0 -1
  468. package/embedded-knowledge/indexes/tags/preconditions.json +0 -1
  469. package/embedded-knowledge/indexes/tags/primary-key.json +0 -1
  470. package/embedded-knowledge/indexes/tags/privacy.json +0 -1
  471. package/embedded-knowledge/indexes/tags/process-automation.json +0 -1
  472. package/embedded-knowledge/indexes/tags/production.json +0 -1
  473. package/embedded-knowledge/indexes/tags/productivity.json +0 -1
  474. package/embedded-knowledge/indexes/tags/query-performance.json +0 -1
  475. package/embedded-knowledge/indexes/tags/queue-management.json +0 -1
  476. package/embedded-knowledge/indexes/tags/ranges.json +0 -1
  477. package/embedded-knowledge/indexes/tags/readability.json +0 -1
  478. package/embedded-knowledge/indexes/tags/record-access.json +0 -1
  479. package/embedded-knowledge/indexes/tags/record-methods.json +0 -1
  480. package/embedded-knowledge/indexes/tags/refactoring.json +0 -1
  481. package/embedded-knowledge/indexes/tags/reference.json +0 -1
  482. package/embedded-knowledge/indexes/tags/repeat-loops.json +0 -1
  483. package/embedded-knowledge/indexes/tags/repeat-statement.json +0 -1
  484. package/embedded-knowledge/indexes/tags/runtime-errors.json +0 -1
  485. package/embedded-knowledge/indexes/tags/runtime.json +0 -1
  486. package/embedded-knowledge/indexes/tags/safeguards.json +0 -1
  487. package/embedded-knowledge/indexes/tags/security.json +0 -1
  488. package/embedded-knowledge/indexes/tags/sequence-management.json +0 -1
  489. package/embedded-knowledge/indexes/tags/serialization.json +0 -1
  490. package/embedded-knowledge/indexes/tags/session-logmessage.json +0 -1
  491. package/embedded-knowledge/indexes/tags/session.json +0 -1
  492. package/embedded-knowledge/indexes/tags/setloadfields.json +0 -1
  493. package/embedded-knowledge/indexes/tags/shortcuts.json +0 -1
  494. package/embedded-knowledge/indexes/tags/sift.json +0 -1
  495. package/embedded-knowledge/indexes/tags/singleinstance.json +0 -1
  496. package/embedded-knowledge/indexes/tags/spacing.json +0 -1
  497. package/embedded-knowledge/indexes/tags/sql-translation.json +0 -1
  498. package/embedded-knowledge/indexes/tags/standards.json +0 -1
  499. package/embedded-knowledge/indexes/tags/statements.json +0 -1
  500. package/embedded-knowledge/indexes/tags/streaming.json +0 -1
  501. package/embedded-knowledge/indexes/tags/strong-typing.json +0 -1
  502. package/embedded-knowledge/indexes/tags/structural-patterns.json +0 -1
  503. package/embedded-knowledge/indexes/tags/structure.json +0 -1
  504. package/embedded-knowledge/indexes/tags/subscribers.json +0 -1
  505. package/embedded-knowledge/indexes/tags/switch.json +0 -1
  506. package/embedded-knowledge/indexes/tags/symbol-search.json +0 -1
  507. package/embedded-knowledge/indexes/tags/syntax.json +0 -1
  508. package/embedded-knowledge/indexes/tags/systemid.json +0 -1
  509. package/embedded-knowledge/indexes/tags/table-configuration.json +0 -1
  510. package/embedded-knowledge/indexes/tags/table-events.json +0 -1
  511. package/embedded-knowledge/indexes/tags/table-keys.json +0 -1
  512. package/embedded-knowledge/indexes/tags/table-safety.json +0 -1
  513. package/embedded-knowledge/indexes/tags/task-scheduler.json +0 -1
  514. package/embedded-knowledge/indexes/tags/telemetry.json +0 -1
  515. package/embedded-knowledge/indexes/tags/template-method.json +0 -1
  516. package/embedded-knowledge/indexes/tags/temporary-tables.json +0 -1
  517. package/embedded-knowledge/indexes/tags/testfield.json +0 -1
  518. package/embedded-knowledge/indexes/tags/tradeoffs.json +0 -1
  519. package/embedded-knowledge/indexes/tags/triggers.json +0 -1
  520. package/embedded-knowledge/indexes/tags/troubleshooting.json +0 -1
  521. package/embedded-knowledge/indexes/tags/type-safety.json +0 -1
  522. package/embedded-knowledge/indexes/tags/url-structure.json +0 -1
  523. package/embedded-knowledge/indexes/tags/user-experience.json +0 -1
  524. package/embedded-knowledge/indexes/tags/user-feedback.json +0 -1
  525. package/embedded-knowledge/indexes/tags/user-interface.json +0 -1
  526. package/embedded-knowledge/indexes/tags/validation-feedback.json +0 -1
  527. package/embedded-knowledge/indexes/tags/validation.json +0 -1
  528. package/embedded-knowledge/indexes/tags/variables.json +0 -1
  529. package/embedded-knowledge/indexes/tags/verbosity.json +0 -1
  530. package/embedded-knowledge/indexes/tags/vs-code.json +0 -1
  531. package/embedded-knowledge/indexes/tags/web-services.json +0 -1
  532. package/embedded-knowledge/indexes/tags/workflow-management.json +0 -1
  533. package/embedded-knowledge/indexes/tags/workflow-optimization.json +0 -1
  534. package/embedded-knowledge/indexes/tags/workflow-templates.json +0 -1
  535. package/embedded-knowledge/indexes/tags/workspace.json +0 -1
  536. package/embedded-knowledge/indexes/tags/xml-documentation.json +0 -1
  537. package/embedded-knowledge/indexes/topic-relationships.json +0 -128
  538. package/embedded-knowledge/methodologies/index.json +0 -81
  539. package/embedded-knowledge/methodologies/phases/analysis-full.md +0 -208
  540. package/embedded-knowledge/methodologies/phases/analysis-quick.md +0 -44
  541. package/embedded-knowledge/methodologies/phases/analysis.md +0 -182
  542. package/embedded-knowledge/methodologies/phases/execution-validation-full.md +0 -174
  543. package/embedded-knowledge/methodologies/phases/execution-validation-quick.md +0 -31
  544. package/embedded-knowledge/methodologies/phases/execution-validation.md +0 -174
  545. package/embedded-knowledge/methodologies/phases/performance-full.md +0 -211
  546. package/embedded-knowledge/methodologies/phases/performance-quick.md +0 -32
  547. package/embedded-knowledge/methodologies/phases/performance.md +0 -211
  548. package/embedded-knowledge/methodologies/phases/verification-full.md +0 -162
  549. package/embedded-knowledge/methodologies/phases/verification-quick.md +0 -48
  550. package/embedded-knowledge/methodologies/phases/verification.md +0 -146
  551. package/embedded-knowledge/methodologies/workflow-enforcement.md +0 -142
  552. package/embedded-knowledge/methodologies/workflows/code-review-workflow.md +0 -99
  553. package/embedded-knowledge/specialists/alex-architect.md +0 -216
  554. package/embedded-knowledge/specialists/casey-copilot.md +0 -226
  555. package/embedded-knowledge/specialists/chris-config.md +0 -267
  556. package/embedded-knowledge/specialists/dean-debug.md +0 -222
  557. package/embedded-knowledge/specialists/eva-errors.md +0 -235
  558. package/embedded-knowledge/specialists/jordan-bridge.md +0 -235
  559. package/embedded-knowledge/specialists/logan-legacy.md +0 -209
  560. package/embedded-knowledge/specialists/maya-mentor.md +0 -211
  561. package/embedded-knowledge/specialists/morgan-market.md +0 -226
  562. package/embedded-knowledge/specialists/quinn-tester.md +0 -235
  563. package/embedded-knowledge/specialists/roger-reviewer.md +0 -234
  564. package/embedded-knowledge/specialists/sam-coder.md +0 -359
  565. package/embedded-knowledge/specialists/seth-security.md +0 -235
  566. package/embedded-knowledge/specialists/taylor-docs.md +0 -257
  567. package/embedded-knowledge/specialists/uma-ux.md +0 -235
@@ -1,155 +0,0 @@
1
- # SetLoadFields Primary Key Optimization - AL Code Samples
2
-
3
- ## Basic Primary Key Optimization
4
- ```al
5
- codeunit 50100 "SetLoadFields PK Examples"
6
- {
7
- procedure OptimizedPrimaryKeyLookup(DocumentType: Enum "Sales Document Type"; DocumentNo: Code[20])
8
- var
9
- SalesHeader: Record "Sales Header";
10
- begin
11
- // Load only primary key fields for existence checks
12
- SalesHeader.SetLoadFields("Document Type", "No.");
13
- SalesHeader.SetRange("Document Type", DocumentType);
14
- SalesHeader.SetRange("No.", DocumentNo);
15
-
16
- if SalesHeader.FindSet() then
17
- repeat
18
- // Primary key fields already loaded, minimal memory usage
19
- ProcessDocumentHeader(SalesHeader."Document Type", SalesHeader."No.");
20
- until SalesHeader.Next() = 0;
21
- end;
22
-
23
- procedure ConditionalPrimaryKeyLoading(CustomerNo: Code[20]; LoadFullData: Boolean)
24
- var
25
- Customer: Record Customer;
26
- begin
27
- if LoadFullData then
28
- // Load all fields when full processing needed
29
- Customer.SetLoadFields()
30
- else
31
- // Minimal primary key loading for counting/existence
32
- Customer.SetLoadFields("No.");
33
-
34
- Customer.SetRange("No.", CustomerNo);
35
-
36
- if Customer.FindFirst() then
37
- if LoadFullData then
38
- ProcessFullCustomer(Customer)
39
- else
40
- LogCustomerExists(Customer."No.");
41
- end;
42
-
43
- procedure BulkPrimaryKeyProcessing()
44
- var
45
- Item: Record Item;
46
- ItemNumbers: List of [Code[20]];
47
- ItemNo: Code[20];
48
- begin
49
- // First pass: collect primary keys only
50
- Item.SetLoadFields("No.");
51
- if Item.FindSet() then
52
- repeat
53
- ItemNumbers.Add(Item."No.");
54
- until Item.Next() = 0;
55
-
56
- // Second pass: process specific records with full data
57
- foreach ItemNo in ItemNumbers do begin
58
- Item.SetLoadFields(); // Load all fields for processing
59
- if Item.Get(ItemNo) then
60
- ProcessFullItem(Item);
61
- end;
62
- end;
63
-
64
- local procedure ProcessDocumentHeader(DocumentType: Enum "Sales Document Type"; DocumentNo: Code[20])
65
- begin
66
- // Processing logic using only primary key data
67
- end;
68
-
69
- local procedure ProcessFullCustomer(var Customer: Record Customer)
70
- begin
71
- // Full customer processing
72
- end;
73
-
74
- local procedure LogCustomerExists(CustomerNo: Code[20])
75
- begin
76
- // Minimal logging using primary key data
77
- end;
78
-
79
- local procedure ProcessFullItem(var Item: Record Item)
80
- begin
81
- // Full item processing
82
- end;
83
- }
84
- ```
85
-
86
- ## Performance Comparison Examples
87
- ```al
88
- codeunit 50101 "PK Performance Comparison"
89
- {
90
- procedure UnoptimizedPrimaryKeyAccess()
91
- var
92
- Customer: Record Customer;
93
- begin
94
- // BAD: Loading all fields when only checking existence
95
- Customer.SetRange("Customer Posting Group", 'DOMESTIC');
96
-
97
- if Customer.FindSet() then
98
- repeat
99
- // Only using primary key fields but all fields were loaded
100
- if IsValidCustomer(Customer."No.") then
101
- ProcessValidCustomer(Customer."No.");
102
- until Customer.Next() = 0;
103
- end;
104
-
105
- procedure OptimizedPrimaryKeyAccess()
106
- var
107
- Customer: Record Customer;
108
- begin
109
- // GOOD: Loading only required primary key fields
110
- Customer.SetLoadFields("No.");
111
- Customer.SetRange("Customer Posting Group", 'DOMESTIC');
112
-
113
- if Customer.FindSet() then
114
- repeat
115
- // Minimal memory usage, faster iteration
116
- if IsValidCustomer(Customer."No.") then
117
- ProcessValidCustomer(Customer."No.");
118
- until Customer.Next() = 0;
119
- end;
120
-
121
- procedure SmartPrimaryKeyWithLazyLoading()
122
- var
123
- Customer: Record Customer;
124
- FullDataCustomer: Record Customer;
125
- begin
126
- // BEST: Minimal loading with selective full data loading
127
- Customer.SetLoadFields("No.");
128
- Customer.SetRange("Customer Posting Group", 'DOMESTIC');
129
-
130
- if Customer.FindSet() then
131
- repeat
132
- if IsValidCustomer(Customer."No.") then begin
133
- // Load full data only when needed
134
- if FullDataCustomer.Get(Customer."No.") then
135
- ProcessFullCustomer(FullDataCustomer);
136
- end;
137
- until Customer.Next() = 0;
138
- end;
139
-
140
- local procedure IsValidCustomer(CustomerNo: Code[20]): Boolean
141
- begin
142
- exit(CustomerNo <> '');
143
- end;
144
-
145
- local procedure ProcessValidCustomer(CustomerNo: Code[20])
146
- begin
147
- // Processing using only primary key data
148
- end;
149
-
150
- local procedure ProcessFullCustomer(var Customer: Record Customer)
151
- begin
152
- // Full customer processing
153
- end;
154
- }
155
- ```
@@ -1,475 +0,0 @@
1
- # SIFT Technology Fundamentals - AL Code Samples
2
-
3
- ## Basic SIFT Table Configuration
4
-
5
- ### Standard Implementation
6
- ```al
7
- table 50100 "Sales Analytics Data"
8
- {
9
- Caption = 'Sales Analytics Data';
10
- DataClassification = CustomerContent;
11
-
12
- fields
13
- {
14
- field(1; "Customer No."; Code[20])
15
- {
16
- Caption = 'Customer No.';
17
- TableRelation = Customer;
18
- }
19
- field(2; "Item No."; Code[20])
20
- {
21
- Caption = 'Item No.';
22
- TableRelation = Item;
23
- }
24
- field(3; "Posting Date"; Date)
25
- {
26
- Caption = 'Posting Date';
27
- }
28
- field(10; "Sales Amount"; Decimal)
29
- {
30
- Caption = 'Sales Amount';
31
- DecimalPlaces = 2 : 2;
32
- }
33
- field(11; "Quantity"; Decimal)
34
- {
35
- Caption = 'Quantity';
36
- DecimalPlaces = 0 : 5;
37
- }
38
- field(12; "Profit Amount"; Decimal)
39
- {
40
- Caption = 'Profit Amount';
41
- DecimalPlaces = 2 : 2;
42
- }
43
- }
44
-
45
- keys
46
- {
47
- key(PK; "Customer No.", "Item No.", "Posting Date")
48
- {
49
- Clustered = true;
50
- }
51
-
52
- // Basic SIFT key for customer totals
53
- key(CustomerSIFT; "Customer No.")
54
- {
55
- SumIndexFields = "Sales Amount", Quantity, "Profit Amount";
56
- MaintainSIFTIndex = true;
57
- }
58
-
59
- // Item-based aggregations
60
- key(ItemSIFT; "Item No.")
61
- {
62
- SumIndexFields = "Sales Amount", Quantity;
63
- MaintainSIFTIndex = true;
64
- }
65
- }
66
- }
67
- ```
68
-
69
- ## SumIndexFields Property Usage Patterns
70
-
71
- ### Multiple Aggregation Strategies
72
- ```al
73
- table 50101 "Order Performance Metrics"
74
- {
75
- Caption = 'Order Performance Metrics';
76
- DataClassification = CustomerContent;
77
-
78
- fields
79
- {
80
- field(1; "Salesperson Code"; Code[20]) { }
81
- field(2; "Customer No."; Code[20]) { }
82
- field(3; "Order Date"; Date) { }
83
- field(10; "Order Amount"; Decimal) { }
84
- field(11; "Discount Amount"; Decimal) { }
85
- field(12; "Commission Amount"; Decimal) { }
86
- field(13; "Processing Time"; Integer) { }
87
- }
88
-
89
- keys
90
- {
91
- key(PK; "Salesperson Code", "Customer No.", "Order Date") { Clustered = true; }
92
-
93
- // Comprehensive salesperson performance SIFT
94
- key(SalespersonPerformance; "Salesperson Code")
95
- {
96
- SumIndexFields = "Order Amount", "Discount Amount", "Commission Amount";
97
- MaintainSIFTIndex = true;
98
- }
99
-
100
- // Customer relationship metrics SIFT
101
- key(CustomerMetrics; "Customer No.")
102
- {
103
- SumIndexFields = "Order Amount", "Discount Amount";
104
- MaintainSIFTIndex = true;
105
- }
106
-
107
- // Time-based analysis SIFT
108
- key(DateAnalysis; "Order Date")
109
- {
110
- SumIndexFields = "Order Amount", "Processing Time";
111
- MaintainSIFTIndex = false; // On-demand for reporting
112
- }
113
- }
114
- }
115
-
116
- // Usage in AL code
117
- codeunit 50100 "SIFT Usage Examples"
118
- {
119
- procedure GetSalespersonTotals(SalespersonCode: Code[20]; var TotalAmount: Decimal; var TotalCommission: Decimal)
120
- var
121
- OrderMetrics: Record "Order Performance Metrics";
122
- begin
123
- OrderMetrics.Reset();
124
- OrderMetrics.SetRange("Salesperson Code", SalespersonCode);
125
-
126
- // Leverages SIFT for instant calculation
127
- OrderMetrics.CalcSums("Order Amount", "Commission Amount");
128
- TotalAmount := OrderMetrics."Order Amount";
129
- TotalCommission := OrderMetrics."Commission Amount";
130
- end;
131
- }
132
- ```
133
-
134
- ## FlowField Integration with SIFT
135
-
136
- ### Customer Card with SIFT-Optimized FlowFields
137
- ```al
138
- tableextension 50100 "Customer SIFT Extension" extends Customer
139
- {
140
- fields
141
- {
142
- // FlowField automatically leverages SIFT when available
143
- field(50100; "Total Sales Amount"; Decimal)
144
- {
145
- Caption = 'Total Sales Amount';
146
- FieldClass = FlowField;
147
- CalcFormula = sum("Sales Analytics Data"."Sales Amount" where("Customer No." = field("No.")));
148
- Editable = false;
149
- }
150
-
151
- field(50101; "Total Quantity Sold"; Decimal)
152
- {
153
- Caption = 'Total Quantity Sold';
154
- FieldClass = FlowField;
155
- CalcFormula = sum("Sales Analytics Data".Quantity where("Customer No." = field("No.")));
156
- Editable = false;
157
- }
158
-
159
- field(50102; "Average Order Value"; Decimal)
160
- {
161
- Caption = 'Average Order Value';
162
- FieldClass = FlowField;
163
- CalcFormula = average("Sales Analytics Data"."Sales Amount" where("Customer No." = field("No.")));
164
- Editable = false;
165
- }
166
- }
167
- }
168
-
169
- // Page implementation with automatic FlowField calculation
170
- pageextension 50100 "Customer Card SIFT" extends "Customer Card"
171
- {
172
- layout
173
- {
174
- addafter("Name")
175
- {
176
- group("Sales Analytics")
177
- {
178
- Caption = 'Sales Analytics (SIFT-Optimized)';
179
-
180
- field("Total Sales Amount"; Rec."Total Sales Amount")
181
- {
182
- ApplicationArea = All;
183
- // Automatically calculated using SIFT when page opens
184
- }
185
- field("Total Quantity Sold"; Rec."Total Quantity Sold")
186
- {
187
- ApplicationArea = All;
188
- }
189
- field("Average Order Value"; Rec."Average Order Value")
190
- {
191
- ApplicationArea = All;
192
- }
193
- }
194
- }
195
- }
196
-
197
- trigger OnAfterGetRecord()
198
- begin
199
- // Force calculation of FlowFields (leverages SIFT)
200
- Rec.CalcFields("Total Sales Amount", "Total Quantity Sold", "Average Order Value");
201
- end;
202
- }
203
- ```
204
-
205
- ## Performance Comparison: SIFT vs Non-SIFT
206
-
207
- ### Performance Testing Framework
208
- ```al
209
- codeunit 50101 "SIFT Performance Comparison"
210
- {
211
- procedure ComparePerformance(CustomerNo: Code[20])
212
- var
213
- SalesData: Record "Sales Analytics Data";
214
- StartTime: DateTime;
215
- EndTime: DateTime;
216
- SIFTDuration: Duration;
217
- ManualDuration: Duration;
218
- TotalAmount: Decimal;
219
- begin
220
- // Test 1: SIFT-optimized calculation
221
- StartTime := CurrentDateTime;
222
- TotalAmount := CalculateUsingSIFT(CustomerNo);
223
- EndTime := CurrentDateTime;
224
- SIFTDuration := EndTime - StartTime;
225
-
226
- // Test 2: Manual calculation without SIFT
227
- StartTime := CurrentDateTime;
228
- TotalAmount := CalculateManually(CustomerNo);
229
- EndTime := CurrentDateTime;
230
- ManualDuration := EndTime - StartTime;
231
-
232
- // Performance comparison results
233
- Message('SIFT Calculation: %1ms\Manual Calculation: %2ms\Performance Improvement: %3x faster',
234
- SIFTDuration, ManualDuration, ManualDuration / SIFTDuration);
235
- end;
236
-
237
- local procedure CalculateUsingSIFT(CustomerNo: Code[20]): Decimal
238
- var
239
- SalesData: Record "Sales Analytics Data";
240
- begin
241
- // Leverages SIFT index for instant aggregation
242
- SalesData.Reset();
243
- SalesData.SetRange("Customer No.", CustomerNo);
244
- SalesData.CalcSums("Sales Amount");
245
- exit(SalesData."Sales Amount");
246
- end;
247
-
248
- local procedure CalculateManually(CustomerNo: Code[20]): Decimal
249
- var
250
- SalesData: Record "Sales Analytics Data";
251
- TotalAmount: Decimal;
252
- begin
253
- // Forces row-by-row calculation without SIFT
254
- SalesData.Reset();
255
- SalesData.SetRange("Customer No.", CustomerNo);
256
- if SalesData.FindSet() then
257
- repeat
258
- TotalAmount += SalesData."Sales Amount";
259
- until SalesData.Next() = 0;
260
- exit(TotalAmount);
261
- end;
262
- }
263
-
264
- // Benchmark results table for tracking
265
- table 50102 "SIFT Performance Benchmark"
266
- {
267
- fields
268
- {
269
- field(1; "Test Date"; DateTime) { }
270
- field(2; "Customer No."; Code[20]) { }
271
- field(3; "Record Count"; Integer) { }
272
- field(4; "SIFT Duration (ms)"; Integer) { }
273
- field(5; "Manual Duration (ms)"; Integer) { }
274
- field(6; "Performance Ratio"; Decimal) { }
275
- }
276
-
277
- keys
278
- {
279
- key(PK; "Test Date", "Customer No.") { }
280
- }
281
- }
282
- ```
283
-
284
- ## Common SIFT Configuration Mistakes (Anti-Patterns)
285
-
286
- ### Anti-Pattern Examples with Corrections
287
-
288
- #### ❌ Anti-Pattern 1: Excessive SIFT Keys
289
- ```al
290
- // BAD: Too many SIFT keys with MaintainSIFTIndex = true
291
- table 50103 "Over-SIFT Example (Bad)"
292
- {
293
- keys
294
- {
295
- key(PK; ID) { }
296
- key(SIFT1; Field1) { SumIndexFields = Amount; MaintainSIFTIndex = true; }
297
- key(SIFT2; Field2) { SumIndexFields = Amount; MaintainSIFTIndex = true; }
298
- key(SIFT3; Field3) { SumIndexFields = Amount; MaintainSIFTIndex = true; }
299
- key(SIFT4; Field4) { SumIndexFields = Amount; MaintainSIFTIndex = true; }
300
- key(SIFT5; Field5) { SumIndexFields = Amount; MaintainSIFTIndex = true; }
301
- // Problem: Every data modification updates 5 SIFT indexes
302
- // Impact: Severe write performance degradation
303
- }
304
- }
305
- ```
306
-
307
- #### ✅ Corrected Pattern 1: Selective SIFT Usage
308
- ```al
309
- // GOOD: Strategic SIFT key selection
310
- table 50104 "Optimized SIFT Example (Good)"
311
- {
312
- keys
313
- {
314
- key(PK; ID) { }
315
-
316
- // Only critical aggregations maintain real-time SIFT
317
- key(CriticalSIFT; "Customer No.")
318
- {
319
- SumIndexFields = Amount;
320
- MaintainSIFTIndex = true; // Dashboard requirement
321
- }
322
-
323
- // Secondary aggregations use on-demand calculation
324
- key(ReportingSIFT; "Item No.")
325
- {
326
- SumIndexFields = Amount;
327
- MaintainSIFTIndex = false; // Monthly reporting only
328
- }
329
- }
330
- }
331
- ```
332
-
333
- #### ❌ Anti-Pattern 2: SIFT Without SumIndexFields
334
- ```al
335
- // BAD: SIFT configuration without aggregation fields
336
- table 50105 "Empty SIFT Example (Bad)"
337
- {
338
- keys
339
- {
340
- key(PK; ID) { }
341
- key(BadSIFT; "Customer No.")
342
- {
343
- MaintainSIFTIndex = true; // No SumIndexFields specified!
344
- // Problem: Wastes storage and processing with no benefit
345
- }
346
- }
347
- }
348
- ```
349
-
350
- #### ✅ Corrected Pattern 2: Proper SIFT Configuration
351
- ```al
352
- // GOOD: SIFT with appropriate aggregation fields
353
- table 50106 "Proper SIFT Example (Good)"
354
- {
355
- keys
356
- {
357
- key(PK; ID) { }
358
- key(GoodSIFT; "Customer No.")
359
- {
360
- SumIndexFields = "Sales Amount", Quantity, "Profit Amount";
361
- MaintainSIFTIndex = true;
362
- }
363
- }
364
- }
365
- ```
366
-
367
- #### ❌ Anti-Pattern 3: Wrong MaintainSIFTIndex Setting
368
- ```al
369
- // BAD: Real-time SIFT for batch processing scenario
370
- codeunit 50102 "Batch Import with Bad SIFT"
371
- {
372
- procedure ImportLargeDataset()
373
- var
374
- DataRecord: Record "Over-SIFT Example (Bad)";
375
- i: Integer;
376
- begin
377
- // Importing 100,000 records
378
- for i := 1 to 100000 do begin
379
- DataRecord.Init();
380
- DataRecord.ID := i;
381
- DataRecord.Amount := Random(1000);
382
- DataRecord.Insert(); // Each insert updates multiple SIFT indexes!
383
- // Performance impact: 10x slower than necessary
384
- end;
385
- end;
386
- }
387
- ```
388
-
389
- #### ✅ Corrected Pattern 3: Appropriate SIFT for Usage Pattern
390
- ```al
391
- // GOOD: On-demand SIFT for batch scenarios
392
- table 50107 "Batch-Optimized SIFT (Good)"
393
- {
394
- keys
395
- {
396
- key(PK; ID) { }
397
- key(BatchSIFT; "Data Type")
398
- {
399
- SumIndexFields = Amount;
400
- MaintainSIFTIndex = false; // Calculated after batch import
401
- }
402
- }
403
- }
404
-
405
- codeunit 50103 "Batch Import with Good SIFT"
406
- {
407
- procedure ImportLargeDataset()
408
- var
409
- DataRecord: Record "Batch-Optimized SIFT (Good)";
410
- i: Integer;
411
- begin
412
- // Fast import without real-time SIFT maintenance
413
- for i := 1 to 100000 do begin
414
- DataRecord.Init();
415
- DataRecord.ID := i;
416
- DataRecord.Amount := Random(1000);
417
- DataRecord.Insert(); // No SIFT overhead during import
418
- end;
419
-
420
- // Calculate aggregations on-demand after import
421
- DataRecord.CalcSums(Amount); // Uses SIFT for efficient calculation
422
- Message('Total imported amount: %1', DataRecord.Amount);
423
- end;
424
- }
425
- ```
426
-
427
- ## Best Practice Decision Matrix
428
-
429
- ### SIFT Configuration Guidelines
430
- ```al
431
- // Decision framework for SIFT configuration
432
- codeunit 50104 "SIFT Decision Framework"
433
- {
434
- // Use this pattern to determine optimal SIFT settings
435
- procedure RecommendSIFTSettings(ReadFrequency: Text; WriteFrequency: Text; DataVolume: Text): Text
436
- begin
437
- case true of
438
- (ReadFrequency = 'High') and (WriteFrequency = 'Low'):
439
- exit('MaintainSIFTIndex = true - Optimal for dashboards and real-time reporting');
440
-
441
- (ReadFrequency = 'Low') and (WriteFrequency = 'High'):
442
- exit('MaintainSIFTIndex = false - Optimal for transaction processing systems');
443
-
444
- (ReadFrequency = 'Medium') and (WriteFrequency = 'Medium'):
445
- exit('Test both settings and measure performance - Consider time-based switching');
446
-
447
- DataVolume = 'Very Large':
448
- exit('MaintainSIFTIndex = false - Avoid real-time maintenance on large datasets');
449
-
450
- else
451
- exit('Start with MaintainSIFTIndex = false and optimize based on actual usage patterns');
452
- end;
453
- end;
454
- }
455
-
456
- /*
457
- SIFT Performance Guidelines:
458
-
459
- 1. Real-time SIFT (MaintainSIFTIndex = true):
460
- - Best for: Dashboards, frequently accessed reports, user interface calculations
461
- - Trade-off: Slower writes, faster reads
462
- - Limit: Maximum 3-5 real-time SIFT keys per table
463
-
464
- 2. On-demand SIFT (MaintainSIFTIndex = false):
465
- - Best for: Periodic reporting, batch processing, large data imports
466
- - Trade-off: Faster writes, acceptable read performance
467
- - Benefit: No maintenance overhead during data modifications
468
-
469
- 3. Monitoring and Optimization:
470
- - Measure actual performance in production-like environments
471
- - Monitor SIFT calculation times and data modification impact
472
- - Consider data growth patterns when choosing SIFT strategy
473
- - Review SIFT usage patterns quarterly and adjust as needed
474
- */
475
- ```