‎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
‎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