使用计划功能激活数据片
来源:互联网 发布:小苍外设淘宝店网址 编辑:程序博客网 时间:2024/05/20 07:52
BPS里的DATASLICE,用来锁定指定条件的计划数据。
本代码大部分来源于网上资料,做了简化,重点是参考其中对BUFFER的处理。
计划功能出口调用的SE37函数,标准的导入导出参数几乎是固定的几个,如果你需要对计划数据进行读写,那还得加一个XTH_DATA的Changing参数。
具体概念看看计划功能出口的标准F1帮助也能了解大概了。
实现的功能:通过执行计划功能,实现对数据片的激活或取消激活。
工作内容:
1,配置计划功能
2,写ABAP函数
---------------------------------------------------------------------------------
计划功能 这里定义好要调用的Function,要给Function传递哪些自定义参数 包括:计划范围,数据片的名字,激活/取消激活
参数组,定义具体的参数值 ,我指定A表示激活,D表示取消激活。
ABAP函数
-----------------------------------------------
FUNCTION Z_BPS_DATASLICE_ACTIVE.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(I_AREA) TYPE UPC_Y_AREA
*" REFERENCE(I_PLEVEL) TYPE UPC_Y_PLEVEL
*" REFERENCE(I_PACKAGE) TYPE UPC_Y_PACKAGE
*" REFERENCE(I_METHOD) TYPE UPC_Y_METHOD
*" REFERENCE(I_PARAM) TYPE UPC_Y_PARAM
*" REFERENCE(IT_EXITP) TYPE UPF_YT_EXITP
*" REFERENCE(ITO_CHASEL) TYPE UPC_YTO_CHASEL
*" REFERENCE(ITO_CHA) TYPE UPC_YTO_CHA
*" REFERENCE(ITO_KYF) TYPE UPC_YTO_KYF
*" EXPORTING
*" REFERENCE(ET_MESG) TYPE UPC_YT_MESG
*"----------------------------------------------------------------------
DATA: tb_UPC_DATASLICET TYPE UPC_DATASLICET OCCURS 0.
DATA: wa_UPC_DATASLICET LIKE LINE OF tb_UPC_DATASLICET.
DATA: wa_UPC_DATASLICE TYPE UPC_DATASLICE.
TYPES: BEGIN OF YS_SLICE,
SORT TYPE UPC_DATASLICE-SORT,
GUID TYPE UPC_DATASLICE-GUID,
INACTIVE TYPE UPC_DATASLICE-INACTIVE,
TEXT TYPE UPC_DATASLICET-TEXT,
T_OPTIOS TYPE UPC_YT_OPTIOS,
R_CHASEL TYPE REF TO IF_SEM_CHASEL,
STATUS(1) TYPE C,
END OF YS_SLICE.
DATA: wa_SLICE TYPE YS_SLICE.
TYPES: YTO_SLICE TYPE SORTED TABLE OF YS_SLICE WITH UNIQUE KEY SORT.
TYPES: BEGIN OF YS_AREA_SLICE,
AREA TYPE UPC_Y_AREA,
TO_SLICE TYPE YTO_SLICE,
ENQMODE TYPE ENQMODE,
END OF YS_AREA_SLICE.
DATA: ES_AREA_SLICE TYPE YS_AREA_SLICE.
DATA: wa_et_mesg TYPE upc_ys_mesg.
* Parameters of Parameters Group
DATA: wa_INACTIVE TYPE C.
DATA: wa_AREA TYPE UPC_Y_AREA.
DATA: wa_PATH TYPE UPC_Y_DATASLICETXT.
DATA: ls_exitp TYPE upf_ys_exitp.
* Get State / Param of DataSlices
READ TABLE it_exitp INTO ls_exitp WITH KEY parnm = 'DS_STATE'.
IF sy-subrc = 0.
CASE ls_exitp-chavl.
WHEN 'A'. " DataSlices must be Activated.
wa_INACTIVE = ''.
WHEN 'D'. " DataSlices must be DE-Activated.
wa_INACTIVE = 'X'.
ENDCASE.
ENDIF.
READ TABLE it_exitp INTO ls_exitp WITH KEY parnm = 'DS_AREA'.
IF sy-subrc = 0.
wa_AREA = ls_exitp-chavl.
ENDIF.
READ TABLE it_exitp INTO ls_exitp WITH KEY parnm = 'DS_PATH'.
IF sy-subrc = 0.
wa_PATH = ls_exitp-chavl.
ENDIF.
SELECT SINGLE * FROM UPC_DATASLICET
INTO wa_UPC_DATASLICET
WHERE AREA EQ wa_AREA
AND TEXT EQ wa_PATH .
SELECT SINGLE * INTO wa_UPC_DATASLICE
FROM UPC_DATASLICE
WHERE AREA EQ wa_AREA
AND SORT EQ wa_UPC_DATASLICET-SORT.
PERFORM BUFFER_DATASLICE_GET IN PROGRAM SAPLUPC_DATASLICE
USING wa_UPC_DATASLICE-AREA 'E'
CHANGING ES_AREA_SLICE.
LOOP AT ES_AREA_SLICE-TO_SLICE INTO wa_SLICE
WHERE SORT = wa_UPC_DATASLICE-SORT AND GUID = wa_UPC_DATASLICE-GUID.
wa_SLICE-INACTIVE = wa_INACTIVE.
wa_SLICE-STATUS = 'M'.
MODIFY ES_AREA_SLICE-TO_SLICE FROM wa_SLICE.
ENDLOOP.
PERFORM BUFFER_DATASLICE_UPDATE IN PROGRAM SAPLUPC_DATASLICE
CHANGING ES_AREA_SLICE.
CALL FUNCTION 'UPC_DATASLICE_COMMIT'.
CALL FUNCTION 'UPC_DATASLICE_SAVE'.
CLEAR ES_AREA_SLICE.
wa_et_mesg-MSGID = 'UPC_FW'.
wa_et_mesg-MSGTY = 'I'.
wa_et_mesg-MSGNO = '001'.
wa_et_mesg-MSGV1 = wa_UPC_DATASLICET-TEXT.
wa_et_mesg-MSGV2 = wa_UPC_DATASLICET-AREA.
wa_et_mesg-MSGV3 = wa_INACTIVE.
append wa_et_mesg to et_mesg.
ENDFUNCTION.
计划文件夹中的效果
点击取消激活按钮(e) ,数据片变为不活动,锁定取消,数据可编辑
点击激活按钮(i) ,数据片变为活动,数据锁定,不可编辑
- 使用计划功能激活数据片
- 看片计划
- IOS线程数据篇8之GCD功能使用大全:队列阻塞挂起(一次激活所有阻塞任务)
- win7 任务计划功能的使用
- 邮箱激活用户功能
- 注册邮箱激活功能
- 数据报片重组
- 测试一下贴图片功能
- 测试code 代码片功能
- 激活物料需求计划(MRP)
- 激活,数据存储,吐司
- 片手使用
- 实现邮箱激活账号功能
- Win7打开激活telnet功能
- ASP.NET邮箱激活功能
- ThinkPHP框架--邮箱激活功能
- 访问url激活功能脚本
- JavaWeb 发送 激活邮件功能
- bzoj 1014伸展树 模板题
- A*寻路 之 Layered Grid Graph
- HDU 2665 Kth number (主席树)
- 《--即时笔记--》
- Kafka入门经典教程
- 使用计划功能激活数据片
- 深入理解对象池技术
- android activtiy 启动白屏原因还有解决方法
- kaggle数据挖掘竞赛初步--Titanic<数据变换>,kaggle--titanic
- Maven学习总结(1)——Maven入门
- Android五大布局和ConstraintLayout
- MTK平台LCD屏幕旋转90度修改
- Nginx+tomcat配置集群负载均衡
- ionic select默认值不出来