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,385 +0,0 @@
1
- # Case Statement Multiple Conditions and Ranges - Code Samples
2
-
3
- ## Multiple Value Conditions
4
-
5
- ```al
6
- codeunit 50102 "Case Multiple Conditions"
7
- {
8
- // Example 1: Multiple discrete values for same action
9
- procedure GetBusinessHoursMessage(DayOfWeek: Integer; Hour: Integer): Text
10
- begin
11
- case DayOfWeek of
12
- 1, 2, 3, 4, 5: // Monday through Friday
13
- case Hour of
14
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 17: // 8 AM to 5 PM
15
- exit('We are open - business hours');
16
- 18, 19: // 6 PM to 7 PM
17
- exit('Extended hours - limited service');
18
- else
19
- exit('We are closed - business day but outside hours');
20
- end;
21
- 6: // Saturday
22
- case Hour of
23
- 9, 10, 11, 12, 13: // 9 AM to 1 PM
24
- exit('Saturday hours - limited service');
25
- else
26
- exit('We are closed - Saturday outside hours');
27
- end;
28
- 7: // Sunday
29
- exit('We are closed - Sunday');
30
- end;
31
- end;
32
-
33
- // Example 2: Multiple country codes for regional processing
34
- procedure GetRegionalTaxRate(CountryCode: Code[10]): Decimal
35
- begin
36
- case CountryCode of
37
- 'US', 'CA', 'MX': // North America
38
- exit(CalculateNorthAmericaTax());
39
- 'GB', 'FR', 'DE', 'IT', 'ES', 'NL', 'BE': // Western Europe
40
- exit(CalculateEUTax());
41
- 'JP', 'CN', 'KR', 'SG', 'AU': // Asia Pacific
42
- exit(CalculateAsiaPacificTax());
43
- 'BR', 'AR', 'CL', 'CO': // South America
44
- exit(CalculateSouthAmericaTax());
45
- else
46
- exit(CalculateDefaultTax());
47
- end;
48
- end;
49
-
50
- // Example 3: Multiple product categories with shared logic
51
- procedure ApplyCategoryDiscount(ItemCategoryCode: Code[20]): Decimal
52
- var
53
- DiscountPercent: Decimal;
54
- begin
55
- case ItemCategoryCode of
56
- 'ELECTRONICS', 'COMPUTERS', 'SOFTWARE':
57
- DiscountPercent := 5.0; // Technology discount
58
- 'CLOTHING', 'SHOES', 'ACCESSORIES':
59
- DiscountPercent := 15.0; // Fashion discount
60
- 'BOOKS', 'EDUCATION', 'TRAINING':
61
- DiscountPercent := 10.0; // Educational discount
62
- 'FOOD', 'BEVERAGE', 'ORGANIC':
63
- DiscountPercent := 8.0; // Food & beverage discount
64
- else
65
- DiscountPercent := 0.0; // No category discount
66
- end;
67
- exit(DiscountPercent);
68
- end;
69
-
70
- local procedure CalculateNorthAmericaTax(): Decimal
71
- begin
72
- exit(7.5); // Example rate
73
- end;
74
-
75
- local procedure CalculateEUTax(): Decimal
76
- begin
77
- exit(20.0); // Example VAT rate
78
- end;
79
-
80
- local procedure CalculateAsiaPacificTax(): Decimal
81
- begin
82
- exit(10.0); // Example rate
83
- end;
84
-
85
- local procedure CalculateSouthAmericaTax(): Decimal
86
- begin
87
- exit(12.0); // Example rate
88
- end;
89
-
90
- local procedure CalculateDefaultTax(): Decimal
91
- begin
92
- exit(5.0); // Default rate
93
- end;
94
- }
95
- ```
96
-
97
- ## Range-Based Conditions
98
-
99
- ```al
100
- codeunit 50103 "Case Range Conditions"
101
- {
102
- // Example 1: Quantity-based pricing tiers
103
- procedure CalculateVolumeDiscount(Quantity: Decimal): Decimal
104
- var
105
- DiscountPercent: Decimal;
106
- begin
107
- case Quantity of
108
- 0:
109
- DiscountPercent := 0.0; // No discount for zero quantity
110
- 1..9:
111
- DiscountPercent := 0.0; // No volume discount
112
- 10..49:
113
- DiscountPercent := 5.0; // Small volume discount
114
- 50..99:
115
- DiscountPercent := 10.0; // Medium volume discount
116
- 100..499:
117
- DiscountPercent := 15.0; // Large volume discount
118
- 500..999:
119
- DiscountPercent := 20.0; // Enterprise discount
120
- else
121
- DiscountPercent := 25.0; // Maximum discount for 1000+
122
- end;
123
- exit(DiscountPercent);
124
- end;
125
-
126
- // Example 2: Amount-based shipping calculations
127
- procedure CalculateShippingCost(OrderAmount: Decimal; Weight: Decimal): Decimal
128
- var
129
- ShippingCost: Decimal;
130
- begin
131
- // First check order amount for free shipping
132
- case OrderAmount of
133
- 100..999.99:
134
- ShippingCost := CalculateWeightBasedShipping(Weight) * 0.5; // 50% discount
135
- 1000..9999.99:
136
- ShippingCost := 0; // Free shipping
137
- else
138
- ShippingCost := CalculateWeightBasedShipping(Weight); // Full rate
139
- end;
140
-
141
- exit(ShippingCost);
142
- end;
143
-
144
- // Example 3: Date-based seasonal pricing
145
- procedure GetSeasonalMultiplier(OrderDate: Date): Decimal
146
- var
147
- Month: Integer;
148
- Multiplier: Decimal;
149
- begin
150
- Month := Date2DMY(OrderDate, 2); // Extract month
151
-
152
- case Month of
153
- 12, 1, 2: // Winter months
154
- Multiplier := 1.1; // 10% winter surcharge
155
- 3, 4, 5: // Spring months
156
- Multiplier := 1.0; // Standard pricing
157
- 6, 7, 8: // Summer months
158
- Multiplier := 1.15; // 15% peak season surcharge
159
- 9, 10, 11: // Fall months
160
- Multiplier := 0.95; // 5% off-season discount
161
- end;
162
-
163
- exit(Multiplier);
164
- end;
165
-
166
- // Example 4: Age-based service categories
167
- procedure DetermineServiceLevel(CustomerAge: Integer): Text
168
- begin
169
- case CustomerAge of
170
- 0..17:
171
- exit('Youth Service - Parental approval required');
172
- 18..24:
173
- exit('Student Service - Education discounts available');
174
- 25..54:
175
- exit('Standard Service - Full access');
176
- 55..64:
177
- exit('Pre-Senior Service - Early retirement benefits');
178
- 65..150:
179
- exit('Senior Service - Senior citizen discounts');
180
- else
181
- exit('Invalid Age - Please verify information');
182
- end;
183
- end;
184
-
185
- // Example 5: Complex range conditions with business logic
186
- procedure AssignSalesTerritory(PostalCode: Code[10]): Code[20]
187
- var
188
- NumericCode: Integer;
189
- begin
190
- // Convert postal code to numeric for range evaluation
191
- if Evaluate(NumericCode, CopyStr(PostalCode, 1, 5)) then
192
- case NumericCode of
193
- 00001..09999:
194
- exit('NORTHEAST');
195
- 10000..19999:
196
- exit('MID_ATLANTIC');
197
- 20000..29999:
198
- exit('SOUTHEAST');
199
- 30000..39999:
200
- exit('SOUTH_CENTRAL');
201
- 40000..49999:
202
- exit('MIDWEST');
203
- 50000..59999:
204
- exit('MOUNTAIN_WEST');
205
- 60000..79999:
206
- exit('SOUTHWEST');
207
- 80000..99999:
208
- exit('WEST_COAST');
209
- else
210
- exit('INTERNATIONAL');
211
- end
212
- else
213
- exit('UNKNOWN'); // Non-numeric postal codes
214
- end;
215
-
216
- local procedure CalculateWeightBasedShipping(Weight: Decimal): Decimal
217
- begin
218
- case Weight of
219
- 0..1:
220
- exit(5.99);
221
- 1.01..5:
222
- exit(9.99);
223
- 5.01..10:
224
- exit(14.99);
225
- 10.01..25:
226
- exit(19.99);
227
- else
228
- exit(29.99);
229
- end;
230
- end;
231
- }
232
- ```
233
-
234
- ## Advanced Multiple Condition Patterns
235
-
236
- ```al
237
- codeunit 50104 "Advanced Case Patterns"
238
- {
239
- // Example 1: Combining multiple conditions with calculated values
240
- procedure DetermineCustomerRisk(CreditLimit: Decimal; DaysOverdue: Integer; PaymentHistory: Text): Text
241
- var
242
- RiskScore: Integer;
243
- begin
244
- // Calculate composite risk score
245
- RiskScore := 0;
246
-
247
- case CreditLimit of
248
- 0..999:
249
- RiskScore += 3; // High risk - low credit limit
250
- 1000..4999:
251
- RiskScore += 2; // Medium risk
252
- 5000..19999:
253
- RiskScore += 1; // Low risk
254
- else
255
- RiskScore += 0; // Lowest risk - high credit limit
256
- end;
257
-
258
- case DaysOverdue of
259
- 0:
260
- RiskScore += 0; // No overdue amount
261
- 1..30:
262
- RiskScore += 1; // Slightly overdue
263
- 31..60:
264
- RiskScore += 2; // Moderately overdue
265
- 61..90:
266
- RiskScore += 3; // Seriously overdue
267
- else
268
- RiskScore += 4; // Severely overdue
269
- end;
270
-
271
- case PaymentHistory of
272
- 'EXCELLENT', 'GOOD':
273
- RiskScore -= 1; // Reduce risk for good history
274
- 'POOR', 'TERRIBLE':
275
- RiskScore += 2; // Increase risk for poor history
276
- end;
277
-
278
- // Final risk assessment based on composite score
279
- case RiskScore of
280
- 0..2:
281
- exit('LOW_RISK');
282
- 3..4:
283
- exit('MEDIUM_RISK');
284
- 5..7:
285
- exit('HIGH_RISK');
286
- else
287
- exit('EXTREME_RISK');
288
- end;
289
- end;
290
-
291
- // Example 2: Multiple condition matching with enum combinations
292
- procedure GetApprovalWorkflow(Amount: Decimal; Department: Option Finance,Sales,Operations,IT): Code[20]
293
- var
294
- AmountTier: Integer;
295
- WorkflowCode: Code[20];
296
- begin
297
- // Determine amount tier
298
- case Amount of
299
- 0..999.99:
300
- AmountTier := 1;
301
- 1000..4999.99:
302
- AmountTier := 2;
303
- 5000..24999.99:
304
- AmountTier := 3;
305
- else
306
- AmountTier := 4;
307
- end;
308
-
309
- // Determine workflow based on department and amount tier
310
- case Department of
311
- Department::Finance:
312
- case AmountTier of
313
- 1: WorkflowCode := 'FIN_STANDARD';
314
- 2: WorkflowCode := 'FIN_MANAGER';
315
- 3: WorkflowCode := 'FIN_DIRECTOR';
316
- 4: WorkflowCode := 'FIN_CFO';
317
- end;
318
- Department::Sales:
319
- case AmountTier of
320
- 1, 2: WorkflowCode := 'SALES_STANDARD';
321
- 3: WorkflowCode := 'SALES_MANAGER';
322
- 4: WorkflowCode := 'SALES_VP';
323
- end;
324
- Department::Operations:
325
- case AmountTier of
326
- 1: WorkflowCode := 'OPS_AUTO';
327
- 2, 3: WorkflowCode := 'OPS_MANAGER';
328
- 4: WorkflowCode := 'OPS_DIRECTOR';
329
- end;
330
- Department::IT:
331
- case AmountTier of
332
- 1, 2: WorkflowCode := 'IT_STANDARD';
333
- 3, 4: WorkflowCode := 'IT_DIRECTOR';
334
- end;
335
- end;
336
-
337
- exit(WorkflowCode);
338
- end;
339
-
340
- // Example 3: Dynamic range calculations
341
- procedure CalculateDynamicPricing(BasePrice: Decimal; CustomerType: Code[10]; OrderDate: Date): Decimal
342
- var
343
- PriceMultiplier: Decimal;
344
- DaysFromToday: Integer;
345
- FinalPrice: Decimal;
346
- begin
347
- PriceMultiplier := 1.0; // Start with base multiplier
348
- DaysFromToday := OrderDate - Today;
349
-
350
- // Customer type adjustments
351
- case CustomerType of
352
- 'GOLD', 'PLATINUM':
353
- PriceMultiplier *= 0.85; // 15% discount
354
- 'SILVER', 'PREFERRED':
355
- PriceMultiplier *= 0.90; // 10% discount
356
- 'BRONZE', 'STANDARD':
357
- PriceMultiplier *= 1.0; // No discount
358
- 'NEW', 'TRIAL':
359
- PriceMultiplier *= 1.05; // 5% markup
360
- else
361
- PriceMultiplier *= 1.10; // 10% markup for unknown types
362
- end;
363
-
364
- // Delivery date adjustments
365
- case DaysFromToday of
366
- -999..-1: // Rush orders (past due)
367
- PriceMultiplier *= 1.25; // 25% rush charge
368
- 0..7: // Within a week
369
- PriceMultiplier *= 1.10; // 10% expedite charge
370
- 8..30: // Standard delivery
371
- PriceMultiplier *= 1.0; // No adjustment
372
- 31..90: // Future delivery
373
- PriceMultiplier *= 0.95; // 5% discount for advance orders
374
- else // Very far future
375
- PriceMultiplier *= 0.90; // 10% discount for long advance orders
376
- end;
377
-
378
- FinalPrice := BasePrice * PriceMultiplier;
379
- exit(FinalPrice);
380
- end;
381
- }
382
- ```
383
-
384
- Related atomic topic: Case Statement Multiple Conditions and Ranges
385
- Knowledge reference: al-fundamentals-index.json#case-statements-advanced
@@ -1,72 +0,0 @@
1
- # Case Statement Syntax Structure Examples
2
-
3
- ## Basic Case Statement
4
- ```al
5
- procedure ProcessDocumentType(DocumentType: Enum "Document Type")
6
- begin
7
- case DocumentType of
8
- DocumentType::Quote:
9
- ProcessQuote();
10
- DocumentType::Order:
11
- ProcessOrder();
12
- DocumentType::"Credit Memo":
13
- ProcessCreditMemo();
14
- else
15
- Error('Unsupported document type: %1', DocumentType);
16
- end;
17
- end;
18
- ```
19
-
20
- ## Case with Multiple Values
21
- ```al
22
- procedure GetDocumentStatus(Status: Integer): Text
23
- begin
24
- case Status of
25
- 1, 2, 3:
26
- exit('Draft');
27
- 4, 5:
28
- exit('Pending Approval');
29
- 6:
30
- exit('Approved');
31
- else
32
- exit('Unknown');
33
- end;
34
- end;
35
- ```
36
-
37
- ## Case with Ranges
38
- ```al
39
- procedure CategorizeAmount(Amount: Decimal): Text
40
- begin
41
- case true of
42
- (Amount >= 0) and (Amount <= 1000):
43
- exit('Small');
44
- (Amount > 1000) and (Amount <= 10000):
45
- exit('Medium');
46
- Amount > 10000:
47
- exit('Large');
48
- else
49
- exit('Invalid');
50
- end;
51
- end;
52
- ```
53
-
54
- ## Complex Case Logic
55
- ```al
56
- procedure HandleInventoryPosting(ItemType: Enum "Item Type"; LocationCode: Code[10])
57
- begin
58
- case ItemType of
59
- ItemType::Inventory:
60
- begin
61
- if LocationCode <> '' then
62
- PostToLocation(LocationCode)
63
- else
64
- PostToDefaultLocation();
65
- end;
66
- ItemType::Service:
67
- PostServiceItem();
68
- ItemType::"Non-Inventory":
69
- LogNonInventoryTransaction();
70
- end;
71
- end;
72
- ```
@@ -1,48 +0,0 @@
1
- # FieldError Syntax Usage Examples
2
-
3
- ## Basic FieldError Usage
4
- ```al
5
- trigger OnValidate()
6
- begin
7
- if Quantity <= 0 then
8
- FieldError(Quantity, 'Quantity must be greater than zero.');
9
- end;
10
- ```
11
-
12
- ## FieldError with Business Context
13
- ```al
14
- trigger OnValidate()
15
- begin
16
- if ("Starting Date" > "Ending Date") and ("Ending Date" <> 0D) then
17
- FieldError("Starting Date", 'Starting date cannot be later than ending date.');
18
- end;
19
- ```
20
-
21
- ## FieldError in Complex Validation
22
- ```al
23
- procedure ValidateInventoryPosting()
24
- var
25
- Location: Record Location;
26
- begin
27
- if "Location Code" <> '' then begin
28
- if not Location.Get("Location Code") then
29
- FieldError("Location Code", 'Location does not exist.');
30
-
31
- if not Location."Require Shipment" and ("Bin Code" = '') then
32
- FieldError("Bin Code", 'Bin code is required for this location.');
33
- end;
34
- end;
35
- ```
36
-
37
- ## FieldError with User Guidance
38
- ```al
39
- trigger OnValidate()
40
- begin
41
- Customer.SetRange("No.", "Customer No.");
42
- if not Customer.FindFirst() then
43
- FieldError("Customer No.", 'Customer not found. Please select a valid customer from the lookup.');
44
-
45
- if Customer.Blocked <> Customer.Blocked::" " then
46
- FieldError("Customer No.", StrSubstNo('Customer %1 is blocked for %2.', Customer."No.", Customer.Blocked));
47
- end;
48
- ```
@@ -1,49 +0,0 @@
1
- # TestField Basic Syntax Examples
2
-
3
- ## Simple Field Validation
4
- ```al
5
- procedure ValidateCustomerData()
6
- var
7
- Customer: Record Customer;
8
- begin
9
- Customer.TestField("No.");
10
- Customer.TestField(Name);
11
- Customer.TestField("Customer Posting Group");
12
- end;
13
- ```
14
-
15
- ## Field Value Validation
16
- ```al
17
- procedure ValidateItemType()
18
- var
19
- Item: Record Item;
20
- begin
21
- Item.TestField(Type, Item.Type::Inventory);
22
- Item.TestField("Inventory Posting Group");
23
- end;
24
- ```
25
-
26
- ## Multiple Field Validation
27
- ```al
28
- procedure ValidateVendorSetup()
29
- var
30
- Vendor: Record Vendor;
31
- begin
32
- Vendor.TestField("No.");
33
- Vendor.TestField(Name);
34
- Vendor.TestField("Vendor Posting Group");
35
- Vendor.TestField("Payment Terms Code");
36
- end;
37
- ```
38
-
39
- ## Conditional Field Validation
40
- ```al
41
- procedure ValidateCustomerBalance()
42
- var
43
- Customer: Record Customer;
44
- begin
45
- Customer.CalcFields(Balance);
46
- if Customer."Credit Limit (LCY)" > 0 then
47
- Customer.TestField(Balance);
48
- end;
49
- ```
@@ -1,67 +0,0 @@
1
- ---
2
- title: "TestField Basic Syntax and Usage"
3
- domain: "maya-mentor"
4
- difficulty: "beginner"
5
- bc_versions: "14+"
6
- tags: ["validation", "fields", "error-handling", "data-integrity"]
7
- prerequisites: ["record-variables", "field-access"]
8
- samples: "samples/testfield-basic-syntax.md"
9
- ---
10
- # TestField Basic Syntax and Usage
11
-
12
- ## Overview
13
-
14
- TestField validates that a field contains a value before proceeding with business logic. It throws an error if the field is empty, preventing operations that require valid data. Essential for data integrity in BC applications.
15
-
16
- **Core Pattern**: `Record.FieldName.TestField()` - Validates field has value, throws error if empty.
17
-
18
- ## Basic Syntax Forms
19
-
20
- ### Simple Value Validation
21
- TestField validates that a field contains a non-empty value. Called on any field variable, it checks for empty strings, zero dates, or zero numeric values.
22
-
23
- ### Expected Value Validation
24
- TestField can validate against specific expected values. Pass the expected value as a parameter to verify the field matches exactly.
25
-
26
- ### Variable-Based Expected Values
27
- Expected values can be stored in variables before TestField validation, enabling dynamic validation scenarios.
28
-
29
- ## Field Type Considerations
30
-
31
- ### Text and Code Fields
32
- Text fields test for non-empty strings. Empty string ('') triggers validation error.
33
-
34
- ### Option Fields
35
- Option fields test against specific option values. Commonly used to verify workflow states.
36
-
37
- ### Boolean Fields
38
- Boolean fields can be tested for specific true/false values to enforce business rules.
39
-
40
- ### Date and DateTime Fields
41
- Date fields test for non-zero dates. 0D (undefined date) triggers validation error.
42
-
43
- ### Decimal and Integer Fields
44
- Numeric fields test for non-zero values. Zero values trigger validation error.
45
-
46
- ## Common Usage Patterns
47
-
48
- ### Mandatory Field Validation
49
- Group related TestField validations to ensure all required fields contain data before processing. Essential for maintaining data integrity in business processes.
50
-
51
- ### Status Verification
52
- Use TestField with specific option values to verify records are in expected workflow states before proceeding with operations.
53
-
54
- ### Precondition Checks
55
- Validate all prerequisite field data exists before executing complex business logic. Prevents processing failures and maintains consistent data state.
56
-
57
- ## Best Practices
58
-
59
- ### Field Validation Timing
60
- Call TestField early in procedures before complex processing begins. This fails fast and provides clear error context.
61
-
62
- ### Logical Grouping
63
- Group related TestField calls together for related validations. This creates clear validation blocks.
64
-
65
- ### User Experience
66
- TestField provides system-generated error messages. For better UX, consider custom error handling for complex business rules.
67
-