一种内表转XML的方法step by ste

news/2023/10/4 2:14:50

业务背景:

       在与其他外部系统的对接过程中,主要推荐的是JSON的数据格式,但是有的系统因为历史原因或管理要求上的原因,会要求使用XML的格式进行数据交换。本文档将介绍一种XML与SAP内表转换的方法。

1,内表转XML

1.首先需要定义要转换为内表的结构

在企业服务中新建Data Type

选择Data Type,点击继续按钮

<img class="alignnone size-full wp-image-6565" src="http://www.baidusap.com/wp-content/uploads/2019-06-24_10-39-31.jpg" alt="" width="737" height="510" />

选择Backend,点击继续按钮

<img class="alignnone size-medium wp-image-6567" src="http://www.baidusap.com/wp-content/uploads/2019-06-24_10-42-12-740x509.jpg" alt="" width="740" height="509" srcset="http://www.baidusap.com/wp-content/uploads/2019-06-24_10-42-12-740x509.jpg 740w, http://www.baidusap.com/wp-content/uploads/2019-06-24_10-42-12-768x528.jpg 768w, http://www.baidusap.com/wp-content/uploads/2019-06-24_10-42-12.jpg 790w" sizes="(max-width: 740px) 100vw, 740px" />

 

输入名称和名称空间

没有可选择的命名空间时,输入事务代码SPXNGENAPPL创建命名空间,点击修改按钮,这是一张跨客户端的表,弹出警告直接点击确认即可

<img class="alignnone size-full wp-image-6566" src="http://www.baidusap.com/wp-content/uploads/2019-06-24_10-41-03.jpg" alt="" width="697" height="382" />

点击新条目,创建新的命名空间

<img class="alignnone size-full wp-image-6571" src="http://www.baidusap.com/wp-content/uploads/1-6.png" alt="" width="690" height="165" />

选择一个可用的命名空间即可,但是一般来说WebService的命名空间是

urn:sap-com:document:sap:soap:functions:mc-style,一般我们选择这个即可

Generation Source选择BACKENDMDR Backend Metadata Repository

<img class="alignnone size-full wp-image-6572" src="http://www.baidusap.com/wp-content/uploads/2-6.png" alt="" width="697" height="171" />

然后返回,选择我们刚刚创建的命名空间,点击继续

<img class="alignnone size-medium wp-image-6573" src="http://www.baidusap.com/wp-content/uploads/3-6-740x510.png" alt="" width="740" height="510" srcset="http://www.baidusap.com/wp-content/uploads/3-6-740x510.png 740w, http://www.baidusap.com/wp-content/uploads/3-6-768x529.png 768w, http://www.baidusap.com/wp-content/uploads/3-6.png 790w" sizes="(max-width: 740px) 100vw, 740px" />

选择包和请求,注意不要输入前缀,不然你的名称会变得很难看,很长,很奇怪,但是你在前面输入名称那里已经考虑到这边要输入前缀了,那当我没说,点击完成即可

<img class="alignnone size-medium wp-image-6574" src="http://www.baidusap.com/wp-content/uploads/4-5-740x510.png" alt="" width="740" height="510" srcset="http://www.baidusap.com/wp-content/uploads/4-5-740x510.png 740w, http://www.baidusap.com/wp-content/uploads/4-5-768x529.png 768w, http://www.baidusap.com/wp-content/uploads/4-5.png 790w" sizes="(max-width: 740px) 100vw, 740px" />

我们将会看到如此界面

<img class="alignnone size-medium wp-image-6575" src="http://www.baidusap.com/wp-content/uploads/5-5-740x341.png" alt="" width="740" height="341" srcset="http://www.baidusap.com/wp-content/uploads/5-5-740x341.png 740w, http://www.baidusap.com/wp-content/uploads/5-5-768x353.png 768w, http://www.baidusap.com/wp-content/uploads/5-5-1024x471.png 1024w, http://www.baidusap.com/wp-content/uploads/5-5.png 1069w" sizes="(max-width: 740px) 100vw, 740px" />

选择External View来定义XML的结构

<img class="alignnone size-medium wp-image-6576" src="http://www.baidusap.com/wp-content/uploads/6-4-740x324.png" alt="" width="740" height="324" srcset="http://www.baidusap.com/wp-content/uploads/6-4-740x324.png 740w, http://www.baidusap.com/wp-content/uploads/6-4-768x336.png 768w, http://www.baidusap.com/wp-content/uploads/6-4-1024x448.png 1024w, http://www.baidusap.com/wp-content/uploads/6-4.png 1340w" sizes="(max-width: 740px) 100vw, 740px" />

2.以一个较为全面的头行结构为例子

右键单击字段,将简单结构转为复杂结构

<img class="alignnone size-full wp-image-6577" src="http://www.baidusap.com/wp-content/uploads/7-3.png" alt="" width="505" height="182" />

然后添加元素HEAD和ITEMS,注意字段是区分大小写的

<img class="alignnone size-full wp-image-6578" src="http://www.baidusap.com/wp-content/uploads/8-3.png" alt="" width="499" height="140" />

右键新建全局类型

<img class="alignnone size-full wp-image-6579" src="http://www.baidusap.com/wp-content/uploads/9-3.png" alt="" width="570" height="167" />

继续新建类型,建议中间结构在后面跟上_1或者自己能区分的字符

<img class="alignnone size-medium wp-image-6580" src="http://www.baidusap.com/wp-content/uploads/10-2-740x510.png" alt="" width="740" height="510" srcset="http://www.baidusap.com/wp-content/uploads/10-2-740x510.png 740w, http://www.baidusap.com/wp-content/uploads/10-2-768x529.png 768w, http://www.baidusap.com/wp-content/uploads/10-2.png 790w" sizes="(max-width: 740px) 100vw, 740px" />

选择到新建的ZSTEST_1,右键添加如图三个抬头结构的字段

<img class="alignnone size-full wp-image-6581" src="http://www.baidusap.com/wp-content/uploads/11-2.png" alt="" width="272" height="145" />

激活该结构,返回ZSTEST结构,可以看到抬头结构已经建好

<img class="alignnone size-full wp-image-6582" src="http://www.baidusap.com/wp-content/uploads/12-1.png" alt="" width="504" height="204" />

接下来是创建多行结构,右键ITEMS,选择新建全局结构

<img class="alignnone size-full wp-image-6583" src="http://www.baidusap.com/wp-content/uploads/13-1.png" alt="" width="550" height="199" />

同样输入接口名称ZSTEST_2

<img class="alignnone size-medium wp-image-6584" src="http://www.baidusap.com/wp-content/uploads/14-740x510.png" alt="" width="740" height="510" srcset="http://www.baidusap.com/wp-content/uploads/14-740x510.png 740w, http://www.baidusap.com/wp-content/uploads/14-768x529.png 768w, http://www.baidusap.com/wp-content/uploads/14.png 790w" sizes="(max-width: 740px) 100vw, 740px" />

新建一行ITEM,作为ITEMS的子标签

<img class="alignnone size-full wp-image-6585" src="http://www.baidusap.com/wp-content/uploads/15.png" alt="" width="277" height="105" />

然后再给ITEM行创建新的全局类型

<img class="alignnone size-full wp-image-6586" src="http://www.baidusap.com/wp-content/uploads/16.png" alt="" width="666" height="185" />

新建如下类型,选择激活后返回ZSTEST_2类型

<img class="alignnone size-full wp-image-6587" src="http://www.baidusap.com/wp-content/uploads/17.png" alt="" width="294" height="152" />

点击ITEM选择红框中的选项

<img class="alignnone size-medium wp-image-6588" src="http://www.baidusap.com/wp-content/uploads/18-740x161.png" alt="" width="740" height="161" srcset="http://www.baidusap.com/wp-content/uploads/18-740x161.png 740w, http://www.baidusap.com/wp-content/uploads/18-768x167.png 768w, http://www.baidusap.com/wp-content/uploads/18.png 999w" sizes="(max-width: 740px) 100vw, 740px" />

可以看到ITEM已经变成了表格类型了,激活该类型,返回到ZSTEST类型

<img class="alignnone size-full wp-image-6589" src="http://www.baidusap.com/wp-content/uploads/19.png" alt="" width="329" height="168" />

返回ZSTEST界面,激活ZSTEST结构。

<img class="alignnone size-full wp-image-6590" src="http://www.baidusap.com/wp-content/uploads/20.png" alt="" width="303" height="171" />

接下来做一个内表转XML的测试。

<img class="alignnone size-full wp-image-6591" src="http://www.baidusap.com/wp-content/uploads/21.png" alt="" width="677" height="355" />

可以看出,当参数列没有值的时候,是直接以简写的<ZHEAD3/>收尾,这一点要和外部系统讲清楚,同时提醒一句,当整个列表都没有值的时候,整个列表都不显示。

2,XML转内表

 

&amp;amp;lt;img class="alignnone size-full wp-image-6592" src="http://www.baidusap.com/wp-content/uploads/22.png" alt="" width="460" height="303" /&amp;amp;gt;

可以看到,已经解析到了数据。

以上。

转载于:https://www.cnblogs.com/datie/p/11428366.html

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何判断暂存采购订单(EKKO-MEMORY)

ME21N创建采购订单时&#xff0c;可以通过点击暂存按钮将PO保存成暂存订单。 &amp;lt;img class"alignnone size-full wp-image-6557" src"http://www.baidusap.com/wp-content/uploads/2019-06-21_11-09-23.jpg" alt"" width"454"…

[问题解决]调用BAPI_ACC_DOCUMENT_POST时报错“被合并的公司 XXXX 和 XXXX 是不同的”...

1&#xff0c;问题描述 调用BAPI_ACC_DOCUMENT_POST或者BAPI_ACC_DOCUMENT_CHECK时 创建或检查凭证时&#xff0c;报错“被合并的公司 xxxx 和 xxxx 是不同的”&#xff0c;比如“被合并的公司 3001 和 9999 是不同的”。 错误消息ID&#xff1a; F5 消息号&#xff1a;080 &am…

如何删除或更改已经释放的TR

下面介绍一个方法删除或修改在SAP系统内已经释放的传输请求TR。 1&#xff0c;修改TR状态 SE38运行RDDIT076程序&#xff0c;将TR的状态由已释放R修改为可修改的D状态。 首先有个已经释放的TR &amp;lt;img class"alignnone size-full wp-image-6497" src"ht…

[问题解决]使用mpur_message_forced时,校验消息添加到错误的采购订单行项目上

1&#xff0c;问题描述 在BADI ME_PROCESS_PO_CUST的方法CHECK中增强&#xff0c;增加对采购订单行项目的校验&#xff0c;发现使用宏mpur_message_forced添加错误消息时&#xff0c;这些错误消息只能显示到采购订单的最后一行上&#xff0c;并不能按照行项目归集显示。 增强点…

检查用户是否存在[SUSR_USER_READ_CHECKS]

可以使用函数 SUSR_USER_READ_CHECKS来做用户存在检查。 SE37测试一下&#xff0c;在用户字段user_name输入Baidusap后运行&#xff0c;提示用户不存在 &amp;lt;img class"alignnone size-full wp-image-6475" src"http://www.baidusap.com/wp-content/uplo…

如何将JSON转换为HTML格式并显示

ABAP接口程序开发中时常会用到JSON格式来传输数据&#xff0c;在监控传输的JSON串内容时&#xff0c;把JSON转换为HTML格式来显示会很便利。 下面提供一个简单例子来实现JSON转化为HTML并显示的功能。 其中&#xff1a; 1&#xff0c;使用 /ui2/cl_json>serialize来生成JSON…

[问题解决]开启了adsubcon调用BAPI_GOODSMVT_CREATE创建物料凭证时第一行批次错误

1&#xff0c;问题描述 项目里使用了ADSUBCON&#xff0c;在调用BAPI_GOODSMVT_CREATE创建带subcontractor行项目的物料移动凭证时&#xff0c;发现主行项目中的批次赋值错误。 错误截图&#xff1a; 看到第一行&#xff0c;也就是物料移动类型是101的行项目上的批次是12082215…

采购申请科目分配校验增强-MEREQ001-EXIT_SAPLMEREQ_010

1&#xff0c;MEREQ001 用户出口(user-exit)MEREQ001是针对采购申请的增强&#xff0c;其中FM EXIT_SAPLMEREQ_010可以对采购申请的账户分配进行校验。 &amp;amp;lt;img class"alignnone size-full wp-image-6442" src"http://www.baidusap.com/wp-content/…

如何查找CDHDR/CDPOS表中的对象类(OBJECTCLAS)、对象值(OBJECTID)

众所周知&#xff0c;更改凭证抬头表CDHDR和更改凭证项目表CDPOS中保存了SAP中业务数据的创建和变更历史。 但是在查询这两个表时&#xff0c;通常会面临不知道如何填写OBJECTCLAS和OBJECTID这两个字段的值。 &amp;lt;img class"alignnone size-medium wp-image-6430&…

SAP系统内如何查询特定时间内某个Tcode都修改了什么-AUT10

AUT10是审计时使用的一个Tcode &#xff0c;可以用来查找特定时间内&#xff0c;某个tcode都修改了什么内容&#xff0c;包括更改的表、字段、修改时间、修改人、更改凭证对象、对象值等等。 AUT10界面如下&#xff0c;输入Tcode&#xff0c;开始和截止日期之后运行&#xff0c…

[问题解决]websevice调用中ICM_HTTP_SSL_PEER_CERT_UNTRUSTED错误解决

1&#xff0c;问题描述 SAP 调用webservice时发生一个错误ICM_HTTP_SSL_PEER_CERT_UNTRUSTED SRT&#xff1a;Processing error in Internet Communication Framework&#xff1a;("ICM_HTTP_SSL_PEER_CERT_UNTRUSTED") &amp;lt;img class"alignnone size-m…

如何在ABAP程序中debug宏代码

正常情况下ABAP是不能debug调试宏的&#xff0c;可但是有个变通的方法能让你初略的一步一步执行宏内的代码。 写了一段简单的abap代码&#xff0c;里面包括一个宏&#xff0c;用来取EKPO表内数据&#xff0c;然后sort一下。 REPORT ztest_debug_macro.DATA:lt_ekpo TYPE STANDA…

传输请求TR的版本管理信息保存在表VRSD和REPOSRC中

1&#xff0c;表VRSD 可以在SE11中看到TR相关版本管理信息&#xff0c;比如&#xff0c;版本号&#xff0c;对象名&#xff0c;对象类型&#xff0c;版本创建者&#xff0c;创建日期等。 &amp;lt;img class"alignnone size-medium wp-image-6399" src"http:…

读取采购订单附件(GOS)-[BDS_GOS_CONNECTIONS_GET/SO_DOCUMENT_READ_API1]

在采购订单屏幕的左上角有个特殊的按钮&#xff0c;可以通过它创建、查看或删除采购订单的附件。这个按钮是使用GOS(Generic Object Service)工具实现的&#xff0c;可以把GOS理解为一个连接文档和SAP内各种对象的一个工具&#xff0c;包括&#xff0c;采购订单(me23n)&#xf…

如何查找或修改用于后台Job的变式(variable)

给ABAP程序创建一个用于后台处理的变式&#xff0c;供SM36设置时使用&#xff0c;但是你会发现这个变式在前台运行程序时看不到&#xff0c; SE38创建一个仅用于后台处理的变式 &amp;lt;img class"alignnone size-medium wp-image-6331" src"http://www.bai…

使用函数BALW_BAPIRETURN_GET给BAPIRETURN赋值

BAPIRETURN的结构比较特殊没有针对消息类ID号的字段&#xff0c;SE11中可以看到BAPIRETURN的具体定义&#xff0c; &amp;lt;img class"alignnone size-medium wp-image-6317" src"http://www.baidusap.com/wp-content/uploads/2019-05-24_10-24-13-740x351.…

如何查找SAP系统内某个Tcode下已经实施的增强(BADi、user-exit、BTE….)

如果是半路加入一个项目&#xff0c;肯定对系统内已经实施 的增强不是清楚&#xff0c;比如说采购订单me23n下都创建了什么增强&#xff0c;SAP提供了一个程序SNIF&#xff0c;可以通过这个直接查找出已经实施的BADi、user-exit、BTE甚至是调用的BAPI。 1&#xff0c;首先先找到…

如何在采购订单审批ME28屏幕中添加自定义字段

用ME28对采购订单进行审批时&#xff0c;想在ALV显示屏幕上加字段&#xff0c;如何实现&#xff1f; 查了一下好像没有什么标准增强能实现&#xff0c;也许有&#xff0c;只是我没找到。。。。 debug ME28时发现了一个BADI ME_CHANGE_OUTTAB&#xff0c;但是很不幸这个是内部使…

如何使用类CL_ABAP_CONTAINER_UTILITIES读取、写入EXTENSIONIN

很多BAPI允许用户将自定义字段通过一个table参数EXTENSIONIN传入BAPI中&#xff0c;比如采购订单创建的bapi BAPI_PO_CREATE1&#xff0c;如下&#xff1a; &amp;lt;img class"alignnone size-medium wp-image-6287" src"http://www.baidusap.com/wp-conten…

如何在物料主数据(MM01/MM02/MM03)中创建屏幕增强

1&#xff0c;在MARA添加自定义字段 把屏幕增强中用到的字段通过tcode SE11 append到MARA表中&#xff0c;如下&#xff0c;append 一个ZMM_MARAA&#xff0c;里面有一些自定义字段 &amp;lt;img class"alignnone size-medium wp-image-6262" src"http://www…
最新文章