自省数据及表存储

2014年4月6日

21:37

 
 

类似JAVA反射的特性

SAP提供自省数据的机制

这样可以保证程序的灵活性和动态性

 
 

1.使用OO中的cl_abap_typedescr等相关class的method

可以达到查看各种数据内部结构的功能

参见REPORT Z_QUERY_PARSER.解析table的结构

2.使用function

DDIF_TABL_GET

查询数据字典中定义的结构

---------------------------------------------------------------------

使用st05查看DDIF_TABL_GET的查询过程

涉及的数据字典定义的表

如果有必要其实都可以自己去查询

DD01L  DD04L 分别对应domain 和 element的信息

DD02L:

表的基本信息
创建者
修改等等

 
 

由此可见 structure  table view之类的定义都是共享的同一张表

想来也应该这样设计  抽象出共同的特征
设置类别
放在一起

 
 

DD03L:

表字段基本信息
是否为key  Element 是啥 Domain是啥 

是否激活  技术信息等等

DD08L:

定义关系

某些字段是否为外键  表检查对应的表

数量关系
等等

(这里DD03L 和 DD08L 也恰好对应了创建表格时
需要维护的多个页签)

 
 

外挂表的维护

2014年4月6日

21:38

 
 

1 通过SM30维护

进入TCODE:SE93建立新TCODE,

tcode类型选择为:"Transaction with parameters(parameter transaction)";

事务栏输入"SM30";选中"跳过起始屏幕";选中"Inherit GUI attribute";

输入默认字段:VIEWNAME = '自定义的表名' 和UPDATE = 'X';保存激活即可;

2 通过RS_TABLE_LIST_CREATE函数建立新程序来建立TCODE

新程序代码如下

report   zjwec026   .

   call function 'RS_TABLE_LIST_CREATE'

          exporting

               action      = 'ANLE'

               table_name = 'ZJW_CC_GZJSQ'

               generation_forced = ' '.

通过View_Maintenance_Call 函数建立新程序来建立TCODE,代码可以参见SAP的标准程序RFT042D_CALL

代码如下

report   rft042d_call.

call function 'VIEW_MAINTENANCE_CALL'

      exporting

           action          = 'S'

           view_name       = 'V_T042D'.

---------------------------------------------------------------------------------------

在维护外挂表的时候

通常都通过生成维护视图来实现

维护视图的代码利用系统的机制  类似代码生成器生成

如果表格有改动需要重新生成(或者更新)

同时由于这部分代码是放在自定义的一个函数组中(所以部分代码是有修改权限的
和 Query 略有差异)

所以也可以从代码层面加入需要的特定功能

例如数据准确性的管控

维护界面文本等的维护

 
 

From <http://xianjun.blog.51cto.com/276780/57852>

 
 

 
 

SM30

2014年8月5日

19:11

 
 

自己创建的数据库表,如果用SM30来维护的话,在SE11创建表格的时候,有2点需要注意的:

1.判断客户是批量维护,还是单个维护。

   在"表格维护生成器"中,"维护类型"选中"一步"单选按钮,维护数据时,就是批量维护;选中"两步"单选按钮,维护数据时,就是单个维护,即分两步.

2.判断客户在生产机维护的数据是否需要传到测试机和生产机。

  在"表格维护生成器"中,"记录例程"选中"标准记录例程"单选按钮时,维护数据时,就会产生请求,这样的话,就可以对数据进行传输;选中"不,或用户,记录例程"单选按钮时,维护数据时,不会生产请求。

 
 

From <http://xvebin666.blog.163.com/blog/static/196884020091038723374/>

 
 

 
 

 
 

另外还有一个配置影响是否要求放入请求

 
 

SCC4

 
 

SCC*

是一组关于client的操作

 
 

附SCC1同一个server上的copy

SCC1

 
 

另外这玩意还控制

SM30视图内容是否可修改

 
 

quan的理解

2014年4月6日

23:26

 
 

se11中建表关于quan

quan表示它是一种数量类型 并且需要有单位才能有意义的

这个单位的来源:(From Web)

对于数量和金额,SAP 要求必须指定单位,这个单位就是由参考表和参考字段来指定的。这样,在运行时,ABAP 运行时环境就可以准确获得这个数字的单位,从而确保谁看到这个数字都不会夸大或缩小。

知道了为什么,接下来就是解释怎么做。

对于数据库表来说:

、参考表是当前表的情况最好解释,某条记录中的数量的单位就是它的参考字段所包含的值,比如 MARA 等主数据表里就是这样;

、如果参考表是另外一个表,则原则上当前表中应该有一个字段将参考表做为外键表来使用,这样,某条记录中的数量的单位就是该记录的外键字段的值在参考表中对应的参考字段的值,比如 T031 这个表就是这样;

、最不可理解的是字段的参考表也不是外键表,我完全不明白它的数值怎么跟单位对应起来,也许是程序控制?这需要 SAP 解释了。这样的例子也有很多,比如 STPO。

对于结构来说:

情况与上面类似,但是更多都是第三种无法解释的定义。

看下vbap中的定义:

vbap中的定义显然就很靠谱
一看就懂

我们自己建表也要有这么个过程 

其实应该是用错了quan

你没事用p 用 int表示数量不就好了

用了quan要么在表中我们自己指定单位 (想vbap中的vrkme一样 unit格式)

要么省事不用

去其他表参考个单位来  只是为了能通过检查而已

没有什么实际意义

另外quan和curr在smartfrom中是无法处理的

两种解决方案:程序中转换和smartform中转换

SE11的更多相关文章

  1. SAP SE11 网格布局显示

    SE11 进入数据显示界面后 在  Settings -> User Parameters,  Data Browser 页面 勾选ALV Grid display 即可.

  2. SAP 锁对象 基本概念与基本操作 SE11

      一.SAP为什么要设置锁:     1,保持数据的一致性     假设几个用户要訪问相同的资源,须要找到一种同步訪问的方法去保持数据的一致性.比方说,在航班预订系统中,须要检查还有没有空座位,当检 ...

  3. 20170224 SE11删除数据

    目的,批量删除错误条目.1.SE11 通过条件找到目标数据,并选中: 2./H 进入debug,回车,更改值 OK_CODE  =  DEL5 F8 运行则出现删除框,

  4. SE11 数据表中 日志数据更改 勾选的作用

        [园工]HF-abap-Rainy(574570549)  11:10:12这个有啥作用,勾上了怎么查修改日志呢,[园丁]SH-CRM-ALEX(8738890)  11:13:53SCU3[ ...

  5. JAVA SE11环境变量配置(Windows)

    附上:03. 安装环境:Windows · IntelliJ IDEA Tutorial 附上:使用调试功能进行 Java debug 附上:Linux(Deepin)下配置java8 - L1412 ...

  6. SAP自定义权限对象

    SAP系统自带了很多的权限对象,每一个运行画面都有非常多的权限用到.不过标准的权限对象并不一定适合于用在客户自己开发的程序里面,所以每个ABAPer都应该会自己开发一套权限对象,并引用在程序代码里面. ...

  7. SAP CRM 在Web UI中创建搜索帮助

    多数情况下,在Web UI为一个特定的字段提供搜索帮助需要在事务SE11中创建搜索帮助. (注:也可以通过在SE24中创建一个类并实现实现IF_BSP_WD_CUSTOM_F4_CALLBACK接口来 ...

  8. 一步步实现ABAP后台导入EXCEL到数据库【2】

    前文:http://www.cnblogs.com/hhelibeb/p/5912330.html 既然后台作业只能在应用服务器运行,那么,我们可以先将要上传的数据保存在应用服务器中,之后再以后台作业 ...

  9. BW知识问答汇总

    什么是sap的星型结构,能不能详细讲解一下? Cube的星型结构中SID技术的优点有哪些? 什么是BW的星型结构,与传统的星型结构的区别是什么? SAP的星型结构相对于传统的星型结构优势? Cube与 ...

随机推荐

  1. android之Spinner控件用法

    用法1: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:too ...

  2. IronPython 设置包路径

    C#中添加对python文件或者对python包的引用时出现"no module .."的问题时的解决办法. 对hello.py 做一些简单的修改 添加 import syssys ...

  3. SQL 去特殊字符

    )) ) as begin declare @i int while patindex('%[^%@+*,=../_ <>''" ^0-9 ^a-Z ^''- ^吖-座]%' , ...

  4. 解决WinForm(C#)中MDI子窗体最大化的问题

    “用MDI方式打开一个子窗口体后,总是不能最大化显示,明明子窗口体的WindowState设置为Maximized?”,相信有很多人会遇到这的样问题,请按下面的方法设置即可使MDI子窗体最大化: 1. ...

  5. C++primer 练习12.6

    编写函数,返回一个动态分配的int的vector.将此vector传递给另一个函数,这个函数读取标准输入,将读入的值 保存在vector元素中.再将vector传递给另一个函数,打印读入的值.记得在恰 ...

  6. jBox 弹出窗口中焦点设置问题

    jBox  是一个不错的组件库,可以用来比较简单地弹出窗口. 我希望在 jBox 弹出窗口之后,自动将焦点设置到子窗口的某个输入框中,可是发现并不容易. 在 jBox 2.3 中,提供了如下的增强. ...

  7. windows server 2008 IP安全策略关闭端口,禁止ping,修改远程连接3389端口,开放指定端口

    windows server 2008 IP安全策略关闭端口:      Tomcat服务访问不了情况解决.    Windows默认情况下有很多端口是开放的,在你上网的时候,网络病毒和黑客可以通过这 ...

  8. adb 命令模拟按键事件 模拟 点击 事件

    有时我们需要程序模拟按钮或点击,而手机本身又没有,哪么可以采取adb 模拟实现,最后再去实际设备去测试(前期一般都拿不到设备): 如模拟上一首,下一首,暂停等,手机上是没有的,但有些设备上是有的: / ...

  9. hibernate使用原生SQL查询返回结果集的处理

    今天没事的时候,看到公司框架里有一个用原生SQL写的函数,说实在以前自己也干过这事,但好久都没有用,都忘得差不多了,现在基本都是用的hql语句来查询结果.hibernate中使用createSQLQu ...

  10. 最小二乘拟合(转)good

    在物理实验中经常要观测两个有函数关系的物理量.根据两个量的许多组观测数据来确定它们的函数曲线,这就是实验数据处理中的曲线拟合问题.这类问题通常有两种情况:一种是两个观测量x与y之间的函数形式已知,但一 ...