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,344 +0,0 @@
1
- # Extension Telemetry Isolation Implementation - AL Code Samples
2
-
3
- ## Extension-Specific Telemetry Architecture
4
- ```al
5
- codeunit 50150 "Extension Telemetry Manager"
6
- {
7
- var
8
- ExtensionIdentifier: Text;
9
- ExtensionVersion: Text;
10
- ExtensionPublisher: Text;
11
- TelemetryPrefix: Text;
12
-
13
- trigger OnRun()
14
- begin
15
- InitializeExtensionTelemetry();
16
- end;
17
-
18
- // Example 1: Extension isolation initialization
19
- local procedure InitializeExtensionTelemetry()
20
- var
21
- ModuleInfo: ModuleInfo;
22
- begin
23
- NavApp.GetCurrentModuleInfo(ModuleInfo);
24
- ExtensionIdentifier := Format(ModuleInfo.Id);
25
- ExtensionVersion := Format(ModuleInfo.AppVersion);
26
- ExtensionPublisher := ModuleInfo.Publisher;
27
-
28
- // Create unique telemetry prefix for this extension
29
- TelemetryPrefix := 'EXT_' + ModuleInfo.Name.Replace(' ', '') + '_';
30
-
31
- LogExtensionInitialization();
32
- end;
33
-
34
- local procedure LogExtensionInitialization()
35
- var
36
- CustomDimensions: Dictionary of [Text, Text];
37
- begin
38
- CustomDimensions := BuildExtensionBaseDimensions();
39
- CustomDimensions.Add('EventType', 'ExtensionInitialization');
40
- CustomDimensions.Add('InitializationTime', Format(CurrentDateTime, 0, 9));
41
-
42
- Session.LogMessage(GetExtensionEventId('INIT001'),
43
- StrSubstNo('Extension %1 telemetry initialized', ExtensionIdentifier),
44
- Verbosity::Normal, DataClassification::SystemMetadata,
45
- TelemetryScope::ExtensionPublisher, CustomDimensions);
46
- end;
47
-
48
- // Example 2: Isolated extension event logging
49
- procedure LogExtensionEvent(EventCategory: Text; EventName: Text; EventData: Dictionary of [Text, Text])
50
- var
51
- CustomDimensions: Dictionary of [Text, Text];
52
- EventId: Text;
53
- begin
54
- CustomDimensions := BuildExtensionBaseDimensions();
55
- CustomDimensions.Add('EventCategory', EventCategory);
56
- CustomDimensions.Add('EventName', EventName);
57
-
58
- // Add extension-specific event data
59
- AddEventDataToDimensions(CustomDimensions, EventData);
60
-
61
- EventId := GetExtensionEventId(EventCategory + '_' + EventName);
62
-
63
- Session.LogMessage(EventId, StrSubstNo('Extension event: %1.%2', EventCategory, EventName),
64
- GetEventVerbosity(EventCategory), DataClassification::SystemMetadata,
65
- TelemetryScope::ExtensionPublisher, CustomDimensions);
66
- end;
67
-
68
- // Example 3: Extension error isolation
69
- procedure LogExtensionError(ErrorContext: Text; ErrorMessage: Text; ErrorCode: Text)
70
- var
71
- CustomDimensions: Dictionary of [Text, Text];
72
- begin
73
- CustomDimensions := BuildExtensionBaseDimensions();
74
- CustomDimensions.Add('EventType', 'ExtensionError');
75
- CustomDimensions.Add('ErrorContext', ErrorContext);
76
- CustomDimensions.Add('ErrorMessage', ErrorMessage);
77
- CustomDimensions.Add('ErrorCode', ErrorCode);
78
- CustomDimensions.Add('CallStack', GetExtensionCallStack());
79
-
80
- Session.LogMessage(GetExtensionEventId('ERROR_' + ErrorCode),
81
- StrSubstNo('Extension error in %1: %2', ErrorContext, ErrorMessage),
82
- Verbosity::Error, DataClassification::SystemMetadata,
83
- TelemetryScope::ExtensionPublisher, CustomDimensions);
84
- end;
85
-
86
- local procedure BuildExtensionBaseDimensions(): Dictionary of [Text, Text]
87
- var
88
- CustomDimensions: Dictionary of [Text, Text];
89
- begin
90
- CustomDimensions.Add('ExtensionId', ExtensionIdentifier);
91
- CustomDimensions.Add('ExtensionVersion', ExtensionVersion);
92
- CustomDimensions.Add('ExtensionPublisher', ExtensionPublisher);
93
- CustomDimensions.Add('CompanyName', CompanyName());
94
- CustomDimensions.Add('UserID', UserId());
95
- CustomDimensions.Add('SessionId', Format(SessionId()));
96
- CustomDimensions.Add('TelemetryTimestamp', Format(CurrentDateTime, 0, 9));
97
-
98
- exit(CustomDimensions);
99
- end;
100
-
101
- local procedure GetExtensionEventId(EventSuffix: Text): Text
102
- begin
103
- exit(TelemetryPrefix + EventSuffix);
104
- end;
105
-
106
- local procedure GetEventVerbosity(EventCategory: Text): Verbosity
107
- begin
108
- case EventCategory of
109
- 'Error': exit(Verbosity::Error);
110
- 'Warning': exit(Verbosity::Warning);
111
- 'Performance': exit(Verbosity::Normal);
112
- 'Debug': exit(Verbosity::Verbose);
113
- else exit(Verbosity::Normal);
114
- end;
115
- end;
116
-
117
- local procedure AddEventDataToDimensions(var CustomDimensions: Dictionary of [Text, Text]; EventData: Dictionary of [Text, Text])
118
- var
119
- Key: Text;
120
- begin
121
- foreach Key in EventData.Keys do
122
- CustomDimensions.Add('EventData_' + Key, EventData.Get(Key));
123
- end;
124
-
125
- local procedure GetExtensionCallStack(): Text
126
- begin
127
- // Implement call stack capture for extension context
128
- exit('Extension call stack not available');
129
- end;
130
- }
131
- ```
132
-
133
- ## Cross-Extension Interaction Tracking
134
- ```al
135
- codeunit 50151 "Cross Extension Telemetry"
136
- {
137
- // Example 4: Inter-extension communication tracking
138
- procedure LogExtensionInteraction(TargetExtension: Text; InteractionType: Text; InteractionData: Dictionary of [Text, Text])
139
- var
140
- CustomDimensions: Dictionary of [Text, Text];
141
- SourceExtension: Text;
142
- ModuleInfo: ModuleInfo;
143
- begin
144
- NavApp.GetCurrentModuleInfo(ModuleInfo);
145
- SourceExtension := Format(ModuleInfo.Id);
146
-
147
- CustomDimensions.Add('SourceExtension', SourceExtension);
148
- CustomDimensions.Add('TargetExtension', TargetExtension);
149
- CustomDimensions.Add('InteractionType', InteractionType);
150
- CustomDimensions.Add('EventType', 'ExtensionInteraction');
151
-
152
- AddInteractionDataToDimensions(CustomDimensions, InteractionData);
153
-
154
- Session.LogMessage('EXTINT_' + InteractionType,
155
- StrSubstNo('Extension interaction: %1 -> %2 (%3)', SourceExtension, TargetExtension, InteractionType),
156
- Verbosity::Normal, DataClassification::SystemMetadata,
157
- TelemetryScope::ExtensionPublisher, CustomDimensions);
158
- end;
159
-
160
- // Example 5: Extension API usage tracking
161
- procedure LogExtensionAPIUsage(APIEndpoint: Text; APIOperation: Text; ClientExtension: Text; UsageMetrics: Dictionary of [Text, Text])
162
- var
163
- CustomDimensions: Dictionary of [Text, Text];
164
- ProviderExtension: Text;
165
- ModuleInfo: ModuleInfo;
166
- begin
167
- NavApp.GetCurrentModuleInfo(ModuleInfo);
168
- ProviderExtension := Format(ModuleInfo.Id);
169
-
170
- CustomDimensions.Add('ProviderExtension', ProviderExtension);
171
- CustomDimensions.Add('ClientExtension', ClientExtension);
172
- CustomDimensions.Add('APIEndpoint', APIEndpoint);
173
- CustomDimensions.Add('APIOperation', APIOperation);
174
- CustomDimensions.Add('EventType', 'ExtensionAPIUsage');
175
-
176
- AddUsageMetricsToDimensions(CustomDimensions, UsageMetrics);
177
-
178
- Session.LogMessage('EXTAPI_' + APIOperation,
179
- StrSubstNo('Extension API usage: %1.%2 by %3', APIEndpoint, APIOperation, ClientExtension),
180
- Verbosity::Normal, DataClassification::SystemMetadata,
181
- TelemetryScope::ExtensionPublisher, CustomDimensions);
182
- end;
183
-
184
- // Example 6: Extension feature usage tracking
185
- procedure LogExtensionFeatureUsage(FeatureName: Text; UsageType: Text; FeatureData: Dictionary of [Text, Text])
186
- var
187
- CustomDimensions: Dictionary of [Text, Text];
188
- ModuleInfo: ModuleInfo;
189
- begin
190
- NavApp.GetCurrentModuleInfo(ModuleInfo);
191
-
192
- CustomDimensions.Add('ExtensionId', Format(ModuleInfo.Id));
193
- CustomDimensions.Add('FeatureName', FeatureName);
194
- CustomDimensions.Add('UsageType', UsageType);
195
- CustomDimensions.Add('EventType', 'ExtensionFeatureUsage');
196
- CustomDimensions.Add('UserID', UserId());
197
- CustomDimensions.Add('CompanyName', CompanyName());
198
-
199
- AddFeatureDataToDimensions(CustomDimensions, FeatureData);
200
-
201
- Session.LogMessage('EXTFEAT_' + FeatureName,
202
- StrSubstNo('Extension feature usage: %1 (%2)', FeatureName, UsageType),
203
- Verbosity::Normal, DataClassification::SystemMetadata,
204
- TelemetryScope::ExtensionPublisher, CustomDimensions);
205
- end;
206
-
207
- local procedure AddInteractionDataToDimensions(var CustomDimensions: Dictionary of [Text, Text]; InteractionData: Dictionary of [Text, Text])
208
- var
209
- Key: Text;
210
- begin
211
- foreach Key in InteractionData.Keys do
212
- CustomDimensions.Add('Interaction_' + Key, InteractionData.Get(Key));
213
- end;
214
-
215
- local procedure AddUsageMetricsToDimensions(var CustomDimensions: Dictionary of [Text, Text]; UsageMetrics: Dictionary of [Text, Text])
216
- var
217
- Key: Text;
218
- begin
219
- foreach Key in UsageMetrics.Keys do
220
- CustomDimensions.Add('Metric_' + Key, UsageMetrics.Get(Key));
221
- end;
222
-
223
- local procedure AddFeatureDataToDimensions(var CustomDimensions: Dictionary of [Text, Text]; FeatureData: Dictionary of [Text, Text])
224
- var
225
- Key: Text;
226
- begin
227
- foreach Key in FeatureData.Keys do
228
- CustomDimensions.Add('Feature_' + Key, FeatureData.Get(Key));
229
- end;
230
- }
231
- ```
232
-
233
- ## Extension Configuration and Lifecycle
234
- ```al
235
- codeunit 50152 "Extension Lifecycle Telemetry"
236
- {
237
- // Example 7: Extension lifecycle event tracking
238
- procedure LogExtensionLifecycleEvent(LifecycleEvent: Text; EventContext: Dictionary of [Text, Text])
239
- var
240
- CustomDimensions: Dictionary of [Text, Text];
241
- ModuleInfo: ModuleInfo;
242
- begin
243
- NavApp.GetCurrentModuleInfo(ModuleInfo);
244
-
245
- CustomDimensions.Add('ExtensionId', Format(ModuleInfo.Id));
246
- CustomDimensions.Add('ExtensionName', ModuleInfo.Name);
247
- CustomDimensions.Add('ExtensionPublisher', ModuleInfo.Publisher);
248
- CustomDimensions.Add('ExtensionVersion', Format(ModuleInfo.AppVersion));
249
- CustomDimensions.Add('LifecycleEvent', LifecycleEvent);
250
- CustomDimensions.Add('EventType', 'ExtensionLifecycle');
251
-
252
- AddEventContextToDimensions(CustomDimensions, EventContext);
253
-
254
- Session.LogMessage('EXTLIFE_' + LifecycleEvent,
255
- StrSubstNo('Extension lifecycle event: %1 for %2', LifecycleEvent, ModuleInfo.Name),
256
- GetLifecycleVerbosity(LifecycleEvent), DataClassification::SystemMetadata,
257
- TelemetryScope::ExtensionPublisher, CustomDimensions);
258
- end;
259
-
260
- // Example 8: Extension configuration tracking
261
- procedure LogExtensionConfiguration(ConfigurationArea: Text; ConfigurationChange: Text; ConfigurationData: Dictionary of [Text, Text])
262
- var
263
- CustomDimensions: Dictionary of [Text, Text];
264
- ModuleInfo: ModuleInfo;
265
- begin
266
- NavApp.GetCurrentModuleInfo(ModuleInfo);
267
-
268
- CustomDimensions.Add('ExtensionId', Format(ModuleInfo.Id));
269
- CustomDimensions.Add('ConfigurationArea', ConfigurationArea);
270
- CustomDimensions.Add('ConfigurationChange', ConfigurationChange);
271
- CustomDimensions.Add('EventType', 'ExtensionConfiguration');
272
- CustomDimensions.Add('UserID', UserId());
273
- CustomDimensions.Add('ConfigurationTime', Format(CurrentDateTime, 0, 9));
274
-
275
- AddConfigurationDataToDimensions(CustomDimensions, ConfigurationData);
276
-
277
- Session.LogMessage('EXTCONF_' + ConfigurationArea,
278
- StrSubstNo('Extension configuration: %1 - %2', ConfigurationArea, ConfigurationChange),
279
- Verbosity::Normal, DataClassification::SystemMetadata,
280
- TelemetryScope::ExtensionPublisher, CustomDimensions);
281
- end;
282
-
283
- // Example 9: Multi-tenant extension isolation
284
- procedure LogTenantSpecificEvent(EventName: Text; TenantContext: Text; EventData: Dictionary of [Text, Text])
285
- var
286
- CustomDimensions: Dictionary of [Text, Text];
287
- ModuleInfo: ModuleInfo;
288
- begin
289
- NavApp.GetCurrentModuleInfo(ModuleInfo);
290
-
291
- CustomDimensions.Add('ExtensionId', Format(ModuleInfo.Id));
292
- CustomDimensions.Add('TenantId', TenantId());
293
- CustomDimensions.Add('CompanyName', CompanyName());
294
- CustomDimensions.Add('TenantContext', TenantContext);
295
- CustomDimensions.Add('EventName', EventName);
296
- CustomDimensions.Add('EventType', 'TenantSpecificEvent');
297
-
298
- AddTenantEventDataToDimensions(CustomDimensions, EventData);
299
-
300
- Session.LogMessage('EXTTENANT_' + EventName,
301
- StrSubstNo('Tenant-specific extension event: %1 (Tenant: %2)', EventName, TenantId()),
302
- Verbosity::Normal, DataClassification::SystemMetadata,
303
- TelemetryScope::ExtensionPublisher, CustomDimensions);
304
- end;
305
-
306
- local procedure GetLifecycleVerbosity(LifecycleEvent: Text): Verbosity
307
- begin
308
- case LifecycleEvent of
309
- 'Install', 'Uninstall', 'Upgrade':
310
- exit(Verbosity::Critical); // Important lifecycle events
311
- 'Configuration', 'FeatureEnabled':
312
- exit(Verbosity::Warning);
313
- 'Startup', 'Shutdown':
314
- exit(Verbosity::Normal);
315
- else
316
- exit(Verbosity::Verbose);
317
- end;
318
- end;
319
-
320
- local procedure AddEventContextToDimensions(var CustomDimensions: Dictionary of [Text, Text]; EventContext: Dictionary of [Text, Text])
321
- var
322
- Key: Text;
323
- begin
324
- foreach Key in EventContext.Keys do
325
- CustomDimensions.Add('Context_' + Key, EventContext.Get(Key));
326
- end;
327
-
328
- local procedure AddConfigurationDataToDimensions(var CustomDimensions: Dictionary of [Text, Text]; ConfigurationData: Dictionary of [Text, Text])
329
- var
330
- Key: Text;
331
- begin
332
- foreach Key in ConfigurationData.Keys do
333
- CustomDimensions.Add('Config_' + Key, ConfigurationData.Get(Key));
334
- end;
335
-
336
- local procedure AddTenantEventDataToDimensions(var CustomDimensions: Dictionary of [Text, Text]; EventData: Dictionary of [Text, Text])
337
- var
338
- Key: Text;
339
- begin
340
- foreach Key in EventData.Keys do
341
- CustomDimensions.Add('TenantData_' + Key, EventData.Get(Key));
342
- end;
343
- }
344
- ```
@@ -1,137 +0,0 @@
1
- # BC Session LogMessage API Usage Patterns - AL Code Samples
2
-
3
- ## Basic LogMessage Implementation
4
- ```al
5
- codeunit 50100 "Telemetry Logger Examples"
6
- {
7
- // Example 1: Basic information logging
8
- procedure LogBasicInformation()
9
- var
10
- CustomDimensions: Dictionary of [Text, Text];
11
- begin
12
- CustomDimensions.Add('Operation', 'CustomerCreation');
13
- CustomDimensions.Add('UserID', UserId());
14
-
15
- Session.LogMessage('0001', 'Customer creation initiated', Verbosity::Normal,
16
- DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, CustomDimensions);
17
- end;
18
-
19
- // Example 2: Error logging with context
20
- procedure LogErrorWithContext(ErrorMessage: Text; SourceTable: Text; RecordID: Text)
21
- var
22
- CustomDimensions: Dictionary of [Text, Text];
23
- begin
24
- CustomDimensions.Add('ErrorSource', 'DataValidation');
25
- CustomDimensions.Add('TableName', SourceTable);
26
- CustomDimensions.Add('RecordID', RecordID);
27
- CustomDimensions.Add('CompanyName', CompanyName());
28
-
29
- Session.LogMessage('0002', ErrorMessage, Verbosity::Error,
30
- DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, CustomDimensions);
31
- end;
32
-
33
- // Example 3: Performance timing logging
34
- procedure LogPerformanceMetrics(OperationName: Text; DurationMs: Integer; RecordCount: Integer)
35
- var
36
- CustomDimensions: Dictionary of [Text, Text];
37
- begin
38
- CustomDimensions.Add('Operation', OperationName);
39
- CustomDimensions.Add('DurationMs', Format(DurationMs));
40
- CustomDimensions.Add('RecordCount', Format(RecordCount));
41
- CustomDimensions.Add('Category', 'Performance');
42
-
43
- Session.LogMessage('0003', 'Performance metric captured', Verbosity::Normal,
44
- DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, CustomDimensions);
45
- end;
46
- }
47
- ```
48
-
49
- ## Advanced LogMessage Patterns
50
- ```al
51
- codeunit 50101 "Advanced Telemetry Patterns"
52
- {
53
- // Example 4: Transaction-aware logging
54
- procedure LogTransactionOperation(TransactionID: Text; OperationType: Text; Status: Text)
55
- var
56
- CustomDimensions: Dictionary of [Text, Text];
57
- begin
58
- CustomDimensions.Add('TransactionID', TransactionID);
59
- CustomDimensions.Add('OperationType', OperationType);
60
- CustomDimensions.Add('Status', Status);
61
- CustomDimensions.Add('Timestamp', Format(CurrentDateTime, 0, '<Year4>-<Month,2>-<Day,2>T<Hours24>:<Minutes,2>:<Seconds,2>'));
62
-
63
- Session.LogMessage('0004', StrSubstNo('Transaction %1 %2: %3', OperationType, TransactionID, Status),
64
- Verbosity::Normal, DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, CustomDimensions);
65
- end;
66
-
67
- // Example 5: Conditional verbose logging
68
- procedure LogDetailedOperation(OperationDetails: Text; IsVerbose: Boolean)
69
- var
70
- CustomDimensions: Dictionary of [Text, Text];
71
- LogVerbosity: Verbosity;
72
- begin
73
- CustomDimensions.Add('DetailLevel', 'Extended');
74
- CustomDimensions.Add('Source', 'BusinessLogic');
75
-
76
- if IsVerbose then
77
- LogVerbosity := Verbosity::Verbose
78
- else
79
- LogVerbosity := Verbosity::Normal;
80
-
81
- Session.LogMessage('0005', OperationDetails, LogVerbosity,
82
- DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, CustomDimensions);
83
- end;
84
-
85
- // Example 6: Structured logging with multiple dimensions
86
- procedure LogStructuredEvent(EventName: Text; EventData: Dictionary of [Text, Text])
87
- var
88
- CustomDimensions: Dictionary of [Text, Text];
89
- DataKey: Text;
90
- begin
91
- CustomDimensions.Add('EventName', EventName);
92
- CustomDimensions.Add('EventID', CreateGuid());
93
-
94
- // Merge additional event data into custom dimensions
95
- foreach DataKey in EventData.Keys do
96
- CustomDimensions.Add('Data_' + DataKey, EventData.Get(DataKey));
97
-
98
- Session.LogMessage('0006', StrSubstNo('Structured event: %1', EventName), Verbosity::Normal,
99
- DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, CustomDimensions);
100
- end;
101
- }
102
- ```
103
-
104
- ## Integration with BC Events
105
- ```al
106
- codeunit 50102 "Event-Driven Telemetry"
107
- {
108
- // Example 7: Document posting telemetry
109
- [EventSubscriber(ObjectType::Codeunit, Codeunit::"Sales-Post", 'OnAfterPostSalesDoc', '', false, false)]
110
- local procedure OnAfterPostSalesDoc(var SalesHeader: Record "Sales Header"; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line"; SalesShptHdrNo: Code[20])
111
- var
112
- CustomDimensions: Dictionary of [Text, Text];
113
- begin
114
- CustomDimensions.Add('DocumentType', Format(SalesHeader."Document Type"));
115
- CustomDimensions.Add('DocumentNo', SalesHeader."No.");
116
- CustomDimensions.Add('CustomerNo', SalesHeader."Sell-to Customer No.");
117
- CustomDimensions.Add('Amount', Format(SalesHeader."Amount Including VAT"));
118
-
119
- Session.LogMessage('0007', 'Sales document posted successfully', Verbosity::Normal,
120
- DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, CustomDimensions);
121
- end;
122
-
123
- // Example 8: Error event telemetry
124
- [EventSubscriber(ObjectType::Codeunit, Codeunit::"Sales-Post", 'OnBeforePostSalesDoc', '', false, false)]
125
- local procedure OnBeforePostSalesDoc(var SalesHeader: Record "Sales Header")
126
- var
127
- CustomDimensions: Dictionary of [Text, Text];
128
- begin
129
- CustomDimensions.Add('DocumentType', Format(SalesHeader."Document Type"));
130
- CustomDimensions.Add('DocumentNo', SalesHeader."No.");
131
- CustomDimensions.Add('ValidationStage', 'PrePosting');
132
-
133
- Session.LogMessage('0008', 'Sales document posting initiated', Verbosity::Verbose,
134
- DataClassification::SystemMetadata, TelemetryScope::ExtensionPublisher, CustomDimensions);
135
- end;
136
- }
137
- ```