|
| 1 | +<!DOCTYPE html> |
| 2 | +<html lang="en"> |
| 3 | +<head> |
| 4 | + <meta charset="UTF-8"> |
| 5 | + <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| 6 | + <meta name="description" content="Real-life demonstration of AI-assisted D365 F&O development using FO Semantic MCP Server"> |
| 7 | + <title>FO Semantic MCP - Real-Life Demo</title> |
| 8 | + <link rel="preconnect" href="https://fonts.googleapis.com"> |
| 9 | + <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> |
| 10 | + <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet"> |
| 11 | + <link rel="stylesheet" href="styles.css"> |
| 12 | +</head> |
| 13 | +<body> |
| 14 | + <header> |
| 15 | + <div class="container"> |
| 16 | + <h1>Real-Life Demo: AI-Assisted D365 F&O Development</h1> |
| 17 | + <p class="subtitle">Watch how an AI agent uses the FO Semantic MCP Server to complete a D365 F&O customization task</p> |
| 18 | + <nav class="breadcrumb"> |
| 19 | + <a href="../../README.md">Home</a> / |
| 20 | + <a href="../GETTING_STARTED.md">Getting Started</a> / |
| 21 | + <span>Live Demo</span> |
| 22 | + </nav> |
| 23 | + </div> |
| 24 | + </header> |
| 25 | + |
| 26 | + <main class="container"> |
| 27 | + <section class="intro"> |
| 28 | + <h2>📋 The Task</h2> |
| 29 | + <div class="task-box"> |
| 30 | + <p><strong>User Request:</strong></p> |
| 31 | + <blockquote> |
| 32 | + "Create a new field 'External name' on vendor group table if it is not exist, and add it to form general tab" |
| 33 | + </blockquote> |
| 34 | + </div> |
| 35 | + |
| 36 | + <div class="info-box"> |
| 37 | + <h3>What You'll See:</h3> |
| 38 | + <ul> |
| 39 | + <li>✅ AI using <code>search_fo_artifacts</code> MCP tool to find standard D365 artifacts</li> |
| 40 | + <li>✅ AI reading standard XML files via <code>fullLocalPath</code></li> |
| 41 | + <li>✅ AI searching user's workspace for existing customizations</li> |
| 42 | + <li>✅ AI generating complete table and form extensions following D365 patterns</li> |
| 43 | + <li>✅ Complete implementation delivered in a single session</li> |
| 44 | + </ul> |
| 45 | + </div> |
| 46 | + </section> |
| 47 | + |
| 48 | + <!-- Step 1 --> |
| 49 | + <section class="step"> |
| 50 | + <div class="step-header"> |
| 51 | + <span class="step-number">Step 1</span> |
| 52 | + <h3>Initial Search for VendGroup Table</h3> |
| 53 | + </div> |
| 54 | + <div class="step-content"> |
| 55 | + <img src="images/1.png" alt="Step 1: Initial MCP tool call to search for VendGroup table"> |
| 56 | + <div class="step-description"> |
| 57 | + <h4>What's Happening:</h4> |
| 58 | + <ul> |
| 59 | + <li>AI breaks down the user request into actionable steps</li> |
| 60 | + <li>First action: Find the VendGroup table in standard D365</li> |
| 61 | + <li>Uses <code>search_fo_artifacts</code> with query: <em>"VendGroup vendor group table"</em></li> |
| 62 | + </ul> |
| 63 | + |
| 64 | + <h4>Result:</h4> |
| 65 | + <p>Found 5 artifacts, including <strong>VendVendorGroupStaging</strong> table. AI recognizes this is a staging table, not the actual VendGroup table.</p> |
| 66 | + |
| 67 | + <div class="highlight"> |
| 68 | + <strong>🔍 Key Observation:</strong> The AI demonstrates intelligent refinement - it recognizes the initial results aren't quite right and prepares to search again. |
| 69 | + </div> |
| 70 | + </div> |
| 71 | + </div> |
| 72 | + </section> |
| 73 | + |
| 74 | + <!-- Step 2 --> |
| 75 | + <section class="step"> |
| 76 | + <div class="step-header"> |
| 77 | + <span class="step-number">Step 2</span> |
| 78 | + <h3>Refined Search with Better Query</h3> |
| 79 | + </div> |
| 80 | + <div class="step-content"> |
| 81 | + <img src="images/2.png" alt="Step 2: Refined search for actual VendGroup table"> |
| 82 | + <div class="step-description"> |
| 83 | + <h4>What's Happening:</h4> |
| 84 | + <ul> |
| 85 | + <li>AI recognizes staging table isn't what's needed</li> |
| 86 | + <li>Refines query to: <em>"VendGroup table vendor classification group"</em></li> |
| 87 | + <li>Uses more specific terminology to find the base table</li> |
| 88 | + </ul> |
| 89 | + |
| 90 | + <h4>Result:</h4> |
| 91 | + <p>Found the actual <strong>VendGroup</strong> table with <code>fullLocalPath</code> to the XML file.</p> |
| 92 | + |
| 93 | + <div class="highlight"> |
| 94 | + <strong>💡 MCP Tool Value:</strong> The tool provides the exact file path to standard D365 metadata that the AI couldn't otherwise access. |
| 95 | + </div> |
| 96 | + </div> |
| 97 | + </div> |
| 98 | + </section> |
| 99 | + |
| 100 | + <!-- Step 3 --> |
| 101 | + <section class="step"> |
| 102 | + <div class="step-header"> |
| 103 | + <span class="step-number">Step 3</span> |
| 104 | + <h3>Search for VendGroup Form</h3> |
| 105 | + </div> |
| 106 | + <div class="step-content"> |
| 107 | + <img src="images/3.png" alt="Step 3: Search for VendGroup form"> |
| 108 | + <div class="step-description"> |
| 109 | + <h4>What's Happening:</h4> |
| 110 | + <ul> |
| 111 | + <li>AI now needs to find the VendGroup form to add the field to the General tab</li> |
| 112 | + <li>Uses <code>search_fo_artifacts</code> with query: <em>"VendGroup form vendor classification"</em></li> |
| 113 | + <li>Plans next steps: check for existing extensions, read standard implementations</li> |
| 114 | + </ul> |
| 115 | + |
| 116 | + <h4>Result:</h4> |
| 117 | + <p>Found <strong>VendGroup Form</strong> artifact with full metadata and file path.</p> |
| 118 | + |
| 119 | + <div class="highlight"> |
| 120 | + <strong>🎯 Workflow Pattern:</strong> AI is following a systematic approach - find table, find form, check customizations, then implement. |
| 121 | + </div> |
| 122 | + </div> |
| 123 | + </div> |
| 124 | + </section> |
| 125 | + |
| 126 | + <!-- Step 4 --> |
| 127 | + <section class="step"> |
| 128 | + <div class="step-header"> |
| 129 | + <span class="step-number">Step 4</span> |
| 130 | + <h3>Reading Standard Files & Checking Workspace</h3> |
| 131 | + </div> |
| 132 | + <div class="step-content"> |
| 133 | + <img src="images/4.png" alt="Step 4: Reading F&O asset files via fullLocalPath"> |
| 134 | + <div class="step-description"> |
| 135 | + <h4>What's Happening:</h4> |
| 136 | + <ul> |
| 137 | + <li><strong>Critical moment:</strong> AI uses the <code>fullLocalPath</code> provided by MCP tool</li> |
| 138 | + <li>Reads actual VendGroup.xml files to understand structure</li> |
| 139 | + <li>Searches user's workspace for existing VendGroup extensions</li> |
| 140 | + <li>No existing extension found - will need to create new files</li> |
| 141 | + </ul> |
| 142 | + |
| 143 | + <div class="highlight"> |
| 144 | + <strong>🔑 This is the Core Value:</strong> The MCP tool bridges the gap between AI and local D365 metadata. The AI can now read the actual standard implementation instead of guessing or hallucinating. |
| 145 | + </div> |
| 146 | + </div> |
| 147 | + </div> |
| 148 | + </section> |
| 149 | + |
| 150 | + <!-- Step 5 --> |
| 151 | + <section class="step"> |
| 152 | + <div class="step-header"> |
| 153 | + <span class="step-number">Step 5</span> |
| 154 | + <h3>Understanding Form Structure & Patterns</h3> |
| 155 | + </div> |
| 156 | + <div class="step-content"> |
| 157 | + <img src="images/5.png" alt="Step 5: AI researching form structure and patterns"> |
| 158 | + <div class="step-description"> |
| 159 | + <h4>What's Happening:</h4> |
| 160 | + <ul> |
| 161 | + <li>AI reads CustParameters table extension to understand extension patterns</li> |
| 162 | + <li>Searches for "General tab" structure in VendGroup form</li> |
| 163 | + <li>Uses grep to find General tab naming conventions</li> |
| 164 | + <li>Reads CustTable form to understand similar implementations</li> |
| 165 | + </ul> |
| 166 | + |
| 167 | + <h4>Result:</h4> |
| 168 | + <p>AI learns D365 patterns: TabGeneral naming, FastTab structure, field group organization.</p> |
| 169 | + |
| 170 | + <div class="highlight"> |
| 171 | + <strong>🧠 Context-Aware Development:</strong> The AI isn't just writing code - it's learning from existing patterns in both standard D365 and user's customizations. |
| 172 | + </div> |
| 173 | + </div> |
| 174 | + </div> |
| 175 | + </section> |
| 176 | + |
| 177 | + <!-- Step 6 --> |
| 178 | + <section class="step"> |
| 179 | + <div class="step-header"> |
| 180 | + <span class="step-number">Step 6</span> |
| 181 | + <h3>Creating Extensions</h3> |
| 182 | + </div> |
| 183 | + <div class="step-content"> |
| 184 | + <img src="images/6.png" alt="Step 6: AI creates table and form extensions"> |
| 185 | + <div class="step-description"> |
| 186 | + <h4>What's Happening:</h4> |
| 187 | + <ul> |
| 188 | + <li>AI creates <strong>VendGroup table extension</strong> with new field</li> |
| 189 | + <li>AI creates <strong>VendGroup form extension</strong> adding field to General tab</li> |
| 190 | + <li>Both files shown as "new" with line counts (+25 lines each)</li> |
| 191 | + <li>Proper XML structure following D365 conventions</li> |
| 192 | + </ul> |
| 193 | + |
| 194 | + <h4>Key Details:</h4> |
| 195 | + <ul> |
| 196 | + <li>Field uses <code>Name</code> extended data type (EDT)</li> |
| 197 | + <li>Form control bound to VendGroup data source</li> |
| 198 | + <li>Placed in TabGeneral (General tab) as requested</li> |
| 199 | + </ul> |
| 200 | + </div> |
| 201 | + </div> |
| 202 | + </section> |
| 203 | + |
| 204 | + <!-- Step 7 --> |
| 205 | + <section class="step"> |
| 206 | + <div class="step-header"> |
| 207 | + <span class="step-number">Step 7</span> |
| 208 | + <h3>Complete Summary & Next Steps</h3> |
| 209 | + </div> |
| 210 | + <div class="step-content"> |
| 211 | + <img src="images/7.png" alt="Step 7: Final summary and next steps"> |
| 212 | + <div class="step-description"> |
| 213 | + <h4>What's Delivered:</h4> |
| 214 | + |
| 215 | + <div class="summary-box"> |
| 216 | + <h5>1. Table Extension</h5> |
| 217 | + <ul> |
| 218 | + <li>Added field to VendGroup table</li> |
| 219 | + <li>Field Type: String (using Name EDT)</li> |
| 220 | + <li>Label: "External name"</li> |
| 221 | + <li>Help Text: "External name for vendor group"</li> |
| 222 | + </ul> |
| 223 | + |
| 224 | + <h5>2. Form Extension</h5> |
| 225 | + <ul> |
| 226 | + <li>Added field to VendGroup form</li> |
| 227 | + <li>Placed in TabGeneral (General tab)</li> |
| 228 | + <li>Bound to VendGroup data source</li> |
| 229 | + </ul> |
| 230 | + |
| 231 | + <h5>3. Next Steps Provided</h5> |
| 232 | + <ol> |
| 233 | + <li>Build the model in Visual Studio</li> |
| 234 | + <li>Synchronize database to create the new field</li> |
| 235 | + <li>Test in UI (Accounts Payable > Setup > Vendor groups)</li> |
| 236 | + <li>Add to source control when verified</li> |
| 237 | + </ol> |
| 238 | + </div> |
| 239 | + |
| 240 | + <div class="highlight success"> |
| 241 | + <strong>✅ Task Complete:</strong> From a simple natural language request to complete, correct implementation - all in a single AI session with MCP tool assistance. |
| 242 | + </div> |
| 243 | + </div> |
| 244 | + </div> |
| 245 | + </section> |
| 246 | + |
| 247 | + <!-- Conclusion --> |
| 248 | + <section class="conclusion"> |
| 249 | + <h2>🎓 What This Demonstrates</h2> |
| 250 | + |
| 251 | + <div class="demo-insights"> |
| 252 | + <div class="insight-card"> |
| 253 | + <h3>🔍 Semantic Search Works</h3> |
| 254 | + <p>The AI successfully found relevant D365 artifacts using natural language queries, even refining searches when needed.</p> |
| 255 | + </div> |
| 256 | + |
| 257 | + <div class="insight-card"> |
| 258 | + <h3>📁 File Access is Critical</h3> |
| 259 | + <p>The <code>fullLocalPath</code> field enabled the AI to read actual standard implementations instead of guessing structure.</p> |
| 260 | + </div> |
| 261 | + |
| 262 | + <div class="insight-card"> |
| 263 | + <h3>🧩 Pattern Recognition</h3> |
| 264 | + <p>AI learned from both standard D365 code and user's existing customizations to generate context-aware solutions.</p> |
| 265 | + </div> |
| 266 | + |
| 267 | + <div class="insight-card"> |
| 268 | + <h3>⚡ Iterative Workflow</h3> |
| 269 | + <p>The tool supported an exploratory workflow - search, read, search again, read more, implement.</p> |
| 270 | + </div> |
| 271 | + |
| 272 | + <div class="insight-card"> |
| 273 | + <h3>✨ Complete Implementation</h3> |
| 274 | + <p>From request to working code in minutes, with proper XML structure, naming conventions, and actionable next steps.</p> |
| 275 | + </div> |
| 276 | + |
| 277 | + <div class="insight-card"> |
| 278 | + <h3>🎯 No Hallucination</h3> |
| 279 | + <p>AI didn't make up field names, table structures, or form designs - it looked them up using real metadata.</p> |
| 280 | + </div> |
| 281 | + </div> |
| 282 | + </section> |
| 283 | + |
| 284 | + <section class="cta"> |
| 285 | + <h2>🚀 Try It Yourself</h2> |
| 286 | + <p>Ready to experience AI-assisted D365 F&O development?</p> |
| 287 | + <div class="cta-buttons"> |
| 288 | + <a href="../GETTING_STARTED.md" class="btn btn-primary">Get Started Guide</a> |
| 289 | + <a href="https://github.com/xplusplusai/fo-semantic-mcp" class="btn btn-secondary">View on GitHub</a> |
| 290 | + </div> |
| 291 | + </section> |
| 292 | + </main> |
| 293 | + |
| 294 | + <footer> |
| 295 | + <div class="container"> |
| 296 | + <p>© 2025 FO Semantic MCP Server | <a href="../../README.md">Documentation</a> | <a href="https://github.com/xplusplusai/fo-semantic-mcp/releases">Releases</a></p> |
| 297 | + </div> |
| 298 | + </footer> |
| 299 | +</body> |
| 300 | +</html> |
0 commit comments