CRM开发
文章平均质量分 56
范叉叉
这个作者很懒,什么都没留下…
展开
-
CRM加下拉框里面的值
METHOD get_v_XXXXX. TYPES:BEGIN OF ty_dd07t, ddtext TYPE dd07t-ddtext, domvalue_l TYPE dd07t-domvalue_l, END OF ty_dd07t. DATA: lt_ddlb TYPE bsp_wd_dropdown_ta原创 2017-07-13 15:41:49 · 622 阅读 · 0 评论 -
订单的附件相关表关系
CRMORDERPHF 根据PHIO_ID获取文档的基本信息CRMURLLOIO 根据LOIO_ID获取url的基本信息CRMURLPHIO PHIO_ID 与URL的LOIO_ID关系表CRMORDERPHIO根据PHIO_ID获取 PH_CLASS LOIO_ID LO_CLASS , 即PHIO_ID与文档的LOIO_I原创 2016-12-05 14:31:54 · 898 阅读 · 0 评论 -
CRM事件增强补遗
最近的开发过程中,关于事件增强总结了一些看法,和大家分享下。event是只有具体定了一定条件,才会在满足这个条件的时候触发那个相应的func。也就是说,如果你不配,是肯定不会触发的。系统标准的func基本都是_EC结尾的,这些func的逻辑很清晰,如果想改,可以直接复制。最主要的是它的那些传入传出参数要一致,这样才好代替。另外,每个标准的func都属于一个函数组,你可以看看其他相关函数是干嘛的原创 2016-12-14 20:05:20 · 881 阅读 · 0 评论 -
BOL简单分析(一)
BOL其实是一系列接口和函数的总称。目的是为了更新crm的一些bapi的使用,实现crm的所有功能。有一些比较常见或者重要的classCL_CRM_BOL_QUERY_SERVICE查询用到的。CL_CRM_BOL_ENTITY存放数据实体,增删改查需要用到。IF_BOL_TRANSACTION_CONTEXTYou use thisinterface to contr原创 2016-11-15 19:50:12 · 4600 阅读 · 0 评论 -
1Order Event Handler guide
The 1Order event handler is available for customers in IMG under CRM->Transactions->Basic Settings->Transactions->Edit Event Handler Table.However the documentation is rather short.Find here a转载 2016-12-01 14:45:45 · 1255 阅读 · 0 评论 -
自建组件加Saved Search
UI提供保存搜索条件的功能,标准组件是可以直接用的,如果是自建组件,就要写些代码做些配置了。核心的一个组件就是系统标准组件CRM_SAVEDSEARCH。首先我们需要把这个组件添加到自建组件的项目里面,原创 2016-11-06 23:07:03 · 742 阅读 · 0 评论 -
BSP自开发文件下载的一个demo
* event handler for data retrievalDATA lv_string TYPE string.DATA lv_xstring TYPE xstring.DATA lv_xlength TYPE i.DATA lv_name TYPE string .DATA lv_value TYPE string .lv_string = '测试数据'.CALL F原创 2016-10-17 20:01:53 · 1172 阅读 · 0 评论 -
关于合伙人功能类型
CRMD_ORDER_INDEX这个表有一些字段很有意思。原创 2016-09-23 17:39:56 · 1426 阅读 · 0 评论 -
CRM事件增强
上一篇转载了SDN上面的一篇博文。写的非常棒,将event的事情说的很透彻。这篇就实际谈谈具体是怎么操作的,多说无益,直接上代码。使用事务代码CRMV_EVENT,创建一个如下的事件功能:交易类别 BUS2000115 销售执行时间 30 抬头处理结束优先级 自己定对象名称 ORDERADM_H原创 2016-12-06 20:01:16 · 1358 阅读 · 1 评论 -
读取订单信息中增强table的写法
CALL FUNCTION 'CRM_ORDER_READ'原创 2017-01-13 17:51:45 · 467 阅读 · 0 评论 -
UI上面给字段加搜索帮助
METHOD get_v_XXXXX. DATA: ls_map TYPE if_bsp_wd_valuehelp_f4descr=>gtype_param_mapping, lt_inmap TYPE if_bsp_wd_valuehelp_f4descr=>gtype_param_mapping_tab, lt_outmap TYPE if_bsp_wd_原创 2017-07-13 11:06:15 · 641 阅读 · 0 评论 -
一个BDoc问题的解决思路
配了一个bdoc,取客户账户组的。然后初始化运行。SMQ1报错,【SY359】。选中这一行,用debug形式看具体是怎么回事。跟踪路线CRS_CUSTOMIZING_SEND_TO_SERVER-》CRS_SEND_TO_SERVER-》CRM_FIRST_CALL_OPERATIONS71行代码* Raise an error if the destination of th原创 2017-04-28 15:50:08 · 688 阅读 · 0 评论 -
BOL简单分析(二)
关于Display Mode从CRM5.0开始,BOL带有了一个Display Mode。目的就是防止误操作BOL数据。最终是改变了core的一个参数IV_DISPLAY_MODE_SUPPORT =ABAP_TRUE.不过,在调用start_up的时候,默认是非显示模式,也就是可改。代码示例:* Start BOL core withdisplay mode suppor原创 2017-03-13 19:45:59 · 1989 阅读 · 0 评论 -
一个订单状态问题的解决思路
今天有人反馈一个生产问题。说某个订单不能做任何操作,一保存页面就报错。处理您的查询时出错***********************************************************************************************************************************************发生了什么原创 2017-03-29 15:27:39 · 2576 阅读 · 0 评论 -
UI获取业务角色
DATA: lr_ui_profile TYPE REF TO if_crm_ui_profile, l_ui_profile_name TYPE string, l_role_name TYPE agval. lr_ui_profile = cl_crm_ui_profile=>get_instance( ). l_ui_pro原创 2017-02-16 11:11:35 · 481 阅读 · 0 评论 -
一个重定义on_new_focus的例子
CALL METHOD super->on_new_focus EXPORTING focus_bo = focus_bo. CLEAR a. CLEAR b. CHECK focus_bo IS BOUND. CALL METHOD focus_bo->get_property_as_value EXPORTING原创 2017-02-28 16:36:49 · 781 阅读 · 0 评论 -
BOL的使用例子
这个例子演示了怎么获取BOL的数据。DATA iv_guid TYPE crmt_object_guid.iv_guid = '*********************************'.CHECK iv_guid IS NOT INITIAL .DATA lv_bol_core TYPE REF TO cl_crm_bol_core.lv_bol_core =原创 2017-02-16 17:21:05 · 1469 阅读 · 0 评论 -
CRM状态相关表
TJ30 是用户状态TJ30T是文本翻译CRM_JCDOCRM_JCDSCRM_JESTCRM_JSTO这4个表存的基于guid给出相应的状态。原创 2017-02-16 11:40:23 · 715 阅读 · 0 评论 -
AET增强失败自救
找到增强的ID,运行SE38程序【AXT_EXT_GENERATE】。找不到ID也没关系,点输入条件可以出来搜索帮助,拉到最后看日期时间账号一致的。原创 2017-02-05 15:50:23 · 854 阅读 · 0 评论 -
IBase的几个常用函数
CRM_ICSS_CREATE_COMPONENT CRM_IBASE_COMP_CHANGECRM_IBASE_SAVECRM_IBASE_FREECRM_IBASE_COMP_GET_DETAIL。。。。。。。。。。。。。。。。。。。。。。。主要看以下两个函数组CRM_ICSS_IBASEIB_CRM_API原创 2016-08-26 09:30:43 · 793 阅读 · 0 评论 -
UI里面excel数据上传并解析的例子(XML格式)
上次说到在UI里面解析CSV格式的EXCEL例子,这次说说解析XML格式的。这次用到ABAP里面的正则表达式,具体的用法可以看我上一篇的转帖。我们还有一个标准程序【DEMO_REGEX_TOY】可以用来试验自己写的正则表达式对不对。页面上需要一个上传控件。<thtmlb:fileUpload id = "fileUpload1"原创 2016-07-12 17:49:35 · 676 阅读 · 0 评论 -
CRM开发要点(二)
本文主要阐述Business Roles 业务角色。业务角色是UI的一个重要概念。80%的UI配置都和业务角色有关。可是在SPRO中逐层找到这个配置程序,也可以使用事物代码CRMC_UI_PROFILE。从图示就可以看出,业务角色有哪些功能。下面就将逐个解释每个功能的用处。一般常用的或者说系统已经设计好的业务角色有以下这些。• SALESPRO (S原创 2016-05-05 09:16:20 · 1887 阅读 · 0 评论 -
CRM开发要点(一)
从本文开始陆续整理下CRM的开发要点。CRM的UI基本框架如下图所示。A顶部标题区域;B左侧导航区域;C中间工作区域。AB连在一起SAP称为L形区域,这一块的内容是由系统管理的,用户基本不能自定义。如上图标记的内容为L形区域的主要功能,这些功能都可以用SPRO配置。现在主要介绍下C区域。一般来说通过点击B导航区域都是会指向某个特定的Work Cent原创 2016-05-04 10:29:31 · 8475 阅读 · 2 评论 -
如何给字段增加搜索帮助
这个问题只需要重定义字段的V方法就行。如果可选的值比较少,想换成下拉框的效果,可以在P方法里面这样写。 METHOD get_p_. CASE iv_property. WHEN if_bsp_wd_model_setter_getter=>fp_fieldtype. rv_value = cl_bsp_dlc_view_descriptor=>field原创 2016-04-22 17:14:58 · 3466 阅读 · 1 评论 -
解决Table不能多选问题
原来Table是不能多选的,不管你怎么设置。原因是View的BUILD_TABLE函数。这个函数用来对table的一些关键变量做设定。看到代码的这些行,也就是说,如果SELECTION_MODE不是ME->SELMODE_MULTI ,或者ME->SELMODE_MULTIEDIT,那么就不会ME->COLLECTION_WRAPPER->I原创 2016-04-21 11:02:16 · 1495 阅读 · 0 评论 -
如何实现两个View间的跳转
首先建立两个页面在前者页面建OP 后者建IP将这两个页面都引入Window然后建立跳转关系在OP里面要写一条很重要的代码 me->view_manager->navigate( source_rep_view = me->rep_view outbound_plug = 'a2b' ).原创 2016-04-20 15:27:13 · 952 阅读 · 0 评论 -
UI用到的一些表或视图
WebClient UI -Application Frame tablesCRMC_UI_PROFILEProfileCRMS_UI_OBJ_MAPObject MappingSupportCRMS_UI_TLINKTechnical LinkDefinitionCRMC_UI_COMP_IPComponent InboundPlug DefinitionHR转载 2016-04-20 15:18:28 · 1039 阅读 · 0 评论 -
如何让自建组件可以在导航栏使用
直接使用交易启动器根据URL做当然没问题.那么另一个标准方案是这样的,首先给你的自建组件的window建个IP,比如这样,之后到SPRO,定义工作区域组件库,把自建的组件加进去。然后做Targetid。这个时候Targetid就可以在导航条参数文件中被选择了。原创 2016-04-19 15:42:32 · 889 阅读 · 0 评论 -
一个简单的UI动态查询报表例子
写一个动态查询报表,有很多种快速的方法,比如组件里面的向导形式,AXT里面的快速程序形式,这里说的是自己一步步建立的形式。首先,你需要建一些BOL,最好是自建个组件集,这个前文有阐述,这里就不赘述了。下面演示的就是一步步建立一个简单的动态查询报表的过程。原创 2016-05-25 17:28:07 · 2261 阅读 · 1 评论 -
自定义BOL组件集
为了便于管理,建议还是专门为自建BOL做一个单独的组件集。原创 2016-05-26 09:23:59 · 1343 阅读 · 0 评论 -
CRM开发要点(三)
本文主要阐述Navigation Bar 导航栏参数文件。UI的主要配置内容就是导航栏参数文件。下图显示了导航栏参数文件的主要内容及内在关系。简要说明下整个导航条参数文件。一个导航条参数文件可以包括多个工作中心,直接链接组,可以挂一个初始逻辑链接;一个工作中心必然对应一个逻辑链接,同时也可以下挂多个工作中心链接组;一个直接链接组可以下挂多个逻辑链接;一个工作中心链接组可以下原创 2016-05-09 09:57:34 · 1854 阅读 · 0 评论 -
CRM开发要点(四)
本文主要阐述UI组件,genIL和BOL。先说下这张图。从下往上看,后台具体的表的操作,由CRM包装为一系列的API;这些API再进一步包装为genIL(generic interaction layer);genIL可以在一步由CRM包装出BOL(business object layer),当然开发人员自己也可以建BOL;这些BOL绑定到UI组件MVC架构中的M上;UI组件实例化后就是原创 2016-05-20 15:26:30 · 2293 阅读 · 0 评论 -
CRM开发要点(六)
本文主要阐述增强部分的内容。增强的主要事务如下图所示。正常的情况下,你需要配置一个开发包,一个存放增强表的UI组件。前缀有ABC三个,正常情况下,A用完换B,B用完换C,足够用了。在CRM里面,我们有很多地方可以增强,上图就是增强这些地方相应需要使用的功能。先说AET(Application Enhancement Tool).原创 2016-06-22 16:39:14 · 2970 阅读 · 0 评论 -
UI里面excel数据上传并解析的例子(CSV格式)
可以参考系统的例子 CRM_THTMLB_COMP/FileUploadTag 。下面的是一个简单的CSV格式示例。METHOD eh_onuploadfile. DATA lv_flag TYPE char1. DATA lv_value TYPE string .***实例化前台消息容器* ----------------------------------------原创 2016-07-07 16:42:44 · 1201 阅读 · 0 评论 -
CRM开发要点(八)
本文主要谈UI用到的皮肤,图标,layout这些。UI界面有很多风格,对应的配置功能在这里。官方建议是复制标准的皮肤进行修改,如果自己家有美工也可以自己做的。右键可以下载某个或某组文件。这是一些关键CSS的使用描述。•thtmlb_core_stand.css: This is the basic style sheet that is原创 2016-07-27 10:20:09 · 1095 阅读 · 0 评论 -
CRM订单表关系
不断补充中。。。。。。原创 2016-05-03 11:55:28 · 1337 阅读 · 0 评论 -
CRM开发要点(七)
本文主要总计下CRM增强的一些技术点。先看这个图,此图为CRM增强的路线图,所有的UI增强都是沿着这个思路做下来的。【SM34】 -》【BSPWDVC_CMP_EXT 】建 enhancementset。下面的图是一个增强的简单步骤示例。下图的示例指如果我们增强了一个组件,整个增强动作具体做了哪些事情。此外CRM还提供了一原创 2016-07-25 17:03:57 · 1139 阅读 · 2 评论 -
删除用户自定义配置
某些情况下,比如增加了报表的字段,如果用户已经做过自定义设置,系统判断如果有用户自定义设置那么默认设置就无效,意味着用户看不到新增的这些字段。如果需要删除用户自定义设置,可以运行程序【BSP_DLC_DELETE_PERSONALIZATION】。尽量增加筛选条件,这个删除是不可逆的。原创 2016-05-23 18:04:10 · 895 阅读 · 0 评论 -
UI配置的代码实现
如果业务角色很多,RCK也很多,那么可能UI配置就非常多。当然可以通过复制配置实现快速的把所有配置建立起来,如果产品或者关键用户或者其他负责这个配置的人员不想去做,希望通过代码实现呢?也是可以的。这个就用到了View的DO_CONFIG_DETERMINATION事件。示例如下,这个是在BP_HEAD里面做的重定义。METHOD do_config_determination. CA原创 2016-05-23 17:42:23 · 1316 阅读 · 1 评论 -
从自建页面跳转到标准订单或者BP页面的例子
以一个Table中跳转为例。首先是在P函数中增加事件。METHOD get_p_object_id. DATA: current TYPE REF TO if_bol_bo_property_access. DATA sstr TYPE string . current = collection_wrapper->get_current( ). CALL METHOD cu原创 2016-05-11 11:31:11 · 2847 阅读 · 0 评论