@jwikman/bc-code-intelligence-mcp 1.5.7-dev.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 +165 -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 +440 -0
- package/dist/cli/bc-code-intel-cli.js.map +1 -0
- package/dist/config/config-loader.d.ts +28 -0
- package/dist/config/config-loader.d.ts.map +1 -0
- package/dist/config/config-loader.js +497 -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 +608 -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 +82 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1211 -0
- package/dist/index.js.map +1 -0
- package/dist/layers/base-layer.d.ts +133 -0
- package/dist/layers/base-layer.d.ts.map +1 -0
- package/dist/layers/base-layer.js +290 -0
- package/dist/layers/base-layer.js.map +1 -0
- package/dist/layers/embedded-layer.d.ts +130 -0
- package/dist/layers/embedded-layer.d.ts.map +1 -0
- package/dist/layers/embedded-layer.js +612 -0
- package/dist/layers/embedded-layer.js.map +1 -0
- package/dist/layers/git-layer.d.ts +77 -0
- package/dist/layers/git-layer.d.ts.map +1 -0
- package/dist/layers/git-layer.js +529 -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 +135 -0
- package/dist/layers/layer-service.d.ts.map +1 -0
- package/dist/layers/layer-service.js +586 -0
- package/dist/layers/layer-service.js.map +1 -0
- package/dist/layers/project-layer.d.ts +58 -0
- package/dist/layers/project-layer.d.ts.map +1 -0
- package/dist/layers/project-layer.js +286 -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 +358 -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 +818 -0
- package/dist/services/code-analysis-service.js.map +1 -0
- package/dist/services/enhanced-prompt-service.d.ts +56 -0
- package/dist/services/enhanced-prompt-service.d.ts.map +1 -0
- package/dist/services/enhanced-prompt-service.js +165 -0
- package/dist/services/enhanced-prompt-service.js.map +1 -0
- package/dist/services/knowledge-service.d.ts +90 -0
- package/dist/services/knowledge-service.d.ts.map +1 -0
- package/dist/services/knowledge-service.js +342 -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 +423 -0
- package/dist/services/methodology-service.js.map +1 -0
- package/dist/services/multi-content-layer-service.d.ts +198 -0
- package/dist/services/multi-content-layer-service.d.ts.map +1 -0
- package/dist/services/multi-content-layer-service.js +991 -0
- package/dist/services/multi-content-layer-service.js.map +1 -0
- package/dist/services/roleplay-engine.d.ts +161 -0
- package/dist/services/roleplay-engine.d.ts.map +1 -0
- package/dist/services/roleplay-engine.js +994 -0
- package/dist/services/roleplay-engine.js.map +1 -0
- package/dist/services/session-storage/file-storage.d.ts +30 -0
- package/dist/services/session-storage/file-storage.d.ts.map +1 -0
- package/dist/services/session-storage/file-storage.js +229 -0
- package/dist/services/session-storage/file-storage.js.map +1 -0
- package/dist/services/session-storage/in-memory-storage.d.ts +31 -0
- package/dist/services/session-storage/in-memory-storage.d.ts.map +1 -0
- package/dist/services/session-storage/in-memory-storage.js +142 -0
- package/dist/services/session-storage/in-memory-storage.js.map +1 -0
- package/dist/services/specialist-discovery.d.ts +98 -0
- package/dist/services/specialist-discovery.d.ts.map +1 -0
- package/dist/services/specialist-discovery.js +387 -0
- package/dist/services/specialist-discovery.js.map +1 -0
- package/dist/services/specialist-loader.d.ts +101 -0
- package/dist/services/specialist-loader.d.ts.map +1 -0
- package/dist/services/specialist-loader.js +256 -0
- package/dist/services/specialist-loader.js.map +1 -0
- package/dist/services/specialist-session-manager.d.ts +76 -0
- package/dist/services/specialist-session-manager.d.ts.map +1 -0
- package/dist/services/specialist-session-manager.js +255 -0
- package/dist/services/specialist-session-manager.js.map +1 -0
- package/dist/services/workflow-service.d.ts +146 -0
- package/dist/services/workflow-service.d.ts.map +1 -0
- package/dist/services/workflow-service.js +409 -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 +94 -0
- package/dist/streamlined-handlers.d.ts.map +1 -0
- package/dist/streamlined-handlers.js +665 -0
- package/dist/streamlined-handlers.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/tools/config-diagnostic-tools.d.ts +234 -0
- package/dist/tools/config-diagnostic-tools.d.ts.map +1 -0
- package/dist/tools/config-diagnostic-tools.js +887 -0
- package/dist/tools/config-diagnostic-tools.js.map +1 -0
- package/dist/tools/core-tools.d.ts +26 -0
- package/dist/tools/core-tools.d.ts.map +1 -0
- package/dist/tools/core-tools.js +241 -0
- package/dist/tools/core-tools.js.map +1 -0
- package/dist/tools/handoff-tools.d.ts +37 -0
- package/dist/tools/handoff-tools.d.ts.map +1 -0
- package/dist/tools/handoff-tools.js +265 -0
- package/dist/tools/handoff-tools.js.map +1 -0
- package/dist/tools/index.d.ts +61 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +75 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/onboarding-tools.d.ts +43 -0
- package/dist/tools/onboarding-tools.d.ts.map +1 -0
- package/dist/tools/onboarding-tools.js +353 -0
- package/dist/tools/onboarding-tools.js.map +1 -0
- package/dist/tools/specialist-discovery-tools.d.ts +27 -0
- package/dist/tools/specialist-discovery-tools.d.ts.map +1 -0
- package/dist/tools/specialist-discovery-tools.js +275 -0
- package/dist/tools/specialist-discovery-tools.js.map +1 -0
- package/dist/tools/specialist-tools.d.ts +43 -0
- package/dist/tools/specialist-tools.d.ts.map +1 -0
- package/dist/tools/specialist-tools.js +372 -0
- package/dist/tools/specialist-tools.js.map +1 -0
- package/dist/tools/workspace-tools.d.ts +96 -0
- package/dist/tools/workspace-tools.d.ts.map +1 -0
- package/dist/tools/workspace-tools.js +188 -0
- package/dist/tools/workspace-tools.js.map +1 -0
- package/dist/types/bc-knowledge.d.ts +303 -0
- package/dist/types/bc-knowledge.d.ts.map +1 -0
- package/dist/types/bc-knowledge.js +69 -0
- package/dist/types/bc-knowledge.js.map +1 -0
- package/dist/types/config-types.d.ts +186 -0
- package/dist/types/config-types.d.ts.map +1 -0
- package/dist/types/config-types.js +109 -0
- package/dist/types/config-types.js.map +1 -0
- package/dist/types/enhanced-layer-types.d.ts +193 -0
- package/dist/types/enhanced-layer-types.d.ts.map +1 -0
- package/dist/types/enhanced-layer-types.js +9 -0
- package/dist/types/enhanced-layer-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 +173 -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/roleplay-types.d.ts +156 -0
- package/dist/types/roleplay-types.d.ts.map +1 -0
- package/dist/types/roleplay-types.js +8 -0
- package/dist/types/roleplay-types.js.map +1 -0
- package/dist/types/session-types.d.ts +127 -0
- package/dist/types/session-types.d.ts.map +1 -0
- package/dist/types/session-types.js +8 -0
- package/dist/types/session-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 +178 -0
- package/embedded-knowledge/CONTRIBUTING.md +58 -0
- package/embedded-knowledge/LICENSE +21 -0
- package/embedded-knowledge/README.md +32 -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/delegating-to-github-copilot-agents.md +371 -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/object-id-ninja-integration.md +281 -0
- package/embedded-knowledge/domains/alex-architect/recommend-object-id-ninja.md +248 -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/samples/testability-design-patterns.md +223 -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/alex-architect/testability-design-patterns.md +77 -0
- package/embedded-knowledge/domains/casey-copilot/long-running-session-instructions.md +263 -0
- package/embedded-knowledge/domains/casey-copilot/samples/long-running-session-instructions.md +323 -0
- package/embedded-knowledge/domains/chris-config/configuration-file-discovery.md +846 -0
- package/embedded-knowledge/domains/chris-config/configuration-file-formats.md +595 -0
- package/embedded-knowledge/domains/chris-config/content-types-structure.md +421 -0
- package/embedded-knowledge/domains/chris-config/knowledge-content-creation.md +437 -0
- package/embedded-knowledge/domains/chris-config/layer-system-fundamentals.md +257 -0
- package/embedded-knowledge/domains/chris-config/multi-team-layer-configuration.md +302 -0
- package/embedded-knowledge/domains/chris-config/workspace-detection-solutions.md +336 -0
- package/embedded-knowledge/domains/dean-debug/bc-telemetry-buddy-integration.md +453 -0
- package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +360 -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/recommend-bc-telemetry-buddy.md +160 -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/codeunit-run-pattern.md +159 -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/codeunit-run-pattern.md +239 -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/samples/try-function-usage.md +195 -0
- package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +80 -0
- package/embedded-knowledge/domains/eva-errors/try-function-usage.md +129 -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/morgan-market/partner-readiness-analysis.md +201 -0
- package/embedded-knowledge/domains/morgan-market/samples/partner-readiness-checklist.md +288 -0
- package/embedded-knowledge/domains/parker-pragmatic/README.md +39 -0
- package/embedded-knowledge/domains/parker-pragmatic/proposal-workflows/creating-effective-proposals.md +583 -0
- package/embedded-knowledge/domains/parker-pragmatic/trust-building/working-with-ai-skeptics.md +587 -0
- package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +119 -0
- package/embedded-knowledge/domains/quinn-tester/isolation-testing-patterns.md +82 -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/isolation-testing-patterns.md +424 -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/roger-reviewer/samples/testability-code-smells.md +256 -0
- package/embedded-knowledge/domains/roger-reviewer/testability-code-smells.md +67 -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/shared/al-file-naming-conventions.md +146 -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/embedded-knowledge/methodologies/workflows/proposal-review-workflow.md +535 -0
- package/embedded-knowledge/specialists/alex-architect.md +305 -0
- package/embedded-knowledge/specialists/casey-copilot.md +314 -0
- package/embedded-knowledge/specialists/chris-config.md +226 -0
- package/embedded-knowledge/specialists/dean-debug.md +365 -0
- package/embedded-knowledge/specialists/eva-errors.md +291 -0
- package/embedded-knowledge/specialists/jordan-bridge.md +291 -0
- package/embedded-knowledge/specialists/logan-legacy.md +265 -0
- package/embedded-knowledge/specialists/maya-mentor.md +299 -0
- package/embedded-knowledge/specialists/morgan-market.md +281 -0
- package/embedded-knowledge/specialists/parker-pragmatic.md +564 -0
- package/embedded-knowledge/specialists/quinn-tester.md +323 -0
- package/embedded-knowledge/specialists/roger-reviewer.md +317 -0
- package/embedded-knowledge/specialists/sam-coder.md +342 -0
- package/embedded-knowledge/specialists/seth-security.md +290 -0
- package/embedded-knowledge/specialists/taylor-docs.md +312 -0
- package/embedded-knowledge/specialists/uma-ux.md +291 -0
- package/package.json +82 -0
|
@@ -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
|
+
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "DeleteAll Trigger Execution"
|
|
3
|
+
domain: "sam-coder"
|
|
4
|
+
difficulty: "advanced"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["deleteall", "triggers", "ondelete", "execution-flow"]
|
|
7
|
+
prerequisites: ["deleteall-method-usage", "table-triggers", "transaction-management"]
|
|
8
|
+
samples: "samples/deleteall-triggers.md"
|
|
9
|
+
---
|
|
10
|
+
# DeleteAll Trigger Execution
|
|
11
|
+
|
|
12
|
+
## Overview
|
|
13
|
+
|
|
14
|
+
DeleteAll method execution in BC follows a specific trigger execution pattern that ensures business logic consistency while processing bulk deletions. Understanding this execution flow is crucial for designing proper OnDelete triggers and predicting system behavior during bulk operations.
|
|
15
|
+
|
|
16
|
+
**Core Behavior**: DeleteAll executes OnDelete triggers for every individual record, maintaining complete business logic enforcement at the cost of performance.
|
|
17
|
+
|
|
18
|
+
**Execution Pattern**: Sequential processing of each record with full trigger execution, validation, and related table operations.
|
|
19
|
+
|
|
20
|
+
## Trigger Execution Flow
|
|
21
|
+
|
|
22
|
+
### Individual Record Processing
|
|
23
|
+
DeleteAll processes records sequentially, executing the complete OnDelete trigger chain for each record. This ensures business logic consistency but creates performance overhead proportional to record count and trigger complexity.
|
|
24
|
+
|
|
25
|
+
### Trigger Execution Sequence
|
|
26
|
+
1. **Record Selection**: DeleteAll identifies records matching filter criteria
|
|
27
|
+
2. **OnDelete Trigger Execution**: Full trigger logic executes for each record
|
|
28
|
+
3. **Validation Processing**: All validation logic and business rules execute
|
|
29
|
+
4. **Related Table Operations**: Cascade deletes and related table updates occur
|
|
30
|
+
5. **Transaction Management**: Individual record operations within transaction boundaries
|
|
31
|
+
|
|
32
|
+
### Business Logic Preservation
|
|
33
|
+
OnDelete triggers execute with full access to record context, related data, and system state. This enables complex business logic including audit logging, cascade operations, and custom validation rules.
|
|
34
|
+
|
|
35
|
+
## Performance Implications
|
|
36
|
+
|
|
37
|
+
### Execution Overhead Sources
|
|
38
|
+
- Individual record processing prevents batch optimization
|
|
39
|
+
- OnDelete trigger execution adds computational overhead per record
|
|
40
|
+
- Related table operations multiply database interactions
|
|
41
|
+
- Validation logic extends processing time per record
|
|
42
|
+
- Transaction management creates additional resource utilization
|
|
43
|
+
|
|
44
|
+
### Scalability Characteristics
|
|
45
|
+
- Linear performance degradation with record count increase
|
|
46
|
+
- Multiplicative impact from complex OnDelete trigger logic
|
|
47
|
+
- Network round-trip multiplication with related table operations
|
|
48
|
+
- Memory usage accumulation with trigger execution complexity
|
|
49
|
+
|
|
50
|
+
## Trigger Design Considerations
|
|
51
|
+
|
|
52
|
+
### Performance-Conscious Trigger Design
|
|
53
|
+
- Minimize database operations within OnDelete triggers
|
|
54
|
+
- Use efficient queries and avoid complex calculations
|
|
55
|
+
- Implement conditional logic to skip unnecessary processing
|
|
56
|
+
- Consider batch operations for related table updates where possible
|
|
57
|
+
|
|
58
|
+
### Business Logic Optimization
|
|
59
|
+
- Separate essential validation from optional logging operations
|
|
60
|
+
- Use TryFunction patterns for non-critical operations that might fail
|
|
61
|
+
- Implement proper error handling to prevent cascade failures
|
|
62
|
+
- Design triggers to be testable and maintainable
|
|
63
|
+
|
|
64
|
+
### Related Table Management
|
|
65
|
+
- Design efficient cascade delete patterns
|
|
66
|
+
- Minimize related table lookups and updates
|
|
67
|
+
- Use appropriate transaction boundaries for related operations
|
|
68
|
+
- Consider using temporary tables for complex related data processing
|
|
69
|
+
|
|
70
|
+
## Common Implementation Patterns
|
|
71
|
+
|
|
72
|
+
### Audit Trail Implementation
|
|
73
|
+
OnDelete triggers commonly implement audit trail logging by capturing deleted record information before removal. Design efficient logging procedures that minimize performance impact.
|
|
74
|
+
|
|
75
|
+
### Cascade Delete Operations
|
|
76
|
+
Related table cleanup through OnDelete triggers ensures referential integrity. Implement cascade patterns that balance completeness with performance requirements.
|
|
77
|
+
|
|
78
|
+
### Validation and Business Rules
|
|
79
|
+
OnDelete triggers enforce business rules during deletion operations. Design validation logic that fails fast and provides meaningful error messages.
|
|
80
|
+
|
|
81
|
+
## Best Practices
|
|
82
|
+
|
|
83
|
+
### Trigger Development
|
|
84
|
+
- Keep OnDelete triggers focused on essential business logic
|
|
85
|
+
- Avoid complex calculations or external system calls in triggers
|
|
86
|
+
- Implement proper error handling and recovery mechanisms
|
|
87
|
+
- Design triggers to be testable in isolation
|
|
88
|
+
|
|
89
|
+
### Performance Management
|
|
90
|
+
- Profile trigger execution under realistic data volumes
|
|
91
|
+
- Monitor system resource utilization during DeleteAll operations
|
|
92
|
+
- Implement appropriate timeout and cancellation mechanisms
|
|
93
|
+
- Consider alternative approaches for performance-critical scenarios
|
|
94
|
+
|
|
95
|
+
### Testing and Validation
|
|
96
|
+
- Test OnDelete triggers with various record states and conditions
|
|
97
|
+
- Validate trigger behavior under high-volume deletion scenarios
|
|
98
|
+
- Verify proper error handling and rollback behavior
|
|
99
|
+
- Test concurrent operation impact on trigger execution
|
|
100
|
+
|
|
101
|
+
## Anti-Patterns
|
|
102
|
+
|
|
103
|
+
### Performance-Blind Trigger Design
|
|
104
|
+
**Problematic Pattern**: Implementing complex OnDelete triggers without considering DeleteAll performance impact. Complex trigger logic compounds performance overhead and can make bulk deletions prohibitively slow.
|
|
105
|
+
|
|
106
|
+
### Inadequate Error Handling
|
|
107
|
+
**Risk Pattern**: OnDelete triggers that fail without proper error handling can leave DeleteAll operations in inconsistent states. Implement comprehensive error handling and rollback mechanisms.
|
|
108
|
+
|
|
109
|
+
### External System Dependencies
|
|
110
|
+
**Dangerous Pattern**: OnDelete triggers that depend on external systems create reliability risks. External system failures can block all deletion operations and create operational problems.
|
|
111
|
+
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Event Bridge Pattern in AL"
|
|
3
|
+
domain: "sam-coder"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["event-bridge", "event-routing", "message-patterns", "loose-coupling"]
|
|
7
|
+
prerequisites: ["event-basics", "publisher-subscriber", "interface-implementation"]
|
|
8
|
+
samples: "samples/event-bridge-pattern.md"
|
|
9
|
+
related_topics: ["event-payload-design-patterns", "command-queue-pattern-al"]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Event Bridge Pattern in AL
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
The Event Bridge Pattern provides a centralized mechanism for routing events between different modules and systems while maintaining loose coupling. This pattern enables complex event-driven architectures where events can be transformed, filtered, and routed based on dynamic criteria.
|
|
17
|
+
|
|
18
|
+
**Key Benefit**: Enables flexible event routing and transformation without direct dependencies between event producers and consumers.
|
|
19
|
+
|
|
20
|
+
## Core Bridge Architecture
|
|
21
|
+
|
|
22
|
+
### Central Event Hub
|
|
23
|
+
Implement a central event hub that receives events from multiple sources and routes them to appropriate handlers based on routing rules and event characteristics.
|
|
24
|
+
|
|
25
|
+
### Event Transformation
|
|
26
|
+
Design transformation capabilities that can modify event payloads, add metadata, or convert between different event formats during routing.
|
|
27
|
+
|
|
28
|
+
### Dynamic Routing Rules
|
|
29
|
+
Implement configurable routing rules that determine which handlers receive specific events based on event type, content, or source characteristics.
|
|
30
|
+
|
|
31
|
+
## Implementation Patterns
|
|
32
|
+
|
|
33
|
+
### Bridge Interface Design
|
|
34
|
+
Define clear interfaces for event producers, the bridge itself, and event consumers to ensure consistent interaction patterns.
|
|
35
|
+
|
|
36
|
+
### Event Registration System
|
|
37
|
+
Implement registration mechanisms where handlers can subscribe to specific event types or patterns through the bridge.
|
|
38
|
+
|
|
39
|
+
### Asynchronous Processing
|
|
40
|
+
Design asynchronous event processing capabilities to prevent bridge operations from blocking event producers.
|
|
41
|
+
|
|
42
|
+
## Advanced Bridge Features
|
|
43
|
+
|
|
44
|
+
### Event Filtering
|
|
45
|
+
Implement sophisticated filtering capabilities that can route events based on complex criteria including payload content and metadata.
|
|
46
|
+
|
|
47
|
+
### Multi-Protocol Support
|
|
48
|
+
Design bridges that can handle events from different sources (AL events, web hooks, message queues) and route them uniformly.
|
|
49
|
+
|
|
50
|
+
### Error Handling and Retry
|
|
51
|
+
Implement robust error handling with retry mechanisms for failed event delivery and transformation operations.
|
|
52
|
+
|
|
53
|
+
## Performance Optimization
|
|
54
|
+
|
|
55
|
+
### Routing Efficiency
|
|
56
|
+
Optimize event routing algorithms to minimize latency and processing overhead for high-frequency event scenarios.
|
|
57
|
+
|
|
58
|
+
### Buffer Management
|
|
59
|
+
Implement efficient buffering strategies for handling event bursts and managing memory usage during peak loads.
|
|
60
|
+
|
|
61
|
+
### Parallel Processing
|
|
62
|
+
Design parallel processing capabilities for independent event streams to maximize throughput and responsiveness.
|
|
63
|
+
|
|
64
|
+
## Bridge Configuration
|
|
65
|
+
|
|
66
|
+
### Rule-Based Routing
|
|
67
|
+
- Configure routing rules through setup tables or configuration files
|
|
68
|
+
- Support dynamic rule updates without system restarts
|
|
69
|
+
- Implement rule validation and testing capabilities
|
|
70
|
+
- Provide clear documentation for routing rule syntax
|
|
71
|
+
|
|
72
|
+
### Handler Management
|
|
73
|
+
- Enable dynamic handler registration and deregistration
|
|
74
|
+
- Support handler priority and ordering specifications
|
|
75
|
+
- Implement handler health monitoring and automatic failover
|
|
76
|
+
- Provide handler performance metrics and diagnostics
|
|
77
|
+
|
|
78
|
+
## Integration Strategies
|
|
79
|
+
|
|
80
|
+
### System Boundaries
|
|
81
|
+
Design bridge patterns that work effectively across system boundaries, supporting integration with external systems and services.
|
|
82
|
+
|
|
83
|
+
### Protocol Translation
|
|
84
|
+
Implement protocol translation capabilities that enable events to cross different communication protocols and message formats.
|
|
85
|
+
|
|
86
|
+
### State Management
|
|
87
|
+
Handle stateful event processing scenarios where the bridge needs to maintain context across multiple related events.
|
|
88
|
+
|
|
89
|
+
## Best Practices
|
|
90
|
+
|
|
91
|
+
### Design Principles
|
|
92
|
+
- Keep bridge logic focused on routing and transformation
|
|
93
|
+
- Implement comprehensive logging for event flow debugging
|
|
94
|
+
- Use dependency injection for bridge component management
|
|
95
|
+
- Design for horizontal scaling in high-volume scenarios
|
|
96
|
+
|
|
97
|
+
### Monitoring and Diagnostics
|
|
98
|
+
- Implement detailed event flow tracking and metrics
|
|
99
|
+
- Provide debugging capabilities for routing rule troubleshooting
|
|
100
|
+
- Monitor bridge performance and identify bottlenecks
|
|
101
|
+
- Support event replay capabilities for testing and debugging
|
|
102
|
+
|
|
103
|
+
## Common Pitfalls
|
|
104
|
+
|
|
105
|
+
### Bridge Complexity
|
|
106
|
+
Avoid creating overly complex bridge logic that becomes difficult to maintain and debug.
|
|
107
|
+
|
|
108
|
+
### Performance Bottlenecks
|
|
109
|
+
Prevent the bridge from becoming a performance bottleneck by implementing efficient routing and processing algorithms.
|
|
110
|
+
|
|
111
|
+
*Complete bridge implementation: samples/event-bridge-pattern.md*
|
|
112
|
+
*Event payload design: event-payload-design-patterns.md*
|
|
113
|
+
*Command patterns: command-queue-pattern-al.md*
|