UNPKG

bc-code-intelligence-mcp

Version:

BC Code Intelligence MCP Server - Complete Specialist Bundle with AI-driven expert consultation, seamless handoffs, and context-preserving workflows

249 lines (190 loc) 8.05 kB
--- title: "Manual Object ID Management and Collision Prevention" domain: "alex-architect" difficulty: "intermediate" bc_versions: "14+" tags: ["object-ids", "architecture", "tooling", "recommendations", "collaboration"] conditional_mcp_missing: "al-objid-mcp-server" estimated_time: "5 minutes" last_updated: "2025-10-27" --- # Manual Object ID Management and Collision Prevention ## ⚠️ Object ID Collision Risk I notice you don't have **Object ID Ninja** (AL Object ID MCP Server) configured in your environment. This means you'll need to **manually manage object ID ranges** and rely on careful coordination to prevent ID collisions. ## What You're Missing ### Automatic Collision Prevention Without Object ID Ninja, you cannot: - ✅ **Automatically find safe object IDs** from your assigned ranges - ✅ **Reserve IDs** to prevent team conflicts - ✅ **Check availability** before creating objects - ✅ **Coordinate across team members** with backend synchronization - ✅ **Manage publisher ranges** for AppSource development - ✅ **Track ID assignments** across multiple projects ### Example: What Object ID Ninja Provides **Instead of saying:** > "Use IDs in the 50000-99999 range and manually check for conflicts" **I could say:** > "Let me find you a safe ID... Object ID 52847 is available and reserved for you. Your next IDs: 52848, 52849, 52850 are also free. I'll reserve them to prevent conflicts." ## Manual Approach (Current) ### Customer Development Ranges Follow these manual guidelines: **Standard Ranges:** - **50000-99999**: Customer development objects - **70000-79999**: Often used for integrations/reports - **80000-89999**: Customizations and extensions **AppSource/ISV Ranges:** - Request from Microsoft Partner Center - Typically 70000000-74999999 or 75000000-79999999 - MUST be registered to avoid conflicts ### Manual Collision Prevention Steps 1. **Document Your Assignments** ```markdown # Object ID Assignments - 50100-50199: Customer Management Extensions - 50200-50299: Sales Process Customizations - 50300-50399: Reporting Extensions ``` 2. **Check Before Creating** - Search existing objects in your workspace - Verify with team members verbally or via documentation - Check source control for recent additions 3. **Team Coordination** - Maintain shared spreadsheet of ID assignments - Reserve ranges per developer or feature - Regular team syncs to avoid conflicts 4. **Version Control Checks** - Review PR conflicts carefully - Check for object ID collisions during code review - Run compile checks frequently ### Risks of Manual Management - ❌ **Human Error**: Easy to forget to check or miscommunicate - ❌ **Race Conditions**: Two developers pick same ID simultaneously - ❌ **Scaling Issues**: Manual tracking breaks down with team growth - ❌ **Merge Conflicts**: ID collisions discovered late in development - ❌ **AppSource Violations**: Accidentally use IDs outside publisher range ## Why Object ID Ninja is Valuable ### LITE Mode (Individual Developers) - Personal ID pool management - Local ID assignment tracking - Conflict prevention within your own projects - No backend required ### STANDARD Mode (Team Collaboration) ⭐ - **Centralized backend** coordinates across team - **Real-time ID reservation** prevents conflicts - **Multi-developer synchronization** via shared service - **Publisher range enforcement** for AppSource compliance - **Audit trail** of ID assignments ### Key Features 1. **Smart ID Discovery** - `objid_get_next_available` - Find next safe ID - `objid_reserve_id` - Reserve ID to prevent conflicts - `objid_check_availability` - Verify ID is free 2. **Range Management** - Configure allowed ranges (customer vs AppSource) - Enforce publisher boundaries - Multi-range support for complex scenarios 3. **Team Coordination** - Backend synchronization (STANDARD mode) - Real-time conflict prevention - Assignment tracking and history ## Installation Instructions ### 1. Install Object ID Ninja MCP Server Add to your MCP settings (VS Code: `.vscode/settings.json`): ```json { "mcp.servers": { "al-objid-mcp-server": { "command": "npx", "args": ["-y", "@vjeko.com/al-objid-mcp-server"] } } } ``` Or for Claude Desktop (`claude_desktop_config.json`): ```json { "mcpServers": { "al-objid-mcp-server": { "command": "npx", "args": ["-y", "@vjeko.com/al-objid-mcp-server"] } } } ``` ### 2. Choose Your Mode **LITE Mode** (Individual): - No additional configuration - Works immediately for personal ID management - Good for solo developers or small projects **STANDARD Mode** (Teams): - Configure backend coordination service - See Object ID Ninja documentation for backend setup - Essential for teams and AppSource development ### 3. Update Workspace Configuration Once installed, let me know it's available: ```json { "tool": "set_workspace_info", "arguments": { "path": "C:\\Your\\Workspace\\Path", "available_mcps": ["al-objid-mcp-server"] } } ``` **Dynamic Knowledge Loading**: Once you report Object ID Ninja as available, I'll automatically delegate ID management to it instead of providing manual guidance! ## Manual Best Practices (Until You Install) ### 1. Range Allocation Strategy ``` Developer A: 50000-50499 Developer B: 50500-50999 Feature X: 51000-51499 Integration: 51500-51999 Reports: 52000-52499 ``` ### 2. Pre-Commit Checklist - [ ] Verified ID not in use locally - [ ] Checked team assignment spreadsheet - [ ] Updated documentation with new ID - [ ] Confirmed in allowed range (customer/AppSource) ### 3. Code Review Focus - Verify object IDs are in correct range - Check for duplicate IDs across PRs - Confirm AppSource range compliance - Validate team assignment tracking updated ### 4. Documentation Template ```markdown ## Object ID Registry ### Assigned Ranges | Range | Purpose | Owner | Status | |-------|---------|-------|--------| | 50100-50149 | Customer Tables | TeamA | Active | | 50150-50199 | Customer Pages | TeamA | Active | ### Individual Assignments | ID | Object Type | Name | Developer | Date | |----|-------------|------|-----------|------| | 50100 | Table | "Customer Comment" | Alice | 2025-10-27 | ``` ## The Difference ### Manual (Current) > "Use ID 50147 if available. Check with your team and document the assignment in your shared tracker." ### Automated (With Object ID Ninja) > "I checked with Object ID Ninja - ID 50147 is available and I've reserved it for you for the next hour. Your next available IDs are 50148, 50149, 50150." ## AppSource Development Without Object ID Ninja If you're developing for AppSource **without** Object ID Ninja, you MUST: 1. **Know Your Publisher Range**: Get it from Microsoft Partner Center 2. **Strict Range Enforcement**: Never use IDs outside your publisher range 3. **Meticulous Tracking**: Every ID assignment documented 4. **Frequent Validation**: Regular checks against publisher boundaries 5. **Team Discipline**: Zero tolerance for range violations **Risk**: AppSource submission rejection due to ID range violations. ## Next Steps 1. **Install Object ID Ninja** following instructions above 2. **Choose LITE or STANDARD** mode based on team size 3. **Configure ranges** (customer vs AppSource) 4. **Update workspace info** to report MCP availability 5. **Ask me for object IDs again** - I'll use automated assignment! ## See Also - [Object ID Ninja Documentation](https://github.com/vjekob/al-objid) - [Object ID Ranges](./object-id-ranges.md) - Range guidelines - [Naming Conventions](../shared/naming-conventions.md) - AL naming standards - [AppSource Guidelines](../morgan-market/appsource-guidelines.md) - Publisher requirements