bc-code-intelligence-mcp 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +107 -0
- package/dist/cache/cache-manager.d.ts +95 -0
- package/dist/cache/cache-manager.d.ts.map +1 -0
- package/dist/cache/cache-manager.js +328 -0
- package/dist/cache/cache-manager.js.map +1 -0
- package/dist/cli/bc-code-intel-cli.d.ts +9 -0
- package/dist/cli/bc-code-intel-cli.d.ts.map +1 -0
- package/dist/cli/bc-code-intel-cli.js +441 -0
- package/dist/cli/bc-code-intel-cli.js.map +1 -0
- package/dist/config/config-loader.d.ts +21 -0
- package/dist/config/config-loader.d.ts.map +1 -0
- package/dist/config/config-loader.js +402 -0
- package/dist/config/config-loader.js.map +1 -0
- package/dist/config/config-validator.d.ts +84 -0
- package/dist/config/config-validator.d.ts.map +1 -0
- package/dist/config/config-validator.js +604 -0
- package/dist/config/config-validator.js.map +1 -0
- package/dist/config/test-config-loader.d.ts +10 -0
- package/dist/config/test-config-loader.d.ts.map +1 -0
- package/dist/config/test-config-loader.js +135 -0
- package/dist/config/test-config-loader.js.map +1 -0
- package/dist/config/test-enhanced-layer-service.d.ts +7 -0
- package/dist/config/test-enhanced-layer-service.d.ts.map +1 -0
- package/dist/config/test-enhanced-layer-service.js +104 -0
- package/dist/config/test-enhanced-layer-service.js.map +1 -0
- package/dist/config/test-git-layer.d.ts +7 -0
- package/dist/config/test-git-layer.d.ts.map +1 -0
- package/dist/config/test-git-layer.js +68 -0
- package/dist/config/test-git-layer.js.map +1 -0
- package/dist/dev/hot-reload.d.ts +91 -0
- package/dist/dev/hot-reload.d.ts.map +1 -0
- package/dist/dev/hot-reload.js +358 -0
- package/dist/dev/hot-reload.js.map +1 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +673 -0
- package/dist/index.js.map +1 -0
- package/dist/layers/base-layer.d.ts +83 -0
- package/dist/layers/base-layer.d.ts.map +1 -0
- package/dist/layers/base-layer.js +166 -0
- package/dist/layers/base-layer.js.map +1 -0
- package/dist/layers/embedded-layer.d.ts +53 -0
- package/dist/layers/embedded-layer.d.ts.map +1 -0
- package/dist/layers/embedded-layer.js +238 -0
- package/dist/layers/embedded-layer.js.map +1 -0
- package/dist/layers/git-layer.d.ts +54 -0
- package/dist/layers/git-layer.d.ts.map +1 -0
- package/dist/layers/git-layer.js +369 -0
- package/dist/layers/git-layer.js.map +1 -0
- package/dist/layers/index.d.ts +12 -0
- package/dist/layers/index.d.ts.map +1 -0
- package/dist/layers/index.js +11 -0
- package/dist/layers/index.js.map +1 -0
- package/dist/layers/layer-service.d.ts +129 -0
- package/dist/layers/layer-service.d.ts.map +1 -0
- package/dist/layers/layer-service.js +570 -0
- package/dist/layers/layer-service.js.map +1 -0
- package/dist/layers/project-layer.d.ts +50 -0
- package/dist/layers/project-layer.d.ts.map +1 -0
- package/dist/layers/project-layer.js +256 -0
- package/dist/layers/project-layer.js.map +1 -0
- package/dist/monitoring/production-monitor.d.ts +148 -0
- package/dist/monitoring/production-monitor.d.ts.map +1 -0
- package/dist/monitoring/production-monitor.js +463 -0
- package/dist/monitoring/production-monitor.js.map +1 -0
- package/dist/performance/performance-monitor.d.ts +99 -0
- package/dist/performance/performance-monitor.d.ts.map +1 -0
- package/dist/performance/performance-monitor.js +253 -0
- package/dist/performance/performance-monitor.js.map +1 -0
- package/dist/sdk/bc-code-intel-client.d.ts +175 -0
- package/dist/sdk/bc-code-intel-client.d.ts.map +1 -0
- package/dist/sdk/bc-code-intel-client.js +380 -0
- package/dist/sdk/bc-code-intel-client.js.map +1 -0
- package/dist/search/intelligent-search.d.ts +97 -0
- package/dist/search/intelligent-search.d.ts.map +1 -0
- package/dist/search/intelligent-search.js +355 -0
- package/dist/search/intelligent-search.js.map +1 -0
- package/dist/security/access-control.d.ts +110 -0
- package/dist/security/access-control.d.ts.map +1 -0
- package/dist/security/access-control.js +353 -0
- package/dist/security/access-control.js.map +1 -0
- package/dist/services/code-analysis-service.d.ts +72 -0
- package/dist/services/code-analysis-service.d.ts.map +1 -0
- package/dist/services/code-analysis-service.js +811 -0
- package/dist/services/code-analysis-service.js.map +1 -0
- package/dist/services/knowledge-service.d.ts +91 -0
- package/dist/services/knowledge-service.d.ts.map +1 -0
- package/dist/services/knowledge-service.js +370 -0
- package/dist/services/knowledge-service.js.map +1 -0
- package/dist/services/methodology-service.d.ts +91 -0
- package/dist/services/methodology-service.d.ts.map +1 -0
- package/dist/services/methodology-service.js +408 -0
- package/dist/services/methodology-service.js.map +1 -0
- package/dist/services/workflow-service.d.ts +132 -0
- package/dist/services/workflow-service.d.ts.map +1 -0
- package/dist/services/workflow-service.js +277 -0
- package/dist/services/workflow-service.js.map +1 -0
- package/dist/setup/post-install.d.ts +12 -0
- package/dist/setup/post-install.d.ts.map +1 -0
- package/dist/setup/post-install.js +81 -0
- package/dist/setup/post-install.js.map +1 -0
- package/dist/streamlined-handlers.d.ts +51 -0
- package/dist/streamlined-handlers.d.ts.map +1 -0
- package/dist/streamlined-handlers.js +287 -0
- package/dist/streamlined-handlers.js.map +1 -0
- package/dist/streamlined-tools.d.ts +316 -0
- package/dist/streamlined-tools.d.ts.map +1 -0
- package/dist/streamlined-tools.js +189 -0
- package/dist/streamlined-tools.js.map +1 -0
- package/dist/test-enhanced-mcp-server.d.ts +7 -0
- package/dist/test-enhanced-mcp-server.d.ts.map +1 -0
- package/dist/test-enhanced-mcp-server.js +177 -0
- package/dist/test-enhanced-mcp-server.js.map +1 -0
- package/dist/types/bc-knowledge.d.ts +294 -0
- package/dist/types/bc-knowledge.d.ts.map +1 -0
- package/dist/types/bc-knowledge.js +44 -0
- package/dist/types/bc-knowledge.js.map +1 -0
- package/dist/types/config-types.d.ts +180 -0
- package/dist/types/config-types.d.ts.map +1 -0
- package/dist/types/config-types.js +104 -0
- package/dist/types/config-types.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/layer-types.d.ts +171 -0
- package/dist/types/layer-types.d.ts.map +1 -0
- package/dist/types/layer-types.js +27 -0
- package/dist/types/layer-types.js.map +1 -0
- package/dist/types/persona-types.d.ts +77 -0
- package/dist/types/persona-types.d.ts.map +1 -0
- package/dist/types/persona-types.js +341 -0
- package/dist/types/persona-types.js.map +1 -0
- package/dist/utils/path-utils.d.ts +5 -0
- package/dist/utils/path-utils.d.ts.map +1 -0
- package/dist/utils/path-utils.js +14 -0
- package/dist/utils/path-utils.js.map +1 -0
- package/dist/workflows/domain-workflows.d.ts +8 -0
- package/dist/workflows/domain-workflows.d.ts.map +1 -0
- package/dist/workflows/domain-workflows.js +360 -0
- package/dist/workflows/domain-workflows.js.map +1 -0
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/bug-report.md +24 -0
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/content-improvement.md +24 -0
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/knowledge-request.md +30 -0
- package/embedded-knowledge/AGENTS.md +69 -0
- package/embedded-knowledge/CONTRIBUTING.md +58 -0
- package/embedded-knowledge/LICENSE +21 -0
- package/embedded-knowledge/README.md +15 -0
- package/embedded-knowledge/domains/alex-architect/api-delegate-operation-pattern.md +90 -0
- package/embedded-knowledge/domains/alex-architect/api-fieldset-registration-pattern.md +113 -0
- package/embedded-knowledge/domains/alex-architect/api-interface-design-patterns.md +101 -0
- package/embedded-knowledge/domains/alex-architect/api-page-development-patterns.md +87 -0
- package/embedded-knowledge/domains/alex-architect/complex-facade-patterns.md +155 -0
- package/embedded-knowledge/domains/alex-architect/facade-pattern-al-implementation.md +138 -0
- package/embedded-knowledge/domains/alex-architect/facade-pattern-external-api.md +79 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-delegate-operation.md +280 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-fieldset-registration.md +200 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-interface-design.md +565 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-page-implementation.md +665 -0
- package/embedded-knowledge/domains/alex-architect/samples/complex-facade-patterns.md +325 -0
- package/embedded-knowledge/domains/alex-architect/samples/facade-pattern-al.md +696 -0
- package/embedded-knowledge/domains/alex-architect/samples/facade-pattern.md +320 -0
- package/embedded-knowledge/domains/alex-architect/samples/subscriber-organization.md +102 -0
- package/embedded-knowledge/domains/alex-architect/samples/systemid-integration.md +433 -0
- package/embedded-knowledge/domains/alex-architect/subscriber-codeunit-size-optimization.md +66 -0
- package/embedded-knowledge/domains/alex-architect/systemid-integration.md +115 -0
- package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +295 -0
- package/embedded-knowledge/domains/dean-debug/case-statement-performance-best-practices.md +86 -0
- package/embedded-knowledge/domains/dean-debug/compound-statements-debugging.md +96 -0
- package/embedded-knowledge/domains/dean-debug/custom-dimensions-best-practices.md +70 -0
- package/embedded-knowledge/domains/dean-debug/custom-telemetry-implementation.md +84 -0
- package/embedded-knowledge/domains/dean-debug/deleteall-performance-tradeoff.md +93 -0
- package/embedded-knowledge/domains/dean-debug/deleteall-sql-performance.md +73 -0
- package/embedded-knowledge/domains/dean-debug/extension-telemetry-isolation.md +78 -0
- package/embedded-knowledge/domains/dean-debug/maintainsiftindex-property-behavior.md +79 -0
- package/embedded-knowledge/domains/dean-debug/no-series-implementation-patterns.md +87 -0
- package/embedded-knowledge/domains/dean-debug/no-series-module-patterns-bc24.md +209 -0
- package/embedded-knowledge/domains/dean-debug/no-series-validation-module-bc24.md +246 -0
- package/embedded-knowledge/domains/dean-debug/no-series-validation-patterns.md +107 -0
- package/embedded-knowledge/domains/dean-debug/odata-query-optimization.md +105 -0
- package/embedded-knowledge/domains/dean-debug/samples/bc24-no-series-conversion.md +186 -0
- package/embedded-knowledge/domains/dean-debug/samples/case-performance-optimization.md +60 -0
- package/embedded-knowledge/domains/dean-debug/samples/compound-statements-debugging.md +139 -0
- package/embedded-knowledge/domains/dean-debug/samples/custom-dimensions.md +190 -0
- package/embedded-knowledge/domains/dean-debug/samples/custom-telemetry.md +516 -0
- package/embedded-knowledge/domains/dean-debug/samples/deleteall-performance.md +298 -0
- package/embedded-knowledge/domains/dean-debug/samples/error-correlation.md +324 -0
- package/embedded-knowledge/domains/dean-debug/samples/extension-isolation.md +344 -0
- package/embedded-knowledge/domains/dean-debug/samples/logmessage-methods.md +137 -0
- package/embedded-knowledge/domains/dean-debug/samples/maintainsiftindex-examples.md +340 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-implementation.md +810 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-module-bc24.md +86 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-validation-module-bc24.md +110 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-validation.md +758 -0
- package/embedded-knowledge/domains/dean-debug/samples/odata-query-optimization.md +665 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-case.md +316 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-filters.md +223 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-filter-exclusion.md +149 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-optimization.md +412 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-performance.md +211 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-primary-key.md +155 -0
- package/embedded-knowledge/domains/dean-debug/samples/sift-technology-fundamentals.md +475 -0
- package/embedded-knowledge/domains/dean-debug/samples/singleinstance-subscribers.md +238 -0
- package/embedded-knowledge/domains/dean-debug/samples/table-event-batching.md +97 -0
- package/embedded-knowledge/domains/dean-debug/samples/table-key-requirements.md +666 -0
- package/embedded-knowledge/domains/dean-debug/samples/telemetry-performance.md +319 -0
- package/embedded-knowledge/domains/dean-debug/samples/verbosity-strategy.md +236 -0
- package/embedded-knowledge/domains/dean-debug/session-logmessage-methods.md +59 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-filter-field-exclusion.md +67 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-performance-impact.md +70 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-performance-optimization.md +90 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-case-statements.md +87 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-filters.md +70 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-primary-key-optimization.md +74 -0
- package/embedded-knowledge/domains/dean-debug/sift-technology-fundamentals.md +81 -0
- package/embedded-knowledge/domains/dean-debug/subscriber-singleinstance-performance.md +56 -0
- package/embedded-knowledge/domains/dean-debug/table-event-batch-operation-impact.md +66 -0
- package/embedded-knowledge/domains/dean-debug/table-key-requirements.md +79 -0
- package/embedded-knowledge/domains/dean-debug/telemetry-error-correlation.md +78 -0
- package/embedded-knowledge/domains/dean-debug/telemetry-performance-considerations.md +83 -0
- package/embedded-knowledge/domains/dean-debug/telemetry-verbosity-strategy.md +76 -0
- package/embedded-knowledge/domains/dean-debug/testfield-performance.md +104 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-default-messages.md +145 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-message-construction.md +104 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-method-syntax.md +114 -0
- package/embedded-knowledge/domains/eva-errors/samples/fielderror-default-messages.md +356 -0
- package/embedded-knowledge/domains/eva-errors/samples/fielderror-syntax.md +256 -0
- package/embedded-knowledge/domains/eva-errors/samples/table-safety-validation-patterns.md +101 -0
- package/embedded-knowledge/domains/eva-errors/samples/testfield-error-handling.md +108 -0
- package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +80 -0
- package/embedded-knowledge/domains/jordan-bridge/al-event-subscriber-architecture.md +98 -0
- package/embedded-knowledge/domains/jordan-bridge/automatic-registration.md +123 -0
- package/embedded-knowledge/domains/jordan-bridge/business-process-template-patterns.md +96 -0
- package/embedded-knowledge/domains/jordan-bridge/error-response-patterns.md +115 -0
- package/embedded-knowledge/domains/jordan-bridge/etag-implementation.md +115 -0
- package/embedded-knowledge/domains/jordan-bridge/field-control-selection.md +114 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/al-event-subscriber-architecture.md +395 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/api-error-responses.md +479 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/api-field-control.md +548 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/api-url-naming.md +287 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/business-process-templates.md +434 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/etag-implementation.md +508 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/task-scheduler-pattern.md +615 -0
- package/embedded-knowledge/domains/jordan-bridge/task-scheduler-pattern-implementation.md +144 -0
- package/embedded-knowledge/domains/jordan-bridge/url-structure-naming-patterns.md +96 -0
- package/embedded-knowledge/domains/maya-mentor/case-multiple-conditions-ranges.md +124 -0
- package/embedded-knowledge/domains/maya-mentor/case-statement-syntax-structure.md +84 -0
- package/embedded-knowledge/domains/maya-mentor/fielderror-syntax-usage.md +75 -0
- package/embedded-knowledge/domains/maya-mentor/fielderror-vs-testfield.md +96 -0
- package/embedded-knowledge/domains/maya-mentor/samples/case-statement-multiple-conditions.md +385 -0
- package/embedded-knowledge/domains/maya-mentor/samples/case-statement-syntax-structure.md +72 -0
- package/embedded-knowledge/domains/maya-mentor/samples/fielderror-syntax-usage.md +48 -0
- package/embedded-knowledge/domains/maya-mentor/samples/testfield-basic-syntax.md +49 -0
- package/embedded-knowledge/domains/maya-mentor/testfield-basic-syntax.md +67 -0
- package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +119 -0
- package/embedded-knowledge/domains/quinn-tester/rule-execution.md +123 -0
- package/embedded-knowledge/domains/quinn-tester/samples/case-error-handling.md +64 -0
- package/embedded-knowledge/domains/quinn-tester/samples/fielderror-message-construction.md +60 -0
- package/embedded-knowledge/domains/quinn-tester/samples/fielderror-validation-patterns.md +83 -0
- package/embedded-knowledge/domains/quinn-tester/samples/rule-execution.md +716 -0
- package/embedded-knowledge/domains/quinn-tester/samples/table-safety-validation-patterns.md +101 -0
- package/embedded-knowledge/domains/quinn-tester/samples/temporary-table-operation-validation.md +91 -0
- package/embedded-knowledge/domains/quinn-tester/table-safety-validation-patterns.md +79 -0
- package/embedded-knowledge/domains/quinn-tester/temporary-table-operation-validation.md +79 -0
- package/embedded-knowledge/domains/roger-reviewer/al-begin-end-block-structure.md +89 -0
- package/embedded-knowledge/domains/roger-reviewer/al-binary-operator-spacing.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-blank-line-organization.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-case-action-formatting.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-code-spacing-conventions.md +81 -0
- package/embedded-knowledge/domains/roger-reviewer/al-comment-spacing-standards.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-end-else-pairing.md +75 -0
- package/embedded-knowledge/domains/roger-reviewer/al-keyword-indentation-rules.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-line-start-keyword-positioning.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-separate-if-else-formatting.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-standard-abbreviations.md +96 -0
- package/embedded-knowledge/domains/roger-reviewer/al-statement-per-line-rule.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-unnecessary-else-elimination.md +86 -0
- package/embedded-knowledge/domains/roger-reviewer/al-variable-declaration-order.md +90 -0
- package/embedded-knowledge/domains/roger-reviewer/al-variable-naming-conventions.md +82 -0
- package/embedded-knowledge/domains/roger-reviewer/begin-block-statement-clarity.md +78 -0
- package/embedded-knowledge/domains/roger-reviewer/begin-end-positioning-patterns.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/binary-operator-line-positioning.md +78 -0
- package/embedded-knowledge/domains/roger-reviewer/boolean-expression-simplification-al.md +100 -0
- package/embedded-knowledge/domains/roger-reviewer/case-statement-error-handling-troubleshooting.md +115 -0
- package/embedded-knowledge/domains/roger-reviewer/compound-statement-readability.md +124 -0
- package/embedded-knowledge/domains/roger-reviewer/lonely-repeat-statement-pattern.md +110 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-begin-end-blocks.md +438 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-binary-operator-spacing.md +255 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-comment-spacing-standards.md +209 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-keyword-indentation-rules.md +218 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-line-start-keyword-positioning.md +218 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-separate-if-else-formatting.md +280 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-statement-per-line-rule.md +188 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-unnecessary-else-elimination.md +245 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-variable-declaration-order.md +244 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/begin-end-positioning.md +278 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/boolean-simplification-examples.md +484 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/case-error-handling.md +64 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/compound-statement-readability.md +107 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/lonely-repeat-examples.md +280 -0
- package/embedded-knowledge/domains/sam-coder/al-formatting-consistency-patterns.md +75 -0
- package/embedded-knowledge/domains/sam-coder/al-line-comment-formatting.md +67 -0
- package/embedded-knowledge/domains/sam-coder/al-lonely-repeat-pattern.md +76 -0
- package/embedded-knowledge/domains/sam-coder/al-named-parameter-pattern.md +98 -0
- package/embedded-knowledge/domains/sam-coder/al-object-navigation-shortcuts.md +128 -0
- package/embedded-knowledge/domains/sam-coder/al-readability-optimization.md +75 -0
- package/embedded-knowledge/domains/sam-coder/al-record-find-early-exit.md +95 -0
- package/embedded-knowledge/domains/sam-coder/command-queue-pattern-al.md +141 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-alternative-implementation.md +91 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-method-usage.md +118 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-trigger-execution.md +111 -0
- package/embedded-knowledge/domains/sam-coder/event-bridge-pattern-al.md +113 -0
- package/embedded-knowledge/domains/sam-coder/event-payload-design-patterns.md +127 -0
- package/embedded-knowledge/domains/sam-coder/generic-method-patterns-al.md +141 -0
- package/embedded-knowledge/domains/sam-coder/manual-binding-conditional-subscribers.md +66 -0
- package/embedded-knowledge/domains/sam-coder/nested-compound-best-practices.md +96 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-blank-line-organization.md +161 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-case-action-formatting.md +177 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-lonely-repeat-pattern.md +239 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-named-parameter-pattern.md +346 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-record-find-early-exit.md +298 -0
- package/embedded-knowledge/domains/sam-coder/samples/command-queue-pattern.md +677 -0
- package/embedded-knowledge/domains/sam-coder/samples/deleteall-alternative-implementation.md +117 -0
- package/embedded-knowledge/domains/sam-coder/samples/deleteall-triggers.md +75 -0
- package/embedded-knowledge/domains/sam-coder/samples/deleteall-usage.md +169 -0
- package/embedded-knowledge/domains/sam-coder/samples/event-bridge-pattern.md +399 -0
- package/embedded-knowledge/domains/sam-coder/samples/event-payload-design.md +356 -0
- package/embedded-knowledge/domains/sam-coder/samples/generic-method-patterns.md +889 -0
- package/embedded-knowledge/domains/sam-coder/samples/manual-binding.md +84 -0
- package/embedded-knowledge/domains/sam-coder/samples/nested-compound-best-practices.md +127 -0
- package/embedded-knowledge/domains/sam-coder/samples/single-to-compound-conversion.md +89 -0
- package/embedded-knowledge/domains/sam-coder/samples/template-method-pattern.md +516 -0
- package/embedded-knowledge/domains/sam-coder/samples/testfield-patterns.md +61 -0
- package/embedded-knowledge/domains/sam-coder/samples/type-safe-operations.md +427 -0
- package/embedded-knowledge/domains/sam-coder/single-to-compound-conversion.md +122 -0
- package/embedded-knowledge/domains/sam-coder/template-method-pattern-al.md +96 -0
- package/embedded-knowledge/domains/sam-coder/testfield-patterns.md +101 -0
- package/embedded-knowledge/domains/sam-coder/type-safe-operations-al.md +149 -0
- package/embedded-knowledge/domains/sam-coder/vs-code-al-keyboard-shortcuts.md +107 -0
- package/embedded-knowledge/domains/seth-security/al-temporary-table-safety.md +95 -0
- package/embedded-knowledge/domains/seth-security/api-permission-model.md +115 -0
- package/embedded-knowledge/domains/seth-security/istemporary-safeguard-pattern.md +78 -0
- package/embedded-knowledge/domains/seth-security/samples/al-temporary-table-safety.md +373 -0
- package/embedded-knowledge/domains/seth-security/samples/api-permission-model.md +308 -0
- package/embedded-knowledge/domains/taylor-docs/al-xml-documentation-structure.md +79 -0
- package/embedded-knowledge/domains/uma-ux/bc-action-shortcuts-syntax.md +78 -0
- package/embedded-knowledge/domains/uma-ux/shortcut-key-user-experience-design.md +81 -0
- package/embedded-knowledge/indexes/bc-version-matrix.json +188 -0
- package/embedded-knowledge/indexes/domain-catalog.json +106 -0
- package/embedded-knowledge/indexes/tags/abbreviations.json +1 -0
- package/embedded-knowledge/indexes/tags/abstraction.json +1 -0
- package/embedded-knowledge/indexes/tags/access-control.json +1 -0
- package/embedded-knowledge/indexes/tags/accessibility.json +1 -0
- package/embedded-knowledge/indexes/tags/actions.json +1 -0
- package/embedded-knowledge/indexes/tags/advanced-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/advanced.json +1 -0
- package/embedded-knowledge/indexes/tags/al-extension.json +1 -0
- package/embedded-knowledge/indexes/tags/al-generics.json +1 -0
- package/embedded-knowledge/indexes/tags/al-objects.json +1 -0
- package/embedded-knowledge/indexes/tags/al-syntax.json +1 -0
- package/embedded-knowledge/indexes/tags/algorithm-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/alternatives.json +1 -0
- package/embedded-knowledge/indexes/tags/analytics.json +1 -0
- package/embedded-knowledge/indexes/tags/api-delegates.json +1 -0
- package/embedded-knowledge/indexes/tags/api-design.json +1 -0
- package/embedded-knowledge/indexes/tags/api-documentation.json +1 -0
- package/embedded-knowledge/indexes/tags/api-endpoints.json +1 -0
- package/embedded-knowledge/indexes/tags/api-extensibility.json +1 -0
- package/embedded-knowledge/indexes/tags/api-fieldsets.json +1 -0
- package/embedded-knowledge/indexes/tags/api-integration.json +1 -0
- package/embedded-knowledge/indexes/tags/api-interfaces.json +1 -0
- package/embedded-knowledge/indexes/tags/api-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/api-pages.json +1 -0
- package/embedded-knowledge/indexes/tags/api-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/api-permissions.json +1 -0
- package/embedded-knowledge/indexes/tags/api-responses.json +1 -0
- package/embedded-knowledge/indexes/tags/api-simplification.json +1 -0
- package/embedded-knowledge/indexes/tags/api.json +1 -0
- package/embedded-knowledge/indexes/tags/architecture.json +1 -0
- package/embedded-knowledge/indexes/tags/async-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/async-processing.json +1 -0
- package/embedded-knowledge/indexes/tags/automatic-registration.json +1 -0
- package/embedded-knowledge/indexes/tags/batch-operations.json +1 -0
- package/embedded-knowledge/indexes/tags/bc24-migration.json +1 -0
- package/embedded-knowledge/indexes/tags/begin-blocks.json +1 -0
- package/embedded-knowledge/indexes/tags/begin-end.json +1 -0
- package/embedded-knowledge/indexes/tags/behavioral-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/best-practices.json +1 -0
- package/embedded-knowledge/indexes/tags/binding.json +1 -0
- package/embedded-knowledge/indexes/tags/block-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/blocks.json +1 -0
- package/embedded-knowledge/indexes/tags/boolean-expressions.json +1 -0
- package/embedded-knowledge/indexes/tags/branching.json +1 -0
- package/embedded-knowledge/indexes/tags/breaking-changes.json +1 -0
- package/embedded-knowledge/indexes/tags/breakpoints.json +1 -0
- package/embedded-knowledge/indexes/tags/business-foundation.json +1 -0
- package/embedded-knowledge/indexes/tags/business-infrastructure.json +1 -0
- package/embedded-knowledge/indexes/tags/business-process.json +1 -0
- package/embedded-knowledge/indexes/tags/business-rules.json +1 -0
- package/embedded-knowledge/indexes/tags/caching.json +1 -0
- package/embedded-knowledge/indexes/tags/case-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/case.json +1 -0
- package/embedded-knowledge/indexes/tags/code-analysis.json +1 -0
- package/embedded-knowledge/indexes/tags/code-clarity.json +1 -0
- package/embedded-knowledge/indexes/tags/code-comprehension.json +1 -0
- package/embedded-knowledge/indexes/tags/code-conversion.json +1 -0
- package/embedded-knowledge/indexes/tags/code-formatting.json +1 -0
- package/embedded-knowledge/indexes/tags/code-organization.json +1 -0
- package/embedded-knowledge/indexes/tags/code-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/code-quality.json +1 -0
- package/embedded-knowledge/indexes/tags/code-reuse.json +1 -0
- package/embedded-knowledge/indexes/tags/code-simplification.json +1 -0
- package/embedded-knowledge/indexes/tags/code-standards.json +1 -0
- package/embedded-knowledge/indexes/tags/code-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/code-style.json +1 -0
- package/embedded-knowledge/indexes/tags/codeunit-design.json +1 -0
- package/embedded-knowledge/indexes/tags/command-queue.json +1 -0
- package/embedded-knowledge/indexes/tags/comments.json +1 -0
- package/embedded-knowledge/indexes/tags/compile-time-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/complex-facade.json +1 -0
- package/embedded-knowledge/indexes/tags/complexity-hiding.json +1 -0
- package/embedded-knowledge/indexes/tags/complexity-management.json +1 -0
- package/embedded-knowledge/indexes/tags/compound-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/concurrency.json +1 -0
- package/embedded-knowledge/indexes/tags/conditional-logic.json +1 -0
- package/embedded-knowledge/indexes/tags/conditional.json +1 -0
- package/embedded-knowledge/indexes/tags/conflict-resolution.json +1 -0
- package/embedded-knowledge/indexes/tags/consistency.json +1 -0
- package/embedded-knowledge/indexes/tags/contract-design.json +1 -0
- package/embedded-knowledge/indexes/tags/control-flow.json +1 -0
- package/embedded-knowledge/indexes/tags/conversion-guide.json +1 -0
- package/embedded-knowledge/indexes/tags/correlation.json +1 -0
- package/embedded-knowledge/indexes/tags/custom-messages.json +1 -0
- package/embedded-knowledge/indexes/tags/data-access.json +1 -0
- package/embedded-knowledge/indexes/tags/data-exposure.json +1 -0
- package/embedded-knowledge/indexes/tags/data-integrity.json +1 -0
- package/embedded-knowledge/indexes/tags/data-loading.json +1 -0
- package/embedded-knowledge/indexes/tags/data-manipulation.json +1 -0
- package/embedded-knowledge/indexes/tags/data-modeling.json +1 -0
- package/embedded-knowledge/indexes/tags/data-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/data-protection.json +1 -0
- package/embedded-knowledge/indexes/tags/data-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/database.json +1 -0
- package/embedded-knowledge/indexes/tags/debugging.json +1 -0
- package/embedded-knowledge/indexes/tags/decision-making.json +1 -0
- package/embedded-knowledge/indexes/tags/declaration.json +1 -0
- package/embedded-knowledge/indexes/tags/default-messages.json +1 -0
- package/embedded-knowledge/indexes/tags/defensive-programming.json +1 -0
- package/embedded-knowledge/indexes/tags/deleteall.json +1 -0
- package/embedded-knowledge/indexes/tags/dependencies.json +1 -0
- package/embedded-knowledge/indexes/tags/deployment.json +1 -0
- package/embedded-knowledge/indexes/tags/developer-productivity.json +1 -0
- package/embedded-knowledge/indexes/tags/development-workflow.json +1 -0
- package/embedded-knowledge/indexes/tags/diagnostics.json +1 -0
- package/embedded-knowledge/indexes/tags/dimensions.json +1 -0
- package/embedded-knowledge/indexes/tags/documentation.json +1 -0
- package/embedded-knowledge/indexes/tags/early-exit.json +1 -0
- package/embedded-knowledge/indexes/tags/else-clauses.json +1 -0
- package/embedded-knowledge/indexes/tags/end-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/enterprise-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/entity-relationships.json +1 -0
- package/embedded-knowledge/indexes/tags/error-handling.json +1 -0
- package/embedded-knowledge/indexes/tags/error-messages.json +1 -0
- package/embedded-knowledge/indexes/tags/error-prevention.json +1 -0
- package/embedded-knowledge/indexes/tags/error-text.json +1 -0
- package/embedded-knowledge/indexes/tags/etag.json +1 -0
- package/embedded-knowledge/indexes/tags/event-bridge.json +1 -0
- package/embedded-knowledge/indexes/tags/event-payload.json +1 -0
- package/embedded-knowledge/indexes/tags/event-routing.json +1 -0
- package/embedded-knowledge/indexes/tags/events.json +1 -0
- package/embedded-knowledge/indexes/tags/execution-flow.json +1 -0
- package/embedded-knowledge/indexes/tags/expressions.json +1 -0
- package/embedded-knowledge/indexes/tags/extensibility.json +1 -0
- package/embedded-knowledge/indexes/tags/extensions.json +1 -0
- package/embedded-knowledge/indexes/tags/facade-composition.json +1 -0
- package/embedded-knowledge/indexes/tags/facade-pattern.json +1 -0
- package/embedded-knowledge/indexes/tags/field-control.json +1 -0
- package/embedded-knowledge/indexes/tags/field-exclusion.json +1 -0
- package/embedded-knowledge/indexes/tags/field-registration.json +1 -0
- package/embedded-knowledge/indexes/tags/field-state.json +1 -0
- package/embedded-knowledge/indexes/tags/field-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/fielderror.json +1 -0
- package/embedded-knowledge/indexes/tags/fields.json +1 -0
- package/embedded-knowledge/indexes/tags/filtering.json +1 -0
- package/embedded-knowledge/indexes/tags/filters.json +1 -0
- package/embedded-knowledge/indexes/tags/formatting.json +1 -0
- package/embedded-knowledge/indexes/tags/generic-methods.json +1 -0
- package/embedded-knowledge/indexes/tags/http-status.json +1 -0
- package/embedded-knowledge/indexes/tags/if-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/implementation.json +1 -0
- package/embedded-knowledge/indexes/tags/indentation.json +1 -0
- package/embedded-knowledge/indexes/tags/index-summary.json +277 -0
- package/embedded-knowledge/indexes/tags/indexing.json +1 -0
- package/embedded-knowledge/indexes/tags/inheritance.json +1 -0
- package/embedded-knowledge/indexes/tags/integration.json +1 -0
- package/embedded-knowledge/indexes/tags/integrity-checking.json +1 -0
- package/embedded-knowledge/indexes/tags/intellisense.json +1 -0
- package/embedded-knowledge/indexes/tags/interface-design.json +1 -0
- package/embedded-knowledge/indexes/tags/interface-segregation.json +1 -0
- package/embedded-knowledge/indexes/tags/isolation.json +1 -0
- package/embedded-knowledge/indexes/tags/job-processing.json +1 -0
- package/embedded-knowledge/indexes/tags/keyboard-navigation.json +1 -0
- package/embedded-knowledge/indexes/tags/keywords.json +1 -0
- package/embedded-knowledge/indexes/tags/legacy-modernization.json +1 -0
- package/embedded-knowledge/indexes/tags/line-breaks.json +1 -0
- package/embedded-knowledge/indexes/tags/line-organization.json +1 -0
- package/embedded-knowledge/indexes/tags/line-positioning.json +1 -0
- package/embedded-knowledge/indexes/tags/localization.json +1 -0
- package/embedded-knowledge/indexes/tags/logging.json +1 -0
- package/embedded-knowledge/indexes/tags/loose-coupling.json +1 -0
- package/embedded-knowledge/indexes/tags/maintainability.json +1 -0
- package/embedded-knowledge/indexes/tags/memory-management.json +1 -0
- package/embedded-knowledge/indexes/tags/memory-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/memory.json +1 -0
- package/embedded-knowledge/indexes/tags/message-design.json +1 -0
- package/embedded-knowledge/indexes/tags/message-formatting.json +1 -0
- package/embedded-knowledge/indexes/tags/message-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/metadata-driven.json +1 -0
- package/embedded-knowledge/indexes/tags/method-comparison.json +1 -0
- package/embedded-knowledge/indexes/tags/module-architecture.json +1 -0
- package/embedded-knowledge/indexes/tags/module-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/monitoring.json +1 -0
- package/embedded-knowledge/indexes/tags/multi-layer-facade.json +1 -0
- package/embedded-knowledge/indexes/tags/multi-tenancy.json +1 -0
- package/embedded-knowledge/indexes/tags/multiple-values.json +1 -0
- package/embedded-knowledge/indexes/tags/naming-conventions.json +1 -0
- package/embedded-knowledge/indexes/tags/naming.json +1 -0
- package/embedded-knowledge/indexes/tags/navigation.json +1 -0
- package/embedded-knowledge/indexes/tags/nested-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/no-series-conversion.json +1 -0
- package/embedded-knowledge/indexes/tags/no-series-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/no-series.json +1 -0
- package/embedded-knowledge/indexes/tags/number-generation.json +1 -0
- package/embedded-knowledge/indexes/tags/object-documentation.json +1 -0
- package/embedded-knowledge/indexes/tags/odata.json +1 -0
- package/embedded-knowledge/indexes/tags/ondelete.json +1 -0
- package/embedded-knowledge/indexes/tags/onvalidate.json +1 -0
- package/embedded-knowledge/indexes/tags/operation-delegation.json +1 -0
- package/embedded-knowledge/indexes/tags/operation-safety.json +1 -0
- package/embedded-knowledge/indexes/tags/operators.json +1 -0
- package/embedded-knowledge/indexes/tags/optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/order.json +1 -0
- package/embedded-knowledge/indexes/tags/organization.json +1 -0
- package/embedded-knowledge/indexes/tags/pages.json +1 -0
- package/embedded-knowledge/indexes/tags/parameters.json +1 -0
- package/embedded-knowledge/indexes/tags/patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/performance-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/performance.json +1 -0
- package/embedded-knowledge/indexes/tags/placement.json +1 -0
- package/embedded-knowledge/indexes/tags/posting-codeunits.json +1 -0
- package/embedded-knowledge/indexes/tags/posting.json +1 -0
- package/embedded-knowledge/indexes/tags/preconditions.json +1 -0
- package/embedded-knowledge/indexes/tags/primary-key.json +1 -0
- package/embedded-knowledge/indexes/tags/privacy.json +1 -0
- package/embedded-knowledge/indexes/tags/process-automation.json +1 -0
- package/embedded-knowledge/indexes/tags/production.json +1 -0
- package/embedded-knowledge/indexes/tags/productivity.json +1 -0
- package/embedded-knowledge/indexes/tags/query-performance.json +1 -0
- package/embedded-knowledge/indexes/tags/queue-management.json +1 -0
- package/embedded-knowledge/indexes/tags/ranges.json +1 -0
- package/embedded-knowledge/indexes/tags/readability.json +1 -0
- package/embedded-knowledge/indexes/tags/record-access.json +1 -0
- package/embedded-knowledge/indexes/tags/record-methods.json +1 -0
- package/embedded-knowledge/indexes/tags/refactoring.json +1 -0
- package/embedded-knowledge/indexes/tags/reference.json +1 -0
- package/embedded-knowledge/indexes/tags/repeat-loops.json +1 -0
- package/embedded-knowledge/indexes/tags/repeat-statement.json +1 -0
- package/embedded-knowledge/indexes/tags/runtime-errors.json +1 -0
- package/embedded-knowledge/indexes/tags/runtime.json +1 -0
- package/embedded-knowledge/indexes/tags/safeguards.json +1 -0
- package/embedded-knowledge/indexes/tags/security.json +1 -0
- package/embedded-knowledge/indexes/tags/sequence-management.json +1 -0
- package/embedded-knowledge/indexes/tags/serialization.json +1 -0
- package/embedded-knowledge/indexes/tags/session-logmessage.json +1 -0
- package/embedded-knowledge/indexes/tags/session.json +1 -0
- package/embedded-knowledge/indexes/tags/setloadfields.json +1 -0
- package/embedded-knowledge/indexes/tags/shortcuts.json +1 -0
- package/embedded-knowledge/indexes/tags/sift.json +1 -0
- package/embedded-knowledge/indexes/tags/singleinstance.json +1 -0
- package/embedded-knowledge/indexes/tags/spacing.json +1 -0
- package/embedded-knowledge/indexes/tags/sql-translation.json +1 -0
- package/embedded-knowledge/indexes/tags/standards.json +1 -0
- package/embedded-knowledge/indexes/tags/statements.json +1 -0
- package/embedded-knowledge/indexes/tags/streaming.json +1 -0
- package/embedded-knowledge/indexes/tags/strong-typing.json +1 -0
- package/embedded-knowledge/indexes/tags/structural-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/structure.json +1 -0
- package/embedded-knowledge/indexes/tags/subscribers.json +1 -0
- package/embedded-knowledge/indexes/tags/switch.json +1 -0
- package/embedded-knowledge/indexes/tags/symbol-search.json +1 -0
- package/embedded-knowledge/indexes/tags/syntax.json +1 -0
- package/embedded-knowledge/indexes/tags/systemid.json +1 -0
- package/embedded-knowledge/indexes/tags/table-configuration.json +1 -0
- package/embedded-knowledge/indexes/tags/table-events.json +1 -0
- package/embedded-knowledge/indexes/tags/table-keys.json +1 -0
- package/embedded-knowledge/indexes/tags/table-safety.json +1 -0
- package/embedded-knowledge/indexes/tags/task-scheduler.json +1 -0
- package/embedded-knowledge/indexes/tags/telemetry.json +1 -0
- package/embedded-knowledge/indexes/tags/template-method.json +1 -0
- package/embedded-knowledge/indexes/tags/temporary-tables.json +1 -0
- package/embedded-knowledge/indexes/tags/testfield.json +1 -0
- package/embedded-knowledge/indexes/tags/tradeoffs.json +1 -0
- package/embedded-knowledge/indexes/tags/triggers.json +1 -0
- package/embedded-knowledge/indexes/tags/troubleshooting.json +1 -0
- package/embedded-knowledge/indexes/tags/type-safety.json +1 -0
- package/embedded-knowledge/indexes/tags/url-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/user-experience.json +1 -0
- package/embedded-knowledge/indexes/tags/user-feedback.json +1 -0
- package/embedded-knowledge/indexes/tags/user-interface.json +1 -0
- package/embedded-knowledge/indexes/tags/validation-feedback.json +1 -0
- package/embedded-knowledge/indexes/tags/validation.json +1 -0
- package/embedded-knowledge/indexes/tags/variables.json +1 -0
- package/embedded-knowledge/indexes/tags/verbosity.json +1 -0
- package/embedded-knowledge/indexes/tags/vs-code.json +1 -0
- package/embedded-knowledge/indexes/tags/web-services.json +1 -0
- package/embedded-knowledge/indexes/tags/workflow-management.json +1 -0
- package/embedded-knowledge/indexes/tags/workflow-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/workflow-templates.json +1 -0
- package/embedded-knowledge/indexes/tags/workspace.json +1 -0
- package/embedded-knowledge/indexes/tags/xml-documentation.json +1 -0
- package/embedded-knowledge/indexes/topic-relationships.json +128 -0
- package/embedded-knowledge/methodologies/index.json +81 -0
- package/embedded-knowledge/methodologies/phases/analysis-full.md +208 -0
- package/embedded-knowledge/methodologies/phases/analysis-quick.md +44 -0
- package/embedded-knowledge/methodologies/phases/analysis.md +182 -0
- package/embedded-knowledge/methodologies/phases/execution-validation-full.md +174 -0
- package/embedded-knowledge/methodologies/phases/execution-validation-quick.md +31 -0
- package/embedded-knowledge/methodologies/phases/execution-validation.md +174 -0
- package/embedded-knowledge/methodologies/phases/performance-full.md +211 -0
- package/embedded-knowledge/methodologies/phases/performance-quick.md +32 -0
- package/embedded-knowledge/methodologies/phases/performance.md +211 -0
- package/embedded-knowledge/methodologies/phases/verification-full.md +162 -0
- package/embedded-knowledge/methodologies/phases/verification-quick.md +48 -0
- package/embedded-knowledge/methodologies/phases/verification.md +146 -0
- package/embedded-knowledge/methodologies/workflow-enforcement.md +142 -0
- package/embedded-knowledge/methodologies/workflows/code-review-workflow.md +99 -0
- package/package.json +74 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AL Object Navigation Shortcuts"
|
|
3
|
+
domain: "sam-coder"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["navigation", "al-objects", "workspace", "symbol-search", "dependencies"]
|
|
7
|
+
prerequisites: ["vs-code-al-shortcuts", "al-project-structure"]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# AL Object Navigation Shortcuts
|
|
11
|
+
|
|
12
|
+
## Overview
|
|
13
|
+
|
|
14
|
+
Efficient navigation between AL objects is crucial for understanding code relationships, debugging complex scenarios, and maintaining large AL projects. Master these navigation patterns to move fluidly through Business Central codebases.
|
|
15
|
+
|
|
16
|
+
**Core Concept**: AL object navigation combines symbol search, dependency tracking, and workspace awareness for rapid code exploration.
|
|
17
|
+
|
|
18
|
+
## Symbol-Based Navigation
|
|
19
|
+
|
|
20
|
+
### Go-To Definition Patterns
|
|
21
|
+
**F12** on any AL symbol provides immediate navigation:
|
|
22
|
+
- **Object references**: Jump from usage to object definition
|
|
23
|
+
- **Procedure calls**: Navigate to procedure implementation
|
|
24
|
+
- **Variable declarations**: Find where variables are declared
|
|
25
|
+
- **Field references**: Jump to table field definitions
|
|
26
|
+
|
|
27
|
+
### Peek Definition Workflow
|
|
28
|
+
**Alt+F12** opens inline preview without losing current context:
|
|
29
|
+
- **Quick reference checking**: Verify procedure signatures without navigation
|
|
30
|
+
- **Multi-object comparison**: Compare related objects side-by-side
|
|
31
|
+
- **Context preservation**: Maintain current editing position while exploring
|
|
32
|
+
|
|
33
|
+
### Reference Discovery
|
|
34
|
+
**Shift+F12** reveals all usages of current symbol:
|
|
35
|
+
- **Impact analysis**: Understand where objects/procedures are used
|
|
36
|
+
- **Refactoring planning**: Identify all affected code before changes
|
|
37
|
+
- **Documentation research**: Find usage examples across codebase
|
|
38
|
+
|
|
39
|
+
## Workspace-Level Navigation
|
|
40
|
+
|
|
41
|
+
### Global Symbol Search
|
|
42
|
+
**Ctrl+T** enables rapid workspace-wide object discovery:
|
|
43
|
+
- **Object name search**: Find tables, pages, codeunits by partial name
|
|
44
|
+
- **Procedure location**: Locate specific procedures across all objects
|
|
45
|
+
- **Fuzzy matching**: Use partial strings to find objects quickly
|
|
46
|
+
|
|
47
|
+
### AL-Specific Object Navigation
|
|
48
|
+
**Ctrl+Shift+P → "AL: Go!"** provides enhanced AL object search:
|
|
49
|
+
- **Object type filtering**: Search within specific object types (tables, pages)
|
|
50
|
+
- **Object ID navigation**: Jump directly to objects by ID number
|
|
51
|
+
- **Extension awareness**: Navigate across multiple AL extensions
|
|
52
|
+
|
|
53
|
+
### File-Level Symbol Navigation
|
|
54
|
+
**Ctrl+Shift+O** shows current file's symbol outline:
|
|
55
|
+
- **Procedure listing**: Quick access to all procedures in current object
|
|
56
|
+
- **Variable declarations**: Jump to variable declaration sections
|
|
57
|
+
- **Structured navigation**: Navigate by AL object structure (triggers, procedures)
|
|
58
|
+
|
|
59
|
+
## Dependency Tracking
|
|
60
|
+
|
|
61
|
+
### Cross-Object Relationships
|
|
62
|
+
Understanding AL object dependencies through navigation:
|
|
63
|
+
- **Table-Page relationships**: Navigate from table fields to related pages
|
|
64
|
+
- **Codeunit dependencies**: Track procedure calls across codeunits
|
|
65
|
+
- **Report-Dataset connections**: Follow data flow from datasets to layout
|
|
66
|
+
|
|
67
|
+
### Extension Boundary Navigation
|
|
68
|
+
Navigate between AL extensions and base application:
|
|
69
|
+
- **Base application references**: Jump to standard BC objects from extensions
|
|
70
|
+
- **Extension dependencies**: Navigate between dependent AL extensions
|
|
71
|
+
- **Symbol resolution**: Understand which extension provides specific symbols
|
|
72
|
+
|
|
73
|
+
## Advanced Navigation Techniques
|
|
74
|
+
|
|
75
|
+
### Multi-Cursor Object Exploration
|
|
76
|
+
Use **Ctrl+D** for simultaneous multi-object navigation:
|
|
77
|
+
- **Pattern identification**: Select similar symbols across multiple objects
|
|
78
|
+
- **Bulk navigation**: Navigate to multiple related definitions simultaneously
|
|
79
|
+
- **Comparison workflows**: Compare similar patterns across objects
|
|
80
|
+
|
|
81
|
+
### Breadcrumb Navigation
|
|
82
|
+
Leverage VS Code breadcrumbs for AL object context:
|
|
83
|
+
- **Object hierarchy**: Visual representation of current location in AL object
|
|
84
|
+
- **Quick parent navigation**: Click breadcrumbs to navigate to parent scopes
|
|
85
|
+
- **Context awareness**: Understand current position within complex AL objects
|
|
86
|
+
|
|
87
|
+
### Search Integration with Navigation
|
|
88
|
+
Combine **Ctrl+Shift+F** with navigation shortcuts:
|
|
89
|
+
- **Usage pattern search**: Find specific AL patterns across workspace
|
|
90
|
+
- **Cross-reference validation**: Verify object relationships through search
|
|
91
|
+
- **Documentation discovery**: Find comments and documentation related to objects
|
|
92
|
+
|
|
93
|
+
## Navigation Efficiency Patterns
|
|
94
|
+
|
|
95
|
+
### Context-Preserving Exploration
|
|
96
|
+
- **Tab management**: Use multiple tabs for related AL objects
|
|
97
|
+
- **Split editor**: Compare related objects side-by-side
|
|
98
|
+
- **Breadcrumb trails**: Maintain awareness of navigation history
|
|
99
|
+
|
|
100
|
+
### Rapid Discovery Workflows
|
|
101
|
+
- **Symbol-first navigation**: Start with symbol search, then explore context
|
|
102
|
+
- **Reference-driven exploration**: Use "Find All References" to understand object usage
|
|
103
|
+
- **Definition-to-usage flow**: Navigate from definitions to all usage contexts
|
|
104
|
+
|
|
105
|
+
### Team Navigation Standards
|
|
106
|
+
- **Consistent naming patterns**: Enable predictable object discovery
|
|
107
|
+
- **Documentation links**: Include navigation hints in object comments
|
|
108
|
+
- **Dependency documentation**: Maintain clear dependency maps for complex solutions
|
|
109
|
+
|
|
110
|
+
## Common Navigation Scenarios
|
|
111
|
+
|
|
112
|
+
### Debugging Complex Flows
|
|
113
|
+
Navigate efficiently through call stacks and data flows:
|
|
114
|
+
1. **Start at error location** using diagnostic navigation
|
|
115
|
+
2. **Trace back through call stack** using Go-to-Definition
|
|
116
|
+
3. **Identify data sources** through table/field navigation
|
|
117
|
+
4. **Verify related objects** using Find-All-References
|
|
118
|
+
|
|
119
|
+
### Code Review Navigation
|
|
120
|
+
Systematic exploration of code changes:
|
|
121
|
+
1. **Start with modified objects** in source control view
|
|
122
|
+
2. **Navigate to related objects** using dependency tracking
|
|
123
|
+
3. **Verify impact scope** using reference discovery
|
|
124
|
+
4. **Check integration points** through cross-object navigation
|
|
125
|
+
|
|
126
|
+
*Navigation practice exercises: samples/al-navigation-practice.md*
|
|
127
|
+
*Workspace search patterns: sam-coder-index.json#workspace-navigation*
|
|
128
|
+
*AL object relationships: code-design-index.json#object-dependencies*
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AL Readability Optimization"
|
|
3
|
+
domain: "sam-coder"
|
|
4
|
+
difficulty: "advanced"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["readability", "optimization", "code-quality"]
|
|
7
|
+
type: "improvement-pattern"
|
|
8
|
+
category: "code-quality"
|
|
9
|
+
pattern_type: "good"
|
|
10
|
+
severity: "medium"
|
|
11
|
+
impact_level: "medium"
|
|
12
|
+
improvement_suggestion: "Optimize AL code readability through strategic formatting and organization techniques"
|
|
13
|
+
implementation_steps: ["analyze-readability-factors", "apply-optimization-techniques", "validate-improvement"]
|
|
14
|
+
validation_criteria: ["improved-code-readability", "reduced-cognitive-load"]
|
|
15
|
+
technical_areas: ["al-code"]
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# AL Readability Optimization
|
|
19
|
+
|
|
20
|
+
## Overview
|
|
21
|
+
|
|
22
|
+
Readability optimization in AL code involves strategic application of formatting, naming, and organizational techniques to minimize cognitive load and maximize code comprehension. Optimized readability directly impacts development productivity and code maintainability.
|
|
23
|
+
|
|
24
|
+
**Key Principle**: Structure AL code to minimize cognitive effort required for understanding logic, flow, and purpose.
|
|
25
|
+
|
|
26
|
+
## Strategic Framework
|
|
27
|
+
|
|
28
|
+
### Cognitive Load Reduction
|
|
29
|
+
- **Visual Hierarchy**: Clear formatting that reveals code structure immediately
|
|
30
|
+
- **Logical Organization**: Code arrangement that follows natural reading patterns
|
|
31
|
+
- **Context Clarity**: Sufficient information for understanding without external references
|
|
32
|
+
- **Complexity Management**: Techniques for handling complex logic readably
|
|
33
|
+
|
|
34
|
+
### Comprehension Enhancement
|
|
35
|
+
Optimize code layout and organization to support quick understanding of business logic, control flow, and data operations within Business Central context.
|
|
36
|
+
|
|
37
|
+
## Architecture Focus
|
|
38
|
+
|
|
39
|
+
### Readability Factors
|
|
40
|
+
- **Visual Structure**: Indentation, spacing, and alignment for clarity
|
|
41
|
+
- **Naming Clarity**: Descriptive identifiers that convey purpose
|
|
42
|
+
- **Logical Flow**: Code organization that matches business process flow
|
|
43
|
+
- **Documentation Integration**: Comments and structure that enhance understanding
|
|
44
|
+
|
|
45
|
+
### Optimization Techniques
|
|
46
|
+
Apply systematic approaches to improve code readability including strategic formatting, logical organization, and clarity enhancement patterns.
|
|
47
|
+
|
|
48
|
+
## Best Practices
|
|
49
|
+
|
|
50
|
+
### Structure Optimization
|
|
51
|
+
- **Logical code grouping** that reflects business operations
|
|
52
|
+
- **Clear visual hierarchy** through consistent formatting
|
|
53
|
+
- **Strategic white space** to separate conceptual sections
|
|
54
|
+
- **Meaningful naming** that conveys purpose and context
|
|
55
|
+
- **Progressive complexity** from simple to complex operations
|
|
56
|
+
|
|
57
|
+
### Flow Enhancement
|
|
58
|
+
Organize code to follow natural reading patterns, group related operations logically, and use formatting to guide reader attention to important elements.
|
|
59
|
+
|
|
60
|
+
### Clarity Techniques
|
|
61
|
+
Use consistent patterns for similar operations, eliminate unnecessary complexity, and structure code to support quick mental model building.
|
|
62
|
+
|
|
63
|
+
## Anti-Patterns
|
|
64
|
+
|
|
65
|
+
### Avoid These Approaches
|
|
66
|
+
- **Dense code blocks** without logical separation
|
|
67
|
+
- **Unclear naming** requiring mental translation
|
|
68
|
+
- **Random organization** without logical flow
|
|
69
|
+
- **Inconsistent patterns** requiring constant style adaptation
|
|
70
|
+
- **Unnecessary complexity** that obscures business logic
|
|
71
|
+
|
|
72
|
+
Poor readability optimization increases development time, introduces errors, and makes code maintenance more difficult and expensive.
|
|
73
|
+
|
|
74
|
+
*Related patterns: al-formatting-consistency-patterns.md, al-statement-per-line-rule.md*
|
|
75
|
+
*Cross-references: See samples in other formatting topics for readability examples*
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AL Record Find Early Exit"
|
|
3
|
+
domain: "sam-coder"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["record-access", "performance", "early-exit", "database"]
|
|
7
|
+
type: "improvement-pattern"
|
|
8
|
+
category: "performance"
|
|
9
|
+
pattern_type: "good"
|
|
10
|
+
severity: "high"
|
|
11
|
+
impact_level: "high"
|
|
12
|
+
improvement_suggestion: "Implement early exit patterns for record Find operations to prevent unnecessary processing"
|
|
13
|
+
implementation_steps: ["identify-record-operations", "apply-early-exit-patterns", "validate-performance"]
|
|
14
|
+
validation_criteria: ["improved-performance", "reduced-database-load"]
|
|
15
|
+
technical_areas: ["al-code", "database"]
|
|
16
|
+
samples: "samples/al-record-find-early-exit.md"
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# AL Record Find Early Exit
|
|
20
|
+
|
|
21
|
+
## Overview
|
|
22
|
+
|
|
23
|
+
Implementing early exit patterns for AL record Find operations prevents unnecessary database queries and subsequent processing when records don't exist. This fundamental performance optimization reduces database load and improves response times.
|
|
24
|
+
|
|
25
|
+
**Key Principle**: Always check Find() results before proceeding with record-dependent operations to avoid processing non-existent data.
|
|
26
|
+
|
|
27
|
+
## Strategic Framework
|
|
28
|
+
|
|
29
|
+
### Standard Find Pattern
|
|
30
|
+
```
|
|
31
|
+
if Customer.Find() then begin
|
|
32
|
+
// Process found record
|
|
33
|
+
end else begin
|
|
34
|
+
// Handle not found case
|
|
35
|
+
end;
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Early Exit Implementation
|
|
39
|
+
Replace nested if-else with guard clause pattern:
|
|
40
|
+
```
|
|
41
|
+
if not Customer.Find() then
|
|
42
|
+
exit;
|
|
43
|
+
|
|
44
|
+
// Process found record directly
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Performance Impact
|
|
48
|
+
Early exits eliminate unnecessary code execution when records don't exist, reducing CPU usage and improving user experience in data-sparse scenarios.
|
|
49
|
+
|
|
50
|
+
## Architecture Focus
|
|
51
|
+
|
|
52
|
+
### Database Efficiency
|
|
53
|
+
**Query Optimization**: Early exits prevent cascading database operations when initial record retrieval fails
|
|
54
|
+
**Connection Management**: Reduced database round trips improve connection pool utilization
|
|
55
|
+
**Memory Management**: Avoiding record processing when data doesn't exist conserves memory allocation
|
|
56
|
+
**Transaction Scope**: Early exits keep transaction scope minimal for non-existent record scenarios
|
|
57
|
+
|
|
58
|
+
### Error Prevention
|
|
59
|
+
Early exit patterns prevent null reference errors and invalid data processing that can occur when assuming record existence without verification.
|
|
60
|
+
|
|
61
|
+
### Code Flow Clarity
|
|
62
|
+
Guard clause implementation creates clear separation between record existence validation and business logic processing.
|
|
63
|
+
|
|
64
|
+
## Best Practices
|
|
65
|
+
|
|
66
|
+
### Implementation Patterns
|
|
67
|
+
- **Guard Clauses First**: Check record existence at procedure start before main logic
|
|
68
|
+
- **Consistent Error Handling**: Standardize response for non-existent records across application
|
|
69
|
+
- **Logging Considerations**: Log appropriate messages for record not found scenarios
|
|
70
|
+
- **Return Value Strategy**: Design clear return patterns for procedures with early exits
|
|
71
|
+
|
|
72
|
+
### Performance Optimization
|
|
73
|
+
- **Filter Before Find**: Apply appropriate filters before Find() to reduce search scope
|
|
74
|
+
- **Index Utilization**: Ensure Find operations use optimal indexes for best performance
|
|
75
|
+
- **Batch Processing**: Consider FindSet() for multiple record processing scenarios
|
|
76
|
+
- **Existence Checks**: Use IsEmpty() for existence verification without full record loading
|
|
77
|
+
|
|
78
|
+
### Error Handling Integration
|
|
79
|
+
- **Graceful Degradation**: Handle missing records without disrupting user workflow
|
|
80
|
+
- **Clear Messaging**: Provide meaningful feedback when records cannot be found
|
|
81
|
+
- **Recovery Options**: Offer alternative actions when primary records are unavailable
|
|
82
|
+
- **Audit Trails**: Log record access attempts for troubleshooting and analysis
|
|
83
|
+
|
|
84
|
+
## Anti-Patterns
|
|
85
|
+
|
|
86
|
+
### Avoid These Approaches
|
|
87
|
+
- **Assumed Existence**: Processing records without Find() verification
|
|
88
|
+
- **Nested Processing**: Deep conditional nesting instead of early validation
|
|
89
|
+
- **Ignored Return Values**: Not checking Find() boolean result before proceeding
|
|
90
|
+
- **Cascading Failures**: Allowing record-not-found errors to propagate through system
|
|
91
|
+
|
|
92
|
+
Failing to implement early exits in high-frequency operations creates cumulative performance degradation and unnecessary database load.
|
|
93
|
+
|
|
94
|
+
*Related patterns: al-record-filtering.md, al-database-optimization.md*
|
|
95
|
+
*Implementation examples: see samples/al-record-find-early-exit.md*
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Command Queue Pattern in AL"
|
|
3
|
+
domain: "sam-coder"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["command-queue", "async-processing", "message-patterns", "queue-management"]
|
|
7
|
+
prerequisites: ["queue-basics", "command-pattern", "async-programming"]
|
|
8
|
+
samples: "samples/command-queue-pattern.md"
|
|
9
|
+
related_topics: ["task-scheduler-pattern-implementation", "event-bridge-pattern-al"]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Command Queue Pattern in AL
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
The Command Queue Pattern enables asynchronous command processing by queuing commands for later execution, providing system decoupling and improved responsiveness. This pattern is essential for handling operations that don't require immediate execution or that need to be processed in specific orders.
|
|
17
|
+
|
|
18
|
+
**Key Benefit**: Enables asynchronous processing that improves system responsiveness while providing reliable command execution guarantees.
|
|
19
|
+
|
|
20
|
+
## Core Queue Architecture
|
|
21
|
+
|
|
22
|
+
### Command Encapsulation
|
|
23
|
+
Design command objects that encapsulate all necessary information for execution, including parameters, context, and execution requirements.
|
|
24
|
+
|
|
25
|
+
### Queue Management System
|
|
26
|
+
Implement queue management that handles command storage, ordering, priority processing, and execution coordination.
|
|
27
|
+
|
|
28
|
+
### Processing Engine Design
|
|
29
|
+
Create processing engines that can reliably execute queued commands while handling errors, retries, and recovery scenarios.
|
|
30
|
+
|
|
31
|
+
## Implementation Patterns
|
|
32
|
+
|
|
33
|
+
### FIFO Queue Processing
|
|
34
|
+
Implement first-in-first-out queue processing for scenarios where command execution order is critical for business logic correctness.
|
|
35
|
+
|
|
36
|
+
### Priority Queue Handling
|
|
37
|
+
Design priority-based queue processing that ensures high-priority commands receive expedited processing while maintaining overall queue progress.
|
|
38
|
+
|
|
39
|
+
### Batch Processing Integration
|
|
40
|
+
Integrate queue processing with batch processing capabilities to enable efficient handling of large command volumes.
|
|
41
|
+
|
|
42
|
+
## Advanced Queue Features
|
|
43
|
+
|
|
44
|
+
### Command Scheduling
|
|
45
|
+
Implement scheduling capabilities that allow commands to be queued for future execution at specific times or after specific delays.
|
|
46
|
+
|
|
47
|
+
### Command Dependencies
|
|
48
|
+
Design dependency tracking that ensures prerequisite commands complete successfully before dependent commands execute.
|
|
49
|
+
|
|
50
|
+
### Transaction Integration
|
|
51
|
+
Integrate command processing with transaction management to ensure data consistency and enable rollback scenarios.
|
|
52
|
+
|
|
53
|
+
## Error Handling and Reliability
|
|
54
|
+
|
|
55
|
+
### Retry Mechanisms
|
|
56
|
+
- Implement intelligent retry policies for failed command execution
|
|
57
|
+
- Support different retry strategies based on error types and command characteristics
|
|
58
|
+
- Provide exponential backoff to prevent system overload during error scenarios
|
|
59
|
+
- Log retry attempts for debugging and monitoring purposes
|
|
60
|
+
|
|
61
|
+
### Dead Letter Queues
|
|
62
|
+
- Design dead letter queues for commands that cannot be processed successfully
|
|
63
|
+
- Implement manual review and reprocessing capabilities for dead letter items
|
|
64
|
+
- Provide analysis tools for understanding command failure patterns
|
|
65
|
+
- Support command modification and requeuing after issue resolution
|
|
66
|
+
|
|
67
|
+
## Performance Optimization
|
|
68
|
+
|
|
69
|
+
### Queue Throughput
|
|
70
|
+
Optimize queue processing algorithms to maximize command throughput while maintaining system stability and resource efficiency.
|
|
71
|
+
|
|
72
|
+
### Memory Management
|
|
73
|
+
Implement efficient memory management for queued commands to prevent memory exhaustion during high-volume processing.
|
|
74
|
+
|
|
75
|
+
### Parallel Processing
|
|
76
|
+
Design parallel processing capabilities for independent commands to improve overall system throughput and responsiveness.
|
|
77
|
+
|
|
78
|
+
## Monitoring and Diagnostics
|
|
79
|
+
|
|
80
|
+
### Queue Health Monitoring
|
|
81
|
+
Implement comprehensive monitoring of queue health including length, processing rates, error rates, and performance metrics.
|
|
82
|
+
|
|
83
|
+
### Command Execution Tracking
|
|
84
|
+
Provide detailed tracking of command execution including timing, success rates, and failure analysis capabilities.
|
|
85
|
+
|
|
86
|
+
### Performance Analytics
|
|
87
|
+
Design analytics capabilities that can identify performance bottlenecks and optimization opportunities in queue processing.
|
|
88
|
+
|
|
89
|
+
## Integration Strategies
|
|
90
|
+
|
|
91
|
+
### Event-Driven Integration
|
|
92
|
+
Integrate command queues with event-driven architectures to enable reactive command processing based on business events.
|
|
93
|
+
|
|
94
|
+
### External System Integration
|
|
95
|
+
Design integration patterns that enable command queue coordination with external systems and services.
|
|
96
|
+
|
|
97
|
+
### API Integration
|
|
98
|
+
Implement API patterns that allow external systems to submit commands to queues while maintaining security and validation requirements.
|
|
99
|
+
|
|
100
|
+
## Security and Validation
|
|
101
|
+
|
|
102
|
+
### Command Validation
|
|
103
|
+
- Implement comprehensive validation for queued commands before execution
|
|
104
|
+
- Validate user permissions and authorization for command execution
|
|
105
|
+
- Support command sanitization to prevent security vulnerabilities
|
|
106
|
+
- Audit command execution for compliance and security monitoring
|
|
107
|
+
|
|
108
|
+
### Access Control
|
|
109
|
+
- Control access to command queuing and management capabilities
|
|
110
|
+
- Implement role-based access to different queue operations
|
|
111
|
+
- Support secure command parameter handling for sensitive data
|
|
112
|
+
- Provide audit trails for command queue operations
|
|
113
|
+
|
|
114
|
+
## Best Practices
|
|
115
|
+
|
|
116
|
+
### Design Principles
|
|
117
|
+
- Design commands to be idempotent to support safe retry operations
|
|
118
|
+
- Implement comprehensive logging for command execution and queue operations
|
|
119
|
+
- Use dependency injection for command implementation flexibility
|
|
120
|
+
- Keep command implementations focused and single-purpose
|
|
121
|
+
|
|
122
|
+
### Operational Excellence
|
|
123
|
+
- Provide clear documentation for command queue configuration and management
|
|
124
|
+
- Implement automated testing for queue processing logic
|
|
125
|
+
- Support queue processing simulation and testing capabilities
|
|
126
|
+
- Maintain clear operational procedures for queue management
|
|
127
|
+
|
|
128
|
+
## Common Pitfalls
|
|
129
|
+
|
|
130
|
+
### Queue Overflow
|
|
131
|
+
Avoid scenarios where command queues can grow unbounded, leading to memory exhaustion and system performance degradation.
|
|
132
|
+
|
|
133
|
+
### Command Coupling
|
|
134
|
+
Prevent tight coupling between command implementations that reduces system flexibility and maintenance.
|
|
135
|
+
|
|
136
|
+
### Processing Bottlenecks
|
|
137
|
+
Identify and prevent processing bottlenecks that can cause queue backups and system responsiveness issues.
|
|
138
|
+
|
|
139
|
+
*Complete command queue implementation: samples/command-queue-pattern.md*
|
|
140
|
+
*Task scheduling integration: task-scheduler-pattern-implementation.md*
|
|
141
|
+
*Event-driven patterns: event-bridge-pattern-al.md*
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "DeleteAll Alternative Implementation"
|
|
3
|
+
domain: "sam-coder"
|
|
4
|
+
difficulty: "advanced"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["deleteall", "alternatives", "implementation", "patterns"]
|
|
7
|
+
samples: "samples/deleteall-alternative-implementation.md"
|
|
8
|
+
---
|
|
9
|
+
# DeleteAll Alternative Implementation
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
While DeleteAll provides comprehensive business logic enforcement through OnDelete trigger execution, many scenarios require alternative approaches that prioritize performance, custom logic, or specific operational requirements.
|
|
14
|
+
|
|
15
|
+
**Key Consideration**: Alternative implementations trade business logic automation for performance or flexibility - this trade-off must align with specific business requirements.
|
|
16
|
+
|
|
17
|
+
**Common Scenarios for Alternatives**:
|
|
18
|
+
- High-performance bulk operations where trigger execution creates unacceptable delays
|
|
19
|
+
- Custom business logic requirements that extend beyond standard OnDelete trigger capabilities
|
|
20
|
+
- Integration scenarios requiring specialized error handling and recovery mechanisms
|
|
21
|
+
- Complex data transformation operations during deletion processes
|
|
22
|
+
|
|
23
|
+
## Strategic Implementation Approaches
|
|
24
|
+
|
|
25
|
+
### Direct Database Operations
|
|
26
|
+
|
|
27
|
+
**SQL DELETE Operations**: Maximum performance approach bypassing all BC business logic layer processing.
|
|
28
|
+
|
|
29
|
+
**Use Case Scenarios**:
|
|
30
|
+
- Simple cleanup operations on isolated tables without related data dependencies
|
|
31
|
+
- System maintenance operations where business rule enforcement is unnecessary
|
|
32
|
+
- Temporary data removal where audit trails and logging are not required
|
|
33
|
+
- Performance-critical operations where trigger execution overhead is prohibitive
|
|
34
|
+
|
|
35
|
+
**Risk Assessment**:
|
|
36
|
+
- Data integrity violations possible if business logic requirements are misunderstood
|
|
37
|
+
- Related table orphaned data creation if cleanup logic is inadequate
|
|
38
|
+
- Compliance violation potential if audit trail requirements are not properly implemented
|
|
39
|
+
- Future maintenance complexity increases with custom implementation scope
|
|
40
|
+
|
|
41
|
+
### Custom Deletion Procedures
|
|
42
|
+
|
|
43
|
+
**Controlled Business Logic Implementation**: Selective implementation of essential business logic with performance optimization.
|
|
44
|
+
|
|
45
|
+
**Design Patterns**:
|
|
46
|
+
- Extract critical OnDelete trigger logic into dedicated validation procedures
|
|
47
|
+
- Implement batch processing patterns for large dataset operations with progress tracking
|
|
48
|
+
- Design custom error handling and recovery mechanisms for specific operational scenarios
|
|
49
|
+
- Create specialized audit and logging procedures tailored to deletion operation requirements
|
|
50
|
+
|
|
51
|
+
**Performance Optimization Techniques**:
|
|
52
|
+
- Batch record processing to reduce database round-trip overhead
|
|
53
|
+
- Optimized transaction boundary management for improved throughput
|
|
54
|
+
- Progress tracking and user communication for long-running operations
|
|
55
|
+
- Parallel processing implementation where business logic constraints permit
|
|
56
|
+
|
|
57
|
+
### Hybrid Approaches
|
|
58
|
+
|
|
59
|
+
**Selective DeleteAll Usage**: Combining DeleteAll with alternative approaches based on operation characteristics.
|
|
60
|
+
|
|
61
|
+
**Conditional Logic Implementation**:
|
|
62
|
+
- Use DeleteAll for small datasets where performance impact is acceptable
|
|
63
|
+
- Implement custom logic for large datasets requiring performance optimization
|
|
64
|
+
- Apply different strategies based on table complexity and related data relationships
|
|
65
|
+
- Design fallback mechanisms for error conditions and exceptional scenarios
|
|
66
|
+
|
|
67
|
+
## Implementation Framework
|
|
68
|
+
|
|
69
|
+
### Requirements Analysis
|
|
70
|
+
- Catalog all OnDelete trigger logic and classify by criticality to business operations
|
|
71
|
+
- Identify related table relationships and cascade operation requirements
|
|
72
|
+
- Assess audit trail and compliance logging requirements for deletion operations
|
|
73
|
+
- Define acceptable performance thresholds for different types of deletion operations
|
|
74
|
+
|
|
75
|
+
### Architecture Design
|
|
76
|
+
- Design modular deletion procedure architecture supporting multiple implementation strategies
|
|
77
|
+
- Implement configuration-driven approach enabling runtime selection of deletion methods
|
|
78
|
+
- Create standardized interfaces for deletion operations supporting consistent error handling
|
|
79
|
+
- Plan integration with existing BC business logic and validation procedures
|
|
80
|
+
|
|
81
|
+
## Anti-Patterns
|
|
82
|
+
|
|
83
|
+
### Business Logic Neglect
|
|
84
|
+
**Dangerous Oversimplification**: Implementing alternatives without proper business logic consideration. Bypassing essential validation logic creates data integrity risks and compliance violations.
|
|
85
|
+
|
|
86
|
+
### Performance Assumption Errors
|
|
87
|
+
**Premature Optimization**: Implementing complex alternatives without validating DeleteAll performance limitations. Thoroughly evaluate DeleteAll performance before committing to alternative implementation effort.
|
|
88
|
+
|
|
89
|
+
### Incomplete Implementation
|
|
90
|
+
**Partial Logic Implementation**: Creating alternatives that inadequately replace DeleteAll functionality. Ensure alternative solutions provide equivalent functionality where business requirements demand it.
|
|
91
|
+
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "DeleteAll Method Usage"
|
|
3
|
+
domain: "sam-coder"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["deleteall", "data-manipulation", "triggers"]
|
|
7
|
+
prerequisites: ["table-basics", "record-management"]
|
|
8
|
+
samples: "samples/deleteall-usage.md"
|
|
9
|
+
---
|
|
10
|
+
# DeleteAll Method Usage
|
|
11
|
+
|
|
12
|
+
## Overview
|
|
13
|
+
|
|
14
|
+
DeleteAll is a BC method that removes all records from a table or filtered set while executing OnDelete triggers for each record. Unlike direct SQL DELETE operations, DeleteAll maintains full BC business logic compliance by triggering all associated validations and cascading operations.
|
|
15
|
+
|
|
16
|
+
**Key Characteristic**: Always executes OnDelete triggers - this is fundamental BC behavior that cannot be bypassed.
|
|
17
|
+
|
|
18
|
+
**Primary Use Cases**:
|
|
19
|
+
- Clearing temporary data with proper cleanup
|
|
20
|
+
- Bulk deletions requiring business logic validation
|
|
21
|
+
- Data maintenance operations preserving referential integrity
|
|
22
|
+
- Cleanup operations in test scenarios
|
|
23
|
+
|
|
24
|
+
**Critical Understanding**: DeleteAll is not a performance optimization - it's a business logic preservation tool that executes triggers for every deleted record.
|
|
25
|
+
|
|
26
|
+
## Strategic Framework
|
|
27
|
+
|
|
28
|
+
### When DeleteAll is Appropriate
|
|
29
|
+
|
|
30
|
+
**Data Integrity Scenarios**:
|
|
31
|
+
- Clearing temporary tables where related data must be cleaned up
|
|
32
|
+
- Removing test data while maintaining proper audit trails
|
|
33
|
+
- Bulk operations where business rules must be enforced
|
|
34
|
+
- Scenarios requiring cascade delete operations
|
|
35
|
+
|
|
36
|
+
**Business Logic Requirements**:
|
|
37
|
+
- Operations requiring OnDelete trigger execution
|
|
38
|
+
- Scenarios where related table updates are necessary
|
|
39
|
+
- Situations demanding proper logging and audit trail maintenance
|
|
40
|
+
- Cases where validation logic must run for each deletion
|
|
41
|
+
|
|
42
|
+
### When DeleteAll is Inappropriate
|
|
43
|
+
|
|
44
|
+
**Performance-Critical Operations**:
|
|
45
|
+
- Large dataset deletions where triggers are unnecessary
|
|
46
|
+
- Bulk cleanup operations on isolated data
|
|
47
|
+
- System maintenance requiring maximum speed
|
|
48
|
+
- Operations on tables without significant business logic
|
|
49
|
+
|
|
50
|
+
**Alternative Consideration Points**:
|
|
51
|
+
- Direct SQL operations for simple, non-validated deletions
|
|
52
|
+
- Batch processing approaches for very large datasets
|
|
53
|
+
- Specialized cleanup procedures for system maintenance
|
|
54
|
+
- Custom deletion logic for complex business scenarios
|
|
55
|
+
|
|
56
|
+
## Implementation Considerations
|
|
57
|
+
|
|
58
|
+
### Trigger Execution Impact
|
|
59
|
+
|
|
60
|
+
**Performance Implications**:
|
|
61
|
+
- Each record deletion executes full OnDelete trigger logic
|
|
62
|
+
- Related table updates and validations occur for every record
|
|
63
|
+
- Memory usage scales with trigger complexity and related data volume
|
|
64
|
+
- Network traffic increases with extensive related table operations
|
|
65
|
+
|
|
66
|
+
**Business Logic Preservation**:
|
|
67
|
+
- Maintains complete data integrity across all related tables
|
|
68
|
+
- Ensures proper audit trail and logging execution
|
|
69
|
+
- Preserves cascade delete operations and referential integrity
|
|
70
|
+
- Executes all custom business validation logic
|
|
71
|
+
|
|
72
|
+
### Error Handling Strategy
|
|
73
|
+
|
|
74
|
+
**Validation Failures**:
|
|
75
|
+
- Any OnDelete trigger failure stops the entire DeleteAll operation
|
|
76
|
+
- Partial deletions can occur if errors happen mid-process
|
|
77
|
+
- Transaction boundaries depend on implementation context
|
|
78
|
+
- Error recovery requires understanding of deletion state
|
|
79
|
+
|
|
80
|
+
**Recovery Patterns**:
|
|
81
|
+
- Implement proper transaction management around DeleteAll calls
|
|
82
|
+
- Design retry logic for recoverable validation failures
|
|
83
|
+
- Plan for partial completion scenarios and cleanup procedures
|
|
84
|
+
- Consider logging and monitoring for deletion operation tracking
|
|
85
|
+
|
|
86
|
+
## Best Practices
|
|
87
|
+
|
|
88
|
+
### Effective DeleteAll Usage
|
|
89
|
+
|
|
90
|
+
**Preparation Steps**:
|
|
91
|
+
- Verify that OnDelete triggers contain necessary business logic
|
|
92
|
+
- Ensure related data can handle the deletion operations
|
|
93
|
+
- Test deletion operations in controlled environments first
|
|
94
|
+
- Implement proper error handling and recovery procedures
|
|
95
|
+
|
|
96
|
+
**Execution Patterns**:
|
|
97
|
+
- Use appropriate filters to limit deletion scope
|
|
98
|
+
- Consider batch processing for very large datasets
|
|
99
|
+
- Implement progress tracking for long-running operations
|
|
100
|
+
- Plan for proper transaction boundaries and commit strategies
|
|
101
|
+
|
|
102
|
+
### Monitoring and Validation
|
|
103
|
+
- Monitor deletion progress and performance impact
|
|
104
|
+
- Validate that expected business logic executes correctly
|
|
105
|
+
- Verify related table cleanup occurs as designed
|
|
106
|
+
- Validate data integrity across all affected tables
|
|
107
|
+
|
|
108
|
+
## Anti-Patterns
|
|
109
|
+
|
|
110
|
+
### Performance Misunderstanding
|
|
111
|
+
**Incorrect Assumption**: Using DeleteAll for performance optimization. DeleteAll executes triggers, making it slower than direct SQL operations.
|
|
112
|
+
|
|
113
|
+
### Trigger Logic Avoidance
|
|
114
|
+
**Incorrect Pattern**: Attempting to bypass OnDelete triggers with DeleteAll. DeleteAll always executes OnDelete triggers - this cannot be disabled.
|
|
115
|
+
|
|
116
|
+
### Insufficient Error Handling
|
|
117
|
+
**Problematic Implementation**: Assuming DeleteAll operations always succeed. Implement comprehensive error handling and recovery procedures.
|
|
118
|
+
|