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

如何通过Web Application Builder(ITS)将HTML表格数据写入SAP表ZCOOKIES?

实现Web表格数据推送至SAP ZCOOKIES表的步骤

一、前端JavaScript改造:收集并提交表格数据

先修改JS代码,把表格里的USER、PASSWORD数据整理成结构化格式,再通过表单提交到ABAP端:

// 收集表格行数据
function getTableRows() {
    let dataList = [];
    // 按实际HTML结构调整选择器,比如表格行的类名或标签
    document.querySelectorAll("table#ZCOOKIES tr").forEach((row, index) => {
        // 跳过表头行
        if (index === 0) return;
        let userInput = row.querySelector("[name='USER']");
        let pwdInput = row.querySelector("[name='PASSWORD']");
        if (userInput && pwdInput && userInput.value.trim()) {
            dataList.push({
                USER: userInput.value.trim(),
                PASSWORD: pwdInput.value.trim()
            });
        }
    });
    return dataList;
}

// 按钮点击事件:提交数据
document.getElementById("submit-btn").addEventListener("click", function() {
    let tableData = getTableRows();
    if (tableData.length === 0) {
        alert("请填写有效数据");
        return;
    }
    // 把数据转成JSON字符串存入隐藏字段
    document.getElementById("hidden-data").value = JSON.stringify(tableData);
    // 提交ITS页面的表单(替换成你实际的表单ID)
    document.getElementById("its-form").submit();
});

同时在HTML里添加隐藏字段和表单容器:

<form id="its-form" method="post" action="你的ITS事务URL">
    <!-- 原有表格内容 -->
    <input type="hidden" id="hidden-data" name="TABLE_DATA">
    <button type="button" id="submit-btn">写入SAP表</button>
</form>

二、ABAP端处理:接收数据并写入数据库

在ITS对应的ABAP程序(事务代码背后的程序)中,处理前端传递的数据:

1. 获取前端参数

在PAI事件中,通过ITS的请求对象获取表单提交的参数:

DATA: lv_json_data TYPE string.
lv_json_data = request->get_form_field( 'TABLE_DATA' ).

2. 解析JSON数据

用ABAP自带的JSON解析类把字符串转成内表:

TYPES: BEGIN OF ty_cookie,
         USER TYPE zcookies-user,
         PASSWORD TYPE zcookies-password,
       END OF ty_cookie.
DATA: lt_cookies TYPE STANDARD TABLE OF ty_cookie.

IF lv_json_data IS NOT INITIAL.
    /UI2/CL_JSON=>deserialize(
        EXPORTING
            json = lv_json_data
            pretty_name = abap_false
        CHANGING
            data = lt_cookies
    ).
ENDIF.

3. 写入ZCOOKIES表

执行数据库操作,把内表数据写入表中,可根据需求处理重复数据:

IF lt_cookies IS NOT INITIAL.
    " 可选:删除已有用户数据,避免重复
    DELETE FROM zcookies WHERE user IN ( SELECT user FROM @lt_cookies ).
    " 插入新数据
    INSERT zcookies FROM TABLE lt_cookies.
    IF sy-subrc = 0.
        MESSAGE '数据写入成功' TYPE 'S'.
    ELSE.
        MESSAGE '数据写入失败,请检查' TYPE 'E'.
    ENDIF.
ENDIF.

三、ITS开发注意事项

  • 确保ITS服务配置允许表单提交,事务代码对应的ABAP程序有ZCOOKIES表的读写权限。
  • 密码字段建议前端加密后传输,ABAP端解密存储,避免明文泄露。
  • 若使用ITS模板开发,要保证HTML模板与ABAP变量的映射正确,参数能正常传递。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:45:34