2008 Aug 06 6:57 AM
Hi Experts,
Coud u please tell me about how to upload data into a table control .please ellaborate the details.
thanks in advance.
Kuldeep
Hello,
Use the PBO module for that.
loop at itab into wa WITH CONTROL tc1.
endloop.
wa or itab should be used to add the fields in table control.
*wa-field or itab-field.
In PAI give.
loop at itab.
endloop.
2008 Aug 06 6:59 AM
Hi,
Check the link for your problem,
For detail concept check
http://help.sap.com/saphelp_nw04/helpdata/en/9f/dbac1d35c111d1829f0000e829fbfe/content.htm
Regards,
anirban
2008 Aug 06 7:00 AM
Hi...create the table control on a internal vehicle...populate the internal table...inside the PBO or PAI as per your requirement.The table control witll reflect the data in the interbnal table only.....
2008 Aug 06 7:00 AM
2008 Aug 06 7:01 AM
Hello,
Use the PBO module for that.
loop at itab into wa WITH CONTROL tc1.
endloop.
wa or itab should be used to add the fields in table control.
*wa-field or itab-field.
In PAI give.
loop at itab.
endloop.
2008 Aug 06 7:04 AM
hi,
see this,.....
REPORT ZPP_REPORT_BOM NO STANDARD PAGE HEADING LINE-SIZE 255.
*&----
Structure Declaration
*&----
TYPES : BEGIN OF TY_SOURCE,
MATNR(18),
WERKS(4),
STLAN(1),
STLAL(2),
DATUV(10),
POSNR(4), " BOM item number
POSTP(1), " BOM Item category
IDNRK(18),
MENGE(13),
MEINS(3),
AVOAU(3), " Operation Scrap
NETAU, " Indicator: Net scrap
ALPGR(2),
ALPRF(2),
ALPST(1),
EWAHR(3),
LGORT(4), " Storage Location
BMENG(13),
STLST(2),
END OF TY_SOURCE,
BEGIN OF TY_HEADER ,
MATNR(18),
WERKS(4),
STLAN(1),
STLAL(2),
DATUV(10),
BMENG(13),
LOSVN(2),
LOSBS(2),
STLST(2),
END OF TY_HEADER,
BEGIN OF TY_ITEM ,
MATNR(18),
POSNR(4),
POSTP(1),
IDNRK(18),
MENGE(13),
MEINS(3),
AUSCH(5),
AVOAU(3),
NETAU,
ALPGR(2),
ALPRF(2),
ALPST(1),
EWAHR(3),
LGORT(4),
END OF TY_ITEM.
*&----
Internal Table Declaration
*&----
DATA : T_SOURCE TYPE STANDARD TABLE OF TY_SOURCE INITIAL SIZE 1,
T_HEADER TYPE STANDARD TABLE OF TY_HEADER INITIAL SIZE 1,
T_ITEM TYPE STANDARD TABLE OF TY_ITEM INITIAL SIZE 1,
T_TARGET TYPE STANDARD TABLE OF BDCDATA INITIAL SIZE 1.
DATA : W_SOURCE TYPE TY_SOURCE,
W_SOURCE1 TYPE TY_SOURCE,
W_HEADER TYPE TY_HEADER,
W_ITEM TYPE TY_ITEM,
W_TARGET TYPE BDCDATA,
COUNT TYPE I.
*&----
Variable Declaration
*&----
DATA: W_FNAME TYPE STRING,
FNAM(20),
I(2) TYPE N,
V_COUNT TYPE I,
V_GROUP TYPE APQI-GROUPID.
*&----
SELECTION SCREEN CRITERIA
*&----
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS : P_PATH TYPE RLGRAP-FILENAME,
P_GROUP(15) DEFAULT 'BOM'.
SELECTION-SCREEN : END OF BLOCK B1.
*&----
AT SELECTION SCREEN
*&----
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PATH.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
DEF_FILENAME = 'C:\TEST.TXT'
DEF_PATH = 'C:\Documents and Settings\Naidu\Desktop\TEST-1.txt'
MASK = ',.,..'
MODE = 'O' "O --> Open S --> Save
TITLE = 'OPEN'
IMPORTING
FILENAME = P_PATH
RC =
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*&----
START-OF-SELECTION
*&----
START-OF-SELECTION.
PERFORM SUB_UPLOAD.
PERFORM SUB_BDC_PROCESS.
PERFORM SUB_CLOSE.
WRITE:/ 'The session', V_GROUP ,'has been successfully created with',
V_COUNT.
WRITE:/ 'Please process the session in SM35'.
*&----
*& PERFORM SUB_UPLOAD
*&----
FORM SUB_UPLOAD.
W_FNAME = P_PATH.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = W_FNAME
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = T_SOURCE
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
OTHERS = 17
.
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 T_SOURCE INTO W_SOURCE.
W_SOURCE1 = W_SOURCE.
AT NEW MATNR.
W_HEADER-MATNR = W_SOURCE1-MATNR.
W_HEADER-WERKS = W_SOURCE1-WERKS.
W_HEADER-STLAN = W_SOURCE1-STLAN.
W_HEADER-DATUV = W_SOURCE1-DATUV.
W_HEADER-BMENG = W_SOURCE1-BMENG.
W_HEADER-STLAL = W_SOURCE1-STLAL.
W_HEADER-STLST = W_SOURCE1-STLST.
APPEND W_HEADER TO T_HEADER.
ENDAT.
W_ITEM-MATNR = W_SOURCE1-MATNR.
W_ITEM-IDNRK = W_SOURCE1-IDNRK.
W_ITEM-MENGE = W_SOURCE1-MENGE.
W_ITEM-MEINS = W_SOURCE1-MEINS.
W_ITEM-POSTP = W_SOURCE1-POSTP.
W_ITEM-POSNR = W_SOURCE1-POSNR.
W_ITEM-AVOAU = W_SOURCE1-AVOAU.
W_ITEM-LGORT = W_SOURCE1-LGORT.
W_ITEM-NETAU = W_SOURCE1-NETAU.
W_ITEM-ALPGR = W_SOURCE1-ALPGR.
W_ITEM-ALPRF = W_SOURCE1-ALPRF.
W_ITEM-ALPST = W_SOURCE1-ALPST.
W_ITEM-EWAHR = W_SOURCE1-EWAHR.
APPEND W_ITEM TO T_ITEM.
CLEAR :W_ITEM,W_HEADER.
ENDLOOP.
ENDFORM. "Sub_upload
*&----
*& PERFORM SUB_BDC_PROCESS
*&----
FORM SUB_BDC_PROCESS.
V_GROUP = P_GROUP.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
DEST = FILLER8
GROUP = V_GROUP "'BOM'
HOLDDATE = FILLER8
KEEP = 'X'
USER = SY-UNAME
RECORD = FILLER1
PROG = SY-CPROG
IMPORTING
QID =
EXCEPTIONS
CLIENT_INVALID = 1
DESTINATION_INVALID = 2
GROUP_INVALID = 3
GROUP_IS_LOCKED = 4
HOLDDATE_INVALID = 5
INTERNAL_ERROR = 6
QUEUE_ERROR = 7
RUNNING = 8
SYSTEM_LOCK_ERROR = 9
USER_INVALID = 10
OTHERS = 11
.
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 T_HEADER INTO W_HEADER.
REFRESH T_TARGET.
perform bdc_dynpro using 'SAPLCSDI' '0100'.
perform bdc_field using 'BDC_CURSOR' 'RC29N-DATUV'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'RC29N-MATNR' W_HEADER-MATNR."'FZGN25051641'.
perform bdc_field using 'RC29N-WERKS' W_HEADER-WERKS."'2200'.
perform bdc_field using 'RC29N-STLAN' W_HEADER-STLAN."'1'.
PERFORM BDC_FIELD USING 'RC29N-STLAL' W_HEADER-STLAL.
perform bdc_field using 'RC29N-DATUV' W_HEADER-DATUV."'31122005'.
perform bdc_dynpro using 'SAPLCSDI' '0110'.
perform bdc_field using 'BDC_CURSOR' 'RC29K-BMENG'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'RC29K-BMENG' W_HEADER-BMENG."'1668'.
PERFORM BDC_FIELD USING 'RC29K-STLST' W_HEADER-STLST."'1'.
perform bdc_dynpro using 'SAPLCSDI' '0111'.
perform bdc_field using 'BDC_CURSOR' 'RC29K-LABOR'.
perform bdc_field using 'BDC_OKCODE' '/00'.
I = 1.
LOOP AT T_ITEM INTO W_ITEM WHERE MATNR = W_HEADER-MATNR.
COUNT = COUNT + 1.
IF COUNT GT 14.
CLEAR I.
I = 2.
BREAK KISHORES.
perform bdc_dynpro using 'SAPLCSDI' '0140'.
perform bdc_field using 'BDC_OKCODE' '=FCNP'.
ENDIF.
perform bdc_dynpro using 'SAPLCSDI' '0140'.
perform bdc_field using 'BDC_CURSOR' 'RC29P-SORTF(01)'.
perform bdc_field using 'BDC_OKCODE' '/00'.
CONCATENATE 'RC29P-IDNRK(' I ')' INTO FNAM.
perform bdc_field using FNAM W_ITEM-IDNRK.
CONCATENATE 'RC29P-MENGE(' I ')' INTO FNAM.
perform bdc_field using FNAM W_ITEM-MENGE.
CONCATENATE 'RC29P-MEINS(' I ')' INTO FNAM.
perform bdc_field using FNAM W_ITEM-MEINS.
CONCATENATE 'RC29P-POSTP(' I ')' INTO FNAM.
perform bdc_field using FNAM W_ITEM-POSTP.
CONCATENATE 'RC29P-POSNR(' I ')' INTO FNAM.
PERFORM BDC_FIELD USING FNAM W_ITEM-POSNR.
perform bdc_dynpro using 'SAPLCSDI' '0130'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'BDC_CURSOR' 'RC29P-ALPGR'.
PERFORM BDC_FIELD USING 'RC29P-NETAU' W_ITEM-NETAU.
PERFORM BDC_FIELD USING 'RC29P-AVOAU' W_ITEM-AVOAU.
perform bdc_field using 'RC29P-ALPGR' W_ITEM-ALPGR.
IF W_ITEM-ALPGR = ' '.
ELSE.
perform bdc_dynpro using 'SAPLCSDI' '0716'.
perform bdc_field using 'BDC_CURSOR' 'RC29P-EWAHR'.
perform bdc_field using 'BDC_OKCODE' '=CLWI'.
perform bdc_field using 'RC29P-ALPRF' W_ITEM-ALPRF.
perform bdc_field using 'RC29P-ALPST' W_ITEM-ALPST.
perform bdc_field using 'RC29P-EWAHR' W_ITEM-EWAHR.
ENDIF.
perform bdc_dynpro using 'SAPLCSDI' '0131'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'BDC_CURSOR' 'RC29P-POTX1'.
perform bdc_field using 'RC29P-SANKA' 'X'.
PERFORM BDC_FIELD USING 'RC29P-LGORT' W_ITEM-LGORT.
I = I + 1.
CLEAR W_ITEM.
ENDLOOP.
perform bdc_dynpro using 'SAPLCSDI' '0140'.
perform bdc_field using 'BDC_CURSOR' 'RC29P-POSNR(01)'.
perform bdc_field using 'BDC_OKCODE' '=FCBU'.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'CS01'
POST_LOCAL = NOVBLOCAL
PRINTING = NOPRINT
SIMUBATCH = ' '
CTUPARAMS = ' '
TABLES
DYNPROTAB = T_TARGET
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 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.
ELSE.
V_COUNT = V_COUNT + 1.
ENDIF.
CLEAR : W_ITEM,W_HEADER.
ENDLOOP.
ENDFORM. "SUB_BDC_PROCESS
&----
*& Form SUB_CLOSE
&----
text
----
--> p1 text
<-- p2 text
----
FORM SUB_CLOSE .
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_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.
ENDFORM. " SUB_CLOSE
----
Start new screen *
----
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR W_TARGET.
W_TARGET-PROGRAM = PROGRAM.
W_TARGET-DYNPRO = DYNPRO.
W_TARGET-DYNBEGIN = 'X'.
APPEND W_TARGET TO T_TARGET.
ENDFORM. "BDC_DYNPRO
----
Insert field *
----
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> SPACE.
CLEAR W_TARGET.
W_TARGET-FNAM = FNAM.
W_TARGET-FVAL = FVAL.
APPEND W_TARGET TO T_TARGET.
ENDIF.
ENDFORM. "BDC_FIELD
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |