You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Google Apps Script实现Google Sheets调用SAP Business Client并填入单据号?

Google Sheets触发SAP Business Client自动填单实现方案

核心思路

Google Apps Script(GAS)无法直接启动本地应用,但SAP Business Client支持自定义URL协议(sap://),我们可以通过构造协议链接,让浏览器唤起SAP并自动填入单据号。


步骤1:编写GAS脚本

  1. 打开你的Google Sheet,点击顶部「扩展程序」→「Apps Script」进入脚本编辑器。
  2. 删除默认代码,粘贴以下脚本:
function openSAPWithDocNumber() {
  // 获取当前选中的单个单元格
  const activeCell = SpreadsheetApp.getActiveRange();
  if (activeCell.getNumRows() > 1 || activeCell.getNumColumns() > 1) {
    SpreadsheetApp.getUi().alert('请仅选中一个包含单据号的单元格!');
    return;
  }

  // 提取单据号并做格式校验
  const docNumber = activeCell.getValue().toString().trim();
  if (!docNumber) {
    SpreadsheetApp.getUi().alert('选中的单元格无有效单据号!');
    return;
  }

  // 构造SAP协议链接(替换成你的事务码和参数)
  const targetTransaction = 'MB03'; // 替换为你需要的SAP事务码
  const sapLaunchUrl = `sap://open/?transaction=${targetTransaction}&parameter=BLNR=${encodeURIComponent(docNumber)}`;

  // 弹出对话框展示链接(避免浏览器拦截直接打开)
  const ui = SpreadsheetApp.getUi();
  ui.alert('点击下方链接唤起SAP:\n' + sapLaunchUrl);
  // 若浏览器允许弹窗,也可尝试直接打开:
  // SpreadsheetApp.openUrl(sapLaunchUrl);
}
  1. 替换脚本里的targetTransaction为你的目标事务码,同时调整参数名(比如销售订单事务用VBELN,需根据SAP事务的实际参数名修改)。
  2. 点击脚本编辑器顶部的「保存」,命名为SAPDocLauncher。

步骤2:绑定脚本到图片

  1. 回到Google Sheet,右键你已创建的触发图片。
  2. 选择「分配脚本」,输入函数名openSAPWithDocNumber,点击确定。

步骤3:授权与测试

  1. 选中一个包含单据号的单元格,点击图片触发函数。
  2. 第一次运行会弹出授权提示:点击「允许」→ 选择你的谷歌账号 → 在「此应用未验证」页面点击「高级」→ 选择「转到[你的脚本名]」→ 完成授权。
  3. 触发后会弹出对话框,点击其中的sap://链接,系统会自动唤起SAP Business Client,打开指定事务码并填入单据号。

关键注意事项

  • 确保你的电脑已安装SAP Business Client,且sap://协议已被系统正确注册(安装SAP客户端时默认完成)。
  • 若SAP参数不生效,需确认目标事务码对应的参数名称(可通过SAP事务码的屏幕字段属性查询)。
  • 若直接openUrl被浏览器拦截,使用弹窗展示链接是更稳妥的方式,用户可复制链接到浏览器地址栏打开。

内容的提问来源于stack exchange,提问作者Daniel Schulz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 21:50:38