SharePoint 列表和 Dataverse
SharePoint 列表和 Dataverse 表(Power Apps 和 Dynamics 365 背后的表)都可以作为模板的数据:一个列表项或一行生成一份文档。
两者都在企业门户连接页面的您的数据连接下分别连接,使用您自己的 Microsoft 365 登录:
- SharePoint 列表:您可访问的站点上的列表项及其附件。可以写回状态列和链接列。
- Dataverse(Power Apps):您的 Power Apps 环境中的表。连接后,页面会列出您可访问的 Dataverse 环境,以及它们的地址和区域。
点击连接,在 Microsoft 页面上批准请求,该行就会显示已连接。SharePoint 会请求读写您可访问站点上列表的权限(Sites.ReadWrite.All),而大多数组织只允许管理员批准此类权限;Dataverse 请求以您的身份访问它(user_impersonation)。如果必须先由管理员批准,页面会显示一个管理员授权链接,供您发给管理员。参见 Microsoft 365 管理员授权和连接您的数据。
AutomaDoc 只会读写您自己的账户有权访问的内容。
用 Power Automate 生成文档
Section titled “用 Power Automate 生成文档”AutomaDoc 连接器在流中根据列表项或行生成文档:
- 创建模板。流可以填充您公司的任何模板。要为流创建模板,请使用企业门户的模板(新建 API 模板),或在 Word 中使用 Word 加载项,后者还可以从 JSON 示例读取字段。
- 用 SharePoint → When an item is created 或 Dataverse → When a row is added, modified or deleted 触发流。
- 添加 AutomaDoc → Generate a document,并把列表项或行的列映射到模板的输入项。
- 把文件保存到需要的位置,例如作为列表项附件或保存到文档库,并用 SharePoint 的 Update item 或 Dataverse 的 Update a row 写回状态或链接。
Power Automate 和 Power Apps 完整演示了一个流。流发送的是值,而不是文件:图片输入必须是公开的网址(https:// 或 http://),因此需要登录的 SharePoint 或 OneDrive 链接无法获取。
读取列表或表的模板
Section titled “读取列表或表的模板”模板也可以自己读取 SharePoint 列表或 Dataverse 表。企业门户的模板页面会以 SharePoint 列表或 Dataverse 作为来源列出这类模板,您在 Word 加载项中编写和发布它们,其字段选项卡会通过您的连接读取列表或表的列。
AutomaDoc 读取的内容
Section titled “AutomaDoc 读取的内容”列名会成为占位符:空格、点号以及占位符中不能使用的其他字符会变成下划线(Due Date 变为 {Due_Date})。{Record_ID}、{Template_Name}、{Table_Name} 和 {Print_Time} 也始终可用。
SharePoint 列表项:
| 列 | 在模板中 |
|---|---|
| 文本、数字、货币、计算列 | 值本身。数字和货币保留原始值,供 number、sum 和条件使用。 |
| 多行文本 | 文本,富文本会转换为纯文本。 |
| 日期和时间 | 按模板的时区打印;仅日期的列按列表中显示的日期打印。 |
| 选项、托管元数据 | 标签;多个值会连接在一起。 |
| 个人或组 | 此人的姓名,{Owner.email} 为其邮箱地址。 |
| 超链接 | 地址;{Website.text} 打印其说明文字。 |
| 图片、缩略图 | 一张图片,通过图片的替代文字放置。 |
| 查阅 | 单个值:一条嵌套记录,因此 {Customer.City} 读取它所指向列表项的列。多个值:一个列表,用于 {#Customer}…{/Customer} 循环。一份文档最多读取 500 个查阅项;超过后,查阅列打印为文本。 |
| 附件 | 列表项的附件,即 {Attachments}:图片用于占位图片,文件用于 {ATTACH:Attachments}。 |
Dataverse 行:
| 列 | 在模板中 |
|---|---|
| 文本、整数、小数、货币 | Dataverse 自己格式化的文本(货币符号、分隔符);number、sum、排序和条件使用原始数字。 |
| 日期和时间 | 按模板的时区打印。 |
| 是/否 | 该列自己的标签;{#if} 把它读作是或否。 |
| 选项 | 标签。多选选项:标签列表。 |
| 查阅 | 一条嵌套记录,打印关联行的名称,因此 {Customer.Primary_Contact.Email} 可以继续往下读取。一份文档最多读取 250 个关联行;超过后,查阅列仍会打印其名称。 |
| 图像、文件、备注 | 图片和文件,用于占位图片或 {ATTACH:…}。 |
占位符以列的显示名称命名。
读取列表或表的模板可以写入它据以生成文档的列表项或行:
| SharePoint 列表 | Dataverse | |
|---|---|---|
| 状态 | 一个文本列。单行文本会按其长度截断。 | 一个文本列,按其最大长度截断。 |
| 文档 | 作为列表项附件;或保存到文档库(默认是站点默认文档库中的 AutomaDoc 文件夹),并把链接写入文本、备注或超链接列。 |
写入文件列,或作为该行的备注(主题为 AutomaDoc document)。 |
关于替换和保留之前的文档:
- SharePoint 附件:替换只替换同名附件;列表项的其他附件保持不变。追加会把新文件添加为
name (2).pdf。 - 追加模式下的 SharePoint 备注列会保留已有的链接,每行一个。
- Dataverse 文件列只能存放一个文件:替换会覆盖它,追加只会保存到空列中(否则不保存文档,并给出警告)。
- Dataverse 备注:追加每次添加一条备注;替换会先添加新备注,再删除之前主题相同且带有文件的备注。该行的其他备注绝不会被改动。适用贵组织的附件大小限制。
合成文档(用多个列表项或多行生成的一份文档)会写入其中的每一项。
读取列表或表的模板通过 HTTP 触发器运行:调用时把 SharePoint 列表项 ID 或 Dataverse 行的 GUID 作为 recordId,并附上您的公司 API 密钥。它使用模板所有者的连接读取数据,因为此时没有人在场登录。如果所有者断开连接或其连接失效,模板将停止自动运行,直到所有者在连接页面重新连接,或有人接管该模板。HTTP 触发器需要贵公司拥有专业版、试用,或至少一个 Business 席位;参见套餐、席位与文档包。