今天我们看下如何做一个query 读取SO里面config的信息,然后以报表展示。
STEP1:创建Infoset; ZCONFIGURATION_SO
这里用到了structure: CONF_OUT
定义选择屏幕字段,一般来说我们是在创建query那步选定屏幕选择字段的,但是这个比较特殊,因为我们要用的SO+ITEM+material code得信息并不在conf_out里面;
=============================================================
REPORT RSAQDVP_TEMPLATE .
*
*---------------------------------------------------------------------*
* declarations
* (insert your declarations in this section)
*---------------------------------------------------------------------*
TABLES: VBAP,MARC.
data:
CONF_OUT type CONF_OUT,
it_data type standard table of CONF_OUT. .
DATA: wa_matnr LIKE vbap-matnr.
*DATA: wa_werks LIKE marc-werks.
DATA: wa_cuobj LIKE vbap-cuobj.
DATA: wa_vbeln LIKE vbap-vbeln.
DATA: wa_posnr LIKE vbap-posnr.
field-symbols: <struc> type CONF_OUT .
*-------------------------------------------------------------------*
* selection screen statements
*-------------------------------------------------------------------*
* (define your selection-screen here)
SELECT-OPTIONS: S_MATNR FOR VBAP-MATNR.
SELECT-OPTIONS: S_VBELN FOR VBAP-VBELN.
SELECT-OPTIONS: S_POSNR FOR VBAP-POSNR.
*PARAMETERS: P_WERKS LIKE MARC-WERKS MEMORY ID WRK OBLIGATORY.
* !! the following comment MUST NOT BE CHANGED !!
*<QUERY_HEAD>
*-------------------------------------------------------------------*
* read data into IT_DATA
*-------------------------------------------------------------------*
* (select your data here into internal table IT_DATA)
*break chiliz.
SELECT matnr cuobj vbeln posnr FROM vbap
INTO (wa_matnr,wa_cuobj,wa_vbeln,wa_posnr)
WHERE matnr in s_matnr
and vbeln in s_vbeln
and posnr in s_posnr.
PERFORM READ_CON USING wa_matnr wa_cuobj wa_vbeln wa_posnr.
ENDSELECT.
*------------------------------------------------------------*
* output of the data
* (this section can be left unchanged)
*------------------------------------------------------------*
loop at it_data assigning <struc>.
move-corresponding <struc> to CONF_OUT. .
* !! the following comment MUST NOT BE CHANGED !!
*<QUERY_BODY>
endloop.
FORM READ_CON USING p_matnr p_cuobj p_vbeln p_posnr.
DATA: itab type standard table of CONF_OUT,
wtab TYPE CONF_OUT.
clear itab.
CALL FUNCTION 'VC_I_GET_CONFIGURATION'
EXPORTING
INSTANCE = p_cuobj
* BUSINESS_OBJECT =
LANGUAGE = SY-LANGU
* PRINT_SALES = ' '
* PRINT_PURCHASE = ' '
* PRINT_ENGINEERING = ' '
* IDOC_MODE = ' '
* ANW_SICHT = ' '
* EXCL_IND = ' '
* IV_INVALID_POSSIBLE = ' '
* IV_MAX_MASSPROCESSING = 0
* IV_EXPLICIT_ORGAREA = ' '
* IV_NO_DESCRIPTION = ' '
* IV_USER = ' '
* IV_NO_VALUE_CHECK = 'X'
* IV_NO_DIALOG = ' '
* IV_DISPLAY_WARNING = ' '
TABLES
CONFIGURATION = itab
* CONFIGURATION_IDOC =
EXCEPTIONS
INSTANCE_NOT_FOUND = 1
INTERNAL_ERROR = 2
NO_CLASS_ALLOCATION = 3
INSTANCE_NOT_VALID = 4
OTHERS = 5
.
++++++++++++++++++以下这段可以不要,是这边公司的客户特殊要求++++++++++++++++
loop at itab INTO wtab.
CONCATENATE p_vbeln p_posnr into wtab-atnam.
wtab-atbez = p_matnr.
APPEND wtab to it_data.
ENDLOOP.
ENDFORM.
STEP2: 把infoset 分配给user group
step3: 创建QUERY,把infoset 分配给query