对于Custom API的调试,主要有三种方式:
- 插件代码中添加log
- 插件调试
- 单元测试
对于这三种方式,说白了也就相当于两种,第一种打log,这种方式很多时候我们是在插件调试突然不好使的时候,或者在不调试时还想看下问题大概出在哪的时候才会用的。
我们平时在调试插件的时候最常用的还是第二种或者第三种,这个主要看个人习惯。并且第三种方式,单元测试,有的时候还会涉及到自动化CI/CD的时候,去自动运行一些单元测试。
今天我们主要说下第二种方式,插件调试
当我们将之前在解决方案中创建的Custom API与我们为这个Custom API创建的实现插件进行关联后,插件注册工具会自动创建一个Step,如下图。
但是这个step目前来看并不能直接用于调试,也就是说当我们右键点击这个step来打算开启start profiling的时候是会报错的,上网查了一下发现有国外的老兄也有遇到相同的问题的:Solved: How to debug Custom API (unbound action)? - Power Platform Community (microsoft.com)
之后查了一些资料发现微软在他文档中对这块有个说明,我们需要自己手动创建一个step来完成调试:Create and use custom APIs (Microsoft Dataverse) - Power Apps | Microsoft Learn
接下来我们就来看下如何进行调试:
1. 创建Step
Message找到我们自定义API的那个名称
Event Pipeline选择PostOperation,这个在微软的文档中有提到:
Create and use custom APIs (Microsoft Dataverse) - Power Apps | Microsoft Learn
2. 开启Start Profiling
3. 触发这个Custom API来生成profile
这里我们使用XrmToolBox中的Custom API Tester来触发
4. 触发后我们可以double check一下profile是否生成
5. 生成后我们需要在插件注册工具中停掉Profiling
6. 在VS中附加插件注册工具的进程,并在代码中打上断点
7. 在插件注册工具中启动调试
这个时候我们发现我们就已经可以进到代码中断点了
注意事项:
- 对于自定义API中的允许的自定义处理步骤类型,如果这个选为"无",我们在后续创建step步骤的时候是会失败的,而如果没有步骤我们是不能使用插件注册工具这种方式来进行调试的。所以我们需要最后选成“同步和异步”