@salesforce/afv-skills 1.8.0 → 1.9.0
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/package.json +1 -1
- package/skills/activating-datacloud/CREDITS.md +5 -0
- package/skills/activating-datacloud/README.md +39 -0
- package/skills/activating-datacloud/SKILL.md +118 -0
- package/skills/analyzing-omnistudio-dependencies/CREDITS.md +5 -0
- package/skills/analyzing-omnistudio-dependencies/SKILL.md +477 -0
- package/skills/analyzing-omnistudio-dependencies/references/dependency-patterns.md +508 -0
- package/skills/analyzing-omnistudio-dependencies/references/namespace-guide.md +300 -0
- package/skills/building-omnistudio-callable-apex/CREDITS.md +9 -0
- package/skills/building-omnistudio-callable-apex/README.md +80 -0
- package/skills/building-omnistudio-callable-apex/SKILL.md +276 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_callable_openinterface.cls +40 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_callable_vanilla.cls +32 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_migration.cls +54 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_openinterface.cls +45 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_test_class.cls +65 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/IndustriesCallableException.cls +7 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/Industries_QuoteByProductCallable.cls +115 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/Industries_QuoteByProductCallableTest.cls +189 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/TRANSCRIPT.md +115 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/IndustriesCallableException.cls +7 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomCallable.cls +74 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomCallableTest.cls +146 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomRemoteClass.cls +16 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/TRANSCRIPT.md +120 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/IndustriesCallableException.cls +7 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomCallable.cls +73 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomCallableTest.cls +128 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomVlocityOpenInterface2.cls +23 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/TRANSCRIPT.md +75 -0
- package/skills/building-omnistudio-datamapper/CREDITS.md +5 -0
- package/skills/building-omnistudio-datamapper/SKILL.md +270 -0
- package/skills/building-omnistudio-datamapper/assets/completion-summary-template.md +28 -0
- package/skills/building-omnistudio-datamapper/assets/omni-data-transform-extract.json +6 -0
- package/skills/building-omnistudio-datamapper/assets/omni-data-transform-item.json +12 -0
- package/skills/building-omnistudio-datamapper/assets/omni-data-transform-load.json +6 -0
- package/skills/building-omnistudio-datamapper/assets/omni-data-transform-transform.json +6 -0
- package/skills/building-omnistudio-datamapper/references/best-practices.md +277 -0
- package/skills/building-omnistudio-datamapper/references/naming-conventions.md +145 -0
- package/skills/building-omnistudio-flexcard/CREDITS.md +5 -0
- package/skills/building-omnistudio-flexcard/SKILL.md +325 -0
- package/skills/building-omnistudio-flexcard/assets/omni-ui-card.json +10 -0
- package/skills/building-omnistudio-flexcard/references/best-practices.md +291 -0
- package/skills/building-omnistudio-flexcard/references/data-binding-guide.md +311 -0
- package/skills/building-omnistudio-flexcard/references/scoring-rubric.md +66 -0
- package/skills/building-omnistudio-flexcard/scripts/flexcard-commands.sh +24 -0
- package/skills/building-omnistudio-integration-procedure/CREDITS.md +5 -0
- package/skills/building-omnistudio-integration-procedure/SKILL.md +275 -0
- package/skills/building-omnistudio-integration-procedure/assets/omni-process-element-dr-extract.json +10 -0
- package/skills/building-omnistudio-integration-procedure/assets/omni-process-element-set-values.json +10 -0
- package/skills/building-omnistudio-integration-procedure/assets/omni-process-ip.json +12 -0
- package/skills/building-omnistudio-integration-procedure/assets/scoring-report-format.txt +14 -0
- package/skills/building-omnistudio-integration-procedure/references/best-practices.md +388 -0
- package/skills/building-omnistudio-integration-procedure/references/element-types.md +588 -0
- package/skills/building-omnistudio-integration-procedure/scripts/cli-commands.sh +18 -0
- package/skills/building-omnistudio-omniscript/CREDITS.md +5 -0
- package/skills/building-omnistudio-omniscript/SKILL.md +367 -0
- package/skills/building-omnistudio-omniscript/assets/omni-process-element-step.json +10 -0
- package/skills/building-omnistudio-omniscript/assets/omni-process-element-text-block.json +11 -0
- package/skills/building-omnistudio-omniscript/assets/omni-process-omniscript.json +12 -0
- package/skills/building-omnistudio-omniscript/references/best-practices.md +480 -0
- package/skills/building-omnistudio-omniscript/references/element-types.md +1172 -0
- package/skills/building-omnistudio-omniscript/scripts/check-duplicate-omniscript.sh +13 -0
- package/skills/building-omnistudio-omniscript/scripts/cli-reference.sh +21 -0
- package/skills/building-omnistudio-omniscript/scripts/deploy-omniscript.sh +29 -0
- package/skills/building-sf-integrations/CREDITS.md +5 -0
- package/skills/building-sf-integrations/README.md +95 -0
- package/skills/building-sf-integrations/SKILL.md +192 -0
- package/skills/building-sf-integrations/assets/callouts/callout-retry-handler.cls +167 -0
- package/skills/building-sf-integrations/assets/callouts/http-response-handler.cls +257 -0
- package/skills/building-sf-integrations/assets/callouts/rest-queueable-callout.cls +262 -0
- package/skills/building-sf-integrations/assets/callouts/rest-sync-callout.cls +211 -0
- package/skills/building-sf-integrations/assets/cdc/cdc-handler.cls +246 -0
- package/skills/building-sf-integrations/assets/cdc/cdc-subscriber-trigger.trigger +139 -0
- package/skills/building-sf-integrations/assets/endpoint-security/example.cspTrustedSite-meta.xml +58 -0
- package/skills/building-sf-integrations/assets/endpoint-security/example.remoteSite-meta.xml +39 -0
- package/skills/building-sf-integrations/assets/external-credentials/jwt-external-credential.externalCredential-meta.xml +90 -0
- package/skills/building-sf-integrations/assets/external-credentials/oauth-external-credential.externalCredential-meta.xml +87 -0
- package/skills/building-sf-integrations/assets/external-services/external-service-operations.md +221 -0
- package/skills/building-sf-integrations/assets/external-services/openapi-registration.externalServiceRegistration-meta.xml +193 -0
- package/skills/building-sf-integrations/assets/named-credentials/certificate-auth.namedCredential-meta.xml +62 -0
- package/skills/building-sf-integrations/assets/named-credentials/custom-auth.namedCredential-meta.xml +71 -0
- package/skills/building-sf-integrations/assets/named-credentials/oauth-client-credentials.namedCredential-meta.xml +51 -0
- package/skills/building-sf-integrations/assets/named-credentials/oauth-jwt-bearer.namedCredential-meta.xml +67 -0
- package/skills/building-sf-integrations/assets/platform-events/event-publisher.cls +191 -0
- package/skills/building-sf-integrations/assets/platform-events/event-subscriber-action.cls +295 -0
- package/skills/building-sf-integrations/assets/platform-events/event-subscriber-trigger.trigger +108 -0
- package/skills/building-sf-integrations/assets/platform-events/platform-event-definition.object-meta.xml +124 -0
- package/skills/building-sf-integrations/assets/soap/soap-callout-service.cls +186 -0
- package/skills/building-sf-integrations/assets/soap/wsdl2apex-guide.md +213 -0
- package/skills/building-sf-integrations/hooks/scripts/suggest_credential_setup.py +271 -0
- package/skills/building-sf-integrations/hooks/scripts/validate_integration.py +363 -0
- package/skills/building-sf-integrations/references/callout-patterns.md +719 -0
- package/skills/building-sf-integrations/references/cdc-guide.md +288 -0
- package/skills/building-sf-integrations/references/cli-reference.md +94 -0
- package/skills/building-sf-integrations/references/event-driven-architecture-guide.md +266 -0
- package/skills/building-sf-integrations/references/event-patterns.md +838 -0
- package/skills/building-sf-integrations/references/external-services-guide.md +303 -0
- package/skills/building-sf-integrations/references/messaging-api-v2.md +609 -0
- package/skills/building-sf-integrations/references/named-credentials-automation.md +201 -0
- package/skills/building-sf-integrations/references/named-credentials-guide.md +173 -0
- package/skills/building-sf-integrations/references/platform-events-guide.md +288 -0
- package/skills/building-sf-integrations/references/rest-callout-patterns.md +288 -0
- package/skills/building-sf-integrations/references/scoring-rubric.md +59 -0
- package/skills/building-sf-integrations/references/security-best-practices.md +248 -0
- package/skills/building-sf-integrations/scripts/README.md +100 -0
- package/skills/building-sf-integrations/scripts/configure-named-credential.sh +236 -0
- package/skills/building-sf-integrations/scripts/set-api-credential.sh +146 -0
- package/skills/building-sf-integrations/scripts/templates/setup-credentials-with-csp.sh +158 -0
- package/skills/configuring-connected-apps/CREDITS.md +3 -0
- package/skills/configuring-connected-apps/README.md +99 -0
- package/skills/configuring-connected-apps/SKILL.md +224 -0
- package/skills/configuring-connected-apps/assets/connected-app-basic.xml +29 -0
- package/skills/configuring-connected-apps/assets/connected-app-canvas.xml +62 -0
- package/skills/configuring-connected-apps/assets/connected-app-jwt.xml +49 -0
- package/skills/configuring-connected-apps/assets/connected-app-oauth.xml +65 -0
- package/skills/configuring-connected-apps/assets/eca-global-oauth.xml +36 -0
- package/skills/configuring-connected-apps/assets/eca-oauth-settings.xml +36 -0
- package/skills/configuring-connected-apps/assets/eca-policies.xml +36 -0
- package/skills/configuring-connected-apps/assets/external-client-app.xml +35 -0
- package/skills/configuring-connected-apps/references/example-usage.md +256 -0
- package/skills/configuring-connected-apps/references/migration-guide.md +328 -0
- package/skills/configuring-connected-apps/references/oauth-flows-reference.md +660 -0
- package/skills/configuring-connected-apps/references/security-checklist.md +209 -0
- package/skills/configuring-connected-apps/references/testing-validation-guide.md +275 -0
- package/skills/connecting-datacloud/CREDITS.md +5 -0
- package/skills/connecting-datacloud/README.md +59 -0
- package/skills/connecting-datacloud/SKILL.md +155 -0
- package/skills/connecting-datacloud/examples/connections/heroku-postgres.json +15 -0
- package/skills/connecting-datacloud/examples/connections/ingest-api-connection.json +5 -0
- package/skills/connecting-datacloud/examples/connections/ingest-api-schema.json +31 -0
- package/skills/connecting-datacloud/examples/connections/redshift.json +16 -0
- package/skills/connecting-datacloud/examples/connections/sharepoint-unstructured.json +20 -0
- package/skills/connecting-datacloud/examples/connections/snowflake-connection.json +42 -0
- package/skills/debugging-apex-logs/CREDITS.md +22 -0
- package/skills/debugging-apex-logs/README.md +74 -0
- package/skills/debugging-apex-logs/SKILL.md +172 -0
- package/skills/debugging-apex-logs/assets/benchmarking-template.cls +327 -0
- package/skills/debugging-apex-logs/assets/cpu-heap-optimization.cls +307 -0
- package/skills/debugging-apex-logs/assets/dml-in-loop-fix.cls +219 -0
- package/skills/debugging-apex-logs/assets/null-pointer-fix.cls +252 -0
- package/skills/debugging-apex-logs/assets/soql-in-loop-fix.cls +157 -0
- package/skills/debugging-apex-logs/references/analysis-playbook.md +53 -0
- package/skills/debugging-apex-logs/references/benchmarking-guide.md +287 -0
- package/skills/debugging-apex-logs/references/cli-commands.md +368 -0
- package/skills/debugging-apex-logs/references/common-issues.md +68 -0
- package/skills/debugging-apex-logs/references/debug-log-reference.md +328 -0
- package/skills/debugging-apex-logs/references/log-analysis-tools.md +248 -0
- package/skills/debugging-apex-logs/references/scoring-rubric.md +21 -0
- package/skills/deploying-metadata/CREDITS.md +25 -0
- package/skills/deploying-metadata/README.md +104 -0
- package/skills/deploying-metadata/SKILL.md +214 -0
- package/skills/deploying-metadata/assets/destructiveChanges.xml +143 -0
- package/skills/deploying-metadata/assets/package.xml +121 -0
- package/skills/deploying-metadata/references/agent-deployment-guide.md +628 -0
- package/skills/deploying-metadata/references/deploy.sh +73 -0
- package/skills/deploying-metadata/references/deployment-report-template.md +89 -0
- package/skills/deploying-metadata/references/deployment-workflows.md +395 -0
- package/skills/deploying-metadata/references/orchestration.md +183 -0
- package/skills/deploying-metadata/references/trigger-deployment-safety.md +376 -0
- package/skills/deploying-omnistudio-datapacks/CREDITS.md +5 -0
- package/skills/deploying-omnistudio-datapacks/README.md +88 -0
- package/skills/deploying-omnistudio-datapacks/SKILL.md +174 -0
- package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/TRANSCRIPT.md +124 -0
- package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/deploy-business-internet-plus-bundle.yaml +11 -0
- package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/TRANSCRIPT.md +142 -0
- package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/deploy-business-internet-plus-bundle.yaml +10 -0
- package/skills/deploying-omnistudio-datapacks/references/job-file-template.md +42 -0
- package/skills/deploying-omnistudio-datapacks/references/troubleshooting-matrix.md +24 -0
- package/skills/developing-agentforce/assets/metadata/http-callout-flow.flow-meta.xml +1 -1
- package/skills/developing-agentforce/references/actions-reference.md +8 -8
- package/skills/fetching-salesforce-docs/README.md +66 -0
- package/skills/fetching-salesforce-docs/SKILL.md +209 -0
- package/skills/fetching-salesforce-docs/requirements.txt +2 -0
- package/skills/fetching-salesforce-docs/scripts/extract_help_salesforce.py +497 -0
- package/skills/fetching-salesforce-docs/scripts/extract_salesforce_doc.py +357 -0
- package/skills/fetching-salesforce-docs/scripts/runtime_bootstrap.py +58 -0
- package/skills/generating-apex/CREDITS.md +1 -26
- package/skills/generating-apex-test/CREDITS.md +2 -27
- package/skills/generating-lwc-components/CREDITS.md +5 -0
- package/skills/generating-lwc-components/README.md +126 -0
- package/skills/generating-lwc-components/SKILL.md +191 -0
- package/skills/generating-lwc-components/assets/apex-controller/LwcController.cls +327 -0
- package/skills/generating-lwc-components/assets/basic-component/basicComponent.css +72 -0
- package/skills/generating-lwc-components/assets/basic-component/basicComponent.html +111 -0
- package/skills/generating-lwc-components/assets/basic-component/basicComponent.js +163 -0
- package/skills/generating-lwc-components/assets/basic-component/basicComponent.js-meta.xml +137 -0
- package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.html +111 -0
- package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.js +367 -0
- package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.css +63 -0
- package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.html +154 -0
- package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js +348 -0
- package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js-meta.xml +87 -0
- package/skills/generating-lwc-components/assets/form-component/formComponent.html +165 -0
- package/skills/generating-lwc-components/assets/form-component/formComponent.js +275 -0
- package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.html +100 -0
- package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.js +336 -0
- package/skills/generating-lwc-components/assets/jest-test/componentName.test.js.example +371 -0
- package/skills/generating-lwc-components/assets/message-channel/RecordSelected.messageChannel-meta.xml +71 -0
- package/skills/generating-lwc-components/assets/message-channel/lmsPublisher.js +103 -0
- package/skills/generating-lwc-components/assets/message-channel/lmsSubscriber.js +181 -0
- package/skills/generating-lwc-components/assets/modal-component/modalComponent.html +85 -0
- package/skills/generating-lwc-components/assets/modal-component/modalComponent.js +199 -0
- package/skills/generating-lwc-components/assets/record-picker/recordPicker.html +55 -0
- package/skills/generating-lwc-components/assets/record-picker/recordPicker.js +199 -0
- package/skills/generating-lwc-components/assets/state-store/store.js +282 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.css +65 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.html +95 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.js-meta.xml +75 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.test.ts.example +301 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.ts +295 -0
- package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.html +71 -0
- package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.js +316 -0
- package/skills/generating-lwc-components/hooks/scripts/lwc-lsp-validate.py +295 -0
- package/skills/generating-lwc-components/hooks/scripts/post-tool-validate.py +347 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_data/deprecated_patterns.json +74 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_data/styling_hooks.json +111 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_data/valid_slds_classes.json +127 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_linter_wrapper.py +294 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_rules/__init__.py +22 -0
- package/skills/generating-lwc-components/hooks/scripts/template_validator.py +332 -0
- package/skills/generating-lwc-components/hooks/scripts/validate_slds.py +595 -0
- package/skills/generating-lwc-components/references/accessibility-guide.md +843 -0
- package/skills/generating-lwc-components/references/advanced-features.md +108 -0
- package/skills/generating-lwc-components/references/async-notification-patterns.md +661 -0
- package/skills/generating-lwc-components/references/cli-commands.md +545 -0
- package/skills/generating-lwc-components/references/component-patterns.md +1476 -0
- package/skills/generating-lwc-components/references/flow-integration-guide.md +675 -0
- package/skills/generating-lwc-components/references/jest-testing.md +1011 -0
- package/skills/generating-lwc-components/references/lms-guide.md +860 -0
- package/skills/generating-lwc-components/references/lwc-best-practices.md +1310 -0
- package/skills/generating-lwc-components/references/performance-guide.md +861 -0
- package/skills/generating-lwc-components/references/scoring-and-testing.md +116 -0
- package/skills/generating-lwc-components/references/slds-blueprints.json +14389 -0
- package/skills/generating-lwc-components/references/slds-design-guide.md +166 -0
- package/skills/generating-lwc-components/references/state-management.md +642 -0
- package/skills/generating-lwc-components/references/template-anti-patterns.md +948 -0
- package/skills/generating-lwc-components/references/triangle-pattern.md +365 -0
- package/skills/generating-lwc-components/scripts/local-dev-preview.sh +34 -0
- package/skills/generating-mermaid-diagrams/CREDITS.md +46 -0
- package/skills/generating-mermaid-diagrams/README.md +114 -0
- package/skills/generating-mermaid-diagrams/SKILL.md +218 -0
- package/skills/generating-mermaid-diagrams/assets/agentforce/agent-flow.md +313 -0
- package/skills/generating-mermaid-diagrams/assets/architecture/system-landscape.md +351 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/b2b-commerce-erd.md +317 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/campaigns-erd.md +195 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/consent-erd.md +262 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/files-erd.md +266 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/forecasting-erd.md +261 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/fsl-erd.md +332 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/party-model-erd.md +237 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/quote-order-erd.md +277 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/revenue-cloud-erd.md +343 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/sales-cloud-erd.md +192 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/salesforce-erd.md +209 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/scheduler-erd.md +276 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/service-cloud-erd.md +217 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/territory-management-erd.md +241 -0
- package/skills/generating-mermaid-diagrams/assets/integration/api-sequence.md +387 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code-pkce.md +197 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code.md +152 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/client-credentials.md +233 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/device-authorization.md +295 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/jwt-bearer.md +256 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/refresh-token.md +281 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/user-agent-social-sign-on.md +281 -0
- package/skills/generating-mermaid-diagrams/assets/role-hierarchy/user-hierarchy.md +322 -0
- package/skills/generating-mermaid-diagrams/references/color-palette.md +464 -0
- package/skills/generating-mermaid-diagrams/references/diagram-conventions.md +313 -0
- package/skills/generating-mermaid-diagrams/references/erd-conventions.md +320 -0
- package/skills/generating-mermaid-diagrams/references/mermaid-reference.md +434 -0
- package/skills/generating-mermaid-diagrams/references/mermaid-styling.md +81 -0
- package/skills/generating-mermaid-diagrams/references/preview-guide.md +49 -0
- package/skills/generating-mermaid-diagrams/references/usage-examples.md +340 -0
- package/skills/generating-mermaid-diagrams/scripts/README.md +160 -0
- package/skills/generating-mermaid-diagrams/scripts/mermaid_preview.py +654 -0
- package/skills/generating-mermaid-diagrams/scripts/query-org-metadata.py +293 -0
- package/skills/generating-visual-diagrams/CREDITS.md +80 -0
- package/skills/generating-visual-diagrams/README.md +83 -0
- package/skills/generating-visual-diagrams/SKILL.md +208 -0
- package/skills/generating-visual-diagrams/assets/architecture/integration-flow.md +55 -0
- package/skills/generating-visual-diagrams/assets/erd/core-objects.md +131 -0
- package/skills/generating-visual-diagrams/assets/erd/custom-objects.md +60 -0
- package/skills/generating-visual-diagrams/assets/lwc/dashboard-card.md +45 -0
- package/skills/generating-visual-diagrams/assets/lwc/data-table.md +57 -0
- package/skills/generating-visual-diagrams/assets/lwc/record-form.md +60 -0
- package/skills/generating-visual-diagrams/assets/review/apex-review.md +57 -0
- package/skills/generating-visual-diagrams/assets/review/lwc-review.md +48 -0
- package/skills/generating-visual-diagrams/references/architect-aesthetic-guide.md +257 -0
- package/skills/generating-visual-diagrams/references/examples-index.md +35 -0
- package/skills/generating-visual-diagrams/references/gemini-cli-setup.md +65 -0
- package/skills/generating-visual-diagrams/references/interview-questions.md +529 -0
- package/skills/generating-visual-diagrams/references/iteration-workflow.md +173 -0
- package/skills/generating-visual-diagrams/scripts/check-prerequisites.sh +101 -0
- package/skills/generating-visual-diagrams/scripts/generate_image.py +243 -0
- package/skills/handling-sf-data/CREDITS.md +5 -0
- package/skills/handling-sf-data/README.md +112 -0
- package/skills/handling-sf-data/SKILL.md +235 -0
- package/skills/handling-sf-data/assets/bulk/bulk-insert-10000.apex +293 -0
- package/skills/handling-sf-data/assets/bulk/bulk-insert-200.apex +208 -0
- package/skills/handling-sf-data/assets/bulk/bulk-insert-500.apex +219 -0
- package/skills/handling-sf-data/assets/bulk/bulk-upsert-external-id.apex +324 -0
- package/skills/handling-sf-data/assets/cleanup/delete-by-created-date.apex +319 -0
- package/skills/handling-sf-data/assets/cleanup/delete-by-name.apex +240 -0
- package/skills/handling-sf-data/assets/cleanup/delete-test-data.apex +311 -0
- package/skills/handling-sf-data/assets/cleanup/rollback-transaction.apex +266 -0
- package/skills/handling-sf-data/assets/csv/account-import.csv +11 -0
- package/skills/handling-sf-data/assets/csv/contact-import.csv +11 -0
- package/skills/handling-sf-data/assets/csv/custom-object-import.csv +11 -0
- package/skills/handling-sf-data/assets/csv/opportunity-import.csv +11 -0
- package/skills/handling-sf-data/assets/factories/account-factory.apex +165 -0
- package/skills/handling-sf-data/assets/factories/case-factory.apex +237 -0
- package/skills/handling-sf-data/assets/factories/contact-factory.apex +168 -0
- package/skills/handling-sf-data/assets/factories/custom-object-factory.apex +260 -0
- package/skills/handling-sf-data/assets/factories/event-factory.apex +275 -0
- package/skills/handling-sf-data/assets/factories/hierarchy-factory.apex +372 -0
- package/skills/handling-sf-data/assets/factories/lead-factory.apex +190 -0
- package/skills/handling-sf-data/assets/factories/opportunity-factory.apex +206 -0
- package/skills/handling-sf-data/assets/factories/task-factory.apex +246 -0
- package/skills/handling-sf-data/assets/factories/user-factory.apex +278 -0
- package/skills/handling-sf-data/assets/json/account-contact-tree.json +130 -0
- package/skills/handling-sf-data/assets/json/account-opportunity-tree.json +110 -0
- package/skills/handling-sf-data/assets/json/full-hierarchy-tree.json +188 -0
- package/skills/handling-sf-data/assets/soql/aggregate.soql +226 -0
- package/skills/handling-sf-data/assets/soql/child-to-parent.soql +162 -0
- package/skills/handling-sf-data/assets/soql/parent-to-child.soql +153 -0
- package/skills/handling-sf-data/assets/soql/polymorphic.soql +198 -0
- package/skills/handling-sf-data/assets/soql/subquery.soql +287 -0
- package/skills/handling-sf-data/references/anonymous-apex-guide.md +98 -0
- package/skills/handling-sf-data/references/bulk-operations-guide.md +94 -0
- package/skills/handling-sf-data/references/bulk-testing-example.md +194 -0
- package/skills/handling-sf-data/references/cleanup-rollback-example.md +322 -0
- package/skills/handling-sf-data/references/cleanup-rollback-guide.md +84 -0
- package/skills/handling-sf-data/references/crud-workflow-example.md +183 -0
- package/skills/handling-sf-data/references/governor-limits-reference.md +74 -0
- package/skills/handling-sf-data/references/orchestration.md +174 -0
- package/skills/handling-sf-data/references/relationship-query-examples.md +249 -0
- package/skills/handling-sf-data/references/sf-cli-data-commands.md +158 -0
- package/skills/handling-sf-data/references/soql-relationship-guide.md +84 -0
- package/skills/handling-sf-data/references/test-data-best-practices.md +104 -0
- package/skills/handling-sf-data/references/test-data-factory-usage.md +290 -0
- package/skills/handling-sf-data/references/test-data-patterns.md +98 -0
- package/skills/handling-sf-data/scripts/soql_validator.py +292 -0
- package/skills/handling-sf-data/scripts/validate_data_operation.py +379 -0
- package/skills/harmonizing-datacloud/CREDITS.md +3 -0
- package/skills/harmonizing-datacloud/README.md +31 -0
- package/skills/harmonizing-datacloud/SKILL.md +117 -0
- package/skills/modeling-omnistudio-epc-catalog/CREDITS.md +14 -0
- package/skills/modeling-omnistudio-epc-catalog/README.md +89 -0
- package/skills/modeling-omnistudio-epc-catalog/SKILL.md +395 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/attribute-assignment-template.json +402 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/compiled-attribute-overrides-template.json +43 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/completion-block-template.txt +8 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/decomposition-relationships-template.json +233 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_AttributeAssignments.json +514 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_CompiledAttributeOverrides.json +21 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DataPack.json +649 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DecompositionRelationships.json +200 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ObjectFieldAttributes.json +138 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OrchestrationScenarios.json +54 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OverrideDefinitions.json +266 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ParentKeys.json +23 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PriceListEntries.json +54 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PricebookEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ProductChildItems.json +34 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_RuleAssignments.json +21 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_AttributeAssignments.json +410 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DataPack.json +535 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DecompositionRelationships.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ObjectFieldAttributes.json +138 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_OrchestrationScenarios.json +28 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ParentKeys.json +23 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PriceListEntries.json +220 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PricebookEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ProductChildItems.json +414 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_AttributeAssignments.json +382 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DataPack.json +565 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DecompositionRelationships.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ObjectFieldAttributes.json +104 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_OrchestrationScenarios.json +28 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ParentKeys.json +13 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PriceListEntries.json +106 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PricebookEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ProductChildItems.json +72 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_AttributeAssignments.json +142 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DataPack.json +377 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DecompositionRelationships.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ObjectFieldAttributes.json +36 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ParentKeys.json +8 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PriceListEntries.json +54 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PricebookEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ProductChildItems.json +34 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/object-field-attributes-template.json +138 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/orchestration-scenarios-template.json +54 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/override-definitions-template.json +134 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/parent-keys-template.json +29 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/price-list-entries-template.json +158 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/pricebook-entries-template.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/product-child-item-template.json +338 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/product2-offer-template.json +527 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/.gitkeep +1 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_AttributeAssignments.json +95 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_CompiledAttributeOverrides.json +1 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DataPack.json +214 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DecompositionRelationships.json +28 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ObjectFieldAttributes.json +98 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OrchestrationScenarios.json +22 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OverrideDefinitions.json +1 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ParentKeys.json +13 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PriceListEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PricebookEntries.json +28 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ProductChildItems.json +110 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/TRANSCRIPT.md +58 -0
- package/skills/modeling-omnistudio-epc-catalog/references/epc-field-guide.md +90 -0
- package/skills/modeling-omnistudio-epc-catalog/references/naming-conventions.md +80 -0
- package/skills/modeling-omnistudio-epc-catalog/references/scoring-model.md +57 -0
- package/skills/modeling-omnistudio-epc-catalog/scripts/cli-validation-commands.sh +19 -0
- package/skills/modeling-omnistudio-epc-catalog/scripts/sample-invocations.sh +18 -0
- package/skills/orchestrating-datacloud/CREDITS.md +15 -0
- package/skills/orchestrating-datacloud/README.md +129 -0
- package/skills/orchestrating-datacloud/SKILL.md +236 -0
- package/skills/orchestrating-datacloud/UPSTREAM.md +45 -0
- package/skills/orchestrating-datacloud/assets/definitions/activation-target.template.json +5 -0
- package/skills/orchestrating-datacloud/assets/definitions/activation.template.json +7 -0
- package/skills/orchestrating-datacloud/assets/definitions/calculated-insight.template.json +7 -0
- package/skills/orchestrating-datacloud/assets/definitions/data-action-target.template.json +5 -0
- package/skills/orchestrating-datacloud/assets/definitions/data-action.template.json +5 -0
- package/skills/orchestrating-datacloud/assets/definitions/data-graph.template.json +21 -0
- package/skills/orchestrating-datacloud/assets/definitions/data-stream.template.json +55 -0
- package/skills/orchestrating-datacloud/assets/definitions/dmo.template.json +17 -0
- package/skills/orchestrating-datacloud/assets/definitions/identity-resolution.template.json +30 -0
- package/skills/orchestrating-datacloud/assets/definitions/mapping.template.json +14 -0
- package/skills/orchestrating-datacloud/assets/definitions/relationship.template.json +12 -0
- package/skills/orchestrating-datacloud/assets/definitions/search-index.template.json +9 -0
- package/skills/orchestrating-datacloud/assets/definitions/segment.template.json +16 -0
- package/skills/orchestrating-datacloud/references/feature-readiness.md +157 -0
- package/skills/orchestrating-datacloud/references/plugin-setup.md +140 -0
- package/skills/orchestrating-datacloud/scripts/bootstrap-plugin.sh +53 -0
- package/skills/orchestrating-datacloud/scripts/diagnose-org.mjs +511 -0
- package/skills/orchestrating-datacloud/scripts/generate-manifest.mjs +68 -0
- package/skills/orchestrating-datacloud/scripts/verify-plugin.sh +58 -0
- package/skills/preparing-datacloud/CREDITS.md +7 -0
- package/skills/preparing-datacloud/README.md +51 -0
- package/skills/preparing-datacloud/SKILL.md +191 -0
- package/skills/preparing-datacloud/examples/ingestion-api/.env.example +8 -0
- package/skills/preparing-datacloud/examples/ingestion-api/README.md +48 -0
- package/skills/preparing-datacloud/examples/ingestion-api/send-data.py +144 -0
- package/skills/querying-soql/CREDITS.md +21 -0
- package/skills/querying-soql/README.md +41 -0
- package/skills/querying-soql/SKILL.md +143 -0
- package/skills/querying-soql/assets/aggregate-queries.soql +242 -0
- package/skills/querying-soql/assets/basic-queries.soql +188 -0
- package/skills/querying-soql/assets/bulkified-query-pattern.cls +280 -0
- package/skills/querying-soql/assets/optimization-patterns.soql +259 -0
- package/skills/querying-soql/assets/relationship-queries.soql +203 -0
- package/skills/querying-soql/assets/selector-class.cls +219 -0
- package/skills/querying-soql/references/anti-patterns.md +348 -0
- package/skills/querying-soql/references/cli-commands.md +358 -0
- package/skills/querying-soql/references/field-coverage-rules.md +514 -0
- package/skills/querying-soql/references/query-optimization.md +142 -0
- package/skills/querying-soql/references/selector-patterns.md +479 -0
- package/skills/querying-soql/references/soql-reference.md +227 -0
- package/skills/querying-soql/references/soql-syntax-reference.md +208 -0
- package/skills/querying-soql/scripts/post-tool-validate.py +322 -0
- package/skills/retrieving-datacloud/CREDITS.md +7 -0
- package/skills/retrieving-datacloud/README.md +44 -0
- package/skills/retrieving-datacloud/SKILL.md +120 -0
- package/skills/retrieving-datacloud/examples/search-indexes/hybrid-structured.json +44 -0
- package/skills/retrieving-datacloud/examples/search-indexes/vector-knowledge.json +43 -0
- package/skills/running-apex-tests/CREDITS.md +22 -0
- package/skills/running-apex-tests/README.md +94 -0
- package/skills/running-apex-tests/SKILL.md +158 -0
- package/skills/running-apex-tests/assets/basic-test.cls +169 -0
- package/skills/running-apex-tests/assets/bulk-test.cls +255 -0
- package/skills/running-apex-tests/assets/dml-mock.cls +339 -0
- package/skills/running-apex-tests/assets/mock-callout-test.cls +353 -0
- package/skills/running-apex-tests/assets/stub-provider-example.cls +364 -0
- package/skills/running-apex-tests/assets/test-data-factory.cls +328 -0
- package/skills/running-apex-tests/hooks/scripts/parse-test-results.py +364 -0
- package/skills/running-apex-tests/references/cli-commands.md +289 -0
- package/skills/running-apex-tests/references/mocking-patterns.md +500 -0
- package/skills/running-apex-tests/references/performance-optimization.md +283 -0
- package/skills/running-apex-tests/references/test-fix-loop.md +49 -0
- package/skills/running-apex-tests/references/test-patterns.md +154 -0
- package/skills/running-apex-tests/references/testing-best-practices.md +509 -0
- package/skills/segmenting-datacloud/CREDITS.md +3 -0
- package/skills/segmenting-datacloud/README.md +36 -0
- package/skills/segmenting-datacloud/SKILL.md +115 -0
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
<!-- Parent: handling-sf-data/SKILL.md -->
|
|
2
|
+
# Relationship Query Examples
|
|
3
|
+
|
|
4
|
+
Comprehensive SOQL relationship patterns for complex data retrieval.
|
|
5
|
+
|
|
6
|
+
## Parent-to-Child Queries (Subqueries)
|
|
7
|
+
|
|
8
|
+
### Basic Subquery
|
|
9
|
+
```sql
|
|
10
|
+
SELECT Id, Name,
|
|
11
|
+
(SELECT Id, FirstName, LastName, Email FROM Contacts)
|
|
12
|
+
FROM Account
|
|
13
|
+
WHERE Industry = 'Technology'
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
sf data query \
|
|
18
|
+
--query "SELECT Id, Name, (SELECT Id, FirstName, LastName FROM Contacts) FROM Account WHERE Industry = 'Technology' LIMIT 5" \
|
|
19
|
+
--target-org dev \
|
|
20
|
+
--json
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Multiple Subqueries
|
|
24
|
+
```sql
|
|
25
|
+
SELECT Id, Name,
|
|
26
|
+
(SELECT Id, Name, Title FROM Contacts),
|
|
27
|
+
(SELECT Id, Name, Amount, StageName FROM Opportunities),
|
|
28
|
+
(SELECT Id, CaseNumber, Subject FROM Cases)
|
|
29
|
+
FROM Account
|
|
30
|
+
WHERE Id = '001XXXXXXXXXXXX'
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Filtered Subquery
|
|
34
|
+
```sql
|
|
35
|
+
SELECT Id, Name,
|
|
36
|
+
(SELECT Id, Name, Amount
|
|
37
|
+
FROM Opportunities
|
|
38
|
+
WHERE StageName = 'Closed Won'
|
|
39
|
+
ORDER BY Amount DESC
|
|
40
|
+
LIMIT 5)
|
|
41
|
+
FROM Account
|
|
42
|
+
WHERE AnnualRevenue > 1000000
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Child-to-Parent Queries (Dot Notation)
|
|
46
|
+
|
|
47
|
+
### Basic Relationship
|
|
48
|
+
```sql
|
|
49
|
+
SELECT Id, FirstName, LastName,
|
|
50
|
+
Account.Name, Account.Industry
|
|
51
|
+
FROM Contact
|
|
52
|
+
WHERE Account.Industry = 'Technology'
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
sf data query \
|
|
57
|
+
--query "SELECT Id, FirstName, LastName, Account.Name, Account.Industry FROM Contact WHERE Account.Industry = 'Technology' LIMIT 10" \
|
|
58
|
+
--target-org dev
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Multi-Level Traversal
|
|
62
|
+
```sql
|
|
63
|
+
SELECT Id, Name, Amount,
|
|
64
|
+
Account.Name,
|
|
65
|
+
Account.Owner.Name,
|
|
66
|
+
Account.Owner.Profile.Name
|
|
67
|
+
FROM Opportunity
|
|
68
|
+
WHERE Account.Industry = 'Finance'
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Custom Object Relationships
|
|
72
|
+
```sql
|
|
73
|
+
-- __r suffix for custom relationships
|
|
74
|
+
SELECT Id, Name,
|
|
75
|
+
Custom_Parent__r.Name,
|
|
76
|
+
Custom_Parent__r.Custom_Field__c
|
|
77
|
+
FROM Custom_Child__c
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Polymorphic Relationships (TYPEOF)
|
|
81
|
+
|
|
82
|
+
### Task Who/What Fields
|
|
83
|
+
```sql
|
|
84
|
+
SELECT Id, Subject, Status,
|
|
85
|
+
TYPEOF Who
|
|
86
|
+
WHEN Contact THEN FirstName, LastName, Email
|
|
87
|
+
WHEN Lead THEN FirstName, LastName, Company
|
|
88
|
+
END,
|
|
89
|
+
TYPEOF What
|
|
90
|
+
WHEN Account THEN Name, Industry
|
|
91
|
+
WHEN Opportunity THEN Name, Amount, StageName
|
|
92
|
+
END
|
|
93
|
+
FROM Task
|
|
94
|
+
WHERE Status = 'Open'
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
sf data query \
|
|
99
|
+
--query "SELECT Id, Subject, TYPEOF Who WHEN Contact THEN FirstName, LastName WHEN Lead THEN FirstName, LastName END FROM Task WHERE Status = 'Open' LIMIT 5" \
|
|
100
|
+
--target-org dev \
|
|
101
|
+
--json
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Event Relationships
|
|
105
|
+
```sql
|
|
106
|
+
SELECT Id, Subject, StartDateTime,
|
|
107
|
+
TYPEOF Who
|
|
108
|
+
WHEN Contact THEN FirstName, LastName, Account.Name
|
|
109
|
+
WHEN Lead THEN Name, Company
|
|
110
|
+
END
|
|
111
|
+
FROM Event
|
|
112
|
+
WHERE StartDateTime >= TODAY
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Aggregate Queries
|
|
116
|
+
|
|
117
|
+
### Basic Aggregation
|
|
118
|
+
```sql
|
|
119
|
+
SELECT Industry, COUNT(Id) total, SUM(AnnualRevenue) revenue
|
|
120
|
+
FROM Account
|
|
121
|
+
GROUP BY Industry
|
|
122
|
+
HAVING COUNT(Id) > 10
|
|
123
|
+
ORDER BY SUM(AnnualRevenue) DESC
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
sf data query \
|
|
128
|
+
--query "SELECT Industry, COUNT(Id) total, SUM(AnnualRevenue) revenue FROM Account GROUP BY Industry HAVING COUNT(Id) > 5" \
|
|
129
|
+
--target-org dev
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Rollup by Date
|
|
133
|
+
```sql
|
|
134
|
+
SELECT CALENDAR_MONTH(CloseDate) month,
|
|
135
|
+
SUM(Amount) total,
|
|
136
|
+
COUNT(Id) deals
|
|
137
|
+
FROM Opportunity
|
|
138
|
+
WHERE CloseDate = THIS_YEAR
|
|
139
|
+
AND StageName = 'Closed Won'
|
|
140
|
+
GROUP BY CALENDAR_MONTH(CloseDate)
|
|
141
|
+
ORDER BY CALENDAR_MONTH(CloseDate)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Aggregate with Relationships
|
|
145
|
+
```sql
|
|
146
|
+
SELECT Account.Industry,
|
|
147
|
+
COUNT(Id) opportunities,
|
|
148
|
+
SUM(Amount) pipeline
|
|
149
|
+
FROM Opportunity
|
|
150
|
+
WHERE StageName NOT IN ('Closed Won', 'Closed Lost')
|
|
151
|
+
GROUP BY Account.Industry
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Semi-Joins and Anti-Joins
|
|
155
|
+
|
|
156
|
+
### Semi-Join (Records WITH Related)
|
|
157
|
+
```sql
|
|
158
|
+
-- Accounts that HAVE Opportunities
|
|
159
|
+
SELECT Id, Name
|
|
160
|
+
FROM Account
|
|
161
|
+
WHERE Id IN (
|
|
162
|
+
SELECT AccountId FROM Opportunity WHERE Amount > 100000
|
|
163
|
+
)
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Anti-Join (Records WITHOUT Related)
|
|
167
|
+
```sql
|
|
168
|
+
-- Accounts WITHOUT Contacts
|
|
169
|
+
SELECT Id, Name
|
|
170
|
+
FROM Account
|
|
171
|
+
WHERE Id NOT IN (
|
|
172
|
+
SELECT AccountId FROM Contact WHERE AccountId != null
|
|
173
|
+
)
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Complex Semi-Join
|
|
177
|
+
```sql
|
|
178
|
+
-- Contacts at Accounts with large deals
|
|
179
|
+
SELECT Id, FirstName, LastName
|
|
180
|
+
FROM Contact
|
|
181
|
+
WHERE AccountId IN (
|
|
182
|
+
SELECT AccountId
|
|
183
|
+
FROM Opportunity
|
|
184
|
+
WHERE Amount > 500000
|
|
185
|
+
AND StageName = 'Closed Won'
|
|
186
|
+
)
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Date Functions and Filters
|
|
190
|
+
|
|
191
|
+
### Date Literals
|
|
192
|
+
```sql
|
|
193
|
+
SELECT Id, Name, CreatedDate
|
|
194
|
+
FROM Account
|
|
195
|
+
WHERE CreatedDate = THIS_WEEK
|
|
196
|
+
-- Also: TODAY, YESTERDAY, THIS_MONTH, LAST_MONTH, THIS_YEAR, LAST_N_DAYS:7
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Date Functions in SELECT
|
|
200
|
+
```sql
|
|
201
|
+
SELECT DAY_IN_MONTH(CreatedDate) day,
|
|
202
|
+
WEEK_IN_YEAR(CreatedDate) week,
|
|
203
|
+
CALENDAR_YEAR(CreatedDate) year,
|
|
204
|
+
COUNT(Id) count
|
|
205
|
+
FROM Lead
|
|
206
|
+
GROUP BY DAY_IN_MONTH(CreatedDate),
|
|
207
|
+
WEEK_IN_YEAR(CreatedDate),
|
|
208
|
+
CALENDAR_YEAR(CreatedDate)
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Query Optimization Tips
|
|
212
|
+
|
|
213
|
+
### Use Indexed Fields
|
|
214
|
+
```sql
|
|
215
|
+
-- GOOD: Query on indexed fields (Id, Name, CreatedDate, SystemModstamp)
|
|
216
|
+
SELECT Id, Name FROM Account WHERE Name LIKE 'Acme%'
|
|
217
|
+
|
|
218
|
+
-- BAD: Query on non-indexed custom field (full table scan)
|
|
219
|
+
SELECT Id, Name FROM Account WHERE Custom_Unindexed__c = 'value'
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Limit Records Retrieved
|
|
223
|
+
```sql
|
|
224
|
+
-- Always use LIMIT for exploration
|
|
225
|
+
SELECT Id, Name FROM Account LIMIT 100
|
|
226
|
+
|
|
227
|
+
-- Use OFFSET for pagination
|
|
228
|
+
SELECT Id, Name FROM Account LIMIT 100 OFFSET 200
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Select Only Needed Fields
|
|
232
|
+
```sql
|
|
233
|
+
-- GOOD: Only needed fields
|
|
234
|
+
SELECT Id, Name, Industry FROM Account
|
|
235
|
+
|
|
236
|
+
-- BAD: Selecting all fields
|
|
237
|
+
SELECT Id, Name, Industry, Description, BillingStreet, BillingCity,
|
|
238
|
+
BillingState, BillingPostalCode, BillingCountry, ...
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Common Errors
|
|
242
|
+
|
|
243
|
+
| Error | Cause | Solution |
|
|
244
|
+
|-------|-------|----------|
|
|
245
|
+
| `Invalid relationship` | Wrong relationship name | Check `__r` suffix for custom |
|
|
246
|
+
| `MALFORMED_QUERY` | Syntax error | Validate SOQL syntax |
|
|
247
|
+
| `SELECT too complex` | Too many levels | Max 5 levels of relationships |
|
|
248
|
+
| `Subquery limit` | >20 subqueries | Reduce number of child queries |
|
|
249
|
+
| `Non-selective query` | No indexed filter | Add indexed field to WHERE |
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
<!-- Parent: handling-sf-data/SKILL.md -->
|
|
2
|
+
# sf CLI Data Commands Reference
|
|
3
|
+
|
|
4
|
+
Complete reference for Salesforce CLI v2 data commands.
|
|
5
|
+
|
|
6
|
+
## Query Commands
|
|
7
|
+
|
|
8
|
+
### SOQL Query
|
|
9
|
+
```bash
|
|
10
|
+
sf data query \
|
|
11
|
+
--query "SELECT Id, Name FROM Account LIMIT 10" \
|
|
12
|
+
--target-org myorg \
|
|
13
|
+
--json
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### SOSL Search
|
|
17
|
+
```bash
|
|
18
|
+
sf data search \
|
|
19
|
+
--query "FIND {Acme}" \
|
|
20
|
+
--target-org myorg
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Bulk Export
|
|
24
|
+
```bash
|
|
25
|
+
sf data export bulk \
|
|
26
|
+
--query "SELECT Id, Name FROM Account" \
|
|
27
|
+
--output-file accounts.csv \
|
|
28
|
+
--target-org myorg \
|
|
29
|
+
--wait 30
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Record Operations
|
|
33
|
+
|
|
34
|
+
### Create Record
|
|
35
|
+
```bash
|
|
36
|
+
sf data create record \
|
|
37
|
+
--sobject Account \
|
|
38
|
+
--values "Name='Acme' Industry='Technology'" \
|
|
39
|
+
--target-org myorg
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Update Record
|
|
43
|
+
```bash
|
|
44
|
+
sf data update record \
|
|
45
|
+
--sobject Account \
|
|
46
|
+
--record-id 001XXXXXXXXXXXX \
|
|
47
|
+
--values "Industry='Healthcare'" \
|
|
48
|
+
--target-org myorg
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Delete Record
|
|
52
|
+
```bash
|
|
53
|
+
sf data delete record \
|
|
54
|
+
--sobject Account \
|
|
55
|
+
--record-id 001XXXXXXXXXXXX \
|
|
56
|
+
--target-org myorg
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Get Record
|
|
60
|
+
```bash
|
|
61
|
+
sf data get record \
|
|
62
|
+
--sobject Account \
|
|
63
|
+
--record-id 001XXXXXXXXXXXX \
|
|
64
|
+
--target-org myorg
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Bulk Operations
|
|
68
|
+
|
|
69
|
+
### Bulk Import
|
|
70
|
+
```bash
|
|
71
|
+
sf data import bulk \
|
|
72
|
+
--file data.csv \
|
|
73
|
+
--sobject Account \
|
|
74
|
+
--target-org myorg \
|
|
75
|
+
--wait 30
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Bulk Update
|
|
79
|
+
```bash
|
|
80
|
+
sf data update bulk \
|
|
81
|
+
--file updates.csv \
|
|
82
|
+
--sobject Account \
|
|
83
|
+
--target-org myorg \
|
|
84
|
+
--wait 30
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Bulk Upsert
|
|
88
|
+
```bash
|
|
89
|
+
sf data upsert bulk \
|
|
90
|
+
--file data.csv \
|
|
91
|
+
--sobject Account \
|
|
92
|
+
--external-id External_Id__c \
|
|
93
|
+
--target-org myorg \
|
|
94
|
+
--wait 30
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Bulk Delete
|
|
98
|
+
```bash
|
|
99
|
+
sf data delete bulk \
|
|
100
|
+
--file ids.csv \
|
|
101
|
+
--sobject Account \
|
|
102
|
+
--target-org myorg \
|
|
103
|
+
--wait 30
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Tree Operations
|
|
107
|
+
|
|
108
|
+
### Export Tree
|
|
109
|
+
```bash
|
|
110
|
+
sf data export tree \
|
|
111
|
+
--query "SELECT Id, Name, (SELECT Id, Name FROM Contacts) FROM Account" \
|
|
112
|
+
--output-dir ./data \
|
|
113
|
+
--target-org myorg
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Import Tree
|
|
117
|
+
```bash
|
|
118
|
+
sf data import tree \
|
|
119
|
+
--files data.json \
|
|
120
|
+
--target-org myorg
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Common Flags
|
|
124
|
+
|
|
125
|
+
| Flag | Description |
|
|
126
|
+
|------|-------------|
|
|
127
|
+
| `--target-org`, `-o` | Target org alias |
|
|
128
|
+
| `--json` | JSON output format |
|
|
129
|
+
| `--result-format` | human, csv, json |
|
|
130
|
+
| `--wait` | Minutes to wait for bulk jobs |
|
|
131
|
+
| `--use-tooling-api` | Query Tooling API |
|
|
132
|
+
|
|
133
|
+
## Object Describe (Pre-flight Validation)
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
sf sobject describe --sobject ObjectName --target-org <alias> --json
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Useful jq filters for describe output
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
# Required + createable fields
|
|
143
|
+
jq '.result.fields[] | select(.nillable==false and .createable==true) | {name, type}'
|
|
144
|
+
|
|
145
|
+
# Valid picklist values for a specific field
|
|
146
|
+
jq '.result.fields[] | select(.name=="StageName") | .picklistValues[].value'
|
|
147
|
+
|
|
148
|
+
# Fields that cannot be set on create
|
|
149
|
+
jq '.result.fields[] | select(.createable==false) | .name'
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Apex Execution
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
sf apex run --file script.apex --target-org myorg
|
|
158
|
+
```
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
<!-- Parent: handling-sf-data/SKILL.md -->
|
|
2
|
+
# SOQL Relationship Query Guide
|
|
3
|
+
|
|
4
|
+
Complete reference for querying related records in Salesforce.
|
|
5
|
+
|
|
6
|
+
## Relationship Types
|
|
7
|
+
|
|
8
|
+
### 1. Parent-to-Child (Subquery)
|
|
9
|
+
Returns parent records with nested child records.
|
|
10
|
+
|
|
11
|
+
```sql
|
|
12
|
+
SELECT Id, Name,
|
|
13
|
+
(SELECT Id, FirstName, LastName FROM Contacts)
|
|
14
|
+
FROM Account
|
|
15
|
+
WHERE Industry = 'Technology'
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
**Key Points:**
|
|
19
|
+
- Maximum 20 subqueries per query
|
|
20
|
+
- Use relationship name (plural): `Contacts`, `Opportunities`, `Cases`
|
|
21
|
+
- For custom objects: `Child_Object__r`
|
|
22
|
+
|
|
23
|
+
### 2. Child-to-Parent (Dot Notation)
|
|
24
|
+
Access parent fields from child record.
|
|
25
|
+
|
|
26
|
+
```sql
|
|
27
|
+
SELECT Id, Name,
|
|
28
|
+
Account.Name,
|
|
29
|
+
Account.Industry,
|
|
30
|
+
Account.Owner.Name
|
|
31
|
+
FROM Contact
|
|
32
|
+
WHERE Account.Type = 'Customer'
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Key Points:**
|
|
36
|
+
- Maximum 5 levels deep
|
|
37
|
+
- Standard: `Account.Name`
|
|
38
|
+
- Custom: `Parent__r.Name`
|
|
39
|
+
|
|
40
|
+
### 3. Polymorphic (TYPEOF)
|
|
41
|
+
Handle fields that reference multiple object types.
|
|
42
|
+
|
|
43
|
+
```sql
|
|
44
|
+
SELECT Id, Subject,
|
|
45
|
+
TYPEOF Who
|
|
46
|
+
WHEN Contact THEN FirstName, LastName
|
|
47
|
+
WHEN Lead THEN Company
|
|
48
|
+
END,
|
|
49
|
+
TYPEOF What
|
|
50
|
+
WHEN Account THEN Name, Industry
|
|
51
|
+
WHEN Opportunity THEN Amount
|
|
52
|
+
END
|
|
53
|
+
FROM Task
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Common Polymorphic Fields:**
|
|
57
|
+
- `WhoId` → Contact, Lead
|
|
58
|
+
- `WhatId` → Account, Opportunity, Case, etc.
|
|
59
|
+
- `OwnerId` → User, Queue
|
|
60
|
+
|
|
61
|
+
## Relationship Names
|
|
62
|
+
|
|
63
|
+
| Child Object | Parent Field | Relationship Name |
|
|
64
|
+
|--------------|--------------|-------------------|
|
|
65
|
+
| Contact | AccountId | Account.Contacts |
|
|
66
|
+
| Opportunity | AccountId | Account.Opportunities |
|
|
67
|
+
| Case | AccountId | Account.Cases |
|
|
68
|
+
| Task | WhatId | Account.Tasks |
|
|
69
|
+
| Contact | ReportsToId | Contact.ReportsTo |
|
|
70
|
+
|
|
71
|
+
## Limits
|
|
72
|
+
|
|
73
|
+
| Limit | Value |
|
|
74
|
+
|-------|-------|
|
|
75
|
+
| Child-to-Parent depth | 5 levels |
|
|
76
|
+
| Subqueries per query | 20 |
|
|
77
|
+
| Rows per subquery | 200 (without LIMIT) |
|
|
78
|
+
|
|
79
|
+
## Best Practices
|
|
80
|
+
|
|
81
|
+
1. **Use indexed fields** in WHERE clauses
|
|
82
|
+
2. **Add LIMIT** to subqueries
|
|
83
|
+
3. **Filter early** - push conditions into subqueries
|
|
84
|
+
4. **Avoid N+1** - use relationship queries instead of loops
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
<!-- Parent: handling-sf-data/SKILL.md -->
|
|
2
|
+
# Test Data Best Practices
|
|
3
|
+
|
|
4
|
+
Use this guide when creating or troubleshooting org data for demos, automation validation, integration checks, or post-deploy smoke testing.
|
|
5
|
+
|
|
6
|
+
## Describe-first rule
|
|
7
|
+
|
|
8
|
+
Before creating or updating records, validate the object shape with:
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
sf sobject describe --sobject ObjectName --target-org <alias> --json
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Use describe output to confirm:
|
|
15
|
+
- required fields
|
|
16
|
+
- createable and updateable fields
|
|
17
|
+
- valid picklist values
|
|
18
|
+
- parent relationships
|
|
19
|
+
- fields that should be excluded from the payload
|
|
20
|
+
|
|
21
|
+
### Handy filters
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Required + createable fields
|
|
25
|
+
jq '.result.fields[] | select(.nillable==false and .createable==true) | {name, type}'
|
|
26
|
+
|
|
27
|
+
# Picklist values for one field
|
|
28
|
+
jq '.result.fields[] | select(.name=="Status__c") | .picklistValues[].value'
|
|
29
|
+
|
|
30
|
+
# Fields that are not createable
|
|
31
|
+
jq '.result.fields[] | select(.createable==false) | .name'
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## CLI-first for straightforward CRUD
|
|
35
|
+
|
|
36
|
+
Prefer `sf data` commands when the workflow is simple and direct.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
sf data create record \
|
|
40
|
+
--sobject Account \
|
|
41
|
+
--values "Name='Bulk Test 001' Industry='Technology'" \
|
|
42
|
+
--target-org <alias> \
|
|
43
|
+
--json
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Use anonymous Apex when you need:
|
|
47
|
+
- multi-object orchestration in one transaction
|
|
48
|
+
- reusable factory logic
|
|
49
|
+
- rollback via savepoint
|
|
50
|
+
- complex branching that would be awkward in shell commands
|
|
51
|
+
|
|
52
|
+
## Pre-flight checklist
|
|
53
|
+
|
|
54
|
+
Before data creation:
|
|
55
|
+
- [ ] target object exists in the org
|
|
56
|
+
- [ ] required parent records exist
|
|
57
|
+
- [ ] required fields are known
|
|
58
|
+
- [ ] picklist values are validated from describe output
|
|
59
|
+
- [ ] non-createable fields are excluded
|
|
60
|
+
- [ ] cleanup plan is ready
|
|
61
|
+
|
|
62
|
+
## Common failure patterns
|
|
63
|
+
|
|
64
|
+
| Failure | Likely cause | Fix |
|
|
65
|
+
|---|---|---|
|
|
66
|
+
| `REQUIRED_FIELD_MISSING` | Required field omitted | add describe-backed required values |
|
|
67
|
+
| invalid picklist value | guessed value | inspect real picklist values first |
|
|
68
|
+
| non-writeable field error | field is not createable/updateable | remove it from the payload |
|
|
69
|
+
| `INVALID_CROSS_REFERENCE_KEY` | missing or wrong parent Id | create/query parent first |
|
|
70
|
+
| `FIELD_CUSTOM_VALIDATION_EXCEPTION` | validation rule blocked test data | use a valid scenario or adjust setup |
|
|
71
|
+
|
|
72
|
+
## Bounded retry strategy
|
|
73
|
+
|
|
74
|
+
Use a small, explicit retry loop:
|
|
75
|
+
|
|
76
|
+
1. **Attempt 1** — run the primary CLI command
|
|
77
|
+
2. **Attempt 2** — retry once with corrected parameters
|
|
78
|
+
3. **Attempt 3** — re-run describe, verify assumptions, and pivot if needed
|
|
79
|
+
4. **Stop** — provide a manual workaround or alternate loading strategy
|
|
80
|
+
|
|
81
|
+
Do not keep repeating the same failing shape.
|
|
82
|
+
|
|
83
|
+
## Manual fallback options
|
|
84
|
+
|
|
85
|
+
If direct record creation keeps failing:
|
|
86
|
+
- switch to tree import for parent-child data
|
|
87
|
+
- switch to anonymous Apex for transactional setup
|
|
88
|
+
- split the operation into parent-first then child records
|
|
89
|
+
- provide the user with an exact manual setup checklist
|
|
90
|
+
|
|
91
|
+
## Cleanup expectations
|
|
92
|
+
|
|
93
|
+
Whenever test data is created, provide one of:
|
|
94
|
+
- delete-by-ID commands
|
|
95
|
+
- delete-by-pattern guidance
|
|
96
|
+
- delete-by-created-date guidance
|
|
97
|
+
- rollback script or savepoint flow
|
|
98
|
+
|
|
99
|
+
## Related references
|
|
100
|
+
|
|
101
|
+
- [sf-cli-data-commands.md](sf-cli-data-commands.md)
|
|
102
|
+
- [test-data-patterns.md](test-data-patterns.md)
|
|
103
|
+
- [cleanup-rollback-guide.md](cleanup-rollback-guide.md)
|
|
104
|
+
- [orchestration.md](orchestration.md)
|