Windows · 免费 · 开源

一键获取 tenant 中的所有包和 iFlow。

iFlowDownload 把 SAP Integration Suite 的内容复制到你电脑上的文件夹:所有包,或者正好是已部署的那些版本。适用于备份、审计和迁移——无需再手动一个一个地导出包。

Windows 10 和 11 · MIT 许可证 · 自动更新 · 从不保存凭据

为需要备份的那一天而生

在 SAP Web 界面中只能一个包一个包地做的事,这里一次完成整个 tenant。

一次处理整个 tenant

每个集成包都保存为与手动导出相同的 ZIP,放在带日期的文件夹中,并附带一份列出已保存内容的 CSV 报告。

能处理草稿

包中只要有一个工件处于草稿状态,就无法整体导出。iFlowDownload 会发现这种情况,改为逐个保存其中的 iFlow、Value Mapping、Script Collection 和 Message Mapping。

真正在运行的内容

已部署模式按包分组,保存每个已部署工件正在运行的确切版本。如果之后被修改过,你会得到正在运行的 bundle。

为长时间运行而设计

失败后以逐渐加长的间隔重试,OAuth token 过期时自动续订,随时可以暂停、继续或停止。文件只有在完整下载并通过 ZIP 校验后才会出现。

可脚本化

同一个程序也能在命令行中运行并返回退出代码,所以每晚备份只需在任务计划程序中加一行。

说你的语言

支持十三种语言,根据 Windows 设置自动选择。iFlow、service key 等 SAP 术语保留 SAP 的叫法。

两分钟完成设置

只需要一个 service key。无需服务器,无需代理,也无需在 tenant 上安装任何东西。

  1. 创建 service key在 BTP cockpit 中,打开计划为 api 的 Process Integration Runtime 实例,创建一个 service key。其 role collection 需要包含 WorkspacePackagesRead
  2. 在 iFlowDownload 中加载选择 JSON 文件,或者复制后点击“粘贴”。“测试连接”会立即告诉你是否缺少角色。
  3. 选择文件夹并开始所有包或仅已部署的包,可按名称筛选。让它运行即可,网络需要喘口气时可以暂停。

通过命令行

# every package, into a dated folder
iFlowDownload.exe --service-key cpi-prod.json --out D:\Backup\CPI

# only what is deployed, only packages whose name contains "HR" or "Finance"
iFlowDownload.exe -k cpi-prod.json -o D:\Backup\CPI --mode deployed --filter HR,Finance

全部保存成功时退出代码为 0,有内容失败时为 1,连接失败时为 2。

你的凭据只留在你手中

简而言之:在你的电脑上,并且只在应用打开期间。

不写入磁盘

client secret 和密码只保存在内存中。设置只记住密钥文件的位置,从不记录其内容。

只读

只发送 GET 请求:iFlowDownload 无法修改、部署或删除 tenant 上的任何内容。

中间没有服务器

它只与你的 tenant 通信,另外会访问 GitHub 检查更新。没有分析,没有遥测。

经过验证的更新

每次更新在替换程序之前,都会与随版本一起发布的 SHA-256 进行核对。

免费开源,并将一直如此

iFlowDownload 以 MIT 许可证发布:可以在工作中使用、修改和分享。如果它为你节省了一个下午,一笔小额捐赠可以帮助它持续维护。

常见问题

为什么有些包因 403 被跳过?

SAP 以 configure-only 内容发布的包(例如从 Discover 安装的适配器)无法通过 API 导出。如果所有包都返回 403,则说明 service key 缺少 WorkspacePackagesRead

回退机制具体做了什么?

当整个包的导出返回 HTTP 500 时(通常是因为某个工件处于草稿状态),应用会列出包中的工件,并将每个工件的当前版本下载到以包名命名的文件夹中。

Windows 提示“已保护你的电脑”。

可执行文件还没有代码签名,所以 SmartScreen 会在首次运行时发出警告。请选择 更多信息 → 仍要运行,或者从源代码自行构建。

自动更新是如何工作的?

启动时(每天最多一次),应用会向 GitHub 查询最新版本。如果有新版本,会先询问你,然后下载、校验 SHA-256,并以新版本重新启动。请将程序放在你有写入权限的文件夹中,例如“文档”。

可以用用户名和密码代替 service key 吗?

可以,前提是 tenant 仍然允许,例如在 Neo 上:选择 用户名和密码 并输入 tenant URL。密码从不保存。

能在 macOS 或 Linux 上使用吗?

可以,通过源代码运行。使用 Python 3.9 或更高版本,运行 pip install git+https://github.com/bdbais/iflowdownload,然后运行 iflowdownload-gui 打开窗口,或运行 iflowdownload 使用命令行。