`
JerryWang_SAP
  • 浏览: 1043626 次
  • 性别: 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
分享到:
评论

相关推荐

    超简单实现分享功能源码

    为此,可以修改setType方法的参数,如`setType("image/*")`表示分享图片,`setType("video/*")`表示分享视频。同时,使用`putExtra`方法添加对应的共享数据,如图片Uri或视频Uri。 为了提高用户体验,我们可以预先...

    AndroidTest_ProgressBar_DialogProgress_AlertDialog

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

    Qt控件增加属性并能过添加的属性设置样式

    这样,当我们创建`StyledButton`实例时,可以通过`setType()`设置`type`属性,QSS会根据这个属性自动应用相应的样式。 为了更好地理解这个过程,让我们看一个具体的使用场景。假设你有一个界面,需要两种不同风格的...

    android 分享popup实现源码.rar

    在Android开发中,"分享popup实现源码"通常是指如何创建一个弹出式窗口(PopupWindow)来展示分享选项,让用户能够将内容分享到不同的应用或平台。PopupWindow是Android SDK提供的一种轻量级的弹出组件,它可以悬浮...

    zk组件详解

    用于创建页面底部的信息显示区域,常用于放置版权声明、联系方式等信息。 - **示例代码**: ```java // 创建一个FooterElement实例 FooterElement footer = new FooterElement(); footer.setContent("版权所有 ...

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

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

    android打开本地图像的方法

    这里,`setType("image/*")`指定了我们想要处理的是所有类型的图像,`ACTION_GET_CONTENT`是一个标准的操作,用于获取用户选择的内容。最后,通过`startActivityForResult()`启动这个意图,传入请求码`1`,这样在...

    详解java创建一个女朋友类(对象啥的new一个就是)==建造者模式,一键重写

    Java 建造者模式是一种创造模式,用于解决复杂对象的创建问题。通过使用建造者模式,可以将复杂对象的创建过程分步骤,提高代码的可读性和灵活性。 在 Java 中,建造者模式通常是通过创建一个建造者类来实现的。...

    AngularJS服务service用法总结

    首先,我们需要了解什么是AngularJS服务Service。在AngularJS中,服务是一个单例对象或函数,它能够执行特定的任务或提供特定的功能。每个服务都是独立的,可以注入到应用的任何部分,而且每个AngularJS应用只能创建...

    Java 创建并应用PPT幻灯片母版的方法示例

    Java 创建并应用 PPT 幻灯片母版的方法示例 幻灯片母版是 PowerPoint 文档中的一种重要组成部分,它允许用户设置幻灯片的样式,例如标题文字、背景、属性等。本文将介绍如何用 Java 创建并应用单个或多个幻灯片母版...

    分享弹出Dialog

    `setAction()`指定ACTION_SEND,表明我们要执行发送操作,然后通过`setType()`设置分享内容的类型。 总结来说,"分享弹出Dialog"的实现涉及到Android的Dialog组件、自定义布局、Intent以及事件监听等技术。通过这些...

    java jackcess 操作access

    1. **创建表**:在Access数据库中创建新的表结构是可能的。你可以定义表的列,包括列的数据类型(如文本、数字、日期等)、主键设置以及任何其他约束。例如,你可以创建一个名为"Employees"的表,包含"ID"(主键)、...

    android資料

    根据提供的文件信息,我们可以深入探讨如何在Android应用中利用内置日历功能来创建事件通知。以下将详细解析涉及的关键知识点: ### 一、利用Android内置日历创建事件通知 #### 1. 概述 在Android开发中,利用内置...

    常用Intent

    1. 创建一个`Uri`,其中包含要卸载的应用包名。 2. 使用`ACTION_DELETE`动作创建一个Intent。 3. 启动该Intent。 示例代码如下: ```java Uri uri = Uri.fromParts("package", strPackageName, null); Intent it =...

    phplot-5.7.0.zip

    4. **选择图表类型**:调用相应的绘图方法,如`SetType('lines')`来创建线图,或`SetType('bars')`创建条形图。 5. **自定义样式**:根据需要调整图表的样式,例如更改线条颜色、设置数据标签等。 6. **绘制图表**:...

    Java创建、识别条形码和二维码方法示例

    Java创建、识别条形码和二维码方法示例 本文主要介绍了Java创建、识别条形码和二维码的相关资料,通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值。 条形码的概念和类型 条形码...

    Android调用系统分享图片文字封装

    在调用系统分享时,我们通常会创建一个隐式Intent,因为它可以被多个能处理特定类型数据的应用所响应。 1. **创建Intent** 在Android中,创建一个用于分享的Intent通常涉及到以下步骤: - 使用`Intent....

    Android系统分享功能实现

    使用`setType()`方法设定分享的数据类型,如`setType("text/plain")`表示分享纯文本,`setType("image/*")`则表示分享图片。正确设置类型有助于系统找到能够处理该类型数据的应用。 4. **启动分享Intent**: 调用...

    android窗口式activity

    这样的Activity在某些场景下非常实用,比如创建聊天窗口、悬浮小部件或者实现多任务操作。 一、窗口式Activity的实现原理 窗口式Activity主要通过以下两种方式实现: 1. 使用`SYSTEM_ALERT_WINDOW`权限:这个权限...

    onekeyshareDemo

    在"ShareDemo"这个项目中,开发者可能创建了一个简单的Activity,该Activity包含了触发分享操作的按钮。当用户点击这个按钮时,会触发一个Intent的创建。以下是一个基本的代码示例: ```java Intent shareIntent = ...

Global site tag (gtag.js) - Google Analytics