ABAPbom扩展程序
SAP bom展开例程
(txt format), open this local file use other tools, e.g. Microsoft Access, in
SELECT * FROM MAST WHERE WERKS = IWERKS
AND MATNR IN IMATNR
AND STLAN = ISTLAN.
IMAST-MATNR = MAST-MATNR.
SELECT SINGLE * FROM MAKT WHERE MATNR = MAST-MATNR.
102 istpo-maktx,143 istpo-ausch,
154 istpo-posnr.
endloop.
endloop.
endloop.
uline.
endloop.
系统报没有:ZSDIAUTH
那一部分是我们自己的权限检查,你把它‘*’掉就可以了
众多BOM组件一次性导出系统的处理
stlkn like stas-stlkn,
end of istas.
data: begin of istpo occurs 0,
stlnr like stpo-stlnr,
menge like stpo-menge,
meins like stpo-meins,
idnrk like stpo-idnrk,
endselect.
LOOP AT IMAST.
SELECT SINGLE * FROM STKO WHERE STLNR = IMAST-STLNR
sap-abap面试知识点总结
1)PROCESS BEFORE OUTPUT(简称PBO):进行屏幕初始化工作,如数据库选择,屏幕元素属性动态设定等,如根据用户权限和继电定值申请单的状态确定哪些屏幕字段是输入状态,哪些字段是显示状态;PBO模块结束后,系统显示当前用户屏幕。
2)PROCESS AFTER INPUT(简称PAI):当用户在屏幕上执行某些功能后被触发,PAI结束后,屏幕可能进入后续或返回上一个屏幕序列;3)PROCESS ON HELP-REQUEST (简称POH):当用户按下F1键要求查看帮助信息时触发;4)PROCESS ON VALUE-REQUEST(简称POV):当用户按下F4键要求查看搜索帮助时触发。
5)如何实现f4帮助方法一:a..事务码SE11打开数据字典,选中搜索帮助,填写名称,点击创建.(前提先把表格和数据元素以及域都建好了)2.填写基本相关信息,搜索帮助描述,取数的表,显示的对话框类型.3.填写搜索帮助参数,字段名称,输入输出属性,显示位置次序,数据元素.4.保存,激活.5.打开要建立搜索帮助的表,选中要建立搜索帮助的字段,点击SRCH HELP,填入你建立好的搜索帮助的名称.6.保存,激活表.7.重新保存要用到表中搜索帮助的程序,激活后就可以使用搜索帮助来选择值了.Ps:在建立屏幕程序的时候要填上屏幕中你所填变量的f4的名字11/1.. 必须要有参照的数据元素要添加搜索帮助的表中的字段,:注此方法比较直观,但是有相关的前提:. .所以前提就是我们要事先维护好数据元素没有数据元素无法建立搜索帮助方法二:. 程序中直接写相关代码来实现在ABAP:具体步骤. VALUE-REQUEST添加事件1.:示例代码AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_XILEI-LOW.PERFORM FRM_XILEI_SELECT.. 在子程序中实现搜索帮助功能2.:示例代码11/ 2.FORM FRM_XILEI_SELECT .*细类的搜索帮助DATA: RT_TAB LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.DATA: BEGIN OF IT_XILEI OCCURS 0,XILEI LIKE ZSFQ10-XILEI,END OF IT_XILEI.SELECT XILEI INTO CORRESPONDING FIELDS OF TABLE IT_XILEI FROM ZSFQ10.CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'EXPORTINGRETFIELD = 'XILEI'DYNPPROG = SY-REPIDDYNPNR = SY-DYNNRDYNPROFIELD = 'S_XILEI-LOW'VALUE_ORG = 'S'CALLBACK_PROGRAM = SY-REPIDTABLESVALUE_TAB = IT_XILEIRETURN_TAB = RT_TABEXCEPTIONSPARAMETER_ERROR = 1NO_VALUES_FOUND = 2OTHERS = 3.IF SY-SUBRC <> 0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.ENDFORM. FRM_XILEI_SELECT3.保存,激活程序后,即可在屏幕上使用搜帮助了.注:此方法不是太直观,但是不用在数据字典中建立相关的数据,只需在程序中动态提取显示.方法三:固定值。
sap vc bom编程语句
sap vc bom编程语句SAP VC (Variant Configuration) 是SAP系统中的一个模块,它允许用户根据产品的不同特性和变体来配置和定制产品。
在SAP VC中,我们可以使用BOM编程语句来处理和管理产品的配置和变体。
下面是一些示例的SAP VC BOM编程语句:1. 使用BOM编程语句创建一个产品的基本配置:```DATA: lo_variant_manager TYPE REF TO if_vc_variant_manager.lo_variant_manager = cl_vc_variant_manager=>create( ).lo_variant_manager->set_base_object( iv_object_id = 'PRODUCT_ID' ).lo_variant_manager->set_configuration( iv_configuration_id = 'CONFIGURATION_ID' ).lo_variant_manager->save( ).```2. 使用BOM编程语句获取产品的配置信息:```DATA: lo_variant_manager TYPE REF TOif_vc_variant_manager.DATA: lt_variant_values TYPE vc_variant_values_t.lo_variant_manager = cl_vc_variant_manager=>create( ).lo_variant_manager->set_base_object( iv_object_id = 'PRODUCT_ID' ).lo_variant_manager->set_configuration( iv_configuration_id = 'CONFIGURATION_ID' ).lt_variant_values = lo_variant_manager->get_variant_values( ).```3. 使用BOM编程语句设置产品的配置值:```DATA: lo_variant_manager TYPE REF TO if_vc_variant_manager.DATA: lt_variant_values TYPE vc_variant_values_t.lo_variant_manager = cl_vc_variant_manager=>create( ).lo_variant_manager->set_base_object( iv_object_id = 'PRODUCT_ID' ).lo_variant_manager->set_configuration( iv_configuration_id ='CONFIGURATION_ID' ).lt_variant_values = lo_variant_manager->get_variant_values( ).READ TABLE lt_variant_values WITH KEY attribute = 'ATTRIBUTE_NAME' TRANSPORTING NO FIELDS.lt_variant_values-value = 'ATTRIBUTE_VALUE'.MODIFY lt_variant_values TRANSPORTING value.lo_variant_manager->set_variant_values( it_variant_values = lt_variant_values ).lo_variant_manager->save( ).```4. 使用BOM编程语句检查产品的配置完整性:```DATA: lo_check_manager TYPE REF TO if_vc_check_manager.DATA: lt_check_results TYPE vc_check_results_t.lo_check_manager = cl_vc_check_manager=>create( ).lt_check_results = lo_check_manager->check_configuration( iv_configuration_id = 'CONFIGURATION_ID' ).```5. 使用BOM编程语句创建产品的BOM结构:```DATA: lo_bom_manager TYPE REF TO if_vc_bom_manager.lo_bom_manager = cl_vc_bom_manager=>create( ).lo_bom_manager->set_base_object( iv_object_id = 'PRODUCT_ID' ).lo_bom_manager->set_configuration( iv_configuration_id = 'CONFIGURATION_ID' ).lo_bom_manager->build_bom( ).```6. 使用BOM编程语句获取产品的BOM结构:```DATA: lo_bom_manager TYPE REF TO if_vc_bom_manager.DATA: lt_bom_items TYPE vc_bom_items_t.lo_bom_manager = cl_vc_bom_manager=>create( ).lo_bom_manager->set_base_object( iv_object_id = 'PRODUCT_ID' ).lo_bom_manager->set_configuration( iv_configuration_id = 'CONFIGURATION_ID' ).lt_bom_items = lo_bom_manager->get_bom_items( ).```7. 使用BOM编程语句创建产品的变体:```DATA: lo_variant_manager TYPE REF TO if_vc_variant_manager.lo_variant_manager = cl_vc_variant_manager=>create( ).lo_variant_manager->set_base_object( iv_object_id = 'PRODUCT_ID' ).lo_variant_manager->set_configuration( iv_configuration_id = 'CONFIGURATION_ID' ).lo_variant_manager->create_variant( iv_variant_id = 'VARIANT_ID' ).lo_variant_manager->save( ).```8. 使用BOM编程语句删除产品的变体:```DATA: lo_variant_manager TYPE REF TO if_vc_variant_manager.lo_variant_manager = cl_vc_variant_manager=>create( ).lo_variant_manager->set_base_object( iv_object_id = 'PRODUCT_ID' ).lo_variant_manager->set_configuration( iv_configuration_id = 'CONFIGURATION_ID' ).lo_variant_manager->delete_variant( iv_variant_id = 'VARIANT_ID' ).lo_variant_manager->save( ).```9. 使用BOM编程语句创建产品的属性:```DATA: lo_variant_manager TYPE REF TO if_vc_variant_manager.DATA: lt_attributes TYPE vc_attributes_t.lo_variant_manager = cl_vc_variant_manager=>create( ).lo_variant_manager->set_base_object( iv_object_id = 'PRODUCT_ID' ).lo_variant_manager->set_configuration( iv_configuration_id = 'CONFIGURATION_ID' ).lt_attributes = lo_variant_manager->get_attributes( ).APPEND VALUE #( attribute = 'ATTRIBUTE_NAME' value = 'ATTRIBUTE_VALUE' ) TO lt_attributes.lo_variant_manager->set_attributes( it_attributes = lt_attributes ).lo_variant_manager->save( ).```10. 使用BOM编程语句获取产品的属性:```DATA: lo_variant_manager TYPE REF TO if_vc_variant_manager.DATA: lt_attributes TYPE vc_attributes_t.lo_variant_manager = cl_vc_variant_manager=>create( ).lo_variant_manager->set_base_object( iv_object_id = 'PRODUCT_ID' ).lo_variant_manager->set_configuration( iv_configuration_id = 'CONFIGURATION_ID' ).lt_attributes = lo_variant_manager->get_attributes( ).```通过以上示例的SAP VC BOM编程语句,我们可以实现对产品配置和变体的灵活管理和控制,为企业提供更好的定制化产品服务。
bom行用法
bom行用法BOM行用法是指在计算机编程中,特别是在文本处理中,使用BOM(Byte Order Mark)来标识文本文件的编码方式。
BOM是一个Unicode字符(U+FEFF),它位于文本文件的开头,用于指示文件的字节顺序和编码格式。
BOM主要用于标识UTF-16和UTF-32编码的文本文件,而对于UTF-8编码的文本文件,一般不需要使用BOM。
首先,BOM行的用法是用来解决文本文件的编码格式问题。
每个字符在计算机中都有相应的二进制形式,而不同的字符编码方式会使用不同的二进制序列来表示字符。
例如,UTF-8编码使用1至4个字节来表示一个字符,而UTF-16编码使用2个字节或4个字节来表示一个字符。
当我们打开一个文本文件时,计算机需要知道该文件使用的是哪种编码方式,才能正确地解析其中的字符。
BOM行的第二个作用是用来标识文本文件的字节顺序。
在UTF-16和UTF-32编码中,每个字符的字节顺序都有明确的规定,分别为大端序(Big Endian)和小端序(Little Endian)。
而在没有BOM的情况下,计算机无法确定文本文件的字节顺序,导致解析出来的结果可能是乱码或错误的。
BOM行的用法可以分为两种情况。
第一种情况是BOM作为文件头的一部分存在,它会告诉计算机该文件的编码方式和字节顺序。
这种情况下,程序需要根据BOM的值来判断文件的编码方式,并相应地选择正确的解码方式来处理文件中的字符。
例如,如果BOM的值为FEFF,则表示文本文件采用大端序的UTF-16编码;如果BOM的值为FFFE,则表示文本文件采用小端序的UTF-16编码。
第二种情况是BOM作为可选项存在,即文本文件的开头可能有BOM,也可能没有。
这种情况下,程序需要根据是否存在BOM来判断文件的编码方式。
如果文件的开头是BOM,那么程序可以根据BOM的值来判断编码方式,如果没有BOM,那么程序就需要根据其他规则来判断编码方式。
在实际编程中,使用BOM行的典型场景是在处理存储在文件中的文本数据时。
abap debug的五种方式
abap debug的五种方式
ABAP Debug是一种用于调试SAP ABAP程序的工具。
下面是ABAP Debug 的五种方式:
1. Classic Debugger:Classic Debugger是ABAP Debug的最基本版本,它允许用户在程序中设置断点、单步执行代码、查看和修改变量值以及跟踪函数调用。
用户可以通过菜单选项或快捷键直接进入Classic Debugger。
2. New Debugger:New Debugger是ABAP Debug的新版本,它比Classic Debugger更加灵活和易于使用。
New Debugger可以在不改变程序代码的情况下动态修改变量值,还可以在运行时插入代码。
此外,New Debugger还提供了更多的调试选项和功能。
3. Debugging Workbench:Debugging Workbench是一个集成了Classic Debugger和New Debugger的调试工具。
它提供了更多的调试选项和功能,如调试程序的不同层次、跟踪执行路线、检查用户权限等。
4. ABAP Trace:ABAP Trace是一种跟踪ABAP程序执行过程的工具,它可以帮助用户识别程序中的性能瓶颈和错误。
用户可以通过设置不同的跟踪选项,对程序进行跟踪并生成详细的日志信息。
5. SQL Trace:SQL Trace是一种跟踪SAP系统中数据库操作的工具,它可以帮助用户优化SQL查询语句和提高系统性能。
用户可以通过设置不同的跟踪选项,对SQL查询进行跟踪并生成详细的日志信息。
SAP方丈-ABAP-SAP增强应用实例
SAP方丈-ABAP-SAP增强应用实例SAP增强大伙儿都专门熟悉,在此不再详细讲解,下面只是通过一个实例来展现一下增强的应用。
系统增强实例为建立工单前进行校验,如没有进行标准成本公布那么提示错误信息E。
T-code:CMOD通过增强程序我们能够操纵相关应用,假如你不明白到底功能是用到的哪个增强,那么请看我附录上的列表。
我们以ppco0006举例如下:如图2.我们需要的是制定我们的组件,如图3.通过功能退出增加增强语句:如图4:双击程序后加入如下语句~~~~if sy-tcode <> 'CK11N' and sy-tcode <> 'CK40N'.data:begin of l_matnr,matnr like mbew-matnr,VPRSV like mbew-VPRSV,vjvpr like mbew-vjvpr,pprdl like mbew-pprdl,lplpr like mbew-lplpr,end of l_matnr.select single matnr vprsv vjvpr pprdl lplpr from mbew into l_matnrwhere matnr = CAUFVD_IMP-MA TNR* and pprdl <> ''* and lplpr <> ''and bwkey = CAUFVD_IMP-WERKS.* and vjvpr = 'S'.if l_matnr-vprsv = 'V'.exit.elseif sy-subrc <> 0 or ( l_matnr-pprdl is initial and l_matnr-lplpr is initial ).message e888(sabapdocu) with '物料' CAUFVD_IMP-MATNR'没有做成本估算, 不能创建生产订单,请通知SAP 方丈,yeah~~~!'.exit.endif.endif.OK,快去看看你增强后的成效吧~~~~~¥%&%&*〔*〔SAP所有模块用户出口:用户出口名称短文本描述0VRF0001 客户指定路线确定AAIC0001 IM 总结: 在选择后处理数据AAIC0002 IM 总结: 在选择后处理指定的输入项AAIP0001 IM 追溯: 实际价值对预算类别的分配AAIP0002 IM 追溯: 定义用户定义的指标AAIP0003 IM 追溯: 定义用户定义的特性AAIR0001 IM-IS: 适用要求报表中的用户值字段AAIR0002 IM-FA: 拨款申请的用户字段AAIR0003 IM: 创建拨款申请中的PM 定单时工作场所的分配AAIR0004 IM 追溯: 定义用户定义的特性AAIS0003 投资计量对资产的实际结算AAIS0004 全部打算值或预算值的结算AAPM0001 资产会计和工厂爱护的集成ACBAPI01 会计核算: 对BAPI 界面的客户增强功能ACCID001 会计核算的IDoc 过程ACCID002 支出会计的IDoc 处理ACCOBL01 代码块中PAI 和PBO 的客户出口AD010001 更换对象清单及其层次AD010002 定界选择和/或过滤已定数据AD010003 创建自定义动态项目特性AD010005 创建自定义资源AD010006 菜单退出:更换动态项目值AD010007 更换DI 处理信息AFAR0001 External determination of ref. value for dep. calculation AFAR0002 External determination of depreciationAFAR0003 外部转换方式AFAR0004 报废比例值的确定AINT0001 当记帐资产时进行扩展的检查AINT0002 出入流水中冲销帐户的替代...AINT0003 定义投资支持再付款的百分比/金额AINT0004 更换某范畴已过帐金额AINT0005 虚拟扩展语法检查. 不使用。
abap enhancement语句-概述说明以及解释
abap enhancement语句-概述说明以及解释1.引言1.1 概述ABAP (Advanced Business Application Programming) Enhancement语句是SAP系统中用于对标准ABAP程序进行增强和改进的关键语句。
通过使用ABAP Enhancement语句,开发人员可以在不修改原始代码的情况下,添加新的功能或逻辑,以满足业务需求。
在传统的软件开发中,当我们需要对一个已有的程序进行修改时,通常需要直接对这个程序进行更改。
然而,这种做法往往存在风险,因为修改可能会导致系统中其他部分的不稳定或错误。
此外,当SAP系统进行升级时,我们必须重新应用所有的修改,这会给系统维护和升级带来困难。
ABAP Enhancement语句的引入解决了这些问题。
它提供了一种灵活的方式,使开发人员能够在不直接修改标准代码的情况下增加新的功能。
通过使用这些语句,我们可以定义一个增强点,将我们的新代码插入到标准代码的特定位置,并在运行时调用它们。
使用ABAP Enhancement语句的好处是明显的。
首先,它们遵循了良好的软件工程原则,例如开闭原则和单一职责原则。
其次,它们为系统维护和升级提供了很大的便利,因为我们不再需要手动应用修改或重新实现已有的功能。
在本文中,我们将详细介绍ABAP Enhancement语句的定义和使用场景。
我们将讨论不同类型的ABAP Enhancement语句,并提供实际示例来说明它们的用法。
最后,我们将总结ABAP Enhancement语句的优势,并展望它们的未来发展。
通过深入了解和合理使用ABAP Enhancement语句,我们可以更好地应对业务需求,并为SAP系统的开发和维护带来更高的效率和稳定性。
1.2 文章结构本篇文章将围绕ABAP Enhancement语句展开讨论。
首先,在引言部分,我们将对ABAP Enhancement语句进行概述,并介绍文章的结构和目的。
ABAP增强的使用
ABAP增强的使⽤SAP⽤户出⼝的类型sap的⽤户出⼝总共有三代:1、第⼀代sap提供⼀个空代码的⼦过程,在这个⼦过程中⽤户可以添加⾃⼰的代码,控制⾃⼰的需求。
这类增强都需要修改sap的标准代码。
⽰例:USEREXIT.. in SAPMV45A2、第⼆代sap提供的是CUSTOMER-FUNCTION,它是通过SMOD和CMOD完成实现。
参见我的3、第三代sap提供的第三代的⽤户出⼝就是BADI,他的调⽤⽅式是CALL METHOD (instance),(相关的TCODE是SE18和SE19),你可以通过EXIT_HANDL ER这个单词查找BADI。
BADI查找⽅式: CL_EXITHANDLER=>GET_INSTANCESe24 get instance CL_EXITHANDLEREXIT 查找⽅式在函数MODX_FUNCTION_ACTIVE_CHECK 中设断点。
找到组件(funcname),然后根据组件到表MODSAP中找到对应的增强名称如果找不到的话,⽤以下⽅式:找CALL CUSTOMER-FUNCTION’XXX’,下断点。
如果经过的话。
exit calls function module的名称就是: EXIT_程序名_XXX。
然后根据组件到表MODSAP中找到对应的增强名称BADI作为SAP的第三代⽤户出⼝,他的应⽤也越来越⼴泛,但如何找到合适的badi是许多abap程序员的困惑。
我这⾥就介绍⼀下我个⼈的应⽤的经验,供⼤家参考。
1、badi对象的信息存储在SXS_INTER, SXC_EXIT, SXC_CLASS 和SXC_ATTR 这四个表中(参见SECE包);2、sap程序都会调⽤cl_exithandler=>get_instance来判断对象是否存在,并返回实例;其实get_instance就是对上述⼏个表和他们的视图(V_EXT_I MP 和 V_EXT_ACT)进⾏查询和搜索。
sapabap查找增强的方法和程序查找增强方法
sapabap查找增强的⽅法和程序查找增强⽅法1、通过程序——查找第⼆代、第三代增强⽅法。
找到出⼝名称,在smod⾥⾯查找相应的增强组件,再去cmod⾥⾯创建包含多个组件的增强项⽬,再去实现这些增强(屏幕增强、结构增强字段增强等)。
其他⽅法:***⽅法⼀****************************************通过SE30,运⾏TCODE后,点Evaluate后,查看运⾏时间分析评估:命中清单。
找以“exit”开头的SAP程序,如:EXIT_SAPLIE01_007,这个FUNCTION就是TCODE提供的⼀个出⼝。
⾄于如何查看这个增强是属于哪个SMOD,能够查阅MODSAP这个表(SAP Enhancements).***⽅法⼆****************************************通过SE37中的:MODX_FUNCTION_ACTIVE_CHECK 函数来找,在函数的最后⼀⾏打个断点,再运⾏TCODE的,如果有增强则会跳⼊DEBUG界⾯,在DEBUG界⾯中,查看L_FUNCNAME 字段对应的值,此值就是就是要找的出⼝,再去SE11中通过MODSAP来查看出⼝对就的是那个SMOD,接下来就可以在CMOD中创建增强组了,把找到的增强填⼊,最后根据实际的业务进⾏处理。
以上的两种⽅法是⽤来找第⼆代增强。
***⽅法三****************************************找BADI的⽅法。
先运⾏SE24,查看类对象CL_EXITHANDLER, 在其⽅法:GET_INSTANCE的14⾏(CALL METHODCL_EXITHANDLER=>GET_CLASS_NAME_BY_INTERFACE)打上⼀个断点。
接下来运⾏事务代码,当有BADI是将会被执⾏,这时在DEBUG模式下,会进⼊类CL_EXITHANDLER 的GET_INSTANCE ⽅法,按F6执⾏这个⽅法之后,点参数EXIT_NAME查看其对应的值,所有的⽅法实现都在此类对象中,此时就是我们所要找的BADI。
abap基础
ABAP基础ABAP简介ABAP语言也称作ABAP/4,它的全称是Advanced Business Application Programming - 4 th generation LanguageABAP是SAP的支柱所有的R/3应用程序和部分的Basis 系统都是用ABAP语言开发的数据字典编辑器函数库SAP事务码ABAP字典在商业应用软件开发时,部分实际世界必须被描述成数据形式。
商业应用软件的作用在于接收业务数据,并将其用一定的形式储存起来。
这些业务数据在储存后,还可以随时读取出来,再次利用。
例如:财务人员向SAP系统中输入会计凭证,保存之后还可以随时把凭证调出来查看。
无论是接收数据、储存数据、读取数据、使用数据,其核心都是数据。
在SAP R/3系统中,基本上所有的数据都是存在数据库表里面的。
数据库表,以及与其相关的视图、结构等构成了ABAP字典ABAP字典SE11ABAP字典所包含的要素表(Table)视图(View)结构(Structure)数据元素(Data Element)域(Domain)表类型(Table Type)搜索帮助(Search Help)锁对象(Lock Object)ABAP字典-表:SAP R/3 中看到的表并不是真正在数据库中物理上储存数据的表。
SAP中的表和数据库中的物理表是对应起来的。
ABAP 字典中的表分为3种透明表(Transparent Table)和数据库中的物理表一一对应,在SAP中激活透明表时,会在数据库中创建一个同名的物理表。
我们用到的绝大多数表都是透明表。
簇表(Cluster Table)大,多个簇表存在一个物理表中。
无索引共享表(Pooled Table)小,多个共享表存在一个物理表中。
无索引ABAP字典-视图ABAP 字典中的视图分为4种数据库视图投影视图维护视图直接向数据库表中维护数据帮助视图对表中内容进行筛选,用来提供搜索帮助ABAP字典–数据元素和域数据元素(Data Element)域(Domain)在SAP字典中,数据库表是有一个一个的字段组成的,每一个字段代表着一个需要储存的现实中的数据。
sap 可配置物料 super BOM的相关配置
sap 可配置物料 super BOM的相关配置分类:SAP-ABAP2012-03-13 15:58 872人阅读评论(0) 收藏举报sapclassificationclassobject电子商务basic一。
首先相关后台的配置:分类系统就是根据一定的特征组合相似对象从而使你能快速查找到所需的对象.SAP预定义了许多对象类型你几乎不要做,实际上应用分类系统基本上不用做任何或很少设置就可直接使用1. Object(对象) 物料,供应商,客户,批次,BOM等都可作为可分类的对象2. Object key(对象关键码)3. object type4. class(在variant里你通常简单的把它看成一production model 好了5. class type 比如300是varaint用于super bom, 022 batch 你宰SAP要有全局的观念,比如condition技术它用在多个方面, 同样classification用在多处,多少处, 你自己瞧瞧class type6. characteristic 7 。
class/characteristic group二。
Super BOM/Configurable BOM应用举例1.建立特征(Tcode:CT04)ZST_ZJ:分配三个特性值ZZJ1-ZZJ3到里面,同样地,建立特征ZST_BOX包含特征值ZBOX1-ZBOX3,特征ZST_PAK包含特征值ZPAK1-ZPAK3.2.建立类(CL01/CL02/CL03)ZST_MODEL:分别将ZST_ZJ、ZST_BOX、ZST_PAK三个特性分配给类为了方便理解,再假设每个主机,机箱和包装材料都由3个material component,比如ZZJ1由970000-970002组成,ZZJ2由970003-970005组成,ZZJ3由970005-970008组成. 依此类推,机箱ZBOX1-ZBOX3和包装材料ZPAK1-ZPAK3的material component 从970009-970026(假设每组件有3component组成).3.mm01创建物料ZST_MODEL:(1)Basic data2 的Material is configurable一定要选上.表示其是可被配置的物料(2) 在Classification view选上分类CLASSTYPE=300,ZST_MODEL(Class和物料同名),带出上面所设定的三特征值.(3)MRP1 view 的MRP type可设置成ND不跑MPRRP1 Part,ement rable(4)MRP2 view Special procurement 设成50,就是说通常这料是Phantom Part,关于phantom part请看例1-Phantom Part的使用. mm01:ZZJ1-ZZJ3,ZBOX1-ZBOX3,ZPAK1-ZPAK3根据实际需要,如果你需要进行库存管理,和普通物料一样,如不需要可简称phantom part.注意:这层物料并不需要建立Classification .4.建立Super BOM/最大BOM(CS01)从图1进去维护Object Dependency(注意在创建OD时不要直接双击item进去维护).图2Rltnship使用BOM material加Item.然后到图1维护Dependency,Dependency维护如下图上图$ROOT表示跟特征,$ROOT.ZST_ZJ表示其下的特征ZST_ZJ, = ‘ZJJ1’ ,ZJJ1表示特征ZST_ZJ的特征值ZJJ1,这样就将item component ZZJ1和特征ZST_ZJ的特征值ZZJ1 link上了.同样地,建立好图其他component的OD ,比如ZBOX1的SEL. Condition是ZST_MODEL_ZBOX1,Dependency是$ROOT.ZST_BOX =‘ZBOX1’ . ZPAK1 Condition是ZST_MODEL_ZPAK1,Dependency是$ROOT.ZST_PAK =‘ZPAK1’ 等.*如需要你也可使用$ROOT.ZST_PAK in ‘ZPK1’.至此,一个超级BOM就建立好了,下面假设你做了一电子商务网站,允许用户在3种主机3种机箱3种包装选择.选择好了自动建立Sales part和BOM,为此你建立sales part ZMODEL1.5.创建Super Routing/最大工艺路线(CA01)6.建立configurable profile (Tcode:CU41)为配置物料建立configurable profile*假设在sales model物料ZMODEL1选特征值是ZZJ1,ZBOX1,ZPAK1:(1) Link to Super BOM (Tcode: CS40)CS40 将ZMODEL1和Configurable material ZST_MODEL link 上如下图单击按钮’All Allocs to BOM’将ZMODEL1和ZST_MODELlink上.Check with CS12使用CS12检查ZMODEL1的BOM,OK .Super BOM应用步骤总结(1) 建立特征和特征值(Tcode :CT04)在本例你建立了特征ZST_ZJ表示电脑主机包含3特征值(主机类)ZZJ1-ZZJ3,特征ZST_BOX包含3特征类型(机箱)ZBOX1-ZBOX3,特征ZST_PAK包含3特征值(电脑包材)ZPAK1-ZPAK3 .(2) 建立类(Tcode:CL01)在本例你建立ZST_MODEL类,class type是300(variant)(3) 建立物料首先建立ZST_MODEL,这是一个configurable material,可建成phantom part,为了便于管理,将它建立和class ZST_MODEL同名称,同样按9个特征值建立物料(4) 建立BOM.假设物料ZZJ1-ZZJ3,ZBOX1-ZBOX3,ZPAK1-ZPAK3有BOM,这些物料是普通的part(如需要,这些料也可建立成configurable material,这也没什么复杂的,本例只是为了简化实例),BOM也是普通的BOM 然后为Configurable material ZST_MODEL建立Super BOM包含ZZJ1-ZZJ3,ZBOX1-ZBOX3,ZPAK1-ZPAK3,建立OD(Object Dependency) (5)建立configurable Profile (Tcode:CU41).为configurable material ZST_MODEL建立configurable profile (6)建立MTO物料及其从Super BOM派生出配置BOM假设客户选择了ZZJ1,ZBOX1,ZPAK1组装电脑,为止产生了物料ZMODEL1,指想ZST_MODEL ,在classification view选取特征值ZZJ1,ZBOX1和ZPAK1.(7) Link to configurable material (Tcode:CS41)将ZMODEL1 link to ZST_MODEL,就完成了配置BOM的应用.*建议测试ZST_MODEL,ZMODEL1,ZZJ1-ZZJ3,ZBOX1-ZBOX3,ZPAK1-ZPAK3建立物料,然后下面component使用系统里的,希望通过上面你对Super BOM和配置BOM有全面的了解.*实际应用中,一Top lever的Super BOM下的component也可能是一Super BOM.Phantom Part的使用.Phamton part作用1. 体现工艺制作流程2. 节省存储空间,因为BOM是扁平save在表中的.3. 便于成本计算原文:/%C0%E6%CE%D0%C7%B3%D0%A6%C2%B D%C0%DA/blog/item/f10c183419f4ed87a8018e4c.html分享到: 上一篇:linux telnet 测试邮件发送。
SAPABAP实用培训教程(增加多场景)
SAPABAP实用培训教程引言SAP(系统应用与产品)是一家德国公司,提供企业资源规划(ERP)软件,以帮助企业管理和整合业务运营。
ABAP(高级业务应用程序编程)是SAP的编程语言,用于开发SAP应用程序。
本教程旨在为初学者和希望提高ABAP编程技能的开发人员提供实用的培训。
第一部分:ABAP基础1.1ABAP概览ABAP是一种高级编程语言,专门用于SAP应用程序的开发。
它具有结构化和面向对象的特点,支持模块化、可重用性和可维护性。
ABAP编程环境包括ABAP工作台,它是开发SAP应用程序的主要工具。
1.2数据定义在ABAP中,数据定义是通过数据字典实现的。
数据字典是用于定义和描述数据元素、结构和表格的地方。
数据元素是基本的数据单位,结构是由多个数据元素组成的复合数据类型,表格是用于存储大量数据的集合。
1.3ABAP程序结构ABAP程序由多个块组成,包括声明、执行和异常处理块。
声明块用于定义变量和常量,执行块用于编写程序的主要逻辑,异常处理块用于处理程序运行时可能出现的错误。
第二部分:ABAP编程实践2.1报表开发报表是ABAP编程中最常见的应用程序之一。
通过编写SELECT 语句,可以从SAP数据库中检索数据,并通过报表显示格式化输出。
报表开发涉及定义选择屏幕、处理用户输入、执行数据库查询和显示结果。
2.2输入输出处理输入输出处理是ABAP编程中的重要部分。
输入屏幕用于收集用户输入,输出屏幕用于显示程序的结果。
通过使用屏幕元素,如字段符号、表格控制和循环结构,可以创建用户友好的界面。
2.3数据处理数据处理是ABAP编程中的核心任务。
通过使用内部表、工作区和数据库表,可以对数据进行读取、写入和修改。
ABAP提供了丰富的数据处理语句,如MODIFY、APPEND和DELETE,以及用于数据转换和验证的内建函数。
第三部分:ABAP高级特性3.1面向对象编程ABAP支持面向对象编程(OOP)的概念。
abap中mod用法 -回复
abap中mod用法-回复ABAP中MOD用法MOD函数是ABAP语言中的一个函数,用于计算两个数相除后的余数。
在ABAP中,MOD函数可用于整型、浮点型、小数型和货币型字段。
本文将一步一步回答关于ABAP中MOD函数的使用。
第一步:了解MOD函数的语法与参数MOD函数的语法如下:MOD( dividend, divisor )其中,dividend为被除数,divisor为除数。
函数的返回值为被除数除以除数的余数。
需要注意的是,MOD函数只支持两个整数之间的余数运算。
如果两个参数中至少有一个为小数或浮点数,或者是小数型或货币型字段,则MOD 函数会引发运行时错误。
第二步:理解MOD函数的使用方法MOD函数可以用于各种情况。
以下是MOD函数在ABAP中的常见用途之一:1. 判断一个数是否能被另一个数整除MOD函数可以判断一个数是否能被另一个数整除。
如果两个数通过MOD 函数计算的余数为0,则被除数可以整除除数,否则不能整除。
例如,我们想要判断一个数n是否能被3整除,可以使用MOD函数进行如下判断:IF MOD( n, 3 ) = 0.WRITE: 'n可以被3整除'.ELSE.WRITE: 'n不能被3整除'.ENDIF.第三步:举例说明MOD函数的应用场景以下是MOD函数在实际应用中的几个典型场景:1. 针对一组数进行分类假设我们有一组整数,想要根据这组数与3的余数进行分类。
可以使用MOD函数将这组数分成三个类别:余数为0、余数为1和余数为2。
DATA: numbers TYPE TABLE OF i,zeroes TYPE TABLE OF i,ones TYPE TABLE OF i,twos TYPE TABLE OF i.numbers = VALUE #( (1), (2), (3), (4), (5), (6), (7), (8), (9) ).LOOP AT numbers ASSIGNING FIELD-SYMBOL(<num>).CASE MOD( <num>, 3 ).WHEN 0.APPEND <num> TO zeroes.WHEN 1.APPEND <num> TO ones.WHEN 2.APPEND <num> TO twos.ENDCASE.ENDLOOP.这样,我们可以将这组数分成余数为0的集合zeroes=[3,6,9],余数为1的集合ones=[1,4,7],余数为2的集合twos=[2,5,8]。
abap mod用法 -回复
abap mod用法-回复ABAP模块(MOD)用法详解摘要:本文章将介绍ABAP模块(MOD)的用法和功能。
我们将通过一步一步的解释和示例来帮助您更好地理解和应用ABAP模块(MOD)。
第一部分:什么是ABAP模块(MOD)ABAP模块(MOD)是一种在ABAP程序中重复使用的代码段。
它是一种封装了特定功能的逻辑单元,可以被其他ABAP程序调用和重用。
通过使用ABAP模块,我们可以将一块可复用的代码集中在一处,提高代码的可维护性和可读性。
第二部分:ABAP模块(MOD)的创建创建ABAP模块(MOD)非常简单。
我们只需要在程序中定义一个模块,并在其中编写我们想要实现的功能。
下面是一个简单的示例,展示了如何创建一个ABAP模块(MOD):MODULE USER_EXIT_001.DATA: lv_variable TYPE i.FORM calculate_sum.lv_variable = 5 + 7.ENDFORM.FORM display_result.WRITE: / 'The sum is:', lv_variable.ENDFORM.ENDMODULE.在这个示例中,我们定义了一个名为`USER_EXIT_001`的模块,并在其中定义了两个子程序`calculate_sum`和`display_result`。
在`calculate_sum`子程序中,我们将5和7相加,并将结果存储在名为`lv_variable`的变量中。
在`display_result`子程序中,我们显示了变量`lv_variable`的值。
第三部分:ABAP模块(MOD)的调用一旦我们创建了一个ABAP模块(MOD),我们可以在其他ABAP程序中调用它。
下面是一个示例,展示了如何在另一个ABAP程序中调用刚刚创建的模块`USER_EXIT_001`:REPORT ZABAP_MOD_CALL.DATA: lv_variable TYPE i.PERFORM calculate_sum IN PROGRAM (P_MODNAME) USINGlv_variable.PERFORM display_result IN PROGRAM (P_MODNAME) USINGlv_variable.在这个示例中,我们首先定义了一个名为`lv_variable`的变量。
ABAP之BOM基于EXCEL批...
ABAP之BOM基于EXCEL批... ---------------------------------------------------------------------**& Report ZPPR033*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*REPORT ZPPR033 NO STANDARD PAGE HEADING MESSAGE-ID OO.INCLUDE ZPRJ001_INCL.*----------------------------------------------------------------------** TABLE DECLARATION **----------------------------------------------------------------------*TABLES: SSCRFIELDS."选择屏幕-下载模板按钮*----------------------------------------------------------------------** TYPE-POOLS **----------------------------------------------------------------------*TYPE-POOLS: SLIS,VRM,TRUXS. "#EC **----------------------------------------------------------------------** CONSTANTS **----------------------------------------------------------------------**----------------------------------------------------------------------** TYPES **----------------------------------------------------------------------*TYPES: BEGIN OF ty_excel,MATNR TYPE string,"物料号STLAN TYPE string,"⽤途WERKS TYPE string,"⼯⼚STLAL TYPE string,"可选BOMPOSNR TYPE string,"项⽬号IDNRK TYPE string,"BOM组件MENGE TYPE string,"数量SORTP TYPE string,"修改:添加->排序字符串POTX1 TYPE string,"修改:添加->⾏1(替代备件)POTX2 TYPE string,"修改:添加->⾏2(替换备件)SANKA TYPE string,"成本核算标识相关UPOSZ TYPE string,"修改:添加->⼦项⽬编号EBORT TYPE string,"修改:添加->⼦项⽬安装地点UPMNG TYPE string,"修改:添加->⼦项⽬数量END OF ty_excel.TYPES: BEGIN OF ty_output,ZSEL TYPE C,INDEX TYPE SY-INDEX,MATNR(18),"物料号STLAN(1),"⽤途WERKS(4),"⼯⼚STLAL(2),"可选BOMPOSNR(4),"项⽬号IDNRK(18),"组件MENGE(13),"数量SORTP(10),"修改:添加->排序字符串POTX1(40),"修改:添加->⾏1(替代备件)POTX2(40),"修改:添加->⾏2(替换备件)SANKA(1),"成本核算标识相关UPOSZ(4),"修改:添加->⼦项⽬编号EBORT(20),"修改:添加->⼦项⽬安装地点UPMNG(17),"修改:添加->⼦项⽬数量POSTP(1),"项⽬类别* POTX1 TYPE string,"* RFPNT TYPE string,TYPE TYPE BAPI_MTYPE,"消息类型MESSAGE TYPE BAPI_MSG,"消息类别COLOR_ROW TYPE CHAR4,"⾏颜⾊END OF ty_output.TYPES: BEGIN OF ty_screen,DATUV TYPE DATUM,END OF ty_screen.*----------------------------------------------------------------------** DATA **----------------------------------------------------------------------*DATA: gs_excel TYPE ty_excel,gt_excel TYPE TABLE OF ty_excel,gs_output TYPE ty_output,gt_output TYPE TABLE OF ty_output,gs_output1 TYPE ty_output,gt_output1 TYPE TABLE OF ty_output,gs_screen TYPE ty_screen,gv_datuv TYPE BICSK-DATUV.*---for alvDATA: GWA_LAYOUT TYPE SLIS_LAYOUT_ALV,GIT_FIELD TYPE SLIS_T_FIELDCAT_ALV,GWA_FIELD LIKE LINE OF GIT_FIELD, "#EC *GIT_SORT TYPE SLIS_T_SORTINFO_ALV,GWA_SORT LIKE LINE OF GIT_SORT. "#EC **----------------------------------------------------------------------** SCREEN DECLARATION: PARAMETERS & SELECT-OPTIONS **----------------------------------------------------------------------*SELECTION-SCREEN: FUNCTION KEY 1. "激活下载模板按钮SELECTION-SCREEN: BEGIN OF BLOCK B01 WITH FRAME TITLE text-001.SELECT-OPTIONS:s_DATUV FOR gs_screen-DATUV NO-EXTENSION NO INTERVALS OBLIGATORY DEFAULT sy-datum. PARAMETERS P_FILE LIKE RLGRAP-FILENAME. "#EC *SELECTION-SCREEN: END OF BLOCK B01.*----------------------------------------------------------------------** INCLUDE FILES FOR PROCESSING **----------------------------------------------------------------------**INCLUDE xxx.*----------------------------------------------------------------------** DEFINE **----------------------------------------------------------------------*DEFINE M_ALV_FIELDCAT.GWA_FIELD-FIELDNAME = &1.GWA_FIELD-OUTPUTLEN = &2.GWA_FIELD-REPTEXT_DDIC = &3.GWA_FIELD-EDIT = &4.GWA_FIELD-CHECKBOX = &5.GWA_FIELD-REF_FIELDNAME = &6.GWA_FIELD-REF_TABNAME = &7.GWA_FIELD-JUST = &8.GWA_FIELD-NO_ZERO = &9.APPEND GWA_FIELD TO GIT_FIELD.CLEAR GWA_FIELD.END-OF-DEFINITION.*----------------------------------------------------------------------** INITIALIZATION **----------------------------------------------------------------------* INITIALIZATION.SSCRFIELDS-FUNCTXT_01 = '下载模板'.*----------------------------------------------------------------------** AT SELECTION-SCREEN OUTPUT * *----------------------------------------------------------------------*AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE. PERFORM FRM_CHOOSE_FILE."选择⽂件。
SAP超级BOM基本配置和应用
1、创建物料特征项
例如:颜色
2、创建类CL02
并分配特性值到类
3、修改物料主数据(上层产成品为可配置、并激活分类试图)
4、修改半成品物料主数据分类试图MM02
5、配置文件维护CU41
6、建立超级BOM CS01
双击OD
进入维护界面选择下层组件颜色
创建销售订单前首先检查下层物件MRP结果TROH01
TROH02
创建半成品销售订单
生成销售订单
运行查看MRP运行结果
g
生成了相关需求
可查看下BOM中另一个零件无需求
显示生成的计划订单组件
综上所述联系目前现有DMS系统
经销商报单的时候填写特征项,SAP系统需要维护分类,分类关联到物料主数据产成品,按照制动型式,特征值(前鼓/后鼓),
创建销售订单的时候,读取销售订单的特征值,生成计划订单
物料TALB09被创建Z_SIZE。