‎2006 Nov 20 3:03 PM
hello,
I need a simple bapi to post a general ledger booking from an external system.
I tried the BAPI_ACC_EMPLOYEE_EXP_POST
I don't see how I can change the 'posting key' ( I need 40 / 50) in the interface for each position?
thanks in advance
Werner
‎2006 Nov 20 3:14 PM
You do not need to fill posting key as the BAPI know how to fill them depending on the account and the sign ( + , - ).
A commonly used BAPI is 'BAPI_ACC_DOCUMENT_POST'.
Regards,
Erwan
‎2006 Nov 20 3:08 PM
first u need to fill values in internal table...these will have line items of 40 & 50...use this internal table in BAPI to post data to SAP.
U can check the below code which is used to upload and post G/L data..
REPORT ZFC_GL_UPLOAD
LINE-SIZE 255
MESSAGE-ID ZZ.
************************************************************************
PROGRAM DECLARATION
************************************************************************
DESCRIPTION : Loading of Operational and Group Charts of
Account to SAP
*
************************************************************************
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
Message was edited by:
Ramesh Babu Chirumamilla
‎2006 Nov 20 3:12 PM
Hi ,
i filled the internal tables: accountgl and currencyamount, but don't see where I can find the posting_key
br
Werner
‎2006 Nov 20 3:14 PM
You do not need to fill posting key as the BAPI know how to fill them depending on the account and the sign ( + , - ).
A commonly used BAPI is 'BAPI_ACC_DOCUMENT_POST'.
Regards,
Erwan
‎2006 Nov 20 3:19 PM