使用代码生成具有层级结构的IBASE
Created by Jerry Wang on Aug 01, 2014
维护待生成的IBASE description,external ID。 该report会为生成的IBASE 创建一个Object component,因此还需要维护一个individual object ID。
执行report后打印成功生成的IBASE ID:
通过IBASE ID在UI上成功搜索出report创建的IBASE:
Object component里维护的object ID即为report的输入。
report source code如下:
*&---------------------------------------------------------------------*
*& Report ZIBASE_CREATE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zibase_create.
PARAMETERS: txt TYPE char40 OBLIGATORY DEFAULT 'description test',
eid TYPE char30 OBLIGATORY DEFAULT 'PROGRAM',
oid TYPE comm_product-product_id OBLIGATORY DEFAULT 'CHILDOBJ8'.
DATA: lt_param TYPE crmt_name_value_pair_tab,
ls_param TYPE crmt_name_value_pair,
lr_core TYPE REF TO cl_crm_bol_core,
ls_object TYPE comm_product,
lr_root TYPE REF TO if_bol_entity_col,
entity TYPE REF TO cl_crm_bol_entity.
ls_param-name = cl_crm_ibase_il_constant=>createparam.
ls_param-value = '01'.
APPEND ls_param TO lt_param.
lr_core = cl_crm_bol_core=>get_instance( ).
lr_core->load_component_set('IBASE_ONLY').
CALL METHOD lr_core->root_create
EXPORTING
iv_object_name = cl_crm_ibase_il_constant=>root_object
iv_create_param = lt_param
iv_number = 1
RECEIVING
rv_result = lr_root.
CHECK lr_root IS BOUND.
entity ?= lr_root->get_current( ).
CHECK entity IS BOUND.
IF entity->lock( ) = abap_true.
entity->switch_to_change_mode( ).
ENDIF.
entity->set_property_as_string( iv_attr_name = 'DESCR' iv_value = CONV #( txt ) ).
entity->set_property_as_string( iv_attr_name = 'EXTID' iv_value = CONV #( eid ) ).
"entity->set_property_as_string( iv_attr_name = 'IBTYP' iv_value = '01' ).
lr_core->modify( ).
DATA(lv_ibase_id) = entity->get_property_as_string( 'IBASE' ).
DATA(component) = entity->create_related_entity( 'FirstLevelComponent' ).
CHECK component IS NOT INITIAL.
DATA(obj_comp) = component->create_related_entity( 'IBCompObj').
CHECK obj_comp IS NOT INITIAL.
obj_comp->set_property_as_string( iv_attr_name = 'OBJECT_ID' iv_value = CONV #( oid ) ).
SELECT SINGLE * INTO ls_object FROM comm_product WHERE product_id = oid.
ASSERT sy-subrc = 0.
obj_comp->set_property_as_string( iv_attr_name = 'OBJECT_GUID' iv_value = CONV #( ls_object-product_guid ) ).
obj_comp->set_property_as_string( iv_attr_name = 'OBJECT_FAMILY' iv_value = CONV #( ls_object-product_guid ) ).
lr_core->modify( ).
DATA(lo_message_container) = entity->get_message_container( ).
CALL METHOD lo_message_container->get_messages
EXPORTING
iv_message_type = if_genil_message_container=>mt_all
IMPORTING
et_messages = DATA(lt_msg1).
LOOP AT lt_msg1 ASSIGNING FIELD-SYMBOL(<msg1>).
WRITE:/ <msg1>-message COLOR COL_NEGATIVE.
ENDLOOP.
CHECK lt_msg1 IS INITIAL.
DATA(lo_transaction) = lr_core->get_transaction( ).
DATA(lv_changed) = lo_transaction->check_save_needed( ).
CHECK lv_changed EQ abap_true.
DATA(lv_success) = lo_transaction->save( ).
DATA(lo_glb_msg_cont) = lr_core->get_global_message_cont( ).
CALL METHOD lo_glb_msg_cont->if_genil_message_container~get_messages
EXPORTING
iv_message_type = if_genil_message_container=>mt_all
IMPORTING
et_messages = DATA(lt_msg).
LOOP AT lt_msg ASSIGNING FIELD-SYMBOL(<msg>).
WRITE:/ <msg>-message.
ENDLOOP.
IF lv_success = abap_true.
lo_transaction->commit( ).
WRITE:/ 'IBASE Created Successfully: ', lv_ibase_id COLOR COL_NEGATIVE.
ELSE.
lo_transaction->rollback( ).
ENDIF.
使用代码生成具有层级结构的IBASE相关推荐
- 三级结构_kegg pathway三级层级结构转对应表格
先上图,如果不是需要的就可以不用往下看了. 首先是什么样的层级结构,如下图,有些长,不完整,完整的图太长上传不了,打开链接https://www.genome.jp/kegg/pathway.html ...
- DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、预测
DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练.预测 导读 计算图在神经网络算法中的作用.计算图的节点是由局部计算构成的. ...
- DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、GC对比
DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练.GC对比 导读 神经网络算法封装为层级结构的作用.在神经网络算法中,通过将 ...
- DL之CNN:卷积神经网络算法简介之原理简介(步幅/填充/特征图)、七大层级结构(动态图详解卷积/池化+方块法理解卷积运算)、CNN各层作用及其可视化等之详细攻略
DL之CNN:卷积神经网络算法简介之原理简介(步幅/填充/特征图).七大层级结构(动态图详解卷积/池化+方块法理解卷积运算).CNN各层作用及其可视化等之详细攻略 目录 CNN 的层级结构及相关概念 ...
- linux 进程间通信 dbus-glib【实例】详解三 数据类型和dteeth(类型签名type域)(层级结构:服务Service --> Node(对象、object) 等 )(附代码)
linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...
- CVPR 2022 | CNN自监督预训练新SOTA:上交、Mila、字节联合提出具有层级结构的图像表征自学习新框架...
©作者 | 机器之心编辑部 来源 | 机器之心 来自上海交通大学.Mila 魁北克人工智能研究所以及字节跳动的研究者提出了一种具有层级语义结构的自监督表征学习框架,在 ImageNet 数据集上预训练 ...
- SAP Spartacus Organization Unit User页面的实现层级结构
右边这个页面的实现细节: 层级结构如下: (1) cx-org-unit-user-list, Component为UnitUserListComponent: (2) cx-org-sub-list ...
- linux文本运行层次,Linux基础知识之---文件系统层级结构
#Linux基础知识之---文件系统层级结构 @(Linux系统)[基础知识,文件系统,层级结构,FHS] 一切皆文件: 在Linux中,无论是目录.配置.cpu.内存.键盘.鼠标.或者运行中的系统及 ...
- Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (13) - 缓存层级结构
Cache Hierarchy 每个处理器核中,高速缓存的层级结构包括一级指令缓存LII,一级数据缓存LID,以及二级缓存.如果开启了Intel超线程技术,数据缓存有可能被两个逻辑处理器共享使用.二级 ...
最新文章
- 4104 oracle 数据文件名,Oracle 11g 常遇到ora-01034错误,这是为什么?
- 帧中继-实验(第三篇)
- python使用正则表达式验证邮箱地址语法有效性
- Docker端口映射错误的解决方法
- 慕尼黑工业大学最新综述:深度神经网络中的不确定性
- Android之动画
- 移动端网站,键盘弹出对页面的影响
- js遍历对象的key和value
- Keras官方中文文档:Keras安装和配置指南(Windows)
- andriod studio 启动service失败_惊呆了!女儿拿着小天才电话手表,问我Android启动流程!...
- 打开其他软件时,老是弹出Xftp6安装的问题
- Excel图表坐标轴出现系列1、系列2的解决方案
- 4.19 C语言练习(已有一个已正序排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中)
- AppOps命令分析
- java爬虫实战——实现简单的爬取网页数据
- 点击刷新按钮实现listview的数据刷新
- pdfpcell 怎么设置单元格大小_word怎么设置单元格大小
- UT,UTC,GMT时间区别
- LCD液晶屏接口和显示器接口介绍
- win10中maven的配置
热门文章
- svn 与 vs2010
- Js实现拖拽 --面向对象封装( 超详细中文注释)
- SSH-permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)
- Testng 测试框架源码阅读(二)
- 概率潜在语义分析(pLSA) 相关知识
- python学习高级篇(part8)--类对象的特殊方法
- sklearn自学指南(part8)--普通最小二乘法
- Django(part42)--限制IP请求次数
- 20应用统计考研复试要点(part39)--概率论与数理统计
- 《统计学:从数据到结论》学习笔记(part2)--总体是人们所关心的所有个体的集合