浅谈21年实习时做过的物流部门PR(采购申请单)数据管理系统

您所在的位置:网站首页 vba新建文档并置于前台文档 浅谈21年实习时做过的物流部门PR(采购申请单)数据管理系统

浅谈21年实习时做过的物流部门PR(采购申请单)数据管理系统

2023-04-21 11:23| 来源: 网络整理| 查看: 265

在21年的时候,我参加过一些面试,最终选择了一家外企的物流采购部门实习了4个月。在日常忙贸易报关事务的同时,其中有3个月都在做一个PR (Purchase Requisitions-采购申请单) 数据管理系统。该系统基于Microsoft Access数据库实现,使用到的编程语言是VBA+SQL。

我在离职前曾录过一个详尽的系统说明视频 (还用上了本科时混社团学到的剪辑技能hh),而这篇文章就相当于那个视频的文字版本。因为privacy policy,我在这里只会泛泛地讨论一下各大公司共通的一些采购流程。

我将在下文中分这几个点来阐述:

需求收集思路设计功能说明不足反思

注:下文涉及的窗体将用【】标注,表格将用[ ]标注,按钮将用< >标注

需求收集

首先,公司为什么突然想要开发出这样一个数据管理系统呢?那肯定是因为实际工作中产生了需求。

我们需要先梳理一遍采购物流部门的工作流程。参与采购流程的职位有PM (Procurement Manager-采购经理)、SPR (Significant Procurement Role-资深采购员)、CPM (Certified Procurement Manager-认证采购经理)。

PM每一回开展采购都对应着要新建一个采购项目,每个采购项目一般需要采购多个物料。他们手上往往会有一张Excel[BoM导入表],BoM即Bill of Material-物料清单,一般由WBS号、物料号、物料描述、数量、交货时间构成。每一个WBS号对应着一个以前做过的项目,上述表列出了所有以前做过的项目下物料采购的信息。PM在新建采购项目后,会使用上述表为模板,提出新的[BoM清单]申请。

但是,他们发觉,因为[BoM导入表]是使用Excel维护的,经常出现WBS号输错或者失效,以及物料号输错或失效的情况。当他们根据[BoM导入表]填写新的[BoM清单]时,Excel也不会自动检查交货时间是否合理。甚至有时候会有PM不小心将[BoM导入表]中的交货时间作为新建项目下物料的交货时间,即新建项目下物料的交货时间可能还早于该项目的新建时间。总的来讲,PM在填写新的[BoM清单]申请时,由于没有自动化的检查,不小心填错了某条信息的可能性较大。而且如果他们在提交过后,发现错误进行修改,又产生了重复提交,也容易造成一定的混乱。

当PM提出完某个新建项目的所有[BoM清单]申请后,该清单需要递交给SPR核价。当SPR完成核价后,该清单又需要递交给PM及CPM再次确认。这时候就可以导出[PR (Purchase Requisitions-采购需求单)]文件了。从前,他们都是用邮件在各个职位之间传递这些Excel表来实现审批。因而,他们又突发灵感,能不能借助一个平台来实现整个审批流程?

为PM提出的[BoM清单]新申请执行自动化检查时,还需要用到[Project_List表] (来检查WBS号)、[Material_Master_Data表] (来检查物料号、物料最小可订购数量、运输时间...)等。这些表都可以实时地从SAP系统 (一种ERP管理系统)中导出。

经过[BoM清单]新申请以及相关的审批表格这些临时文件后,最后生成的PR文件作为正式文件也需要被上传至SAP系统。

需要搭建数据管理系统来实现的流程具体可见下图:

数据管理系统可实现的工作流程

小结一下,我们需要搭建一个这样的数据管理系统:用户登录,可执行职务权限内的操作 → 用户 (一般是PM) 手动导入SAP软件内实时的数据 → PM (或 CPM) 新建 PR 项目,提出新的BoM清单申请 → SPR 核价采购物品 → PM 及 CPM 再次确认 PR 项目 → 相关用户导出可提交至 SAP 软件的 PR 文件。

思路设计

该数据管理系统的基本设计思路是分为前台和后台。

后台中只有表格,全部是需要在用户之间共享的表格。包括用于导入SAP系统导出文件的表格 (一般由管理员来维护),以及[BoM总清单]和一些审批表格等。

前台中既有表格,又有可供用户操作的窗体。表格包含了链接表,全部链接到后台的那些表格,即如果管理员在后台更新了用于导入SAP系统导出文件的表格,前台的链接表也会自动更新。当然,如果用户们在前台中进行了对链接表的内容提交、内容修改 (修改数据、审批等),后台对应的表格也会得到更新。表格还包含了[BoM导入表]等本地表,用户在操作过程中时常需要将本地表的内容提交到链接表中,如将本地表[BoM清单]新申请提交到链接表[BoM总清单]中。而窗体是用户直接可以看到的操作界面。

前台文件和后台文件都会被放在公司里的ftp共享文件夹里。这个是和IT部门讨论过后得出的方案。我们委托了IT部门授予不同职位的用户以不同的的权限,有的用户可以查看文件,有的用户既可以查看文件又可以在文件里操作,与采购流程无关的部门则没有权限访问文件所在位置。

功能说明--> 如果是第一次使用

当非管理员用户第一次使用该数据管理系统时,需要先进入【Import_Table_View】,导入最新的链接表。可以选择单个导入Excel表或者批量导入链接表。

前台文件中的【Import_Table_View】-单个导入Excel前台文件中的【Import_Table_View】-单个导入Excel-例子前台文件中的【Import_Table_View】-批量链接表前台文件(在后)与后台文件

如果该用户正处于无法连接到公司网络的环境,可以使用提前复制到本地的前台文件和后台文件。打开前台文件后,选择单个导入Excel表格,或者选择批量导入链接表中的第一项,导入本地副本,会自动连接到和前台文件处在同一个文件夹 (CurrentProjectPath) 下的后台文件。但是这种情况下,没有办法对ftp上大家共享的那个后台文件中的表格进行内容提交或修改。

如果处于公司网络的环境,就可以选择批量导入链接表中的第二项,会自动连接到ftp上的后台文件。

使用数据库比起使用Excel表格,除去将工作流程平台化之外,还有一重好处:将数据变得规范。我对所有表的字段已经做过了格式规定。比如[Project_List]里WBS号需要按一定的'-'来分隔,输入小写字母会自动变为大写字母等。PM NUMBER必须是数字。而且从SAP导出的表格中原本有很多重复字段。在导入链接表的过程中,这些格式问题有些通过数据管理系统里的代码可以直接得到识别解决,有些则需要管理员进行维护。

--> 注册 & 登录

当的用户打开前台文件时,见到的第一个窗体是【Login_View】。

【Login View】

这里可以先,这里也有一定的格式规范。比如设置了复选框,可以避免用户随意输入。管理员会定期维护[PM_List],[CPM_List],[PL_Others_List]。当用户选择了自己的Title后,Name也会以复选框的形式供其选择。如果用户完成注册,就会把他们的相关信息保存到[User_List]。

从【Login_View】跳到【Register_View】

不同职务的用户登录后拥有的操作权限不同。这里我们先以PM的身份。

【Login_View】登录成功后,从【Login_View】跳到【Main_View】--> 如果是以PM身份

如果以PM身份登录,就只能点击 (进入【Import_Table_View】),或者。

点击,可以进入【PM_View0】。

【PM_View0】

PM最主要的事务是进行。

点击后,进入【PM_VIEW2】。PM可以点击,导入手中的[BoM导入表]。

【PM_View2】

PM手上的BoM导入表中WBS号经常需要更新。所以我们可以点击,在[Project_List]中查询有效的WBS号。这样会打开【PM_View0窗口】。

打开【PM_View1】

当然,也可以点中【PM_View2】的BoM导入表区域中的一条记录,点击按钮。如果查不到就会在最上方显示报错信息。

【PM_View2】点击 查询Project信息

如果查不到的话,可以在【PM_View1】里选择一条Project记录。再回到【PM_View2】,最上方会显示我们刚才选中的那条Project的信息。这时候,我们的[BoM导入表]区域还没有发生变化。点击,就能把[BoM导入表]被选中的那条信息的WBS号改成上方的WBS号。如果全选[BoM导入表],还可以进行批量更新。

从【PM_View1】里选中一条Project记录后,在【PM_View2】中-使用 添加至BoM导入表区域

[BoM导入表]中的Material号也经常需要更新。我们可以使用[BoM导入表]的右方[Material Master Data]查询区域,搜索想要的Material号,将[BoM导入表]内某条记录的Material号修改成它 (点击)。值得注意的是,虽然[BoM导入表]中WBS号可以被批量修改 (一个Project可以有多条BoM记录),但是[BoM导入表】内Material号不能被批量修改。

当PM认为WBS号和Material号都完成检查后,可以点击,将BoM信息从[BoM导入表]区域添加到[可提交的BoM清单]生成区域。

被选中执行的记录如果WBS号和Material号都在最新的[Project_List],[Material_Master_Data]中,就会被移动到[可提交的BoM清单]生成区域,系统显示x条记录更新成功。反之,会留在[BoM导入表]区域。像下图,只有1条记录 (被涂成灰色的那条)被成功添加到[可提交的BoM清单]生成区域。

【PM_View2】- ↓添加↓

我们还可以点击按钮撤销某条记录的添加操作。

在[可提交的BoM清单]生成区域中,被添加下来的记录会自动包含比[BoM导入表]区域更多的信息,例如相关联的Project信息(来源于[Project_List]表),相关联的Material信息(来源于[Material_Master_Data])。

[BoM导入表]区域和[可提交的BoM清单]区域本身是本地的空表,需要用户添加内容。[Project_List],[Material_Master_Data]是链接表。

好了,现在我们要把[可提交的BoM清单[生成区域提交到系统(也就是大家共享的[BoM_List]链接表)里去了。在点击键之前,可以先点按钮。

这里的功能不是用于再次检查WBS号或者Material号的。而是主要针对于过去的一些信息现在可能已经不可用。例如,Delivery Date交货日期,它的值不能早于今天,否则无法提交。且要满足于GRT (Goods Receipt Proccessing Time,单位是天数,指从收到货物到形成可用库存的时间) 和PDT (Planned Delivery Time,单位是天数,从将Purchase Order发给VENDOR到收到货物的时间)。今天+GRT+PDT应早于Delivery Date。但如果仅无法满足GRT和PDT仍将完成提交。

除此之外,还会检查Min Order Quantity。[BoM清单]生成区域的Quantity一定要比[Material_Master_Data]最小订购量要大。否则无法提交。

【PM_View2】-点击 检查 之后【PM_View2】-点击 检查 之后2

当PM点击了按钮后,就会提交[BoM清单]生成区域里的内容到【PM_View3】中的[BoM总清单],并跳转到【PM_View3】页面。如果还不想提交,只想查看【PM_View3】页面,可以点击或者;或者返回【PM_View0】,选择按钮。

【PM_View3】

[BoM总清单]是一个用户共享的链接表。因而其中的内容可以供SPR核价、PM+CPM审核。

PM点击按钮,可以跳转至【PM_View3-1】,查看SPR已经完成核价的记录。并进行或者。

注意:如果以CPM的身份登录,也可以进入这个界面。只是和会变为灰色,CPM可以进行或者。

【PM_View3-1】--> 如果是以SPR身份

现在我们回到【Login_View】,如果我们以SPR身份,那就可以在【Main_View】里点击。

【Login_View】【Main_View】

进入【SPR_View0】后,只有一个选项。点击后,进入一个与【PM_View3-1】类似的界面,【SPR_View1】。SPR可以在这个界面上核价。

【SPR_View0】【SPR_View1】

如果点击按钮,就会弹出【SPR_View_ExportPR】窗体,以导出PR的Excel表格。

【SPR_View_ExportPR】

不足反思

使用Access来搭建数据管理系统显然是有不足之处的。后台数据是需要即时更改的,而且很有可能是多人同时更改的,最好可以自定义来实现锁/延迟解决并发问题,而不只是依赖Access自带的锁。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3