---
order: 9
navTitle: 程序流
indexTitle: 概述
---
# 程序流

程序流是SuccBI提供的一种基于流程的可视化服务器端API设计的功能。

一个业务应用往往会有一些个性化的服务器端处理逻辑，如对文章进行点赞、商品订单的新增和修改等。这些操作往往需要在一个事务中完成，如下单操作需要先查询商品库存，如果还有库存就将库存-1，并插入一条订单数据；否则直接返回提示没有库存。调用程序流可以保证整个过程在后端执行，不被前端代码篡改执行逻辑。

在以前开发这样的服务器端接口通常需要研发工程师编码完成，现在可以用程序流定义服务器端的逻辑。

![程序流](./images/2021-09-08-18-30-45.png)

## 为什么要使用程序流{#reason}

**程序流**中执行的内容往往可以在[SuperPage](../superpage/README.md)中直接配置，但时常会遇到这些情况：相同的交互需要重复多次的在每个按钮上添加、一个按钮上添加了多个交互，各交互的执行条件不同，不容易维护、一些敏感的数据总是从前端提交等等，这些问题的产生促使了**程序流**的诞生。

调用**程序流**，把交互放在后端执行，能够带来以下几点好处：

1. 当页面按钮上设置的交互较多，且交互设置有执行条件，此时可以把交互放在**程序流**中，用线条表示执行条件，节点表示交互，展示不同情况下执行哪些交互，易于后期对交互进行维护
2. 同一个页面的不同按钮，或不同页面的按钮中，需要配置的交互相同，若每次都重新配置，则操作量太大，将这些交互放在**程序流**中执行，只需要配置一个**程序流**，就可以在每个按钮中**调用程序流**来使用这些交互
3. 使用**程序流**可以将页面的制作与后台逻辑交互的配置分离，这样可以让实现界面的工程师与配置交互的工程师同时工作，提高效率
4. 业务上一些查询数据的请求可以在**程序流**中通过API接口发送
