Google/Bing地图与Dynamics 365 Finance and Operations集成问题咨询
Dynamics 365 Finance and Operations 内嵌地图及可拖拽指针实现方案
适配环境:Microsoft Dynamics 365 for Finance and Operations 10.0.18 / 平台版本 Update42
问题1:是否可通过X++开发在表单内部展示地图?
可以实现,推荐两种开发方案,可根据需求复杂度选择:
- 轻量方案:使用表单标准HTML控件实现
- 对「所有客户」表单创建扩展,在地址网格旁的布局区域新增一个HTML控件
- 用X++代码拼接地图服务的嵌入式iframe代码,提前申请对应Bing/Google地图的API密钥,将当前选中地址的经纬度或格式化地址作为参数传入iframe的src属性
- 绑定地址网格的行选中事件,每次切换地址行时动态更新HTML控件的内容,即可在表单内直接渲染对应地址的地图,无需跳转新标签页
- 高可扩展性方案:开发PCF(Power Apps Component Framework)控件嵌入表单,后续可直接在控件内封装更多交互逻辑,适合多场景复用的需求
问题2:如何实现可拖拽指针,且读取指针对应地址更新记录?
需要结合嵌入地图的前端逻辑和表单X++方法实现,核心步骤如下:
- 在嵌入的地图代码中开启标记的可拖拽配置,同时注册标记的
dragend事件监听 - 指针拖拽结束后,调用地图服务的逆地理编码接口,解析当前指针位置对应的结构化地址信息(包含国家、省/州、城市、街道、邮编等标准字段)
- 调用D365FO前端标准
executeControlMethodJS接口,将解析得到的地址参数传入表单预先开发的X++自定义方法 - X++方法接收参数后,直接更新当前选中的地址行对应字段,调用表单
write()方法完成记录保存即可
注意:使用地图服务API时需遵守对应服务商的调用配额限制,API密钥需做好权限管控,避免在前端明文暴露高权限密钥。
内容的提问来源于stack exchange,提问作者Hardik Nuwal
相关产品推荐
相关产品推荐

