SAP接口编程-RFC系列08 : 获取SAP DDIC的数据字段

2024-02-05 13:58

本文主要是介绍SAP接口编程-RFC系列08 : 获取SAP DDIC的数据字段,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

获取DDIC的数据字段

如果想获取数据表的字段,使用RFC_READ_TABLE,设置NO_DATA为"X"。也可以使用SAPFunctions.CreateStructure()方法。这个方法更具通用性,能够从DDIC的数据类型中获取相关信息。
以下是示例代码。注意返回的结构是一个复合型结构,每一列包含了诸如列名,数据类型,数据长度,小数位等信息。所以为了直观和调试,使用数组解析和输出。
logon()和logoff()的代码请参考以前博文。

Option ExplicitPublic Sub TestGetTableStructure()Call LogonCall GetTableStructure("SKA1")Call logoff
End SubPrivate Sub GetTableStructure(tableName As String)If sapConnection Is Nothing Or sapConnection.IsConnected <> tloRfcConnected ThenDebug.Print "Please connect."Exit SubEnd IfDim functions As New SAPFunctionsOCX.SAPFunctionsSet functions.Connection = sapConnectionDim ddicFields As SAPFunctionsOCX.Structure ' data dictionary fieldsSet ddicFields = functions.CreateStructure(tableName) ' get fields from tableNameDim arr() As Variantarr = StructToArray(ddicFields)' Print structureDim row As IntegerDim col As IntegerFor row = 1 To UBound(arr, 1)For col = 1 To UBound(arr, 2)Debug.Print arr(row, col),NextDebug.Print  ' new lineNext
End SubPrivate Function StructToArray(struct As SAPFunctionsOCX.Structure) As VariantDim arr() As VariantDim cols As Integercols = struct.ColumnCountReDim arr(1 To cols, 1 To 3) As Variant ' rowcount is cols ,column count is 3' 可以把strcut理解为一个复合结构,每一个元素包括多项内容' 使用二维的array还原成行列格式Dim i As IntegerFor i = 1 To struct.ColumnCountarr(i, 1) = struct.ColumnName(i)         '第一列为列名arr(i, 2) = Str(struct.ColumnSAPType(i)) ' 第二列为类型arr(i, 3) = struct.ColumnLength(i)       '第三列为长度NextStructToArray = arr
End Function

这篇关于SAP接口编程-RFC系列08 : 获取SAP DDIC的数据字段的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/681132

相关文章

如何利用Java获取当天的开始和结束时间

《如何利用Java获取当天的开始和结束时间》:本文主要介绍如何使用Java8的LocalDate和LocalDateTime类获取指定日期的开始和结束时间,展示了如何通过这些类进行日期和时间的处... 目录前言1. Java日期时间API概述2. 获取当天的开始和结束时间代码解析运行结果3. 总结前言在J

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

Idea实现接口的方法上无法添加@Override注解的解决方案

《Idea实现接口的方法上无法添加@Override注解的解决方案》文章介绍了在IDEA中实现接口方法时无法添加@Override注解的问题及其解决方法,主要步骤包括更改项目结构中的Languagel... 目录Idea实现接China编程口的方法上无法添加@javascriptOverride注解错误原因解决方

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -

Java如何获取视频文件的视频时长

《Java如何获取视频文件的视频时长》文章介绍了如何使用Java获取视频文件的视频时长,包括导入maven依赖和代码案例,同时,也讨论了在运行过程中遇到的SLF4J加载问题,并给出了解决方案... 目录Java获取视频文件的视频时长1、导入maven依赖2、代码案例3、SLF4J: Failed to lo

使用Java实现获取客户端IP地址

《使用Java实现获取客户端IP地址》这篇文章主要为大家详细介绍了如何使用Java实现获取客户端IP地址,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 首先是获取 IP,直接上代码import org.springframework.web.context.request.Requ

C#多线程编程中导致死锁的常见陷阱和避免方法

《C#多线程编程中导致死锁的常见陷阱和避免方法》在C#多线程编程中,死锁(Deadlock)是一种常见的、令人头疼的错误,死锁通常发生在多个线程试图获取多个资源的锁时,导致相互等待对方释放资源,最终形... 目录引言1. 什么是死锁?死锁的典型条件:2. 导致死锁的常见原因2.1 锁的顺序问题错误示例:不同