SAP RFC 输入一张表(C# 使用 SapNwRfc 二)

news2024/11/27 7:39:02

SapNwRfc中的配置参数,记录日志关闭 Trace=0,可以得到很好的性能。

有网友在问,SAP RFC返回多张表(C# 使用 SapNwRfc 一)中如何输入一张表的数据,正好博主也遇到了这个场景,今天做了一个DEMO,详细代码如下:

using SapNwRfc;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace saprfc2024table
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            callsap();
        }

        void callsap()
        {
            string connectionString = "AppServerHost=xxx.xxx.xxx.xxx; SystemNumber=00; User=xxxxxx;Password=xxxxxxx Client=700; Language=ZH; PoolSize=5; Trace=0";
            var connection = new SapConnection(connectionString);
            connection.Connect();
            toolStripStatusLabel1.Text = "Logon SAP Server...";

        
            /*
            InputItem[] inputItem  = new InputItem[]
            {
                new InputItem { WERKS = "1003"  },
                new InputItem { WERKS = "1003"  },

            };
            */


            //新建一个对象数组,大小10000
            InputItem[] inputItem = new InputItem[10000];
            for (int i = 0; i < 10000; i++)
            {
                inputItem[i] = new InputItem { WERKS = "1003",ZMENG = i };
            }

            //对象数组交给对象表
            InputTable inputTable = new InputTable();
            inputTable.Items = inputItem;
            
            //调用函数,输入是一张表10000条数据,输出是函数返回的结果
            var someFunction = connection.CreateFunction("ZSAP_PP_APS_XXXXX_IN");
            var result = someFunction.Invoke<ReturnTable>(inputTable);
            

            //显示返回的结果
            foreach ( var item in result.Items ) 
            { 
                listBox1.Items.Add(item.STATUS + " " + item.MESSAGE);
            }
        }
    }


    class InputTable 
    {
        [SapName("IT_INPUT")]
        public InputItem[] Items { get; set; }
    }



    class InputItem
    {
        [SapName("WERKS")]
        public string WERKS { get; set; }

        [SapName("MATNR")]
        public string MATNR { get; set; }

        [SapName("ATWRT")]
        public string ATWRT { get; set; }

        [SapName("Z_SALE_PACK")]
        public string Z_SALE_PACK { get; set; }

        [SapName("ATWRT1")]
        public string ATWRT1 { get; set; }

        [SapName("ATWRT2")]
        public string ATWRT2 { get; set; }

        [SapName("ETDAT")]
        public string ETDAT { get; set; }

        [SapName("ZMENG")]
        public double ZMENG { get; set; }

        [SapName("ZIEME")]
        public string ZIEME { get; set; }

    }



    class ReturnTable 
    {
        [SapName("ET_RETURN")]
        public ReturnItem[] Items { get; set; }   
    }


    class ReturnItem
    {
        [SapName("STATUS")]
        public string STATUS { get; set; }

        [SapName("MESSAGE")]
        public string MESSAGE  { get; set; }
        
    }



}

只用了1秒钟,SAP中灌入了10000条数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1825817.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java】类与类的关系及其总结

类和类的关系 代码 总结&#xff1a; 【1】面向对象的思维&#xff1a;找参与者&#xff0c;找女孩类&#xff0c;找男孩类 【2】体会了什么叫方法的性擦&#xff0c;什么叫方法的实参&#xff1a; 具体传入的内容 实参&#xff1a; 【3】类和类可以产生关系&#xff1a; …

python基础面试题(其二)

十一&#xff0c; 常用的字符串处理 常见操作——查找 string.find(str, beg0,endlen(string)) 检测str是否包含在string中&#xff0c;如果beg和end指定范围&#xff0c;则检查是否在指定范围内&#xff0c;如果是返回开始的索引值&#xff0c;则返回-1 string.rfind(str, be…

python-求f(x,n)

[题目描述] 输入&#xff1a; 输入 &#x1d465;和 &#x1d45b;。输出&#xff1a; 函数值&#xff0c;保留两位小数。样例输入1 4.2 10 样例输出1 3.68 来源/分类&#xff08;难度系数&#xff1a;一星&#xff09; 完整代码如下&#xff1a; x,nmap(eval,input().split(…

Internet Download Manager ( 极速下载器 ) 序列号注册码 IDM下载器注册机中文激活破解版

IDM下载器(Internet Download Manager)是一款专业的下载管理软件&#xff0c;它通过多线程技术和智能文件分段技术&#xff0c;有效提升下载速度&#xff0c;并支持断点续传&#xff0c;还具有计划下载功能&#xff0c;用户可以设置特定的下载时间&#xff0c;非常适合需要在特…

推荐一款可以下载B站视频和音频的工具

cobalt是一个免费的下载网站&#xff0c;主要是用于载视频和音频。只要你把相应的网址复制下来&#xff0c;然后打开cobalt网站&#xff0c;黏贴网址&#xff0c;选择要下载的格式&#xff0c;就可以下载相应的音频或者视频了。 该网站非常简洁&#xff0c;使用也很简单。目前只…

RK3568平台(触摸篇)触摸屏基本原理

一.触摸屏概述 触摸屏作为一种新的输入设备&#xff0c;它是目前最简单、方便、自然的一种人机交互方式。 触摸屏又称为“触控屏”、“触控面板”&#xff0c;是一种可接收触头等输入讯号的感应式液晶显示装置&#xff1b;当接触了屏幕上的图形按钮时&#xff0c;屏幕上的触觉…

大话C语言:第24篇 预处理

1 C语言编译流程 C语言的编译流程包括&#xff1a; 预编译&#xff1a;将.c 中的头文件展开、宏展开&#xff0c;生成的文件是.i 文件。gcc指令&#xff1a;gcc -E file.c -o file.i 编译&#xff1a;将预处理之后的.i 文件生成 .s 汇编文件。gcc指令&#xff1a;gcc -S file…

编译一个叫:未来的IDE-Zed编辑器(Windows平台)

一、前言 截止到2024-6-15&#xff0c;Zed官方并未给出Windows的二进制安装包&#xff0c;如果想在Windows平台使用的话需要自己编译&#xff0c;我是如何编译的请随我道来&#xff0c;有兴趣的码友可以尝试下&#xff0c;在下可不敢保证各位码友按我这方法能100%编译出来&…

流量卡怎么办理的攻略

一、确定需求 在办理流量卡之前&#xff0c;你需要明确自己的需求。根据不同的使用场景&#xff0c;你可能需要考虑以下几个方面&#xff1a; 月租费用&#xff1a;不同运营商提供的流量卡套餐价格各异&#xff0c;从低至19元到高达199元不等。 流量大小&#xff1a;从30GB到3…

CompletableFuture.runAsync的多线程下异步操作

CompletableFuture.runAsync的多线程下异步操作 &#x1f9f0;业务使用场景 ​CompletableFuture.runAsync()​方法是Java中用于创建异步任务的工具&#xff0c;它可以在后台线程中执行指定的任务&#xff0c;并且可以在任务完成后返回结果或执行后续操作。这种方式可以实现多…

Elixir学习笔记——别名、需要、导入和使用

为了便于软件重用&#xff0c;Elixir 提供了三个指令&#xff08;alias、require 和 import&#xff09;以及一个名为 use 的宏&#xff0c;总结如下&#xff1a; # 为模块添加别名&#xff0c;以便可以将其称为 Bar 而不是 Foo.Bar alias Foo.Bar, as: Bar # 需要模块才能使…

数字化校园:打造未来教育新风尚

在21世纪的教育蓝图中&#xff0c;"数字化校园"正逐渐从愿景走向现实&#xff0c;它不仅是科技进步与教育创新深度融合的产物&#xff0c;更是重塑教育生态、引领未来学习风尚的关键力量。随着云计算、大数据、人工智能等前沿技术的蓬勃发展&#xff0c;传统的教育模…

基于RandLA-Net深度学习模型的激光点云语义分割

一、场景要素语义分割部分的文献阅读笔记 RandLA-Net是一种高效、轻量级的神经网络&#xff0c;其可直接逐点推理大规模点云的语义标签。RandLA-Net基于随机点采样获得了显著的计算和内存效率&#xff0c;并采用新的局部特征聚合模块有效地保留了几何细节&#xff0c;弥补了随机…

warning LNK4017: DESCRIPTION 语句不支持目标平台;已忽略

文章目录 warning LNK4017: DESCRIPTION 语句不支持目标平台&#xff1b;已忽略概述笔记备注END warning LNK4017: DESCRIPTION 语句不支持目标平台&#xff1b;已忽略 概述 基于ATL的COM DLL导出函数&#xff0c;无法用__declspec(dllexport)直接在函数上标记为导出函数。 只…

Linux crontabs定时执行任务

文章目录 前言一、安装二、服务1. 启动crond服务2. 关闭crond服务3. 重启crond服务4. 设置crond开机启动5. 禁用crond开机启动6. 查看crond是否开机启动7. 重新载入配置8. 查看crond运行状态 三、使用1. 查看当前用户的crontab2. 编辑用户的crontab3. 删除用户的crontab的内容 …

Linux基础命令[29]-chown

文章目录 1. chown 命令说明2. chown 命令语法3. chown 命令示例3.1 修改属主3.2 修改属组3.3 修改属主和属组3.4 修改文件夹所属 4. 总结 1. chown 命令说明 chown&#xff1a;更改文件的用户或用户组&#xff0c;需要 root 用户或 sudo 权限的用户执行该命令。基本信息如下&…

Elixir学习笔记——模块属性

Elixir 中的模块属性有三个用途&#xff1a; 1.作为模块和函数注释 2.作为编译期间使用的临时模块存储 3.作为编译时常量 让我们检查一下这些示例。 作为注释 Elixir 引入了 Erlang 中的模块属性概念。例如&#xff1a; 在上面的例子中&#xff0c;我们使用模块属性语法定义…

使用GNU Gcov Lcov生成C++单元测试代码覆盖率报告

最近在统计C项目代码的单元测试覆盖率 发现通过gcov和lcov就能将代码单元测试覆盖率定量化和可视化 下面是基于gtest测试框架&#xff0c;对gcov和lcov生成覆盖率的简单示例 工作流程 主要有三个步骤 向GCC编译添加特殊的编译选项以生成可执行文件和*.gcno 运行&#xff08…

Vue3 生命周期函数及其与Vue2的对比总结

Vue3 继续保留了 Vue2 的生命周期钩子&#xff0c;但在 Composition API&#xff08;setup 函数&#xff09;中&#xff0c;它们被改为了一组导入函数。以下是它们的对比&#xff1a; Vue2 生命周期钩子和 Vue3 对应的生命周期函数&#xff1a; 在 Vue3 中&#xff0c;所有的…

TJA1145休眠唤醒调试

目录 项目场景:TJA1145引脚图问题描述SPI链路验证休眠唤醒休眠唤醒配置唤醒报文配置代码相关寄存器:模式寄存器使能CAN唤醒设置唤醒边沿检测事件状态及捕获寄存器CANFD报文不会被识别为有效的唤醒帧项目场景: 最近开发过程中,选择了这颗芯片,踩了很多坑,总算是把这个芯片…