‎2008 Nov 18 6:07 AM
HI Guru's,
follwing program i created for upload cash journal transaction T.Code: FBCJ..
with this program i can able enter 2 entries only and not calcualating the TAX.. any one can help me..
REPORT ZFI_FBCJ_UPLOAD.
Top includes for variables, screen declaration
INCLUDE ZFI_FBCJ_UPLOAD_TOP.
Subroutines
INCLUDE ZFI_FBCJ_UPLOAD_SUB.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
Select file
PERFORM FM_GET_FNAME USING P_FILE.
START-OF-SELECTION.
CLEAR V_PROCESS_OK.
read excel file
PERFORM FM_READ_DATA.
End of selection
END-OF-SELECTION.
IF V_PROCESS_OK = 'R'.
post receipts
PERFORM FM_POST_RECEIPTS.
ELSEIF V_PROCESS_OK = 'P'.
post payments
PERFORM FM_POST_PAYMENTS.
ENDIF.
read log messages
PERFORM FM_READ_LOG.
&----
*& Include ZFI_FBCJ_UPLOAD_TOP_TOP
&----
TABLES: TCJ_DOCUMENTS.
TYPES:
BEGIN OF STRT_RECEIPT,
TRANSACT_NUMBER(4) TYPE C, "Bus Transac
P_RECEIPTS(15) TYPE C, "Amount
POSITION_TEXT(50) TYPE C, "Head Text
VENDOR_NO(10) TYPE C, "Vendor No
END OF STRT_RECEIPT,
BEGIN OF STRT_PAYMENT,
TRANSACT_NUMBER(4) TYPE C, "Bus Transac
H_PAYMENTS(15) TYPE C, "Amount
GL_ACCOUNT(10) TYPE C, "G/L ac
TAX_CODE(2) TYPE C, "Tax Code
POSITION_TEXT(50) TYPE C, "Head Text
KOSTL(10) TYPE C, "Cost Cntre
END OF STRT_PAYMENT.
DATA:
Internal tables
ITABT_RECEIPT TYPE TABLE OF STRT_RECEIPT,
ITABT_PAYMENT TYPE TABLE OF STRT_PAYMENT,
ITABT_BAPI_CJ_ITEMS TYPE TABLE OF BAPI_CJ_ITEMS,
ITABT_BAPI_CJ_TAX_ITEMS TYPE TABLE OF BAPI_CJ_TAX_ITEMS,
ITABT_STR TYPE TABLE OF STRING,
ITABT_RETURN TYPE TABLE OF BAPIRET2,
work area
STRT_WRECEIPT TYPE STRT_RECEIPT,
STRT_WPAYMENT TYPE STRT_PAYMENT,
STRT_WSTR TYPE STRING,
STRT_WBAPI_CJ_HEADER TYPE BAPI_CJ_HEADER,
STRT_WBAPI_CJ_ITEMS TYPE BAPI_CJ_ITEMS,
STRT_WBAPI_CJ_TAX_ITEMS TYPE BAPI_CJ_TAX_ITEMS,
STRT_WRETURN TYPE BAPIRET2,
Variables
V_PROCESS_OK,
V_TEST,
V_COUNT TYPE I.
************************************************************************
*Selection Screeen *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK D WITH FRAME TITLE TEXT-001.
PARAMETERS : P_CCODE LIKE TCJ_DOCUMENTS-COMP_CODE,
P_CJNO LIKE TCJ_DOCUMENTS-CAJO_NUMBER,
P_DOCNO LIKE TCJ_DOCUMENTS-DOCUMENT_NUMBER.
SELECTION-SCREEN END OF BLOCK D.
SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-002.
PARAMETERS : RB_RECPT RADIOBUTTON GROUP RAD USER-COMMAND U1
DEFAULT 'X',
"Cash receipts/Payments
RB_PAYMT RADIOBUTTON GROUP RAD.
SELECTION-SCREEN END OF BLOCK A.
SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE TEXT-003.
PARAMETERS: P_FILE LIKE RLGRAP-FILENAME DEFAULT 'C:\'.
SELECTION-SCREEN END OF BLOCK B.
SELECTION-SCREEN BEGIN OF BLOCK C WITH FRAME TITLE TEXT-004.
PARAMETERS: P_TEST TYPE CHECKBOX.
SELECTION-SCREEN END OF BLOCK C.
&----
*& Include ZFI_FBCJ_UPLOAD_SUB_SUB
**
&----
&----
*& Form fm_get_fname
&----
text
----
--> p1 text
<-- p2 text
----
FORM FM_GET_FNAME USING V_FILENAME TYPE LOCALFILE .
DATA: GT_FILES TYPE FILETABLE, " WITH HEADER LINE,
G_RC TYPE I,
G_ACTION TYPE I,
LV_WINDOW_TITLE TYPE STRING.
LV_WINDOW_TITLE = TEXT-005.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE = LV_WINDOW_TITLE
DEFAULT_EXTENSION = 'CSV'
INITIAL_DIRECTORY = '%winnt%'
INITIAL_DIRECTORY = 'C:\'
MULTISELECTION = 'X' " file multiselection
CHANGING
FILE_TABLE = GT_FILES
RC = G_RC
USER_ACTION = G_ACTION
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
NOT_SUPPORTED_BY_GUI = 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.
READ TABLE GT_FILES INTO V_FILENAME INDEX 1.
ENDFORM. " fm_get_fname
&----
*& Form fm_read_data
&----
FORM FM_READ_DATA.
CLEAR: ITABT_STR, STRT_WSTR.
DATA: FILENAME TYPE STRING.
FILENAME = P_FILE.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
EXPORTING
FILENAME = FILENAME
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
CHANGING
DATA_TAB = ITABT_STR
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.
ElSE.
test run indicator
V_TEST = P_TEST.
company code
STRT_WBAPI_CJ_HEADER-COMP_CODE = P_CCODE.
cj no
STRT_WBAPI_CJ_HEADER-CAJO_NUMBER = P_CJNO.
ISO code currency
STRT_WBAPI_CJ_HEADER-CURRENCY_ISO = 'SGD'.
reference
STRT_WBAPI_CJ_HEADER-REF_DOC_NO = P_DOCNO.
posting date
STRT_WBAPI_CJ_HEADER-PSTNG_DATE = SY-DATUM.
document date
STRT_WBAPI_CJ_HEADER-DOC_DATE = SY-DATUM.
CASE 'X'.
WHEN RB_RECPT.
REFRESH ITABT_RECEIPT.
CLEAR: STRT_WSTR, STRT_WRECEIPT.
LOOP AT ITABT_STR INTO STRT_WSTR.
SPLIT STRT_WSTR AT ',' INTO
STRT_WRECEIPT-TRANSACT_NUMBER
STRT_WRECEIPT-P_RECEIPTS
STRT_WRECEIPT-POSITION_TEXT
STRT_WRECEIPT-VENDOR_NO.
APPEND STRT_WRECEIPT TO ITABT_RECEIPT.
CLEAR: STRT_WSTR, STRT_WRECEIPT.
ENDLOOP.
V_PROCESS_OK = 'R'.
WHEN RB_PAYMT.
REFRESH ITABT_PAYMENT.
CLEAR: STRT_WSTR, STRT_WPAYMENT.
LOOP AT ITABT_STR INTO STRT_WSTR.
SPLIT STRT_WSTR AT ',' INTO
STRT_WPAYMENT-TRANSACT_NUMBER
STRT_WPAYMENT-H_PAYMENTS
STRT_WPAYMENT-GL_ACCOUNT
STRT_WPAYMENT-TAX_CODE
STRT_WPAYMENT-POSITION_TEXT
STRT_WPAYMENT-KOSTL.
APPEND STRT_WPAYMENT TO ITABT_PAYMENT.
CLEAR: STRT_WSTR, STRT_WPAYMENT.
ENDLOOP.
V_PROCESS_OK = 'P'.
ENDCASE.
ENDIF.
ENDFORM. " fm_read_data
&----
*& Form FM_POST_RECEIPTS
&----
text
----
--> p1 text
<-- p2 text
----
FORM FM_POST_RECEIPTS .
CLEAR: STRT_WRECEIPT, V_COUNT.
LOOP AT ITABT_RECEIPT INTO STRT_WRECEIPT.
V_COUNT = V_COUNT + 1.
item no
STRT_WBAPI_CJ_ITEMS-POSITION_NUMBER = V_COUNT.
Business Transaction
STRT_WBAPI_CJ_ITEMS-TRANSACT_NUMBER =
STRT_WRECEIPT-TRANSACT_NUMBER.
receipts
STRT_WBAPI_CJ_ITEMS-P_RECEIPTS = STRT_WRECEIPT-P_RECEIPTS.
text
STRT_WBAPI_CJ_ITEMS-POSITION_TEXT = STRT_WRECEIPT-POSITION_TEXT.
vendor number
STRT_WBAPI_CJ_ITEMS-VENDOR_NO = STRT_WRECEIPT-VENDOR_NO.
APPEND STRT_WBAPI_CJ_ITEMS TO ITABT_BAPI_CJ_ITEMS.
ENDLOOP.
CALL FUNCTION 'BAPI_CASHJOURNALDOC_CREATE'
EXPORTING
HEADER = STRT_WBAPI_CJ_HEADER
TESTRUN = V_TEST
TABLES
ITEMS = ITABT_BAPI_CJ_ITEMS
RETURN = ITABT_RETURN
.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ENDFORM. " FM_POST_RECEIPTS
&----
*& Form FM_POST_PAYMENTS
&----
text
----
--> p1 text
<-- p2 text
----
FORM FM_POST_PAYMENTS .
*CLEAR: STRT_WPAYMENT, V_COUNT.
*REFRESH ITABT_BAPI_CJ_TAX_ITEMS.
LOOP AT ITABT_PAYMENT INTO STRT_WPAYMENT.
*CLEAR: STRT_WBAPI_CJ_TAX_ITEMS.
REFRESH ITABT_BAPI_CJ_TAX_ITEMS.
V_COUNT = V_COUNT + 1.
item no
STRT_WBAPI_CJ_ITEMS-POSITION_NUMBER = V_COUNT.
Number of Cash Journal Business Transaction
STRT_WBAPI_CJ_ITEMS-TRANSACT_NUMBER = STRT_WPAYMENT-TRANSACT_NUMBER.
payments
STRT_WBAPI_CJ_ITEMS-P_PAYMENTS = STRT_WPAYMENT-H_PAYMENTS.
G/L account
STRT_WBAPI_CJ_ITEMS-GL_ACCOUNT = STRT_WPAYMENT-GL_ACCOUNT.
tax code
STRT_WBAPI_CJ_ITEMS-TAX_CODE = STRT_WPAYMENT-TAX_CODE.
text
STRT_WBAPI_CJ_ITEMS-POSITION_TEXT = STRT_WPAYMENT-POSITION_TEXT.
cost centre
STRT_WBAPI_CJ_ITEMS-COSTCENTER = STRT_WPAYMENT-KOSTL.
APPEND STRT_WBAPI_CJ_ITEMS TO ITABT_BAPI_CJ_ITEMS.
CLEAR STRT_WBAPI_CJ_ITEMS.
tax code
STRT_WBAPI_CJ_TAX_ITEMS-TAX_CODE = STRT_WPAYMENT-TAX_CODE.
APPEND STRT_WBAPI_CJ_TAX_ITEMS TO ITABT_BAPI_CJ_TAX_ITEMS.
CLEAR: STRT_WPAYMENT,STRT_WBAPI_CJ_TAX_ITEMS.
ENDLOOP.
CALL FUNCTION 'BAPI_CASHJOURNALDOC_CREATE'
EXPORTING
HEADER = STRT_WBAPI_CJ_HEADER
TESTRUN = V_TEST
TABLES
ITEMS = ITABT_BAPI_CJ_ITEMS
TAX_ITEMS = ITABT_BAPI_CJ_TAX_ITEMS
RETURN = ITABT_RETURN
.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
IMPORTING
RETURN = .
ENDFORM. " FM_POST_PAYMENTS
&----
*& Form FM_READ_LOG
&----
text
----
--> p1 text
<-- p2 text
----
FORM FM_READ_LOG .
LOOP AT ITABT_RETURN INTO STRT_WRETURN.
CALL FUNCTION 'BAPI_MESSAGE_GETDETAIL'
EXPORTING
ID = STRT_WRETURN-ID
NUMBER = STRT_WRETURN-NUMBER
LANGUAGE = SY-LANGU
TEXTFORMAT = 'NON'
MESSAGE_V1 = STRT_WRETURN-MESSAGE_V1
MESSAGE_V2 = STRT_WRETURN-MESSAGE_V2
MESSAGE_V3 = STRT_WRETURN-MESSAGE_V3
MESSAGE_V4 = STRT_WRETURN-MESSAGE_V4
IMPORTING
MESSAGE = STRT_WRETURN-MESSAGE.
WRITE:/ STRT_WRETURN-MESSAGE.
ENDLOOP.
ENDFORM. " FM_READ_LOG
regards
JK
‎2008 Nov 20 6:43 AM
‎2012 Dec 22 9:26 AM
FBCJ Upload : Updating sucessfully
Below is my code ::
FBCJ Upload : Updating sucessfully , use this code
no standard page heading line-size 255.
****************************************************** Data Declaration 1 *********Begin Of
data: begin of IT_FBCJ occurs 0,
BUDAT type ISCJ_E_POSTINGS-POSTING_DATE,
BLDAT type ISCJ_E_POSTINGS-DOCUMENT_DATE,
BUKRS type TCJ_C_JOURNALS-COMP_CODE,
CJNR type TCJ_C_JOURNALS-CAJO_NUMBER,
TRAN type TCJ_TRANSACTIONS-TRANSACT_NUMBER,
AMT(16),
DOCNR type ISCJ_E_POSTINGS-DOCUMENT_NUMBER,
KOSTL type ISCJ_E_POSTINGS-KOSTL,
PRCTR type ISCJ_E_POSTINGS-PRCTR,
TEXT type ISCJ_E_POSTINGS-POSITION_TEXT,
PERNR type ISCJ_E_POSTINGS-PERNR,
CURRENCY type BAPI_CJ_HEADER-CURRENCY ,
end of IT_FBCJ.
data: BDCDATA type table of BDCDATA with header line,
IT_BDCMSGCOLL type table of BDCMSGCOLL with header line,
ITAB type table of ALSMEX_TABLINE with header line.
data: HEADER type BAPI_CJ_HEADER,
HEADER1 TYPE TCJ_C_JOURNALS ,
ITEMS type table of BAPI_CJ_ITEMS with header line,
ITEMS1 type table of ISCJ_POSTINGS with header line,
TCJ TYPE TABLE OF TCJ_CPD with header line ,
POSTING TYPE TABLE OF ISCJ_POSTINGS WITH HEADER LINE ,
TAX TYPE TABLE OF TCJ_WTAX_ITEMS WITH HEADER LINE ,
IT_RETURN type BAPIRET2 occurs 0 with header line.
data: V_COUNT(2) type N,
V_FLD(25) type C,
V_NUMBER type BAPI_CJ_HEADER-CAJO_NUMBER,
V_GJAHR type BAPI_CJ_KEY-FISC_YEAR,
V_POSTNO type BAPI_CJ_KEY-POSTING_NUMBER,
CURR type BAPI_CJ_HEADER-CURRENCY .
****************************************************** Data Declaration 1 *********End Of
****************************************************** Data Declaration 2 *********Begin Of
*&----
**&
**& SELECTION-SCREEN
*&----
selection-screen : begin of block B1 with frame title TEXT-001.
parameters : P_FILE type RLGRAP-FILENAME.
selection-screen : end of block B1.
*selection-screen : begin of block B2 with frame title TEXT-002.
*parameters : R1 radiobutton group RAD1 default 'X',
* R2 radiobutton group RAD1.
*selection-screen : end of block B2.
*&----
**&
**& AT SELECTION-SCREEN
*&----
at selection-screen on value-request for P_FILE.
call function 'KD_GET_FILENAME_ON_F4'
exporting
PROGRAM_NAME = SYST-REPID
DYNPRO_NUMBER = SYST-DYNNR
changing
FILE_NAME = P_FILE
exceptions
MASK_TOO_LONG = 1
others = 2.
if SY-SUBRC <> 0.
endif.
*
*&----
**&
**& START-OF-SELECTION.
*&----
start-of-selection.
perform UPLOAD.
perform BAPI.
* perform DATA_EXRACTION .
perform DATA_EXRACTION1 .
PERFORM BAPI_UPDATE .
*&----
**&
**& END-OF-SELECTION.
*&----
end-of-selection.
*&----
**& Form UPLOAD
*&----
form UPLOAD .
call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
exporting
FILENAME = P_FILE
I_BEGIN_COL = '1'
I_BEGIN_ROW = '3'
I_END_COL = '12'
I_END_ROW = '65536'
tables
INTERN = ITAB
exceptions
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
others = 3.
if SY-SUBRC <> 0.
endif.
loop at ITAB.
case ITAB-COL.
when '0001'.
move ITAB-VALUE to IT_FBCJ-BUDAT.
when '0002'.
move ITAB-VALUE to IT_FBCJ-BLDAT.
when '0003'.
move ITAB-VALUE to IT_FBCJ-BUKRS.
when '0004'.
move ITAB-VALUE to IT_FBCJ-CJNR.
when '0005'.
move ITAB-VALUE to IT_FBCJ-TRAN.
when '0006'.
move ITAB-VALUE to IT_FBCJ-AMT.
when '0007'.
move ITAB-VALUE to IT_FBCJ-DOCNR.
when '0008'.
move ITAB-VALUE to IT_FBCJ-KOSTL.
when '0009'.
move ITAB-VALUE to IT_FBCJ-PRCTR.
when '0010'.
move ITAB-VALUE to IT_FBCJ-TEXT.
when '0011'.
move ITAB-VALUE to IT_FBCJ-PERNR.
when '0012' .
move itab-value to IT_FBCJ-CURRENCY .
endcase.
at end of ROW.
append IT_FBCJ.
clear IT_FBCJ.
endat.
endloop.
sort IT_FBCJ by BUDAT.
loop at IT_FBCJ.
if SY-TABIX eq 1.
HEADER-COMP_CODE = IT_FBCJ-BUKRS.
HEADER1-COMP_CODE = HEADER-COMP_CODE.
HEADER-CAJO_NUMBER = IT_FBCJ-CJNR.
HEADER1-CAJO_NUMBER = HEADER-CAJO_NUMBER.
HEADER-REF_DOC_NO = IT_FBCJ-DOCNR.
HEADER-CURRENCY = IT_FBCJ-CURRENCY .
HEADER1-CURRENCY = IT_FBCJ-CURRENCY .
concatenate IT_FBCJ-BUDAT+4(4) IT_FBCJ-BUDAT+2(2) IT_FBCJ-BUDAT+0(2) into HEADER-PSTNG_DATE.
concatenate IT_FBCJ-BLDAT+4(4) IT_FBCJ-BLDAT+2(2) IT_FBCJ-BLDAT+0(2) into HEADER-DOC_DATE.
endif.
V_COUNT = V_COUNT + 1.
ITEMS-POSITION_NUMBER = V_COUNT.
ITEMS-TRANSACT_NUMBER = IT_FBCJ-TRAN.
* if R1 eq 'X'.
ITEMS-P_PAYMENTS = IT_FBCJ-AMT.
* else.
* ITEMS-P_RECEIPTS = IT_FBCJ-AMT.
* endif.
ITEMS-COSTCENTER = IT_FBCJ-KOSTL.
ITEMS-PROFIT_CTR = IT_FBCJ-PRCTR.
ITEMS-POSITION_TEXT = IT_FBCJ-TEXT.
ITEMS-PERSON_NO = IT_FBCJ-PERNR.
append ITEMS.
endloop.
endform. " UPLOAD
*&----
**& Form BAPI
*&----
form BAPI .
call function 'BAPI_CASHJOURNALDOC_CREATE'
exporting
HEADER = HEADER
* TESTRUN =
importing
* COMPANY_CODE =
CASH_JOURNAL_NUMBER = V_NUMBER
FISCAL_YEAR = V_GJAHR
CASH_JOURNAL_DOC_NO = V_POSTNO
tables
ITEMS = ITEMS
* TAX_ITEMS =
* CPD_ITEMS =
* WTAX_ITEMS =
* EXTENSION_IN =
RETURN = IT_RETURN .
* IF IT_RETURN-TYPE IS NOT INITIAL.
commit work.
wait up to 10 seconds.
* endif.
*Commiting the work using Commit Work
* call function 'BAPI_TRANSACTION_COMMIT'
**EXPORTING
** WAIT = '10'
*importing
* RETURN = IT_RETURN
.
* loop at IT_RETURN.
* write: / IT_RETURN-TYPE,
* IT_RETURN-ID ,
* IT_RETURN-NUMBER,
* IT_RETURN-MESSAGE.
* endloop.
endform. "BAPI
*&---------------------------------------------------------------------*
*& Form DATA_EXRACTION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form DATA_EXRACTION .
* types : begin of GS_DOC ,
* COMP_CODE type TCJ_DOCUMENTS-COMP_CODE ,
* CAJO_NUMBER type TCJ_DOCUMENTS-CAJO_NUMBER ,
* POSTING_NUMBER type TCJ_DOCUMENTS-POSTING_NUMBER ,
* CURRENCY type TCJ_DOCUMENTS-CURRENCY ,
* H_PAYMENTS type TCJ_DOCUMENTS-H_PAYMENTS,
* H_NET_AMOUNT type TCJ_DOCUMENTS-H_NET_AMOUNT,
* H_NET_PAYMENT_WT type TCJ_DOCUMENTS-H_NET_PAYMENT_WT ,
* DOCUMENT_DATE type TCJ_DOCUMENTS-DOCUMENT_DATE ,
* DOCUMENT_NUMBER type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,
* POSTING_DATE type TCJ_DOCUMENTS-POSTING_DATE ,
* DOCUMENT_STATUS type TCJ_DOCUMENTS-DOCUMENT_STATUS ,
* end of GS_DOC .
*
* data : GT_DOC type standard table of GS_DOC ,
* GW_DOC type GS_DOC .
*
*
* types : begin of GS_ITEMS ,
* COMP_CODE type TCJ_POSITIONS-COMP_CODE ,
* CAJO_NUMBER type TCJ_POSITIONS-CAJO_NUMBER ,
* POSTING_NUMBER type TCJ_POSITIONS-POSTING_NUMBER ,
* CURRENCY type TCJ_POSITIONS-CURRENCY ,
* P_PAYMENTS type TCJ_POSITIONS-P_PAYMENTS,
* P_NET_AMOUNT type TCJ_POSITIONS-P_NET_AMOUNT,
* P_NET_PAYMENT_WT type TCJ_POSITIONS-P_NET_PAYMENT_WT ,
* POSTING_DATE type TCJ_POSITIONS-POSTING_DATE ,
* TRANSACT_NUMBER type TCJ_POSITIONS-TRANSACT_NUMBER ,
* GL_ACCOUNT type TCJ_POSITIONS-GL_ACCOUNT ,
* POSITION_TEXT type TCJ_POSITIONS-POSITION_TEXT ,
* KOKRS type TCJ_POSITIONS-KOKRS ,
* KOSTL type TCJ_POSITIONS-KOSTL ,
* PRCTR type TCJ_POSITIONS-PRCTR,
* PERNR type TCJ_POSITIONS-PERNR ,
* end of GS_ITEMS .
*
* data : GT_ITEMS type standard table of GS_ITEMS ,
* GW_ITEMS type GS_ITEMS .
*
* types : begin of GS_NAME ,
* COMP_CODE type TCJ_TRANS_NAMES-COMP_CODE ,
* TRANSACT_NUMBER type TCJ_TRANS_NAMES-TRANSACT_NUMBER ,
* TRANSACT_NAME type TCJ_TRANS_NAMES-TRANSACT_NAME ,
* end of GS_NAME .
*
* data : GT_NAME type standard table of GS_NAME ,
* GW_NAME type GS_NAME .
*
* data : begin of IT_FINAL occurs 0 ,
* CAJO_NUMBER type TCJ_DOCUMENTS-CAJO_NUMBER ,
* COMP_CODE type TCJ_DOCUMENTS-COMP_CODE,
* POSTING_NUMBER type TCJ_DOCUMENTS-POSTING_NUMBER ,
* CURRENCY type TCJ_DOCUMENTS-CURRENCY ,
* H_PAYMENTS type TCJ_DOCUMENTS-H_PAYMENTS,
* H_NET_AMOUNT type TCJ_DOCUMENTS-H_NET_AMOUNT,
* H_NET_PAYMENT_WT type TCJ_DOCUMENTS-H_NET_PAYMENT_WT ,
* DOCUMENT_DATE type TCJ_DOCUMENTS-DOCUMENT_DATE ,
* DOCUMENT_NUMBER type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,
* POSTING_DATE type TCJ_DOCUMENTS-POSTING_DATE ,
* DOCUMENT_STATUS type TCJ_DOCUMENTS-DOCUMENT_STATUS ,
* TRANSACT_NAME type TCJ_TRANS_NAMES-TRANSACT_NAME ,
* TRANSACT_NUMBER type TCJ_POSITIONS-TRANSACT_NUMBER ,
* POSITION_TEXT type TCJ_POSITIONS-POSITION_TEXT ,
* KOKRS type TCJ_POSITIONS-KOKRS ,
* KOSTL type TCJ_POSITIONS-KOSTL ,
* PRCTR type TCJ_POSITIONS-PRCTR,
* GL_ACCOUNT type TCJ_POSITIONS-GL_ACCOUNT ,
* PERNR type TCJ_POSITIONS-PERNR ,
* end of IT_FINAL .
*
*
*
* select COMP_CODE CAJO_NUMBER POSTING_NUMBER CURRENCY H_PAYMENTS
* H_NET_AMOUNT H_NET_PAYMENT_WT DOCUMENT_DATE
* DOCUMENT_NUMBER POSTING_DATE DOCUMENT_STATUS from TCJ_DOCUMENTS into table GT_DOC
* for all entries in IT_FBCJ
* where COMP_CODE eq IT_FBCJ-BUKRS and CAJO_NUMBER eq IT_FBCJ-CJNR and DOCUMENT_STATUS eq 'S' .
*
* if GT_DOC IS NOT INITIAL .
* select COMP_CODE CAJO_NUMBER POSTING_NUMBER CURRENCY P_PAYMENTS
* P_NET_AMOUNT P_NET_PAYMENT_WT POSTING_DATE TRANSACT_NUMBER
* GL_ACCOUNT POSITION_TEXT KOKRS KOSTL PRCTR PERNR from TCJ_POSITIONS into table GT_ITEMS
* for all entries in GT_DOC where COMP_CODE eq GT_DOC-COMP_CODE and
* CAJO_NUMBER eq GT_DOC-CAJO_NUMBER and POSTING_NUMBER eq GT_DOC-POSTING_NUMBER .
*
*
* select COMP_CODE TRANSACT_NUMBER TRANSACT_NAME from TCJ_TRANS_NAMES
* into table GT_NAME for all entries in GT_ITEMS where COMP_CODE eq GT_ITEMS-COMP_CODE and
* TRANSACT_NUMBER eq GT_ITEMS-TRANSACT_NUMBER .
* endif .
*
*
*LOOP AT GT_DOC INTO GW_DOC .
* IT_FINAL-CAJO_NUMBER = GW_DOC-CAJO_NUMBER .
* IT_FINAL-COMP_CODE = GW_DOC-COMP_CODE .
* IT_FINAL-POSTING_NUMBER = GW_DOC-POSTING_NUMBER .
* IT_FINAL-CURRENCY = GW_DOC-CURRENCY .
* IT_FINAL-H_PAYMENTS = GW_DOC-H_PAYMENTS .
* IT_FINAL-H_NET_AMOUNT = GW_DOC-H_NET_AMOUNT .
*IT_FINAL-H_NET_PAYMENT_WT = GW_DOC-H_NET_PAYMENT_WT .
* IT_FINAL-DOCUMENT_DATE = GW_DOC-DOCUMENT_DATE .
* IT_FINAL-DOCUMENT_NUMBER = GW_DOC-DOCUMENT_NUMBER .
* IT_FINAL-POSTING_DATE = GW_DOC-POSTING_DATE .
* IT_FINAL-DOCUMENT_STATUS = GW_DOC-DOCUMENT_STATUS .
*
*LOOP AT GT_ITEMS INTO GW_ITEMS WHERE CAJO_NUMBER = GW_DOC-CAJO_NUMBER AND
* COMP_CODE = IT_FINAL-COMP_CODE .
* IT_FINAL-TRANSACT_NUMBER = GW_ITEMS-TRANSACT_NUMBER .
* IT_FINAL-POSITION_TEXT = GW_ITEMS-POSITION_TEXT .
* IT_FINAL-KOKRS = GW_ITEMS-KOKRS .
* IT_FINAL-KOSTL = GW_ITEMS-KOSTL .
* IT_FINAL-PRCTR = GW_ITEMS-PRCTR .
* IT_FINAL-GL_ACCOUNT = GW_ITEMS-GL_ACCOUNT .
* IT_FINAL-PERNR = GW_ITEMS-PERNR.
* ENDLOOP .
*
* READ TABLE GT_NAME INTO GW_NAME WITH KEY COMP_CODE = GW_DOC-COMP_CODE
* TRANSACT_NUMBER = GW_ITEMS-TRANSACT_NUMBER .
* IF SY-SUBRC = 0 .
* IT_FINAL-TRANSACT_NAME = GW_NAME-TRANSACT_NAME .
* ENDIF .
* APPEND IT_FINAL .
* ENDLOOP .
*SORT IT_FINAL .
endform. " DATA_EXRACTION
*&---------------------------------------------------------------------*
*& Form DATA_EXRACTION1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DATA_EXRACTION1 .
data : begin of IT_DOC occurs 0 ,
COMP_CODE type TCJ_DOCUMENTS-COMP_CODE ,
CAJO_NUMBER type TCJ_DOCUMENTS-CAJO_NUMBER ,
POSTING_NUMBER type TCJ_DOCUMENTS-POSTING_NUMBER ,
CURRENCY type TCJ_DOCUMENTS-CURRENCY ,
H_PAYMENTS type TCJ_DOCUMENTS-H_PAYMENTS,
H_NET_AMOUNT type TCJ_DOCUMENTS-H_NET_AMOUNT,
H_NET_PAYMENT_WT type TCJ_DOCUMENTS-H_NET_PAYMENT_WT ,
DOCUMENT_DATE type TCJ_DOCUMENTS-DOCUMENT_DATE ,
DOCUMENT_NUMBER type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,
POSTING_DATE type TCJ_DOCUMENTS-POSTING_DATE ,
DOCUMENT_STATUS type TCJ_DOCUMENTS-DOCUMENT_STATUS ,
end of IT_DOC .
data : begin of IT_ITEMS occurs 0 ,
COMP_CODE type TCJ_POSITIONS-COMP_CODE ,
CAJO_NUMBER type TCJ_POSITIONS-CAJO_NUMBER ,
POSTING_NUMBER type TCJ_POSITIONS-POSTING_NUMBER ,
CURRENCY type TCJ_POSITIONS-CURRENCY ,
P_PAYMENTS type TCJ_POSITIONS-P_PAYMENTS,
P_NET_AMOUNT type TCJ_POSITIONS-P_NET_AMOUNT,
P_NET_PAYMENT_WT type TCJ_POSITIONS-P_NET_PAYMENT_WT ,
POSTING_DATE type TCJ_POSITIONS-POSTING_DATE ,
TRANSACT_NUMBER type TCJ_POSITIONS-TRANSACT_NUMBER ,
GL_ACCOUNT type TCJ_POSITIONS-GL_ACCOUNT ,
POSITION_NUMBER type tcj_positions-POSITION_NUMBER ,
POSITION_TEXT type TCJ_POSITIONS-POSITION_TEXT ,
KOKRS type TCJ_POSITIONS-KOKRS ,
KOSTL type TCJ_POSITIONS-KOSTL ,
PRCTR type TCJ_POSITIONS-PRCTR,
PERNR type TCJ_POSITIONS-PERNR ,
end of IT_ITEMS .
DATA : BEGIN OF IT_NAME OCCURS 0 ,
COMP_CODE TYPE TCJ_TRANS_NAMES-COMP_CODE ,
TRANSACT_NUMBER TYPE TCJ_TRANS_NAMES-TRANSACT_NUMBER ,
TRANSACT_NAME TYPE TCJ_TRANS_NAMES-TRANSACT_NAME ,
END OF IT_NAME .
DATA : BEGIN OF IT_FINAL OCCURS 0 ,
CAJO_NUMBER type TCJ_DOCUMENTS-CAJO_NUMBER ,
COMP_CODE type TCJ_DOCUMENTS-COMP_CODE,
POSTING_NUMBER type TCJ_DOCUMENTS-POSTING_NUMBER ,
CURRENCY type TCJ_DOCUMENTS-CURRENCY ,
H_PAYMENTS type TCJ_DOCUMENTS-H_PAYMENTS,
H_NET_AMOUNT type TCJ_DOCUMENTS-H_NET_AMOUNT,
POSITION_NUMBER type tcj_positions-POSITION_NUMBER ,
H_NET_PAYMENT_WT type TCJ_DOCUMENTS-H_NET_PAYMENT_WT ,
DOCUMENT_DATE type TCJ_DOCUMENTS-DOCUMENT_DATE ,
DOCUMENT_NUMBER type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,
POSTING_DATE type TCJ_DOCUMENTS-POSTING_DATE ,
DOCUMENT_STATUS type TCJ_DOCUMENTS-DOCUMENT_STATUS ,
TRANSACT_NAME TYPE TCJ_TRANS_NAMES-TRANSACT_NAME ,
TRANSACT_NUMBER TYPE TCJ_POSITIONS-TRANSACT_NUMBER ,
POSITION_TEXT type TCJ_POSITIONS-POSITION_TEXT ,
DOCUMENT_NUMBER1 type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,
KOKRS type TCJ_POSITIONS-KOKRS ,
KOSTL type TCJ_POSITIONS-KOSTL ,
PRCTR type TCJ_POSITIONS-PRCTR,
GL_ACCOUNT type TCJ_POSITIONS-GL_ACCOUNT ,
PERNR type TCJ_POSITIONS-PERNR ,
END OF IT_FINAL .
select COMP_CODE CAJO_NUMBER POSTING_NUMBER CURRENCY H_PAYMENTS
H_NET_AMOUNT H_NET_PAYMENT_WT DOCUMENT_DATE
DOCUMENT_NUMBER POSTING_DATE DOCUMENT_STATUS FROM TCJ_DOCUMENTS INTO TABLE IT_DOC
* FOR ALL ENTRIES IN IT_FBCJ
WHERE COMP_CODE EQ IT_FBCJ-BUKRS AND CAJO_NUMBER EQ IT_FBCJ-CJNR ANDDOCUMENT_STATUS EQ 'S' .
IF SY-SUBRC = 0 .
SELECT COMP_CODE CAJO_NUMBER POSTING_NUMBER CURRENCY P_PAYMENTS POSITION_NUMBER
P_NET_AMOUNT P_NET_PAYMENT_WT POSTING_DATE TRANSACT_NUMBER
GL_ACCOUNT POSITION_TEXT KOKRS KOSTL PRCTR PERNR FROM TCJ_POSITIONSINTO
corresponding fields of table IT_ITEMS
FOR ALL ENTRIES IN IT_DOC WHERE COMP_CODE EQ IT_DOC-COMP_CODE AND
CAJO_NUMBER EQ IT_DOC-CAJO_NUMBER and POSTING_NUMBER EQ IT_DOC-POSTING_NUMBER .
ENDIF .
IF SY-SUBRC = 0 .
SELECT COMP_CODE TRANSACT_NUMBER TRANSACT_NAME FROM TCJ_TRANS_NAMES
INTO TABLE IT_NAME FOR ALL ENTRIES IN IT_ITEMS WHERE COMP_CODE EQ IT_ITEMS-COMP_CODE AND
TRANSACT_NUMBER EQ IT_ITEMS-TRANSACT_NUMBER .
ENDIF .
LOOP AT IT_DOC .
IT_FINAL-CAJO_NUMBER = IT_DOC-CAJO_NUMBER .
IT_FINAL-COMP_CODE = IT_DOC-COMP_CODE .
IT_FINAL-POSTING_NUMBER = IT_DOC-POSTING_NUMBER .
IT_FINAL-CURRENCY = IT_DOC-CURRENCY .
* IT_FINAL-H_PAYMENTS = IT_DOC-H_PAYMENTS .
* IT_FINAL-H_NET_AMOUNT = IT_DOC-H_NET_AMOUNT .
IT_FINAL-H_NET_PAYMENT_WT = IT_DOC-H_NET_PAYMENT_WT .
IT_FINAL-DOCUMENT_DATE = IT_DOC-DOCUMENT_DATE .
IT_FINAL-DOCUMENT_NUMBER = IT_DOC-DOCUMENT_NUMBER .
IT_FINAL-POSTING_DATE = IT_DOC-POSTING_DATE .
IT_FINAL-DOCUMENT_STATUS = IT_DOC-DOCUMENT_STATUS .
LOOP AT IT_ITEMS WHERE CAJO_NUMBER = IT_DOC-CAJO_NUMBER AND
COMP_CODE = IT_DOC-COMP_CODE AND
POSTING_NUMBER = IT_DOC-POSTING_NUMBER .
IT_FINAL-TRANSACT_NUMBER = IT_ITEMS-TRANSACT_NUMBER .
IT_FINAL-POSITION_TEXT = IT_ITEMS-POSITION_TEXT .
it_final-POSITION_NUMBER = it_items-POSITION_NUMBER .
IT_FINAL-H_PAYMENTS = IT_ITEMS-P_PAYMENTS .
IT_FINAL-H_NET_AMOUNT = IT_ITEMS-P_NET_AMOUNT .
IT_FINAL-KOKRS = IT_ITEMS-KOKRS .
IT_FINAL-KOSTL = IT_ITEMS-KOSTL .
IT_FINAL-PRCTR = IT_ITEMS-PRCTR .
IT_FINAL-GL_ACCOUNT = IT_ITEMS-GL_ACCOUNT .
IT_FINAL-PERNR = IT_ITEMS-PERNR.
ENDLOOP .
READ TABLE IT_NAME WITH KEY COMP_CODE = IT_DOC-COMP_CODE
TRANSACT_NUMBER = IT_ITEMS-TRANSACT_NUMBER .
* LOOP AT IT_NAME WHERE COMP_CODE = IT_DOC-COMP_CODE AND
* TRANSACT_NUMBER = IT_ITEMS-TRANSACT_NUMBER .
IF SY-SUBRC = 0 .
IT_FINAL-TRANSACT_NAME = IT_NAME-TRANSACT_NAME .
ENDIF .
APPEND IT_FINAL .
CLEAR IT_FINAL .
ENDLOOP .
* ENDLOOP .
IF SY-SUBRC = 0 .
SORT IT_FINAL .
DELETE ADJACENT DUPLICATES FROM IT_FINAL COMPARING ALL FIELDS .
SORT IT_FINAL .
ENDIF .
LOOP AT IT_FINAL .
ITEMS1-CAJO_NUMBER = IT_FINAL-CAJO_NUMBER .
TCJ-CAJO_NUMBER = IT_FINAL-CAJO_NUMBER .
TAX-CAJO_NUMBER = IT_FINAL-CAJO_NUMBER .
ITEMS1-COMP_CODE = IT_FINAL-COMP_CODE.
TCJ-COMP_CODE = IT_FINAL-COMP_CODE.
TAX-COMP_CODE = IT_FINAL-COMP_CODE.
ITEMS1-POSTING_NUMBER = IT_FINAL-POSTING_NUMBER .
TCJ-POSTING_NUMBER = IT_FINAL-POSTING_NUMBER .
TAX-POSTING_NUMBER = IT_FINAL-POSTING_NUMBER .
* ITEMS1-CURRENCY = IT_FINAL-CURRENCY .
ITEMS1-H_PAYMENTS = IT_FINAL-H_PAYMENTS .
ITEMS1-H_NET_AMOUNT = IT_FINAL-H_NET_AMOUNT .
ITEMS1-H_NET_PAYMENT_WT = IT_FINAL-H_NET_PAYMENT_WT .
ITEMS1-DOCUMENT_DATE = IT_FINAL-DOCUMENT_DATE .
ITEMS1-DOCUMENT_NUMBER = IT_FINAL-DOCUMENT_NUMBER .
ITEMS1-POSTING_DATE = IT_FINAL-POSTING_DATE .
ITEMS1-DOCUMENT_STATUS = IT_FINAL-DOCUMENT_STATUS .
ITEMS1-TRANSACT_NAME = IT_FINAL-TRANSACT_NAME .
* ITEMS1-TRANSACT_NUMBER = IT_FINAL-TRANSACT_NUMBER .
ITEMS1-POSITION_TEXT = IT_FINAL-POSITION_TEXT .
items1-POSITION_NUMBER = it_final-POSITION_NUMBER .
TCJ-POSITION_NUMBER = it_final-POSITION_NUMBER .
TAX-POSITION_NUMBER = it_final-POSITION_NUMBER .
* ITEMS1-DOCUMENT_NUMBER1 = IT_FINAL-DOCUMENT_NUMBER .
ITEMS1-KOKRS = IT_FINAL-KOKRS .
ITEMS1-KOSTL = IT_FINAL-KOSTL .
ITEMS1-PRCTR = IT_FINAL-PRCTR .
ITEMS1-GL_ACCOUNT = IT_FINAL-GL_ACCOUNT .
ITEMS1-PERNR = IT_FINAL-PERNR .
APPEND ITEMS1 .
APPEND TCJ .
APPEND TAX.
ENDLOOP .
POSTING[] = ITEMS1[] .
* TAX[] = TCJ[] .
ENDFORM. " DATA_EXRACTION1
*&---------------------------------------------------------------------*
*& Form BAPI_UPDATE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BAPI_UPDATE .
DATA : P_BEG_BALANCE TYPE CJAMOUNT ,
P_TOTAL_RECEIPTS TYPE CJAMOUNT,
P_TOTAL_PAYMENTS TYPE CJAMOUNT,
P_TOTAL_CHECKS TYPE CJAMOUNT,
P_RUN_BALANCE TYPE CJAMOUNT,
P_RUN_CASH_BALANCE TYPE CJAMOUNT,
P_NUMB_OF_REC TYPE I,
P_NUMB_OF_PAYM TYPE I,
P_NUMB_OF_CHECKS TYPE I.
P_BEG_BALANCE = '0.00' .
P_TOTAL_RECEIPTS = '0.00'.
P_TOTAL_PAYMENTS = '40.00'.
P_TOTAL_CHECKS = '0.00' .
P_RUN_BALANCE = '0.00' .
P_RUN_CASH_BALANCE = '0.00' .
P_NUMB_OF_REC = '4' .
P_NUMB_OF_PAYM = '4' .
P_NUMB_OF_CHECKS = '0' .
call function 'FCJ_POST_ALL'
exporting
I_COMP_CODE = HEADER1-COMP_CODE
I_CAJO_NUMBER = HEADER1-CAJO_NUMBER
I_CURRENCY = HEADER1-CURRENCY
I_TYP = 'C'
I_DISPLAY_PERIOD_LO = '01122012'
I_DISPLAY_PERIOD_HI = '31122012'
* IMPORTING
* E_ERROR_NUMBER =
TABLES
ITCJ_POSTINGS = ITEMS1
ITCJ_WTAX_ITEMS = TAX
ITCJ_SPLIT_POSTINGS = POSTING
ITCJ_CPD = TCJ
CHANGING
P_BEG_BALANCE = P_BEG_BALANCE
P_TOTAL_RECEIPTS = P_TOTAL_RECEIPTS
P_TOTAL_PAYMENTS = P_TOTAL_PAYMENTS
P_TOTAL_CHECKS = P_TOTAL_CHECKS
P_RUN_BALANCE = P_RUN_BALANCE
P_RUN_CASH_BALANCE = P_RUN_CASH_BALANCE
P_NUMB_OF_REC = P_NUMB_OF_REC
P_NUMB_OF_PAYM = P_NUMB_OF_PAYM
P_NUMB_OF_CHECKS = P_NUMB_OF_CHECKS
.
commit work.
wait up to 10 seconds.
* endif.
*Commiting the work using Commit Work
* call function 'BAPI_TRANSACTION_COMMIT'
**EXPORTING
** WAIT = '10'
*importing
* RETURN = IT_RETURN
.
loop at IT_RETURN.
write: / IT_RETURN-TYPE,
IT_RETURN-ID ,
IT_RETURN-NUMBER,
IT_RETURN-MESSAGE.
endloop.
ENDFORM. " BAPI_UPDATE
‎2012 Dec 22 9:27 AM
FBCJ Upload : Updating sucessfully
Below is my code ::
FBCJ Upload : Updating sucessfully , use this code
no standard page heading line-size 255.
****************************************************** Data Declaration 1 *********Begin Of
data: begin of IT_FBCJ occurs 0,
BUDAT type ISCJ_E_POSTINGS-POSTING_DATE,
BLDAT type ISCJ_E_POSTINGS-DOCUMENT_DATE,
BUKRS type TCJ_C_JOURNALS-COMP_CODE,
CJNR type TCJ_C_JOURNALS-CAJO_NUMBER,
TRAN type TCJ_TRANSACTIONS-TRANSACT_NUMBER,
AMT(16),
DOCNR type ISCJ_E_POSTINGS-DOCUMENT_NUMBER,
KOSTL type ISCJ_E_POSTINGS-KOSTL,
PRCTR type ISCJ_E_POSTINGS-PRCTR,
TEXT type ISCJ_E_POSTINGS-POSITION_TEXT,
PERNR type ISCJ_E_POSTINGS-PERNR,
CURRENCY type BAPI_CJ_HEADER-CURRENCY ,
end of IT_FBCJ.
data: BDCDATA type table of BDCDATA with header line,
IT_BDCMSGCOLL type table of BDCMSGCOLL with header line,
ITAB type table of ALSMEX_TABLINE with header line.
data: HEADER type BAPI_CJ_HEADER,
HEADER1 TYPE TCJ_C_JOURNALS ,
ITEMS type table of BAPI_CJ_ITEMS with header line,
ITEMS1 type table of ISCJ_POSTINGS with header line,
TCJ TYPE TABLE OF TCJ_CPD with header line ,
POSTING TYPE TABLE OF ISCJ_POSTINGS WITH HEADER LINE ,
TAX TYPE TABLE OF TCJ_WTAX_ITEMS WITH HEADER LINE ,
IT_RETURN type BAPIRET2 occurs 0 with header line.
data: V_COUNT(2) type N,
V_FLD(25) type C,
V_NUMBER type BAPI_CJ_HEADER-CAJO_NUMBER,
V_GJAHR type BAPI_CJ_KEY-FISC_YEAR,
V_POSTNO type BAPI_CJ_KEY-POSTING_NUMBER,
CURR type BAPI_CJ_HEADER-CURRENCY .
****************************************************** Data Declaration 1 *********End Of
****************************************************** Data Declaration 2 *********Begin Of
*&----
**&
**& SELECTION-SCREEN
*&----
selection-screen : begin of block B1 with frame title TEXT-001.
parameters : P_FILE type RLGRAP-FILENAME.
selection-screen : end of block B1.
*selection-screen : begin of block B2 with frame title TEXT-002.
*parameters : R1 radiobutton group RAD1 default 'X',
* R2 radiobutton group RAD1.
*selection-screen : end of block B2.
*&----
**&
**& AT SELECTION-SCREEN
*&----
at selection-screen on value-request for P_FILE.
call function 'KD_GET_FILENAME_ON_F4'
exporting
PROGRAM_NAME = SYST-REPID
DYNPRO_NUMBER = SYST-DYNNR
changing
FILE_NAME = P_FILE
exceptions
MASK_TOO_LONG = 1
others = 2.
if SY-SUBRC <> 0.
endif.
*
*&----
**&
**& START-OF-SELECTION.
*&----
start-of-selection.
perform UPLOAD.
perform BAPI.
* perform DATA_EXRACTION .
perform DATA_EXRACTION1 .
PERFORM BAPI_UPDATE .
*&----
**&
**& END-OF-SELECTION.
*&----
end-of-selection.
*&----
**& Form UPLOAD
*&----
form UPLOAD .
call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
exporting
FILENAME = P_FILE
I_BEGIN_COL = '1'
I_BEGIN_ROW = '3'
I_END_COL = '12'
I_END_ROW = '65536'
tables
INTERN = ITAB
exceptions
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
others = 3.
if SY-SUBRC <> 0.
endif.
loop at ITAB.
case ITAB-COL.
when '0001'.
move ITAB-VALUE to IT_FBCJ-BUDAT.
when '0002'.
move ITAB-VALUE to IT_FBCJ-BLDAT.
when '0003'.
move ITAB-VALUE to IT_FBCJ-BUKRS.
when '0004'.
move ITAB-VALUE to IT_FBCJ-CJNR.
when '0005'.
move ITAB-VALUE to IT_FBCJ-TRAN.
when '0006'.
move ITAB-VALUE to IT_FBCJ-AMT.
when '0007'.
move ITAB-VALUE to IT_FBCJ-DOCNR.
when '0008'.
move ITAB-VALUE to IT_FBCJ-KOSTL.
when '0009'.
move ITAB-VALUE to IT_FBCJ-PRCTR.
when '0010'.
move ITAB-VALUE to IT_FBCJ-TEXT.
when '0011'.
move ITAB-VALUE to IT_FBCJ-PERNR.
when '0012' .
move itab-value to IT_FBCJ-CURRENCY .
endcase.
at end of ROW.
append IT_FBCJ.
clear IT_FBCJ.
endat.
endloop.
sort IT_FBCJ by BUDAT.
loop at IT_FBCJ.
if SY-TABIX eq 1.
HEADER-COMP_CODE = IT_FBCJ-BUKRS.
HEADER1-COMP_CODE = HEADER-COMP_CODE.
HEADER-CAJO_NUMBER = IT_FBCJ-CJNR.
HEADER1-CAJO_NUMBER = HEADER-CAJO_NUMBER.
HEADER-REF_DOC_NO = IT_FBCJ-DOCNR.
HEADER-CURRENCY = IT_FBCJ-CURRENCY .
HEADER1-CURRENCY = IT_FBCJ-CURRENCY .
concatenate IT_FBCJ-BUDAT+4(4) IT_FBCJ-BUDAT+2(2) IT_FBCJ-BUDAT+0(2) into HEADER-PSTNG_DATE.
concatenate IT_FBCJ-BLDAT+4(4) IT_FBCJ-BLDAT+2(2) IT_FBCJ-BLDAT+0(2) into HEADER-DOC_DATE.
endif.
V_COUNT = V_COUNT + 1.
ITEMS-POSITION_NUMBER = V_COUNT.
ITEMS-TRANSACT_NUMBER = IT_FBCJ-TRAN.
* if R1 eq 'X'.
ITEMS-P_PAYMENTS = IT_FBCJ-AMT.
* else.
* ITEMS-P_RECEIPTS = IT_FBCJ-AMT.
* endif.
ITEMS-COSTCENTER = IT_FBCJ-KOSTL.
ITEMS-PROFIT_CTR = IT_FBCJ-PRCTR.
ITEMS-POSITION_TEXT = IT_FBCJ-TEXT.
ITEMS-PERSON_NO = IT_FBCJ-PERNR.
append ITEMS.
endloop.
endform. " UPLOAD
*&----
**& Form BAPI
*&----
form BAPI .
call function 'BAPI_CASHJOURNALDOC_CREATE'
exporting
HEADER = HEADER
* TESTRUN =
importing
* COMPANY_CODE =
CASH_JOURNAL_NUMBER = V_NUMBER
FISCAL_YEAR = V_GJAHR
CASH_JOURNAL_DOC_NO = V_POSTNO
tables
ITEMS = ITEMS
* TAX_ITEMS =
* CPD_ITEMS =
* WTAX_ITEMS =
* EXTENSION_IN =
RETURN = IT_RETURN .
* IF IT_RETURN-TYPE IS NOT INITIAL.
commit work.
wait up to 10 seconds.
* endif.
*Commiting the work using Commit Work
* call function 'BAPI_TRANSACTION_COMMIT'
**EXPORTING
** WAIT = '10'
*importing
* RETURN = IT_RETURN
.
* loop at IT_RETURN.
* write: / IT_RETURN-TYPE,
* IT_RETURN-ID ,
* IT_RETURN-NUMBER,
* IT_RETURN-MESSAGE.
* endloop.
endform. "BAPI
*&---------------------------------------------------------------------*
*& Form DATA_EXRACTION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form DATA_EXRACTION .
* types : begin of GS_DOC ,
* COMP_CODE type TCJ_DOCUMENTS-COMP_CODE ,
* CAJO_NUMBER type TCJ_DOCUMENTS-CAJO_NUMBER ,
* POSTING_NUMBER type TCJ_DOCUMENTS-POSTING_NUMBER ,
* CURRENCY type TCJ_DOCUMENTS-CURRENCY ,
* H_PAYMENTS type TCJ_DOCUMENTS-H_PAYMENTS,
* H_NET_AMOUNT type TCJ_DOCUMENTS-H_NET_AMOUNT,
* H_NET_PAYMENT_WT type TCJ_DOCUMENTS-H_NET_PAYMENT_WT ,
* DOCUMENT_DATE type TCJ_DOCUMENTS-DOCUMENT_DATE ,
* DOCUMENT_NUMBER type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,
* POSTING_DATE type TCJ_DOCUMENTS-POSTING_DATE ,
* DOCUMENT_STATUS type TCJ_DOCUMENTS-DOCUMENT_STATUS ,
* end of GS_DOC .
*
* data : GT_DOC type standard table of GS_DOC ,
* GW_DOC type GS_DOC .
*
*
* types : begin of GS_ITEMS ,
* COMP_CODE type TCJ_POSITIONS-COMP_CODE ,
* CAJO_NUMBER type TCJ_POSITIONS-CAJO_NUMBER ,
* POSTING_NUMBER type TCJ_POSITIONS-POSTING_NUMBER ,
* CURRENCY type TCJ_POSITIONS-CURRENCY ,
* P_PAYMENTS type TCJ_POSITIONS-P_PAYMENTS,
* P_NET_AMOUNT type TCJ_POSITIONS-P_NET_AMOUNT,
* P_NET_PAYMENT_WT type TCJ_POSITIONS-P_NET_PAYMENT_WT ,
* POSTING_DATE type TCJ_POSITIONS-POSTING_DATE ,
* TRANSACT_NUMBER type TCJ_POSITIONS-TRANSACT_NUMBER ,
* GL_ACCOUNT type TCJ_POSITIONS-GL_ACCOUNT ,
* POSITION_TEXT type TCJ_POSITIONS-POSITION_TEXT ,
* KOKRS type TCJ_POSITIONS-KOKRS ,
* KOSTL type TCJ_POSITIONS-KOSTL ,
* PRCTR type TCJ_POSITIONS-PRCTR,
* PERNR type TCJ_POSITIONS-PERNR ,
* end of GS_ITEMS .
*
* data : GT_ITEMS type standard table of GS_ITEMS ,
* GW_ITEMS type GS_ITEMS .
*
* types : begin of GS_NAME ,
* COMP_CODE type TCJ_TRANS_NAMES-COMP_CODE ,
* TRANSACT_NUMBER type TCJ_TRANS_NAMES-TRANSACT_NUMBER ,
* TRANSACT_NAME type TCJ_TRANS_NAMES-TRANSACT_NAME ,
* end of GS_NAME .
*
* data : GT_NAME type standard table of GS_NAME ,
* GW_NAME type GS_NAME .
*
* data : begin of IT_FINAL occurs 0 ,
* CAJO_NUMBER type TCJ_DOCUMENTS-CAJO_NUMBER ,
* COMP_CODE type TCJ_DOCUMENTS-COMP_CODE,
* POSTING_NUMBER type TCJ_DOCUMENTS-POSTING_NUMBER ,
* CURRENCY type TCJ_DOCUMENTS-CURRENCY ,
* H_PAYMENTS type TCJ_DOCUMENTS-H_PAYMENTS,
* H_NET_AMOUNT type TCJ_DOCUMENTS-H_NET_AMOUNT,
* H_NET_PAYMENT_WT type TCJ_DOCUMENTS-H_NET_PAYMENT_WT ,
* DOCUMENT_DATE type TCJ_DOCUMENTS-DOCUMENT_DATE ,
* DOCUMENT_NUMBER type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,
* POSTING_DATE type TCJ_DOCUMENTS-POSTING_DATE ,
* DOCUMENT_STATUS type TCJ_DOCUMENTS-DOCUMENT_STATUS ,
* TRANSACT_NAME type TCJ_TRANS_NAMES-TRANSACT_NAME ,
* TRANSACT_NUMBER type TCJ_POSITIONS-TRANSACT_NUMBER ,
* POSITION_TEXT type TCJ_POSITIONS-POSITION_TEXT ,
* KOKRS type TCJ_POSITIONS-KOKRS ,
* KOSTL type TCJ_POSITIONS-KOSTL ,
* PRCTR type TCJ_POSITIONS-PRCTR,
* GL_ACCOUNT type TCJ_POSITIONS-GL_ACCOUNT ,
* PERNR type TCJ_POSITIONS-PERNR ,
* end of IT_FINAL .
*
*
*
* select COMP_CODE CAJO_NUMBER POSTING_NUMBER CURRENCY H_PAYMENTS
* H_NET_AMOUNT H_NET_PAYMENT_WT DOCUMENT_DATE
* DOCUMENT_NUMBER POSTING_DATE DOCUMENT_STATUS from TCJ_DOCUMENTS into table GT_DOC
* for all entries in IT_FBCJ
* where COMP_CODE eq IT_FBCJ-BUKRS and CAJO_NUMBER eq IT_FBCJ-CJNR and DOCUMENT_STATUS eq 'S' .
*
* if GT_DOC IS NOT INITIAL .
* select COMP_CODE CAJO_NUMBER POSTING_NUMBER CURRENCY P_PAYMENTS
* P_NET_AMOUNT P_NET_PAYMENT_WT POSTING_DATE TRANSACT_NUMBER
* GL_ACCOUNT POSITION_TEXT KOKRS KOSTL PRCTR PERNR from TCJ_POSITIONS into table GT_ITEMS
* for all entries in GT_DOC where COMP_CODE eq GT_DOC-COMP_CODE and
* CAJO_NUMBER eq GT_DOC-CAJO_NUMBER and POSTING_NUMBER eq GT_DOC-POSTING_NUMBER .
*
*
* select COMP_CODE TRANSACT_NUMBER TRANSACT_NAME from TCJ_TRANS_NAMES
* into table GT_NAME for all entries in GT_ITEMS where COMP_CODE eq GT_ITEMS-COMP_CODE and
* TRANSACT_NUMBER eq GT_ITEMS-TRANSACT_NUMBER .
* endif .
*
*
*LOOP AT GT_DOC INTO GW_DOC .
* IT_FINAL-CAJO_NUMBER = GW_DOC-CAJO_NUMBER .
* IT_FINAL-COMP_CODE = GW_DOC-COMP_CODE .
* IT_FINAL-POSTING_NUMBER = GW_DOC-POSTING_NUMBER .
* IT_FINAL-CURRENCY = GW_DOC-CURRENCY .
* IT_FINAL-H_PAYMENTS = GW_DOC-H_PAYMENTS .
* IT_FINAL-H_NET_AMOUNT = GW_DOC-H_NET_AMOUNT .
*IT_FINAL-H_NET_PAYMENT_WT = GW_DOC-H_NET_PAYMENT_WT .
* IT_FINAL-DOCUMENT_DATE = GW_DOC-DOCUMENT_DATE .
* IT_FINAL-DOCUMENT_NUMBER = GW_DOC-DOCUMENT_NUMBER .
* IT_FINAL-POSTING_DATE = GW_DOC-POSTING_DATE .
* IT_FINAL-DOCUMENT_STATUS = GW_DOC-DOCUMENT_STATUS .
*
*LOOP AT GT_ITEMS INTO GW_ITEMS WHERE CAJO_NUMBER = GW_DOC-CAJO_NUMBER AND
* COMP_CODE = IT_FINAL-COMP_CODE .
* IT_FINAL-TRANSACT_NUMBER = GW_ITEMS-TRANSACT_NUMBER .
* IT_FINAL-POSITION_TEXT = GW_ITEMS-POSITION_TEXT .
* IT_FINAL-KOKRS = GW_ITEMS-KOKRS .
* IT_FINAL-KOSTL = GW_ITEMS-KOSTL .
* IT_FINAL-PRCTR = GW_ITEMS-PRCTR .
* IT_FINAL-GL_ACCOUNT = GW_ITEMS-GL_ACCOUNT .
* IT_FINAL-PERNR = GW_ITEMS-PERNR.
* ENDLOOP .
*
* READ TABLE GT_NAME INTO GW_NAME WITH KEY COMP_CODE = GW_DOC-COMP_CODE
* TRANSACT_NUMBER = GW_ITEMS-TRANSACT_NUMBER .
* IF SY-SUBRC = 0 .
* IT_FINAL-TRANSACT_NAME = GW_NAME-TRANSACT_NAME .
* ENDIF .
* APPEND IT_FINAL .
* ENDLOOP .
*SORT IT_FINAL .
endform. " DATA_EXRACTION
*&---------------------------------------------------------------------*
*& Form DATA_EXRACTION1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DATA_EXRACTION1 .
data : begin of IT_DOC occurs 0 ,
COMP_CODE type TCJ_DOCUMENTS-COMP_CODE ,
CAJO_NUMBER type TCJ_DOCUMENTS-CAJO_NUMBER ,
POSTING_NUMBER type TCJ_DOCUMENTS-POSTING_NUMBER ,
CURRENCY type TCJ_DOCUMENTS-CURRENCY ,
H_PAYMENTS type TCJ_DOCUMENTS-H_PAYMENTS,
H_NET_AMOUNT type TCJ_DOCUMENTS-H_NET_AMOUNT,
H_NET_PAYMENT_WT type TCJ_DOCUMENTS-H_NET_PAYMENT_WT ,
DOCUMENT_DATE type TCJ_DOCUMENTS-DOCUMENT_DATE ,
DOCUMENT_NUMBER type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,
POSTING_DATE type TCJ_DOCUMENTS-POSTING_DATE ,
DOCUMENT_STATUS type TCJ_DOCUMENTS-DOCUMENT_STATUS ,
end of IT_DOC .
data : begin of IT_ITEMS occurs 0 ,
COMP_CODE type TCJ_POSITIONS-COMP_CODE ,
CAJO_NUMBER type TCJ_POSITIONS-CAJO_NUMBER ,
POSTING_NUMBER type TCJ_POSITIONS-POSTING_NUMBER ,
CURRENCY type TCJ_POSITIONS-CURRENCY ,
P_PAYMENTS type TCJ_POSITIONS-P_PAYMENTS,
P_NET_AMOUNT type TCJ_POSITIONS-P_NET_AMOUNT,
P_NET_PAYMENT_WT type TCJ_POSITIONS-P_NET_PAYMENT_WT ,
POSTING_DATE type TCJ_POSITIONS-POSTING_DATE ,
TRANSACT_NUMBER type TCJ_POSITIONS-TRANSACT_NUMBER ,
GL_ACCOUNT type TCJ_POSITIONS-GL_ACCOUNT ,
POSITION_NUMBER type tcj_positions-POSITION_NUMBER ,
POSITION_TEXT type TCJ_POSITIONS-POSITION_TEXT ,
KOKRS type TCJ_POSITIONS-KOKRS ,
KOSTL type TCJ_POSITIONS-KOSTL ,
PRCTR type TCJ_POSITIONS-PRCTR,
PERNR type TCJ_POSITIONS-PERNR ,
end of IT_ITEMS .
DATA : BEGIN OF IT_NAME OCCURS 0 ,
COMP_CODE TYPE TCJ_TRANS_NAMES-COMP_CODE ,
TRANSACT_NUMBER TYPE TCJ_TRANS_NAMES-TRANSACT_NUMBER ,
TRANSACT_NAME TYPE TCJ_TRANS_NAMES-TRANSACT_NAME ,
END OF IT_NAME .
DATA : BEGIN OF IT_FINAL OCCURS 0 ,
CAJO_NUMBER type TCJ_DOCUMENTS-CAJO_NUMBER ,
COMP_CODE type TCJ_DOCUMENTS-COMP_CODE,
POSTING_NUMBER type TCJ_DOCUMENTS-POSTING_NUMBER ,
CURRENCY type TCJ_DOCUMENTS-CURRENCY ,
H_PAYMENTS type TCJ_DOCUMENTS-H_PAYMENTS,
H_NET_AMOUNT type TCJ_DOCUMENTS-H_NET_AMOUNT,
POSITION_NUMBER type tcj_positions-POSITION_NUMBER ,
H_NET_PAYMENT_WT type TCJ_DOCUMENTS-H_NET_PAYMENT_WT ,
DOCUMENT_DATE type TCJ_DOCUMENTS-DOCUMENT_DATE ,
DOCUMENT_NUMBER type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,
POSTING_DATE type TCJ_DOCUMENTS-POSTING_DATE ,
DOCUMENT_STATUS type TCJ_DOCUMENTS-DOCUMENT_STATUS ,
TRANSACT_NAME TYPE TCJ_TRANS_NAMES-TRANSACT_NAME ,
TRANSACT_NUMBER TYPE TCJ_POSITIONS-TRANSACT_NUMBER ,
POSITION_TEXT type TCJ_POSITIONS-POSITION_TEXT ,
DOCUMENT_NUMBER1 type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,
KOKRS type TCJ_POSITIONS-KOKRS ,
KOSTL type TCJ_POSITIONS-KOSTL ,
PRCTR type TCJ_POSITIONS-PRCTR,
GL_ACCOUNT type TCJ_POSITIONS-GL_ACCOUNT ,
PERNR type TCJ_POSITIONS-PERNR ,
END OF IT_FINAL .
select COMP_CODE CAJO_NUMBER POSTING_NUMBER CURRENCY H_PAYMENTS
H_NET_AMOUNT H_NET_PAYMENT_WT DOCUMENT_DATE
DOCUMENT_NUMBER POSTING_DATE DOCUMENT_STATUS FROM TCJ_DOCUMENTS INTO TABLE IT_DOC
* FOR ALL ENTRIES IN IT_FBCJ
WHERE COMP_CODE EQ IT_FBCJ-BUKRS AND CAJO_NUMBER EQ IT_FBCJ-CJNR ANDDOCUMENT_STATUS EQ 'S' .
IF SY-SUBRC = 0 .
SELECT COMP_CODE CAJO_NUMBER POSTING_NUMBER CURRENCY P_PAYMENTS POSITION_NUMBER
P_NET_AMOUNT P_NET_PAYMENT_WT POSTING_DATE TRANSACT_NUMBER
GL_ACCOUNT POSITION_TEXT KOKRS KOSTL PRCTR PERNR FROM TCJ_POSITIONSINTO
corresponding fields of table IT_ITEMS
FOR ALL ENTRIES IN IT_DOC WHERE COMP_CODE EQ IT_DOC-COMP_CODE AND
CAJO_NUMBER EQ IT_DOC-CAJO_NUMBER and POSTING_NUMBER EQ IT_DOC-POSTING_NUMBER .
ENDIF .
IF SY-SUBRC = 0 .
SELECT COMP_CODE TRANSACT_NUMBER TRANSACT_NAME FROM TCJ_TRANS_NAMES
INTO TABLE IT_NAME FOR ALL ENTRIES IN IT_ITEMS WHERE COMP_CODE EQ IT_ITEMS-COMP_CODE AND
TRANSACT_NUMBER EQ IT_ITEMS-TRANSACT_NUMBER .
ENDIF .
LOOP AT IT_DOC .
IT_FINAL-CAJO_NUMBER = IT_DOC-CAJO_NUMBER .
IT_FINAL-COMP_CODE = IT_DOC-COMP_CODE .
IT_FINAL-POSTING_NUMBER = IT_DOC-POSTING_NUMBER .
IT_FINAL-CURRENCY = IT_DOC-CURRENCY .
* IT_FINAL-H_PAYMENTS = IT_DOC-H_PAYMENTS .
* IT_FINAL-H_NET_AMOUNT = IT_DOC-H_NET_AMOUNT .
IT_FINAL-H_NET_PAYMENT_WT = IT_DOC-H_NET_PAYMENT_WT .
IT_FINAL-DOCUMENT_DATE = IT_DOC-DOCUMENT_DATE .
IT_FINAL-DOCUMENT_NUMBER = IT_DOC-DOCUMENT_NUMBER .
IT_FINAL-POSTING_DATE = IT_DOC-POSTING_DATE .
IT_FINAL-DOCUMENT_STATUS = IT_DOC-DOCUMENT_STATUS .
LOOP AT IT_ITEMS WHERE CAJO_NUMBER = IT_DOC-CAJO_NUMBER AND
COMP_CODE = IT_DOC-COMP_CODE AND
POSTING_NUMBER = IT_DOC-POSTING_NUMBER .
IT_FINAL-TRANSACT_NUMBER = IT_ITEMS-TRANSACT_NUMBER .
IT_FINAL-POSITION_TEXT = IT_ITEMS-POSITION_TEXT .
it_final-POSITION_NUMBER = it_items-POSITION_NUMBER .
IT_FINAL-H_PAYMENTS = IT_ITEMS-P_PAYMENTS .
IT_FINAL-H_NET_AMOUNT = IT_ITEMS-P_NET_AMOUNT .
IT_FINAL-KOKRS = IT_ITEMS-KOKRS .
IT_FINAL-KOSTL = IT_ITEMS-KOSTL .
IT_FINAL-PRCTR = IT_ITEMS-PRCTR .
IT_FINAL-GL_ACCOUNT = IT_ITEMS-GL_ACCOUNT .
IT_FINAL-PERNR = IT_ITEMS-PERNR.
ENDLOOP .
READ TABLE IT_NAME WITH KEY COMP_CODE = IT_DOC-COMP_CODE
TRANSACT_NUMBER = IT_ITEMS-TRANSACT_NUMBER .
* LOOP AT IT_NAME WHERE COMP_CODE = IT_DOC-COMP_CODE AND
* TRANSACT_NUMBER = IT_ITEMS-TRANSACT_NUMBER .
IF SY-SUBRC = 0 .
IT_FINAL-TRANSACT_NAME = IT_NAME-TRANSACT_NAME .
ENDIF .
APPEND IT_FINAL .
CLEAR IT_FINAL .
ENDLOOP .
* ENDLOOP .
IF SY-SUBRC = 0 .
SORT IT_FINAL .
DELETE ADJACENT DUPLICATES FROM IT_FINAL COMPARING ALL FIELDS .
SORT IT_FINAL .
ENDIF .
LOOP AT IT_FINAL .
ITEMS1-CAJO_NUMBER = IT_FINAL-CAJO_NUMBER .
TCJ-CAJO_NUMBER = IT_FINAL-CAJO_NUMBER .
TAX-CAJO_NUMBER = IT_FINAL-CAJO_NUMBER .
ITEMS1-COMP_CODE = IT_FINAL-COMP_CODE.
TCJ-COMP_CODE = IT_FINAL-COMP_CODE.
TAX-COMP_CODE = IT_FINAL-COMP_CODE.
ITEMS1-POSTING_NUMBER = IT_FINAL-POSTING_NUMBER .
TCJ-POSTING_NUMBER = IT_FINAL-POSTING_NUMBER .
TAX-POSTING_NUMBER = IT_FINAL-POSTING_NUMBER .
* ITEMS1-CURRENCY = IT_FINAL-CURRENCY .
ITEMS1-H_PAYMENTS = IT_FINAL-H_PAYMENTS .
ITEMS1-H_NET_AMOUNT = IT_FINAL-H_NET_AMOUNT .
ITEMS1-H_NET_PAYMENT_WT = IT_FINAL-H_NET_PAYMENT_WT .
ITEMS1-DOCUMENT_DATE = IT_FINAL-DOCUMENT_DATE .
ITEMS1-DOCUMENT_NUMBER = IT_FINAL-DOCUMENT_NUMBER .
ITEMS1-POSTING_DATE = IT_FINAL-POSTING_DATE .
ITEMS1-DOCUMENT_STATUS = IT_FINAL-DOCUMENT_STATUS .
ITEMS1-TRANSACT_NAME = IT_FINAL-TRANSACT_NAME .
* ITEMS1-TRANSACT_NUMBER = IT_FINAL-TRANSACT_NUMBER .
ITEMS1-POSITION_TEXT = IT_FINAL-POSITION_TEXT .
items1-POSITION_NUMBER = it_final-POSITION_NUMBER .
TCJ-POSITION_NUMBER = it_final-POSITION_NUMBER .
TAX-POSITION_NUMBER = it_final-POSITION_NUMBER .
* ITEMS1-DOCUMENT_NUMBER1 = IT_FINAL-DOCUMENT_NUMBER .
ITEMS1-KOKRS = IT_FINAL-KOKRS .
ITEMS1-KOSTL = IT_FINAL-KOSTL .
ITEMS1-PRCTR = IT_FINAL-PRCTR .
ITEMS1-GL_ACCOUNT = IT_FINAL-GL_ACCOUNT .
ITEMS1-PERNR = IT_FINAL-PERNR .
APPEND ITEMS1 .
APPEND TCJ .
APPEND TAX.
ENDLOOP .
POSTING[] = ITEMS1[] .
* TAX[] = TCJ[] .
ENDFORM. " DATA_EXRACTION1
*&---------------------------------------------------------------------*
*& Form BAPI_UPDATE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BAPI_UPDATE .
DATA : P_BEG_BALANCE TYPE CJAMOUNT ,
P_TOTAL_RECEIPTS TYPE CJAMOUNT,
P_TOTAL_PAYMENTS TYPE CJAMOUNT,
P_TOTAL_CHECKS TYPE CJAMOUNT,
P_RUN_BALANCE TYPE CJAMOUNT,
P_RUN_CASH_BALANCE TYPE CJAMOUNT,
P_NUMB_OF_REC TYPE I,
P_NUMB_OF_PAYM TYPE I,
P_NUMB_OF_CHECKS TYPE I.
P_BEG_BALANCE = '0.00' .
P_TOTAL_RECEIPTS = '0.00'.
P_TOTAL_PAYMENTS = '40.00'.
P_TOTAL_CHECKS = '0.00' .
P_RUN_BALANCE = '0.00' .
P_RUN_CASH_BALANCE = '0.00' .
P_NUMB_OF_REC = '4' .
P_NUMB_OF_PAYM = '4' .
P_NUMB_OF_CHECKS = '0' .
call function 'FCJ_POST_ALL'
exporting
I_COMP_CODE = HEADER1-COMP_CODE
I_CAJO_NUMBER = HEADER1-CAJO_NUMBER
I_CURRENCY = HEADER1-CURRENCY
I_TYP = 'C'
I_DISPLAY_PERIOD_LO = '01122012'
I_DISPLAY_PERIOD_HI = '31122012'
* IMPORTING
* E_ERROR_NUMBER =
TABLES
ITCJ_POSTINGS = ITEMS1
ITCJ_WTAX_ITEMS = TAX
ITCJ_SPLIT_POSTINGS = POSTING
ITCJ_CPD = TCJ
CHANGING
P_BEG_BALANCE = P_BEG_BALANCE
P_TOTAL_RECEIPTS = P_TOTAL_RECEIPTS
P_TOTAL_PAYMENTS = P_TOTAL_PAYMENTS
P_TOTAL_CHECKS = P_TOTAL_CHECKS
P_RUN_BALANCE = P_RUN_BALANCE
P_RUN_CASH_BALANCE = P_RUN_CASH_BALANCE
P_NUMB_OF_REC = P_NUMB_OF_REC
P_NUMB_OF_PAYM = P_NUMB_OF_PAYM
P_NUMB_OF_CHECKS = P_NUMB_OF_CHECKS
.
commit work.
wait up to 10 seconds.
* endif.
*Commiting the work using Commit Work
* call function 'BAPI_TRANSACTION_COMMIT'
**EXPORTING
** WAIT = '10'
*importing
* RETURN = IT_RETURN
.
loop at IT_RETURN.
write: / IT_RETURN-TYPE,
IT_RETURN-ID ,
IT_RETURN-NUMBER,
IT_RETURN-MESSAGE.
endloop.
ENDFORM. " BAPI_UPDATE