配置LDAP

轻量级目录访问协议(LDAP)是一种集中式访问控制系统,被许多中小型组织使用。

通过设置 LDAP 服务,您可以使用 LDAP 凭据登录 ERPNext 账户。

1. 前提条件

要使用 LDAP,您首先需要安装 ldap3 Python 模块。为此,请在托管 ERPNext 实例的服务器上打开一个终端会话。进入 frappe-bench 目录。 运行命令:./env/pip install ldap3

现在您已准备好启用 ERPNext 中的 LDAP 服务。

2. 设置 LDAP

要设置 LDAP,请前往

首页 > 集成 > LDAP 设置

许多参数是强制性的,以便让 ERPNext 连接到 LDAP。它们是:

  • LDAP 服务器 URL:这是您的 LDAP 服务器的 URL。必须采用 ldap://yourserver:portldaps://yourserver:port 的形式。

  • 基础专有名称(DN):这是有权在您的 LDAP 服务器上查找用户详细信息的用户的专有名称。该用户应仅在您的 LDAP 服务器上拥有只读权限。

  • 基础 DN 的密码:这是上述用户的密码,用于在您的 LDAP 服务器上查找用户详细信息。

  • 用户组织单位:这是组织单位的 DN,您的 LDAP 服务器中的所有用户必须属于该组织单位才能登录 ERPNext。

  • 创建时的默认角色:当用户在 ERPNext 中创建时,他们将在首次登录时被分配此默认角色。

  • LDAP 搜索字符串:此字段允许 ERPNext 将 ERPNext 登录屏幕中输入的用户/电子邮件与 LDAP 服务器进行匹配。例如,您可以根据偏好使用电子邮件地址或用户名。

它必须以以下格式输入:LDAPFIELD={0}

Active Directory 用户名示例:sAMAccountName={0}

Open LDAP 用户名示例:uid={0}

  • LDAP 电子邮件字段:指定包含用户电子邮件地址的 LDAP 字段。

Active Directory 和 Open LDAP 示例:mail

  • LDAP 用户名字段:指定包含用户用户名的 LDAP 字段。

Active Directory 示例:sAMAccountName

Open LDAP 示例:uid

  • LDAP 名字字段:指定包含用户名字的 LDAP 字段。

Active Directory 示例:givenName

Open LDAP 示例:sn

还有许多其他非强制性字段,您可以使用它们将 LDAP 用户字段映射到 ERPNext 用户字段。它们是:

  • 中间名
  • 电话
  • 手机

一旦您的设置正确,您可以点击顶部的 Enabled 复选框。当尝试启用 LDAP 时,ERPNext 将尝试连接到 LDAP 服务器以确保设置正确。如果失败,您将无法启用 LDAP,并会收到一条错误消息。

错误消息将指示需要解决的问题才能继续。

启用 LDAP 后,在登录屏幕上,系统会启用通过 LDAP 登录选项。

2.1 LDAP 安全

在 LDAP 安全部分,您有多种选项可以安全地连接到您的 LDAP 服务器。

  • SSL/TLS 模式

指定是否要在初始连接到 LDAP 服务器时启动 TLS 会话。

  • 需要受信任的证书

指定是否需要受信任的证书才能连接到 LDAP 服务器。

如果您指定了受信任的证书,则需要指定证书文件的路径。这些文件应放置在您的 ERPNext 服务器上,以下字段应为服务器上文件的绝对路径。 证书字段包括:

  • 私钥文件路径

  • 服务器证书路径

  • CA 证书文件路径

2.2 LDAP 组映射

ERPNext 还允许您自动将多个 LDAP 组映射到相应的 ERPNext 角色。 例如,您可能希望所有会计部门的员工自动拥有“会计用户”角色。

请确保填写 LDAP 组字段以允许此操作。这是 LDAP 中用户对象上的字段,包含用户所属的所有组。

对于 Active Directory 和 Open LDAP,此字段应设置为 memberOf

Open LDAP 可能需要在您的 LDAP 服务器上启用此字段。有关更多详细信息,请参阅互联网上的示例。

请注意,每次用户登录时都会检查所有 ERPNext 角色,并会从用户权限中移除或添加相应角色。

在 LDAP 设置区域,有两个下拉菜单。

  1. SSL/TLS 模式 – 将其设置为 StartTLS 以使用 StartTLS 连接到您的 LDAP 服务器。如果您的 LDAP 服务器不支持 StartTLS,将其设置为 StartTLS 将导致错误 StartTLS is not supported。如果收到此错误,请检查 LDAP 服务器上的配置。
  2. 需要受信任的证书 – 如果将此选项更改为,则 LDAP 服务器提供的证书必须受 Frappe/ERPNext 服务器信任。如果您希望使用带有自签名(不受信任)证书的 StartTLS,请将此选项设置为。如果您不使用 StartTLS,则此设置将被忽略。

Google 设置

要启用 Google 集成,ERPNext 需要通过 API 访问数据以进行同步,这可以通过 OAuth 2.0 认证协议实现。

如何设置 Google 设置

针对 Google 日历、Google 联系人、Google 云端硬盘和 Google 索引

为了允许与上述任一服务进行同步,您需要授权 ERPNext 从 Google 获取数据。以下是设置 Google 联系人集成的示例:

  1. 在 Google Cloud Platform 上创建一个新项目,并生成新的 OAuth 2.0 凭据。
  • 在 API 库中为您希望集成的服务启用 API 访问权限。

    • Google 日历:Calendar API
    • Google 联系人:People API
    • Google 云端硬盘:Drive API
    • Google 索引:Indexing API
  • API 和服务 > 凭据 中,创建一个新的凭据,并选择 创建 OAuth 客户端 ID

  • 选择应用程序类型为 Web 应用程序

  • https://{yoursite} 添加到已授权的 JavaScript 来源。

  • https://{yoursite}?cmd=frappe.integrations.doctype.google_calendar.google_calendar.google_callback 添加为 Google 日历的已授权重定向 URI。

  • https://{yoursite}/api/method/frappe.integrations.google_oauth.callback 添加为其余服务的已授权重定向 URI。

  • 首页 > 集成 > Google 服务 > Google 设置 的 Google 设置中添加您的客户端 ID 和客户端密钥。

针对 Google 地图

仅当您想使用 Directions API(例如在 ERPNext 的 配送行程 中)时,才需要设置 API 密钥。对于其他功能,则无需设置。

为了允许与 Google 地图同步,您需要生成一个 API 密钥,因为 Google 地图不需要访问 Google 的数据。

  1. 在 Google Cloud Platform 上创建一个新项目,并生成新的 API 密钥。
  • 在 API 库中为 Directions API 启用 API 访问权限,然后在 首页 > 集成 > Google 服务 > Google 设置 的 Google 设置中添加 API 密钥。

集成类别

ERPNext 提供了广泛的集成能力,使企业能够无缝连接各种第三方应用和服务,从而提升运营效率和数据流转。

这些集成涵盖电商平台、支付网关、物流服务商、谷歌服务、电商提供商等。通过将 ERPNext 与这些系统集成,企业可以简化流程、减少手动数据录入、提高数据准确性,并更深入地洞察运营情况,最终有助于做出明智的业务决策。

如需将 ERPNext 与未在此列出的其他应用集成,您可以使用 Frappe 的 REST API。请访问以下链接了解更多信息:

Frappe REST API

身份认证集成

  • 配置 LDAP
  • 配置 Fairlogin

备份集成

  • 配置 Dropbox 备份
  • Google Drive 集成
  • 上传备份至 Amazon S3

银行集成

  • Plaid 集成

电商集成

  • Shopify 集成
  • WooCommerce 集成
  • Amazon SP-API 集成
  • Unicommerce 集成
  • Zenoti 集成

物流集成

支付集成

  • RazorPay 集成
  • GoCardless 集成
  • Stripe 集成
  • Braintree 集成
  • Paytm 集成
  • M-pesa 集成

电话集成

  • Exotel 集成

谷歌集成

  • 谷歌设置
  • 谷歌日历集成
  • 谷歌联系人集成
  • 谷歌地图集成

里程碑跟踪

在版本 12 中引入

如果文档经历多个阶段,您可以基于其生命周期自动跟踪里程碑。

里程碑设置的配置可以在里程碑跟踪中进行,每个里程碑会在里程碑中更新。

要访问里程碑跟踪器,请前往:

首页 > 设置 > 里程碑跟踪器

1. 创建里程碑跟踪器

  1. 点击新建。
  2. 设置要跟踪的文档类型(例如:“问题”)。
  3. 设置表示阶段的字段(例如:“状态”)。

注意:里程碑阶段可以通过链接或选择属性来定义。

> 设置完成后,每当任何问题的状态发生变化时,都会创建一个新的里程碑记录。 > > 可以在视图的时间线中查看里程碑: > >

> 注意:里程碑独立于版本运行。 > >

2. 功能

>

里程碑可以成为报告和通知的重要来源。例如,如果潜在客户资格认定是“潜在客户”上的一个里程碑,里程碑可以帮助生成关于某个时期内被认定的潜在客户数量的报告。

>

2.1 将里程碑与仪表板结合使用

>

与仪表板一起使用时,里程碑可以帮助跟踪里程碑的趋势。例如,如果“资格认定”被跟踪为“潜在客户阶段”,则按资格认定筛选的里程碑仪表板将显示已认定潜在客户的趋势。

>

2.2 将里程碑与能量点结合使用

>

可以定义能量点规则,自动向达到里程碑的用户授予能量点。这可用于激励在各个级别对交易采取行动。

自动重复

自动重复功能可帮助您在指定时间段内自动创建某些单据。

从版本 12 开始,您可以自定义任何表单,使单据可重复

例如:假设您对某些项目采用递延费用制度。这要求您每月创建相同的日记账分录,以贷记递延费用账户并借记费用账户。您可以先手动创建第一笔日记账分录,然后为其创建自动重复交易。

要访问自动重复功能,请前往:

首页 > 设置 > 自动化 > 自动重复

1. 如何设置自动重复

1.1 自定义表单

  1. 前往:首页 > 自定义 > 表单自定义 > 自定义表单
  2. 选择您希望允许创建可重复单据的表单。
  3. 勾选“允许自动重复”,以允许为该表单创建可重复单据。这对于该单据类型在自动重复单据类型下的“参考单据”字段中显示是必要的。

1.2 设置自动重复

  1. 前往 首页 > 设置 > 自动化 > 自动重复 > 新建
  2. 选择参考单据类型,例如日记账分录或销售发票等。
  3. 选择参考单据。这是您希望重复的单个单据。
  4. 设置开始日期和结束日期(可选)。 如果未指定结束日期,则将创建重复单据,除非自动重复被禁用。
  5. 设置创建可重复单据的频率 (每日、每周、每月、每季度、每半年、每年)。
  6. 保存。

1.3 直接从单据设置自动重复

您还可以通过单击工具栏菜单中的重复选项来设置单据自动重复。

注意:如果单据已设置为自动重复,则“重复”选项不可用。

单击“重复”后,将显示自动重复提示。填写详细信息,然后单击“保存”。

2. 功能

2.1 创建时提交

如果参考单据类型是可提交的,您将看到一个名为创建时提交的选项。如果勾选此项,您的单据将在创建时被提交。

2.2 通过电子邮件通知

如果您希望在创建重复单据时通知某些联系人,您可以在自动重复的“通知”部分勾选“通过电子邮件通知”。这将把自动生成的重复单据发送到指定的电子邮件地址。相关字段说明如下:

  • 收件人:定义接收重复单据创建电子邮件的收件人电子邮件地址。
  • 获取联系人:此按钮将获取与设置为自动重复的单据相关联的联系人,并填充到“收件人”字段。
  • 模板:您可以为电子邮件选择一个电子邮件模板。这也会填充“主题”和“消息”字段。
  • 主题:电子邮件的主题(例如:重复待办事项创建成功)。
  • 消息:要在电子邮件中发送的消息。
  • 预览消息:此按钮将显示消息的预览。
  • 打印格式:选择一种打印格式来定义应通过电子邮件发送给客户的单据视图。

注意:如果您为其设置自动重复的单据是可提交的,请确保在“打印设置”中启用了“允许打印草稿”,以便在自动重复通知电子邮件中收到新的重复单据。如果未启用,您将收到关于重复单据创建的通知,但不会附带该单据。

2.3 在特定日期重复

如果频率设置为每月、每季度、每半年或每年,则它将在相应月份的与自动重复“开始日期”相同的日期创建重复单据。如果您希望在其他日期创建重复单据,则可以设置以下选项之一:

  • 重复日:创建重复单据的月份中的日期。例如,如果频率为每月,您输入 7,则它将在相应月份的 7 日生成重复单据。
  • 在每月最后一天重复:此选项可用,因为每个月的最后一天不同。例如,在闰年,2 月的最后一天是 29 日,否则是 28 日。如果您勾选此选项,它将在相应月份的最后一天创建重复单据。

2.4 为自动重复选择工作日的功能

在版本 13 中引入

频率为每周的自动重复允许您选择希望创建重复单据的日期。

2.5 仪表板

您可以在自动重复单据的仪表板中查看自动重复计划。如果您未指定结束日期,则计划将仅显示下一个计划日期。

2.6 侧边栏上的自动重复频率

当文档设置为自动重复时,您可以在侧边栏看到自动重复的频率。 您可以点击状态来查看关联的自动重复文档。

2.7 禁用自动重复

如果您勾选此字段,将停止创建重复文档,并取消自动重复文档与参考文档的关联。

分配规则

在版本 12 中引入

分配规则允许您设置文档自动分配给用户。

为了在负责支持工作的员工之间自动分配支持工单,可以使用分配规则。

要访问分配规则,请转到:

首页 > 设置 > 分配规则

1. 如何创建分配规则

要设置自动分配:

  1. 转到分配规则列表,点击新建。
  2. 选择您要自动分配的文档类型(例如 问题)。
  3. 编写将添加到待办事项中的“描述”。
  4. 选择分配的条件。 您可以在 Assign RuleClose RuleUnassign Rule 中编写简单的 Python 表达式以实现自动分配。您将可以访问文档的所有属性,并可以使用 >、<、== 等运算符,以及像 andor 这样的多个条件。

示例:

  • status == "Open"
  • issue_type == "Technical" and priority=="High" and status == "Open"
  1. 选择分配规则。

  • 轮询:按顺序将每个文档分配给一个用户。
  • 负载均衡:将新文档分配给分配数量最少的用户。

选择此分配规则将应用的用户列表:

  • 基于字段:在 v13 中引入,此规则可用于将文档分配给在配置字段中设置的用户。

选择用户链接字段,该字段将决定此分配规则将应用于谁:

  1. 保存。

您可以在描述字段中使用文档的属性,这些属性将成为分配的一部分。优先级更高的分配规则将首先应用。

示例:

高优先级问题 文件上传不起作用 已分配给您。

1.1 多个分配规则

您还可以为每种文档类型设置多个自动分配,优先级最高的将首先应用。

优先级更高的分配规则

1.2 设置分配的截止日期

您可以根据参考文档中的日期字段自动设置分配的截止日期。

示例:

如果您想根据问题的“解决截止日期”来设置问题分配的截止日期,可以通过在分配规则的 Due Date Based On 选项中选择“解决截止日期”字段来实现。

注意:

  • 如果尚未选择“文档类型”,或者所选文档类型没有“日期”或“日期时间”字段,则“基于截止日期”选项将不可用。
  • 当参考文档中的“基于截止日期”字段值更新时,分配/待办事项中的截止日期也会随之更新。
  1. 工作流
  2. 工作流操作

自动化

ERPNext 中的自动化是一项颠覆性的功能,尤其在简化里程碑跟踪、任务分配、重复性任务和事件监控等复杂流程时。这些 ERPNext 的自动化功能不仅节省时间和精力,还能提升整个组织的整体效率和生产力。

  • 分配规则
  • 自动重复
  • 里程碑跟踪

在主数据上设置工作流

工作流通常设置在可提交的文档上。一旦文档被批准,它会根据设置的工作流自动提交。然而,有时企业确实存在需要审批主数据(如物料、物料价格、定价规则等)的场景。

ERPNext 中,这些主数据是不可提交的。因此,即使被拒绝,它们有时仍然处于激活状态,您可以在交易中使用它们。在本文中,我们以物料主数据为例。我们将在物料上设置一个简单的工作流,并使其仅在批准后才激活。为此,请按照以下步骤操作:

  1. 确保您要设置工作流的主数据具有启用/禁用复选框。如果默认情况下不存在此复选框,您需要通过自定义表单创建一个,并按如下方式设置默认值:
  1. 如果复选框是“禁用”,则设为 0
  2. 如果复选框是“启用”,则设为 1

在我们的案例中,物料主数据有一个名为“已禁用”的复选框。我们在物料 DocType 的自定义表单中将默认值设置为 1,如下所示。

这意味着每次创建新物料时,除非被批准,否则默认情况下它将处于禁用状态(如下面的截图所示)。

  1. 接下来,设置工作流。

在状态表中,批准时,请确保将“已禁用”(或已启用)复选框更新为 0(如果是启用,则更新为 1),如下所示。

这将确保每当物料被批准时,物料将自动启用,并且您可以在交易中使用它。

查看下面的 GIF 以详细了解工作流:

设置工作流的简单步骤

当公司对文档有多个审批层级时,可以设置工作流。
ERPNext 中,您可以进入工作流列表 –> 新建 –> 命名工作流并定义:1. 状态 2. 转换规则。

  1. 状态:

当文档被传递到不同审批层级时,每个层级会根据用户角色定义相应的状态。

  1. 转换规则:

例如:销售用户只能创建报价单,并且可以将其保存在草稿状态。然后,可以将其发送给销售经理进行审批,拥有此角色的用户可以批准拒绝该报价单,之后报价单要么进入草稿状态(如果被拒绝),要么进入最终的已批准状态。

错误消息:文档在提交前无法取消。
[这是用户在提交文档前定义了“已取消”状态时常见的错误。文档状态 1 表示文档将在该状态下被提交,因此文档状态 2 的状态应仅在文档状态 1 的状态之后的转换中定义。]
先设置一个简单的工作流,然后告诉我们您对工作流的更多想法!我们乐于看到用户满意!!;)

授权规则

授权规则允许根据定义的条件,在单据上配置自定义的授权/审批流程。

例如:如果销售订单的总额超过 1,000 元,那么即使销售用户拥有“提交”权限,也只能由销售经理进行验证/提交。

同样地,您可以根据净总额、总额、折扣百分比等字段定义授权规则,并指定当满足授权条件时,谁将是单据审批人。

让我们通过一个详细的授权规则示例来更好地理解。

假设销售经理仅需对总额超过 10,000 元的销售订单进行授权。如果销售订单金额低于 10,000 元,那么销售用户也可以提交。这意味着销售用户的“提交”权限将被限制在总额低于 10,000 元的销售订单范围内。

1. 如何创建授权规则

  1. 前往授权规则列表,点击“新建”。
  2. 选择授权规则将适用的交易类型。此功能仅适用于有限的交易类型。
  3. 输入授权金额等。这取决于您在“基于”字段中选择的字段。
  4. 选择“基于”。授权规则将根据在此字段中选择的值来应用。
  5. 选择“适用角色”。这是此授权规则将适用的角色。根据示例,它将是“销售用户”。
  6. 为了更具体,如果您希望将规则应用于特定的销售用户而非所有销售用户,您还可以选择“适用用户”。
  7. 选择“审批角色”。这是可以审批超过授权金额表单的角色。根据我们的示例,它是“销售经理”。
  8. 您还可以选择特定的销售经理。
  9. 保存。

如果销售用户尝试提交金额超过 10,000 元的销售订单,他将收到一条错误消息。

如果您希望限制销售用户提交销售订单,那么与其创建授权规则,不如从角色权限管理器中移除销售用户的“提交”权限。

可应用授权规则的单据

  1. 销售订单
  2. 采购订单
  3. 报价单
  4. 交货单
  5. 销售发票
  6. 采购发票
  7. 采购收货单
  8. 绩效评估

授权条件可基于的字段

  1. 总额
  2. 平均折扣
  3. 按客户折扣
  4. 按物料折扣