<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>首页 on Yven</title><link>http://www.yven.cn/</link><description>Recent content in 首页 on Yven</description><generator>Hugo</generator><language>zh-CN</language><atom:link href="http://www.yven.cn/index.xml" rel="self" type="application/rss+xml"/><item><title>Dynamics 365 Word Templates 跨环境同步指南</title><link>http://www.yven.cn/posts/word-template-sync/</link><pubDate>Sun, 22 Jun 2025 00:00:00 +0000</pubDate><guid>http://www.yven.cn/posts/word-template-sync/</guid><description>&lt;h2 id="问题背景"&gt;问题背景&lt;/h2&gt;
&lt;p&gt;在 Dynamics 365 Customer Engagement 项目中，经常需要在开发、测试、生产等不同环境之间同步 &lt;strong&gt;Word Templates&lt;/strong&gt;（文档模板）。&lt;/p&gt;
&lt;p&gt;一个常见的问题是：&lt;strong&gt;同一实体在不同环境中的 ObjectTypeCode 可能不同&lt;/strong&gt;。Word Template 内部通过 ObjectTypeCode 来关联实体，如果直接导出导入，模板会因找不到对应的实体而失效。&lt;/p&gt;
&lt;h2 id="解决流程"&gt;解决流程&lt;/h2&gt;
&lt;h3 id="步骤一查询实体的-objecttypecode"&gt;步骤一：查询实体的 ObjectTypeCode&lt;/h3&gt;
&lt;p&gt;首先确认当前环境中目标实体的 ObjectTypeCode：&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;
 &lt;button class="copy-btn" onclick="copyCode(this)"&gt;复制&lt;/button&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ObjectTypeCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Entity&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;WITH&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;NOLOCK&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;EntityName&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;将 &lt;code&gt;EntityName&lt;/code&gt; 替换为实际实体名称，如 &lt;code&gt;account&lt;/code&gt;、&lt;code&gt;contact&lt;/code&gt;、&lt;code&gt;new_customentity&lt;/code&gt; 等。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;分别在不同环境中执行此查询，记录各自的 ObjectTypeCode 值。&lt;/p&gt;
&lt;h3 id="步骤二导出-word-模板"&gt;步骤二：导出 Word 模板&lt;/h3&gt;
&lt;p&gt;在源环境中，通过 &lt;strong&gt;设置 → 模板 → 文档模板&lt;/strong&gt; 下载需要迁移的 Word Template（.docx 文件）。&lt;/p&gt;
&lt;h3 id="步骤三修改-docx-文件"&gt;步骤三：修改 .docx 文件&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;.docx&lt;/code&gt; 文件本质上是一个 &lt;strong&gt;ZIP 压缩包&lt;/strong&gt;，内部包含多个 XML 文件。我们需要解压并修改其中的 ObjectTypeCode 引用。&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;
 &lt;button class="copy-btn" onclick="copyCode(this)"&gt;复制&lt;/button&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 解压 docx 文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;unzip template.docx -d template_extracted/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 在 XML 文件中查找并替换 ObjectTypeCode&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 将源环境的 ObjectTypeCode 替换为目标环境的值&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;grep -r &lt;span class="s2"&gt;&amp;#34;ObjectTypeCode&amp;#34;&lt;/span&gt; template_extracted/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;关键文件通常包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;word/document.xml&lt;/code&gt; — 主文档内容&lt;/li&gt;
&lt;li&gt;&lt;code&gt;word/settings.xml&lt;/code&gt; — 文档设置&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;使用文本编辑器打开这些 XML 文件，找到所有引用了源环境 ObjectTypeCode 的地方，替换为目标环境的值。&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;
 &lt;button class="copy-btn" onclick="copyCode(this)"&gt;复制&lt;/button&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;lt;!-- 示例：将 10285 替换为目标环境的 ObjectTypeCode --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;ObjectTypeCode&amp;gt;&lt;/span&gt;10285&lt;span class="nt"&gt;&amp;lt;/ObjectTypeCode&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="步骤四处理-customxml-引用"&gt;步骤四：处理 customXml 引用&lt;/h3&gt;
&lt;p&gt;如果 Word Template 引用了 XML 数据源，还需要修改 &lt;strong&gt;customXml&lt;/strong&gt; 文件夹中的两个文件：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;customXml/item1.xml&lt;/code&gt; — 自定义 XML 数据&lt;/li&gt;
&lt;li&gt;&lt;code&gt;customXml/itemProps1.xml&lt;/code&gt; — XML 属性定义&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;
 &lt;button class="copy-btn" onclick="copyCode(this)"&gt;复制&lt;/button&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 查找 customXml 中的 ObjectTypeCode 引用&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;grep -r &lt;span class="s2"&gt;&amp;#34;ObjectTypeCode&amp;#34;&lt;/span&gt; template_extracted/customXml/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;同样将 ObjectTypeCode 替换为目标环境的值。&lt;/p&gt;</description></item><item><title>PCF Multiselect Records 控件配置笔记</title><link>http://www.yven.cn/posts/pcf-multiselect-records/</link><pubDate>Sun, 22 Jun 2025 00:00:00 +0000</pubDate><guid>http://www.yven.cn/posts/pcf-multiselect-records/</guid><description>&lt;h2 id="背景"&gt;背景&lt;/h2&gt;
&lt;p&gt;在 Model-driven App 中，原生的 Lookup 字段只支持单选。当需要实现多选记录关联时，可以借助社区优秀的 PCF 控件来扩展。本文记录使用 &lt;strong&gt;Víctor Sánchez&lt;/strong&gt; 开发的 &lt;a href="https://github.com/victorsolaya/Multiselect_Records_PCF"&gt;Multiselect Records PCF&lt;/a&gt; 控件时，字段配置过程中遇到的关键问题。&lt;/p&gt;
&lt;h2 id="配置要点"&gt;配置要点&lt;/h2&gt;
&lt;h3 id="1-绑定字段类型选择"&gt;1. 绑定字段类型选择&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;不要直接绑定 Lookup 字段。&lt;/strong&gt; 需要新建一个 &lt;strong&gt;Multiple Lines of Text&lt;/strong&gt;（多行文本）类型字段来承载 PCF 控件的数据。&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;
 &lt;button class="copy-btn" onclick="copyCode(this)"&gt;复制&lt;/button&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;字段类型：Multiple Lines of Text → Text Area
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;绑定方式：将该字段拖入表单 → 配置为 PCF 控件&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这样 PCF 控件会将选中的记录 ID 序列化存储在该文本字段中。&lt;/p&gt;
&lt;h3 id="2-field-filter-values-写法"&gt;2. Field Filter Values 写法&lt;/h3&gt;
&lt;p&gt;如果 Filter 条件绑定的是表单上的&lt;strong&gt;自定义 Lookup 字段&lt;/strong&gt;，参数写法需要在字段名后加 &lt;code&gt;_value&lt;/code&gt; 后缀：&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;
 &lt;button class="copy-btn" onclick="copyCode(this)"&gt;复制&lt;/button&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 自定义 Lookup 字段「新客户」的 filter 参数
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;_new_accountid_value&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 而非
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;_new_accountid&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这是因为 Lookup 字段在 DOM 中的实际值存储在 &lt;code&gt;_value&lt;/code&gt; 属性中。&lt;/p&gt;
&lt;h3 id="3-columns-参数格式"&gt;3. Columns 参数格式&lt;/h3&gt;
&lt;p&gt;配置 Columns（显示列）时，&lt;strong&gt;Display Name 和 fieldName 缺一不可&lt;/strong&gt;，且格式必须严格：&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;
 &lt;button class="copy-btn" onclick="copyCode(this)"&gt;复制&lt;/button&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;Display Name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;客户名称&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;fieldName&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;Display Name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;客户编号&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;fieldName&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;accountnumber&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;Display Name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;城市&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;fieldName&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;address1_city&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;⚠️ 注意是 &lt;code&gt;Display Name&lt;/code&gt; 和 &lt;code&gt;fieldName&lt;/code&gt;，不能写成 &lt;code&gt;displayName&lt;/code&gt; 或 &lt;code&gt;display_name&lt;/code&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="参考资源"&gt;参考资源&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/victorsolaya/Multiselect_Records_PCF"&gt;Multiselect Records PCF - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Víctor Sánchez 的原始实现&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="总结"&gt;总结&lt;/h2&gt;
&lt;p&gt;三个关键点：&lt;/p&gt;</description></item><item><title>🍌 你好，小黄人博客！</title><link>http://www.yven.cn/posts/hello-minions-blog/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>http://www.yven.cn/posts/hello-minions-blog/</guid><description>&lt;h2 id="欢迎来到我的技术博客"&gt;欢迎来到我的技术博客&lt;/h2&gt;
&lt;p&gt;经过一番折腾，这个基于 &lt;strong&gt;Hugo&lt;/strong&gt; + &lt;strong&gt;小黄人主题&lt;/strong&gt; 的个人技术博客终于上线了 🎉&lt;/p&gt;
&lt;p&gt;作为一个长期在微软技术生态中摸爬滚打的软件工程师，我一直想有一个地方来沉淀和分享自己的技术积累。这个博客就是这样一个空间。&lt;/p&gt;
&lt;h2 id="我会写些什么"&gt;我会写些什么&lt;/h2&gt;
&lt;p&gt;这里的内容将主要围绕以下几个方向：&lt;/p&gt;
&lt;h3 id="power-platform"&gt;Power Platform&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Power Apps&lt;/strong&gt;：Canvas App 和 Model-driven App 的实战技巧&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Power Automate&lt;/strong&gt;：Cloud Flow 和 Desktop Flow 的自动化场景&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Power BI&lt;/strong&gt;：数据可视化与嵌入式分析&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dataverse&lt;/strong&gt;：数据建模、安全模型、API 集成&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="dynamics-365"&gt;Dynamics 365&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Customer Engagement&lt;/strong&gt;：Sales、Customer Service、Field Service 模块的定制开发&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;C# Plugin &amp;amp; Custom Workflow&lt;/strong&gt;：服务端扩展开发最佳实践&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JavaScript Form Script&lt;/strong&gt;：前端表单脚本与 Ribbon 定制&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Integration&lt;/strong&gt;：D365 与 ERP、第三方系统的集成方案&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="net--azure"&gt;.NET &amp;amp; Azure&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ASP.NET Core&lt;/strong&gt;：Web API 开发&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure Functions&lt;/strong&gt;：Serverless 集成场景&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DevOps&lt;/strong&gt;：CI/CD、ALM、Solution 管理&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="关于这个博客的技术栈"&gt;关于这个博客的技术栈&lt;/h2&gt;
&lt;p&gt;这个博客本身也是一个有趣的小项目：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;技术&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Hugo&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Go 语言编写的静态站点生成器，构建速度极快&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;自定义主题&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;从零手写的小黄人主题，SCSS + Vanilla JS&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;GitHub Pages&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;免费托管，自动部署&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Giscus&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;基于 GitHub Discussions 的评论系统&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="code-block-wrapper"&gt;
 &lt;button class="copy-btn" onclick="copyCode(this)"&gt;复制&lt;/button&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 作为一个 .NET 开发者，第一篇博文当然要有代码块 😎&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MinionBlog&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;Author&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Yven Yuan&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;Theme&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Banana! 🍌&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Topics&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Power Platform&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Dynamics 365&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;.NET&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="n"&gt;StartBlogging&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Hello, Minions! 👁️&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="写在最后"&gt;写在最后&lt;/h2&gt;
&lt;p&gt;&amp;ldquo;君子务本，本立而道生。&amp;rdquo; —— 技术这条路，扎实走好每一步。&lt;/p&gt;
&lt;p&gt;感谢你的到访，欢迎通过 &lt;a href="https://github.com/Yven-Yuan"&gt;GitHub&lt;/a&gt; 或邮件与我交流。一起成长 🚀&lt;/p&gt;</description></item><item><title>关于我</title><link>http://www.yven.cn/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.yven.cn/about/</guid><description>&lt;div class="about-header"&gt;
 &lt;div class="avatar-frame"&gt;
 &lt;img src="http://www.yven.cn/img/avatar.webp" alt="Yven" width="120" height="120" style="width:100%;height:100%;object-fit:cover;"&gt;
 &lt;/div&gt;
 &lt;h2 class="about-name"&gt;Yven Yuan&lt;/h2&gt;
 &lt;p class="about-bio"&gt;专注微软技术生态的软件工程师 · Power Platform / Dynamics 365 / .NET&lt;/p&gt;
&lt;/div&gt;
&lt;div class="banana-divider"&gt;🍌 🍌 🍌&lt;/div&gt;
&lt;h2 id="-关于我"&gt;👋 关于我&lt;/h2&gt;
&lt;p&gt;你好！我是 &lt;strong&gt;Yven Yuan&lt;/strong&gt;，一名专注于微软技术生态的软件工程师和技术博主。&lt;/p&gt;
&lt;p&gt;我热衷于 &lt;strong&gt;Power Platform&lt;/strong&gt;（Power Apps、Power Automate、Power BI）、&lt;strong&gt;Dynamics 365&lt;/strong&gt;（Customer Engagement、Finance &amp;amp; Operations）以及 &lt;strong&gt;.NET&lt;/strong&gt; 技术栈。我相信低代码与专业代码的结合能够为企业带来高效的数字化转型解决方案。&lt;/p&gt;
&lt;div class="resume-section"&gt;
&lt;div class="section-title"&gt;📝 博客内容&lt;/div&gt;
&lt;div class="skill-tags"&gt;
&lt;span class="skill-tag"&gt;Power Platform 实战&lt;/span&gt;
&lt;span class="skill-tag"&gt;Dynamics 365 开发&lt;/span&gt;
&lt;span class="skill-tag"&gt;.NET / C# 心得&lt;/span&gt;
&lt;span class="skill-tag"&gt;Azure 云架构&lt;/span&gt;
&lt;span class="skill-tag"&gt;Dataverse 深探&lt;/span&gt;
&lt;span class="skill-tag"&gt;Power Fx&lt;/span&gt;
&lt;span class="skill-tag"&gt;DevOps 实践&lt;/span&gt;
&lt;span class="skill-tag"&gt;低代码最佳实践&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="-技术栈"&gt;🛠️ 技术栈&lt;/h2&gt;
&lt;div class="resume-section"&gt;
&lt;div class="section-title"&gt;Microsoft Power Platform&lt;/div&gt;
&lt;div class="skill-tags"&gt;
&lt;span class="skill-tag"&gt;Power Apps (Canvas)&lt;/span&gt;
&lt;span class="skill-tag"&gt;Power Apps (Model-driven)&lt;/span&gt;
&lt;span class="skill-tag"&gt;Power Automate (Cloud)&lt;/span&gt;
&lt;span class="skill-tag"&gt;Power Automate (Desktop)&lt;/span&gt;
&lt;span class="skill-tag"&gt;Power BI&lt;/span&gt;
&lt;span class="skill-tag"&gt;Power Pages&lt;/span&gt;
&lt;span class="skill-tag"&gt;Power Fx&lt;/span&gt;
&lt;span class="skill-tag"&gt;Connectors &amp; Custom APIs&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="resume-section"&gt;
&lt;div class="section-title"&gt;Dynamics 365&lt;/div&gt;
&lt;div class="skill-tags"&gt;
&lt;span class="skill-tag"&gt;Customer Engagement&lt;/span&gt;
&lt;span class="skill-tag"&gt;Sales&lt;/span&gt;
&lt;span class="skill-tag"&gt;Customer Service&lt;/span&gt;
&lt;span class="skill-tag"&gt;Field Service&lt;/span&gt;
&lt;span class="skill-tag"&gt;Finance &amp; Operations&lt;/span&gt;
&lt;span class="skill-tag"&gt;Dataverse&lt;/span&gt;
&lt;span class="skill-tag"&gt;C# Plugin&lt;/span&gt;
&lt;span class="skill-tag"&gt;JavaScript (Form Script)&lt;/span&gt;
&lt;span class="skill-tag"&gt;Custom Workflow&lt;/span&gt;
&lt;span class="skill-tag"&gt;SSRS / FetchXML&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="resume-section"&gt;
&lt;div class="section-title"&gt;开发 &amp; DevOps&lt;/div&gt;
&lt;div class="skill-tags"&gt;
&lt;span class="skill-tag"&gt;C# / .NET&lt;/span&gt;
&lt;span class="skill-tag"&gt;ASP.NET Core&lt;/span&gt;
&lt;span class="skill-tag"&gt;JavaScript / TypeScript&lt;/span&gt;
&lt;span class="skill-tag"&gt;Azure Functions&lt;/span&gt;
&lt;span class="skill-tag"&gt;Azure Service Bus&lt;/span&gt;
&lt;span class="skill-tag"&gt;Git&lt;/span&gt;
&lt;span class="skill-tag"&gt;GitHub Actions&lt;/span&gt;
&lt;span class="skill-tag"&gt;Azure DevOps&lt;/span&gt;
&lt;span class="skill-tag"&gt;CI/CD&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="banana-divider"&gt;🍌 🍌 🍌&lt;/div&gt;
&lt;h2 id="-联系我"&gt;📬 联系我&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/Yven-Yuan"&gt;Yven-Yuan&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Email&lt;/strong&gt;: &lt;a href="mailto:Yven.Yuan@outlook.com"&gt;Yven.Yuan@outlook.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;欢迎交流技术话题，一起成长 🚀&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>简历</title><link>http://www.yven.cn/resume/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://www.yven.cn/resume/</guid><description>&lt;h2 id="个人概况"&gt;个人概况&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;多年 Dynamics 365 / Power Platform 解决方案顾问&lt;/strong&gt;，专注于基于 Dynamics 365 Customer Engagement 的企业级 CRM 系统架构设计、定制化开发与系统集成。精通 D365 CE 扩展开发（C# Plugin、Custom Workflow Activity、JavaScript Client-side Scripting）、Dataverse 数据建模、Power Automate 流程自动化及多系统集成。&lt;/p&gt;
&lt;div class="resume-section"&gt;
&lt;div class="section-title"&gt;🎓 教育背景&lt;/div&gt;
&lt;div class="timeline"&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;南京航空航天大学 · 计算机科学与技术 · 本科&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="核心能力"&gt;核心能力&lt;/h2&gt;
&lt;div class="resume-section"&gt;
&lt;div class="section-title"&gt;🛠️ D365 &amp; Power Platform 技术栈&lt;/div&gt;
&lt;div class="skill-tags"&gt;
&lt;span class="skill-tag"&gt;Dynamics 365 CE&lt;/span&gt;
&lt;span class="skill-tag"&gt;Dataverse&lt;/span&gt;
&lt;span class="skill-tag"&gt;Power Apps&lt;/span&gt;
&lt;span class="skill-tag"&gt;Power Automate&lt;/span&gt;
&lt;span class="skill-tag"&gt;C# Plugin&lt;/span&gt;
&lt;span class="skill-tag"&gt;Custom Workflow&lt;/span&gt;
&lt;span class="skill-tag"&gt;JavaScript (Form Script)&lt;/span&gt;
&lt;span class="skill-tag"&gt;Web API / OData&lt;/span&gt;
&lt;span class="skill-tag"&gt;Organization Service&lt;/span&gt;
&lt;span class="skill-tag"&gt;FetchXML&lt;/span&gt;
&lt;span class="skill-tag"&gt;SSRS / Power BI&lt;/span&gt;
&lt;span class="skill-tag"&gt;SSIS / KingswaySoft&lt;/span&gt;
&lt;span class="skill-tag"&gt;Azure Functions&lt;/span&gt;
&lt;span class="skill-tag"&gt;DevOps / ALM&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="resume-section"&gt;
&lt;div class="section-title"&gt;📋 业务领域&lt;/div&gt;
&lt;div class="skill-tags"&gt;
&lt;span class="skill-tag"&gt;Sales&lt;/span&gt;
&lt;span class="skill-tag"&gt;Customer Service&lt;/span&gt;
&lt;span class="skill-tag"&gt;Field Service&lt;/span&gt;
&lt;span class="skill-tag"&gt;Marketing&lt;/span&gt;
&lt;span class="skill-tag"&gt;物业管理&lt;/span&gt;
&lt;span class="skill-tag"&gt;教育培训&lt;/span&gt;
&lt;span class="skill-tag"&gt;金融服务&lt;/span&gt;
&lt;span class="skill-tag"&gt;汽车零售&lt;/span&gt;
&lt;span class="skill-tag"&gt;电子制造&lt;/span&gt;
&lt;span class="skill-tag"&gt;国际贸易&lt;/span&gt;
&lt;span class="skill-tag"&gt;招聘平台&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="项目经验"&gt;项目经验&lt;/h2&gt;
&lt;div class="resume-section"&gt;
&lt;div class="section-title"&gt;💼 服务客户与项目&lt;/div&gt;
&lt;div class="timeline"&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;长城汽车 — 汽车制造与经销商管理&lt;/div&gt;
&lt;div class="timeline-desc"&gt;
主导 D365 CE 经销商管理系统（DMS）建设，覆盖整车销售、售后维修、配件管理、客户回访全链路。基于 &lt;strong&gt;Power Apps Model-driven App&lt;/strong&gt; 为经销商门店定制业务表单与仪表板视图；开发 &lt;strong&gt;C# Plugin&lt;/strong&gt; 实现车辆 VIN 码自动解码、保修期自动计算、配件库存智能补货预警；通过 &lt;strong&gt;Power Automate&lt;/strong&gt; 打通 D365 与车企 ERP、MES 系统，实现订单-生产-交付全流程数据贯通；设计 &lt;strong&gt;多层级安全角色&lt;/strong&gt;（主机厂/大区/经销商/门店），实现数据权限精细化管控。
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;GM 通用汽车 — 汽车制造与全球供应链&lt;/div&gt;
&lt;div class="timeline-desc"&gt;
参与 D365 CE 全球售后服务平台建设，支持亚太区多国经销商网络。负责 &lt;strong&gt;Custom Workflow Activity&lt;/strong&gt; 开发实现索赔工单自动审核、RMA 退货流程自动化；开发 &lt;strong&gt;C# Plugin&lt;/strong&gt; 对接全球零部件主数据系统（PMD）实现配件信息实时同步与 ETA 估算；通过 &lt;strong&gt;Azure Functions + Service Bus&lt;/strong&gt; 集成 SAP ERP 系统，实现索赔金额自动计算与财务回写；编写 &lt;strong&gt;JavaScript 复杂表单逻辑&lt;/strong&gt;（多语言界面切换、VIN 校验、维修工时自动计算），支持中/英/日多语言环境。
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;Philips 飞利浦 — 医疗健康与家电行业&lt;/div&gt;
&lt;div class="timeline-desc"&gt;
负责 D365 CE Field Service 模块定制开发，支撑医疗设备及家电产品的售后服务体系。配置 &lt;strong&gt;Field Service 资源调度&lt;/strong&gt;（工单自动派发、技术员排程优化、服务区域管理）；开发 &lt;strong&gt;C# Plugin&lt;/strong&gt; 实现设备序列号自动关联维保合同、SLA 级别自动匹配、配件消耗自动扣减库存；基于 &lt;strong&gt;Power BI Embedded&lt;/strong&gt; 开发售后服务可视化看板（工单完成率、客户满意度、配件周转分析）；通过 &lt;strong&gt;OData Web API&lt;/strong&gt; 对接 IoT 平台实现设备故障远程诊断与主动派单。
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;索尼中国 / 索尼新加坡 — 电子制造行业&lt;/div&gt;
&lt;div class="timeline-desc"&gt;
负责 D365 Customer Engagement 环境搭建与部署，完成 Dataverse 数据模型设计（实体、字段、关系、表单定义）。基于 &lt;strong&gt;C# Plugin&lt;/strong&gt; 实现售后工单自动派发、SLA 超时预警等核心业务逻辑；通过 &lt;strong&gt;JavaScript Form Script&lt;/strong&gt; 优化用户体验（动态表单联动、业务规则校验、Ribbon 按钮定制）；集成后台 ERP 系统实现订单-库存数据实时同步。
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;高力国际集团 — 全球物业咨询与资产管理&lt;/div&gt;
&lt;div class="timeline-desc"&gt;
作为核心开发参与 D365 CE 物业租赁管理系统建设。主导 &lt;strong&gt;Custom Workflow Activity&lt;/strong&gt; 开发实现合同到期自动提醒与续租流程触发；设计并开发 &lt;strong&gt;SSRS 报表&lt;/strong&gt;（租赁看板、应收分析、客户价值评估）；负责历史数据迁移（&lt;strong&gt;SSIS + KingswaySoft&lt;/strong&gt; 工具链，从遗留系统迁移 50 万+ 客户及合同记录），制定数据清洗策略与增量同步方案，保障上线数据完整性。
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;绿城集团 — 房地产行业&lt;/div&gt;
&lt;div class="timeline-desc"&gt;
参与 D365 CE 售楼 CRM 系统开发，负责客户跟进管理、楼盘认购、签约流程的定制化开发。开发 &lt;strong&gt;C# Plugin&lt;/strong&gt; 实现客户重复分配检测、销售漏斗阶段自动推进逻辑；通过 &lt;strong&gt;OData Web API&lt;/strong&gt; 对接明源 ERP 系统实现房源信息双向同步；封装通用 &lt;strong&gt;RESTful API&lt;/strong&gt; 供前端 Portal 调用，实现在线预约看房与客户自助查询功能。
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;上海永达汽车集团 — 汽车销售与售后服务&lt;/div&gt;
&lt;div class="timeline-desc"&gt;
负责 D365 CE 汽车销售及售后服务体系搭建。设计从潜客→试驾→订车→交车→回访的 &lt;strong&gt;端到端销售流程自动化&lt;/strong&gt;，通过 Power Automate 打通 D365、企业微信与短信平台；开发 &lt;strong&gt;JavaScript 动态表单&lt;/strong&gt; 实现车型-配置联动选择、金融方案实时计算；集成 DMS 系统（经销商管理系统）完成车辆库存、维修工单数据对接。
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;韦博国际英语 — 教育培训行业&lt;/div&gt;
&lt;div class="timeline-desc"&gt;
参与 D365 CE 教育培训 CRM 系统建设，覆盖潜在学员管理、课程咨询、报名签约全流程。开发 &lt;strong&gt;Custom Workflow Activity&lt;/strong&gt; 实现学员分班逻辑与课程排期自动编排；通过 &lt;strong&gt;Web API&lt;/strong&gt; 对接在线学习平台与微信小程序，实现学员课时消费记录回传和预约提醒推送；开发多维 &lt;strong&gt;FetchXML 报表&lt;/strong&gt; 支撑校区运营决策。
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;杭州鑫力合金融服务外包 — 金融行业&lt;/div&gt;
&lt;div class="timeline-desc"&gt;
负责 D365 CE 金融服务 CRM 系统定制开发，覆盖客户信息管理、贷款产品匹配、风控审批流程。开发 &lt;strong&gt;C# Plugin&lt;/strong&gt; 对接第三方征信接口实现客户信用评分自动查询与风险评级；通过 &lt;strong&gt;Power Automate&lt;/strong&gt; 实现贷款审批多级流转、超时自动催办；优化现有系统性能，解决大量并发数据下的 Plugin 超时问题。
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;圈儿里人 — 混合招聘平台&lt;/div&gt;
&lt;div class="timeline-desc"&gt;
负责基于 D365 CE 的招聘平台 CRM 系统全流程开发，涵盖企业客户管理、求职者信息库、职位匹配引擎。通过 &lt;strong&gt;C# Plugin + Azure Functions&lt;/strong&gt; 实现求职者技能标签与职位要求的智能匹配算法；开发 &lt;strong&gt;Web API 接口&lt;/strong&gt; 供前端招聘网站调用，实现职位发布、简历投递、面试邀约等功能前后端分离架构；使用 &lt;strong&gt;JavaScript&lt;/strong&gt; 定制 Candidate 实体表单，优化 HR 筛选体验。
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;徐工北美公司 — 工程机械进出口贸易&lt;/div&gt;
&lt;div class="timeline-desc"&gt;
参与海外 CRM 项目从零到一的建设，负责前期需求调研与技术方案设计。搭建 &lt;strong&gt;D365 CE On-premises&lt;/strong&gt; 环境（北美机房部署），完成 Dataverse 数据模型设计（客户、经销商、设备、服务工单等核心实体）；开发 &lt;strong&gt;多语言/多币种&lt;/strong&gt; 支持方案（英文/中文界面、美元/人民币结算）；设计设备配件库存管理与维修保养计划模块，通过 &lt;strong&gt;C# Plugin&lt;/strong&gt; 实现配件库存预警与服务到期自动提醒。
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;UD TRUCK（沃尔沃集团）— 商用车销售与售后服务&lt;/div&gt;
&lt;div class="timeline-desc"&gt;
参与 D365 CE 商用车销售与服务管理体系建设，覆盖经销商订单、车辆交付、售后维修保养全链路。开发 &lt;strong&gt;C# Plugin&lt;/strong&gt; 实现车辆底盘号/VIN 自动校验、保修期计算与保养计划自动生成；通过 &lt;strong&gt;Power Automate&lt;/strong&gt; 打通 D365 与经销商 DMS、配件供应系统，实现订单-交付-售后数据贯通；基于 &lt;strong&gt;JavaScript Form Script&lt;/strong&gt; 优化销售与服务表单的动态联动与校验逻辑。
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;JJMC 强生医疗（Johnson &amp; Johnson Medical）— 医疗器械&lt;/div&gt;
&lt;div class="timeline-desc"&gt;
参与 D365 CE 医疗器械销售与售后服务体系建设，覆盖产品销售、设备装机、维保合同与售后服务全链路。开发 &lt;strong&gt;C# Plugin&lt;/strong&gt; 实现设备序列号自动关联维保合同、SLA 级别匹配与保修期自动计算；基于 &lt;strong&gt;Field Service&lt;/strong&gt; 配置资源调度与工单自动派发，支撑医院装机与维护排程；通过 &lt;strong&gt;Web API / OData&lt;/strong&gt; 对接 ERP 与供应链系统，实现订单-库存-发货数据实时同步；基于 &lt;strong&gt;JavaScript Form Script&lt;/strong&gt; 优化销售与服务表单的动态联动与校验逻辑。
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;AIA 友邦保险 — 保险与金融服务&lt;/div&gt;
&lt;div class="timeline-desc"&gt;
参与 D365 CE 保险业务 CRM 系统建设，覆盖代理人/客户管理、保单关联、理赔与客户服务全流程。开发 &lt;strong&gt;C# Plugin&lt;/strong&gt; 对接核保/理赔接口实现客户资质与保单状态自动校验；通过 &lt;strong&gt;Power Automate&lt;/strong&gt; 实现保单续期提醒、理赔多级审批流转与超时催办；基于 &lt;strong&gt;FetchXML 报表&lt;/strong&gt; 支撑代理人业绩与客户价值分析。
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;Mega 项目 — 台湾地区企业级 D365 平台建设&lt;/div&gt;
&lt;div class="timeline-desc"&gt;
参与台湾地区企业级 D365 CE / Power Platform 平台化建设项目，承担核心业务模块开发与跨系统集成。负责 &lt;strong&gt;Dataverse 复杂数据模型&lt;/strong&gt;设计与性能优化；开发 &lt;strong&gt;C# Plugin / Custom Workflow Activity&lt;/strong&gt; 支撑高并发场景下的业务逻辑；通过 &lt;strong&gt;Azure Functions + Service Bus&lt;/strong&gt; 实现与 SAP/ERP 等外部系统的松耦合集成；适配 &lt;strong&gt;繁体中文 / 英文&lt;/strong&gt; 多语言环境；推动 &lt;strong&gt;Solution ALM&lt;/strong&gt; 与 CI/CD 实践，保障多环境（开发/测试/生产）稳定交付。
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="timeline-item"&gt;
&lt;div class="timeline-title"&gt;美敦力 Medtronic — 医疗器械与医疗健康&lt;/div&gt;
&lt;div class="timeline-desc"&gt;
参与 D365 CE 医疗器械销售与售后服务体系建设，支撑设备销售、安装部署、维保合同与售后服务全链路。开发 &lt;strong&gt;C# Plugin&lt;/strong&gt; 实现设备序列号自动关联维保合同、SLA 级别匹配与配件消耗自动扣减；基于 &lt;strong&gt;Field Service&lt;/strong&gt; 配置资源调度与工单自动派发；通过 &lt;strong&gt;Power BI Embedded&lt;/strong&gt; 开发售后服务可视化看板（设备运行、服务完成率、客户满意度）；集成外部系统实现设备故障远程诊断与主动派单。
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="联系方式"&gt;联系方式&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Email: &lt;a href="mailto:Yven.Yuan@outlook.com"&gt;Yven.Yuan@outlook.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/Yven-Yuan"&gt;Yven-Yuan&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>