Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Uploading thru BAPI

Former Member
0 Likes
1,272

Hi

Can anyone give me an example how we can upload thru BAPI(any tcode upload)

Please give me the code for my reference.

Where BAPI comes in to picture when uploading?

After uploading file from presentation server?Do we still do Recording incase if we use BAPI.

Please tell me as its very urgent.

Thanks in advance

3 REPLIES 3
Read only

Former Member
0 Likes
774

Hi RK

I have uploaded data from Excel to SAP using BAPI,

/people/kathirvel.balakrishnan2/blog/2006/05/08/data-upload-into-sap-from-microsoft-excel-150-abap-part

/people/kathirvel.balakrishnan2/blog/2006/05/09/data-upload-into-sap-from-microsoft-excel-150-vba-part

Regards

Kathirvel

Read only

Former Member
0 Likes
774

Goto transaction LSMW - here we can upload the data through bapi.

Just u have to specify the business object and the method.

Read only

Former Member
0 Likes
774

check below code...it uploads data from PC and uses BAPI for posting...No need of BDC....

REPORT ZFC_GL_UPLOAD

LINE-SIZE 255

MESSAGE-ID ZZ.

************************************************************************

  • TABLES

************************************************************************

TABLES: SKA1, " G/L account master (chart of accounts)

SKB1, " G/L account master (company code)

T001, " Company Codes

SSCRFIELDS. " Fields on selection screens

************************************************************************

  • TYPES

************************************************************************

TYPES : TY_CAST(1). " Types used to store value

************************************************************************

  • CONSTANTS

************************************************************************

DATA : C_RB_SELECTED TYPE C VALUE 'X', " Field to hold 'X' value

C_SPLIT TYPE C VALUE '#', " Field to hold '#' value

C_BGR00 LIKE BGR00, " Saved init'd structure

C_BSK00 LIKE BSK00, " Saved init'd structure

C_BSKA1 LIKE BSKA1, " Saved init'd structure

C_BSKAT LIKE BSKAT, " Saved init'd structure

C_BSKB1 LIKE BSKB1, " Saved init'd structure

C_BSKX LIKE BSKX. " Saved init'd structure

************************************************************************

  • DATA (Simple Fields)

************************************************************************

DATA : W_STRING(500) TYPE C. " Variable to hold string

************************************************************************

  • INTERNAL TABLES

************************************************************************

  • Int'table to hold uploaded data

DATA : BEGIN OF IT_STRING OCCURS 0,

STRING(300) TYPE C,

END OF IT_STRING.

  • Int'table to hold uploaded data from File

DATA : BEGIN OF IT_DATA OCCURS 0,

SAKNR(10),

KTOKS(4),

TXT20_ML(20),

TXT50_ML(50),

CHECK(3),

BILKT(10),

TXT50(50),

VBUND(6),

WAERS(5),

MWSKZ(2),

MITKZ(10),

KDFSL(4),

WMETH(2),

XSALH(1),

ALTKT(10),

INFKY(8),

TOGRU(4),

XKRES(1),

XOPVW(1),

ZUAWA(3),

BEGRU(4),

BUSAB(2),

XMITK(1),

FSTAG(4),

XINTB(1),

XNKON(1),

FDLEV(2),

FIPOS(14),

XGKON(1),

HBKID(5),

HKTID(5),

VZSKZ(2),

RECID(2),

FLAG(1),

END OF IT_DATA.

************************************************************************

  • FIELD SYMBOLS

************************************************************************

FIELD-SYMBOLS : <FS_CH> TYPE TY_CAST.

************************************************************************

  • SELECTION-SCREEN

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECTION-SCREEN : BEGIN OF LINE,

COMMENT 1(30) TEXT-005,

POSITION POS_LOW.

PARAMETERS : P_BUKRS LIKE SKB1-BUKRS DEFAULT '1280'.

SELECTION-SCREEN : END OF LINE.

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN : BEGIN OF LINE,

COMMENT 1(30) TEXT-002,

POSITION POS_LOW.

PARAMETERS : P_EXCEL RADIOBUTTON GROUP R1 DEFAULT 'X'.

SELECTION-SCREEN : END OF LINE.

SELECTION-SCREEN : BEGIN OF LINE,

COMMENT 1(30) TEXT-003,

POSITION POS_LOW.

PARAMETERS : P_FILE(128) DEFAULT 'C:\UPLOAD.TXT'.

SELECTION-SCREEN : END OF LINE.

SELECTION-SCREEN : BEGIN OF LINE,

COMMENT 1(30) TEXT-004,

POSITION POS_LOW.

PARAMETERS : P_UNIX RADIOBUTTON GROUP R1.

SELECTION-SCREEN : END OF LINE.

SELECTION-SCREEN : BEGIN OF LINE,

COMMENT 1(30) TEXT-003,

POSITION POS_LOW.

PARAMETERS : P_DIR(128) LOWER CASE

DEFAULT '/apps/dataload/zfc_gl_upload'.

SELECTION-SCREEN : END OF LINE.

SELECTION-SCREEN : BEGIN OF LINE,

COMMENT 1(30) TEXT-008,

POSITION POS_LOW.

PARAMETERS : P_GROUP(12) DEFAULT SY-REPID OBLIGATORY.

SELECTION-SCREEN : END OF LINE.

SELECTION-SCREEN : SKIP.

SELECTION-SCREEN : BEGIN OF LINE,

COMMENT 1(32) TEXT-009,

POSITION POS_LOW.

PARAMETERS : P_DIR1(128) LOWER CASE

DEFAULT '/apps/dataload/*.txt'.

SELECTION-SCREEN : END OF LINE.

SELECTION-SCREEN : SKIP.

PARAMETERS : P_CHECK LIKE RFPDO-RFBICHCK DEFAULT 'X'.

SELECTION-SCREEN END OF BLOCK B1.

************************************************************************

  • INITIALIZATION

************************************************************************

INITIALIZATION.

PERFORM FILL_NODATA(RFBISA01) USING SPACE 'BGR00' C_BGR00.

PERFORM FILL_NODATA(RFBISA01) USING SPACE 'BSK00' C_BSK00.

PERFORM FILL_NODATA(RFBISA01) USING SPACE 'BSKA1' C_BSKA1.

PERFORM FILL_NODATA(RFBISA01) USING SPACE 'BSKAT' C_BSKAT.

PERFORM FILL_NODATA(RFBISA01) USING SPACE 'BSKB1' C_BSKB1.

PERFORM INIT_BSKX(RFBISA01) USING C_BSKX.

************************************************************************

  • AT SELECTION-SCREEN ON

************************************************************************

AT SELECTION-SCREEN ON P_BUKRS.

  • Perform check on company code entered

SELECT SINGLE KTOPL FROM T001

INTO CORRESPONDING FIELDS OF T001 WHERE

BUKRS EQ P_BUKRS.

IF SYST-SUBRC EQ 0.

  • continue

ELSE.

MESSAGE E000(ZZ) WITH 'Company code'

P_BUKRS

'is not defined'.

ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

  • Form to get file path for upload of data

PERFORM GET_FILE_PATH.

AT SELECTION-SCREEN ON BLOCK B1.

  • Form to Validate data specified on Selection Screen

CHECK SSCRFIELDS-UCOMM EQ 'ONLI'.

PERFORM VALIDATE_DATA.

************************************************************************

  • START - OF - SELECTION

************************************************************************

START-OF-SELECTION.

  • Form to upload data

PERFORM UPLOAD_DATA.

  • Form to check data existence in database

PERFORM CHECK_DATA.

************************************************************************

  • END - OF - SELECTION

************************************************************************

END-OF-SELECTION.

IF NOT IT_DATA[] IS INITIAL.

  • Form to move the data to structures which are passed into Application

  • Server for further processing

PERFORM INSERT_DATA.

  • Output the list of entries that RFBISA00 cannot process.

PERFORM WRITE_REPORT.

  • Form to submit the data to RFBISA00 program using the Application

  • server file and other fields

PERFORM SUBMIT_FILE.

ELSE.

WRITE:/ TEXT-014. " Uploaded file contains no Data

ENDIF.

&----


*& Form GET_FILE_PATH

&----


  • This form is used to get the specified path for uploading of data from

  • flat file with the help of F4 function key

----


FORM GET_FILE_PATH .

CALL FUNCTION 'WS_FILENAME_GET'

EXPORTING

DEF_PATH = 'C:\ '

MASK = ',.,..'

IMPORTING

FILENAME = P_FILE

EXCEPTIONS

INV_WINSYS = 1

NO_BATCH = 2

SELECTION_CANCEL = 3

SELECTION_ERROR = 4

OTHERS = 5.

ENDFORM. " GET_FILE_PATH

&----


*& Form VALIDATE_DATA

&----


  • This form is used to validate the data given by user on the Selection

  • Screen and the appropriate message is been displayed when an wrong

  • entry is inputted

----


FORM VALIDATE_DATA .

DATA : L_BUKRS LIKE SKB1-BUKRS.

IF P_BUKRS IS INITIAL.

MESSAGE E001(ZZ) WITH TEXT-012. " Specify Company Code

ELSE.

SELECT SINGLE BUKRS INTO L_BUKRS FROM T001 WHERE BUKRS = P_BUKRS.

IF SY-SUBRC NE 0.

MESSAGE E001(ZZ) WITH TEXT-013.

" Specified Company Code is Invalid

ENDIF.

ENDIF.

IF P_EXCEL = C_RB_SELECTED.

IF SY-BATCH EQ C_RB_SELECTED.

CLEAR SSCRFIELDS-UCOMM.

MESSAGE E001(ZZ) WITH TEXT-006.

" Excel file not to be used in Batch Mode

ENDIF.

IF P_FILE IS INITIAL.

CLEAR SSCRFIELDS-UCOMM.

MESSAGE E001(ZZ) WITH TEXT-007.

" Input File Missing for Presentation server

ENDIF.

ELSEIF P_UNIX = C_RB_SELECTED.

IF P_DIR IS INITIAL.

CLEAR SSCRFIELDS-UCOMM.

MESSAGE E001(ZZ) WITH TEXT-010.

" Input File Missing for Application server

ENDIF.

ENDIF.

ENDFORM. " VALIDATE_DATA

&----


*& Form UPLOAD_DATA_UNIX

&----


  • This form is used to upload the data from Unix file using Dataset to

  • String W_DATA which is splitted to Int'table IT_DATA

----


FORM UPLOAD_DATA_UNIX .

DATA : L_MSG(80) TYPE C,

L_TAB(4) TYPE X VALUE '09'.

OPEN DATASET P_DIR FOR INPUT IN TEXT MODE

MESSAGE L_MSG

ENCODING DEFAULT.

IF SY-SUBRC NE 0.

MESSAGE E001(ZZ) WITH L_MSG.

ENDIF.

DO.

READ DATASET P_DIR INTO IT_STRING.

IF SY-SUBRC = 0.

APPEND IT_STRING.

ELSE.

EXIT.

ENDIF.

ENDDO.

CLOSE DATASET P_DIR.

ASSIGN L_TAB TO <FS_CH> CASTING.

LOOP AT IT_STRING.

CLEAR : IT_DATA.

SPLIT IT_STRING-STRING AT <FS_CH>

INTO IT_DATA-SAKNR

IT_DATA-KTOKS

IT_DATA-TXT20_ML

IT_DATA-TXT50_ML

IT_DATA-CHECK

IT_DATA-BILKT

IT_DATA-TXT50

IT_DATA-VBUND

IT_DATA-WAERS

IT_DATA-MWSKZ

IT_DATA-MITKZ

IT_DATA-KDFSL

IT_DATA-WMETH

IT_DATA-XSALH

IT_DATA-ALTKT

IT_DATA-INFKY

IT_DATA-TOGRU

IT_DATA-XKRES

IT_DATA-XOPVW

IT_DATA-ZUAWA

IT_DATA-BEGRU

IT_DATA-BUSAB

IT_DATA-XMITK

IT_DATA-FSTAG

IT_DATA-XINTB

IT_DATA-XNKON

IT_DATA-FDLEV

IT_DATA-FIPOS

IT_DATA-XGKON

IT_DATA-HBKID

IT_DATA-HKTID

IT_DATA-VZSKZ

IT_DATA-RECID

IN CHARACTER MODE.

APPEND IT_DATA.

CLEAR : IT_STRING, IT_DATA.

ENDLOOP.

  • Remove the column headings from the input file

DELETE IT_DATA INDEX 1.

  • The following two lines have been commented out, they relate to data

  • issues that must be resolved before using this program

  • SORT IT_DATA BY SAKNR.

  • DELETE IT_DATA WHERE SAKNR EQ SPACE.

ENDFORM. " UPLOAD_DATA_UNIX

&----


*& Form UPLOAD_DATA

&----


  • This form is used to upload the data from flat file using WS_UPLOAD or

  • from Application server file using Open dataset to Int'table IT_DATA

----


FORM UPLOAD_DATA .

IF P_EXCEL = C_RB_SELECTED.

  • Data will be uploaded from Presenatation Server

PERFORM UPLOAD_DATA_EXCEL.

ELSEIF P_UNIX = C_RB_SELECTED.

  • Data will be uploaded from Application Server

PERFORM UPLOAD_DATA_UNIX.

ENDIF.

ENDFORM. " UPLOAD_DATA

&----


*& Form CHECK_DATA

&----


  • Form to check the uploaded data for existence in database. If the

  • record exists in database a flag is set to the Internal table

----


FORM CHECK_DATA .

DATA : L_TABIX LIKE SY-TABIX,

L_SAKNR(10) TYPE C.

LOOP AT IT_DATA.

L_TABIX = SY-TABIX.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = IT_DATA-SAKNR

IMPORTING

OUTPUT = L_SAKNR.

  • Check if account exists at company code level

SELECT SINGLE * FROM SKB1 WHERE

BUKRS = P_BUKRS AND

SAKNR = L_SAKNR.

IF SY-SUBRC EQ 0.

IT_DATA-FLAG = 'X'.

ELSE.

  • Check if this account exists at the chart level

SELECT SINGLE KTOPL FROM SKA1

INTO CORRESPONDING FIELDS OF SKA1

WHERE KTOPL EQ T001-KTOPL AND

SAKNR EQ L_SAKNR.

  • If so, record cannot be processed, mark as an error

IF SYST-SUBRC EQ 0.

IT_DATA-FLAG = 'A'.

ENDIF.

ENDIF.

MODIFY IT_DATA INDEX L_TABIX.

CLEAR : IT_DATA, L_SAKNR.

ENDLOOP.

ENDFORM. " CHECK_DATA

&----


*& Form INSERT_DATA

&----


  • Form to insert the uploaded data into Structures which are passed into

  • the Application server for further processing

----


FORM INSERT_DATA .

DATA : L_MSG(80) TYPE C.

OPEN DATASET P_DIR1 FOR OUTPUT IN TEXT MODE

MESSAGE L_MSG

ENCODING DEFAULT.

IF SY-SUBRC NE 0.

MESSAGE E001(ZZ) WITH L_MSG.

ENDIF.

  • Form to insert data into BGR00 Structure

PERFORM INSERT_BGR00_DATA.

  • Only submit records that can be processed successfully by RFBISA00

LOOP AT IT_DATA

WHERE FLAG NE 'A'.

  • Form to insert data into BSK00 Structure

PERFORM INSERT_BSK00_DATA.

  • Form to insert data into BSKA1 Structure

PERFORM INSERT_BSKA1_DATA.

  • Form to insert data into BSKAT Structure

PERFORM INSERT_BSKAT_DATA.

  • Form to insert data into BSKB1 Structure

PERFORM INSERT_BSKB1_DATA.

ENDLOOP.

CLEAR W_STRING.

CLOSE DATASET P_DIR1.

ENDFORM. " INSERT_DATA

&----


*& Form INSERT_BGR00_DATA

&----


  • Form used to populate the data to BGR00 structure which is moved to

  • Application Server file been specified in the Selection Screen. If

  • field has no value '/' is passed into the field.

----


FORM INSERT_BGR00_DATA .

DATA : IT_BGR00 LIKE BGR00 OCCURS 0 WITH HEADER LINE.

CLEAR : W_STRING.

MOVE C_BGR00 TO IT_BGR00.

IT_BGR00-STYPE = '0'.

IT_BGR00-GROUP = P_GROUP.

IT_BGR00-MANDT = SY-MANDT.

IT_BGR00-USNAM = SY-UNAME.

IT_BGR00-START = SY-DATUM.

IT_BGR00-XKEEP = SPACE.

MOVE IT_BGR00 TO W_STRING.

TRANSFER W_STRING TO P_DIR1.

ENDFORM. " INSERT_BGR00_DATA

&----


*& Form INSERT_BSK00_DATA

&----


  • Form used to populate the data to BSK00 structure which is moved to

  • Application Server file been specified in the Selection Screen. If

  • field has no value '/' is passed into the field. Based on the flag

  • which has been updated in check perform, the transaction code is

  • passed. If record exists in database 'FS02' is passed to tcode else

  • 'FS01' is passed to tcode.

----


FORM INSERT_BSK00_DATA .

DATA: IT_BSK00 LIKE BSK00 OCCURS 0 WITH HEADER LINE.

DATA: L_SAKNR(10) TYPE C.

CLEAR : W_STRING.

MOVE C_BSK00 TO IT_BSK00.

IT_BSK00-STYPE = '1'.

IF IT_DATA-FLAG = 'X'.

IT_BSK00-TCODE = 'FS02'.

ELSE.

IT_BSK00-TCODE = 'FS01'.

ENDIF.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = IT_DATA-SAKNR

IMPORTING

OUTPUT = L_SAKNR.

IT_BSK00-SAKNR = L_SAKNR.

IT_BSK00-BUKRS = P_BUKRS.

MOVE IT_BSK00 TO W_STRING.

TRANSFER W_STRING TO P_DIR1.

ENDFORM. " INSERT_BSK00_DATA

&----


*& Form INSERT_BSKA1_DATA

&----


  • Form used to populate the data to BSKA1 structure which is moved to

  • Application Server file been specified in the Selection Screen. If

  • field has no value '/' is passed into the field.

----


FORM INSERT_BSKA1_DATA .

DATA : IT_BSKA1 LIKE BSKA1 OCCURS 0 WITH HEADER LINE.

CLEAR : W_STRING.

MOVE C_BSKA1 TO IT_BSKA1.

IT_BSKA1-STYPE = '2'.

IT_BSKA1-TBNAM = 'BSKA1'.

IF IT_DATA-BILKT NE SPACE.

IT_BSKA1-BILKT = IT_DATA-BILKT.

ENDIF.

IF IT_DATA-KTOKS NE SPACE.

IT_BSKA1-KTOKS = IT_DATA-KTOKS.

ENDIF.

IF IT_DATA-VBUND NE SPACE.

IT_BSKA1-VBUND = IT_DATA-VBUND.

ELSE.

IT_BSKA1-VBUND = P_BUKRS.

ENDIF.

IF IT_DATA-CHECK = 'BS'.

IT_BSKA1-XBILK = 'X'.

ELSE.

IT_BSKA1-GVTYP = 'X '.

ENDIF.

MOVE IT_BSKA1 TO W_STRING.

TRANSFER W_STRING TO P_DIR1.

ENDFORM. " INSERT_BSKA1_DATA

&----


*& Form INSERT_BSKAT_DATA

&----


  • Form used to populate the data to BSKAT structure which is moved to

  • Application Server file been specified in the Selection Screen. If

  • field has no value '/' is passed into the field.

----


FORM INSERT_BSKAT_DATA .

DATA : IT_BSKAT LIKE BSKAT OCCURS 0 WITH HEADER LINE.

CLEAR : W_STRING.

MOVE C_BSKAT TO IT_BSKAT.

IT_BSKAT-STYPE = '2'.

IT_BSKAT-TBNAM = 'BSKAT'.

IF IT_DATA-TXT20_ML NE SPACE.

IT_BSKAT-TXT20 = IT_DATA-TXT20_ML.

ENDIF.

IF IT_DATA-TXT50_ML NE SPACE.

IT_BSKAT-TXT50 = IT_DATA-TXT50_ML.

ENDIF.

MOVE IT_BSKAT TO W_STRING.

TRANSFER W_STRING TO P_DIR1.

ENDFORM. " INSERT_BSKAT_DATA

&----


*& Form INSERT_BSKB1_DATA

&----


  • Form used to populate the data to BSKB1 structure which is moved to

  • Application Server file been specified in the Selection Screen. If

  • field has no value '/' is passed into the field.

----


FORM INSERT_BSKB1_DATA .

DATA : IT_BSKB1 LIKE BSKB1 OCCURS 0 WITH HEADER LINE.

CLEAR : W_STRING.

MOVE C_BSKB1 TO IT_BSKB1.

IT_BSKB1-STYPE = '2'.

IT_BSKB1-TBNAM = 'BSKB1'.

IF IT_DATA-ALTKT NE SPACE.

IT_BSKB1-ALTKT = IT_DATA-ALTKT.

ENDIF.

IF IT_DATA-BEGRU NE SPACE.

IT_BSKB1-BEGRU = IT_DATA-BEGRU.

ENDIF.

IF IT_DATA-BUSAB NE SPACE.

IT_BSKB1-BUSAB = IT_DATA-BUSAB.

ENDIF.

IF IT_DATA-FDLEV NE SPACE.

IT_BSKB1-FDLEV = IT_DATA-FDLEV.

ENDIF.

IF IT_DATA-FIPOS NE SPACE.

IT_BSKB1-FIPOS = IT_DATA-FIPOS.

ENDIF.

IF IT_DATA-FSTAG NE SPACE.

IT_BSKB1-FSTAG = IT_DATA-FSTAG.

ENDIF.

IF IT_DATA-HBKID NE SPACE.

IT_BSKB1-HBKID = IT_DATA-HBKID.

ENDIF.

IF IT_DATA-HKTID NE SPACE.

IT_BSKB1-HKTID = IT_DATA-HKTID.

ENDIF.

IF IT_DATA-KDFSL NE SPACE.

IT_BSKB1-KDFSL = IT_DATA-KDFSL.

ENDIF.

IF IT_DATA-MITKZ NE SPACE.

IF IT_DATA-MITKZ CA 'CUSTOMER' OR IT_DATA-MITKZ CA 'customer'.

IT_BSKB1-MITKZ = 'D'.

ELSEIF IT_DATA-MITKZ CA 'ASSETS' OR IT_DATA-MITKZ CA 'assets'.

IT_BSKB1-MITKZ = 'A'.

ELSEIF IT_DATA-MITKZ CA 'VENDORS' OR IT_DATA-MITKZ CA 'vendors'.

IT_BSKB1-MITKZ = 'K'.

ELSEIF IT_DATA-MITKZ CA 'CONTRACT' OR IT_DATA-MITKZ CA 'contract'.

IT_BSKB1-MITKZ = 'V'.

ENDIF.

ENDIF.

IF IT_DATA-MWSKZ NE SPACE.

IT_BSKB1-MWSKZ = IT_DATA-MWSKZ.

ENDIF.

IF IT_DATA-RECID NE SPACE.

IT_BSKB1-RECID = IT_DATA-RECID.

ENDIF.

IF IT_DATA-VZSKZ NE SPACE.

IT_BSKB1-VZSKZ = IT_DATA-VZSKZ.

ENDIF.

IF IT_DATA-WAERS NE SPACE.

IT_BSKB1-WAERS = IT_DATA-WAERS.

ENDIF.

IF IT_DATA-WMETH NE SPACE.

IT_BSKB1-WMETH = IT_DATA-WMETH.

ENDIF.

IF IT_DATA-XGKON NE SPACE.

IF IT_DATA-XGKON EQ 'Y'.

IT_BSKB1-XGKON = 'X'.

ENDIF.

ENDIF.

IF IT_DATA-XINTB NE SPACE.

IT_BSKB1-XINTB = 'X'.

ENDIF.

IF IT_DATA-XKRES NE SPACE.

IF IT_DATA-XKRES EQ 'Y'.

IT_BSKB1-XKRES = 'X'.

ENDIF.

ENDIF.

IF IT_DATA-XMITK NE SPACE.

IT_BSKB1-XMITK = 'X'.

ENDIF.

IF IT_DATA-XNKON NE SPACE.

IT_BSKB1-XNKON = 'X'.

ENDIF.

IF IT_DATA-XOPVW NE SPACE.

IF IT_DATA-XOPVW EQ 'Y'.

IT_BSKB1-XOPVW = 'X'.

ENDIF.

ENDIF.

IF IT_DATA-ZUAWA NE SPACE.

IT_BSKB1-ZUAWA = IT_DATA-ZUAWA.

ENDIF.

IF IT_DATA-XSALH NE SPACE.

IT_BSKB1-XSALH = 'X'.

ENDIF.

IF IT_DATA-INFKY NE SPACE.

IT_BSKB1-INFKY = IT_DATA-INFKY.

ENDIF.

IF IT_DATA-TOGRU NE SPACE.

IT_BSKB1-TOGRU = IT_DATA-TOGRU.

ENDIF.

MOVE IT_BSKB1 TO W_STRING.

TRANSFER W_STRING TO P_DIR1.

ENDFORM. " INSERT_BSKB1_DATA

&----


*& Form SUBMIT_FILE

&----


  • Form to submit the application server file path along with 2 other

  • fields to RFBISA00 program for processing of data. This sumbit returns

  • the standard message of RFBISA00 program which has messages along with

  • the Session method name created. This Session can be processed using

  • SM35 transaction for either creating or updating of data.

----


FORM SUBMIT_FILE .

SUBMIT RFBISA00 AND RETURN

WITH DS_NAME = P_DIR1

WITH FL_DINP = 'X'

WITH FL_CHECK = P_CHECK.

ENDFORM. " SUBMIT_FILE

&----


*& Form UPLOAD_DATA_EXCEL

&----


  • Form used to upload data from Presentation server to Int'table it_data

----


FORM UPLOAD_DATA_EXCEL .

DATA : L_FILENAME TYPE STRING,

L_FILETYPE TYPE CHAR10 VALUE 'ASC',

L_HEADER_LENGTH TYPE I VALUE 0,

L_READ_BY_LINE TYPE CHAR01 VALUE 'X'.

MOVE P_FILE TO L_FILENAME.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = L_FILENAME

FILETYPE = L_FILETYPE

HEADER_LENGTH = L_HEADER_LENGTH

READ_BY_LINE = L_READ_BY_LINE

HAS_FIELD_SEPARATOR = C_SPLIT

TABLES

DATA_TAB = IT_DATA

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.

DELETE IT_DATA INDEX 1.

SORT IT_DATA BY SAKNR.

DELETE IT_DATA WHERE SAKNR EQ SPACE.

ENDFORM. " UPLOAD_DATA_EXCEL

&----


*& Form WRITE_REPORT

&----


  • - Writes out a list of accounts that cannot be processed via

  • RFBISA00 due to existence at the chart level and possibly at

  • least one other company code

----


FORM WRITE_REPORT.

LOOP AT IT_DATA

WHERE FLAG = 'A'.

WRITE: /05 'Account',

IT_DATA-SAKNR,

'does not exist for Company Code',

P_BUKRS,

'but already exists for chart',

T001-KTOPL.

ENDLOOP.

ENDFORM. "write_report