前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我三行代码完成一个业务流程,但是被猫老师骂惨了

我三行代码完成一个业务流程,但是被猫老师骂惨了

作者头像
加菲猫的VFP
发布2021-09-10 17:24:06
2320
发布2021-09-10 17:24:06
举报
文章被收录于专栏:加菲猫的VFP
先来看一段业务流程(BS架构)

报名提交业务流程

代码语言:javascript
复制
cGh=HttpQueryParams("gh")   &&工号
cGz=HttpQueryParams("gz")   &&工种
*--DBF表(报名)
UPDATE 报名 set 工种=cGz where Gh=cGh and empty(Gz)

这样的流程对吗?

很多人会说对,因为这是正常思维流程。

很抱歉,在我看来,这大错特错了。

写业务流程不单单要关注正常的思维流程,这是明面的,还有异常流程,我们要关注到。

异常流程有哪些吗?

1 工号在报名表不存在的情况

2 工种已在填交了,程序没有更新,但是没有任何信息返馈到操作者。

所以正常的业务流程应该是如下

代码语言:javascript
复制
cGh=HttpQueryParams("gh")   &&工号
cGz=HttpQueryParams("gz")   &&工种
*--DBF表(报名)
use 报名 in 0
select 报名
locate for Gh==alltrim(cGh)
if !found()
 error "没有该员工信息"
endif

if !empty(Gz)
 error "该员工已经报名过了"
endif

UPDATE 报名 set 工种=cGz where Gh=cGh and empty(Gz)

其实还有一个异常流程,叫前端不可信,必须加上工号校验的,我就不举例了。

有些代码可以省,有些代码不可以省,关系到业务流程明暗两条线都需要给写完整了,看到为省而省这样写代码的,就是要被猫老师骂的。

补充BS入门的知识,关于一次访问,二次提交

一般流程是一次访问,输出整个网页初始状态

二次提交,是接收网页填写的数据,由Submit按钮提交的。

一次访问是可以通过浏览器地址栏输入网址访问,也可以由HttpRedirct跳转网址访问。一次访问也是可以带GET方法提交的参数的。

因为BS模式是一问一答,二次提交获取不到一次访问GET提交的参数的。叫前朝的尚方宝剑,斩不了本朝的官,如果想把一次访问的参数保留想法,那么想办法把这个参放在form表单中,这样二次提交就能带上参数了。

你学废了吗?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲猫的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档