ALV - Multiple item tables
Hi Guys,
Is there any way in ALV to dispaly one header table and 2 correspoding item tables.
Using F.M 'REUSE_ALV_HIERSEQ_LIST_DISPLAY' we can display one header and one item (tables) but in my case in want display 2 item tables.
ie, basicaly 3 levels header, item1 and item 2.
Waiting for your reply,
Steevan
Hello Steeven,
Pls check the demo program <b>BALVBT02</b>, which deals with multiple tables.
Thanks&Regards,
Siri.
Similar Messages
-
ALV for one header and multiple item table
Hello All,
I have a requirement to display records from one header and three item table using ALV.
The output should be such that
1-line - record from header table
followed by - records from the 1st item table(can have multiple entries corresponding to a header record and each should be displayed on separate line)
followed by - records from 2nd item table(can have multiple entries corresponding to a header record and each should be displayed on separate line)
followed by - record from 3rd item table(can have multiple entries corresponding to a header record and each should be displayed on separate line)
Can you help me out.
Thanks and regards,
Subramanian.hi
data population is same for alv or normal reporting.
First you select the data from header
select from item data using for all entries in it_header where....
select item 2
selct item 3
loop a it_header
read item1
read item2
read item3
check sy-subrc
move to i_final
then build fieldcatalog and display..
look the example
SELECT PERNR
STELL
WERKS
ABKRS
ENAME
ENDDA
BEGDA
ORGEH
PERSG
PERSK
KOSTL
FROM PA0001
INTO TABLE I_PA0001
WHERE PERNR IN S_PERNR
AND ABKRS IN S_ABKRS
AND PERSG IN S_PERSG.
SELECT SPRSL
STELL
ENDDA
STLTX
FROM T513S
INTO TABLE I_T513S
FOR ALL ENTRIES IN I_PA0001
WHERE STELL = I_PA0001-STELL AND SPRSL = 'EN'.
SELECT PERSA
NAME1
FROM T500P
INTO TABLE I_T500P
FOR ALL ENTRIES IN I_PA0001
WHERE PERSA EQ I_PA0001-WERKS.
LOOP AT I_PA0001 .
READ TABLE I_T513S INTO WA_T513S WITH KEY STELL = WA_PA0001-STELL
SPRSL = 'EN'
ENDDA = WA_PA0001-ENDDA.
IF SY-SUBRC IS INITIAL.
MOVE WA_T513S-STLTX TO WA_FINAL-STLTX.
ENDIF.
V_SNO = V_SNO + 1.
Read Value For Personal area Text.
READ TABLE I_T500P INTO WA_T500P WITH KEY
PERSA = WA_PA0001-WERKS.
IF SY-SUBRC EQ 0.
MOVE WA_T500P-NAME1 TO WA_FINAL-NAME1.
ENDIF.
FORM DISPLAY_DATA .
--BUILDING FIELD CATALOG--
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = V_REPID
I_INTERNAL_TABNAME = 'I_FINAL'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = V_REPID
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = I_FCAT[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 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.
ENDIF.
*--Modifying titles of Field Catalog--
READ TABLE I_FCAT INTO WA_FCAT WITH KEY FIELDNAME = 'S_NO'.
IF SY-SUBRC EQ 0.
WA_FCAT-REPTEXT_DDIC = 'X'.
WA_FCAT-SELTEXT_S = TEXT-041.
WA_FCAT-SELTEXT_M = TEXT-041.
WA_FCAT-SELTEXT_L = TEXT-041.
WA_FCAT-OUTPUTLEN = 3.
WA_FCAT-JUST = 'L'.
MODIFY I_FCAT FROM WA_FCAT INDEX SY-TABIX.
CLEAR WA_FCAT.
ENDIF.
do for all the fields u want to display..
Award points if useful. -
Hi,
The ability to select multiple items (tables, procedures, packages etc) and press the 'Delete' button to drop the objects from the database is a nice feature.
Unfortunately it becomes very annoying when you have to click 'Yes' (or ALT-Y) for each object. Any chance of there being a 'Yes to all' button in the "Drop Confirmation" dialog in a future release of Raptor?
Regards,
RoaldHi mettemusens,
FYI:
No multiple table delete feature in current version in development.
There is a 'Privileges on multiple tables' feature request which seems related.
There is a bug/enhancement request against SQLDeveloper
bug 5855085 JDEV: SUPPORT DROP OF MULTIPLE OBJECTS,
[JDEV: means it is JDeveloper related] but I am unsure of it's priority
(and it does not look like it has been addressed yet).
-Turloch -
How to find the selected item in alv grid or table control
can any one tell me please
how to find the selected item in alv grid or table controlIn table control, If you goto screen painter and goto table control properties ( f2 ), there is one check-box w/selColumn check that and give column name. Then add that column to your internal table.
IN PAI
LOOP AT it_tkhdr.
FIELD it_tkhdr-sel_row
MODULE tab_tkhdr_mark ON REQUEST.
ENDLOOP.
MODULE tab_tkhdr_mark INPUT.
MODIFY it_tkhdr INDEX tc_tkhdr-current_line.
ENDMODULE. " tab_tkhdr_mark INPUT
here it_TKHDR is internal table sel_row is field for selection
After that, you can loop at it_tkhdr where sel_row is 'X' to get selected rows.
regards,
Gagan -
For multiple item selection in Table
Plz use this code and paste it in perticular event of button. when u excute the application ,To select multiple items plz catch shift in keyboard otherwise u can select only single item.
int n = wdContext.nodeProducts().size();
int leadSelected = wdContext.nodeProducts().getLeadSelection();
// loop backwards to avoid index troubles
for (int i = n - 1; i >= 0; --i) {
if (wdContext.nodeProducts().isMultiSelected(i) || leadSelected == i) {
wdContext.nodeProducts().removeElement(wdContext.nodeProducts().getElementAt(i));Hi Vishal
Thats the way the webdynpro table has been designed to work for multiple selection...on click of the Ctrl key or Shift key. There is no other alternative for this.
What would your question be?
Thanks
oj -
Get Node Key Multiple Items Selected from ALV tree
Hello Experts,
I'm having a problem in getting Node keys for the items displayed as ALV tree.
I'm able to get Node key, when only ONE record (Item) is selected.
But, when I select multiple items under a Single node am not able to read(get) the node keys for all the selected items.
I'm using the classCL_GUI_ALV_TREE.
I have tried using the method GET_CHECKED_ITEMS, but not getting the keys.
method GET_SELECTED_ITEM is giving node for a single item. I need it for multiple items selected.
Thank you for your time.
-SANGARHi,
You need to use checkbox concept. and use method GET_CHECKED_ITEMS get selected items
please check this tread.
CL_GUI_ALV_TREE and Checkboxes
aRs -
Missing "Select Multiple Items" in Report Filter for Pivot Table in Excel Services
I have a Pivot Table with a Report Filter in Excel 2013.
When I click the Report Filter in Excel , I get the check-box option to "Select Multiple Items".
But , when the same Report.xls is published to SharePoint 2013 Excel Services,
the check-box-option is missing ! and the default is "Multi-select", and there is no way to disable or toggle Multi-select
is there any fix ?
thanksThank you Naveen, I have already read this , and checked ,
But, it does not fix my issue :(
All my desktops are set at 100%.
All my List Items show as Check-boxes, ok.
The problem is: that check-box option "Select Multiple Items" , just above the OK button, is missing when I run the report in Excel Services.
So I have no way to toggle Select Single Items only.
But when I Open this same report in Excel, everything works well.
Is there any Fix for Excel Service /Sharepoint 2013.
Paul -
Submit multiple item without "Repeating table"
Hi
How can I do submit multiple item in list with single infopath form without repeating table?Create a workflow and create items with what ever information you want.
Regards, Kapil ***Please mark answer as Helpful or Answered after consideration*** -
MULTIPLE ITEM PROBLEM IN VL31N BDC
hI FRIENDS ,
I AM POSTING A BDC OF TRANSACTION VL31N ,ie FOR SCHEDULE AGREEMENT INBOUND DELIVERY.I CREATE A FUNCTIONAL MODULE OF THE SAME AND CALL IT FROM AN ASP PAGE,IN THAT THERE IS PO NUMBER 5500000986 WHICH HAS TWO ITEMES 62 AND 95 RESPECTIVLY OF SAME MATARIAL NUMBER R010230123041002 AND DIE NUMBER 2304P,NOW THE PROBLEM IS THIS BDC IS WORKING WHEN THERE IS ONLY ONE ITEM BUT GIVES AN ERROR "CANT CREAT INBOUND DELIVERY FOR PO NO ...' WNEN IT HAS MULTIPLE ITEM.WHAT SHOULD I DO ? I ALSO USED LOOP BUT IT ALSO DOSENT WORK AS IT WILL ADD ALL OPEN QTY OF PO 986 AND UPDATE AGAINST ITEM NO 95.
CODE IS AS FOLLOWS:.........
FUNCTION y_synie_bdcinbdly.
""Local interface:
*" IMPORTING
*" VALUE(CTU) LIKE APQI-PUTACTIVE DEFAULT 'X'
*" VALUE(MODE) LIKE APQI-PUTACTIVE DEFAULT 'N'
*" VALUE(UPDATE) LIKE APQI-PUTACTIVE DEFAULT 'L'
*" VALUE(GROUP) LIKE APQI-GROUPID OPTIONAL
*" VALUE(USER) LIKE APQI-USERID OPTIONAL
*" VALUE(KEEP) LIKE APQI-QERASE OPTIONAL
*" VALUE(HOLDDATE) LIKE APQI-STARTDATE OPTIONAL
*" VALUE(NODATA) LIKE APQI-PUTACTIVE DEFAULT '/'
*" VALUE(EXTNID) LIKE MAKT-MAKTG
*" VALUE(VENDORNO) LIKE LFA1-LIFNR
*" VALUE(PONUMBER) LIKE EKKO-EBELN
*" VALUE(ITEMNUMBER) LIKE LIPS-VGPOS
*" VALUE(MATERIAL) LIKE MAKT-MAKTG
*" VALUE(DLYQTY) LIKE LIPS-LFIMG
*" VALUE(BTCHNO) LIKE LIPS-CHARG
*" VALUE(POSLR) LIKE EKES-EBELP OPTIONAL
*" EXPORTING
*" VALUE(SUBRC) LIKE SYST-SUBRC
*" VALUE(INDELYNO) LIKE SY-MSGV2
*" VALUE(MSG1) LIKE SY-MSGV1
*" VALUE(MSG2) LIKE SY-MSGV2
*" VALUE(MSG3) LIKE SY-MSGV3
*" VALUE(MSG4) LIKE SY-MSGV4
*" TABLES
*" MESSTAB STRUCTURE BDCMSGCOLL
*" ERRTAB STRUCTURE YSYNERRMSGS
*" INDLYTAB STRUCTURE YSYN_QTYTAB
Updated by ANAND SYNISE 19.1.2007
DATA: BEGIN OF bdctab OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF bdctab.
DATA: datenow(10) TYPE c,
fldvar(30) TYPE c,
fldno TYPE i,
flditoc(6) TYPE c,
qty(13) TYPE c.
DATA maxposnr LIKE lips-posnr.
DATA testposnr TYPE posnr.
DATA itemnoint TYPE i.
CONCATENATE sy-datum6(2) '.' sy-datum4(2) '.' sy-datum+0(4) INTO datenow.
CLEAR bdctab.
REFRESH bdctab.
PERFORM open_group USING group user keep holddate ctu.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '4007'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'RV50A-VERUR_LA'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '/00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-LIFNR'.
bdctab-fval = vendorno.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LV50C-BSTNR'.
bdctab-fval = ponumber.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-VERUR_LA'.
bdctab-fval = extnid.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=MKAL_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIKP-BLDAT'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=POPO_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-POSNR(01)'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '0111'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'RV50A-PO_MATNR'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = 'WEIT'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-PO_MATNR'.
bdctab-fval = material.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=POLO_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-POSNR(01)'.
APPEND bdctab.
*ADDED BY ANAND ON 22-01-2007
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = ITEMNUMBER . "ITEMNUMBER = LIPS-VGPOS
APPEND bdctab.
************ENDED***********************
ADDED BY MILIND 19.01.2007
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = poslr .
APPEND bdctab.
* ENDED * *
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LIPS_SELKZ(01)'.
bdctab-fval = ''.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '/00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-CHARG(01)'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
QTY = INDLYTAB-DLYQTY.
qty = dlyqty.
bdctab-fnam = 'LIPSD-G_LFIMG(01)'.
bdctab-fval = QTY.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIPS-CHARG(01)'.
* BDCTAB-FVAL = INDLYTAB-BTCHNO.
bdctab-fval = btchno.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=SICH_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-MATNR(02)'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CALL TRANSACTION 'VL31N' USING bdctab MODE 'N' MESSAGES INTO messtab.
subrc = sy-subrc.
PERFORM close_group USING ctu.
CLEAR bdctab.
REFRESH bdctab.
IF sy-subrc EQ 0.
indelyno = sy-msgv2.
ENDIF.
LOOP AT messtab.
MOVE: messtab-msgid TO errtab-msgid,
messtab-msgnr TO errtab-msgnr,
messtab-msgv1 TO errtab-msg1,
messtab-msgv2 TO errtab-msg2,
messtab-msgv3 TO errtab-msg3,
messtab-msgv4 TO errtab-msg4.
APPEND ERRtab.
ENDLOOP.
LOOP AT errtab.
SELECT SINGLE text FROM t100
INTO errtab-errmsg
WHERE msgnr EQ errtab-msgnr AND arbgb EQ errtab-msgid
AND sprsl EQ sy-langu.
MODIFY errtab.
ENDLOOP.
ENDFUNCTION.Hi,
Check this code:
REPORT Z_CUSTOMER_UPLOAD .
D A T A D E C L A R A T I O N S *
DATA:BEGIN OF IT_CUSTOMER OCCURS 0,
KUNNR LIKE MV10A-KUNNR,
VKORG LIKE MV10A-VKORG,
VTWEG LIKE MV10A-VTWEG,
MATNR LIKE MV10A-MATNR,
KDMAT LIKE MV10A-KDMAT,
MEGRU LIKE MV10A-MEGRU,
SELKZ TYPE C value 'X',
LPRIO LIKE MV10A-LPRIO,
ANTLF LIKE MV10A-ANTLF,
END OF IT_CUSTOMER.
DATA:BEGIN OF IT_success OCCURS 0,
KUNNR LIKE MV10A-KUNNR,
VKORG LIKE MV10A-VKORG,
VTWEG LIKE MV10A-VTWEG,
MATNR LIKE MV10A-MATNR,
KDMAT LIKE MV10A-KDMAT,
MEGRU LIKE MV10A-MEGRU,
SELKZ TYPE C value 'X',
LPRIO LIKE MV10A-LPRIO,
ANTLF LIKE MV10A-ANTLF,
END OF IT_success.
DATA:BEGIN OF IT_error OCCURS 0,
KUNNR LIKE MV10A-KUNNR,
VKORG LIKE MV10A-VKORG,
VTWEG LIKE MV10A-VTWEG,
MATNR LIKE MV10A-MATNR,
KDMAT LIKE MV10A-KDMAT,
MEGRU LIKE MV10A-MEGRU,
SELKZ TYPE C value 'X',
LPRIO LIKE MV10A-LPRIO,
ANTLF LIKE MV10A-ANTLF,
END OF IT_error.
DATA: L_INDEX TYPE SY-TABIX.
DATA:IT_BDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
IT_DATA TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
ERROR MESSAGE TABLE
DATA:IT_MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA : C_S TYPE C VALUE 'S',
C_E TYPE C VALUE 'E'.
*DATA: IT_SUCCESS LIKE IT_CUSTOMER OCCURS 0,
IT_ERROR LIKE IT_CUSTOMER OCCURS 0.
DATA : V_RECTOT TYPE I,
V_RECERR TYPE I,
V_RECSUC TYPE I.
S E L E C T I O N - S C R E E N *
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER : P_FILE LIKE RLGRAP-FILENAME .
SELECTION-SCREEN : END OF BLOCK B1.
A T S E L E C T I O N - S C R E E N *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
to get F4 help for p_file
PERFORM F4_FILENAME USING P_FILE.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
Uploading data from flat file into it_tab
PERFORM BDC_UPLOAD USING P_FILE.
PERFORM PROCESS_DATA.
PERFORM POPULATE_BDC.
E N D O F S E L E C T I O N *
*END-OF-SELECTION.
PERFORM DISPLAY_REPORT.
*& Form F4_FILENAME
text
-->P_P_FILE text
FORM F4_FILENAME USING P_P_FILE.
DATA:L_FILE TYPE IBIPPARMS-PATH.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = L_FILE .
P_P_FILE = L_FILE.
ENDFORM. " F4_FILENAME
*& Form BDC_UPLOAD
text
-->P_P_FILE text
FORM BDC_UPLOAD USING P_P_FILE.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_P_FILE
I_BEGIN_COL = 1
I_BEGIN_ROW = 1
I_END_COL = 8
I_END_ROW = 1000
TABLES
INTERN = IT_DATA
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 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.
ENDIF.
ENDFORM. " BDC_UPLOAD
*& Form PROCESS_DATA
text
--> p1 text
<-- p2 text
FORM PROCESS_DATA.
SORT IT_DATA BY ROW COL.
LOOP AT IT_DATA.
CASE IT_DATA-COL.
WHEN 1.
IT_CUSTOMER-KUNNR = IT_DATA-VALUE.
WHEN 2.
IT_CUSTOMER-VKORG = IT_DATA-VALUE.
WHEN 3.
IT_CUSTOMER-VTWEG = IT_DATA-VALUE.
WHEN 4.
IT_CUSTOMER-MATNR = IT_DATA-VALUE.
WHEN 5.
IT_CUSTOMER-KDMAT = IT_DATA-VALUE.
WHEN 6.
IT_CUSTOMER-MEGRU = IT_DATA-VALUE.
WHEN 7.
IT_CUSTOMER-LPRIO = IT_DATA-VALUE.
WHEN 8.
IT_CUSTOMER-ANTLF = IT_DATA-VALUE.
APPEND IT_CUSTOMER.
ENDCASE.
ENDLOOP.
ENDFORM. " PROCESS_DATA
*& Form POPULATE_BDC
text
--> p1 text
<-- p2 text
FORM POPULATE_BDC.
DATA:L_COUNTER TYPE N,
L_STRING TYPE STRING.
LOOP AT IT_CUSTOMER.
AT NEW KUNNR.
CLEAR L_COUNTER.
L_INDEX = SY-TABIX.
READ TABLE IT_CUSTOMER INDEX L_INDEX.
perform bdc_dynpro using 'SAPMV10A' '0100'.
perform bdc_field using 'MV10A-KUNNR'
IT_CUSTOMER-KUNNR.
perform bdc_field using 'MV10A-VKORG'
IT_CUSTOMER-VKORG.
perform bdc_field using 'MV10A-VTWEG'
IT_CUSTOMER-VTWEG.
perform bdc_field using 'BDC_OKCODE'
'/00'.
ENDAT.
L_COUNTER = L_COUNTER + 1.
CLEAR L_STRING.
perform bdc_dynpro using 'SAPMV10A' '0200'.
CONCATENATE 'MV10A-MATNR(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-MATNR.
CONCATENATE 'MV10A-KDMAT(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-KDMAT.
CONCATENATE 'MV10A-MEGRU(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-MEGRU.
perform bdc_field using 'BDC_OKCODE'
'/00'.
*-- For Page down in Call Transaction Mode
IF L_COUNTER = 14.
CLEAR L_COUNTER.
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=P+'.
ENDIF.
perform bdc_dynpro using 'SAPMV10A' '0200'.
CONCATENATE 'MV10A-SELKZ(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-SELKZ.
perform bdc_field using 'BDC_OKCODE'
'=SELE'.
perform bdc_dynpro using 'SAPMV10A' '0300'.
perform bdc_field using 'MV10A-KDMAT'
IT_CUSTOMER-KDMAT.
perform bdc_field using 'MV10A-LPRIO'
IT_CUSTOMER-LPRIO.
perform bdc_field using 'MV10A-ANTLF'
IT_CUSTOMER-ANTLF.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/EBACK'.
at end of kunnr.
READ TABLE IT_CUSTOMER INDEX L_INDEX.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
CALL TRANSACTION 'VD51' USING IT_BDC MODE 'A' UPDATE 'S'
MESSAGES INTO IT_MESSAGES.
CLEAR IT_BDC.
REFRESH IT_BDC.
ENDAT.
IF NOT IT_MESSAGES[] IS INITIAL.
PERFORM FORMAT_MESSAGE.
ENDIF.
ENDLOOP.
ENDFORM. " POPULATE_BDC
*& Form bdc_dynpro
text
-->P_0273 text
-->P_0274 text
FORM bdc_dynpro USING VALUE(P_0273)
VALUE(P_0274).
IT_BDC-PROGRAM = P_0273.
IT_BDC-DYNPRO = P_0274.
IT_BDC-DYNBEGIN = 'X'.
APPEND IT_BDC.
CLEAR IT_BDC.
ENDFORM. " bdc_dynpro
*& Form bdc_field
text
-->P_0278 text
-->P_RECORD_KUNNR_001 text
FORM bdc_field USING VALUE(P_0278)
VALUE(P_0279).
IT_BDC-FNAM = P_0278.
IT_BDC-FVAL = P_0279.
APPEND IT_BDC.
CLEAR IT_BDC.
ENDFORM. " bdc_field
*& Form FORMAT_MESSAGE
text
--> p1 text
<-- p2 text
FORM FORMAT_MESSAGE.
DATA: L_MSG(100).
LOOP AT IT_MESSAGES.
READ TABLE IT_CUSTOMER INDEX L_INDEX.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = IT_MESSAGES-MSGID
LANG = SY-LANGU
NO = IT_MESSAGES-MSGNR
V1 = IT_MESSAGES-MSGV1
V2 = IT_MESSAGES-MSGV2
V3 = IT_MESSAGES-MSGV3
V4 = IT_MESSAGES-MSGV4
IMPORTING
MSG = L_MSG
EXCEPTIONS
NOT_FOUND = 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.
ENDIF.
write:/ l_msg.
ENDLOOP.
ENDFORM. " FORMAT_MESSAGE
reward if helpful,
keerthi -
Populate Multiple Items bundled in a single query
Hello,
I am trying to create a report in which I have mulitple items that I want to populate. All of these use the same query but use different rows in the query to populate themselves. My question is:-
Is there a way to bundle the item assignment into a single query and populate the items from there? I want to reduce the time it takes for me to display the report and just hit the database once instead.Hi there,
when u say report, i think its a more of a page showing few items on a region whose values are populated from Database rather than a SQL report which will not have any items. Is that correct?
yes, multiple items of a page can be assigned values at once.
assume: P1_ITEM1,P1_ITEM2,P1_ITEM3,P1_ITEM4 are different items on a page, an "On-Load Before Header" PL/SQL process can be created to assign values to the items in this way:
SELECT tab.col1,tab.col2,tab.col3,tab.col4 INTO :P1_ITEM1,:P1_ITEM2,:P1_ITEM3,:P1_ITEM4 FROM TABLE tab;
Item "Source Used" should be of type: Only When Current Value in session state is null
Source Type: PL/SQL Expression or function
and Source Value or EXpression should be some thing like this :P1_ITEM1
Hope this helps.
Edited by: Chaitu_Apex on Mar 10, 2010 2:43 PM -
Problem in multiple item for change document objects
hi gurus,
I have created change document object in tcode SCDO . It had giveN function module /TMW/CHG_OBJ1_WRITE_DOCUMENT.
CDPOS AND CDHDR tables are updated with changed data. now i am trying to display all old and new data in se38 program.
here my problem is when ever i changed multiple item data , my program showing first item details only . I need to show all item data when ever i changed parallel . please help me where is my problem .
thank youI think this is issue with function module generated thru SCDO Please check in your function module inside that the following function modules are used
CALL FUNCTION 'CHANGEDOCUMENT_OPEN'
CALL FUNCTION 'CHANGEDOCUMENT_MULTIPLE_CASE'
CALL FUNCTION 'CHANGEDOCUMENT_CLOSE'
if not then there may be issue with SCDO
a® -
Collect data from a dynamic XML file into multiple internal tables
I need to convert the XML file into multiple internal tables. I tried many links and posts in SDN but still was facing difficulty in achieving this. Can some one tell me where I am going wrong.
My XML file is of the following type.It is very complex and the dynamice.
The following tags occur more than once in the XML file. The "I" and "L" tags and its child tags can occur ones or more than once for each XML file and it is not constant. i.e in one file they can occur 1 time and in another they can occur 100 times.
"I" and "L" are child tags of <C>
<I>
<J>10</J>
<K>EN</K>
</I>
<L>
<J>20</J>
<N>BB</N>
</L>
Tags <C> and <F> occur only ones for each XML file. <C> is the child tag of "A" and "F" is the child tag of <C>.
I need to collect <D>, <E> in one internal table ITAB.
I need to collect <G>, <H> in one internal table JTAB.
I need to collect <J>, <K> in one internal table KTAB.
I need to collect <J>, <N> in one internal table PTAB.
Below is the complete XML file.
?xml version="1.0" encoding="iso-8859-1" ?>
<A>
<B/>
<C>
<D>RED</D>
<E>999</E>
<F>
<G>TRACK</G>
<H>PACK</H>
</F>
<I>
<J>10</J>
<K>EN</K>
</I>
<I>
<J>20</J>
<K>TN</K>
</I>
<I>
<J>30</J>
<K>KN</K>
</I>
<L>
<J>10</J>
<N>AA</N>
</L>
<L>
<J>20</J>
<N>BB</N>
</L>
<L>
<J>30</J>
<N>CC</N>
</L>
</C>
</A>
With the help of SDN I am able to gather the values of <D> <E> in one internal table.
Now if I need to gather
<G>, <H> in one internal table JTAB.
<J>, <K> in one internal table KTAB.
<J>, <N> in one internal table PTAB.
I am unable to do. I am following XSLT transformation method. If some one has some suggestions. Please help.
Here is my ABAP program
TYPE-POOLS abap.
CONSTANTS gs_file TYPE string VALUE 'C:\TEMP\ABCD.xml'.
* This is the structure for the data from the XML file
TYPES: BEGIN OF ITAB,
D(10) TYPE C,
E(10) TYPE C,
END OF ITAB.
* Table for the XML content
DATA: gt_itab TYPE STANDARD TABLE OF char2048.
* Table and work ares for the data from the XML file
DATA: gt_ITAB TYPE STANDARD TABLE OF ts_ITAB,
gs_ITAB TYPE ts_ITAB.
* Result table that contains references
* of the internal tables to be filled
DATA: gt_result_xml TYPE abap_trans_resbind_tab,
gs_result_xml TYPE abap_trans_resbind.
* For error handling
DATA: gs_rif_ex TYPE REF TO cx_root,
gs_var_text TYPE string.
* Get the XML file from your client
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = gs_file
CHANGING
data_tab = gt_itab1
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* Fill the result table with a reference to the data table.
* Within the XSLT stylesheet, the data table can be accessed with
* "IITAB".
GET REFERENCE OF gt_shipment INTO gs_result_xml-value.
gs_result_xml-name = 'IITAB'.
APPEND gs_result_xml TO gt_result_xml.
* Perform the XSLT stylesheet
TRY.
CALL TRANSFORMATION zxslt
SOURCE XML gt_itab1
RESULT (gt_result_xml).
CATCH cx_root INTO gs_rif_ex.
gs_var_text = gs_rif_ex->get_text( ).
MESSAGE gs_var_text TYPE 'E'.
ENDTRY.
* Now let's see what we got from the file
LOOP AT gt_ITAB INTO gs_ITAB.
WRITE: / 'D:', gs_ITAB-D.
WRITE: / 'E :', gs_ITAB-E.
ENDLOOP.
Transformation
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output encoding="iso-8859-1" indent="yes" method="xml" version="1.0"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<IITAB>
<xsl:apply-templates select="//C"/>
</IITAB>
</asx:values>
</asx:abap>
</xsl:template>
<item>
<D>
<xsl:value-of select="D"/>
</D>
<E>
<xsl:value-of select="E"/>
</E>
</item>
</xsl:template>
</xsl:transform>
Now the above pgm and transformation work well and I am able to extract data into the ITAB. Now what changes should I make in transformation and in pgm to collect
<G>, <H> in one internal table JTAB.
<J>, <K> in one internal table KTAB.
<J>, <N> in one internal table PTAB.
Please help..i am really tring hard to figure this out. I am found lot of threads addressing this issue but not my problem.
Kindly help.
Regards,
VSHi Rammohan,
Thanks for the effort!
But I don't need to use GUI upload because my functionality does not require to fetch data from presentation server.
Moreover, the split command advised by you contains separate fields...f1, f2, f3... and I cannot use it because I have 164 fields. I will have to split into 164 fields and assign the values back to 164 fields in the work area/header line.
Moreover I have about 10 such work areas. so the effort would be ten times the above effort! I want to avoid this! Please help!
I would be very grateful if you could provide an alternative solution.
Thanks once again,
Best Regards,
Vinod.V -
HTML + JQuery (CSOM) to add multiple item to a Sharepoint list and get their IDs
Hi everyone.
I try to use HTML + JQuery in CEWP to build some sort of analog of InfoPath's repeating table in order to be able to insert multiple items in a Sharepoint list using CSOM.
The current task is to get the IDs of inserted items (in order to use those IDs later to add attachments to the list items) as soon as they are added to the list. I've tried several ways but couldn't get the IDs of all inserted items. Usually
I get "-1" as an ID for every item except the last one, which returns me the correct ID.
Bellow is the code.
<script src="/testsite1/SiteAssets/jquery-1.11.1.min.js" type="text/javascript"></script>
<script src="/testsite1/SiteAssets/jquery.SPServices.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
var click = 1;
$("#btn_id_1").click(function() {
click ++;
$("#tr_id_1").clone().appendTo("#tbl_id_1").attr("id", "tr_id_" + click.toString()).find("input").val("");
$("#btn_id_2").click(function() {
Save();
function Save() {
var ctx = new SP.ClientContext.get_current();
var taskList = ctx.get_web().get_lists().getByTitle('Tasks');
var taskItemInfo = new SP.ListItemCreationInformation();
var vendor;
var certname;
var certid;
$("#tbl_id_1 tr").each(function() {
vendor = ($(this).find(".vendor")).val();
certname = ($(this).find(".certname")).val();
certid = ($(this).find(".certid")).val();
newTask = taskList.addItem(taskItemInfo);
newTask.set_item('Title', vendor);
newTask.set_item('Request_', certname);
newTask.set_item('h', certid);
newTask.update();
ctx.load(newTask);
ctx.executeQueryAsync(addTaskSuccess, addTaskFailure);
//timeout();
function timeout() {
alert ("!!!");
function addTaskSuccess(sender, args) {
alert(newTask.get_id());
//AddAttachment(newTask.get_id())
function addTaskFailure(sender, args) {
//alert(newTask.get_id());
alert("no");
window.location = window.location.pathname;
</script>
<div id="div_id_1" class="div_class_1">
<table id="tbl_id_1">
<tbody>
<tr id="tr_id_1">
<td>Vendor:<br><input type="text" class="vendor" /></td>
<td>Cert. Name:<br><input type="text" class="certname" /></td>
<td>Cert. ID:<br><input type="text" class="certid" /></td>
<td>Attachment:<br><input type="file" class="attachment" /></td>
</tr>
</tbody>
</table>
<div><button id="btn_id_1" type="button" width="10" height="10">+</button></div>
<div><button id="btn_id_2" type="button">Save</button></div>
</div>Here's a working solution (thanks to
this guy)
<script src="/testsite1/SiteAssets/jquery-1.11.1.min.js" type="text/javascript"></script>
<script src="/testsite1/SiteAssets/jquery.SPServices.min.js" type="text/javascript"></script>
<script type="text/javascript">
var array = [];
$(document).ready(function() {
var click = 1;
$("#btn_id_1").click(function() {
click ++;
$("#tr_id_1").clone().appendTo("#tbl_id_1").attr("id", "tr_id_" + click.toString()).find("input").val("");
$("#btn_id_2").click(function() {
//Save();
//Call();
var asyncPromises = Save();
asyncPromises.done(function(result) {
//alert(array.length);
console.log(array.length);
for (var i=0; i<array.length; i++) {
//alert(array[i].get_id());
console.log(array[i].get_id());
asyncPromises.fail(function(result) {
function Save() {
var buildDeferredSaves = $.Deferred(function() {
//var array = [];
var ctx = new SP.ClientContext.get_current();
var taskList = ctx.get_web().get_lists().getByTitle('Tasks');
var taskItemInfo;
var vendor;
var certname;
var certid;
$("#tbl_id_1 tr").each(function() {
vendor = ($(this).find(".vendor")).val();
certname = ($(this).find(".certname")).val();
certid = ($(this).find(".certid")).val();
taskItemInfo = new SP.ListItemCreationInformation();
newTask = taskList.addItem(taskItemInfo);
newTask.set_item('Title', vendor);
newTask.set_item('Request_', certname);
newTask.set_item('h', certid);
newTask.update();
ctx.load(newTask);
array.push(newTask);
ctx.executeQueryAsync(
function() {
// Successful
buildDeferredSaves.resolve();
function(sender, args) {
// Failure
buildDeferredSaves.reject(args.get_message());
return buildDeferredSaves.promise();
</script>
<div id="div_id_1" class="div_class_1">
<table id="tbl_id_1">
<tbody>
<tr id="tr_id_1">
<td>Vendor:<br><input type="text" class="vendor" /></td>
<td>Cert. Name:<br><input type="text" class="certname" /></td>
<td>Cert. ID:<br><input type="text" class="certid" /></td>
<td>Attachment:<br><input type="file" class="attachment" /></td>
</tr>
</tbody>
</table>
<div><button id="btn_id_1" type="button" width="10" height="10">+</button></div>
<div><button id="btn_id_2" type="button">Save</button></div>
</div> -
Transfer data from ALV to Z table
Hi,
I need to confirm the exact procedure to transfer data from ALV into z table.I am entering few values at runtime in the ALV & need to populate the z table with the same.
I created a z table,it has been assigned a internal table & work area.A loop is there on the internal table passed to fieldcatalog.
LOOP AT GIT_EKPO INTO GS_EKPO.
LS_ZPS005-EBELN = GS_EKPO-EBELN.
LS_ZPS005-EBELP = GS_EKPO-EBELP.
LS_ZPS005-ERECDAT = GS_EKPO-ERDAT. "this field is not passing value into z table
LS_ZPS005-LINEID = SY-TABIX.
LS_ZPS005-POQTY = GS_EKPO-POQTY.
LS_ZPS005-EREQTY = GS_EKPO-EREQTY. "this field is not passing value into z table
ENDLOOP.
INSERT INTO ZPS005 VALUES LS_ZPS005.
When I assign the values from Internal table into internal table of z table,the values in fields populated at runtime does not come.
Please help me with your suggestions on the same.
Thanks.Hi,
I tried the procedure,but do I need to include this before method set_table_for_first_display?
You can have a look at the whole code.Please let me know of a possible solution.Looking forward to an early reply.
Thanks.
TABLES: EKKO,
EKPO,
ZPS005.
INITIALIZATION.
PERFORM CREATE_FIELD_CATLOG.
Types Declaration *
*Structure for EKPO table
TYPES: BEGIN OF TYPE_EKPO,
EBELN TYPE EKPO-EBELN, "PURCHSE ORDER NUMBER
EBELP TYPE EKPO-EBELP, "Item Number of Purchasing Document
POQTY TYPE EKPO-MENGE, "Purchase Order Quantity
ERDAT TYPE SY-DATUM, "Date on Which Record Was Created
LINEID TYPE ZPS005-LINEID, "Unique identification of document line
EREQTY TYPE ZPS005-EREQTY, "Erection Quantity
END OF TYPE_EKPO.
Data *
Data Declaration for Internal Table & Work Area *
*INTERNAL TABLE FOR EKPO TABLE
DATA:LIT_EKPO TYPE TABLE OF EKPO,
LS_EKPO TYPE EKPO.
*SECOND INTERNAL TABLE FOR EKPO TABLE
DATA: GIT_EKPO TYPE TABLE OF TYPE_EKPO.
DATA: GS_EKPO TYPE TYPE_EKPO.
*INTERNAL TABLE FOR FIELD CATALOG
DATA: LIT_FIELDCAT TYPE lvc_t_fcat,
LS_FIELDCAT LIKE LINE OF LIT_FIELDCAT. "WORK AREA FOR FIELD CATALOG
*INTERNAL TABLE FOR Z TABLE ZPS005
DATA: LIT_ZPS005 TYPE TABLE OF ZPS005,
LS_ZPS005 TYPE ZPS005.
ALV GRID Data Declaration *
DATA: V_CONTAINER TYPE REF TO cl_gui_custom_CONTAINER.
data: grid TYPE REF TO cl_gui_alv_grid.
data: ok_code type sy-ucomm.
DATA: V_LAYOUT TYPE lvc_s_layo. " FOR LAYOUT
DATA: V_LINE TYPE I,
LINEID TYPE I.
DATA: V_INDEX TYPE SY-TABIX.
PARAMETER *
parameter : p_ebeln like ekko-ebeln.
START OF SELECTION *
START-OF-SELECTION.
SELECTION OF DATA *
CALL FUNCTION 'ME_PURCHASE_DOCUMENT_DATA_READ'
EXPORTING
I_EBELN = P_EBELN
I_TCODE = 'ME23'
I_NO_COMMIT = ' '
I_TRTYP = 'A'
I_NO_MESSAGING =
I_NO_MESSAGE_REQ =
I_NO_AUTHORITY_CHECK =
I_VORGA =
IMPORTING
E_EKKO =
TABLES
T_EKPO = LIT_EKPO
T_EKET =
T_EKKN =
T_KOMV =
EXCEPTIONS
NO_EBLNR = 1
EBLNR_NOT_FOUND = 2
NO_TCODE = 3
TCODE_NOT_ALLOWED = 4
NO_TRTYP = 5
INVALID_CALL_OF_FB = 6
OTHERS = 7
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT LIT_EKPO INTO LS_EKPO.
MOVE : LS_EKPO-EBELN TO GS_EKPO-EBELN,
LS_EKPO-EBELP TO GS_EKPO-EBELP,
LS_EKPO-MENGE TO GS_EKPO-POQTY.
APPEND GS_EKPO TO GIT_EKPO.
ENDLOOP.
End-of-selection.
perform field_catalog.
call screen 100.
END-OF-SELECTION *
MODULES FOR ALV DISPLAY *
*& Module STATUS_0100 OUTPUT
text
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'PF-STAT'.
SET TITLEBAR 'TITLE'.
ENDMODULE. " STATUS_0100 OUTPUT
**& Module USER_COMMAND_0100 INPUT
text
MODULE USER_COMMAND_0100 INPUT.
CASE OK_CODE.
WHEN 'BACK'.
LEAVE PROGRAM.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'SWITCH'.
PERFORM switch_edit_mode.
WHEN 'SAVE'.
PERFORM FILL_TABLE.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
**& Module layout_0100 OUTPUT
text
MODULE layout_0100 OUTPUT.
V_LAYOUT-grid_title = 'Purchase Order Erection Details'.
ENDMODULE. " layout_0100 OUTPUT
**& Module data_retrivaL OUTPUT
text
MODULE data_retrivaL OUTPUT.
IF V_CONTAINER IS INITIAL.
CREATE OBJECT V_CONTAINER
EXPORTING container_name = 'GRID'.
CREATE OBJECT grid
EXPORTING i_parent = V_CONTAINER.
ENDIF.
CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = V_LAYOUT
CHANGING
IT_OUTTAB = GIT_EKPO
IT_FIELDCATALOG = LIT_FIELDCAT
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
others = 4.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDMODULE. " data_retrivaL OUTPUT
*& Module field_catalog OUTPUT
text
FORM field_catalog.
CLEAR LS_fieldcat.
LS_fieldcat-fieldname = 'EBELN'.
LS_fieldcat-ref_table = 'GIT_EKPO'.
LS_FIELDCAT-coltext = 'PURCHSE ORDER NUMBER'.
LS_FIELDCAT-col_pos = 0.
LS_FIELDCAT-EDIT = ' '.
ls_FIELDCAT-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT LS_FIELDCAT INTO TABLE LIT_FIELDCAT.
APPEND LS_fieldcat TO LIT_fieldcat.
CLEAR LS_fieldcat.
LS_fieldcat-fieldname = 'EBELP'.
LS_fieldcat-ref_table = 'GIT_EKPO'.
LS_FIELDCAT-coltext = 'ITEM NUMBER'.
LS_FIELDCAT-col_pos = 1.
LS_FIELDCAT-EDIT = ' '.
ls_FIELDCAT-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT LS_FIELDCAT INTO TABLE LIT_FIELDCAT.
APPEND LS_fieldcat TO LIT_fieldcat.
CLEAR LS_fieldcat.
LS_fieldcat-fieldname = 'POQTY'.
LS_fieldcat-ref_table = 'GIT_EKPO'.
LS_FIELDCAT-coltext = 'PURCHASE ORDER QUANTITY'.
LS_FIELDCAT-col_pos = 2.
LS_FIELDCAT-EDIT = ' '.
ls_FIELDCAT-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT LS_FIELDCAT INTO TABLE LIT_FIELDCAT.
APPEND LS_fieldcat TO LIT_fieldcat.
CLEAR LS_fieldcat.
LS_fieldcat-fieldname = 'ERDAT'.
LS_fieldcat-ref_table = 'GIT_EKPO'.
LS_FIELDCAT-coltext = 'DATE OF ERECTION'.
LS_FIELDCAT-col_pos = 3.
LS_FIELDCAT-EDIT = 'X'.
ls_fieldcat-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT LS_FIELDCAT INTO TABLE LIT_FIELDCAT.
APPEND LS_fieldcat TO LIT_fieldcat.
CLEAR LS_fieldcat.
LS_fieldcat-fieldname = 'EREQTY'.
LS_fieldcat-ref_table = 'GIT_EKPO'.
LS_FIELDCAT-coltext = 'ERECTION QUANTITY'.
LS_FIELDCAT-col_pos = 4.
LS_FIELDCAT-EDIT = 'X'.
ls_fieldcat-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT LS_FIELDCAT INTO TABLE LIT_FIELDCAT.
APPEND LS_fieldcat TO LIT_fieldcat.
ENDFORM. " field_catalog OUTPUT
*& Form SWITCH_EDIT_MODE
text
--> p1 text
<-- p2 text
*FORM switch_edit_mode.
IF GRID->is_ready_for_input( ) eq 0.
set edit enabled cells ready for input
CALL METHOD GRID->set_ready_for_input
EXPORTING
i_ready_for_input = 1.
ELSE.
lock edit enabled cells against input
CALL METHOD GRID->set_ready_for_input
EXPORTING
i_ready_for_input = 0.
ENDIF.
*ENDFORM. " SWITCH_EDIT_MODE
*& Form FILL_TABLE
text
--> p1 text
<-- p2 text
FORM FILL_TABLE .
LOOP AT GIT_EKPO INTO GS_EKPO.
LS_ZPS005-EBELN = GS_EKPO-EBELN.
LS_ZPS005-EBELP = GS_EKPO-EBELP.
LS_ZPS005-POQTY = GS_EKPO-POQTY.
LS_ZPS005-ERECDAT = GS_EKPO-ERDAT.
LS_ZPS005-EREQTY = GS_EKPO-EREQTY.
ENDLOOP.
MODIFY ZPS005 FROM LS_ZPS005.
ENDFORM. " FILL_TABLE -
File Adapter: Multiple Records, Multiple Types to Multiple DB Tables
Hi there,
I have a proof-of-concept scenario which I am trying to model in ESB:
I have a single flat file with one invoice header record and multiple invoice lines.
I want to read this file via the File Adapter, and insert the different records into different database tables: the invoice header in an invoice table, and the invoice lines into a line item table.
If I tackle the lines in isolation no problem (i.e. single file with only invoice lines in to the invoice lines table). Things break down when I add the invoice header into the mix.
Does anyone have an example of this or something similar?
Would I need to use seperate database adapters for the two tables, or is this achievable with a single database adapter?
Thanks in advance!Thanks for that Abhi.
I actually tried that, but I'd find that I would only get the header record added properly; the multiple invoice lines would not get written to the invoice line table properly.
I found that I would either get the same invoice line added many times, or I would get null values.
I played around with the for-each statement, and I even tried creating my own xsd for the data file (instead of using the native format tool).
Any ideas what the issue might be?
Thanks,
Richard
Maybe you are looking for
-
I have had my C6380 for quite a while, now. I have a personal laptop running Vista and have no problems. I have a MacBook for work that I use with the printer with no problems. I also have a desktop that was working well for a long time with this
-
Macro lens for Canon 5D Mark iii
I'm taking a Class with NYIP and need to submit a macro photo. Not sure I really want to get into macro so I was hoping for suggestions on cheaper a lens or tubes. Any suggestions?
-
Which photo printing service to use?
I am relatively new in Apple over from Windows and want to start installing photos from Canon camera using a card reader.I like to do a light editing /correcting/ before I send the photos to a printing service.I have not done this before,therefore I
-
how can i unlock my iphone 4 while i was on a vacation outside canada? was it possible so i can use it?
-
Adobe Icon problem after download
I downloaded Adobe 11.0.02 Have XP SP3 after downloading everthing works accept all icons for adobe files has changed. does not show as standard adobe Icon Icon now shows as square block with blue line a top and three colored dots across the center