`
JerryWang_SAP
  • 浏览: 962438 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

SAP CRM settype的创建,背后发生了什么

阅读更多

来自我的同事Sara。

当我们在CRM系统里创建一个settype之后,其实系统后台悄悄的帮我们创建了很多ABAP对象,比如对应的database tables, other ABAP Dictionary objects, function groups, function modules, and screens等等。
Create set types:

 
 
 
 
 
 

DB check:自动创建了一个和settype ID同名的数据库表

 
 

问题:How this DB generate?
How to check what function groups, function modules, and screens are created? Especially which screens?
When we assign the attributes to the set type, I guess it will insert lines into the table.

Jerry的解答:

当你创建一个新的settype时,product框架会自动生成针对该settype的structure和存储Table, 以及对应的用于CRUD的function module。但是了解框架本身如何实现我前面说的这些事情,对我们接下来做的co deployment没有直接帮助。你的这个问题可以转换成:

假设我只知道product的description字段是通过某个settype实现的,我想不问别人,自己弄清楚该settype的名字和访问该settype的CRUD的function module名字,该如何做?

I got one information from my colleague, the Product Description function is implemented by the SAP standard set type. Then I want to make clear:
(1) Which standard set type implement Product Description and it's DB table?
(2) Which function module (API) implement the CRUD of Product Description?

写在前面:本文提及的方法只限一种思路,不排除个别Assignment Block 不适用的情景,请大家广开思路,积极探索更多的方法来研究,希望能总结出更多的具体API,简化每一个功能的实现。

Product ID: SZIPC (in QHD)
After this self study, I can get a general knowledge of how the product fields implemented in the SAP System.

Then I will start this self study step-by-step by question driven.

(1) Which standard set type implement Product Description?

Try Google it first. Wow, got some information. set type name COMM_PR_SHTEXT.

 
 
 
 

(2) Is it right? How can I display set type?
One way, Google.

Second way, I would like to use SE93 to find transaction code by transaction description, got it!
TCODE: COMM_SETTYPE

 
 

There is some issue, you can not display set type by TCODE: COMM_SETTYPE directly, you can only use COMM_ATTRSET input the set type COMM_PR_SHTEXT first the sue TCODE: COMM_SETTYPE to dispaly.

(3) Then how can I find the DB for this set type and the CRUD function model?

There is 2 ways.

The first way, is to use TCODE: ST05 trace.
I update the description from Material_Sara to Material_SaraZhang. I search with key words 'Material_SaraZhang', then I find the DB--COMM_PORTEXT.

 
 
 
 

The second way, I would like to use TCODE: SE93 find the package of TCODE COMM_SETTYPE.--
Assume,I do not know, Most of the Set Type name = DB Table name.

There must be a table include all the Set Type name and DB Table names, how can I find it?
This is an important thinking point, for every TCODE in SAP, it's a collection of multiple functions /tables/views. Which should be packaged in a package.

 
 

In the package, there is multiple DB, from the DB description, you can know COMC_SETTYPE is the admin table which include all information we want.--Admin table and header table always as the start and base point of DB relationship.

 
 

Filter by the set type name** COMM_PR_SHTEXT**, we found the set type DB COMM_PRSHTEXT and related function module.

 
 

(4) How the function module work when I read the product description?

TCODE: SE37 find COM_COMM_PR_SHTEXT_READ_WITH_P and set breakpoint.

 
 

search Product ID: SZIPC

 
 

in WebClient UI.

Follow the call stack, find the key API for read product set types.


 
 
 
 

(5) How the function module work when I Update the product description?

Function Module: COM_COMM_PR_SHTEXT_MAINTAIN_UP
Follow the call stack, find the key API for update product set types.

 
 

(6) I will try to simplify this function module, pick this function into a report for confirming how does this CALL FUNCTION 'CRM_PRODUCT_UI_GETDETAIL' work?

This is the key function for processing product set types.

We'd better to understand it's indeed input value
One, is product guid in a structure.
Two, is the set type name.
It means that, any set type can read by this function.

 
 

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

 


作者:JerryWangSAP
链接:https://www.jianshu.com/p/313662186bd3
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
0
0
分享到:
评论

相关推荐

    AndroidTest_ProgressBar_DialogProgress_AlertDialog

    工程涉及知识点: 1、ProgressBar的三种启动方式: 1)主线程直接使用ProgressBar 的资源 2)主线程动态创建...ad.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 跳转采用intent即可

    JDT生成代码实例

    mainParameter.setType(ast.newArrayType(ast.newSimpleType(ast.newName("String")))); main.parameters().add(mainParameter); //创建Pragram对象: Program program=new Program(); //创建一个变量声名明...

    Setv_pnProxy v1.0【PPoE-v_pn-代理自动设置工具】

    Setv_pnProxy是一款可以自动创建ppoe、v_pn[支持协议p p t p/l2tp/sstp/ikev2]和设置IE代理IP的小工具仅使用cmd命令行、批处理、编程方式运行本程序时添加相关参数即可即时生效带设置返回值并且不弹出连接窗口。...

    AngularJS服务service用法总结

    主要介绍了AngularJS服务service用法,结合实例形式总结分析了服务Service的概念、功能及自定义服务的相关操作技巧,需要的朋友可以参考下

    Android功能代码

    intent.setType("vnd.android.cursor.dir/contact"); startActivity(intent); 6.打开通话记录 Intent intent = new Intent(Intent.ACTION_VIEW); intent.setType("vnd.android.cursor.dir/calls"); startActivity...

    (有向)图的深度优先遍历算法模板算法(java源码)

    e.setType(TREE);//e被归类为“树边” traverse(u, info);//从u出发,继续做深度优先查找 break; case DISCOVERED ://若u已经被发现,但对其访问尚未结束,则 e.setType(BACKWARD);//将e...

    ftp4j-1.3.1下载

    可以将ftp4j嵌到你的Java应用中,来传输文件(包括上传和下载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过...

    对话框分隔管理器的实现(VC)

    m_SplitH.SetType(SPLIT_MANAGER_TYPE_H); //设置分隔条的厚度 m_SplitH.SetThickness(5); //设置左窗口 m_SplitH.SetFirstChildDialog( &m_LeftWnd, 40/*左子窗口占父窗口宽度的40%*/, IDD_DIALOGL); ...

    typescript-builder:使用文字类创建方法的打字稿构建器模式和示例

    编译打字稿:npm运行tsc节点索引 ... setType(type: string): AnimalBuilder<A> { let inst = this.getInstance() ; inst.Type = (type || "animal"); return this; } setkingdom(kingdom: string)

    emailappgridlayout-KristoffRey:由Classroom为GitHub创建的emailappgridlayout-KristoffRey

    我的电子邮件应用程序网格布局版本! 该应用程序将带有指定... i.setType("message/rfc822"); i.putExtra(Intent.EXTRA_EMAIL, new String[] {target}); i.putExtra(Intent.EXTRA_SUBJECT, subject); i.putExtra(Intent

    JAVA访问firebird数据库之Jaybird-2.1.6JDK_1.5+相关DLL文件+使用方法

    dataSource.setType("EMBEDDED");改为dataSource.setType("LOCAL") 【位于DataSourceExample.java源文件中,如果不修改,则显示不能连接成功】 其次: java中连接文件的写法: driverName = "org.firebirdsql....

    jdbc基础和参考

    1.写一条恒成立的select语句,无论你输入的条件是什么,总是能讲表中的所有数据输出 select id,last_name from s_emp where '1' ='1'; where 1=1; findByOption(Integer age,String province,String gender){ ...

    polonium-chart-view-支持多条曲线的线形图表控件,简单好用.zip

    支持多条曲线的线形图表控件,简单好用。当点超出屏幕宽度时可拖动。可自定义点、线的样式。对于简单的曲线图标,这是个不错的选择。... point.setType(Type.TRIANGLE);  line.addPoint(point); }

    inote记事工具android客户端

    intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_SUBJECT, note.title); intent.putExtra(Intent.EXTRA_TEXT, note.content); Intent.createChooser(intent, "Share"); startActivity(intent); } ...

    Android中Window的管理深入讲解

    Android 中的每个窗口 View 都有一个对应的 Window,例如 Activity、Dialog,在他们初始化的时候就会为其创建对应的PhoneWindow 并赋值到其内部的一个引用 window 的层级 WindowLayoutParams.setType 设置

    FTP 文件的上传下载

    在edtftpj中有个FTPClient类,此类可以实现ftp的上传。用到的几个函数说明如下: 1、构造函数 FTPClient... 4、setType(FTPTransferType.BINARY) //设置传输类型 5、mkdir("文件夹名") //在ftp当前目录下新建一个目录

    php设计模式 Builder(建造者模式)

    复制代码 代码如下: <?php /** * 建造者模式 * * ... public function setType($type) { echo “set product type ”; $this->_type = $type; } public function setSize($size) { echo “set product size<b

    自定义相机实现连拍

    .setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); surfaceView.getHolder().setFixedSize(176, 144); //设置Surface分辨率 surfaceView.getHolder().setKeepScreenOn(true);// 屏幕常亮 surfaceView....

    Android如何通过URI获取文件路径示例代码

    前言 最近在工作的过程中,遇到不同 Android 版本下 URI 采用不同方式来获取文件路径的问题。 因为需求的原因,要求拍照上传或者从相册中选择图片上传,而且图片是需要...intent.setType(image/*); startActivityFor

    android-将内容分享到自己的app

    intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_SUBJECT, "分享"); intent.putExtra(Intent.EXTRA_TITLE, mTitle.getText().toString()); intent.putExtra(Intent.EXTRA_TEXT, mContent....

Global site tag (gtag.js) - Google Analytics