sourcepot/datapool

数据池 PHP 框架

v4.10.1 2024-09-23 22:14 UTC

README

许多组织运行着大型复杂的软件包,灵活性可能不是它们的强项。简单的客户特定调整或流程更改可能非常耗时且昂贵。低代码开发平台或机器人承诺恢复灵活性,但它们自身可能是一个封闭的生态系统。数据池是一个轻量级的开源Web应用程序,将控制权交还给用户或公司内部的较小组织单位。数据池可以在团队或部门层面定义流程,进行定期数据处理。数据池还可以用于填补临时空白,用于测试流程以及用于生产。

Example application

数据池最初是为了处理专利部门内部的发票(PDF文件)而开发的,其中提取、分析和比较所有发票数据与专利文件。然后,与UNYCOM和SAP一起处理发票数据。在这个生产环境中,数据池已被用于每月处理大约1000份发票。数据与大约20万个成本数据记录和10万个专利文件进行比较。处理每月进行1-2次。

示例应用

在包之间移动数据更具挑战性。此框架旨在填补大软件包(如SAP和UNYCOM)在知识产权或专利部门设置中的差距。该软件旨在减轻人们从无聊的重复性工作中解放出来,让他们专注于有价值的工作。

Example application

图显示了包括SAP和UNYCOM在内的公司软件设置中的典型应用示例。UNYCOM被大企业的专利部门使用。UNYCOM管理专利文件,包括成本记录。可能会有大量的发票到达。支付通常由SAP处理,但SAP通过支付的发票数据(内容)以及支付的文档需要最终进入正确的UNYCOM专利案例。

此示例需要以下步骤

  1. 解析:从发票中提取内容。SAP相关数据以及专利案例特定数据。
  2. 将SAP会计记录与专利案例匹配。
  3. 映射:调整数据格式和类型以创建UNYCOM兼容的数据集。

数据池框架可以以非常透明的方式实现这一点!

功能

  • 非常轻量级的Web应用程序,具有数据处理、日历、用户账户和权限管理、多媒体应用程序和论坛
  • 数据源可以是媒体文件、PDF文档、电子表格文件,可以是手动上传的,也可以是从电子邮件收件箱下载的
  • 外部设备可以通过客户端界面提供数据或文件
  • 处理的结果可以是电子表格文件、ZIP文件、电子邮件或短信
  • 数据处理可以通过手动控制或通过值或日历事件派生的触发器进行控制
  • 可以通过图形用户界面轻松设计和采用流程
  • 流程可以轻松导出或导入到运行数据池的其他系统中

Graphical process designer

托管Web应用程序

需求

此软件设计在服务器上运行,即用户界面是Web浏览器。它需要 PHP 8+数据库。根据应用程序需求,可能需要访问电子邮件账户。

安装

有关安装和创建第一个用户账户的视频,请参阅以下视频。

  1. 请在您的网站服务器或计算机上选择目标目录,并运行composer命令:composer create-project sourcepot/datapool {在此处添加您的目标目录}。这将创建,包括其他内容在内的../www/子目录,这是www根目录,应该可以通过网络访问,即通过客户端的网页浏览器。
  2. 创建一个数据库和一个相应的数据库用户。将数据库校对设置为utf8mb4_unicode_ci
  3. 通过网页浏览器调用网页。这将创建一个错误消息,因为需要设置数据库访问。(检查在../debugging/子目录中的错误日志。每个错误都会生成一个包含错误详情的JSON文件。)
  4. 调用网页将创建文件../setup/Database/connect.json,该文件包含数据库访问凭证。使用文本编辑器更新或匹配凭证与数据库用户凭证。
  5. 刷新网页。这将创建一个初始管理员用户账户。该账户的凭证可以在../setup/User/initAdminAccount.json中找到。注册您自己的账户,并使用初始管理员账户将您自己的账户更改为管理员访问级别。在设置自己的管理员账户后,删除初始管理员账户。
  6. 确保只有../www/子目录对公众可见。

例如,在运行MS Windows、XAMPP服务器和MariaDB的笔记本电脑上使用Composer进行安装

2023-10-29_Add_web_page_to_www-Directory_and_create_admin_account_720p.mp4

初始调整

在您设置了管理员账户后,您应该登录并更新网站管理员电子邮件地址 管理员 → 管理员 → 页面设置 → 电子邮件Webmaster。始终使用✓按钮保存更改。

架构

Datapool基于一个对象集合oc,即从../php/文件夹中的PHP类实例化的对象集合。每次调用web应用程序时,由类../php/Root.php的构造函数创建对象集合。../php/Root.php为所有实现init(array $oc)方法的实例化类提供集合。通常,类有一个私有的属性oc,该属性由类的init方法设置/更新。

配置文件../setup/objectList.csv确定对象的创建顺序。通过类../php/Root.php的私有属性registerVendorClasses可以向对象集合添加供应商类。否则,可以在需要时在源代码中创建供应商类的一个实例。

网页创建

以下流程图显示了对象实例化、方法调用和内容创建的顺序。

Browser call flow

实现App接口的任何类都必须提供一个run方法。run方法定义了应用程序特定的菜单项、应用程序可见性以及添加应用程序特定网页内容的方法。以下图显示了日历应用程序的run方法SourcePot\Datapool\GenericApps\Calendar->run()

Run method if an app where content is added

数据类别应用程序,例如发票

数据应用程序使用DataExplorer类SourcePot\Datapool\Foundation\DataExplorer。数据探索器提供了一个空白画布,可以图形化地创建数据处理过程。这是通过添加画布元素并配置其属性来完成的。画布元素是数据库表的视图。数据库表视图应用选择器内容 → 选择器(见下图)。可以向画布元素添加功能,如文件上传(例如,用于发票文件、电子邮件等)、pdf解析器和/或处理器。有一组基本处理器,例如匹配映射转发条目。还有创建pdf文档、发送电子邮件或短信的基本处理器。

Canvas element properties

数据探索器有两种模式:查看编辑。下图展示了如何在查看模式和编辑模式之间切换。在编辑模式下,每个画布元素都可以被拖动、选择或删除。要更改画布元素的属性,需要通过点击相应画布元素的菱形红色按钮来选择画布元素。

Canvas element properties