CRM创建物料FM2
这是在佛山好帮手时受启发而研究出来的,创建物料,带单位,类型组
经测试。。。。算了,不说了,有什么限制自己测去。。。今天心情不好。。。
FUNCTION ZLY_CREATE_PRODUCT_UNIT.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(IN_PRODUCT_ID) TYPE COMT_PRODUCT_ID
*" REFERENCE(IN_PRODUCT_TYPE) TYPE COMT_PRODUCT_TYPE DEFAULT '01'
*" REFERENCE(IN_SHORT_TEXT) TYPE COMT_PRSHTEXTX DEFAULT
*" 'CRM CREATE PRODUCT'
*" REFERENCE(IN_CATEGORY_ID) TYPE COMT_CATEGORY_ID DEFAULT
*" 'MAT_ROH'
*" EXPORTING
*" REFERENCE(RT_RETURN) TYPE BAPIRET2_TAB
*"----------------------------------------------------------------------
*--> Structures
DATA : ls_product TYPE comt_product_mat_maintain_api,
ls_comt_prod TYPE comt_product_maintain_api,
ls_prod TYPE comt_product,
ls_prod_categ2 TYPE comt_prod_cat_rel,
ls_srv_maintain TYPE comt_prod_mat_maintain_api,
ls_pr_unit TYPE comt_pr_unit_maintain,
ls_unit TYPE comt_pr_unit,
ls_shtext TYPE comt_pr_shtext_maintain,
ls_text TYPE comt_prshtext,
ls_ret_prod TYPE comt_product_mat_maintain_api,
ls_return TYPE bapiret2.
*--> Internal Tables
**----------------------------------------------------------------------
*----------
DATA : lt_product TYPE comt_product_mat_maintain_apit,
lt_ret_prod TYPE comt_product_mat_maintain_apit,
lt_prod_categ TYPE comt_prod_cat_rel_maintain_tab,
lt_pr_unit TYPE comt_pr_unit_maintain_tab,
lt_shtext_maint TYPE comt_pr_shtext_maintain_tab.
*-->logsys get
DATA iv_logsys TYPE TBDLS-LOGSYS.
CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
IMPORTING
OWN_LOGICAL_SYSTEM = iv_logsys
EXCEPTIONS
OWN_LOGICAL_SYSTEM_NOT_DEFINED = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
ENDIF.
**--> Maintain Category relevant data
DATA:ls_category TYPE comm_category .
CLEAR ls_prod_categ2.
SELECT SINGLE * FROM comm_category INTO ls_category WHERE category_id = IN_CATEGORY_ID." 'ZMNFG'.
ls_prod_categ2-category_id = ls_category-category_id.
ls_prod_categ2-category_guid = ls_category-category_guid.
ls_prod_categ2-logsys = iv_logsys.
APPEND ls_prod_categ2 TO lt_prod_categ.
**--> Maintain Product-general data
ls_prod-product_id = in_product_id.
ls_prod-product_type = in_product_type.
ls_prod-client = sy-mandt.
ls_prod-logsys = iv_logsys.
MOVE ls_prod TO ls_comt_prod-com_product.
MOVE lt_prod_categ TO ls_comt_prod-categories.
**--> Maintain Units of measure data
* LOOP AT it_unit INTO ls_unit.
* ls_unit-logsys = iv_logsys.
* MOVE ls_unit TO ls_pr_unit-data.
* APPEND ls_pr_unit TO lt_pr_unit.
* ENDLOOP.
ls_unit-unit = 'PC'.
ls_unit-numerator = '1'.
ls_unit-denominator = '1'.
ls_unit-is_base_unit = 'X'.
ls_unit-logsys = iv_logsys.
MOVE ls_unit TO ls_pr_unit-data.
APPEND ls_pr_unit TO lt_pr_unit.
MOVE lt_pr_unit TO ls_srv_maintain-comm_pr_unit.
MOVE ls_srv_maintain TO ls_product-data.
**--> Maintain Short texts
ls_text-langu = sy-langu.
ls_text-short_text = in_short_text.
ls_text-logsys = iv_logsys.
MOVE ls_text TO ls_shtext-data.
APPEND ls_shtext TO lt_shtext_maint.
MOVE lt_shtext_maint TO ls_comt_prod-short_texts.
MOVE ls_comt_prod TO ls_product-header.
APPEND ls_product TO lt_product.
**--> Create Product
CALL FUNCTION 'COM_PRODUCT_MAT_MAINT_MULT_API'
EXPORTING
it_product = lt_product
iv_check_only = ' '
iv_suppress_inactive = ' '
iv_activate_inactive_products = ' '
iv_application = ' '
IMPORTING
et_product = lt_ret_prod
et_bapireturn = rt_return
EXCEPTIONS
internal_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
CALL FUNCTION 'BALW_BAPIRETURN_GET2'
EXPORTING
type = 'E'
cl = sy-msgid
number = sy-msgno
IMPORTING
return = ls_return.
APPEND ls_return TO rt_return.
CLEAR ls_return.
ENDIF.
**--> Save Product
DATA : lv_product_id TYPE symsgv.
CALL FUNCTION 'COM_PRODUCT_SAVE_API'
EXPORTING
iv_update_task = 'X'
EXCEPTIONS
internal_error = 1
save_not_allowed = 2
OTHERS = 3.
IF sy-subrc <> 0.
** MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
** WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* lv_product_id = in_product_id.
* CALL FUNCTION 'BALW_BAPIRETURN_GET2'
* EXPORTING
* type = 'E'
* cl = gc_msg_class
* number = '002'
* par1 = lv_product_id
* IMPORTING
* return = ls_return.
* APPEND ls_return TO xt_return.
* CLEAR ls_return.
ENDIF.
**--> Commit transaction
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
IMPORTING
return = ls_return.
IF ls_return IS NOT INITIAL.
APPEND ls_return TO rt_return.
ENDIF.
**--> Refresh buffer
CALL FUNCTION 'COM_PRODUCT_FREE_API'.
ENDFUNCTION.
CRM创建物料FM2的更多相关文章
- CRM创建物料FM1
这是在中联混凝土那边搞的.... method create_prd. data: lt_return type bapiret2_tab, ls_return like line o ...
- SAP 创建物料主数据分类视图特性
1.CL01创建物料分类 2.去CT04中去创建特性值 创建完成之后保存, 3.创建物料的分类视图,选择相应的特性值
- SAP MM01 创建物料主数据 [关注公众号后回复MM01获取更多资料]
操作内容 物料主数据,适用于所有有物料编码物料相关信息的系统维护 业务流程 新项目设计冻结后—M公司 PD用-物料编码申请表D-BOM Material Number Application部门内部 ...
- crm创建报告补充导航
报告导航实现动态交互体验报告. 通过使用各种类型的操作的,报告允许用户导航到特定的报告.Microsoft Dynamics CRM 记录或其它网站 动态钻取到 Microsoft Dynamics ...
- crm创建和编辑全局选项集
一个选项集就是可包含在一个实体中的某种类型的字段.它定义一组选项.当一个选项集显示在窗口中时,将使用下拉列表控件.当在 Advanced Find 中显示时,则使用选择列表控件.有时,开发者将选项集称 ...
- CRM创建BP(END USER)
FUNCTION ZCRM_BP_CRT. *"---------------------------------------------------------------------- ...
- crm创建启用停用用户
public static readonly string entityName = "systemuser"; public Guid userId = Guid ...
- crm创建基于fetch自己的自定义报告
在解决方案资源管理器,右键点击"报表"目录.然后点击"增加了新的报告". 打开"报表向导". 在"欢迎来到报表向导"前, ...
- SAP 设置屏幕字段的隐藏、显示、必填和可选,以设置物料组为例
1.事务码MM01,把物料组设为选填字段. 2.找到物料组的屏幕字段. 3.在后台根据屏幕字段找到对应字段组.后台路径:后勤-常规—物料主数据—字段选择—给字段组分配字段.点击后面的箭头进入下一屏幕. ...
随机推荐
- [SAP ABAP开发技术总结]字符编码与解码、Unicode
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- CUBRID学习笔记 35 net驱动错误码和信息 cubrid教程示例
DO.NET Error Code Number Error Code Error Message Note 0 ER_NO_ERROR "No Error" 1 ER_NOT ...
- 杭电HDU1042(有点坑的高精度)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1042 题意: Given an integer N(0 ≤ N ≤ 10000), your task i ...
- [转 ]-- Java线程池使用说明
Java线程池使用说明 原文地址:http://blog.csdn.net/sd0902/article/details/8395677 一简介 线程的使用在java中占有极其重要的地位,在jdk1. ...
- 图文解说 Dijkstra.
Dijkstra 太多文章了,有些简练,有些一笔带过.自己还是花了些时间才明白,刚脆自己写个图文说明的,希望能让还没明白的,尽快清楚. 问题:求某点到图中其他所有点的最短路径(权值和最小) Dijks ...
- 用Java集合中的Collections.sort方法对list排序的两种方法
用Collections.sort方法对list排序有两种方法第一种是list中的对象实现Comparable接口,如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
- QQServer_update
import java.awt.*; import javax.swing.*; import java.net.*; import java.io.*; import java.awt.event. ...
- 子div用了float浮动之后,如何撑开父元素,让父元素div自动适应高度的问题
方法一: html: <div id="all1"> <div id="left1">1</div> <div id= ...
- php按条件查询的数据分页显示,点击下一页时又列出全部数据的解决办法
其实很简单,只要把表单提交方式改为get方式就行了,然后调用分页函数: function getpage(&$m,$where,$pagesize=10){ $m1=clone $m;//浅复 ...
- Android AIDL Service
AIDL Service //跨进程调用Service 一个APK想调用另一个APK中的Service 如何实现AIDL //定义两个进程之间的通信接口 Demo1 传递简单数据 AidlSer ...